VHD Set - новий тип віртуальних дисків в Windows Server 2016

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