Архив метки: Hyper-V

Собираем кластер виртуализации на NanoServer

Исходные данные:
Есть два севера HP DL360G8 и FC СХД MSA P2000 G3. Задача - собрать кластер виртуализации на решении NanoServer.
Процесс создания волюмов и маппинга на ноды описывать не буду, это несложно. Для кластера надо кворумный волюм и волюм данных. У меня вышло 2 волюма данных, так как при 24 дисковой хранилке в RAID-группу можно собрать только 16 дисков... Но не суть.

Итак, подготовка и установка нод будущего кластера. Я использую отдельный сервер с Windows 2016 Standard для подготовки заливочной флешки. Сам дистрибутив у меня торчит на флешке по пути F:\

Копируем с дистрибутива 2016 каталог NanoServerGenerator (например в D:\Distribs\NanoServerGenerator\)

Запускаем PS с повышенными привилегиями, меняем текущий каталог на D:\Distribs\NanoServerGenerator\

Импортируем модуль NanoServerImageGenerator (работает в повершелле ОС 8.1, 10, 12R2, 16):
Import-Module .\NanoServerImageGenerator -Verbose

Отступление:
Для создания vhd с nanoserver, для использования nanoserver в качестве виртуалки делаем так:
New-NanoServerImage -Edition Standard -DeploymentType Guest -MediaPath F:\ -BasePath .\Base -TargetPath .\NanoServerVM\nano1.vhd -ComputerName s-mos1-nano1
и указываем административный пароль. В итоге в каталоге D:\Distribs\NanoServerGenerator\ получаем каталог NanoServerVM с vhd виртуалки наносервера.
vhd расширение создаст диск для виртуальной машины первого поколения, а vhdx создаст диск для второго поколения виртуальных машин) для компьютера с именем s-mos1-nano1

Отдельно создаем такой же образ для второй ноды - s-mos1-nano2

