Отказоустойчивые кластеры пригодятся и в небольших организациях

С выходом Windows NT Server 3.51 у администраторов появилась возможность объединять серверы Windows в кластеры с помощью продуктов Microsoft и независимых поставщиков. Кластеризация всегда считалась удачным решением, но раньше мало кто мог себе это позволить. Однако благодаря снижению цен и совершенствованию технологии кластеризация стала гораздо более доступной. Я рекомендую объединять в кластеры серверы даже на малых предприятиях.

Многие считают, что кластер — это группа серверов, в которой при неисправности одного сервера другие серверы без промедления принимают на себя и выполняют ту же задачу. Однако это мнение верно лишь отчасти. Данное определение подходит лишь для одной разновидности кластеров, называемых кластерами с высоким уровнем отказоустойчивости. Кластеры другого вида обеспечивают балансировку сетевой нагрузки (Network Load Balancing, NLB, согласно терминологии Microsoft) и могут быть определены как группа совместно функционирующих компьютеров, которые обеспечивают выполнение общего набора приложений или служб.

Функции организации кластеров с высоким уровнем отказоустойчивости реализованы в Windows Server 2003 Datacenter Edition, Windows Server 2003 Enterprise Edition, Windows 2000 Advanced Server и Windows 2000 Datacenter Server. В данной статье основное внимание уделяется характеристикам и функциональности Windows 2003. Windows 2003 поддерживает кластеры с высоким уровнем отказоустойчивости, содержащие до 8 узлов. В NLB-кластеры, которые можно организовать с использованием всех версий Windows 2003, может входить до 32 узлов.

Нельзя сформировать непрерывно функционирующую вычислительную среду с балансировкой нагрузки, соединив технологии кластеров высокой отказоустойчивости и NLB компании Microsoft. Одновременно можно применять только одну технологию кластеризации. Чтобы получить среду с балансировкой нагрузки и высокой отказоустойчивостью, необходимо обратиться к решениям независимых поставщиков.

NLB используется в средах с интенсивным трафиком и в крупных организациях для формирования ферм Web-серверов и Web-ферм терминальных служб. Но многим предприятиям могут подойти именно кластеры с высокой отказоустойчивостью — например, биржам, системам предварительного заказа авиабилетов, больницам, банкам и казино. Представьте, какой будет реакция директора казино, если попросить его остановить игру на несколько минут для применения пакета обновлений и перезагрузки сервера. Не все предприятия предъявляют к своей информационной инфраструктуре столь жесткие требования, но кластеры с высоким уровнем отказоустойчивости уместны при использовании файл- и принт-серверов, систем Microsoft Exchange Server и Microsoft SQL Server, а также специальных серверов приложений.

Как работает Microsoft Cluster Service

На первый взгляд организовать кластер просто: достаточно подключить несколько компьютеров к общей сети и общему жесткому диску. Однако кластеру необходимо присвоить единый уникальный IP-адрес, а назначать нескольким машинам один IP-адрес нельзя. Кроме того, Windows кэширует дисковую информацию, в том числе содержимое файлов, в оперативной памяти, чтобы увеличить скорость дисковых операций. Windows «не видит» оперативную память другого компьютера, поэтому при записи данных на диск несколькими компьютерами может быть испорчен диск или потеряны данные. Для устранения этой и других проблем специалисты Microsoft разработали службу Microsoft Cluster Service.

Служба Microsoft Cluster Service генерирует фантомный IP-адрес, который представляет кластер и может быть назначен любому из его узлов. Тем не менее каждый компьютер в кластере располагает уникальным IP-адресом. Служба Microsoft Cluster выделяет закрытую область диска (иначе называемую диском кворума — quorum disk), через которую узлы обмениваются параметрами реестра и информацией о состоянии кластера. Служба Microsoft Cluster Service также использует сеть для передачи данных о состоянии узлов между серверами группы.

