使用共享存储拉伸群集复制

此评估示例允许在单个拉伸群集中配置计算机及其存储,其中两个节点共享一组存储,两个节点共享另一组存储,然后复制会将这两组存储镜像到群集中以允许即时故障转移。 这些节点及其存储应位于单独的物理站点中,尽管这不是必需的。 在创建 Hyper-V 和文件服务器群集时,作为示例方案,存在单独的步骤。

重要

不同站点中的服务器必须能够通过网络与其他服务器通信,但与其他站点的共享存储没有任何物理连接。 此方案不会利用存储空间直通。

此演练使用以下环境作为示例:

  • SR-SRV01SR-SRV02SR-SRV03SR-SRV04的四台服务器。

  • 这四个服务器形成为名为 SR-SRVCLUS 的单个群集。

  • 一对逻辑“站点”,表示两个不同的数据中心。 一个名为 雷德蒙德,另一个名为 贝尔维尤

  • SR-SRV01SR-SRV02 的服务器属于 Redmond 站点。

  • SR-SRV03SR-SRV04 的服务器属于 Bellevue 站点。

图示显示 Redmond 的两个节点,这两个节点复制了 Bellevue 站点中同一个群集的两个节点。

注意

您可以只使用两个节点,每个站点各有一个节点。 但是,不能仅使用两台服务器执行站点内故障转移。 最多可使用 64 个节点。

先决条件

  • 软件

    • 2-64 台运行 Windows Server 2016 Datacenter Edition 或更高版本的服务器。 如果你运行的是 Windows Server 2019,则可以使用 Standard Edition,前提是你可以仅复制大小不超过 2 TB 的单个卷。
    • 必须在设备上安装 Active Directory 域服务 角色、故障转移群集存储副本 功能。 若要了解详细信息,请参阅 安装或卸载角色、角色服务或功能
    • 你的设备必须属于 Active Directory (AD) 林。
    • 适当的防火墙和路由器规则,以允许 ICMP、SMB 端口 445、SMB 直接端口 5445 和 WS-MAN 所有节点之间的端口 5985 双向流量。
  • 硬件

    • 每个服务器至少有 2 GB RAM 和两个核心。 虚拟机环境需要更多 RAM 和核心。
    • 两组共享存储,使用 SAS JBOD(例如与存储空间配合使用)、光纤通道 SAN、共享 VHDX 或 iSCSI 目标。
    • 存储应包含 HDD 和 SSD 媒体的组合,且必须支持永久预留。 每个存储集应仅适用于两个服务器(非对称)。
      • 物理存储的容量必须相同,并且所有数据磁盘和日志磁盘上具有相同的扇区大小。
      • 数据和日志磁盘必须初始化为 GPT。
      • 卷必须使用 NTFS 或 ReFS 格式。
      • 日志卷应使用闪存存储,并设置高性能可靠性配置。 Microsoft建议日志存储快于数据存储。
      • 日志卷必须至少为 9 GB,或者根据日志需求可以更大或更小。
    • 每组存储必须允许至少创建两个虚拟磁盘,一个用于复制的数据,而另一个用于日志。
    • 复制的存储不能位于包含 Windows作系统文件夹的驱动器上。
  • 磁盘配置

    • JBOD 存储设备

      • 确保每组配对的服务器节点只能看到该站点的存储机箱(非对称存储),并且 SAS 连接已正确配置。

      • 使用 Windows PowerShell 或服务器管理器,按照在独立服务器上部署存储空间中提供的步骤 1 至 3 使用存储空间来预配存储。

    • iSCSI 存储

      • 确保每组配对的服务器节点只能看到该站点的存储机箱(即非对称存储)。 如果使用 iSCSI,则应使用多个网络适配器。

      • 使用供应商文档配置存储。 如果使用基于 Windows 的 iSCSI 目标,请参阅 iSCSI 目标服务器概述

    • 对于 FC SAN 存储:

      • 确保每组配对的服务器节点只能看到站点的存储机箱(非对称存储),并且已正确对主机进行分区。

      • 使用供应商文档配置存储。

  • 网络

    • 每个服务器上至少有一个 1-GbE 连接用于同步复制。
    • 服务器之间的网络,其带宽足以包含 IO 写入工作负荷,同步复制的平均往返延迟约为 5 毫秒。 异步复制没有延迟建议。

