Рубрика:
Администрирование /
Администрирование
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Андрей Бирюков
Разворачиваем кластер на основе Windows Server 2003
Отказоустойчивые кластеры широко распространены в сетях средних и крупных компаний. Но у многих администраторов внедрение и обслуживание кластерных систем по-прежнему вызывает много вопросов. Рассмотрим реализацию отказоустойчивого кластера на основе Windows Server 2003.
Приступая к работе
Одним из необходимых условий стабильного функционирования сети крупной организации является отказоустойчивость. Даже минутный сбой может привести к весьма неприятным последствиям.
Так, например, во время перезагрузки почтового сервера в разгар рабочего дня сотрудники компании будут получать сообщения об ошибке и, как правило, звонить в службу технической поддержки компании, прибавляя работы системным администраторам.
Это особенно неприятно, когда о недоступности почты или любого другого сервиса сообщает руководство. Избежать подобных проблем можно с помощью отказоустойчивых кластеров.
Кластер серверов – это группа независимых узлов, которые взаимодействуют как одна система. Они используют общую базу данных кластера, которая позволяет выполнять восстановление в случае отказа любого узла.
Данные решения могут быть как аппаратными, так и программными. Выбор зависит от размера вашей организации, критичных для бизнеса приложений и, естественно, бюджета, выделяемого на IT-инфраструктуру.
В своей статье я рассмотрю программную реализацию двухузлового кластера на основе службы Microsoft Clustering Service. Такое решение является наиболее приемлемым для организаций средних размеров с небольшим IT-бюджетом.
Прежде всего я поставлю задачу, решению которой будет посвящена эта статья.
У нас имеется два сервера с идентичной аппаратной частью. Требование идентичности не является обязательным, но желательно, чтобы мощность серверов была сходной.
Необходимо объединить их в отказоустойчивый кластер. В качестве примера настройки отказоустойчивого ресурса я настрою службу File Share.
Подробнее о типах кластеризуемых ресурсов мы поговорим чуть позже.
О редакциях и лицензиях
Перед тем как начать описание процесса установки и настройки кластера, нам необходимо определиться с редакциями операционной системы, которая будет использоваться, а также рассмотреть вопросы лицензирования.
При построении кластера следует запомнить, что наиболее распространенная редакция Windows Server 2003 Standard не поддерживает кластеризацию.
Таким образом, при построении отказоустойчивой системы следует использовать Windows Server 2003 Enterprise Edition.
Кстати, редакцию Enterprise нужно использовать и при построении кластеров для Microsoft Exchange и Microsoft SQL Server 2000. В противном случае вы не сможете кластеризовать почту и базы данных.
Что касается вопросов лицензирования, то необходимо приобретать серверную лицензию на операционную систему на каждый узел кластера. Плюс лицензии клиентского доступа (CAL) в том же количестве, что и для одного сервера.
Поясню на примере. Если у вас в организации 250 пользователей и вы разворачиваете двухузловой кластер, то вам необходимо приобрести две серверные лицензии на Windows Server 2003 и 250 лицензий клиентского доступа.
Таким образом, количество узлов в кластере не влияет на число клиентских лицензий.
Новые понятия
Для лучшего понимания концепции кластеризации мы рассмотрим несколько основных понятий.
Отказоустойчивый кластер, как правило, состоит из четырех узлов, использующих общий дисковый ресурс для обмена данными. Этот ресурс также именуется кворум-устройством (quorum).
В идеале это кворум-устройство должно представлять из себя отдельное аппаратное хранилище данных с собственной поддержкой отказоустойчивости (диски RAID 1, RAID 5), подключающееся ко всем узлам кластера.
Подобные решения предоставляют IBM, EMC и другие производители.
Но в случае ограниченных финансовых возможностей компании для создания кворум-устройства можно использовать диск на разделяемой SCSI-шине, подключенный ко всем узлам кластера.
Кластер содержит два различных типа сетей: частная сеть, которая используется для поддержки соединений между узлами кластера, и сеть общего пользования (локальная сеть), которая используется клиентами кластера для подсоединения к службам в этом кластере. Обе эти сети могут совместно использовать одну сетевую карту и одно физическое соединение, но лучше держать их отдельно.
Поскольку соединение между узлами кластера – это потенциальная точка отказа, оно всегда должно предусматривать избыточность.
В случае, если используются два сетевых интерфейса, то при отказе одного из них администратор сможет без особых усилий переключиться на использование второго. К тому же использование двух интерфейсов увеличивает скорость обмена данными и в конечном счете увеличивает скорость работы всего кластера в целом.
Следующим важным понятием кластеризации являются группы.
Группы – это блоки для перехода по отключению (failover). Каждая группа содержит один или несколько ресурсов. При отказе любого из ресурсов внутри группы для всей группы выполняется совместный переход по отключению согласно политике перехода по отключению, определенной для данной группы.
В любой момент времени группа может принадлежать только одному узлу. При отказе какого-либо ресурса внутри группы он должен быть перемещен в альтернативный узел вместе со всеми остальными ресурсами этой группы.
При устранении причины отказа исходного узла вся группа передается назад в исходный узел в соответствии с политикой возврата после восстановления (failback) для данной группы.
Ресурсы – наше все
Следующим понятием являются ресурсы – логические или физические элементы, которые можно подсоединять или отсоединять от сети.
В систему Windows Server 2003 Enterprise Edition включено несколько различных типов ресурсов:
- Physical Disk;
- DHCP;
- WINS;
- Print Spooler;
- File Share;
- Internet Protocol Address;
- Local Quorum;
- Majority Node Set;
- Network Name;
- Generic Application;
- Generic Script;
- Generic Service.
Несколько слов по каждому из видов ресурсов.
Physical Disk используется для кворум-ресурса. Требуется для всех серверов кластера.
DHCP и WINS используются в качестве ресурса кластера для обеспечения отказоустойчивости данных служб.
Print Spooler позволяет кластеризовать службы печати.
Тип ресурса File Share позволяет управлять разделяемыми файловыми системами тремя различными способами:
- Стандартный разделяемый файловый ресурс, когда видна только папка верхнего уровня, представленная разделяемым именем.
- С разделяемыми подпапками, когда папка верхнего уровня и каждая из ее непосредственных подпапок предоставляются для разделяемого доступа с различными именами.
- Автономный корень распределенной файловой системы Dfs (Distributed File System). Но вы не можете использовать ресурс File Share кластерного сервера как часть отказоустойчивого корня Dfs.
Internet Protocol Address и Network Name используется для создания виртуального сервера, который позволяет клиентам использовать то же имя для доступа к кластеру даже после перехода по отключению failover.
Ресурс Local Quorum используется для управления системным диском в локальном узле кластера.
Majority Node Set применяется для управления конфигурацией данных кластера, которые могут располагаться на ЗУ кластера или вне этого устройства. Используется для согласования данных между географически разбросанными устройствами.
Тип ресурса Generic Application позволяет вам управлять в кластере обычными приложениями, не распознающими своего присутствия в кластере.
Generic Script – управление сценариями операционной системы как кластерным ресурсом.
Generic Service – позволяет управлять службами Windows Server 2003 как ресурсами кластера.
Важность планирования
Для стабильной работы кластера необходимо заранее спланировать, какие приложения будут выполняться, а также точно выбрать, без каких приложений вы можете обойтись и какие приложения должны поддерживаться при любых обстоятельствах.
Вначале необходимо определить количество групп или виртуальных серверов.
Приложения и ресурсы, находящиеся в одной группе, будут передаваться по отключению все вместе одному серверу. То есть вам необходимо определить, какие приложения зависят друг от друга, и им требуется совместная работа.
Таким образом, перед началом развертывания кластера вам необходимо составить список всех приложений в вашей среде, четко определить, для каких из них допускается отказ, а для каких требуется переход по отключению.
Далее определите зависимость этих приложений и ресурсы, которые им требуются для работы. Зависимые приложения нужно объединить в одну группу.
Обратите внимание на то, что ресурс не может охватывать группы, поэтому если несколько приложений зависят от ресурса, они должны содержаться в одной группе или в одном виртуальном сервере, тогда будут использоваться одни и те же политики перехода по отключению и после восстановления.
Приведу небольшой пример построения дерева зависимостей для ресурса File Share.
Очевидно, что этот ресурс зависит от Physical Disk, так как это основной ресурс, используемый всеми узлами кластера. Далее для ресурсов общего доступа важно сетевое имя Network Name. Но в свою очередь Network Name не может использоваться без IP Address.
Таким образом, получаем следующие зависимости: ресурс File Share явно зависит от Physical Disk и Network Name и неявно – от IP Address.
В случае, если вы забудете указать какую-либо зависимость, вы получите сообщение об ошибке в процессе установки ресурса.
Завершая тему планирования, хочу напомнить, что каждый из узлов кластера должен обладать достаточной мощностью и не быть перегружен дополнительными, некластеризованными приложениями, так как в случае, если после переключения хозяином ресурса оказался менее мощный сервер, это обязательно отразится на быстродействии приложений, и, возможно, приведет к сбоям.
Установка
Обсудив особенности реализации Microsoft Cluster Service, приступим непосредственно к развертыванию.
Первым делом на каждый из узлов устанавливаем Windows Server 2003 Enterprise Edition.
Сам процесс установки стандартный и описывать его в статье нет смысла. Единственное, о чем следует упомянуть, – это IP-адресация. Необходимо сразу выставить фиксированные адреса, чтобы впоследствии не возникло проблем с соединением.
После успешной установки необходимо дать имена каждому из узлов кластера. Для простоты назовем узлы Node1 и Node2.
Далее на сервере Node 1 заходим в «Administrative Tools -> Cluster Administrator». В окне «Open Connection to Cluster» выбираем «Create new cluster». Запустится мастер создания нового кластера.
В следующем окне необходимо указать имя домена, в котором находятся узлы, а также имя кластера (см. рис. 1).
Рисунок 1. Имя кластера и домен
Далее в поле Computer Name указываем имя первого узла в кластере. На следующем этапе мастер автоматически анализирует конфигурацию (см. рис. 2).
Рисунок 2. Результат проверки конфигурации
Если проверка по всем пунктам закончилась успешно, то в следующем окне вам необходимо указать IP-адрес кластера.
Затем требуется указать учетную запись, из под которой кластер будет запускаться. Это может быть существующая или новая учетная запись. Данному пользователю будут предоставлены права локального администратора на всех узлах кластера.
Наконец, переходим к последней странице, в которой выводятся данные для подтверждения. Здесь можно указать кворум-устройство, как показано на рис. 3.
Рисунок 3. Страница с предлагаемыми настройками
При нажатии «Next» запускается процесс установки кластера, внешне схожий с уже описанным анализом конфигурации.
После успешной установки должно открыться окно администрирования созданного нами нового кластера для дальнейшей работы.
Работа над ошибками
При установке кластера могут возникнуть различные проблемы. Я опишу решение некоторых из них. Как правило, большинство проблем выявляются на этапе анализа конфигурации кластера. На рис. 4 показано, как это может выглядеть.
Рисунок 4. Обнаружение ошибок в конфигурации
Как видно, при анализе были обнаружены две ошибки, вернее, проблемы. Так как полоска Task Completed зеленого цвета, можно продолжать установку, но лучше сначала разрешить проблемы.
Итак, что же было найдено в процессе анализа системы:
- Не найдено кворум-устройство. Как уже обсуждалось ранее, оно представляет собой SCSI-диск, используемый всеми узлами кластера. Если вы получили такое сообщение, проверьте правильность подключения к SCSI-шине серверов. Также проверьте наличие данного диска в разделе «Administrative Tools -> Computer Management -> Disk Management».
- На сервере найден только один сетевой адаптер. Большинство промышленных серверов имеют две сетевые карты, так что это довольно редкая ошибка. Но если она появилась, то необходимо проверить работоспособность второго адаптера. В случае, если вы хотите использовать только один интерфейс, воспользуйтесь описанием из раздела «Добавляем узлы».
Еще одной ошибкой, проявляющейся в процессе анализа, является динамическое присвоение IP-адресов сетевым адаптерам. Как я уже упоминал, в процессе установки необходимо присвоить статические адреса сетевым адаптерам.
Для идентификации более сложных ошибок можно воспользоваться кнопкой «View Log» для просмотра детального журнала событий.
Добавляем узлы
Теперь необходимо добавить узел в кластер. Но прежде сделаем несколько дополнительных настроек. В консоли Cluster Administration выбираем «Cluster Configuration», далее «Networks» (см. рис. 5).
Рисунок 5. Настройки сети для кластера
У каждого узла кластера два сетевых интерфейса, при этом один подключен к локальной сети (LAN), а второй используется для взаимодействия между узлами кластера (Heartbeat).
Поочередно откройте закладку «Properties» для каждого из этих сетевых интерфейсов.
Для LAN в свойствах необходимо указать «Client Access Only (public only)», а для Heartbeat выбираем «Internal Cluster Communications Only (private network)».
Таким образом, теперь у нас интерфейс LAN будет использоваться только для внешнего взаимодействия, а Heartbeat – только для обмена информацией между узлами кластера. Это позволяет увеличить быстродействие системы вцелом.
Только не забудьте также разграничить сегменты на сетевом уровне. То есть сегмент, содержащий соединения Heartbeat, должен быть подключен в отдельный коммутатор или концентратор (не в ту же физическую сеть что и LAN!) из соображений безопасности и надежности.
В данном случае использование концентратора может оказаться даже предпочтительнее, так как он не содержит кэш MAC-адресов, а сеть Heartbeat в данном случае используется только для проверки доступности узлов и выбора нового в случае отказа.
Если вы хотите использовать только один интерфейс, то укажите Internal and Client Access в свойствах LAN и Heartbeat. При этом и LAN и Heartbeat будут содержать один физический интерфейс.
Итак, мы оптимизировали настройки сетевых интерфейсов узла кластера и теперь переходим к следующему этапу – добавлению второго узла. Для этого на втором сервере также запускаем «Administrative Tools -> Cluster Administrator».
Только теперь выбираем «Add nodes to cluster» и указываем имя кластера.
На следующем шаге прописываем имя сервера, который будет использоваться в кластере.
Затем запускается анализ конфигурации. В случае завершения анализа без серьезных ошибок на следующем шаге указываем учетную запись, которая использовалась при создании кластера. Далее производится установка служб кластера на второй сервер. Полученный результат смотрите на рис. 6.
Рисунок 6. Двухузловой кластер
На этом, собственно, сам процесс установки кластера заканчивается. В случае, если необходимо добавить еще узлы, достаточно проделать вышеописанные операции по добавлению сервера.
Настраиваем ресурсы
Теперь необходимо подключить ресурсы, которые будут использоваться в нашем кластере.
Как упоминалось в начале статьи, мы будем настраивать ресурсы для службы File Share.
Для этого мы сначала создадим новую группу на виртуальном сервере HOME.
Перед созданием группы необходимо определиться с её расположением. Можно, конечно, поместить ресурсы в главную группу Clusters, но лучше сразу группировать в соответствии с их предназначением. Тем более потому, что управление политиками перехода по отключению осуществляется на уровне групп.
Поэтому для создания нашего ресурса типа File Share нужно сделать следующее:
- создать группу, которая будет содержать нужные ресурсы;
- создать ресурс типа Physical Disk;
- создать ресурс типа IP Address;
- создать ресурс типа Network Name;
- создать ресурс типа File Share.
Начнем с создания кластерной группы.
Для этого в консоли «Cluster Administrator» щелкните на папке «Active Groups» для сервера, на котором будет находиться ресурс типа File Share, и выберите пункт «Group» в меню «New». Появится окно мастера создания группы «New Group Wizard» (см. рис. 7).
Рисунок 7. Новая группа
Далее введите имя группы (File Share) и описание (User’s folders).
В следующем окне необходимо указать предпочтительных владельцев ресурса Preffered Owners. Здесь можно указать несколько узлов в зависимости от их предпочтительности.
К примеру, вполне логично в начале списка указать наиболее мощные и менее загруженные узлы кластера.
В нашем случае необходимо выбрать узел и нажать «Add», затем аналогично добавить Node 2. После нажатия кнопки «Finish» группа будет создана.
Но обратите внимание на то, что сейчас она находится в автономном состоянии, так как с ней не связаны никакие активные ресурсы.
Теперь пришло время создать ресурс типа Physical Disk. Для этого щелкните правой кнопкой мыши на только что созданной группе и выберите пункт «Resource».
Заполните поля Name и Description и выберите в раскрывающемся списке «Resource Type» вариант «Physical Disk».
На следующем шаге укажите возможных владельцев ресурса Possible Owners. Тут нужно указать те машины, которые могут содержать этот ресурс (Node1, Node2).
Далее необходимо указать Dependencies (зависимости). Сейчас страница должна быть пустой, так как это первый ресурс в группе.
На следующем этапе указываем параметры диска (Disk Parameters). В раскрывшемся списке будут представлены все ресурсы типа Physical Disk, которыми может управлять служба кластера.
Следует обратить внимание на тот факт, что эта служба может управлять только базовыми дисками, но не динамическими, и все используемые службой кластера разделы этого диска должны быть отформатированы, как NTFS.
После указания диска нажмите на кнопку «Finish», чтобы создать этот ресурс.
Третьим по списку мы должны создать ресурс типа IP Address.
По аналогии с предыдущим разделом выбираем пункт «Resources» в нашей группе, далее – «New». Указываем тип ресурса – IP Address, затем – возможные владельцы.
В следующем окне, Dependencies, должен появиться уже созданный нами ресурс Physical Disk. Но выбирать его не нужно, так как в данном случае никакой зависимости нет.
На следующей странице необходимо указать настройки для IP-адреса. Затем нажимаем «Finish».
Создадим ресурс типа Network Name. Для этого необходимо еще раз проделать все те действия, которые мы выполняли ранее для других типов ресурсов.
Но в разделе Dependencies теперь необходимо указать зависимость от ресурса IP Address.
Приступаем к завершающему этапу в создании кластерного ресурса File Share.
Повторим все те же действия, но при указании зависимостей Dependencies необходимо выбрать все три элемента списка.
Далее нажимаем «Next» и в окне File Share Parameters указываем имя разделяемого ресурса и путь.
В разделе Advanced можно указать скрывать ли разделяемые ресурсы-поддиректории.
Разделяемый ресурс создан.
Обратите внимание на то, что по умолчанию для ресурса File Share будут заданы полномочия Read Only. Изменить эту установку можно в окне File Share Parameters.
Итак, мы получили отказоустойчивый ресурс в кластере и тем самым повысили доступность файловых ресурсов с помощью кластеров Microsoft.
Кластеры в виртуальной реальности
Последнее время все более широкое распространение получают виртуальные машины [2].
Виртуальные машины помимо прочего чрезвычайно удобны при разработке и тестировании различных систем, обучении и демонстрации.
Эти свойства особенно полезны при работе с кластерными системами, так как полноценная аппаратная реализация требует определенных, зачастую немалых, финансовых затрат. А с помощью виртуального кластера протестировать систему или подготовиться к сертификационному экзамену можно без каких-либо дополнительных расходов.
К примеру, для того чтобы развернуть двухузловой кластер на основе VMware, мне достаточно было рабочей станции с 1 Гб оперативной памяти. И никаких внешних SCSI-дисков, шумных серверов и прочей аппаратуры.
Так что, если вас интересует реализация кластеров на базе виртуальной машины VMware, то рекомендую обратиться к статье [3].
Заключение
Итак, мы развернули отказоустойчивый двухузловой кластер и установили разделяемый ресурс File Share.
Однако одним из наиболее распространенных применений службы Microsoft Cluster Services является организация кластеров почтовых серверов MS Exchange.
В следующей статье я подробно рассмотрю процесс установки и настройки отказоустойчивой почтовой системы Microsoft Exchange.
- Рассел Ч. Microsoft Windows Server 2003. Справочник администратора.
- Бережной А. Строим сетевую инфраструктуру на основе VMware Server. //Системный администратор, №3, 2007 г. – С. 14-18.
- Статья о развертывании кластера на VMware – http://www.rootpermissions.net/Files/MS_Windows_2003_Cluster_on_VMware_GFX_3.rar.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|