你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将 SQL Server Always On 故障转移群集实例迁移到 Azure VMware 解决方案

本文介绍如何将 SQL Server 故障转移群集实例迁移到 Azure VMware 解决方案。 目前,Azure VMware 解决方案服务不支持通过 VMware 混合链接模式将本地 vCenter Server 连接到 Azure VMware 解决方案中运行的 vCenter Server。 由于这种限制,此过程需要使用 VMware HCX 进行迁移。 有关配置 HCX 的详细信息,请参阅在 Azure VMware 解决方案中安装和激活 VMware HCX

VMware HCX 不支持迁移包含物理共享模式的、已附加到某个虚拟机的 SCSI 控制器的虚拟机。 但是,你可以克服这种限制,方法是执行此过程中所述的步骤,并使用 VMware HCX 冷迁移来移动构成群集的不同虚拟机。

该图显示了 Azure VMware 解决方案的 SQL Server 故障转移体系结构。

注意

此过程需要完全关闭群集。 由于 SQL Server 服务在迁移期间不可用,因此请相应地规划停机时间。

我们已使用 Windows Server 2019 和 2022 数据中心版本以及部署在本地环境中的虚拟机对 Microsoft SQL Server 2019 和 2022 进行了测试。 Windows Server 和 SQL Server 是遵循 Microsoft 和 VMware 的最佳做法和建议配置的。 本地源基础结构是在 Dell PowerEdge 服务器和 Intel Optane P4800X SSD NVMe 设备上运行的 VMware vSphere 7.0 Update 3 和 VMware vSAN。

先决条件

  • 查看并记录群集中每个节点的存储和网络配置。
  • 查看并记录 WSFC 配置。
  • 维护所有 SQL Server 数据库的备份。
  • 备份群集虚拟机。
  • 从所有群集节点 VM 所在的任何分布式资源计划程序 (DRS) 组和规则中删除这些 VM。
  • 必须在本地数据中心和运行已迁移工作负载的 Azure VMware 解决方案私有云之间配置 VMware HCX。 有关安装 VMware HCX 的详细信息,请参阅 Azure VMware 解决方案文档
  • 确保 SQL Server 及使用它的工作负载所用的所有网段都已扩展到 Azure VMware 解决方案私有云中。 若要验证此步骤,请参阅配置 VMware HCX 网络扩展

VMware HCX over VPN 或 ExpressRoute 连接均可用作迁移的网络配置。

使用 VMware HCX over VPN 时,由于其带宽有限,因此它通常适用于能够承受较长停机时间的工作负载(例如非生产环境)。

对于以下任何实例,建议使用 ExpressRoute 连接进行迁移:

  • 生产环境
  • 数据库较大的工作负载
  • 在需要最大程度地减少停机时间的方案中,建议使用 ExpressRoute 连接进行迁移。

停机时间注意事项

迁移期间的停机时间取决于要迁移的数据库大小,以及专用网络与 Azure 云之间的连接速度。 将 SQL Server 故障转移群集实例 Always On 迁移到 Azure VMware 解决方案需要完全关闭数据库和所有群集节点,但你应该计划在非高峰时段执行迁移,并在批准的更改时段内执行。

下表指出了迁移每个 SQL Server 拓扑的预计停机时间。

方案 预计停机时间 说明
SQL Server 独立实例 迁移是使用 VMware vMotion 完成的,数据库在迁移期间可用,但不建议在迁移期间提交任何关键数据。
SQL Server Always On 可用性组 在迁移第一个次要副本期间,主要副本将始终可用,并且在初次故障转移到 Azure 后,次要副本将变成主要副本。
SQL Server Always On 故障转移群集实例 群集的所有节点都将关闭,并通过 VMware HCX 冷迁移进行迁移。 停机时间取决于数据库大小,以及专用网络与 Azure 云之间的连接速度。

Windows Server 故障转移群集仲裁注意事项

Windows Server 故障转移群集需要通过仲裁机制来维护群集。

可以通过群集中奇数个节点或者使用见证来使用奇数个投票元素。 可以采用三种不同的形式配置见证:

  • 磁盘见证
  • 文件共享见证
  • 云见证

如果群集使用磁盘见证,则必须使用迁移故障转移群集将磁盘与群集共享存储一起迁移。

如果群集使用本地运行的文件共享见证,则已迁移群集的见证类型取决于 Azure VMware 解决方案的使用方案

  • 数据中心扩展:在本地维护文件共享见证。 工作负载分布在数据中心和 Azure VMware 解决方案中,因此两者之间的连接应始终可用。 无论在哪种情况下,都请考虑带宽限制并做好相应的规划。
  • 数据中心出口:对于此方案,可以使用两个选项。 在这两种情况下,都可以在迁移期间在本地维护文件共享见证,以防需要回滚。
    • 在 Azure VMware 解决方案私有云中部署新的文件共享见证
    • 部署一个在 Azure VMware 解决方案私有云所在区域的 Azure Blob 存储中运行的云见证
  • 灾难恢复和业务连续性:对于灾难恢复方案,最合适且最可靠的选项是创建一个在 Azure 存储中运行的云见证
  • 应用程序现代化:对于此用例,最佳选项是部署云见证

