微软在很久之间就已经推出免费版Hyper-V Server,但是出于某些原因,Hyper-V Server一直被大家认为只适合应用在实验室环境当中。也许你还不相信,但是现在真的能够免费部署Hyper-V Server,并且为Hyper-V虚拟机提供高可用性。
为了搭建具有容错特性的Hyper-V环境,管理员需要完成一些前期准备工作。首先,需要准备一个存储阵列作为共享存储,当然其他任何Hyper-V部署都存在这种存储需求;然后,需要准备Hyper-V Server软件,可以在微软官网下载。接着,你需要掌握如何部署和配置故障转移集群等基本知识,提前掌握故障转移集群原理可以简化Hyper-V Server集群的创建流程。***,为了创建具有容错机制的Hyper-V环境,管理员必须对PowerShell有基本的了解。如果你对于PowerShell的理解还有些生疏,那么我推荐使用Sconfig.cmd工具。这种工具允许用户使用基于菜单的界面来配置服务器。使用这种工具,你可以***程度上减少必须使用的PowerShell命令数量。
集中配置
使用免费Hyper-V Server创建故障转移集群的***步就是在每台集群节点服务器上安装Hyper-V Server。安装完成之后,你需要使用Sconfig.cmd对每台服务器进行初始化配置。其中包括为每块网卡分配IP地址、为每个节点分配唯一并且有意义的计算机名、加入到某个活动目录域、启用远程管理功能等,使用Sconfig.cmd工具可以轻松完成所有这些任务。
完成初始配置流程之后,还必须针对故障转移集群进行进一步配置,比如为集群分配名称和IP地址。还需要弄明白如何将集群结点连接到共享存储。最简单的方式是创建两个SMB文件共享。其中一个用于共享存储,而另外一个用于File Share Witness。
创建集群命令
为了进行演示,我们假设用户想要创建一个名称为“Cluster1”的集群,集群IP地址为192.168.0.1。并且假设每个节点当中用于集群通信的的网卡名称为“Ethernet2”——你可以通过使用Get-NetAdapter cmdlet命令获得实际的NIC名称。现在假设你的集群节点被命名为“Hyper-V-1”、“Hyper-V-2”和“Hyper-V-3”。***还需要为File Share Witness创建一个UNC(Universal Naming Convention)路径。之后为Hyper-V虚拟交换机分配名称。为了便于举例,在这里我们使用“Switch1”作为虚拟交换机名称——每个节点必须使用相同的虚拟机名称——使用\\storage\witness作为File Share Witness路径。考虑到这些命名规则,可以使用如下命令来创建故障转移集群:
Install-WindowsFeature –Name Failover-Clustering –IncludeManagementTools
New-VMSwitch "Switch1" –NetAdapterName "Ethernet 2" –AllowManagementOS:$True
Test-Cluster –Node Hyper-V-1,Hyper-V-2,Hyper-V-3
New-Cluster –Name Cluster1 –Node Hyper-V-1,Hyper-V-2,Hyper-V-3 –StaticAddress 192.168.0.1
Set-ClusterQuorum –Cluster Cluster1 –NodeAndFileShareMajority \\Storage\Witness
到现在为止就只剩下***一项任务了——将共享存储连接到集群。具体使用哪种方式可能会根据所使用的存储类型而发生变化。可以使用Add-ClusterDisk命令来完成相关操作,但是我建议在另外一台Windows服务器上安装Failover Cluster Manager,它提供的图形界面可以帮助用户在集群当中轻松添加存储。使用这种方式管理员可以不用再担心使用命令行配置共享存储的复杂性。
如你所见,通过使用免费Hyper-V Server可以实现高可用性。既然如此,你可能会问为什么企业需要为Hyper-V节点购买Windows Server授权。问题的答案通常和虚拟机授权相关。Windows Server 2012 R2 Datacenter Edition对于获得拥有恰当授权的hyper-V主机来说可以运行***数量的Windows Server 2012 R2虚拟机,但是如果没有购买这种授权,那么就需要单独处理授权问题,这样可能导致成本大幅上升并且十分复杂。