Кластеры высокой готовности на базе Linux.
Производители Linux открыли для себя рынок вычислительных центров и предлагают отказоустойчивые системы с высокой степенью готовности, которые во множестве выпускаются как в коммерческих, так и в открытых вариантах.
Кластеры Linux обычно состоят из стандартных компьютеров на базе оборудования Intel или AMD, т. е. из узлов, причем на каждом установлено собственное ядро операционной системы, а физический накопитель совместно не используется. Таким образом, каждый узел работает независимо от других, что и отличает подобные объединения от платформ с неоднородным доступом к памяти (Non-Uniform Memory Access, NUMA) или симметрич-ной многопроцессорной обработкой (Symmetrical Multiprocessing, SMP). Совместная эксплуатация нескольких систем на базе Linux привлекает не только хорошим соотношением цена/качество, но и возможностью достижения высокой готовности и производительности, а также обеспечением балансировки нагрузки.
КАТЕГОРИИ КЛАСТЕРОВ
В прошлом в соответствии с этими критериями кластеры распределялись по категориям. Однако выясняется, что современные решения, идет ли речь о программном обеспечении с открытыми исходными кодами или о коммерческом, объединяют в себе все три признака. Тем не менее для каждого вида есть несколько типичных примеров, которые в большинстве своем уходят корнями в давние проекты с открытыми исходными кодами. К ним относятся Beowulf - самое старое программное обеспечение для высокопроизводительных вычислений, проект Mosix для балансировки нагрузки и HA-OSCAR для кластеров высокой готовности.
Именно высокая готовность приложений является основным свойством кластеров и достигается благодаря присущей им избыточности составных частей. Большинство кластерных решений оснащено механизмами распознавания отказов узла и обеспечивает передачу задач отказавшего узла другому. Кроме того, кластерные файловые системы предлагают некоторые функции, гарантирующие высокую готовность. Обычно они реализуются как своего рода «оболочки» регулярной файловой системы, взаимодействуют между собой по сети для синхронизации действий и используют ту же сеть хранения данных (Storage Area Network, SAN) или специальные устройства «межсоединения кластеров». Типичные функции - механизм ведения журналов, где фиксируются все действия, и менеджер блокировок, управляющий доступом к данным во всей системе. Наиболее известными кластерными файловыми системами являются глобальная файловая система (Global File System, GFS) в варианте с открытыми исходными кодами OpenGFS и используемая компанией Red Hat и приобретенная у компании Sistina коммерческая Pendant (также GFS). Кроме того, на рынке представлены обобщенная параллельная файловая система (Generalized Parallel File System, GPFS) от IBM, кластерная файловая система (Cluster File System, CFS) от Polyserve и Sun Cluster.
LINUX ВЫСОКОЙ ГОТОВНОСТИ
Пожалуй, наиболее известным проектом высокой готовности с открытыми кодами является High Availability Linux (HA Linux) с тактовыми импульсами. Этот основной компонент проекта реализует последовательные, а также тактовые импульсы UDP и PPP/UDP вместе с передачей IP-адреса.
Для крупных кластеров с более чем 32 узлами и совместно используемым хранилищем подойдет программное обеспечение высокой готовности Lifekeeper (для Linux, Windows и Solaris) от Steeleye. Отдельные избыточные ресурсы кластера могут вводиться в эксплуатацию не только последовательно, но и параллельно. Lifekeeper с многократ-ным и каскадируемым оперативным восстановлением предлагает высокую степень защиты от отказов. Это означает, что в случае неисправности сервера приложение переводится на другой сервер, а если и он прекращает работать - на следующий.
Linux Failsave представляет собой разработанное SGI программное обес-печение, перенесенное на Linux совместно с SuSE. В кластере с 16 узлами при помощи менеджера ресурсов оно берет на себя задачи восстановления работы отказавших приложений. Различные подключаемые модули - для IP-адре-сов, файловых систем, Apache или NFS - предлагают специфические для приложений интерфейсы между Failsave и приложениями или ресурсами, которые управляют функциональностью высокой готовности.
Представленные выше решения (остальные перечислены во врезке «Выбор программного обеспечения для кластеров Linux высокой готовности») включают в себя лишь некоторые компоненты, используемые кластером высокой готовности. Полноценное решение должно содержать услуги членства и коммуникации, управление кластерами и ресурсами, а также средства мониторинга.
КЛАСТЕРНЫЙ КОМПЛЕКТ ОТ RED HAT
Всеобъемлющее решение высокой готовности для кластеров Linux предлагает компания Red Hat. Это продукт Cluster Suite, распространяемый по общедоступной лицензии (General Public License, GPL) и представляющий собой дополнение к Enterprise Linux Advanced Server и Enterprise Server. Решение предоставляет две базовые функции: менеджер кластеров обеспечивает высокую готовность, а балансировка нагрузки IP (изначально она называлась Piranha) заботится о распределении нагрузки в сети.
Менеджер кластера управляет инфраструктурой перераспределения задач при отказе какого-либо ресурса, причем, по данным поставщика, приложения способны работать в кластерных реализациях без изменений. Программное обеспечение поддерживает до восьми объединенных узлов. Необходимое условие - соединение с одной и той же внешней совместно используемой подсистемой хранения по SCSI или Fibre Channel. Все члены кластера обладают доступом к одному и тому же накопителю. При отказе узла менеджер кластера монтирует пострадавшие разделы на другом узле, конфигурирует там IP-адреса и запускает приложение в той же среде, что и на исходном сервере.
Решение поддерживает отка-зоустойчивые кластеры «активный/активный» с несколькими независимыми друг от друга и распределенными по узлам при-ложениями, а также кластеры «активный/пассивный». Последний тип хорошо подходит для очень больших приложений, работающих на одном сервере, когда второй включается лишь в случае отказа первого. Менеджер кластера не только отвечает за восстановление работы приложений при аппаратных проблемах или сбоях, но и следит за их нормальным функционированием и обеспечивает повторный запуск при отказе.
Обычно стандартные приложения не позволяют осуществлять одновременный доступ к своим данным с нескольких систем, поэтому и серверный узел может обращаться лишь к одному разделу хранения. Для предотвращения связанных с этим конфликтов применяются управляющие сценарии, следящие за тем, чтобы в каждый момент времени с определенным разделом работал лишь один сервер. Тем не менее иногда могут возникнуть ситуации, когда сервер обходит эти сценарии и без разрешения запускает приложение, которое уже выполняется на другом сервере. Такие инциденты менеджер кластеров предотвращает при помощи так называемых барьеров ввода/вывода. Программное обеспечение поддерживает для этого механизмы двух типов: программируемые сетевые переключатели и сторожевые таймеры. Последние инсталлируются на каждом сервере и перегружают систему в случае ее зависания, т. е. некорректной активации таймера.
Другие системы высокой готовности в качестве барьера используют, к примеру, резервирование SCSI. Этот механизм позволяет серверу зарезервировать для своих нужд весь жесткий диск, к которому ни одна из других систем уже не сможет обратиться. Недостаток заключается в том, что многие контроллеры хранения не реализуют такое резервирование достаточно надежно, а кроме того, блокируются целые диски вместо разделов. Во многих случаях это ведет к потере дисковой емкости.
Второй компонент Cluster Suite от Red Hat служит для балансировки нагрузки IP и базируется на проекте с открытыми исходными кодами «виртуальный сервер Linux» (Linux Virtual Server, LVS) и Piranha. Технология служит для распределения нагрузки от входящих IP-запросов по нескольким серверам и отвечает требованиям крупных серверов Web.
Конкурирующее кластерное решение предлагает Novell с продуктом SuSE Linux Enterprise Server (SLES) 9. Чтобы занять нишу на рынке вычислительных центров, производитель с некоторого времени делает ставку на партнерство в области продаж с компанией Polyserve и ее программным обеспечением для кластеров под названием Matrix Server. Продукт поддерживает до 16 кластеров или «лезвий» и, как и решение от Red Hat, подходит для крупных кластеров.
Программное обеспечение предполагает наличие сети хранения данных, поддерживает распределенное управление метаданными и не предусматривает отношений между серверами по типу «главный/подчиненный» (см. Рисунок 1). Основным архитектурным принципом производитель называет симметрию всех узлов кластера, и подлежащие выполнению задачи равномерно распределены между ними. Так называемые механизмы групповой коммуникации следят за статусом узлов и координируют общий список всех «здоровых» серверов кластера в отношении их конфигурации. В рамках этой архитектуры администратор может зарегистрироваться на любом узле, чтобы управлять всеми другими. В случае ошибки механизмы восстановления на базе заранее определенных правил передают приложения на другой сервер или перезапускают их.
Сервер Matrix содержит общую распределенную кластерную журнальную систему с поддержкой оперативного добавления или удаления узлов и одновременным доступом к разделяемым данным через несколько узлов. Кроме того, программное обеспечение включает в себя распределенный симметричный менеджер блокировок на каждом узле кластера. Он позволяет совместно использовать данные в режиме «только чтение» через любые узлы, а кроме того, играет важную роль в случае возникновения ошибок в сети - когда узел не отвечает на сообщение менеджера блокировок, это часто может означать наличие ошибки. Разница решения от Polyserve с про-дуктами других производителей, как утверждают в компании, за-ключается в том, что в кластере Matrix серверы объединяются в группы, которые в состоянии поддерживать крупные приложения. В процессе работы эти группы могут быть переконфигурированы.
КЛАСТЕРЫ ПОД SOLARIS
В ближайшее время на рынок систем с открытыми исходными кодами планирует выйти Sun Microsystems, в июне этого года объявившая о намерении сделать исходный код Solaris 10 общедоступным. С помощью операционной системы Sun и собственного аппарат-ного обеспечения программное обеспечение для кластеров Sun Cluster 3.1 поддерживает конфигурацию размером до 16 узлов. Решение предлагает сетевые услуги для управления и восстановления после отказов. Кроме того, при помощи сетевого интерфейса с глобальным IP-адресом входящие запросы переправляются на различные экземпляры распределенных при-ложений. В случае отказа глобальный IP-адрес переводится на резервный сетевой интерфейс.
Дополнительно посредством промежуточного уровня во всем кластере можно использовать операционную систему Solaris или Veritas. Наличие сети хранения данных не является обязательным условием для создания кластера Sun. В версии Solaris 10 должно стать возможным распространение восстановления после отказов для так называемых контейнеров на физически разделенные системы.
Сюзанна Франк - независимый журналист. С ней можно связаться по адресу: jos@lanline.awi.de.
? AWi Verlag
Выбор программного обеспечения для кластеров Linux высокой готовности
HA-OSCAR (http://www.openclustergroup.org/HA-OSCAR)
Проект базируется на кластере Beowulf и обеспечивает для него функциональность высокой готовности.
Linux-HA (http://www.linux-ha.org)
Главной составной частью этого проекта являются тактовые импульсы. Программное обеспечение используется на всех типах кластеров.
Kimberlite (http://oss.missioncriticallinux.com)
Программное обеспечение поддерживает кластеры с двумя узлами и совместной системой хранения на базе SCSI или Fibre Channel с оперативным восстановлением по типу «активный/активный».
Lifekeeper (http://www.steeleye.ru)
Решение от Steeleye для крупных высокопроизводительных серверов.
Linux Failsave (http://www.oss.sgi.com/projects/failsave)
Реализация Linux от SGI содержит модули для оперативного восстановления.
Linux Replicated High Availability Manager (http://www.linuxha.net)
Проект предлагает решение для кластера высокой готовности из двух узлов, причем данные тиражируются между обоими узлами.
Serviceguard (http://h71028.www7.hp.com/enterprise/cache/6468-0-0-0-121.aspx)
Программное обеспечение от Hewlett-Packard защищает от множества аппаратных и программных отказов в кластерах вида «активный/пассивный». Приложения и услуги разделены по группам ресурсов с виртуальным IP-адресом и возможным дисковым пространством в разделенном хранилище.
RSF-1 (http://www.high-availability.com)
Resilient Server Facility реализуется между уровнем приложений и управлением хранилищами и в случае отказа берет на себя автоматическое восстановление работы приложений. RSF предлагает разнонаправленную избыточность.
Service Routing Redundancy Daemon (http://srrd.org)
Сервер SRRD управляет и наблюдает как за услугами, так и за разделенными ресурсами, причем узлы кластеров могут находиться в разных локальных сетях. Устройство поддерживает клиенты PKI и SSL, а также аутентификацию серверов и группировку услуг.
Veritas Cluster Server (http://www.veritas.com)
Cluster Server в версии Linux поддерживает до 16 узлов и работает как в средах SAN, так и в традиционных средах «клиент-сервер».