Как построить двухузловой кластер на портативном или настольном компьютере.
Подобно хорошему вину, корпоративные решения по кластеризации компании Microsoft с течением времени становятся все лучше.

К сожалению, реализация и тестирование кластерных решений Microsoft, как и хорошо выдержанное вино, многим не по карману. Я работал с несколькими организациями, которые располагали рабочими кластерами Microsoft Exchange Server и Microsoft SQL Server, но не имели средств для устройства тестовых серверных кластеров в лаборатории.

Чтобы преподавать кластерные технологии, я приобрел десяток адаптеров SCSI, кабели и внешние накопители SCSI. Но даже после этого мои демонстрационные возможности были сильно ограничены, так как каждый кластер содержал лишь один разделяемый диск. Мне не раз приходилось слышать от пользователей пожелания, чтобы кластеры были портативными. Администраторы и системные инженеры предпочли бы изучать серверные кластеры вне рабочей среды. Партнеры и реселлеры Microsoft хотели бы демонстрировать клиентам кластерные решения на своих ноутбуках. Что же можно предпринять в такой ситуации?

VMware — лучшее средство для изучения кластеров

Пару лет назад я открыл для себя VMware и сразу же оценил этот продукт. Спустя месяц виртуальные машины (VM) Novell NetWare, Linux и Microsoft работали в виртуальной сети на моем ноутбуке, а демонстрационные показы на моих занятиях поднялись на новый уровень. VMware не только обеспечивает совместную работу нескольких VM в сети на одной машине, но и позволяет конфигурировать разделяемые ресурсы. Я полагаю, что читателям известны фундаментальные принципы VMware. Если это не так, то документацию можно найти по адресу: http://www.vmware.com/support/ws3/doc.

Благодаря возможности разделять виртуальные жесткие диски между двумя виртуальными компьютерами, администратор может использовать бесчисленные варианты виртуальной кластеризации. Я подготовил документированный метод построения виртуальных кластеров на одной портативной (или настольной) машине. Вот основные составляющие кластерного рецепта VMware:

  • один ноутбук или настольный компьютер с объемом оперативной памяти 512 Мбайт и свободным пространством размером 6 Гбайт на жестком диске;
  • одна лицензия для рабочей станции VMware Workstation 3.0 (или выше);
  • две виртуальные машины Windows 2000 Advanced Server в виртуальной сети TCP/IP, настроенные на работу оперативной памятью 128 Мбайт;
  • один или несколько разделяемых временных (nonpersistent) виртуальных дисков SCSI (кластерная память);
  • один локальный виртуальный диск IDE размером 2 Гбайт для каждой VM (для данных операционной системы);
  • одна или несколько виртуальных сетевых плат для каждой VM (для связи между кластерами).

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

Для приготовления изысканного блюда мало иметь под рукой необходимые ингредиенты, нужно знать, в каком порядке их соединять. Итак, порядок построения виртуального кластера. Для начала следует запустить на системе два экземпляра Windows Advanced Server в качестве виртуальных машин. Для данной статьи я построил виртуальный кластер на компьютере Dell Inspiron 8100 с процессором на 1 ГГц и оперативной памятью 512 Мбайт. Роль главной операционной системы выполняла Windows XP Professional Edition. Виртуальные машины были организованы с помощью VMware Workstation 3.2. Эти инструменты позволяют успешно продемонстрировать процедуры установки и конфигурирования серверных кластеров как Exchange 2000, так и SQL Server 2000.

Чтобы построить две виртуальные машины Windows 2000 Advanced Server, следует создать, установить и настроить первую виртуальную машину (VM1) в качестве автономного сервера Windows 2000 AS. После завершения установки нужно выключить VM1 и скопировать данные из папки VM1 на хост-машине в папку с именем VM2 (или любым другим). Затем следует открыть VM2 в консоли VMware. Открыв редактор Configuration Editor for VM2, необходимо перейти к вкладке Options и дать VM уникальное имя. Далее на вкладке Hardware требуется изменить путь к файлу виртуального диска VM2, чтобы он указывал на файл виртуального диска в папке VM2. После завершения конфигурирования следует загрузить VM2 и изменить ее хост-имя и IP-адрес, чтобы они отличались от имени и адреса VM1 (обычно я использую такие имена, как Node1 и Node2). Благодаря этому приему подготовка второго функционирующего сервера занимает значительно меньше времени, чем полная установка Windows 2000 AS на второй VM.