Служба Microsoft Cluster Service — не полностью отказоустойчивое, а кластерное решение с высокой отказоустойчивостью. Разница заключается в том, что в среде с высокой отказоустойчивостью пользователи выжидают «секундную паузу» (согласно терминологии Microsoft) при переключении задания с отказавшего узла на исправный. В полностью отказоустойчивой среде пауз при переключении нет. При работе с типичным приложением для сферы бизнеса моментальные паузы не представляют серьезной проблемы, но администратор сможет самостоятельно оценить длительность «моментальной» задержки в своем тестовом кластере.

Построение тестового кластера

Обычно администраторы сервера стараются побыстрее отложить в сторону том технической документации и сразу приступить к экспериментам. В данной статье приводится информация, необходимая для организации тестового кластера, а также некоторые рекомендации и указания по вопросам, недостаточно полно изложенным в документации. Хочу предупредить, что эти рекомендации предназначены для домашней или тестовой сети. Не следует применять их на производственных системах Exchange или SQL Server.

Необходимо иметь по крайней мере четыре компьютера; три с Windows 2003 Enterprise Edition и четвертый — с Windows XP или иной клиентской операционной системой. Можно задействовать VMware, но некоторые вещи просто невозможно выполнить с помощью виртуальной машины (VM). Я бы рекомендовал совместно с коллегами провести эксперименты с кластерами в выходные дни. Так будет легче выполнить требования к аппаратным средствам.

Помимо четырех компьютеров (каждый из которых оснащен сетевой платой), потребуются два дополнительных сетевых адаптера, две платы SCSI (я использовал модель Adaptec AHA-2940), внешний SCSI-диск любой емкости, Y-образный кабель SCSI и два 10-Мбит/с или 100-Мбит/с концентратора. Кроме того, понадобятся несколько кабелей Ethernet и файл MP3. Если каких-то аппаратных устройств не хватает, их лучше всего купить на онлайновом аукционе. Заплатив в общей сложности менее 100 долл., там можно приобрести SCSI-диск, SCSI-платы и SCSI-кабель.

Рисунок 1. Архитектура тестового кластера

На рис. 1 показана схема тестового кластера: контроллер домена (DC), два сервера с высокой отказоустойчивостью и рабочая станция; все эти компьютеры подключены к общедоступной сети, именуемой Public. Оба сервера с высокой отказоустойчивостью оснащены вторым сетевым адаптером и подключаются к частной сети, называемой Private. Я полагаю, что желающие смогут самостоятельно установить все серверные программы, исправления и драйверы. По умолчанию Windows 2003 Enterprise Edition устанавливает службу Microsoft Cluster. Перед установкой серверного программного обеспечения на двух серверах с высокой отказоустойчивостью следует установить второй сетевой адаптер и плату SCSI. С помощью Device Manager можно убедиться, что платы SCSI и вторые сетевые адаптеры функционируют корректно. SCSI-диск подключать пока не следует.

Всем сетевым адаптерам назначаются статические IP-адреса — в отсутствие DHCP-сервера удобно использовать жестко заданные IP-адреса серверов. Щелкнув правой кнопкой мыши на My Network Places, следует выбрать пункт Properties и пометить сетевые адаптеры в серверах высокой отказоустойчивости как Public и Private, чтобы в дальнейшем без труда различать их. Для адреса Private не нужен шлюз, выбираемый по умолчанию, так как маршрутизации трафика не требуется. IP-адрес DC нужно указать в качестве предпочтительного сервера DNS на серверах с высокой отказоустойчивостью и рабочей станции. Порты FireWire (IEEE 1394) на серверах с высокой отказоустойчивостью следует отключить, иначе при создании кластера система выдаст соответствующее предупреждение.

Рабочая станция нужна для просмотра и создания текстовых файлов, а также воспроизведения файлов MP3 с сервера. На системе DC можно запустить Dcpromo, назначить ее контроллером домена и организовать лес и домен. В состав домена можно ввести рабочую станцию, но пока не следует добавлять в домен два сервера с высокой отказоустойчивостью.

