Наступною корисною новинкою представленої в 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 диски нативної підтримують зміну розміру, снапшоти і міграцію.