Имея две VM, нужно подготовить два сервера к включению в кластер.

  1. Запустить dcpromo.exe, чтобы назначить VM1 контроллером домена (DC) и корнем леса. Домену можно присвоить любое имя.
  2. После завершения работы мастера Active Directory Installation Wizard и перезагрузки VM1 следует добавить в домен VM2. На данном этапе необходимо активизировать обе виртуальные машины.
  3. На DC (VM1) нужно открыть оснастку Active Directory Users and Computers консоли управления Microsoft Management Console (MMC) и создать учетную запись пользователя кластерного домена. Обычно я даю учетной записи имя Cluster. Необходимо сделать так, чтобы пользователь не мог изменить пароль, и срок действия пароля никогда не истекал. Затем учетную запись требуется добавить в группу Domain Admins.
  4. Закрыть и отключить обе VM.

Разделение памяти

После того как создана учетная запись пользователя домена и кластера, необходимо подготовить разделяемую память. Для того чтобы обеспечить гибкость последующей кластеризации таких приложений, как Exchange или SQL Server, я подготовил три виртуальных SCSI-диска. Требуется выполнить следующие действия.
  1. В главном окне VMware щелкнуть правой кнопкой мыши на объекте VM1 и выбрать пункт Settings.
  2. Щелкнуть на кнопке Add вкладки Hardware.
  3. Выбрав жесткий диск, нажать Next.
  4. Оставив флажок Create a New Virtual Disk установленным, щелкнуть на кнопке Next.
  5. Установить размер диска 0,5 Мбайт (используется для кворумных данных кластера) и щелкнуть Next.
  6. Щелкнуть на кнопке Browse и создать новую папку для хранения разделяемых виртуальных дисков. Диску следует дать имя Shared1.vdmk и щелкнуть на кнопке Open.
  7. Убедиться, что в поле Disk File правильно указаны имя файла и путь, а затем щелкнуть на кнопке Advanced.
  8. Выбрать SCSI 0:0 в качестве узла виртуального устройства и щелкнуть на кнопке Finish.
  9. Повторить шаги 2-8, чтобы создать еще два виртуальных SCSI-диска с именами Shared2 (1 Гбайт) и Shared3 (0,5 Гбайт), и назначить дискам типы узлов виртуальных устройств SCSI 0:1 и SCSI 0:2, соответственно.

На Экране 1 показана вкладка Hardware редактора Configuration Editor с перечисленными в ней тремя дисками SCSI. Если дисковое пространство ограничено, можно настроить единственный диск — это все, что требуется для кластеризации.

Экран 1. Настройка виртуального SCSI-диска.

Ранее я указывал, что диски должны быть временными, но после выполнения предыдущих операций они имеют статус постоянных (persistent). Пока диски следует оставить постоянными. Таким образом, операционная система, загружаемая на две VM, воспримет диски как новые и запишет для них сигнатуру. Два узла смогут совместно использовать диски после того, как будут поставлены в известность об их наличии.

На данном этапе VM1 настроена на разделение дисков. Теперь нужно настроить VM2 таким образом, чтобы виртуальная машина обнаружила разделяемые диски. Для этого требуется выполнить следующие действия.

  1. Открыть второй экземпляр VMware.
  2. В главном окне VMware щелкнуть правой кнопкой мыши на второй VM и выбрать пункт Settings.
  3. Щелкнуть на кнопке Add вкладки Hardware.
  4. Выбрать пункт Hard Disk и щелкнуть на кнопке Next.
  5. Выбрать пункт Use an Existing Virtual Disk и нажать Next.
  6. Щелкнуть на кнопке Browse, отыскать и выбрать файл Shared1.vmdk и щелкнуть на кнопке Open.
  7. Выбрать режим Persistent и нажать Finish.
  8. Повторить шаги 2-8 для файлов Shared2 и Shared3.

