Строим отказоустойчивый кластер для файлового сервера в Windows Server 2008
Ульяна Смелая
При помощи службы кластеров Win2k8 можно обеспечить восстановление приложений, ресурсов и служб в случае отказа одного из серверов. Возможных конфигураций серверных кластеров великое множество, но мы разберем самый интересный и востребованный сценарий.
Содержание:
- Введение в предмет
- Подготовительные мероприятия
- Установка требуемых компонентов
- Модели кворума
- Развертывание сервиса
- Заключение
- Врезка: Кластерный сетевой интерфейс
- Боковые выносы
Отказоустойчивым кластером (Failover Cluster) называют группу компьютеров, которая функционирует как единая система для обеспечения высокой доступности. Пользователь или программа видит такой кластер как один виртуальный сервер. Когда кластеризованный ресурс на одном из узлов выходит из строя, управление им возлагается на другой сервер. При восстановлении ресурса исходный сервер возвращает себе функции управления и переходит в оперативный режим. Прелесть заключается в том, что весь процесс восстановления после отказа полностью прозрачен для пользователей.
В Win2k8 служба кластеров претерпела значительные изменения: упрощено проведение всех операций, начиная с этапа развертывания, добавлена поддержка теневых копий для быстрого восстановления конфигурации кластера, усовершенствованы механизмы работы с сетью и алгоритм взаимодействия с системами хранения. Кроме того, появилась новая модель безопасности, которая поможет решить ряд проблем, возникавших ранее. Так в предыдущей версии для функционирования узла требовалась учетная запись службы кластеров, выполняемая с правами локального администратора. Такой пользователь в домене попадал под ряд политик, что могло вызвать сбой или недоступность сервиса. Теперь служба кластера использует локальную учетную запись с ограниченным набором прав, который позволяет ей правильно функционировать.
Требования к компьютерам, входящим в кластер, в общем-то, стандартны. Они должны иметь сертифицированное оборудование (желательно одинаковое), параметры связи на сетевые адаптерах должны быть настроены одинаково, версии Windows, архитектура (32 разрядная, x64 или Itanium), патчи и прочее ПО также должны совпадать. Все системы должны входить в один домен, предпочтительно иметь одинаковую роль рядового сервера. Файловая система – только NTFS. Следует избегать образования единичных точек отказа, например, наладив связь между узлами кластера по нескольким сетям. Если узла два, как в нашем сценарии, то достаточно соединить их между собой при помощи отдельных сетевых карт. Хотя опыт эксплуатации показывает, что большая часть этих требований – обычная перестраховка (но это и не означает, что совсем их придерживаться не стоит).
Диски или LUN (Logical unit numbers, логические номера устройств), которые предполагается задействовать в кластере, должны быть доступны только узлам кластера. Для подключения можно использовать iSCSI, диспетчер хранилища для сетей SAN или любой другой интерфейс, предоставленный производителем системы хранения. Для проверки видимости на одном из узлов будущего кластера следует перейти в Administrative Tools – Computer Management – Storage – Disk Management (Администрирование – Управление Компьютером – Устройства хранения – Управление дисками). Если нужные диски доступны в списке, значит, можно переходить к следующему этапу.
Установка требуемых компонентов
Как и все прочие сервисы Win2k8, компонент Failover Clustering не устанавливается по умолчанию, его необходимо добавить самостоятельно. Сделать это можно из окна Initial Configuration Tasks (Задачи начальной настройки), выбрав ссылку Add features (Добавить компоненты) в области Customize This Server (Настроить этот сервер). Или, как вариант, из диспетчера сервера (Server Manager). В результате появится мастер добавления компонентов Add Features Wizard, который весьма лаконичен и прост. Отмечаем пункт Failover Clustering, после чего нажимаем кнопку Next Install. И некоторое время ожидаем окончания процесса установки и инициализации параметров.
Следующий этап: устанавливаем сервис, ради которого и собирается кластер. В нашем случае переходим в Add Role и на втором шаге мастера добавления ролей (Add Role Wizard) выбираем File Server. Нажимаем Next и отмечаем службы ролей (здесь будут предложены File Server, DFS, Resource Manager, Services for Network File System и другие), выбор некоторых из них (например, распределенной файловой системы DFS) потребует дополнительных настроек. Повторяем установку Failover Clustering и File Server на каждом узле из группы серверов.
Далее рекомендуется проверить конфигурацию будущего кластера. Проверка настроек серверов, сети и систем хранения данных на соответствие требованиям Failover Cluster поможет избежать проблем на раннем этапе, увидеть узкие места и сэкономить время. Тестирование производится из окна Failover Cluster Management (Управление отказоустойчивыми кластерами), которое можно вызвать из Administrative Tools. В разделе Management выбираем ссылку Validate a Configuration (Проверить конфигурацию), появится мастер проверки конфигурации (Validate a Configuration Wizard). На втором шаге мастера Select Servers or a Cluster указываем на узлы, которые будут тестироваться. Для чего вводим имя узла в поле Enter name или выбираем из списка при помощи Browse и нажимаем Add. На следующем шаге отмечаем тесты для выполнения. Перед созданием кластера рекомендуется пройти все проверки (Run all tests), затем при подключении следующего узла некоторые тесты можно пропустить. По окончании проверок выводится информативная сводка (Summary). Тесты, которые помечены зеленым цветом, считаются пройденными. Внимание: нужно обратить на те, которые помечены значком с восклицательным знаком (Warning, есть еще и Not Applicable, они не так критичны). Пока не будут убраны все предупреждения, мастер создания кластера, который мы собираемся вскоре запустить, скорее всего, прекратит работу из-за ошибки. Если некоторые тесты не пройдены, нажав на More about cluster validation tests, можно вызвать соответствующий раздел справки, который поможет разобраться в ситуации. Чтобы просмотреть полный отчет по тестированию в окне веб-браузера, нажимаем ссылку View Report. Устраняем найденные проблемы и повторяем тест. После закрытия мастера отчет сохраняется в html файле в каталоге SystemRootClusterReportsValidation Report. Имя файла будет соответствовать дате и времени проведения теста.
Новые кластеры создаются при помощи мастера создания кластера (Create Cluster Wizard), который вызывается из окна консоли Failover Cluster Management нажатием на ссылку Create a cluster. Консоль можно вызвать из Administrative Tools, или введя команду cluadmin.msc в окне терминала. Интерфейс консоли традиционен для Win2k8. Окно разделено на три области, в левой области показаны кластеры, подменю открывает доступ к настройкам. В центре выводится информация о выбранном объекте, в правой части можно активировать некоторые действия, также доступные из контекстного меню. Следует отметить, управлять кластерами предыдущих версий Windows при помощи этой консоли нельзя.
Далее по подсказкам мастера последовательно добавляем в список серверы, которые будут входить в состав кластера. На странице Access Point for Administering the Cluster указываем имя кластера и его IPv4 адрес. На странице Confirmation проверяем установки и, если все правильно, нажатием Next начинаем процесс создания кластера. По окончании работы мастера появится страница Summary, если она не содержит записей об ошибках, создание кластера можно считать завершенным. После этого новый кластер появится в окне консоли Failover Cluster Management.
Для подключения к кластеру, которого нет в списке, щелчком по записи Failover Cluster Management вызываем контекстное меню, в котором выбираем команду Manage a Cluster.
После того как кластер создан, необходимо выполнить еще ряд действий для оптимизации работы. Для этого, перемещаясь по вкладкам, проверяем установки кластера. Так чтобы сервера для обмена информацией внутри кластера не использовали сеть, предназначенную для передачи основного потока данных, следует ее выбрать в списке Networks, в контекстном меню перейти к пункту Properties (Свойства) и активировать параметр Do Not Allow the Cluster to Use This Network (Запретить кластеру использовать эту сеть). Еще один момент: в идеале каждый узел должен иметь одинаковое количество сетевых адаптеров, а их имена обладать такими названиями, которые помогут администратору понять, к какой сети они подключены. По умолчанию интерфейсы имеют имена вроде «Cluster Network 1″, «Cluster Network 2″, что не очень удобно. Поэтому отмечаем сеть (в среднем окне будут выведены ее характеристики), в контекстном меню выбираем пункт Rename и вводим новое имя сети. Аналогично поступаем и с остальными.
Добавить новый узел в кластер очень просто. Для этого в поле Nodes выбираем Add Node и следуем указаниям мастера добавления узла Add Node Wizard. Основной страницей мастера является Select Server page, на которой указываются данные нового сервера. После нажатия на Next начнется процесс добавления узла, результат операции будет показан в Summary. Ничего сложного.
При развертывании отказоустойчивого кластера в Active Directory, в контейнере Компьютеры, создается ряд объектов виртуальных компьютеров (VCO – Virtual Computer Object). Они относятся ко всем ресурсам сетевого имени кластера, создаваемым как точки доступа клиента – CAP (Client Access Points). Даже для работы одноузлового кластера потребуется CAP, окно с требованием его создать будет появляться несколько раз по ходу настроек. В меню Action выбираем пункт Add a resource, затем Client Access Point и далее следуем указаниям еще одного мастера. Фактически он похож на предыдущий, необходимо только указать незанятый IP-адрес для CAP и все.
Важным моментом настройки кластера является выбор типа кворума (quorum). Кворум – не новое понятие для серверов Windows, но в реализации Win2k8 есть существенные изменения. Для начала, кворум – это не объект кластера, это целая концепция, позволяющая сохранить работоспособность всей системы в случае недоступности отдельных ее элементов. Кластер должен действовать как единая группа, представляющая собой логический сервер, все узлы которого работают согласованно и выдают одинаковую информацию. В обычном сценарии проблем не возникает, а что делать, если по какой-то причине кластер разделен (например, отсутствует служебное сетевое подключение)? В этом случае фактически получаем два кластера, которые будут выдавать разную информацию в результате рассинхронизации данных. Вот тогда и нужно определить, кому работать, а кому отключаться. Для этого и нужен кворум. Сервера, оставшиеся без кворума, автоматически закрывают все службы.
В Win2k3 «кворумом» называли общий диск с настройками кластера, потеря которого была критичной. Как вариант, предлагался кворум набора узлов большинства, состоящий из общего SMB ресурса. В этом случае для функционирования кластера требовалось участие большинства узлов. В Win2k8 используется модель единого кворума, определяющая результат на основе количества голосующих элементов кластера (свидетелей). Новая модель кворума позволяет гарантировать, что только одна часть будет выступать в роли кластера. Раздел с кворумом определяется числом голосующих элементов (узлов, дисков-свидетелей), или возможностью доступа к определенному ресурсу, такому как диск-свидетель. В первом варианте все элементы равны, то есть можно получить кворум и без диска свидетеля.
Режим кворума определяет нужное количество голосов. В настройках Win2k8 доступно 4 режима, настройка производится через меню More Actions – Configure Cluster Quorum Settings на странице Select Quorum Configuration:
-
Node Majority (большинство узлов) – удобен при нечетном количестве узлов, одноузловом кластере или кластере без общего хранилища данных. Голоса назначаются только узлам, свидетель или диск-свидетель отсутствуют. Для кворума должно быть доступно более половины узлов.
-
Node and Disk Majority (большинство узлов и диск) – удобен при четном количестве узлов. Голоса имеют узлы и общие диски. Кворум может быть получен, если доступно более 50% узлов или меньше, если есть диск-свидетель.
-
Node and File Share Majority (большинство узлов и файловый ресурс) – как и предыдущий, только вместо диска-свидетеля используется файловый ресурс. Этот режим также рекомендуется при четном количестве узлов, кластере без общего хранилища данных.
-
No Majority: Disk Only (без большинства: только диск) – для кворума нужен диск-свидетель, количество узлов на решение не влияет. Отсутствие диска свидетеля в любом случае означает отсутствие кворума.
При установке кластера будет выбран наиболее оптимальный вариант, который выводится в окне Summary. Менять кворум потребуется только при добавлении нового узла или других изменениях в структуре кластера. Режим «No-Majority: Disk-Only» подписан как не рекомендованный и соответствует модели общего кворума в старой версии кластеров. Учитывая другие варианты, очень тяжело подобрать ситуацию, когда он может быть востребован. Кроме того, в зависимости от текущей конфигурации некоторые режимы могут быть также отмечены как не рекомендуемые (not recommended for your current number of nodes).
Теперь, когда кластер поднят и протестирован, приступаем к последнему этапу – развертыванию необходимого сервиса или службы, который он будет обеспечивать. Как уже говорилось, выбранная роль на этот момент должна быть установлена. Хотя есть возможность создания пустого (empty) сервиса, это можно сделать из меню More Actions – Create Empty Service or Application. Перед добавлением File Server необходимо, зайдя в Storage, убедиться, что дисковые ресурсы доступны кластеру. При необходимости можно добавить ранее не подключенные к кластеру диски: выбираем в контекстном меню Add Disk и указываем на устройство хранения. По окончании работы мастера новый диск перейдет из категории Local Disks в Clustered Disks.
Список поддерживаемых приложений доступен в меню Services and Applications. Нажимаем в области Actions ссылку Configure a Service or Application (Настроить службу или приложение) и на втором шаге High Availability Wizard указываем на нужную роль или сервис. В нашем случае – это File Server. Если выбранная роль еще не установлена, мастер прекращает работу. Далее вводим стандартные параметры: имя файлового сервера, его IP-адрес и тома, к которым нужно обращаться. По окончании работы мастера файловый сервер появится в дереве консоли Services and Applications. Выбираем его и в контекстном меню отмечаем пункт Provision a Shared Folder Wizard, который вызовет одноименного мастера. Следуя его инструкциям, указываем параметры создаваемой общей папки: путь и имя, разрешения файловой системы и расширенные параметры протокола SMB (кэширование, число пользователей). После завершения мастера проверяем работу файлового сервера. Затем переводим его в режим онлайн, выбрав в контекстном меню команду Bring this service or application online.
Кстати, для тестирования корректности перехода на другой узел кластера не обязательно выдергивать сетевой кабель, достаточно перевести сервис в оффлайн, нажав ссылку Move this service or application to another node в этом же меню.
В дальнейшем за работой файлового сервера можно следить из консолей Server Manager, Failover Cluster Management и Event Viewer.
Сегодня создание отказоустойчивого кластера в Win2k8 уже не требует специальных знаний от администратора. Нужно просто представлять себе конечный результат. Наличие множества мастеров и подсказок по ходу процесса заметно упрощают настройки и последующее управление. Думаю, у тебя все получится.
Врезка: Кластерный сетевой интерфейс
Настоятельно рекомендуется между участвующими в кластере серверами установить дополнительное физическое сетевое подключение (другими словами, на каждый компьютер нужно установить еще по одной сетевой карте и связать узлы отдельным сетевым кабелем), так как помимо Heartbeat-сообщений, которые предназначены для мониторинга состояния узлов кластера, по кластерному сетевому интерфейсу будут идти данные синхронизации и управления.
INFO
-
Узлы в составе Failover Cluster могут выполнять разные роли – быть почтовым, файловым, DHCP или веб-сервером, сервером печати или баз данных.
-
Следует обратить внимание на то, что Microsoft для Failover Cluster поддерживает только совместимое «Certified for Windows Server 2008″ оборудование. Для определения готовности систем и сети предусмотрен ряд тестов в Validate a Configuration wizard, они входят в состав консоли Failover Cluster Management.
-
Настройка NLB в Win2k3 рассмотрена в статье «Непотопляемый сервер», которую найдешь в X_02_2008.
-
Мы рассмотрели создание кластера для файлового сервера, но в остальных случаях (для почты, печати, SQL, DHCP, etc) принцип настройки аналогичен.
WWW
-
Ознакомиться со списком всех изменений в Failover Cluster можно в документе по адресу .
WARNING
-
Варианты Win2k8 Web Server и Standard не поддерживают кластерную службу Failover Cluster.
-
Win2k8 не поддерживает NLB (Network Load Balancing, Служба балансировки сетевой нагрузки) и Failover Cluster на одном сервере.
Статья опубликована в октябрьском номере журнала «Xakep» за 2008 год.





