在Windows Server机器上设置Hyper-V集群:逐步指南

在虚拟基础设施中,特别是在大型数据中心中,关键要求之一是消除单点故障,并确保服务和应用程序的高可用性。在 Hyper-V 环境中,微软故障转移群集技术可用于配置多个 Hyper-V 主机(或节点),以在一个主机故障时接管负载。

在这个分步指南中,学习 Hyper-V 故障转移群集配置的实际方面,包括初始主机和网络配置、Hyper-V 角色安装和群集创建。

Hyper-V 主机配置

为故障转移群集准备主机,我们应选择一个操作系统来安装在所有将用于特定群集的主机上。然后,我们需要对环境进行基本配置,包括所有主机,以准备它们进行 Hyper-V 群集设置。

选择要安装的操作系统

在这个设置中,我们使用了两个 Windows Server 2016 Server Core 安装来最小化移动部件,并提高安全性。使用 Windows Server 2016 Server Core 安装可以消除许多不必要的组件并减少占用空间。虽然 Server Core 的管理难度增加了,但其效率和安全性的好处可以抵消这一点。您也可以使用较新的 Windows Server 版本,如 Windows Server 2019 进行 Hyper-V 群集设置。

注意:对于 Windows Server 2016 Server Core 的管理和配置,我们使用 PowerShell。在技术上,可以使用带有桌面体验的 Windows Server 来配置 Hyper-V 故障转移群集。

初始环境配置

在考虑将 Hyper-V 主机作为集群之前,我们必须对主机进行初始配置。这涉及准备任何 Windows 服务器的相同步骤——命名、网络配置、打补丁等。特别是网络规划在 Windows 集群中至关重要,因为它允许正确的集群通信以及与共享存储的通信。

  • 命名。两台服务器都已命名并加入实验室域。请注意,从 Windows Server 2016 开始,加入域不再是先决条件。服务器配置显示在下面第一台服务器H1的截图中。第二台服务器H2的配置类似。

  • 更新。我们需要将任何潜在的 Hyper-V 集群节点更新到最新的补丁级别,根据 Hyper-V 集群的最佳实践。为 Hyper-V 主机安装更新可以提高系统的安全性。您可能需要重新启动 Windows 以完成更新的安装。

  • 一致性。作为最佳实践,我们希望所有潜在的集群节点除了计算机名称和 IP 地址外都配置相同。这确保主机之间的一切都标准化,包括补丁级别、网络等。

网络规划

合适的环境规划可以在将来减少许多风险。对于这种情况下的实验室网络,每个主机都已配置了四个网络适配器。为了简单起见,实验室主机都没有进行任何网卡团队合作。然而,在生产环境中,您可能希望将适配器组合起来,以避免任何一个网络出现单点故障。

对于我们的实验室设置,我们有:

  • 管理和虚拟机流量
  • iSCSI
  • 私有集群流量
  • 实时迁移

考虑到上述网络,我们为每台服务器分配了所需子网范围内的IP地址。VLAN也是一个考虑因素,因为您很可能希望将您的子网与已配置的VLAN对齐。这需要提前考虑。

iSCSI存储目标设置

Hyper-V集群存储是构建集群的关键点。在这个示例中,我们在实验室环境中使用FreeNAS来创建iSCSI目标,并将这些目标呈现给我们的Hyper-V集群。当然,根据供应商的不同,使用供应商硬件或软件iSCSI的设置可能会有所不同,因此始终要遵循为每个供应商定义的方法。注意:FreeNAS是一个通用和灵活的基于FreeBSD的操作系统,您可以在计算机上安装它以将其用作NAS。您可以使用FreeNAS和NAKIVO解决方案创建Hyper-V集群共享存储,也可以构建备份设备。FreeNAS和NAKIVO解决方案。

注意:FreeNAS是一种通用灵活的基于FreeBSD的操作系统,您可以安装在计算机上用作NAS。您可以使用FreeNAS和NAKIVO解决方案创建Hyper-V集群共享存储或构建备份设备。