Дисковые конфигурации VM2 и VM1 должны совпадать; уникальным должен быть лишь локальный IDE-диск VM.

Запись дисковых сигнатур

Диски, сконфигурированные для обеих VM, нуждаются в сигнатурах. Начать следует с нескольких действий над VM1.
  1. Загрузить систему и зарегистрироваться.
  2. Щелкнуть правой кнопкой мыши на пиктограмме My Computer и выбрать пункт Manage.
  3. Щелкнуть на папке Disk Management.
  4. Когда на экране появится мастер Write Signature and Upgrade Disk Wizard, следует нажать Next.
  5. В ответ на предложение выбрать диск, для которого нужно записать сигнатуру, требуется установить флажок для каждого нового виртуального SCSI-диска и щелкнуть Next.
  6. Необходимо сбросить флажки для всех трех дисков, чтобы ни один из них не был преобразован в динамический диск, а затем щелкнуть Next.
  7. Щелкнуть на кнопке Finish, чтобы закрыть программу-мастер.
  8. Теперь все три диска имеют сигнатуры, и нужно создать на каждом диске раздел в формате NTFS. Для этого необходимо щелкнуть правой кнопкой мыши на неиспользуемом пространстве диска и выбрать пункт Create Partition. Я присвоил первому тому имя Quorum и символ Q, второму тому — имя Data и символ R, а третьему тому имя Logs и символ S. На Экране 2 показаны три отформатированных диска в папке Disk Management.
  9. Закрыть утилиту Computer Management.
  10. Закрыть и отключить VM1.
Экран 2. Отформатированные диски.

После того как дискам присвоены сигнатуры, необходимо убедиться, что VM2 может обнаружить диски. Для этого нужно включить VM2 и зарегистрироваться. Затем следует открыть Computer Management и убедиться, что диски указаны в Disk Management. На данном этапе символьные обозначения дисков не совпадают с символами, назначенными в VM1, но обозначения будут приведены в соответствие после того, как VM2 войдет в состав кластера. Убедившись в наличии дисков, VM2 следует выключить.

Последняя задача перед установкой службы Microsoft Cluster на узлах — преобразовать диски на каждой VM из постоянных во временные, чтобы виртуальные машины могли совместно использовать диски. Чтобы изменить состояние дисков, требуется выполнить следующие действия.

  1. В главном окне VMware щелкнуть правой кнопкой мыши на второй VM и выбрать пункт Settings.
  2. На вкладке Hardware редактора Configuration Editor выбрать первый виртуальный SCSI-диск, затем пункт Nonpersistent: Discard changes after powering off.
  3. Повторить шаг 2 для второго и третьего виртуальных дисков.
  4. Щелкнуть OK, чтобы закрыть Configuration Editor.
  5. Повторить действия 1-4 для VM2.

При преобразовании из постоянных во временные диски не теряют сигнатуры, как видно после загрузки VM1 и установки службы Cluster. Однако нужно иметь в виду, что временные диски теряют данные после выключения. Чуть позже я расскажу, как избежать потери данных.

Установка Cluster Service

