Отказоустойчивый кластер с виртуализацией | Failover cluster with Hyper-V
Кластер — это группа независимых компьютеров, совместно выполняющих общий набор приложений, которая воспринимается клиентами и приложениями как единая система. Компьютеры физически связаны кабелями, а программно — с помощью программного обеспечения кластера. Эти связи позволяют компьютерам использовать методы передачи нагрузки при сбое и балансировки нагрузки, которые неприменимы к одиночному компьютеру.
В нашем случае мы рассмотрим отказоустойчивый (failover) кластер, а на нем служба виртуализации Hyper-V.
Имеем два сервера (первая и вторая ноды) HP DL180 G6 с 24 Гб ОЗУ и двумя камнями (по четыре ядра) на борту каждого. Кроме бортовых сетевух, добавлена двухпортовая сетевка каждому. Свичи Cisco Catalyst 3750 работают в стеке, поэтому ноды подключены к ним через team. СХД имеет два контролера SAS и подключен к нодам (по два шнурка на сервер) SAS шнурками.
По топологии вроде бы все. Для наглядности - рисунок:
Для создания и управления класетром необходимо:
- СХД (в нашем случае SAS)
- два (как минимум) сервера с апаратной поддержкой виртуализации, подключенные к СХД
- компьютер для управления кластером (ОС Windows Vista x64 или Windows 7 x64)
Смонтировали и подключили СХД согласно инскрукции. Подключили консольный кабель к COM-порту компьютера для консольного управления и с помощью программы HyperTerminal настраиваем соединение:

Настраиваем ip-адресс:
# set network-parameters ip 192.168.67.32 netmask 255.255.252.0 gateway 192.168.67.100 controller a Success: Command completed successfully. - Network parameters were changed. # set network-parameters ip 192.168.67.33 netmask 255.255.252.0 gateway 192.168.67.100 controller b Success: Command completed successfully. - Network parameters were changed. # show network-parameters Network Parameters Controller A ------------------------------- IP Address: 192.168.67.32 Gateway: 192.168.67.100 Subnet Mask: 255.255.252.0 MAC Address: 00:C0:FF:DA:52:76 Addressing Mode: Manual Network Parameters Controller B -------------------------------
IP Address: 192.168.67.33 Gateway: 192.168.67.100 Subnet Mask: 255.255.252.0 MAC Address: 00:C0:FF:DA:52:AE Addressing Mode: Manual
Теперь мы имеем доступ через web (https://192.168.67.33/ ), telnet, ssh. По умолчанию, логин: manage; пароль: !manage для нашего СХД MSA2000.
Дальнейшие консольные настройки осуществляются через ssh (клиент – putty).
Настроим свойства СХД (имя, контакт, местоположение):
# set system name storage contact "Ruslan Sheremet" location "Server room, Kyiv" Success: Command completed successfully. # show system System Information ------------------ System Name: storage. System Contact: Ruslan Sheremet System Location: Server room, Kyiv System Information: Vendor Name: HP StorageWorks Product ID: MSA2312sa Product Brand: MSA Storage SCSI Vendor ID: HP Enclosure Count: 1 Health: OK Supported Locales: English (English), Spanish (espaГ±ol), French (franГ§ais), Ge rman (Deutsch), Italian (italiano), Japanese (ж—Ґжњ¬иЄћ), Dutch (Nederlands), Ch inese-simplified (з®ЂдЅ“дёж–‡), Chinese-traditional (з№Ѓй«”дёж–‡), Korean (н•њ кµм–ґ)
Настраиваемдату/время:
# set controller-date apr 08 17:52:00 2010 +2 ntp enabled ntpaddress 192.168.67.61 Success: Command completed successfully. - Date/Time successfully set. # show controller-date Controller Date: 2010-04-08 14:53:58 Time Zone Offset: 0
Настраиваем уведомления по Email:
# set email-parameters server 192.168.67.63 domain .ua email-list itevents@.ua notification-level warn sender storage@.ua Info: Set Email Address 1 to: itevents@.ua Info: Set Email Server Name to: 192.168.67.63 Info: Set Email Domain Name to: .ua Info: Set Email Notification Level to: warn Info: Set Email Sender Name to: storage@.ua Success: Command completed successfully. # show email-parameters Email Parameters (SMTP) ----------------------- Email Notification: Enabled Email Notify Filter: warn Email Address 1: itevents@.ua Email Server: 192.168.67.63 Email Domain: .ua Email Sender: storage@.ua
Создаем Vdisk
– это RAID-массив. У нас 5 HDD и мы будем создавать RAID5 без HotSpare.
# create vdisk level raid5 disks 1.1,1.2,1.3,1.4,1.5 VD01 Success: Vdisk created. # show vdisks Name Size Free Own Pref RAID Disks Spr Chk Status Jobs Serial Number ------------------------------------------------------------------------- VD 01 3996.7GB 1996.7GB A A RAID5 5 0 64k FTOL 00c0ffda527600005cfcb54b00000000 -------------------------------------------------------------------------
Теперь нам нужно создать Volume
– это раздел. Нам нужно 2 Volume: vd02_hv под High Availability Virtual Machines и QUORUM:
# create volume vdisk vd01 size 500MB ports a1,a2,b1,b2 lun 2 QUORUM
Info: Command completed successfully. (QUORUM) - The volume was created. Success: Command completed successfully. (QUORUM) - The volume(s) were mapped successfully. # create volume vdisk vd01 size 700GB ports a1,a2,b1,b2 lun 1 vd01_hv Info: Command completed successfully. (vd02_hv) - The volume was created. Success: Command completed successfully. (vd02_hv) - The volume(s) were mapped successfully. # show volumes Vdisk Name Size Serial Number WR Policy Cache Opt Read Ahead Size Type Class Volume Description ------------------------------------------------------------------------------------------------------------------------------------- vd01 QUORUM 499.9MB 00c0ffda52760000ab0fbf4b01000000 write-back standard Default standard standard vd01 vd02_hv 699.9GB 00c0ffda5276000061fdb54b01000000 write-back standard Default standard standard
-------------------------------------------------------------------------------------------------------------------------------------
Проименуем хосты
(мы должны понимать где какое подключение, а ID нам такой информации не дает). Для этого нужно подключать по одному шнурку от СХД до сервера. Подключим контролер а к HV02, посмотрим ID этого подключения и назначим ему имя:
# show hosts Host ID Name Discovered Mapped Profile ------------------------------------------------- 500605B001AD4C94 Yes No Standard ------------------------------------------------- # set host-name id 500605B001AD4C94 HV02_A_HOST Success: Command completed successfully. - The host was renamed and profiled or reprofiled. # show hosts Host ID Name Discovered Mapped Profile -------------------------------------------------------- 500605B001AD4C94 HV02_A_HOST Yes No Standard --------------------------------------------------------
Подключим контролер b к HV02 и повторим настройки:
# rescan Success: Command completed successfully. # show hosts Host ID Name Discovered Mapped Profile -------------------------------------------------------- 500605B001AD4C94 HV02_A_HOST Yes No Standard 500605B001AD4C90 Yes No Standard -------------------------------------------------------- # set host-name id 500605B001AD4C90 HV02_B_HOST Success: Command completed successfully. - The host was renamed and profiled or reprofiled. # show hosts Host ID Name Discovered Mapped Profile -------------------------------------------------------- 500605B001AD4C94 HV02_A_HOST Yes No Standard 500605B001AD4C90 HV02_B_HOST Yes No Standard --------------------------------------------------------
…и так для каждого подключения.
На этом настройка СХД (для кластера) закончена.
Конфигурирование серверов
Установка Hyper-V Server 2008 R2
Скачиваем ISO-образ с оф.сайта: http://www.microsoft.com/hyper-v-server/en/us/how-to-get.aspx
Сама установка не вызывает особых проблем или трудностей. Все что нужно, это создать RAID1 массив + HotSpare, т.к. у нас 3 HDD. Подключаем внешний (да, мы удачно сэкономили и купили сервера без DVD-ROM) DVD-ROM и грузимся с него (о том, что нужно записать скачанный образ на диск я напоминать не буду). На первый вопрос отвечаем, что для нас ближе всего русский язык, но на втором выбираем английскую локализацию и английскую раскладку.
По завершении установки нужно ввести пароль локального админа.
Настройка удаленного доступа
Первым делом нужно настроить свежепроинсталленый сервер для удаленного подключения через RDP. Здесь и дальше я буду использовать команды для cmd.exe (черное окно), а не sconfig.cmd (синее окно). Это немного сложнее, но зато интереснее). Также для большинства действий созданы скрипты (приложу для скачивания в архиве).
Итак, выполним несколько команд [01_RDP.cmd]:
cd C:\Windows\System32 cscript SCregEdit.wsf /AR /v cscript SCregEdit.wsf /AR 0 cscript SCregEdit.wsf / CS 0 cscript SCregEdit.wsf /AR /v
Если сервер подключен к свичу, то он уже получил ip-адрес. Проверяем и запоминаем:
ipconfig Windows IP Configuration Ethernet adapter Local Area Connection 4: Connection-specific DNS Suffix . : .ua Link-local IPv6 Address . . . . . : fe80::c9c2:ee52:30ea:a6a1%13 IPv4 Address. . . . . . . . . . . : 192.168.64.59 Subnet Mask . . . . . . . . . . . : 255.255.252.0 Default Gateway . . . . . . . . . : 192.168.67.100
Теперь мы готовы подключиться удаленно к нашему серверу.
Ввод в домен, установка драйверов, сетевой TEAM
Переименуемсервер [02_ServerRename01.cmd и 02_ServerRename02.cmd]:
netdom renamecomputer %computername% /newname:shv01
shutdown -r -f -t 0
А теперь можно и в домен ввести, и снова перезагрузка [03_InDomain.cmd]:
netdom join %computername% /domain: example /userd: rublin /passwordd: <password here>
Добавляем в локальные админы группу Admins (пункт 3) мы можем зайти на сервер под доменной учеткой BackOffice.
Настроем брандмауэр [04_Firewall.cmd]:
netsh firewall set icmpsetting 8 netsh advfirewall set allprofiles settings remotemanagement enable netsh advfirewall firewall set rule group="windows firewall remote management" new enable=yes netsh advfirewall firewall set rule group="File and printer sharing" new enable=yes netsh advfirewall firewall set rule group="Remote Event Log Management" new enable=yes netsh advfirewall firewall set rule group="windows management instrumentation (wmi)" new enable=yes netsh advfirewall firewall set rule group="Remote Administration" new enable=yes
Также разрешаем все в пункт 4 (после 4.2 нужна перезагрузка)
Скопируем на системный раздел FAR – бесплатный файловый менеджер (запуск фара c:\far\far)
Копируем и устанавливаем драйвера (самые свежие по поиску на http://www.itrc.com). Устанавливаем драйвер для SAS адаптера HP SC08Ge HBA и драйвер HP MPIO DSM for MSA 2000. Драйвер для сети скачан с сайта intel.com http://downloadcenter.intel.com/download.aspx?url=/18591/a08/PROWIN7X64.exe&DwnldId=18591&ProductID=3171&lang=rus
Важно! При установке msa2000-mpio-dsm отказаться от НР mpio (использовать ТОЛЬКО mpio от Microsoft). При использовании НР mpio не будет проходить тест стораджа (ошибка SCSI-3 Persistent Reservations). Побороть ошибку удалось переустановкой msa2000-mpio-dsm и отказом заменить драйвер.
После установки драйверов можно (да и нужно) создать TEAM с сетевых интерфейсов. Для этого по пути "c:\Program Files\Intel\NCS2\Scripts\" есть нужные скрипты. Узнаем номера интерфейсов скриптом Adapter_EnumerateProperties.vbs (запуск cscriptAdapter_EnumerateProperties.vbs 1 для первого интерфейса). Скриптом Team_CreateTeam.vbs создадимTEAM [05_TEAM.cmd]:
cd "c:\Program Files\Intel\NCS2\Scripts\" cscript Team_CreateTeam.vbs 1,2 SLA HYPER-V_TEAM
Теперь можно и интерфейсы по правильному настроить. Переименуем интерфейсы и назначим ip-адрес вручную. Унасподключениепо «Local Area Connection 3» и «Local Area Connection 4», «Local Area Connection 5» - Hearbit:
netsh interface set interface name="Local Area Connection 3" newname="TEAM" netsh interface set interface name="Local Area Connection 5" newname="Hearbit" netsh interface ipv4 set address name="TEAM" source=static address=192.168.67.41 mask=255.255.252.0 gateway=192.168.67.100 gwmetric=1 netsh interface ipv4 set address name="Hearbit" source=static address=10.100.0.1 mask=255.255.255.0 netsh interface ipv4 add dnsserver name="TEAM" address="192.168.67.61" index=1 netsh interface ipv4 add dnsserver name="TEAM" address="192.168.67.24" index=2
Все описанные действия повторяем для второго сервера.
Для возможности управления ролью Hyper-Vс помощью скриптов powershell, устанавливаем PowerShell Management Library for Hyper-V В дальнейшем запускать консоль можно командой:
start %windir%\System32\WindowsPowerShell\v1.0\powershell.exe -noExit -Command "Import-Module '%ProgramFiles%\modules\Hyperv' "Подключение сервера к СХД
Для правильной работы сервера с СХД нужно установить роль MPIO. Без этого сервер видит подключенные луны как два разные диски:
Включаем роль MPIO:
start ocsetup MultipathIo Проверяем, выполняя команду oclist

Добавляем поддержку MPIO для нашего СХД (сервер автоматически перезагрузится):
mpclaim -r -i -d "HP MSA2"Далее нужно установить компоненту Failover Clusteing (пункт 11).
Также необходимо поправить реестр для использования подключения к СХД по SAS. Вветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HpCISSs2\Parameters\BusType изменить 8 на A
Теперь с консоли MMC, оснастка Управление компьютером видим по разделу на луну. Форматируем в NTFS.
Все эти действия необходимо выполнить на обоих серверах (действия идентичны), кроме создания и форматирования разделов. На этом подключение к СХД завершено. Пришло время собрать кластер!
Создание виртуальных сетей
Прежде чем создадим кластер, нужно создать на серверах виртуальные сети. Для этого в консоли MMC, оснастка Hyper-V Manager жмем «Диспетчер виртуальной сети…», называем External и выбираем TEAM интерфейс
После этого желательно перезагрузить сервер, что мы и сделаем.
Проверка конфигурации
Далее, в консоли MMC, оснастка Диспетчер отказоустойчивости кластеров (запущеной ОБЯЗАТЕЛЬНО на х64 Windows 7 или Vista - об этом нигде не написано, но по другому не работает!!!) отказоустойчивости кластеров, запустим проверку: жмем Проверить конфигурацию… В результате мы должны получить отчет, что все хорошо.
Создание кластера
Если тесты не пройдены – нужно решить проблему. Если же все ок – собираем кластер: жмем Создать кластер…, указываем имя FC01 (без домена) и ip-адрес 192.168.67.40:
По результатам создания получим отчет.
Включение CSV
Теперь нам доступна консоль управления кластером. Включим поддержку Cluster Shared Volume: жмем Включение общих томов кластера… Далее в Общие тома кластера добавляем хранилище: жмем Добавить хранилище. После этого раздел на СХД будет доступен в C:\ClusterStorage\Volume1\
На этом создание настройка Hyper-V в кластере завершена.
Проверка Live Migration
Дальнейшее управление кластером и виртуальными машинами на кластере будет осуществляться с консоли MMC, оснастка Диспетчер отказоустойчивости кластеров (не забываем, что она должна быть запучена на х64 Windows 7 или Vista). Создадим тестовую виртуальную машину: в консоли жмем Службы и приложения – Виртуальные машины – Создать виртуальную машину… - 1-HV01, в размещении указываем C:\ClusterStorage\Volume1\VirtualMachines
Установим ОС на виртуальную машину, создадим расшареную папку. Скопируем какой-нибудь большой файл и пустим пинг чтобы проверить что Live Migration пройдет без "отрыва от производства". Теперь перенесем виртуалку на другую ноду: В консоли выбираем нашу виртуалку, жмем Выполнить динамическую миграцию виртуальной машины на другой узел.
Наблюдаем, что пинги и копирование не прервались (будет обрыв консольного подключения, на сетевых коннектах не отразится).
Проверка FailOver
Для имитации отказа одной node нужно отключить сеть на сервере (все сетевые интерфейсы, в том числе и Hearbit). При этом виртуальная машина будет автоматически перенесена на второй node. Первый node (тот, который ушел в offline) будет помечен как "Не работает", а весь кластер будет помечен как сбойный. Будет кратковременный простой сервисов виртуальной машины и возможна потеря пользовательских данных – это как жесткий ребут. Когда первый node вернется в строй, виртуалка будет оставаться на втором node до ручного переноса.
Ссылки на документацию
По представленным ниже ссылкам, вы можете более детально ознакомится с технологиями которые описываются в даной инструкции.
· HP StorageWorks 2300 Smart Array CLI guide - http://h20000.www2.hp.com/bizsupport/TechSupport/CoreRedirect.jsp?redirectReason=DocIndexPDF&prodSeriesId=3971509&targetPage=http%3A%2F%2Fbizsupport1.austin.hp.com%2Fbc%2Fdocs%2Fsupport%2FSupportManual%2Fc01755995%2Fc01755995.pdf
· Hyper-V: Using Hyper-V and Failover Clustering - http://technet.microsoft.com/en-us/library/cc732181%28WS.10%29.aspx
· Установка Hyper-V R2 в режиме Core - http://www.clevelus.ru/stati-i-obzory/ustanovka-hyper-v-r2-v-rezhime-core/
· Общее представление о проверках кластера: Хранилище - http://technet.microsoft.com/ru-ru/library/cc771259(WS.10).aspx
· Решение проблем проверки кластера – http://forums13.itrc.hp.com/service/forums/bizsupport/questionanswer.do?admit=109447627+1271402437682+28353475&threadId=1416805
· About Virtual Machines and Guest Operating Systems - http://technet.microsoft.com/en-us/library/cc794868%28WS.10%29.aspx
· Проблеммы с созданием кластера на hyper-v 2008 r2 - http://social.technet.microsoft.com/Forums/ru-RU/virtualizationru/thread/16ce1698-0d21-4212-b7e8-a027c2a215c5?prof=required&ppud=4
© rublin.org, 2009 - 2012 Буду вдячний за зворотнє посилання, при використанні матеріалів сайту. Powered by Rublin Team.





Post new comment