注意

数据磁盘可以使用镜像空间、奇偶校验空间,或 RAID 1、RAID 10、RAID 5 或 RAID 50。

日志卷不得用于其他工作负荷。

重要

虽然可以将存储设备连接到单个服务器并将其用于复制,但 Windows 故障转移群集仍然依赖于 SCSI 永久保留。 因此,存储仍必须是共享存储类型,如 SAN 技术。 本地磁盘或虚拟机监视程序提供的磁盘可能不兼容。 在 Azure 中,磁盘必须是支持共享的高级 SSD 大小,即使只有一个 VM 连接到它。

可以使用 Test-SRTopology cmdlet 来确定其中的许多要求。 如果将存储副本或存储副本管理工具功能安装在至少一台服务器上,则会获取此工具的访问权限。 无需配置存储副本来使用此工具,只需安装 cmdlet。

预配环境

始终以域用户身份登录,该用户是所有服务器上的内置管理员组的成员。 始终使用提升的权限运行 PowerShell 或命令提示符。

  1. 使用具有桌面体验的服务器或服务器核心安装选项在所有服务器节点上安装 Windows Server。

  2. 确保服务器的 BIOS/UEFI 设置设置为高性能,例如禁用 C 状态、设置 QPI 速度、启用 NUMA 和设置最高内存频率。 确保 Windows Server 中的电源管理设置为高性能。 根据需要重启。

  3. 添加网络信息并将节点加入域,然后重启它们。

    注意

    本指南假设你有两个服务器配对,以便在拉伸群集中使用。 WAN 或 LAN 网络将服务器分隔开,并且这些服务器属于物理站点或逻辑站点。

  4. 将第一组共享 JBOD 存储机箱、共享 VHDX、iSCSI 目标或 FC SAN 连接到 Redmond 站点中的服务器。

  5. 将第二组存储连接到 Bellevue 站点中的服务器。

  6. 在所有四个节点上安装最新的供应商存储和机箱固件、所有必要的驱动程序、HBA 驱动程序和 BIOS/UEFI 固件。 根据需要重启节点。

    注意

    请查看配置共享存储和网络硬件的硬件供应商文档。

在下一步中,服务器将添加并配置必要的角色和功能:

  1. 服务器管理器中,选择 管理,然后选择 添加服务器

  2. 在“添加服务器 窗口中,通过以下方法选择服务器:

    1. AD(服务器必须加入域)

    2. DNS(计算机名称或 IP)

    3. 导入(来自文本文件)

  3. 选择服务器后,使用“→”按钮导入服务器,然后选择确定

  4. SR-SRV04 或远程管理计算机上,在提升的 PowerShell 窗口中运行以下命令:

    $Servers = 'SR-SRV01','SR-SRV02','SR-SRV03','SR-SRV04'
    
    $Servers | foreach { Install-WindowsFeature -ComputerName $_ -Name Storage-Replica,Failover-Clustering,FS-FileServer -IncludeManagementTools -Restart }
    

配置 Hyper-V 故障转移群集或文件服务器群集

设置服务器节点后,下一步是创建 Hyper-V 故障转移群集或文件服务器群集。 如果节点位于不同的子网中,则必须使用“OR”依赖项创建其他站点的 IP 地址。 若要了解详细信息,请参阅 配置多子网群集的 IP 地址和依赖项 - 第 III 部分

如果要创建两个节点的拉伸群集,则必须在继续之前添加所有存储。 这在 Windows Server 2016 中是按设计行为。 运行以下命令以添加可用存储:

Get-ClusterAvailableDisk -All | Add-ClusterDisk

在指定源卷上使用没有写入 IO 负载的测试服务器时,请考虑添加工作负荷,因为没有工作负荷的 Test-SRTopology 不会生成有用的报告。 应使用类似生产工作负荷进行测试,以查看实际数字和建议的日志大小。