С помощью Y-образного кабеля SCSI нужно подключить SCSI-диск к SCSI-платам в серверах. SCSI-диск не должен получать питание ни от одной из машин с высокой отказоустойчивостью: один из тестов, которые предстоит выполнить, состоит в отключении компьютера от сети. Затем следует удалить терминатор на диске SCSI и убедиться, что адаптеры SCSI терминированы правильно. В большинстве SCSI-дисков ID установлен в значение 0, что вполне приемлемо. Однако ID одной из плат SCSI, вероятно, придется изменить. По умолчанию идентификаторы SCSI-плат устанавливаются равными 7. Один из них следует изменить на 6, а другой оставить равным 7, иначе обе платы окажутся на одной шине SCSI и возникнет конфликт. Включая компьютеры по одному, можно убедиться, что каждый из них распознает диск SCSI.

Затем следует ввести оба компьютера в состав домена и дать им имена. Я назвал свои d34 и d35, они вошли в состав домена dog.attbi.com. Наконец, необходимо создать учетную запись для кластера. Я назвал свою учетную запись CSerAct-1 (сокращение от Cluster Services Account-1) и назначил ей локальные административные полномочия. В учетной записи следует отменить режим User must change password at next logon и установить флажок Password never expires.

Создание кластера и добавление узлов

Создавая кластер, необходимо сначала дать ему имя. Затем в новый кластер вводятся серверы или узлы. Далее с кластером ассоциируется ресурс, например приложение или служба. Всю процедуру можно выполнить примерно за час.

  • Сначала один из серверов отключен, а другой запущен. На включенном сервере следует щелкнуть на кнопке Start и выбрать из меню пункты Administrative Tools, Cluster Administrator.
  • Необходимо убедиться, что в раскрывающемся списке Open Connection to Cluster выбран вариант Create new cluster, и щелкнуть на кнопке OK, чтобы запустить мастера New Server Cluster Wizard. Затем следует щелкнуть на кнопке Next.
  • Подтвердив, что домен выбран, нужно дать имя первому кластеру. Я выбрал имя Cluster-1. После этого необходимо щелкнуть на кнопке Next.
  • На следующем экране требуется ввести имя компьютера - нужно указать имя первого сервера и щелкнуть на кнопке Next.
  • Служба Microsoft Cluster анализирует конфигурацию (экран 1). Этот процесс запускается автоматически и должен быть завершен за одну-две минуты. После его окончания следует заглянуть в файл журнала, чтобы выяснить, какие параметры отмечены службой Microsoft Cluster.
  • На следующем экране нужно ввести действительный неиспользуемый IP-адрес общедоступной сети для инструментов управления (этот виртуальный IP-адрес отличается от адреса сервера высокой отказоустойчивости). Нажмите Next.
  • Следует ввести имя учетной записи для кластера (в моем случае CSerAct-1). Этой учетной записи даны полномочия локального администратора на всех узлах в кластере. Затем нужно щелкнуть на кнопке Next.
  • Мастер выводит на экран рекомендуемую конфигурацию кластера, которая представляет собой сводку выбранных пользователем параметров. Нажмите Next.
  • Служба Microsoft Cluster создает кластер, и Cluster Administrator предоставляет еще одну возможность просмотреть файл журнала. Щелкните на кнопке Finish, чтобы закрыть мастер.
  • Уделите некоторое время изучению Cluster Administrator и его меню.
Экран 1. Анализ конфигурации кластера

Таким образом создается одноузловой кластер. Чтобы добавить к нему второй узел, необходимо выбрать пункт Add nodes to cluster из раскрывающегося списка Open Connection to Cluster и запустить мастер Add Nodes Wizard. Этот мастер проводит пользователя по тем же шагам, что и New Server Cluster Wizard. В ответ на запрос имени и IP-адреса компьютера следует ввести имя и адрес второго сервера. Альтернативный метод создания второго узла — выбрать пункты New, Node из меню File программы Cluster Administrator. На экране 2 показан двухузловой кластер в окне Cluster Administrator.

Создание ресурса для кластера