以下是使用FreeNAS设置Hyper-V故障转移集群存储的快速概述。我们不会深入讨论如何为iSCSI设置FreeNAS的所有细节。但是,以下是为我们的Hyper-V主机提供一对iSCSI目标的基本设置。

  1. 在FreeNAS中启动iSCSI服务,并设置您的网络配置以匹配您打算用于Hyper-V主机的存储网络。
  2. 检查我们将创建的目标的基本IQN设置。

  1. 在FreeNAS中设置一个门户以侦听iSCSI流量。

  1. 设置iSCSI目标名称。在我们的FreeNAS设备中,我们正在设置:
  • a quorum volume to be used as a disk witness
  • a volume to be used for the Hyper-V cluster shared volume to house our VMs

注意:Quorum是Windows集群中用于确保在集群的各部分之间发生故障时,始终有大多数集群资源可用于集群运行的机制。

  • 从Windows Server 2012开始,集群中的每个节点默认具有单个仲裁投票。通过在Windows Server 2016中添加一个额外的投票,使用文件共享、磁盘或新的云存储帐户,集群的一部分应始终通过声明共享、磁盘或云存储帐户投票获得超过50%的仲裁投票。
  • 使用 Windows Server 2012 R2,建议始终配置磁盘或文件共享见证。只有节点数为偶数时,投票才会扩展到额外的见证(文件共享、磁盘或云存储帐户)。对于奇数节点数,见证不会投票,也不会被使用。

在下面的截图中,我们创建了两个目标名称:一个用作磁盘见证的仲裁卷,以及一个用于我们的群集共享卷的卷。

  1. 添加 Extents,在下面的示例中,这些 Extents 被映射到我们在 FreeNAS 设备中物理分配的各个磁盘上。

  1. 将目标与 Extent 关联。这些目标被映射到 FreeNAS 中的存储。

安装 Hyper-V 角色

要安装 Hyper-V 角色服务,请在 PowerShell 命令 提示符中运行以下命令:

Install-WindowsFeature -Name Hyper-V -IncludeAllSubFeature -IncludeManagementTools -Restart

设置存储:添加 iSCSI 门户地址

在添加 iSCSI 门户地址之前,我们需要配置并启动 Microsoft iSCSI 服务如下:

  1. 将服务设置为自动启动。

Set-Service -Name msiscsi -StartupType Automatic

  1. 启动服务。

Start-Service msiscsi

  1. 使用 PowerShell 添加预配的 iSCSI 门户地址:

New-iscsitargetportal -targetportaladdress <IP 地址>

  1. 连接特定的 iSCSI 目标,在我们的情况下,这些目标是在我们的 FreeNAS 设备上创建的。以下是我们在将 FreeNAS 目标添加到为群集预配的 Hyper-V 主机中时所使用的示例。
  • Connect-IscsiTarget -nodeaddress iqn.2005-10.org.freenas.ctl:quorum -IsPersistent $true -IsMultipathEnabled $true -InitiatorPortalAddress 10.0.0.70 -TargetPortalAddress 10.0.0.1
  • Connect-IscsiTarget -nodeaddress iqn.2005-10.org.freenas.ctl:hvvol1 -IsPersistent $true -IsMultipathEnabled $true -InitiatorPortalAddress 10.0.0.70 -TargetPortalAddress 10.0.0.1

您可以通过运行 Get-iSCSItarget 命令来验证并查看已添加的目标。

注意:您可以使用 get-disk 命令显示磁盘信息,确保 Hyper-V 群集共享存储在线且健康。

设置虚拟交换

配置虚拟交换机是正确设置 Hyper-V 故障转移群集网络配置所必需的。我们可以使用 PowerShell 或 Hyper-V 管理器来为 Hyper-V 设置我们的虚拟交换机。

在 PowerShell 中创建虚拟交换机的命令示例:

New-VMSwitch “ExternalSwitch01” -NetAdapterName “Public” -AllowManagementOS 1