Теперь виртуальные диски готовы к использованию, остается лишь выполнить стандартную установку службы Cluster. Начать следует с VM1.
  1. Включить VM1 и зарегистрироваться как Domain Administrator.
  2. Открыть утилиту Add/Remove Programs из панели управления.
  3. Щелкнуть на закладке Add/Remove Windows Components.
  4. Выбрать компонент Cluster Service и щелкнуть на кнопке Next.
  5. Если появится соответствующий запрос, следует вставить компакт-диск с Windows 2000 AS и щелкнуть OK.
  6. На первой панели мастера Cluster Service Configuration Wizard нужно щелкнуть на кнопке Next.
  7. Щелкнуть на кнопке I Understand для подтверждения, что Microsoft не поддерживает кластерные аппаратные средства, не входящие в список Hardware Compatibility List (HCL), а затем нажать Next.
  8. Выбрать вариант установки первого узла в кластере и щелкнуть Next.
  9. Ввести имя кластера и щелкнуть Next.
  10. Указать пароль и имя пользователя домена кластера (заданные раньше) и щелкнуть Next.
  11. Убедиться, что три диска выбраны как Managed Disks, и щелкнуть Next.
  12. Выбрать диск Q емкостью 500 Мбайт в качестве кворумного диска и щелкнуть Next.
  13. Нажать Next для настройки сети кластера.
  14. Ввести имя сети и установить флажок Enable this network for cluster use (см. Экран 3). Данная VM располагает лишь одной виртуальной сетевой платой, поэтому я выбрал режим All communications (mixed network) и щелкнул Next. При наличии двух виртуальных сетевых плат можно организовать общедоступную и частную сети.
  15. Получив сообщение о том, что настроен только один адаптер, щелкнуть на кнопке OK.
  16. Назначить IP-адрес и маску подсети в той же виртуальной сети, в которой находятся две VM, затем нажать Next.
  17. Щелкнуть на кнопке Finish и закрыть программу-мастер Cluster Service Configuration Wizard.
  18. Получив извещение об успешном запуске службы Cluster, щелкнуть OK.
  19. Закрыть утилиту Add/Remove Programs.
Экран 3. Задание сетевых соединений.

Далее необходимо запустить VM2 при активной VM1. Требуется зарегистрироваться в VM2 с использованием учетной записи Domain Administrator, а затем выполнить следующие действия.

  1. Открыть утилиту Add/Remove Programs.
  2. Выбрать закладку Add/Remove Windows Components.
  3. В первой панели мастера Cluster Service Configuration Wizard щелкнуть на кнопке Next.
  4. Щелкнуть на кнопке I Understand, подтверждая тем самым, что Microsoft не поддерживает кластерные аппаратные средства, не входящие в список HCL, а затем нажать Next.
  5. Выбрать вариант установки второго узла в кластере, а затем щелкнуть Next.
  6. Ввести имя кластера, назначенное в процессе установки первого узла, а затем щелкнуть Next.
  7. Получив сообщение о том, что имеется только один адаптер, нажать OK.
  8. Ввести пароль для учетной записи пользователя кластера и щелкнуть Next.
  9. Щелкнуть на кнопке Finish, чтобы присоединить VM2 к кластеру.

Теперь на системе имеется рабочий кластер с двумя узлами. Чтобы убедиться в работоспособности кластера, можно инициировать процесс передачи функций одного узла другому.

  1. На любой VM перейти в меню Start, Programs, Administrative Tools, Cluster Administrator.
  2. Развернуть папку Groups кластера.
  3. Щелкнуть правой кнопкой мыши на Cluster Group и выбрать функцию Move Group.
  4. После этого ресурсы кластера должны переместиться на второй узел (см. Экран 4).
Экран 4. Тестирование кластера.

После передачи функций для Cluster Group и для каждой группы дисков символьные обозначения разделяемых дисков второго узла будут соответствовать обозначениям первого. Если во время первой передачи функций работает утилита Chkdsk, следует предоставить ей возможность выполнить задачу до конца.

Потеря данных

Я обнаружил небольшую проблему с кластерными VM и разделяемыми временными виртуальными SCSI-дисками: после отключения VM диски теряют данные. Это происходит только при отключении системы. Чтобы избежать подобной ситуации, следует щелкнуть на кнопке Suspend в окне VM, а затем закрыть окно и завершить работу хост-машины. В результате VM не отключится, а приостановит работу, и при следующем включении системы работу можно будет возобновить с того места, где она была прервана.

Я пользовался виртуальным кластером на своем ноутбуке более полугода, много раз устанавливая и удаляя Exchange и SQL Server без каких-либо сбоев. Любой администратор может взять кластер с собой в дорогу, избежав расходов и неудобств, связанных с дополнительными аппаратными средствами. Стоимость VMware Workstation 3.2 составляет 299 долларов.

Крис Вольф — консультант в CommVault Systems. Специализируется на кластерах, системах хранения и диагностике сетевых проблем, имеет сертификаты MCT, MCSE, CCNA. С ним можно связаться по адресу: http://www.chriswolf.com.