删除服务器并禁用保护

本文介绍了如何从恢复服务保管库中取消注册服务器,以及如何禁用对计算机的 Site Recovery 保护。

取消注册配置服务器

如果将 VMware VM 或 Windows/Linux 物理服务器复制到 Azure,则可从保管库中注销未连接的配置服务器,如下所示:

  1. 禁用对虚拟机的保护
  2. 取消关联或删除复制策略。
  3. 删除配置服务器

取消注册 VMM 服务器

  1. 停止在要删除的 VMM 服务器上复制云中的虚拟机。
  2. 删除由需要删除的 VMM 服务器上的云使用的任何网络映射。 在“Site Recovery 基础结构”>“对于 System Center VMM”>“网络映射”中,右键单击网络映射 >“删除”。
  3. 记下 VMM 服务器的 ID。
  4. 取消复制策略与要删除的 VMM 服务器上的云的关联。 在“Site Recovery 基础结构”>“对于 System Center VMM”>“复制策略”中,右键单击关联的策略。 右键单击云 >“取消关联”。
  5. 删除 VMM 服务器或主动节点。 在“Site Recovery 基础结构”>“对于 System Center VMM”>“VMM 服务器”中,右键单击服务器 >“删除”。
  6. 如果 VMM 服务器处于“已断开连接”状态,请对 VMM 服务器下载并运行清理脚本。 使用“以管理员身份运行”选项打开 PowerShell,以更改默认 (LocalMachine) 范围的执行策略。 在脚本中,指定要删除的 VMM 服务器的 ID。 脚本会从服务器中删除注册和云配对信息。
  7. 在所有辅助 VMM 服务器上,运行清理脚本。
  8. 在任何其他被动 VMM 群集节点(已安装提供程序)上运行清理脚本。
  9. 手动卸载 VMM 服务器上的提供程序。 如果有一个群集,请从所有节点删除。
  10. 若要将虚拟机复制到 Azure,需要在已删除的云中从 Hyper-V 主机中卸载 Azure 恢复服务代理。

取消注册 Hyper-V 站点中的 Hyper-V 主机

未由 VMM 托管的 Hyper-V 主机将收集到 Hyper-V 站点中。 在 Hyper-V 站点中删除主机,如下所示:

  1. 禁用位于主机上的 Hyper-V VM 的复制。
  2. 取消关联 Hyper-V 站点的策略。 在“Site Recovery 基础结构”>“对于 Hyper-V 站点”>“复制策略”中,右键单击关联的策略。 右键单击站点 >“取消关联”。
  3. 删除 Hyper-V 主机。 在“Site Recovery 基础结构”>“对于 Hyper-V 站点”>“Hyper-V 主机”中,右键单击服务器 >“删除”。
  4. 从 Hyper-V 站点中删除所有主机后,将该站点删除。 在“Site Recovery 基础结构”>“对于 Hyper-V 站点”>“Hyper-V 站点”中,右键单击站点 >“删除”。
  5. 如果 Hyper-V 主机处于“已断开连接”状态,请对已删除的每个 Hyper-V 主机运行以下脚本。 该脚本清理服务器上的设置,并从保管库中取消注册该服务器。
        pushd .
        try
        {
            $windowsIdentity=[System.Security.Principal.WindowsIdentity]::GetCurrent()
            $principal=new-object System.Security.Principal.WindowsPrincipal($windowsIdentity)
            $administrators=[System.Security.Principal.WindowsBuiltInRole]::Administrator
            $isAdmin=$principal.IsInRole($administrators)
            if (!$isAdmin)
            {
                "Please run the script as an administrator in elevated mode."
                $choice = Read-Host
                return;
            }

            $error.Clear()
            "This script will remove the old Azure Site Recovery Provider related properties. Do you want to continue (Y/N) ?"
            $choice =  Read-Host

            if (!($choice -eq 'Y' -or $choice -eq 'y'))
            {
            "Stopping cleanup."
            return;
            }

            $serviceName = "dra"
            $service = Get-Service -Name $serviceName
            if ($service.Status -eq "Running")
            {
                "Stopping the Azure Site Recovery service..."
                net stop $serviceName
            }

            $asrHivePath = "HKLM:\SOFTWARE\Microsoft\Azure Site Recovery"
            $registrationPath = $asrHivePath + '\Registration'
            $proxySettingsPath = $asrHivePath + '\ProxySettings'
            $draIdvalue = 'DraID'
            $idMgmtCloudContainerId='IdMgmtCloudContainerId'


            if (Test-Path $asrHivePath)
            {
                if (Test-Path $registrationPath)
                {
                    "Removing registration related registry keys."
                    Remove-Item -Recurse -Path $registrationPath
                }

                if (Test-Path $proxySettingsPath)
                {
                    "Removing proxy settings"
                    Remove-Item -Recurse -Path $proxySettingsPath
                }

                $regNode = Get-ItemProperty -Path $asrHivePath
                if($regNode.DraID -ne $null)
                {
                    "Removing DraId"
                    Remove-ItemProperty -Path $asrHivePath -Name $draIdValue
                }
                if($regNode.IdMgmtCloudContainerId -ne $null)
                {
                    "Removing IdMgmtCloudContainerId"
                    Remove-ItemProperty -Path $asrHivePath -Name $idMgmtCloudContainerId
                }
                "Registry keys removed."
            }

            # First retrieve all the certificates to be deleted
            $ASRcerts = Get-ChildItem -Path cert:\localmachine\my | where-object {$_.friendlyname.startswith('ASR_SRSAUTH_CERT_KEY_CONTAINER') -or $_.friendlyname.startswith('ASR_HYPER_V_HOST_CERT_KEY_CONTAINER')}
            # Open a cert store object
            $store = New-Object System.Security.Cryptography.X509Certificates.X509Store("My","LocalMachine")
            $store.Open('ReadWrite')
            # Delete the certs
            "Removing all related certificates"
            foreach ($cert in $ASRcerts)
            {
                $store.Remove($cert)
            }
        }catch
        {
            [system.exception]
            Write-Host "Error occurred" -ForegroundColor "Red"
            $error[0]
            Write-Host "FAILED" -ForegroundColor "Red"
        }
        popd

