zoukankan      html  css  js  c++  java
  • 将 Windows 虚拟机从非托管磁盘转换为托管磁盘

    如果有使用非托管磁盘的现有 Windows 虚拟机 (VM),可通过 Azure 托管磁盘服务将 VM 转换为使用托管磁盘。 此过程会同时转换 OS 磁盘和任何附加的数据磁盘。

    本文介绍如何使用 Azure PowerShell 转换 VM。 如需进行安装或升级,请参阅安装和配置 Azure PowerShell

    开始之前

    • 该转换需要重启 VM,因此请在预先存在的维护时段内计划 VM 迁移。

    • 该转换是不可逆的。

    • 请务必测试转换。 在生产环境中执行迁移之前迁移测试性虚拟机。

    • 在转换期间,会解除分配 VM。 转换完成后,VM 在启动时会接收新的 IP 地址。 如果需要,可向 VM 分配静态 IP 地址

    • 不会删除在转换之前由 VM 使用的原始 VHD 和存储帐户。 它们会继续产生费用。 若要避免这些项目产生的费用,请在验证转换已完成后删除原始 VHD Blob。

    转换单实例 VM

    本节介绍如何将单实例 Azure VM 从非托管磁盘转换为托管磁盘。 (如果 VM 位于可用性集中,请参阅下一节。)

    1. 使用 Stop-AzureRmVM cmdlet 解除分配 VM。 以下示例在名为 myResourceGroup 的资源组中解除分配名为 myVM 的 VM:

      PowerShell
      $rgName = "myResourceGroup"
      $vmName = "myVM"
      Stop-AzureRmVM -ResourceGroupName $rgName -Name $vmName -Force
      
    2. 使用 ConvertTo-AzureRmVMManagedDisk cmdlet 将 VM 转换为托管磁盘。 以下过程转换之前的 VM,包括 OS 磁盘和任何数据磁盘:

      PowerShell
      ConvertTo-AzureRmVMManagedDisk -ResourceGroupName $rgName -VMName $vmName
      
    3. 使用 Start-AzureRmVM 在转换为托管磁盘后启动 VM。 以下示例重启之前的 VM:

      PowerShell
      Start-AzureRmVM -ResourceGroupName $rgName -Name $vmName
      

    在可用性集中转换 VM

    如果要转换为托管磁盘的 VM 位于可用性集中,则需要先将可用性集转换为托管可用性集。

    1. 使用 Update-AzureRmAvailabilitySet cmdlet 转换可用性集。 以下示例在名为 myResourceGroup 的资源组中更新名为 myAvailabilitySet 的可用性集:

      PowerShell
      $rgName = 'myResourceGroup'
      $avSetName = 'myAvailabilitySet'
      
      $avSet = Get-AzureRmAvailabilitySet -ResourceGroupName $rgName -Name $avSetName
      Update-AzureRmAvailabilitySet -AvailabilitySet $avSet -Sku Aligned 
      

      如果可用性集所在的区域只有 2 个托管容错域,但却有 3 个非托管容错域,则此命令会显示类似于“指定的容错域计数 3 必须在 1 到 2 这个范围内”的错误消息。 若要解决此错误,请将容错域更新为 2,并按如下所示将 Sku 更新为 Aligned

      PowerShell
      $avSet.PlatformFaultDomainCount = 2
      Update-AzureRmAvailabilitySet -AvailabilitySet $avSet -Sku Aligned
      
    2. 解除分配 VM,并转换可用性集中的 VM。 以下脚本使用 Stop-AzureRmVM cmdlet 解除分配每个 VM,使用 ConvertTo-AzureRmVMManagedDisk 进行转换,并使用 Start-AzureRmVM 重启:

      PowerShell
      $avSet = Get-AzureRmAvailabilitySet -ResourceGroupName $rgName -Name $avSetName
      
      foreach($vmInfo in $avSet.VirtualMachinesReferences)
      {
        $vm = Get-AzureRmVM -ResourceGroupName $rgName | Where-Object {$_.Id -eq $vmInfo.id}
        Stop-AzureRmVM -ResourceGroupName $rgName -Name $vm.Name -Force
        ConvertTo-AzureRmVMManagedDisk -ResourceGroupName $rgName -VMName $vm.Name
        Start-AzureRmVM -ResourceGroupName $rgName -Name $vm.Name
      }
      

    故障排除

    如果转换过程中出现错误,或先前转换中的问题导致 VM 处于“失败”状态,请再次运行 ConvertTo-AzureRmVMManagedDisk cmdlet。 通常只需简单的重试即可解决这一问题。

    后续步骤

    将标准托管磁盘转换为高级托管磁盘

    使用快照获取 VM 的只读副本。   立即访问http://market.azure.cn

  • 相关阅读:
    控制反转容器&依赖注入模式(转)
    基于消息与.Net Remoting的分布式处理架构(转)
    项目文档书写(序)
    jQuery使用手册
    大型社区的设计
    实战之数据结构篇(线性表,堆栈与队列)
    你必须知道的C#的25个基础概念
    SOA架构师注意的问题
    经典语录
    项目文档之(详细设计说明书)
  • 原文地址:https://www.cnblogs.com/zangdalei/p/7991468.html
Copyright © 2011-2022 走看看