Следующей полезной новинкой представленной в Windows Server 2016 – новый формат виртуальных дисков — VHD Set (VHDS), предоставляющий возможность одновременного использования одного виртуального диска несколькими виртуальными машинами. Данная возможность предполагает использование в сценариях гостевых кластеров (файловый кластер, SQL Server AlwaysOn FCI и пр), когда нужны общие диски для доступа со всех виртуальных машин-узлов кластера. Технология VHD Set предназначена для замены Shared VHDX дисков, и также не требует настройки виртуальных HBA, SAN для презентации одного LUN нескольким ВМ.
В Windows Server 2012 R2 для реализации функционала гостевых кластеров использовался формат общих виртуальных дисков Shared VHDX. Однако у технологии Shared VHDX есть несколько недостатков:
- невозможность изменения размера или миграции общих VHDX дисков
- для VHDX дисков не поддерживаются резервное копирование, контрольные точки и репликация
VHDS диски лишены данных ограничений, однако будут работать только в ВМ с гостевой ОС Windows Server 2016. VHDS диски обеспечивают следующий новый функционал:
- поддержка репликации и бэкапа на уровне хоста
- изменение размера диска VHD Set на лету (без остановки ВМ)
- поддержка горячей миграции дисков
- создание контрольных точек (чекпоинтов) для файлов .vhds
Чтобы создать новый диск VHD Set, в графическом меню Hyper-V Manager выберите New -> Virtual Disk. В качестве типа диска укажите VHD Set, затем выберите тип диска (фиксированный или динамический), имя файла, местоположение и размер.
Этот диск можно создать и с помощью PowerShell:
New-VHD –Path c:\clusterstorage\vmstorage01\DynamicDisk.vhds -SizeBytes 40Gb -Dynamic
При создании диска достаточно указать расширение файла vhds, в результате чего PowerShell автоматом создаст VHD Set диск. При создании диска типа VHD Set, появляются два файла:
- .avhdx – собственно файл диска с данными (может быть как фиксированного размера так и динамического)
- .vhds – небольшой (260 Кб) файл с метаданными для координации доступа между узлами (нодами) гостевого кластера.
Далее приведем пример создания двухузлового гостевого кластера на VHDS дисках.
Создадим два новых VHDS диска. Один будет являться диском свидетелем в кворуме кластера, второй – диском с данными. К примеру, наш кластер представляет собой две ВМ. На каждой из виртуальных машин подключим оба VHDS диска. Это можно выполнить из графического интерфейса Hyper-V или с помощью PowerShell:
Add-VMHardDiskDrive -VMName VMCL01 -Path "c:\ClusterStorage\SharedDisk\VM_Quorum.vhds" -SupportPersistentReservations
Add-VMHardDiskDrive -VMName VMCL01 -Path "c:\ClusterStorage\SharedDisk\VM_Shared.vhds" -SupportPersistentReservations
Add-VMHardDiskDrive -VMName VMCL02 -Path "c:\ClusterStorage\SharedDisk\VM_Quorum.vhds" -SupportPersistentReservations
Add-VMHardDiskDrive -VMName VMCL02 -Path "c:\ClusterStorage\SharedDisk\VM_Shared.vhds" -SupportPersistentReservations
На каждом из виртуальных серверов нужно установить компонент Failover Clustering:
Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools -ComputerName VMCL01
Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools -ComputerName VMCL02
Инициализируем диски:
get-disk |? OperationalStatus -Like "Offline" | Initialize-Disk
И создадим на них NTFS разделы:
New-Volume -DiskNumber 1 -FileSystem NTFS -FriendlyName Quorum
New-Volume -DiskNumber 2 -FileSystem NTFS -FriendlyName Data
Осталось создать кластер:
# Проверка совместимости
Test-Cluster VMCL01,VMCL02
# Создаем кластер
New-Cluster -Name FSCluster01 -Node VMCL01,VMCL02 -StaticAddress 192.168.0.50
(Get-ClusterResource |? Name -like "Cluster Disk 1").Name="Quorum"
(Get-ClusterResource |? Name -like "Cluster Disk 2").Name="Data"
# Укажем диск-свидетель
Set-ClusterQuorum -DiskWitness Quorum
# Добавим диск Cluster Shared Volume
Get-ClusterResource -Name Data | Add-ClusterSharedVolume
Если все выполнили правильно, получится двухузловой кластер.
Возможна конвертация имеющихся общих VHDX дисков в формат VHD Set. Конвертация выполняется в офлайн режиме (диск не должен использоваться и быть отключен от всех ВМ) с помощью командлета Convert-VHD:
Convert-VHD "C:\ClusterStorage\SharedDisk\old.vhdx" "C:\ClusterStorage\SharedDisk\new.vhds"
Итак, технология VHD Set в Windows Server 2016 позволяет с легкостью создать гостевой кластер MSFT без использования сложных технология NPIV, виртуальных HBA и виртуальной SAN сети. Виртуальные VHDS диски нативно поддерживают изменение размера, снапшоты и миграцию.