删除服务器并禁用保护

本文介绍了如何从恢复服务保管库中取消注册服务器,以及如何禁用对计算机的 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 Microsoft 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"