注意:在两台主机之间将虚拟交换机名称设置为相同,以确保虚拟交换机匹配,尤其是在执行实时迁移时。

创建 Hyper-V 群集

使用 PowerShell,创建群集只需一行命令。

  1. 在创建群集之前,运行此命令验证群集配置是否符合 Hyper V 群集的最佳实践:

Test-Cluster H1,H2

  1. 使用 new-cluster 命令创建群集,并为群集分配名称、节点和静态 IP 地址。

New-Cluster -Name HVCluster -node H1,H2 -staticAddress 192.168.85.75

  1. 当群集创建过程完成时,您将在命令行中看到显示群集名称的输出。

Hyper-V 集群共享卷

尽管我们从 iSCSI 目标的角度拥有共享存储,但我们需要确保承载虚拟机的存储设置在 Hyper-V 集群共享卷上。集群共享卷(CSV)是在 Windows Server 2008 R2 中引入的,用于与 Hyper-V 角色一起使用,以便虚拟机可以通过集群中的任何节点访问 VHD 文件。CSV 中还内置了容错性,包括允许 I/O 故障检测以便在通信故障发生时使用备用通信路径。

让我们逐步查看为我们的虚拟机创建集群共享卷的过程。

  1. 重命名将用于虚拟机存储的群集磁盘资源(可选)。在我们的实验室设置中,这是 Cluster Disk 1

(Get-ClusterResource | ?{$_.Name -eq “Cluster Disk 1”}).name = “VMs”

  1. 现在我们可以将此卷添加到集群共享卷中:

Get-ClusterResource -Name “VMs”| Add-ClusterSharedVolume

注意:我们还可以使用故障转移群集管理器将磁盘添加到 CSV 中:

  1. 使用 get-clustersharedvolume 命令检查集群共享卷的状态。

注意:如果您有管理工作站要连接使用故障转移群集管理器,您可以通过连接到Windows故障转移群集来查看存储,使用图形用户界面(GUI)。在这里,我们可以轻松查看可用的磁盘以及分配给它们的角色。下面我们看到既是仲裁磁盘又是指定为群集共享卷的VMs磁盘。

更改Hyper-V存储设置

现在我们已经设置了我们的群集共享卷,我们可以更改我们的Hyper-V设置,以使用我们的Hyper-V群集共享卷作为存储VMs的默认位置。

在每个主机的Hyper-V设置中,将虚拟硬盘位置和虚拟机位置更改为您的群集共享卷,即在您的Hyper-V主机上的C:\ClusterStorage\volume(x)

创建高可用性VM

现在我们可以启动故障转移群集管理器,并开始创建一个高可用性VM。

  1. 右键单击角色,选择创建一个新虚拟机

  1. 选择Hyper-V主机(群集节点之一)用于虚拟机。

  1. 按照新虚拟机向导的提示来配置一个新的虚拟机。

  • 在向导的连接虚拟硬盘步骤中,请确保虚拟机是在我们的Hyper-V群集共享卷上创建的。

  • 摘要 步骤显示我们选择的选项。

  1. 当您点击完成时,高可用性向导显示在角色和虚拟机上启用高可用性的摘要。正如您所看到的,它已成功启用。

  1. 如果您想查看高可用性报告,可以点击查看报告按钮,它将显示更详细的高可用性测试呈现。

Hyper-V故障切换集群配置已完成,我们现在在集群中运行一个高度可用的虚拟机。您可以在集群中创建更多虚拟机以使用Hyper-V高可用性。

最后的思考

Hyper-V故障转移集群允许您在发生故障时减少虚拟机的停机时间。然而,如果您没有定期的Hyper-V集群备份,这将无法保护您的虚拟机数据。由于虚拟机可以在Hyper-V故障切换集群中迁移主机,虚拟机备份可能是一项艰巨的任务。使用NAKIVO的解决方案,甚至可以轻松备份在集群中运行的那些虚拟机

Source:
https://www.nakivo.com/blog/hyper-v-cluster-setup/