ГЕННАДИЙ ДМИТРИЕВ
Создание кластера на базе Windows 2000/2003.
Шаг за шагом
Кластер – это группа из двух или более серверов, действующих совместно для обеспечения безотказной работы набора приложений или служб и воспринимаемых клиентом как единый элемент. Узлы кластера объединяются между собой с помощью аппаратных сетевых средств, совместно используемых разделяемых ресурсов и серверного программного обеспечения.
Microsoft Windows 2000/2003 поддерживает две технологии кластеризации: кластеры с балансировкой нагрузки (Network Load Balancing) и кластеры серверов.
В первом случае (кластеры с балансировкой нагрузки) служба Network Load Balancing придает службам и приложениям свойства высокого уровня надежности и масштабируемости за счет объединения до 32 серверов в единый кластер. Запросы от клиентов в данном случае распределяются среди узлов кластера прозрачным образом. При отказе узла кластер автоматически изменяет свою конфигурацию и переключает клиента на любой из доступных узлов. Этот режим конфигурации кластера также называется active-active режимом, когда одно приложение работает на нескольких узлах.
Кластер серверов распределяет свою нагрузку среди серверов кластера, причем каждый сервер несет свою собственную нагрузку. Если происходит отказ узла в кластере, то приложения и службы, настроенные на работу в кластере, прозрачным образом перезапускаются на любом из свободных узлов. Кластеры серверов используют разделяемые диски для обмена данными внутри кластера и для обеспечения прозрачного доступа к приложениям и службам кластера. Для них требуется специальное оборудование, но данная технология обеспечивает очень высокий уровень надежности, поскольку сам кластер не имеет какой-либо единственной точки отказа. Этот режим конфигурации кластера также называется active-passive режимом. Приложение в кластере работает на одном узле с общими данными, расположенными на внешнем хранилище.
Кластерный подход к организации внутренней сети дает следующие преимущества:
- Высокий уровень готовности.
То есть, если происходит сбой службы или приложения на каком-то узле кластера, настроенного на совместную работу в кластере, кластерное программное обеспечение позволяет перезапустить это приложение на другом узле. Пользователи при этом ощутят кратковременную задержку при проведении какой-то операции либо вообще не заметят серверного сбоя.
Для приложений, работающих в кластере, добавление серверов к кластеру означает увеличение возможностей: отказоустойчивости, распределение нагрузки и т. д.
Администраторы, используя единый интерфейс, могут управлять приложениями и службами, устанавливать реакцию на сбой в узле кластера, распределять нагрузку среди узлов кластера и снимать нагрузку с узлов для проведения профилактических работ.
В этой статье я попытаюсь собрать свой опыт по созданию кластерных систем на базе Windows и дать небольшое пошаговое руководство по созданию двухузлового кластера серверов с разделяемым хранилищем данных.
Системные рекомендации
Требования к программному обеспечению:
- Microsoft Windows 2000 Advanced (Datacenter) Server или Microsoft Windows 2003 Server Enterprise Edition, установленные на всех серверах кластера.
- Установленная служба DNS. Немного поясню. Если вы строите кластер на основе двух контроллеров домена, то намного удобнее использовать службу DNS, которую вы в любом случае устанавливаете при создании Active Directory. Если вы создаете кластер на основе двух серверов, членов Windows NT домена, то вам придется использовать либо службу WINS, либо заносить соответствие имен и адресов машин в файл hosts.
- Terminal Services для удаленного управления серверами. Не обязательно, но при наличии Terminal Services удобно управлять серверами со своего рабочего места.
Требования к аппаратному обеспечению:
- Аппаратное обеспечение для узла кластера лучше подбирать, основываясь на Cluster Service Hardware Compatible List (HCL). По рекомендациям Microsoft аппаратное обеспечение должно быть протестировано на совместимость с Cluster Services.
- Соответственно вам понадобятся два сервера, имеющих по два сетевых адаптера; SCSI-адаптер, имеющий внешний интерфейс для подключения внешнего массива данных.
- Внешний массив, имеющий два внешних интерфейса. Каждый из узлов кластера подключается к одному из интерфейсов.
Замечание: для создания двухузлового кластера совсем не обязательно иметь два абсолютно одинаковых сервера. После сбоя на первом сервере у вас будет немного времени, чтобы проанализировать и восстановить работу основного узла. Второй же узел будет работать на безотказность системы в целом. Однако это не означает, что второй сервер будет простаивать. Оба узла кластера могут спокойно заниматься своими делами, решать разные задачи. А вот некий критический ресурс мы и можем настроить на работу в кластере, увеличив его (этого ресурса) отказоустойчивость.
Требования к сетевым настройкам:
- Уникальное NetBIOS имя для кластера.
- Пять уникальных статических IP-адресов. Два для сетевых адаптеров на кластерную сеть, два для сетевых адаптеров на общую сеть и один для кластера.
- Доменная учетная запись для кластерного сервиса (Cluster service).
- Все узлы кластера должны быть либо member server в домене, либо контроллерами домена.
- Каждый сервер должен иметь два сетевых адаптера. Один для подключения в общую сеть (Public Network), второй для обмена данными между узлами кластера (Private Network).
Замечание: по рекомендациям Microsoft ваш сервер должен иметь два сетевых адаптера, один для общей сети, второй для обмена данными внутри кластера. Можно ли строить кластер на одном интерфейсе – наверное, да, но я не пробовал.
Схема двухузлового кластера на базе Windows 2000/2003 с внешним массивом данных
Установка кластера
При проектировании кластера вы должны понимать, что, используя одну физическую сеть как для кластерного обмена, так и для локальной сети, вы увеличиваете процент отказа всей системы. Поэтому крайне желательно для кластерного обмена данными использовать одну подсеть, выделенную в отдельный физический элемент сети. А для локальной сети стоит использовать другую подсеть. Тем самым вы увеличиваете надежность всей системы в целом.
В случае построения двухузлового кластера один коммутатор используется общей сетью. Два сервера кластера можно связать между собой кросс-кабелем напрямую, как показано на рисунке.
Установка двухузлового кластера может быть разделена на 5 шагов.
- Установка и настройка узлов в кластере.
- Установка и настройка разделяемого ресурса.
- Проверка дисковой конфигурации.
- Конфигурирование первого узла кластера.
- Конфигурирование второго узла в кластере.
Это пошаговое руководство позволит вам избежать ошибок во время установки и сэкономить массу времени. Итак, начнем.
Установка и настройка узлов
Мы немного упростим задачу. Поскольку все узлы кластера должны быть либо участниками домена, либо контроллерами домена, то корневым держателем каталога AD (Active Directory) сделаем 1-й узел кластера, на нем же будет работать DNS-служба. 2-й узел кластера будет полноправным контроллером домена.
Установку операционной системы я готов пропустить, полагая, что в этом у вас не должно быть каких-то проблем. А вот конфигурацию сетевых устройств хочется пояснить.
Сетевые настройки
Перед началом установки кластера и Active Directory необходимо выполнить сетевые настройки. Все сетевые настройки хочется разделить на 4 этапа. Для распознавания имен в сети желательно иметь DNS-сервер с уже существующими записями о серверах кластера.
Каждый сервер имеет по две сетевые карты. Одна сетевая карта будет служить для обмена данными между узлами кластера, вторая будет работать на клиентов в нашей сети. Соответственно первый назовем Private Cluster Connection, второй назовем Public Cluster Connection.
Настройки сетевых адаптеров для одного и для другого сервера идентичны. Соответственно я покажу, как настроить сетевой адаптер и дам табличку с сетевыми настройками всех 4 сетевых адаптеров на обоих узлах кластера. Для настройки сетевого адаптера необходимо выполнить следующие шаги:
- «My Network Places –> Properties».
- «Private Cluster Connection –> Properties –> Configure –> Advanced». Этот пункт требует пояснений. Дело в том, что по настоятельным рекомендациям Microsoft на всех сетевых адаптерах узлов кластера должна быть установлена оптимальная скорость работы адаптера, как показано на следующем рисунке.
- «Internet Protocol (TCP/IP) –> Properties –> Use the following IP: 192.168.30.1». (Для второго узла используйте адрес 192.168.30.2). Введите маску подсети 255.255.255.252. В качестве адреса DNS-сервера для обоих узлов используйте адрес 192.168.100.1.
- Дополнительно на вкладке «Advanced –> WINS» выберите пункт Disabled NetBIOS over TCP/IP. Для настроек сетевых адаптеров общей (Public) сети этот пункт опустите.
- Проделайте то же самое с сетевой картой для локальной сети Public Cluster Connection. Используйте адреса, приведенные в табличке. Единственная разница в конфигурации двух сетевых плат состоит в том, что для Public Cluster Connection не требуется выключения режима WINS – NetBIOS over TCP/IP.
Для конфигурирования всех сетевых адаптеров на узлах кластера используйте следующую табличку:
Узел
|
Сетевое имя
|
IP address
|
MASK
|
DNS Server
|
1
|
Public Cluster Connection
|
192.168.100.1
|
255.255.255.0
|
192.168.100.1
|
1
|
Private Cluster Connection
|
192.168.30.1
|
255.255.255.252
|
192.168.100.1
|
2
|
Public Cluster Connection
|
192.168.100.2
|
255.255.255.0
|
192.168.100.1
|
3
|
Private Cluster Connection
|
192.168.30.2
|
255.255.255.252
|
192.168.100.1
|
Установка Active Directory
Поскольку моя статья не преследует цель рассказать об установке Active Directory, то этот пункт я опущу. Всевозможных рекомендаций, книг об этом написано достаточно много. Выберете доменное имя, вроде mycompany.ru, установите Active Directory на первом узле, добавьте второй узел в домен в качестве контроллера домена. Когда все сделаете, проверьте конфигурации серверов, Active Directory.
Установка Cluster User Account
По рекомендациям Microsoft для Cluster Service следует создать отдельную учетную запись, от имени которой он будет работать. Эта учетная запись должна быть создана до установки Cluster Service:
- «Start –> Programs –> Administrative Tools –> Active Directory Users and Computers».
- Добавьте нового пользователя, например, ClusterService.
- Установите флажки на: User Cannot Change Password и Password Never Expires.
- Также добавьте этого пользователя в группу администраторов и дайте ему права «Log on as a service» (права назначаются в «Local Security Policy» и «Domain Controller Security Policy»).
Настройка внешнего массива данных
Для настройки внешнего массива данных в кластере необходимо помнить, что перед установкой Cluster Service на узлах вы должны сначала сконфигурировать диски на внешнем массиве, только потом устанавливать службу кластера сначала на первом узле, только потом на втором. В случае нарушения порядка установки у вас произойдет сбой, и вы не достигнете цели. Можно ли будет исправить – наверное, да. Когда появится ошибка, у вас будет время, чтобы поправить настройки. Но Microsoft столь загадочная штука, что совсем не знаешь, на какие грабли наступишь. Проще иметь перед глазами пошаговую инструкцию и не забывать нажимать на кнопки. По шагам конфигурирование внешнего массива выглядит так:
- Оба сервера должны быть выключены, внешний массив включен, подсоединен к обоим серверам.
- Включаем первый сервер. Получаем доступ к дисковому массиву.
- Проверяем, чтобы внешний дисковый массив был создан как Basic. Если это не так, то переведем диск с помощью опции Revert to Basic Disk.
- Создаем на внешнем диске через «Computer Manage-ment –> Disk Management» небольшой раздел. По рекомендациям Microsoft он должен быть не менее 50 Мб. Я рекомендую создать раздел в 500 Мб или чуть больше. Для размещения кластерных данных этого вполне достаточно. Раздел должен быть отформатирован в NTFS.
- На обоих узлах кластера этот раздел будет назван одной буквой, например, Q. Соответственно при создании раздела на первом сервере выберем пункт Assign the following drive letter – Q.
- Оставшуюся часть диска вы можете разметить по своему желанию. Конечно, крайне желательно использовать файловую систему NTFS. Например, при настройке служб DNS, WINS основные базы служб будут перенесены на общий диск (не системный том Q, а второй, созданный вами). И по соображению безопасности вам будет удобнее использовать именно NTFS-тома.
- Закрываем Disk Management и проверяем доступ к вновь созданному разделу. Например, можно создать на нем текстовый файл test.txt, записать и удалить. Если все прошло нормально, то с конфигурацией внешнего массива на первом узле мы закончили.
- Теперь выключаем первый сервер. Внешний массив должен быть включен. Включаем второй сервер и проверяем доступ к созданному разделу. Также проверим, чтобы буква, назначенная первому разделу, была идентична выбранной нами, то есть Q.
На этом конфигурация внешнего массива завершена.
Установка Cluster Service Software
Конфигурация первого узла кластера
Перед началом установки Cluster Service Software все узлы кластера должны быть выключены, все внешние массивы должны быть включены. Перейдем к конфигурации первого узла. Внешний массив включен, первый сервер включен. Весь процесс установки происходит с использованием Cluster Service Configuration Wizard:
- «Start –> Setting –> Control Panel –> Add/Remove Programs».
- Выбираем Add/Remove Windows Components.
- Выберем Cluster Service и нажмем Next. Во время установки система попросит указать расположение файлов с дистрибутива, соответственно либо воспользуемся CD-ROM-диском, либо укажем расположение файлов на локальном диске.
- На экране появится диалоговое окно с текстом примерно следующего содержания: вы должны понимать, что используете железо, рекомендованное и тестированное Microsoft в кластерных системах. Соответственно все компоненты системы должны быть перечислены в HCL (Hardware Compatibility List). Нажимаем I Understand и следуем дальше.
- В следующем диалоговом окне выбираем The first node in the cluster, как показано на следующем рисунке.
- В следующем окне введите имя кластера, например, MyCluster, и нажмите далее.
- Введите имя пользователя и пароль, от имени которого будет работать Cluster Service. Если помните, несколько шагов назад мы создавали такого пользователя и назвали его ClusterService. Введите domain name (mycompany.ru) и нажмите «NEXT».
- На следующем этапе вас попросят сконфигурировать кластерные диски. Соответственно диск Q, который мы создавали, будет использоваться для обмена данными между узлами кластера. Как показано на рисунке, выберите диск Q и нажмите «NEXT».
- Следующий шаг – это конфигурирование сетевых адаптеров для использования в кластере. Для внутреннего сетевого адаптера, используемого для кластерного обмена данными между узлами внутри кластера, выбираем пункты, как показано на следующем рисунке (Enable this network for cluster use и Internal cluster communications only):
- Для внешнего сетевого адаптера (локальная сеть) устанавливаем следующие параметры: Enable this network for cluster use и All communications (mixed network), как показано на рисунке:
- В этом примере мы сконфигурировали два сетевых адаптера на одном узле кластера. Один из них Public Cluster Connection используется для обмена данными в локальной сети. Второй – Private Cluster Connection используется для обмена данными внутри кластера. После конфигурации сетевых адаптеров нажмем далее и перейдем к конфигурации IP-адреса кластера. Введем уникальный IP-адрес (192.168.100.5) и маску подсети (255.255.255.0), как показано на следующем рисунке.
- После завершения установки Cluster Service Software на первом узле, система автоматически присвоит выбранный IP-адрес нашему кластеру, сконфигурирует сетевые адаптеры и сетевые диски. После завершения установки можно использовать Cluster Administrator для управления ресурсами кластера.
Конфигурация второго узла кластера
Для установки и конфигурирования второго узла кластера необходимо, чтобы первый узел был включен, все сетевые диски были включены. Процедура настройки второго узла очень напоминает ту, что я описал выше. Однако есть небольшие изменения. Для этого используйте следующую инструкцию:
- В диалоговом окне Create or Join a Cluster выберите The second or next node in the cluster и нажмите далее.
- Введите имя кластера, которое мы задали ранее (в примере это MyCluster), и нажмите далее.
- После подключения второго узла к кластеру Cluster Service Configuration Wizard автоматически заберет все установки с основного узла. Для запуска службы Cluster Service используйте имя, которые мы создавали ранее.
- Введите пароль вашей учетной записи и нажмите далее.
- В следующем диалоговом окне нажмите Finish для завершения установки.
- Cluster service будет запушен на втором узле.
- Закройте окно Add/Remove Programs.
Для установки дополнительных узлов кластера используйте эту же инструкцию.
Постскриптум, благодарности и прочее
Чтобы вам не запутаться со всеми этапами установки кластера, приведу небольшую табличку, в которой отражены все основные этапы.
Шаг
|
Узел 1
|
Узел 2
|
Внешний массив
|
Комментарий
|
Установки сетевого окружения
|
Включен
|
Включен
|
Выключен
|
Оба узла кластера включены. Конфигурирование сетевых плат, сетевого окружения. При необходимости должен быть установлен Active Directory. Проверка настроек. Создание учетной записи для Cluster Service.
|
Конфигурирование внешнего дискового массива
|
Включен
|
Выключен
|
Включен
|
Включены первый узел и дисковый массив. Создание томов на дисковом массиве. Проверка конфигурации.
|
Проверка настроек дискового массива
|
Выключен
|
Включен
|
Включен
|
Первый узел выключен. Включены второй узел и дисковый массив. Проверка доступа к томам на дисковом массиве на втором узле. Конфигурация томов.
|
Конфигурирование первого узла
|
Включен
|
Выключен
|
Включен
|
Включены первый узел и дисковый массив.
Установка и настройка Cluster Service на первом узле.
|
Конфигурирование второго узла
|
Включен
|
Включен
|
Включен
|
Включены первый и второй узел и внешний дисковый массив. Подключение второго узла в кластер, конфигурирование второго кластера.
|
Завершение установки
|
Включен
|
Включен
|
Включен
|
Все включено. Проверка состояния кластера. Тесты на аварийное завершение узла кластера.
|
Время реакции кластера на непредвиденные ситуации зависит от множества параметров. Это тип ресурса, свойства ресурса, свойства группы ресурсов и времени, необходимого ресурсу на загрузку. Например, загрузка базы данных сервера DHCP происходит достаточно быстро. Однако перевод Exchange-сервера может занять до нескольких секунд. Это время, необходимое Exchange-серверу произвести быструю проверку целостности базы и загрузить все необходимые компоненты. В частности, мы экспериментировали с серверами WINS и DHCP, длительность реакции на отказ сервиса не превышала 1.5 секунд. А время реакции Exchange-сервера составляла около 10 секунд, это выражалось в небольшом тайм-ауте в работе клиента.
По завершении всех этих операций вы получите полностью работающий двухузловой кластер. В качестве ресурсов кластера можно использовать внутренние службы WINS, DNS, DHCP, можно настроить IIS-сервер на работу внутри кластера. Можно использовать внешние приложения, главное, чтобы они поддерживали кластерные технологии Microsoft. Можно бесконечно долго спорить о том, нужна ли данная технология. На мой взгляд, каждое решение должно быть обосновано и грамотно реализовано. Я лишь попытался поделиться своим опытом создания такой системы.
Хочется выразить глубокую благодарность за неоценимую интеллектуальную помощь Андрееву Павлу, системному администратору Novavox.