VHD集:Hyper-V 2015上的共享虚拟磁盘
Windows Server 2015中出现的下一个有用的创新是虚拟磁盘VHD Set(VHDS)的新格式,使多个虚拟机可以同时使用一个虚拟磁盘。当共享磁盘必须对所有虚拟机群集节点都可用时,此功能可用于来宾群集方案(文件群集,SQL Server AlwaysOn FCI等)。 VHD Set技术旨在替代Shared VHDX功能,并且不需要配置虚拟HBA和SAN即可将一个LUN呈现给多个VM。
在Windows Server 2012 R2中,为了提供来宾群集功能,使用了共享虚拟磁盘的格式" Shared VHDX"。但是,共享VHDX有一些缺点:
- 没有机会更改大小或者迁移共享VHDX
- VHDX不支持备份,检查点或者复制
VHDS没有这些限制,但仅在运行客户机Windows Server 2015的VM中可用。VHDS支持以下新功能:
- 主机级别的备份和复制支持
- VHD即时更改大小(不停止VM)
- 支持热磁盘迁移
- 为.vhds文件创建检查点
要创建新的VHD集,请在Hyper-V管理器的图形菜单中选择"新建"->"虚拟磁盘"。将VHD Set指定为磁盘格式,然后选择磁盘的类型(固定或者动态),文件名,位置和大小。
我们也可以使用PowerShell创建磁盘:
New-VHD –Path c:\clusterstorage\vmstorage01\DynamicDisk.vhds -SizeBytes 40Gb -Dynamic
创建磁盘时,只需指定vhds文件扩展名,PowerShell将自动创建VHD集。创建VHD Set格式的磁盘时,将出现两个文件:
- .avhdx包含数据的磁盘文件(可以是固定的也可以是动态的)
- .vhds一个小的(260 KB)元数据文件,以协调来宾群集节点之间的交互
这是如何使用VHDS创建wo节点来宾群集的示例。
让我们创建两个新的VHD集。第一个将是群集仲裁中的见证磁盘,第二个将是用于数据的磁盘。例如,我们的集群由两个VM表示。在每个虚拟机上连接两个VHD集。我们可以在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
在每个虚拟服务器上安装故障转移群集功能:
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
添加群集共享卷
Get-ClusterResource -Name Data | Add-ClusterSharedVolume
如果操作正确,将出现一个两节点的来宾群集。
我们可以将Shared VHDX转换为VHD Set。使用Convert-VHD cmdlet脱机执行转换(不得使用磁盘,并且必须将其与所有VM断开连接):
Convert-VHD "C:\ClusterStorage\SharedDisk\old.vhdx" "C:\ClusterStorage\SharedDisk\new.vhds"
因此,Windows Server 2015中的VHD Set允许创建MSFT来宾群集,而无需使用复杂的技术,例如NPIV,虚拟HBA和虚拟SAN网络。虚拟VHDS最初支持更改大小,快照和迁移。