故障转移群集域迁移

本文概述如何将 Windows Server 故障转移群集从一个域移动到另一个域。

为何要在域之间迁移

在多种情况下,需要将群集从一个域移动到另一个域。

  • 公司 A 与公司 B 合并,必须将所有群集移到公司 A 的域中
  • 群集内置于主数据中心,并交付到远程位置
  • 群集是作为工作组群集构建的,现在需要成为域的一部分
  • 群集是作为域群集构建的,现在需要成为工作组的一部分
  • 群集要从公司的一个区域移动到另一个区域,并且是不同的子域

如果基础应用程序操作不受支持,Microsoft 不会为尝试将资源从一个域移动到另一个域的管理员提供支持。 例如,Microsoft 不会为尝试将 Microsoft Exchange 服务器从一个域移动到另一个域的管理员提供支持。

警告

建议在移动群集之前对群集中的所有共享存储执行完整备份。

Windows Server 2016 和更低版本

在 Windows Server 2016 及更早版本中,群集服务无法从一个域移动到另一个域。 这是因为对 Active Directory 域服务和创建的虚拟名称的依赖性增加。

选项

若要进行此类移动,有两种选择。

第一个选项涉及销毁群集并在新的域中重新生成它。

销毁集群、将节点移动到新域以及在新域中重新创建群集的步骤的动画。

如动画所示,此选项具有破坏性,步骤如下:

  1. 销毁群集。
  2. 将节点的域成员身份更改为新域。
  3. 在更新的域中重新创建群集作为新群集。 这将需要重新创建所有资源。

第二个选项的破坏性较小,但需要额外的硬件,因为需要在新域中生成新群集。 群集出现在新域中之后,运行群集迁移向导以迁移资源。 群集迁移向导不会迁移数据,需要另一个工具,例如添加群集支持后的存储迁移服务

使用群集迁移向导在新域中创建新群集的步骤动画,包括停用旧群集的授权。

如动画所示,此选项不是破坏性的,但需要与已删除的现有群集不同的硬件或节点。

  1. 在新域中创建新群集,同时仍可使用旧群集。
  2. 使用群集迁移向导将所有资源迁移到新群集。 提醒,群集迁移向导不会复制数据,该操作需要单独完成。
  3. 解除授权或销毁旧群集。

在这两个选项中,新群集都需要安装所有的群集感知应用程序,更新驱动程序,并进行测试以确保功能。 如果还需要移动数据,则这样会增加完成此过程所需的时间。

Windows Server 2019

在 Windows Server 2019 中,我们引入了跨群集域迁移功能。 如前所述,可以很容易地执行应用场景,因为不再需要重新构建。

从一个域中移动群集是一个直接过程,可以使用两个 PowerShell cmdlet 来实现:

  • New-ClusterNameAccount – 在 Active Directory 中创建群集名称帐户

  • Remove-ClusterNameAccount – 从 Active Directory 中移除群集名称帐户

    注意

    cmdlet Remove-ClusterNameAccount 可能无法成功运行。 如果遇到问题,请按照 Windows Server 2016 及更早版本的步骤进行操作。 Microsoft 已知晓该问题。

过程是,将群集从一个域更改为工作组,然后再更改为新域。 不需要销毁群集、重新生成群集或安装应用程序。 例如:

演示如何将群集从以前的域迁移到新域的动画。

将群集迁移到新域

在以下步骤中,群集将从 Contoso.com 域移动到新的 Fabrikam.com 域。 群集名称为 CLUSCLUS,具有名为 FS-CLUSCLUS 的文件服务器角色。

  1. 在群集中的所有服务器上创建具有相同名称和密码的本地管理员帐户。 当服务器在域之间移动时,可能需要执行此操作才能登录。

  2. 使用对群集名称对象 (CNO)、虚拟计算机对象 (VCO) 具有 Active Directory 权限、有权访问群集的域用户或管理员帐户登录第一台服务器,然后打开 PowerShell。

  3. 确保所有群集网络名称资源处于离线状态,并运行以下命令以移除群集可能具有的 Active Directory 对象。

    注意

    • 如果无法使用 -Cluster CLUSCLUS 选项删除群集名称对象,请删除 -Cluster 选项或执行 -Cluster <Node Name>

    • 如果无法使用 -DeleteComputerObjects 选项删除群集名称对象,请更新 CNO 对象权限,以提前授予 VCO 帐户对 CNO 的完全控制。

    Remove-ClusterNameAccount -Cluster CLUSCLUS -DeleteComputerObjects
    
  4. 使用 Active Directory 用户和计算机可确保已移除与所有群集名称关联的 CNO 和 VCO 计算机对象。

    注意

    停止群集中所有服务器上的群集服务,并将服务启动类型设置为“手动”,这样当服务器在更改域时重启时,群集服务就不会启动。

    Stop-Service -Name ClusSvc
    
    Set-Service -Name ClusSvc -StartupType Manual
    
  5. 将服务器的域成员身份更改为工作组,重启服务器,将服务器加入新域,然后再次重启。

  6. 服务器位于新域中后,请使用具有创建对象的 Active Directory 权限、有权访问群集的域用户或管理员帐户登录服务器,然后打开 PowerShell。 启动群集服务,并将其重新设置为“自动”。

    Start-Service -Name ClusSvc
    
    Set-Service -Name ClusSvc -StartupType Automatic
    
  7. 将“群集名称”和所有其他群集网络名称资源置于“联机”状态。

    Start-ClusterResource -Name "Cluster Name"
    
    Start-ClusterResource -Name FS-CLUSCLUS
    

    注意

    如果后续 New-ClusterNameAccount 失败,请在重试之前将群集名称和其他所有群集网络名称资源置于脱机状态。

  8. 将群集更改为具有关联 Active Directory 对象的新域的一部分。 以下命令将重新创建 Active Directory 中的名称对象,网络名称资源必须处于联机状态:

    New-ClusterNameAccount -Name ClusterName -Domain NewDomainName.com -UpgradeVCOs
    

    注意

    • 如果没有任何具有网络名称的其他组(例如仅具有虚拟机的 Hyper-V 群集),将不需要 -UpgradeVCOs 参数。

    • 如果在运行 New-ClusterNameAccount 时未创建 VCO,请使用故障转移群集管理器中的群集网络名称资源上的 Repair 函数。

  9. 使用 Active Directory 用户和计算机检查新域并确保已创建关联的计算机对象。 如果有,请将组中的剩余资源联机。

    Start-ClusterGroup -Name "Cluster Group"
    
    Start-ClusterGroup -Name FS-CLUSCLUS
    

已知问题

如果使用新的 USB 见证功能,由于必须使用 Kerberos 进行身份验证的文件共享见证类型,你将无法将群集添加到新域。 将群集添加到域之前,将见证更改为 none。 此步骤完成后,立即重新创建 USB 见证。 你将看到以下错误:

New-ClusternameAccount : Cluster name account cannot be created. This cluster contains a file share witness with invalid permissions for a cluster of type AdministrativeAccesssPoint ActiveDirectoryAndDns. To proceed, delete the file share witness. After this you can create the cluster name account and recreate the file share witness. The new file share witness will be automatically created with valid permissions.