Следующая задача после создания кластера — связать кластер с ресурсом. Ресурс может быть совместно используемым файлом, принт-спулером, службой DHCP, WINS или таким приложением, как Exchange или SQL Server. Чтобы создать разделяемый файловый ресурс с высоким уровнем отказоустойчивости на диске SCSI, необходимо создать группу, ресурсы физического диска, IP-адреса, сетевое имя и общий файл, а затем сделать файловый ресурс доступным по сети.

Чтобы сформировать группу, нужно выполнить следующие шаги.

  • На каждом узле кластера или на DC открыть Cluster Administrator и подключиться к кластеру.
  • В одном из узлов щелкнуть правой кнопкой мыши на Active Groups и выбрать из меню пункты New, Group.
  • На первом экране мастера New Group Wizard назначить имя общего файлового ресурса (я использовал имя FileShare-Group-1) и дать ему описание. Затем следует щелкнуть на кнопке Next.
  • В качестве владельцев ресурсов выбрать два сервера с высокой отказоустойчивостью, назначить им полномочия (то есть определить порядок работы) и щелкнуть на кнопке Finish.

Чтобы создать ресурс на физическом диске, необходимо выполнить следующие операции.

  • Щелкнув правой кнопкой мыши на вновь созданной группе, нужно выбрать пункты New, Resource. Этот и другие ресурсы будут составной частью новой созданной группы.
  • Необходимо ввести имя и описание физического диска. В качестве типа ресурса следует выбрать Physical Disk, а в качестве группы - только что сформированную группу (FileShareGroup-1). Затем требуется щелкнуть на кнопке Next.
  • В качестве владельцев следует указать два кластерных узла и нажать Next.
  • Не нужно указывать никаких зависимостей. Физический диск независим от других ресурсов. Щелкните на кнопке Next.

Затем необходимо создать ресурс из IP-адреса. Этот IP-адрес представляет собой виртуальный IP-адрес для SCSI-диска; с его помощью служба Microsoft Cluster обнаруживает SCSI-диск, обслуживаемый одним из серверов с высоким уровнем отказоустойчивости. Виртуальный IP-адрес позволяет любому узлу с высокой отказоустойчивостью направлять запросы к диску.

  • Щелкнув правой кнопкой мыши на группе, необходимо выбрать пункты New, Resource.
  • Требуется ввести имя и описание для IP-адреса. Выбрав IP-адрес для типа ресурса, следует выбрать группу, а затем щелкнуть на кнопке Next.
  • Необходимо указать два узла в качестве владельцев и щелкнуть на кнопке Next.
  • Не следует задавать зависимостей. Щелкните на кнопке Next.
  • Требуется ввести действительный (виртуальный) IP-адрес в общедоступной сети, указать маску подсети и выбрать сеть, а затем щелкнуть на кнопке Finish.

Чтобы задать имя сетевого ресурса, необходимо выполнить следующие шаги.

  • Щелкнув правой кнопкой мыши на группе, выбрать пункты New, Resource.
  • Ввести имя и описание. Для типа ресурса необходимо выбрать Network Name, затем указать группу и щелкнуть на кнопке Next.
  • Выбрать два узла в качестве владельцев и щелкнуть на кнопке Next.
  • Сетевое имя ресурса зависит от его IP-адреса, поэтому следует добавить ресурс IP-адреса в поле в правой части экрана и щелкнуть на кнопке Next.
  • Затем необходимо ввести имя виртуального сервера и щелкнуть на кнопке Finish.

Теперь все готово для создания ресурса разделяемого файла.

  • Необходимо щелкнуть правой кнопкой мыши на группе и выбрать пункты New, Resource.
  • Следует ввести имя и описание. Выбрав IP-адрес для типа ресурса, нужно выбрать группу и нажать Next.
  • Укажите два узла в качестве владельцев и щелкните на кнопке Next.
  • Общий файл как ресурс зависит от корректного функционирования физического диска, IP-адреса и сетевого имени, поэтому названные три ресурса следует ввести в правое поле экрана. Щелкните на кнопке Next.
  • Введите имя, путь и описание общего ресурса.
  • Щелкните на кнопке Permissions. По умолчанию предоставляется разрешение Read Only. Разрешения следует изменить таким образом, чтобы иметь возможность обновлять файлы в ходе тестирования кластера. Нажмите OK.
  • Щелкнув на кнопке Advanced, необходимо выбрать режимы Share Subdirectories и Hide Subdirectories, а затем последовательно щелкнуть на кнопках OK и Finish.