有关仲裁配置和管理的详细信息,请参阅故障转移群集文档。 有关在 Azure Blob 存储中部署云见证的详细信息,请参阅为故障转移群集部署云见证文档。

迁移故障转移群集

出于演示目的,在本文档中,我们将使用包含 Windows Server 2019 Datacenter 和 SQL Server 2019 Enterprise 的双节点群集。 此过程也支持 Windows Server 2022 和 SQL Server 2022。

  1. 在“vSphere 客户端”中,关闭群集的第二个节点。

  2. 访问群集的第一个节点,并打开“故障转移群集管理器”

    • 验证第二个节点是否处于“脱机”状态,并且所有群集服务和存储都受第一个节点的控制该图显示了 Windows Server 故障转移群集管理器群集存储验证。

    • 关闭群集。

      该图显示了使用 Windows Server 故障转移群集管理器关闭群集。

    • 检查所有群集服务是否已成功停止且未出错。

  3. 关闭群集的第一个节点。

  4. 在“vSphere 客户端”中,编辑群集第二个节点的设置

    • 从虚拟机配置中删除所有共享磁盘。
    • 确保未选中“从数据存储中删除文件”复选框,因为这会从数据存储中永久删除磁盘。 如果发生这种情况,需要从以前的备份恢复群集。
    • 在用于共享存储的虚拟 SCSI 控制器中,将“SCSI 总线共享”从“物理”设置为“无”。 通常,这些控制器属于 VMware 半虚拟类型。
  5. 编辑第一个节点虚拟机的设置。 在 SCSI 控制器中,将“SCSI 总线共享”从“物理”设置为“无”

  6. 在“vSphere 客户端”中,转到 HCX 插件区域。 在“服务”下,选择“迁移”>“迁移”

    • 选择第二个节点虚拟机。
    • 在远程私有云中设置 vSphere 群集,该群集将用作计算容器,托管迁移的一个或多个 SQL Server VM
    • 为“vSAN 数据存储”选择远程存储
    • 如果你要将虚拟机放入特定的文件夹中,请选择一个文件夹。 此操作并非强制性的,但建议将 Azure VMware 解决方案私有云中的不同工作负载分开。
    • 保留“与源相同的格式”
    • 为“冷迁移”选择“迁移配置文件”
    • 在“扩展选项”中,选择“迁移自定义属性”
    • 验证本地网段在 Azure 中是否具有正确的远程延伸网段。
    • 选择“验证”,并确保所有检查均已完成且状态为通过。 最常见的错误与存储配置有关。 再次验证是否不存在任何采用物理共享设置的 SCSI 控制器。
    • 选择“开始”,迁移随即启动
  7. 对第一个节点重复相同的过程。

  8. 访问“Azure VMware 解决方案 vSphere 客户端”,编辑第一个节点的设置,并在管理共享磁盘的一个或多个 SCSI 控制器中,设置回物理 SCSI 总线共享

  9. 在“vSphere 客户端”中编辑第二个节点的设置

    • 在管理共享存储的 SCSI 控制器中,将“SCSI 总线共享”设置回“物理”。
    • 将群集共享磁盘作为附加存储添加到节点。 将它们分配到第二个 SCSI 控制器。
    • 确保所有存储配置与迁移前记录的配置相同。
  10. 打开第一个节点虚拟机的电源。

  11. 使用“VMware 远程控制台”访问第一个节点 VM

    • 验证虚拟机网络配置,并确保它可以访问本地和 Azure 资源。

    • 打开“故障转移群集管理器”并验证群集服务

      该图显示了故障转移群集管理器中的群集摘要。

  12. 打开第二个节点虚拟机的电源。

  13. 从“VMware 远程控制台”访问第二个节点 VM

    • 验证 Windows Server 是否可以访问存储。
    • 在“故障转移群集管理器”中检查第二个节点是否显示为“联机”状态该图显示了故障转移群集管理器中的群集节点状态。
  14. 使用“SQL Server Management Studio”连接到 SQL Server 群集资源网络名称。 确认所有数据库均已联机且可访问。

该图显示了验证 SQL Server Management Studio 与已迁移的群集实例数据库的连接。

检查基础结构中其他系统和应用程序与 SQL Server 的连接。 验证使用一个或多个数据库的所有应用程序是否仍可以访问这些数据库。

详细信息