禁用对 VMware VM 或物理服务器(VMware 到 Azure)的保护

  1. 在“受保护的项”>“复制的项”中,右键单击计算机 >“禁用复制”。
  2. 在“禁用复制”页中,选择下列选项之一:
    • 禁用复制并删除(推荐) - 此选项从 Azure Site Recovery 中删除复制的项,并停止复制计算机。 此外,还将清理配置服务器上的复制配置,并停止对这个受保护的服务器收取 Site Recovery 费用。 请注意,此选项仅在配置服务器处于连接状态时使用。
    • 删除 - 只有在源环境已删除或无法访问(未连接)时,才应使用此选项。 此选项会从 Azure Site Recovery 中删除复制的项(停止计费)。 不过,并不会清理配置服务器上的复制配置。

注意

这两个选项都不会从受保护的服务器中卸载移动服务,需要手动卸载。 如果打算使用相同的配置服务器重新保护服务器,可以跳过卸载移动服务这一步。

注意

如果已对 VM 进行了故障转移并且该 VM 正在 Azure 中运行,请注意,禁用保护不会删除/影响故障转移的 VM。

禁用对 Azure VM 的保护(Azure 到 Azure)

  • 在“受保护的项”>“复制的项”中,右键单击计算机 >“禁用复制”。

注意

不会从受保护的服务器中卸载移动服务,需要手动卸载。 如果你打算再次保护服务器,可以跳过卸载移动服务的步骤。

禁用对 Hyper-V 虚拟机(Hyper-V 到 Azure)的保护

注意

要在没有 VMM 服务器的情况下将 Hyper-V VM 复制到 Azure,请执行此过程。 若要使用 System Center VMM 到 Azure 方案复制虚拟机,请按照禁用对使用 System Center VMM 到 Azure 方案复制的 Hyper-V 虚拟机的保护中的说明操作

  1. 在“受保护的项”>“复制的项”中,右键单击计算机 >“禁用复制”。

  2. 在“禁用复制”中,可以选择下列选项:

    • 禁用复制并删除(推荐) - 此选项从 Azure Site Recovery 中删除复制的项,并停止复制计算机。 此外,还将清理本地虚拟机上的复制配置,并停止对这个受保护的服务器收取 Site Recovery 费用。
    • 删除 - 只有在源环境已删除或无法访问(未连接)时,才应使用此选项。 此选项会从 Azure Site Recovery 中删除复制的项(停止计费)。 不过,并不会清理本地虚拟机上的复制配置。

    注意

    如果选择“删除”选项,请运行下面的一组脚本,清理本地 Hyper-V 服务器上的复制设置。

    注意

    如果已对 VM 进行了故障转移并且该 VM 正在 Azure 中运行,请注意,禁用保护不会删除/影响故障转移的 VM。

  3. 在源 Hyper-V 主机服务器上,取消复制虚拟机。 将 SQLVM1 替换为虚拟机名称,并通过管理 PowerShell 运行以下脚本

    $vmName = "SQLVM1"
    $vm = Get-WmiObject -Namespace "root\virtualization\v2" -Query "Select * From Msvm_ComputerSystem Where ElementName = '$vmName'"
    $replicationService = Get-WmiObject -Namespace "root\virtualization\v2"  -Query "Select * From Msvm_ReplicationService"
    $replicationService.RemoveReplicationRelationship($vm.__PATH)

