Надежность АСОИУ (1088455), страница 22
Текст из файла (страница 22)
Причем одной изважнейших задач производителей кластерного программного обеспечения является обеспечение минимального временивосстановления системы в случае сбоя, так как отказоустойчивость системы нужна именно для минимизации такназываемого непланового простоя.Конфигурации кластерных систем. Существует огромное количество кластерных конфигураций. Иногда то, что называюткластером, представляет собой объединение нескольких кластеров, да еще вместе с дополнительными устройствами. Темне менее каким бы ни был кластер, его всегда можно квалифицировать в соответствии со следующими двумякритериями.Первый характеризует наличие оперативной памяти узлов кластера. Здесь возможны два варианта: либо все узлыкластера имеют независимую оперативную память, либо у них существует общая разделяемая память (возможно,вдобавок к независимой памяти), доступная всем узлам кластера.Второй критерий характеризует степень доступности устройств ввода-вывода и прежде всего дисков.
Понятиекластеров с разделяемыми дисками (shared disk) подразумевает, что любой узел имеет прозрачный доступ к любойфайловой системе общего дискового пространства (рис. 1.25).667Рис. 1.25. Кластер с разделяемой дисковой подсистемойПомимо разделяемой дисковой подсистемы на узлах кластера могут иметься локальные диски, но в этом случаеони используются, главным образом, для загрузки ОС на узле. Такой кластер, как правило, имеет специальнуюподсистему, называемую «распределенный менеджер блокировок» (Distributed Lock Manager, DLM), для устраненияконфликтов при одновременной записи в файлы с разных узлов кластера.Кластеры без разделения ресурсов (shared nothing), как и следует из названия, не имеют общих устройств вводавывода (рис.
1.26).67Рис. 1.26. Кластер без разделения ресурсовПравда, здесь есть одна тонкость: речь идет об отсутствии общих дисков на логическом, а не на физическомуровне. Это означает, что на самом деле дисковая подсистема может быть подключена сразу ко всем узлам. Если надисковой подсистеме имеется несколько файловых систем (или логических/физических дисков), то в любой конкретныймомент доступ к определенной файловой системе предоставляется только одному узлу. К другой файловой системедоступ может иметь (т. е. владеть ресурсом) совсем другой узел (рис.
1.27).68Рис. 1.27. Кластер без разделения ресурсов, но с общейдисковой подсистемойТакая схема применяется для того, чтобы в случае отказа одного узла ресурс мог быть передан другому узлу.Например, если ЭВМ 1 владеет диском 1 а ЭВМ 2 — диском 2, то при отказе ЭВМ 1 ЭВМ 2 получит прямой доступ(права владения ресурсом) как к диску 2, так и к диску 1. За счет этого и достигается высокий уровень доступности вкластерах без разделения ресурсов с общей дисковой системой. Дисковые подсистемы обычно подключают черезразделяемый интерфейс SCSI либо с помощью Fibre Channel.В некоторых кластерных конфигурациях без разделения ресурсов с общей дисковой подсистемой узел можетполучать доступ к не принадлежащему ему ресурсу косвенным путем, через владельца ресурса.Тем не менее, широкое применение, особенно для вычислительных задач и сервиса Web, получили кластеры, укоторых общие ресурсы вообще отсутствуют, даже подключенные на физическом уровне.
Обычно в качестве хранилищаинформации они задействуют внешние серверы (файловые, серверы БД и т. д.).Наиболее просто на аппаратном уровне и уровне ОС реализуется схема с разделяемыми дисками: достаточноустановить многоканальную дисковую подсистему (это позволяют сделать многие массивы RAID) и подключить ее кузлам кластера, чтобы получить доступ к любой файловой системе. Однако написание такого драйвера представляетсобой исключительно сложную задачу поэтому обходится достаточно дорого.
Большинство современных кластеров (ине только для процессоров Intel) задействуют схему без разделения ресурсов с общей дисковой подсистемой. Ееорганизовать гораздо проще, хотя она и требует определенных усилий по модернизации ОС и (или) программногообеспечения.69Конфигурирование работы кластерных систем высокой готовности. Существует два варианта конфигурирования работыкластерных систем высокой готовности, которые отвечают требованиям различных пользователей и приложений.Кластеры конфигурируются по схемам «активный — активный» и «активный — резервный».Схема «активный — резервный» — самое универсальное решение в том случае, если лишь часть ресурсовзадействована для выполнения критичных по надежности приложений.
В такой системе в простейшем случае имеютсяодин активный сервер, выполняющий наиболее важные приложения, и резервная машина, которая может находиться врежиме ожидания или же решать менее критичные задачи. При сбое активного сервера все его приложенияавтоматически переносятся на резервный, где в свою очередь заканчивают работу приложения с более низкимприоритетом. Такая конфигурация позволяет исключить замедление работы критичных приложений.
При этомпользователи не заметят никаких изменений. Частный случай этой схемы — конфигурация «пассивный — резервный», вкоторой резервный сервер не несет никакой нагрузки и находится в режиме ожидания.При построении кластеров с активным резервным сервером можно иметь полностью дублированные серверы с ихсобственными отдельными дисками. Для этого необходимо постоянно копировать данные с основного сервера нарезервный. В случае возникновения сбоя резервный сервер будет иметь достоверные данные. Поскольку данныеполностью продублированы, клиент получает доступ к любому серверу, что позволяет говорить о балансировкенагрузки в подобном кластере.
К тому же узлы такого кластера могут быть разнесены географически, что делаетконфигурацию устойчивой к различного рода критическим ситуациям. Данный подход обеспечивает высокодоступноерешение, но имеет и ряд недостатков. Во-первых, необходимость постоянно копировать данные означает, что частьвычислительных и сетевых ресурсов будет непрерывно расходоваться на синхронизацию. Во-вторых, даже самыйбыстрый сетевой интерфейс между серверами внутри кластера не исключает задержек при передаче информации, что вконечном счете может привести к десинхронизации, если один сервер вышел из строя и не все транзакции, произведенные с его диском, отразились на диске второго сервера.Конфигурация «активный — активный» подразумевает исполнение всеми серверами кластера отдельныхприложений одинаково высокого приоритета. В случае сбоя приложения с неработающей машины распределяются пооставшимся, что, конечно, сказывается на общей производительности.
Кластеры «активный — активный» могут существовать только в качестве выделенных систем и не позволяют запускать низкоприоритетные задачи типа поддержкиофисной работы.Программное обеспечение, используемое на кластерах. Выполняемые кластером программы условно делятся на следующиекатегории: обычные, рассчитанные на работу в кластере (cluster-aware) и истинно кластерные. Большинствопользователей в первую очередь интересует вопрос о возможности использования в кластерах обычных программ. Наданный вопрос можно ответить утвердительно, хотя это справедливо не для всех приложений.Действительно, на любом узле можно запустить обычную программу. Например, на ЭВМ 1 можно запуститьсервис Web, а на ЭВМ 2 — сервис FTP.
При этом сервис Web использует файловую систему Web, а сервис FTP —файловую систему FTP (рис. 1.28). Допустим, произошел отказ ЭВМ 1 (рис. 1.29). В этом случае файловая система Webперейдет в распоряжение ЭВМ 2. Одновременно на этом же узле будет запущен сервис FTP. Данная процедура носитназвание миграции (failover) процесса и его ресурса.
Процедура передачи прав на ресурс и условия миграцииприложения задаются администратором по своему усмотрению. В частности, администратор может вообще отменитьмиграцию или, при наличии нескольких узлов, оговорить приоритет миграции по узлам. При восстановленииработоспособности узла ЭВМ 1 сервис Web вновь перейдет (fallback) в его владение. Администратор может определитьусловие, чтобы обратная миграция не производилась.Кроме того, одну и ту же программу можно запускать на разных узлах кластера.
Однако каждая копия программыдолжна использовать собственный ресурс (файловую систему), поскольку файловая система закрепляется законкретным узлом. Таким образом, на ЭВМ 1 можно запустить сервер Web, обслуживающий определенный домен, а на70Рис. 1.29. Отказ одного узла кластераЭВМ 2 — сервер Web, обслуживающий другой домен. При отказе ЭВМ 1 сервис Web-домена и используемая имфайловая система отойдут к ЭВМ 2.71Рис. 1..28.
Пример использования кластераКластеры подходят и для обычных сервисов файлов и печати. В частности, ЭВМ 1 может обслуживать файловуюсистему DATA, а ЭВМ 2 — PROGRAMS. Тогда даже при отказе одного узла файловые системы будут доступны черездругие узлы благодаря миграции ресурсов.Таким образом, масштабирование и увеличение производительности кластера для обычных приложений и службдостигаются путем их распределения между узлами.
Следует иметь в виду, что не все приложения и службыподдерживают миграцию, хотя их значительное меньшинство.Помимо обычных программ для кластеров существуют так называемые истинно кластерные приложения. Такиепрограммы как бы разносятся по узлам кластера, а между частями программы, функционирующими на разных узлах,организуется взаимодействие. Истинно кластерные программы позволяют распараллелить нагрузку на кластер. Впервом приближении можно считать, что любой узел кластера может обслуживать любой запрос клиента, за счет чегодостигается динамическое выравнивание нагрузки на узлы кластера.Написание истинно кластерных приложений представляет собой очень сложную и трудоемкую задачу. Более того,программы, подготовленные в расчете на параллелизм SMP, не будут полноценно работать на кластерах.