Последний шаг — сделать общий файл доступным.

  • Щелкните правой кнопкой мыши на группе и выберите пункт Bring Online.

Теперь разделяемый ресурс готов к использованию.

Тестирование

Приступаем к самому интересному этапу. Следует зарегистрироваться в домене с рабочей станции и скопировать файл MP3 на диск SCSI, подключенный к серверам с высоким уровнем отказоустойчивости. Теперь можно начать опыты с файлом и отключить сетевой кабель одного из узлов. Продолжается ли воспроизведение песни без перерыва или произошла задержка? Затем следует вновь подключить кабель и посмотреть, что будет дальше. Наблюдаются ли какие-нибудь отличия при отключении разных серверов? После этого можно экспериментировать (отключать другие кабели, в том числе кабель питания) с кластером, осваивая тонкости технологии. Чтобы определять активный и пассивный узлы в ходе тестирования, можно использовать Cluster Administrator или утилиту командной строки cluster.exe.

После выполнения первого набора тестов следует запустить программу Microsoft NetMon для анализа трафика как частного, так и общедоступного сегмента в ходе последующих экспериментов. Постарайтесь идентифицировать пакеты «я жив» (heartbeat packet), которые посылает активный сервер, и пакет, свидетельствующий о переключении узлов (fail-over packet). Можно запустить и System Monitor (раньше эта утилита называлась Performance Monitor) на обоих узлах с высокой отказоустойчивостью для наглядного сопоставления производительности.

Интересно дополнить кластер третьим и четвертым узлами. В этом случае проблемы возникают с кабелем SCSI, и Microsoft официально поддерживает только узлы, работающие с операционной системой, но не кабель или накопитель SCSI, поэтому действовать приходится на свой страх и риск. Было бы интересно узнать о результатах экспериментов с еще большим числом узлов. Самый простой способ увеличить число узлов — задействовать Internet SCSI (iSCSI). Я построил 8-узловой кластер с использованием iSCSI и подключал более 60 серверов к одному приемнику iSCSI через 100-Мбит/с сеть Ethernet. Я рекомендую уделить некоторое время изучению iSCSI. Для начала можно прочитать врезку «Принципы iSCSI».

Итак, мы сделали большой шаг на пути к освоению кластеров. Я был бы рад предложить читателям источники более подробной информации, но, к сожалению, мне не удалось найти ни одного. В книгах по Windows 2003 рассказывается о Windows Server 2003 Standard Edition и упоминается лишь о дисковых кластерах. Другой ресурс — форумы и почтовые списки рассылки, в первую очередь в Web и Google.

Дуглас Спиндлер (douglas-spindler@sfntug.org) — консультант и преподаватель, президент группы San Francisco Networking Technologies Users Group. Имеет сертификат Microsoft MVP


Коротко о главном

  • Сегодня кластеры с высоким уровнем отказоустойчивости доступны даже для малых предприятий.
  • Хорошая документация для кластеров отсутствует.
  • Следуя подробным инструкциям, изложенным в данной статье, можно настроить простую тестовую среду и создать двухузловой кластер.

Принципы iSCSI

Стандарт Internet SCSI (iSCSI), принятый IETF, обеспечивает инкапсуляцию команд SCSI в пакетах TCP/IP. Это экономичное решение для кластеризации и балансировки нагрузки. iSCSI позволяет использовать существующую сетевую инфраструктуру для пересылки данных SCSI.

Сервер может быть расположен в Нью-Йорке, а дисковая система в Сан-Франциско — от пользователя требуется лишь терпение, так как соединение через Internet работает медленно. Microsoft реализовала iSCSI в Windows Server 2003, Windows XP и Windows 2000 Server. Спецификацию поддерживают и другие поставщики, такие как Cisco Systems. iSCSI отличается невысокой стоимостью по сравнению с SAN (Storage Area Network — сеть устройств памяти) и простотой реализации, к тому же она встроена в хорошо знакомую технологию TCP/IP.