或者,只需在测试期间将一些文件复制到源卷或下载并运行 diskspd 以生成写入 IO。 例如,若要在 D: 卷上对低写入 IO 负载进行 10 分钟的采样,请运行以下命令:

diskspd -c1g -d600 -W5 -C5 -b4k -t2 -o2 -r -w5 -i100 D:\Test.dat

Windows Server 2016 中没有使用故障转移群集管理器配置站点感知的选项。

注意

配置文件共享见证或云见证,以便在站点宕机时提供仲裁。 Windows Server 现在包含基于云 (Azure) 的见证选项。 你可以选择此仲裁选项来替代文件共享或磁盘见证。

有关仲裁配置的详细信息,请参阅 在 Windows Server 2012 故障转移群集指南的见证配置中配置和管理仲裁。 有关群集仲裁 cmdlet 的详细信息,请参阅 FailoverClusters 模块集。

小提示

查看 Windows Server 2012 中 Hyper-V 群集 网络建议,以确保以最佳方式配置群集网络。 配置群集网络和 Active Directory,以便更快地进行 DNS 站点故障转移。 可以利用 Hyper-V 软件定义的网络、拉伸的 VLAN、网络抽象设备、降低的 DNS TTL 和其他常用技术。

还可以配置 VM 复原,以便来宾在节点故障期间不会长时间暂停。 而是在 10 秒内切换到新的复制源存储。 若要执行此作,请运行 (Get-Cluster).ResiliencyDefaultPeriod=10 命令。

  1. 服务器管理器中,选择 工具,然后选择 故障转移群集管理器

  2. 在右窗格中的操作下,选择验证配置以确保可以继续进行。

    注意

    由于使用非对称存储,应该会出现群集验证中的存储错误。

  3. 使用部署 Hyper-V 群集指南创建包含 15 个字符或更少字符的 Hyper-V 计算群集。 在 Redmond 站点内,按照步骤 7-10 创建一个测试虚拟机,以确保群集在共享第一个测试站点中存储的两个节点内正常工作。

  4. Redmond 站点中的一个磁盘添加到群集 CSV。 在“存储”部分的 磁盘 节点中右键单击源磁盘,然后选择“添加到群集共享卷”

  5. Test-SRTopology cmdlet 用于确定是否满足存储副本要求。 例如,要对具有 D:E: 卷的每个计划拉伸群集节点进行验证并运行 30 分钟测试,请执行以下步骤:

    1. 将所有可用的存储移动到 SR-SRV01

    2. 故障转移群集管理器中,展开群集,右键单击 角色,然后选择 创建空角色

    3. 将联机存储添加到名为新建角色的空角色。

    4. 将所有可用的存储移动到 SR-SRV03

    5. 再次右键单击 角色,然后选择 创建空角色

    6. 新角色(2) 移动到 SR-SRV03

    7. 将联机存储添加到名为新建角色 (2) 的空角色。

    8. 通过运行以下命令来评估群集:

      $params = @{
         SourceComputerName       = 'SR-SRV01'
         SourceVolumeName         = 'D:'
         SourceLogVolumeName      = 'E:'
         DestinationComputerName  = 'SR-SRV03'
         DestinationVolumeName    = 'D:'
         DestinationLogVolumeName = 'E:'
         DurationInMinutes        = 30
         ResultPath               = 'C:\Temp'
      }
      MD C:\Temp | Test-SRTopology @params
      
  6. 检查 TestSrTopologyReport-< date >.html 报告以确保满足存储复制副本要求,并注意初始同步时间预测和日志建议。

    Hyper-V 故障转移群集的存储副本复制报告的屏幕截图。

  7. 将磁盘返回到可用存储,并删除临时空角色。

  8. 删除测试虚拟机。 向计划源节点添加进一步评估所需的任何真实的测试虚拟机。

  9. 配置拉伸群集站点感知,使 SR-SRV01SR-SRV02 的服务器位于 Redmond 站点中,服务器 SR-SRV03SR-SRV04 位于 Bellevue 站点中。 确保 Redmond 是拥有源存储和 VM 所有权的主节点:

    New-ClusterFaultDomain -Name Redmond -Type Site -Description "Primary" -Location "Redmond Datacenter"
    
    New-ClusterFaultDomain -Name Bellevue -Type Site -Description "Secondary" -Location "Bellevue Datacenter"
    
    Set-ClusterFaultDomain -Name SR-SRV01 -Parent Redmond
    Set-ClusterFaultDomain -Name SR-SRV02 -Parent Redmond
    Set-ClusterFaultDomain -Name SR-SRV03 -Parent Bellevue
    Set-ClusterFaultDomain -Name SR-SRV04 -Parent Bellevue
    
    (Get-Cluster).PreferredSite="Redmond"
    