Создаем образ для развертывания хоста виртуализации на физическом железе:
Чтобы создать образ с поддержкой OEM драйверов для аппаратной развертки на физический хост используем опцию -OEMDrivers. В моем случае я еще добавляю поддержку кластеризации, файлсервера и Hyper-V (все опции сборки перечислены здесь: https://technet.microsoft.com/ru-ru/windows-server-docs/get-started/deploy-nano-server)
New-NanoServerImage -Edition Datacenter -DeploymentType Host -MediaPath F:\ -BasePath .\Base -TargetPath .\NanoServerPhysical\NanoServer.wim -ComputerName s-mos1-nano1 -OEMDrivers -Clustering -Storage -Compute -Package Microsoft-NanoServer-SecureStartup-Package, Microsoft-NanoServer-Host-Package

Копируем WIM образ на флешку с Windows PE, загружаемся с этой флешки на хосте где надо развернуть наносервер, запускаем diskpart, находим диск, который будет системным для NanoServ (пусть это 0 диск):

select disk 0
clean
create partition primary size=100
select partition 1
format quick fs=ntfs label="SYSTEM"
active
assign letter=s
create partition primary
select partition 2
format quick fs=ntfs label="NANOSERVER"
assign letter=n

выходим из diskpart и применяем образ NanoServer (изменив путь к WIM-файлу):

Dism.exe /apply-image /imagefile:.\nano1.wim /index:1 /applydir:n:\
Bcdboot.exe n:\Windows /s s: /f ALL

Убираем флешку и перезагружаем систему с помощью команды Wpeutil.exe reboot.

На всякий случай, как создать WinPE флешку:
нужен ADK Windows 10, на клиентской машине с Windows 10, или на сервере с Windows Server 2016. Запускаем среду средств развертывания и работы с образами с повышенными привилегиями, а в ней:

copype amd64 C:\WinPE_amd64
MakeWinPEMedia /UFD C:\WinPE_amd64 F:

После запуска нод нужно получить удаленное управление. Добавляем сервера в доверенные на сервере с GUI и RSAT (использовал этот же сервер с Windows Standard 2016 Desktop Experience):
Set-Item WSMan:\localhost\Client\TrustedHosts –Value "10.131.252.13"
Set-Item WSMan:\localhost\Client\TrustedHosts –Value "10.131.252.14"

Подцепляем их в Server Manager с локальной учеткой которая настроена на удаленных серверах и запускаем удаленный PS, настраиваем DNS сервера.
Get-NetAdapter даст нам индексные номера интерфейсов (ifIndex). Даем интерфейсу LAN адреса DNS:
Set-DnsClientServerAddress -InterfaceIndex 4 -ServerAddresses ("10.131.252.98","10.131.252.99")

Добавляем машину в домен, работает только оффлайн метод. На сервере уже находящемся в домене делаем запрос:
Djoin.exe /Provision /Domain "mydomain.ru" /Machine "s-mos1-nano1" /Savefile domainjoin.djoin /REUSE

Копируем на nanserver получившийся файлик (я копирую на c$\Users\Administrator\Documents, так как туда по умолчанию смотрит remote powershell сессия) и присоединяем в домен сервер:
djoin /requestodj /loadfile domainjoin.djoin /windowspath c:\windows /localos

Перегружаем сервер:
shutdown -r -t 0
Exit-PSSession

То же самое проделываем на второй ноде.
Я через Emergency Console назначил IP адреса на вторых интерфейсах для HerartBeat. Можно и через PS.

Для нормального создания кластера нужно прописать ноды в отдельную OU, дать права на создание объектов в этой OU нодам. После этого создаем кластер из серверов:
$Servers = 's-mos1-nano1','s-mos1-nano2'
New-cluster -name s-mos1-nanocl -node $Servers -StaticAddress 10.131.252.15

Далее можно управлять кластером через оснастку на сервере с GUI и нужным компонентом RSAT.
В моем случае еще есть полка, подключенная по избыточным FC линкам к хостам с презентованными дисками кворума и данных. Нужно корректно поднять MPIO и сделать кворумный и дата диски.
Установить MPIO можно через оснастку управления на сервере c GUI или через PS:
Enable-WindowsOptionalFeature -Online -FeatureName MultiPathIO

Для включения MPIO полезен скрипт MultipathIoClaim.ps1, который я взял тут:
https://technet.microsoft.com/en-us/windows-server-docs/get-started/mpio-on-nano-server

Форматируем подключенные диски:
Get-Disk | Where partitionstyle -eq ‘raw’ | Initialize-Disk -PartitionStyle GPT -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -Confirm:$false

Дальше мне понадобилось на хосте Windows Server 2016 развернуть RSAT. Через консоль RSAT Failover Clustering можно определить роли дисков. У меня, как я писал выше, это был один свидетель и два CSV.
Через консоль RSAT создаем нужные виртуальные свичи на нодах. Все, можно создавать виртуальные машины, делать их высокодоступными.

Подмеченные проблемы:
1. Нет поддержки Teaming. Интерфейсы сингловые, что может приводить к нежелательным отказам на сетевом уровне. Ждем включения поддержки Teaming, хоть Microsoft на замену предлагает пользоватся инструментарием виртуалнього свитчинга.
2. Нельзя назначать static IP если на интерфейсе нет линка. Проблема тянется с powershell на 2012R2.
3. Не нашел как можно деинициализировать проинициализированные диски на нодах.

Тестирую поддержку драйверов и интеграционных компонент Hyper-V во FreeBSD 10.0

Вчера вышла в релиз 10 версия FreeBSD в которой по умолчанию поддерживаются интеграционные компоненты для Hyper-V а так же драйвера для виртуализированных устройств Hyper-V. Строго говоря компоненты поддерживаются начиная с версии FreeBSD 8.3 (обусловлено это, как всем известно плотным сотрудничеством с NetAPP), только там их нужно устанавливать отдельно. Однако я решил сразу протестировать новый дистрибутив внутри виртуальной машины гипервизоров 2008R2 и 2012R2.
Как нам обещают здесь, поддерживаются следующие фичи: Читать далее Тестирую поддержку драйверов и интеграционных компонент Hyper-V во FreeBSD 10.0

Настройка Cluster Aware Updates

С версии операционной системы Windows Server 2012 администраторам кластерных систем предоставлен удобный инструмент по контролю за установкой обновлений на хосты находящиеся в кластерной среде. Развернуть инструмент достаточно просто, опишу процесс: Читать далее Настройка Cluster Aware Updates

Обновление Hyper-V кластера Windows 2012 до 2012R2

Внесу поправку в заметку, так как первый полученный результат, описанный ниже (зачеркнутый), был получен случайно.

В связи с выходом Windows Server 2012 R2 предстоит обновление инфраструктуры. По заявлению ответственных лиц компании Microsoft, ноды с операционными системами 2012 и 2012R2 могут работать в одном кластере совместно.

Ноды с разными версиями операционных систем работать совместно не могут. Один раз у меня такая схема переезда получилась, однако повторить я ее не смог. Для корректного переезда с 2012 на 2012R2 необходимо пользоваться схемой создания параллельного кластера и перевозом кластерных ресурсов между кластерами. Операция довольно простая, но для ее осуществления необходим запас свободных вычислительных мощностей в кластере, чтобы можно было безопасно извлечь хотя бы одну ноду и построить на ней новый кластер.

Последовательность действий при переезде (пример для двухнодового кластера):
1. Освобождаем хост от виртуальных машин, мигрируем их на другую ноду
2. Извлекаем ноду из кластера
3. Запускаем обновление операционной системы. Здесь процедура вполне стандартная: соглашаемся с предложением проверить обновления онлайн перед началом установки, вводим ключ лицензии, выбираем вариант установки
4. Когда будет предложен вариант установки или обновления - выбираем обновление
5. Дожидаемся окончания установки, перезагружаем сервер, убеждаемся в наличии и работоспособности всех ранее установленных сервисов (в нашем случае Hyper-V и Failover Cluster). Можно посмотреть журнал событий на предмет скрытых исключений, однако, как правило, все встает нормально.
6. Создаем на обновленной ноде новый кластер (пока из одной ноды)
7. Мигрируем виртуальные машины на обновленную ноду используя мастер Copy Cluster Roles (на старой ноде их нужно будет выключить, если не хотим терять информацию)
8. Разрушаем старый кластер
9. Запускаем виртуалньые машины на обновленной ноде
10. Обновляем операционную систему на оставшейся ноде
11. Добавляем ноду в новый кластер
12. Проверяем обновления операционных систем на обоих нодах, по необходимости устанавливаем их
13. Проверяем необходимость установки интеграционных компонент внутри виртуальных машин, там, где это применимо

Теперь рассмотрю вариант, когда виртуальные машины хранятся на отдельном SAN, презентованном для кластера как CSV, и обладающим некоторым количеством свободного дискового пространства. Отличие данной конфигурации в том, что миграцию виртуальных машин можно произвести на лету без остановки виртуальных машин. Однако для этого понадобится наличие SCVMM 2012R2, так как опция Live Storage Migration доступна только через него, по этому можно установить SCVMM 2012R2 на виртуальную машину внутри того же кластера, и операции производить оттуда.

Последовательность действий:
1. Освобождаем хост от виртуальных машин, мигрируем их на другую ноду
2. Извлекаем ноду из кластера
3. Запускаем обновление операционной системы
4. Дожидаемся окончания установки, перезагружаем сервер, убеждаемся в наличии и работоспособности всех ранее установленных сервисов
5. На SAN создаем еще один кворумный диск и еще один диск для нового CSV
6. Создаем на обновленной ноде новый кластер, подключаем к нему новый CSV и кворум
7. Подключаем новый кластер к SCVMM
8. Через SCVMM делаем Live Migration виртуальных машин со старого на новый кластер
9. Отключаемся от старого кластера на SCVMM Касательно виртуальной машины с SCVMM - я эту виртуальную машину переношу вручную с тома на том и импортирую ее на новый кластер.
10. Разрушаем старый кластер
11. Обновляем операционную систему на оставшейся ноде
12. Добавляем ноду в новый кластер
13. Проверяем обновления операционных систем на обоих нодах, по необходимости устанавливаем их
14. Проверяем необходимость установки интеграционных компонент внутри виртуальных машин, там, где это применимо

Итоги: Радужно обновить кластер с нулевым простоем на Storage Spaces не получилось. Нулевой простой возможет только при наличии нормалнього сторэйджа с запасом и двух CSV (по одному на кластер). Поддержки обоих версий операционных систем одновременно в одном кластере все таки пока нет. Хотелось бы, чтобы это стало одним из следующих шагов в развитии кластеризации от Microsoft.

 

То что ниже - не работающая схема, получившаяся чудом :)

Читать далее Обновление Hyper-V кластера Windows 2012 до 2012R2

Hyper-V кластер для тестов с хранилищем на SMB3.0

Итак, появилась возможность поиграться с недорогим аппаратным решением для тестовой среды на базе Windows Server 2012 R2 используя новые технологии, как то Storage Spaces и SMB3.0. Сам процесс развертывания довольно хорошо описан в статье на Technet, но я отпишу здесь небольшой кукбук, напоминалку, более простыми словами и короткой последовательностью действий. Читать далее Hyper-V кластер для тестов с хранилищем на SMB3.0