[Devel] Повторное изобретение отказоустойчивого кластера
Vitaly Lipatov
lav на etersoft.ru
Пн Июл 13 00:19:41 MSD 2009
В некотором смысле мы загорелись идеей создания простого
кластера из N-машин, обеспечивающего одновременно резервирование
и масштабирование по производительности, построенного на трёх
китах поверх GNU/Linux: распределённой ФС, распределённой СУБД,
контейнерами с возможностью миграции между узлами.
Мы изыскиваем возможность участия в проекте "разработка средств
управления вычислительным кластером". Одним из необходимых
пунктов является создание (проектирование) той системы, которой
мы собираемся управлять.
В идеале хочется иметь самособирающийся кластер из машин с
установленным специальным дистрибутивом.
На практике в качестве первого шага видится отобранность и
протестированность компонентов, из которых можно собрать
необходимое, следуя документации.
В качестве затравки я написал небольшой текст:
В настоящее время всё большее и большее внимание уделяется
использованию свободного программного обеспечения. Среди
положительных сторон следует отметить возможность гибкого
изменения кода программ при необходимости, отсутствие
лицензионных отчислений за использование, сохранение
государственных и частных инвестиций в разработку.
С увеличением количества информационных систем и их пользователей
растут и требования к надёжности и бесперебойной работе
сервисов, а также к лёгкому масштабированию информационных
систем (увеличению количества одновременно разрешённых
пользователей системы или же посетителей веб-ресурса).
Представляется востребованным проработка проекта развёртывания
универсальной кластерной системы с резервированием основных
ресурсов за счёт избыточности, запускаемой на базе свободных
программных и аппаратных компонент при минимальных затратах на
освоение системы и её адаптацию.
Для определённой ниши использования (от 2-х до 100 вычислительных
машин - серверов) бизнесу требуются решение, устанавливаемое из
специально подготовленного и отлаженного дистрибутива
операционной системы, имеющего поддержку (обновление ПО) от
разработчика, документацию по развёртыванию.
Необходимые компоненты для построения такой системы уже
существуют: масштабируемые дисковые и сетевые файловые системы,
реплицируемые базы данных, Виртуальные частные серверы (Virtual
Private Servers, VPS).
Классически схема строится на (резервируемых) серверах управления
и распределения нагрузки и backend-серверах с избыточностью,
обеспечивающие отказоустойчивое выполнение функций.
Основой концепции является
- использование GNU/Linux в качестве платформы
- использование распределённой сетевой файловой системы с
(троекратной) избыточностью, позволяющей построить не имеющее
точки отказа хранилище данных без использования дисковых
RAID-систем.
- использование (асинхронно) реплицируемой СУБД со многими
мастер-узлами, рассчитанной в основном на нагрузку по выборке
данных.
- использование виртуальных контейнеров (VPS), позволяющих
изолировать выполняемые задачи, обеспечить идентичность сред
исполнения на разных узлах, а также поддерживающих миграцию
между узлами сети без остановки контейнера, что необходимо для
перераспределения нагрузки между узлами.
- создание (резервируемого) узла управления, решающего задачи
распределение входящих запросов, мониторинг кластера,
перераспределение нагрузки.
На основе такой системы может быть построена масштабируемый и
отказоустойчивый сервер приложений, веб-сервер вплоть до
облачных вычислений (cloud computing), оказываться
услуга "приложение как сервис" (SaaS).
Несмотря на существование коммерческих решений для ряда частных
задач, проблема обзора доступных средств и выявления пригодных
инструментов, объединения их во взаимодействующую систему и
создание документации является важной нерешённой задачей.
Необходимо провести следующие исследование:
- анализ пригодности доступных свободных средств для
использования в проекте
- формулирование принципов управления кластером и распределения
нагрузки
- анализ узких мест в системе с выработкой рекомендаций по
увеличению производительности
- анализ точек отказа с выработкой решений и рекомендаций по их
устранению (созданию резервных узлов).
Результатом работы может быть создание действующего прототипа
системы, и подбор отлаженных программных компонент в виде
дистрибутива ОС, а также сайта проекта, отражающего ход
разработки и объединяющего (потенциальных) пользователей и
разработчиков системы.
--
С уважением,
Виталий Липатов, ALT Linux Team, Eternity Software Team
Россия, Санкт-Петербург. www.etersoft.ru
GNU! ALT Linux! WINE! LaTeX! LyX! http://freesource.info
Подробная информация о списке рассылки devel