配置延展集群

配置、验证和测试环境后,后续步骤是通过故障转移群集管理器或 PowerShell 使用存储副本配置拉伸群集。 可以直接或在包含 Windows Server 远程服务器管理工具(RSAT)的远程管理计算机上执行群集节点上的所有步骤。

  1. 对于 Hyper-V 工作负载,在您希望复制数据的那个节点上,将源数据磁盘从可用磁盘中添加到群集共享卷中(如果还未配置)。 不要添加所有磁盘;只需添加单个磁盘。 此时,磁盘的一半处于脱机状态,因为这是非对称存储。 如果复制物理磁盘资源 (PDR) 工作负载(如文件服务器)供常规使用,则表示已有准备就绪的角色附加磁盘。

    屏幕显示故障转移群集管理器

  2. 右键单击 CSV 磁盘或角色附加磁盘,选择 复制,然后选择 启用

  3. 选择适当的目标数据卷,然后选择下一步。 显示的目标磁盘的大小与所选源磁盘的大小相同。 在这些向导对话框间移动时,可用的存储会根据需要自动在后台移动并进入联机状态。

    显示“配置存储副本”向导的“选择目标数据磁盘”页的屏幕截图。

  4. 选择适当的源日志磁盘,然后选择 下一步。 源日志卷应处于使用 SSD 或相似的快速媒体的磁盘上,而不是处于旋转磁盘上。

  5. 选择适当的目标日志卷,然后选择“下一步”。 显示的目标日志磁盘的大小与所选源日志磁盘卷的大小相同。

  6. 如果目标卷不包含来自源服务器的数据的以前副本,则将覆盖卷值保留为覆盖目标卷。 如果目标的确包含类似数据,则从近期备份或以前的复制中,选择种子目标磁盘,然后选择下一步

  7. 若计划使用零 RPO 复制,则将“复制模式”值保留为“同步复制”。 如计划将群集扩展到高延迟的网络,或者需要在主站点节点上实现较低的 IO 延迟,请将其更改为“异步复制”。

  8. 如果不打算稍后在复制组中使用其他磁盘对的写入顺序,请将 一致性组 值保留为 最高性能。 如果计划向此复制组添加更多磁盘,并且需要有保证的写入排序,请选择 启用写入排序,然后选择“下一步”

  9. 选择下一步以配置复制和拉伸群集结构。

    屏幕截图显示“配置存储副本”向导的“确认”页面。

  10. 在“摘要”屏幕上注意完成对话框的结果。 可以在 Web 浏览器中查看报表。

  11. 已配置群集的两个部分之间的存储副本合作关系,但复制正在进行。 有多种方法可以通过图形工具查看复制状态。

    1. 使用 复制角色 列和 复制 选项卡。初始同步完成后,源磁盘和目标磁盘的复制状态为 持续复制

      显示故障转移群集管理器中所选磁盘的“复制”选项卡正在被连续复制的屏幕截图。

    2. 服务器上打开 事件查看器,导航到 应用程序和服务\Microsoft\Windows\StorageReplica\Admin 并检查事件 ID 1237、2200、5001、5002、5004 和 5015。

    3. 目标 服务器上打开 事件查看器,导航到 应用程序和服务\Microsoft\Windows\StorageReplica\Operational 并等待事件 ID 1215。 此事件会显示复制的字节数和所用的时间。 例如:

      Log Name:      Microsoft-Windows-StorageReplica/Operational
      Source:        Microsoft-Windows-StorageReplica
      Date:          4/6/2016 4:52:23 PM
      Event ID:      1215
      Task Category: (1)
      Level:         Information
      Keywords:      (1)
      User:          SYSTEM
      Computer:      SR-SRV03.Threshold.nttest.microsoft.com
      Description:
      Block copy completed for replica.
      
      ReplicationGroupName: Replication 2
      ReplicationGroupId: {c6683340-0eea-4abc-ab95-c7d0026bc054}
      ReplicaName: \\?\Volume{43a5aa94-317f-47cb-a335-2a5d543ad536}\
      ReplicaId: {00000000-0000-0000-0000-000000000000}
      End LSN in bitmap:
      LogGeneration: {00000000-0000-0000-0000-000000000000}
      LogFileId: 0
      CLSFLsn: 0xFFFFFFFF
      Number of Bytes Recovered: 68583161856
      Elapsed Time (ms): 140
      
    4. 目标 服务器上打开 事件查看器,导航到 应用程序和服务\Microsoft\Windows\StorageReplica\Admin 并检查事件 ID 1237、2200、5001、5009、5005 和 5015 以了解处理进度。 在该序列中不应有关于错误的警告。 如果遇到多个事件 ID 1237,则表示进度。

      警告

      初始同步完成前,CPU 和内存使用率可能比平时高。