Как работает iSCSI

Принцип работы iSCSI несложен. Сервер, называемый инициатором (initiator), посылает запрос к диску. Операционная система и драйвер инициатора iSCSI перехватывают запрос и инкапсулируют его в пакете IP. Вместо того чтобы передавать запрос по шине SCSI, драйвер направляет запрос в сетевой адаптер, который передает его по адресу назначения приемника (target) iSCSI (возможно, с шифрованием) точно так же, как любой другой пакет IP. Получив пакет, приемник iSCSI «разворачивает» его и передает команду SCSI в присоединенный диск. Следует обратить внимание, что iSCSI, как и SAN, передает данные блоками, а устройства NAS (Network Attached Storage — система хранения данных, подключаемая к сети) передают данные на файловом уровне.

Стандарт iSCSI не предназначен для замены высокоуровневых SAN, но легко заменит SAN начального или среднего класса. Пропускная способность в сети 1000Base-T близка к Fibre Channel. iSCSI подойдет для серверов с умеренным трафиком, например внутренних Web-узлов, файл- и принт-серверов, а также малых приложений для работы с базами данных.

Построение среды iSCSI

Для iSCSI необходимы сеть, сервер или рабочая станция (которые будут служить инициатором), драйверы инициатора и приемник. Сеть и компьютер-инициатор у администратора уже имеются; компьютер должен работать с Windows 2003, Windows XP Professional Service Pack 1 (SP1), Windows 2000 SP3 или более поздними версиями. Драйверы инициатора — небольшие программы, которые можно бесплатно загрузить с Web-узла Microsoft по адресу http://www.microsoft.com/downloads/ details.aspx?familyid=12cb3c1a-15d6-4585-b385-befd1319f825&displaylang=en. Их установка занимает одну-две минуты, и перезагружать машину не требуется. В процессе установки загружаются служба Microsoft iSCSI Initiator и панель управления iSCSI Initiator Control Panel, ярлык для которой размещается на рабочем столе. С помощью этой утилиты можно настроить несколько параметров — IP-адрес или имя DNS-приемника iSCSI, а также некоторые параметры безопасности.

Для полного решения не хватает одного компонента, приемника iSCSI: в настоящее время Microsoft не выпускает программ, которые позволяли бы серверу выполнять роль приемника. Несколько поставщиков предлагают приемники и специализированные шлюзы iSCSI. Компания EqualLogic выпускает приемник, Cisco предоставляет шлюз, а Novell поставляет приемник и инициатор вместе с NetWare 6.5. Существуют инициаторы и приемники Linux. Поскольку стандарт iSCSI подготовлен комитетом IETF, при использовании инициатора и приемника от разных производителей проблем возникнуть не должно. Мнение специалистов, уже имеющих опыт работы с iSCSI, и мои тесты подтверждают успешность взаимодействия.

iSCSI — развивающаяся технология, но она уже успешно применяется на практике. Несколько администраторов серверов рассказывали мне, что используют iSCSI на основных производственных серверах и за более чем двухлетний период круглосуточной эксплуатации без выходных дней не сталкивались ни с какими проблемами. iSCSI построен на базе двух широко применяемых протоколов: TCP/IP и SCSI. Технология не требует больших затрат, проста для внедрения и поможет расширить функциональность центра обработки данных. Вопрос о применении технологии iSCSI на конкретном предприятии заслуживает самого пристального внимания.


Нет необходимости в указании шлюза по умолчанию для частного адреса, поскольку данные никогда не маршрутизируются.


Дополнительные ресурсы

Основы iSCSI

http://www.microsoft.com/downloads/ details.aspx?familyid=12cb3c1a-15d6-4585-b385-befd1319f825&displaylang=en

Служба кластеризации Microsoft

http://www.microsoft.com/windowsserver2003/ technologies/clustering/default.mspx