Операционная система Linux созрела для корпоративных применений
Программное обеспечение MOSIX позволяет организовать мощную вычислительную среду как в виде серверного пула, так и в виде кластера, построенного из рабочих станций |
Рано или поздно вам наверняка захочется увеличить вычислительную мощь своей Linux-системы, но тут-то вы и обнаружите, что сделать это не так-то просто. Ядро Linux не поддерживает многопроцессорные серверы старшего класса. Версия ядра 2.2.x выполняется только на четырехпроцессорных машинах. Долгожданные SMP-расширения ядра 2.4.0, так же как и Microsoft Windows 2000 Advance Server, поддерживают до 16 процессоров, но этого слишком мало для задач, которым требуется производительность суперкомпьютеров.
Типы кластеров
Распределенные вычислительные кластеры используются для обработки больших объемов данных (в частности, при решении сложных научных или графических задач). Для функционирования кластеров нужны специальные решения — такие как Message Passing Interface (MPI) и Parallel Virtual Machine (PVM), которые являются надстройками над специализированными библиотеками. Пример: Beowulf.
Кластеры серверов обеспечивают работу сетевых служб (в том числе и Web-служб). Их основная задача заключается в балансировке распределенной нагрузки между узлами кластера. Система MOSIX — типичный представитель такого кластера.
Основное назначение кластеров высокой готовности (High Availability — HA) состоит в устранении единых точек сбоя (single point of failure — SPOF) в серверной среде. В качестве примеров можно привести Red Hat High Availability Server и Linux HA.
Не стоит терять веру в пингвиненка Linux! Кластеризация поможет преодолеть имеющиеся трудности. Технология кластеризации обладает двумя основными преимуществами — во-первых, она повышает масштабируемость и вычислительную мощность, а во-вторых, гарантирует более высокую готовность за счет избыточности. Большинство кластерных решений обеспечивают сбалансированность нагрузки и автоматическое переключение с одного узла на другой в случае отказа. Одним из таких кластерных решений для Linux и является система MOSIX.
Программное обеспечение MOSIX разрабатывается специалистами Еврейского университета в Иерусалиме. Первоначально оно проектировалось для BSD, но теперь в качестве единственной платформы для него выбрана система Linux — правда, к сожалению, только для архитектуры x86. Команда разработчиков MOSIX намерена создать кластерное программное обеспечение, представляющее для пользователей и процессов единую систему. Идея проста: MOSIX автоматически распределяет обрабатываемые задачи между различными кластерными узлами. Ядро MOSIX обеспечивает адаптивную балансировку нагрузки и вытесняющий перенос процессов в пределах группы машин, объединенных в сеть.
MOSIX включает в себя два основных модуля: механизм вытесняющего переноса процессов (preemptive process migration — PPM) и набор алгоритмов для адаптивного разделения ресурсов. Эти модули следят за выполнением процессов и переносят их с одного узла на другой с целью достижения максимально возможной производительности. Каждый кластерный узел выступает в роли хоста для локально созданных процессов и используется в качестве сервера для процессов, перенесенных с других узлов. Узлы можно добавлять к кластеру и удалять из него, не оказывая воздействия на уже выполняющиеся процессы.
Простая, как Linux
MOSIX реализуется в виде модуля ядра. Большинство сетевых утилит Linux она заменяет программой mosrun. MOSIX работает на уровне ядра, что гарантирует максимальную прозрачность для прикладных программ. При этом нет необходимости вносить в приложения какие-либо изменения, связывать их со специальной библиотекой, не нужно даже явно привязывать процессы к различным узлам. Система MOSIX выполняет все эти действия автоматически и абсолютно прозрачно, точно так же, как диспетчер задач в системе с SMP-архитектурой. Вот почему применительно к MOSIX часто употребляется эпитет «запустил и забыл» — пользователям не нужно знать, каким образом их процессы распределяются между кластерными узлами, а запуск процесса можно осуществлять с любого узла. Каждый новый процесс при запуске привязывается к тому узлу, который в данный момент обладает наивысшей готовностью.
Построить кластер MOSIX очень просто. Все, что при этом понадобится, — сеть, поддерживающая протокол TCP, и по крайней мере два Linux-компьютера. Для работы с системой MOSIX не требуется никакого специального оборудования, оно выполняется на самых обычных недорогих ПК. Можно использовать компьютеры с разной производительностью процессоров, разной емкостью оперативной памяти и отличающимися друг от друга интерфейсами Ethernet. Применение MOSIX — прекрасный шанс вдохнуть новую жизнь в старые ПК, которых так много вокруг. Размеры кластера ничем не ограничены. Рабочие места на базе ПК будут выполнять в нем роль составных частей единой системы. Конечно, для создания сложной конфигурации потребуется сеть Gigabit Ethernet или даже более современное решение (например, Myrinet). Для повышения производительности в качестве узлов кластера можно использовать компьютеры с SMP-архитектурой.
MOSIX позволяет организовать мощную вычислительную среду как в виде серверного пула, так и в виде кластера, построенного из рабочих станций. Существуют несколько способов запуска процессов в кластере MOSIX. Один из них — создание и настройка конфигурации адаптивного пула. В этом случае серверный пул включает в кластер рабочие станции Linux, если в течение какого-то определенного времени они остаются неактивными — предположим, ночью.
Другой способ позволяет рабочей станции подключаться к кластеру только для запуска процессов. Такая конфигурация называется полудуплексным пулом. Имеются также пакетные конфигурации, в которых доступ к серверному пулу (кластеру MOSIX) возможен при помощи специальной программы, формирующей очередь запросов в едином каталоге.
Кто в выигрыше?
MOSIX может применяться для объединения Web-серверов, при котором на каждом узле работает программное обеспечение Apache. Такое решение хорошо подходит также для сетей, пользователи которых одновременно запускают сразу несколько задач, требующих компиляции сложных программных модулей (скажем, выполняется перестройка компиляторов или среды KDE/ GNOME). В общем случае в выигрыше окажутся те, кто работает с приложениями, для выполнения которых требуется длительное время (например, с программами научного или инженерного назначения).
В то же время MOSIX практически ничем не поможет пользователям аппаратно-зависимых приложений, которым нужен прямой доступ к устройствам ввода/вывода узла. Программам, не предъявляющим высоких требований к вычислительной мощности (например, предназначенным для организации взаимодействия, или приложениям, использующим разделяемую память), тоже вряд ли удастся извлечь из MOSIX сколько-нибудь существенные выгоды. Производительность MOSIX в системах с параллельной обработкой может быть увеличена за счет применения интерфейса MPI.
Постройте собственный кластер
В качестве базовой операционной системы для узлов кластера MOSIX я настоятельно рекомендовал бы использовать версию Red Hat 6.x. Конечно, MOSIX будет работать и на платформе Red Hat 7.x, но здесь в отдельных случаях возможны проблемы совместимости.
Существуют два способа установки системы MOSIX. Первый заключается в перекомпиляции ядра. Другой способ предусматривает установку предварительно скомпилированного ядра (в формате RPM) и наложение на него обновлений MOSIX.
При настройке больших конфигураций — состоящих из десяти узлов и более — лучше всего перекомпилировать ядро с обновлениями MOSIX. После этого осуществляется перенос ядра на другие узлы, на каждом из которых меняются только сетевые установки. Можно также воспользоваться программой CluClo, обеспечивающей автоматическое клонирование операционной системы с одного узла на другой. Но эта операция допустима лишь в том случае, если все машины имеют одинаковую аппаратную конфигурацию.
Многообразие Linux-кластеров
Посетители последней выставки LinuxWorld Conference & Expo имели возможность познакомиться с богатым урожаем кластерных решений. Теперь наконец можно говорить о том, что кластерные решения полностью готовы к коммерческому употреблению. Пользователи больше не ограничены относительным несовершенством первых продуктов кластеризации и базовой технологией Beowulf. Отныне высокий уровень готовности и сбалансированность загрузки доступны самым разным категориям заказчиков.
Технологии кластеризации поддерживаются многими дистрибутивами. Это способствует более широкому распространению нового программного обеспечения. Компании, не решавшиеся раньше устанавливать у себя подобные системы из-за отсутствия необходимого технического сопровождения, теперь могут не беспокоиться на этот счет. Среди многообразия кластерных решений на базе ОС Linux представлены продукты как мелких, так и крупных производителей.
Компания Mission Critical Linux предлагает решение Convolvo Cluster, обеспечивающее высокую готовность систем, составленных из спаренных Linux-серверов. Узлы соединяются посредством интерфейса 100BaseT Ethernet. Подключение к системе хранения происходит при помощи стандартных кабелей SCSI. Система хранения с интерфейсом SCSI должна обеспечивать возможность двойного подключения, что увеличивает ее стоимость. Для каждого узла Mission Critical предлагает специальные интеллектуальные источники питания. Механизм управления кластером позволяет перезагружать узел, на котором произошел сбой, с работающего узла.
Компания SGI помимо многоузловых кластеров, построенных на базе систем с процессорами Penium III и Xeon, продемонстрировала неплохой кластер из восьми серверов Linux 1200, 1400 и 1450 с процессорами архитектуры IA-64. Компания сравнительно недавно начала переход на Linux, поэтому ее решениям пока не уделяется того внимания, которого они действительно заслуживают. SGI Advanced Cluster Environment хорошо подходит для кластеров Beowulf и обладает всеми необходимыми средствами управления, разработки, отладки и профилирования. Данный пакет помогает правильно построить кластер Beowulf. Желающие могут загрузить необходимое ПО с Web-сайта SGI.
Ряд известных производителей, в число которых входят корпорации HP, Compaq и IBM, намерены устанавливать на компьютеры с процессорами Itanium ОС Trillian Linux. При этом возможно построение как одиночных систем, так и кластеров.
Linux NetworX разработала новое ПО управления кластерами Beowulf. Компания, носившая ранее название Alta Technologies, известна своими проектами Beowulf, в том числе построением высокомасштабируемого кластера Road Runner для Университета штата Нью-Мексико.
Ведущие поставщики дистрибутивов Linux, компании Red Hat и TurboLinux, также имеют в своем распоряжении средства кластеризации и восстановления после сбоев.
Большие надежды
Моя вера в кластеризацию Linux еще более укрепляется. Последние анонсы закладывают основы для расширения практического применения Linux-кластеров как в коммерческих организациях, так и в академических институтах, заставляя нас говорить о новых возможностях кластеризации. Создается впечатление, что неплохая операционная система для ПК вскоре вторгнется в пространство оригинальных ОС для мини-компьютеров и мэйнфреймов.Похоже, что вот-вот нам придется полностью пересмотреть классификацию компьютеров и распределенных систем. Возможно, уже вскоре Linux сделает еще один шаг вперед, в том направлении, которое многие считают единственным истинным видом кластеризации, — к кластерам с единым образом системы.
Рон Шах