禁用对使用 System Center VMM 到 Azure 方案复制到 Azure 的 Hyper-V 虚拟机的保护

  1. 在“受保护的项”>“复制的项”中,右键单击计算机 >“禁用复制”。

  2. 在“禁用复制”中,选择下列选项之一:

    • 禁用复制并删除(推荐) - 此选项从 Azure Site Recovery 中删除复制的项,并停止复制计算机。 此外,还将清理本地虚拟机上的复制配置,并停止对这个受保护的服务器收取 Site Recovery 费用。

    • 删除 - 只有在源环境已删除或无法访问(未连接)时,才应使用此选项。 此选项会从 Azure Site Recovery 中删除复制的项(停止计费)。 不过,并不会清理本地虚拟机上的复制配置。

      注意

      如果选择“删除”选项,请运行下面的脚本,清理本地 VMM 服务器上的复制设置。

  3. 从源 VMM 服务器上的 VMM 控制台使用 PowerShell(需要管理员权限)运行此脚本。 将占位符 SQLVM1 替换为虚拟机名称。

    $vm = get-scvirtualmachine -Name "SQLVM1"
    Set-SCVirtualMachine -VM $vm -ClearDRProtection
    
  4. 上述步骤清理 VMM 服务器上的复制设置。 若要停止运行在 Hyper-V 主机服务器上的虚拟机的复制,请运行以下脚本。 将 SQLVM1 替换为虚拟机的名称,将 host01.contoso.com 替换为 Hyper-V 主机服务器的名称。

    $vmName = "SQLVM1"
    $hostName  = "host01.contoso.com"
    $vm = Get-WmiObject -Namespace "root\virtualization\v2" -Query "Select * From Msvm_ComputerSystem Where ElementName = '$vmName'" -computername $hostName
    $replicationService = Get-WmiObject -Namespace "root\virtualization\v2"  -Query "Select * From Msvm_ReplicationService"  -computername $hostName
    $replicationService.RemoveReplicationRelationship($vm.__PATH)

禁用对使用 System Center VMM 到 VMM 方案复制到辅助 VMM 服务器的 Hyper-V 虚拟机的保护

  1. 在“受保护的项”>“复制的项”中,右键单击计算机 >“禁用复制”。

  2. 在“禁用复制”中,选择下列选项之一:

    • 禁用复制并删除(推荐) - 此选项从 Azure Site Recovery 中删除复制的项,并停止复制计算机。 此外,还将清理本地虚拟机上的复制配置,并停止对这个受保护的服务器收取 Site Recovery 费用。
    • 删除 - 只有在源环境已删除或无法访问(未连接)时,才应使用此选项。 此选项会从 Azure Site Recovery 中删除复制的项(停止计费)。 不过,并不会清理本地虚拟机上的复制配置。 运行下面的一组脚本,清理本地虚拟机上的复制设置。

      注意

      如果选择“删除”选项,请运行下面的脚本,清理本地 VMM 服务器上的复制设置。

  3. 从源 VMM 服务器上的 VMM 控制台使用 PowerShell(需要管理员权限)运行此脚本。 将占位符 SQLVM1 替换为虚拟机名称。

    $vm = get-scvirtualmachine -Name "SQLVM1"
    Set-SCVirtualMachine -VM $vm -ClearDRProtection
    
  4. 在辅助 VMM 服务器上,运行下面的脚本,清理辅助虚拟机的设置:

    $vm = get-scvirtualmachine -Name "SQLVM1"
    Remove-SCVirtualMachine -VM $vm -Force
    
  5. 在辅助 VMM 服务器上刷新 Hyper-V 主机服务器上的虚拟机,以便在 VMM 控制台中重新检测辅助 VM。

  6. 上述步骤清理 VMM 服务器上的复制设置。 若要停止虚拟机的复制,请在主 VM 和辅助 VM 上运行以下脚本。 将 SQLVM1 替换为虚拟机名称。

    Remove-VMReplication -VMName "SQLVM1"
    

后续步骤