管理拉伸群集复制

可以直接或在包含 RSAT 的远程管理计算机上执行群集节点上的所有步骤。 还可以使用故障转移群集管理器来确定复制的当前源和目标及其状态。 可以使用 GUI 或 PowerShell 管理拉伸群集复制。

若要更改拉伸群集内的复制源和目标,请使用以下方法:

  1. 若要在同一站点中的节点之间移动源复制,请右键单击源 CSV,选择 移动存储,选择 选择节点,然后选择同一站点中的节点。 如果对角色分配的磁盘使用非 CSV 存储,则移动角色。

  2. 若要将源复制从一个站点移动到另一个站点,请右键单击源 CSV,选择 移动存储,选择 选择节点,然后选择另一个站点中的节点。 如果配置了首选站点,您可以使用最优节点以始终将源存储迁移到首选站点中的节点。 如果对角色分配的磁盘使用非 CSV 存储,则移动角色。

  3. 执行从一个站点到其他站点的计划故障转移复制方向:使用服务器管理器SConfig 关闭一个站点中的两个节点。

  4. 执行从一个站点到其他站点的未计划故障转移复制方向:切断一个站点中的两个节点的电源。

    注意

    在 Windows Server 2016 中,可能需要使用故障转移群集管理器或 Move-ClusterGroup 在节点联机后手动将目标磁盘移回其他站点。

    存储副本用于卸除目标卷。 这是设计的结果。

  5. 若要从默认 8 GB 更改日志大小,请右键单击源和目标日志磁盘,选择 复制日志 选项卡,然后更改两个磁盘的大小以匹配。

  6. 若要向现有的复制组添加另一对复制磁盘,必须确保在可用的存储中至少具有一个额外的磁盘。 然后可以右键单击源磁盘并选择“添加复制合作关系”。

    注意

    需要可用存储中额外的“虚拟”磁盘是因为回归,而非有意为之。

若要删除现有的复制,请执行以下操作:

  • 右键单击源 CSV 磁盘并选择 复制,然后选择 删除。 接受警告提示。

    (可选)从 CSV 删除存储以将其返回到可用存储,供进一步测试。

    注意

    返回到可用存储后,可能需要使用磁盘管理服务器管理器以将后驱动器字母添加到卷。

若要测量复制性能,可以在源节点和目标节点上利用 性能监视器perfmon.exe)工具。 若要了解有关性能监视器的详细信息,请参阅 使用性能监视器“添加计数器”对话框

在目标节点上:

  1. 为数据卷添加存储副本统计信息对象及其所有性能计数器。

  2. 检查结果。

在源节点上:

  1. 为数据卷添加“存储副本统计信息”和“存储副本分区 I/O 统计信息”对象及其所有性能计数器(后者仅对当前源服务器上的数据可用)。

  2. 检查结果。

另请参阅