Отказоустойчивый кластер с виртуализацией | 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 до ручного переноса.
 

Ссылки на документацию

 
По представленным ниже ссылкам, вы можете более детально ознакомится с технологиями которые описываются в даной инструкции.
·         PowerShell Management Library for Hyper-V - http://pshyperv.codeplex.com/releases/view/38769
·         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

 

 

Tags: 

Post new comment

Filtered HTML

  • Адреси сторінок і електронної пошти атоматично перетворюються у посилання.
  • Дозволені теги HTML: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Рядки та параграфи відокремлюються автоматично.

Plain text

  • HTML теґи не відображаються
  • Адреси сторінок і електронної пошти атоматично перетворюються у посилання.
  • Рядки та параграфи відокремлюються автоматично.
By submitting this form, you accept the Mollom privacy policy.
© rublin.org, 2009 - 2012 Буду вдячний за зворотнє посилання, при використанні матеріалів сайту. Powered by Rublin Team.