










如果有使用非托管磁盘的现有 Windows 虚拟机 (VM),可通过 Azure 托管磁盘服务将 VM 转换为使用托管磁盘。 此过程会同时转换 OS 磁盘和任何附加的数据磁盘。
本文介绍如何使用 Azure PowerShell 转换 VM。 如需进行安装或升级,请参阅安装和配置 Azure PowerShell。
该转换需要重启 VM,因此请在预先存在的维护时段内计划 VM 迁移。
该转换是不可逆的。
请务必测试转换。 在生产环境中执行迁移之前迁移测试性虚拟机。
在转换期间,会解除分配 VM。 转换完成后,VM 在启动时会接收新的 IP 地址。 如果需要,可向 VM 分配静态 IP 地址。
不会删除在转换之前由 VM 使用的原始 VHD 和存储帐户。 它们会继续产生费用。 若要避免这些项目产生的费用,请在验证转换已完成后删除原始 VHD Blob。
本节介绍如何将单实例 Azure VM 从非托管磁盘转换为托管磁盘。 (如果 VM 位于可用性集中,请参阅下一节。)
使用 Stop-AzureRmVM cmdlet 解除分配 VM。 以下示例在名为 myResourceGroup 的资源组中解除分配名为 myVM 的 VM:
$rgName = "myResourceGroup"
$vmName = "myVM"
Stop-AzureRmVM -ResourceGroupName $rgName -Name $vmName -Force
使用 ConvertTo-AzureRmVMManagedDisk cmdlet 将 VM 转换为托管磁盘。 以下过程转换之前的 VM,包括 OS 磁盘和任何数据磁盘:
ConvertTo-AzureRmVMManagedDisk -ResourceGroupName $rgName -VMName $vmName
使用 Start-AzureRmVM 在转换为托管磁盘后启动 VM。 以下示例重启之前的 VM:
Start-AzureRmVM -ResourceGroupName $rgName -Name $vmName
如果要转换为托管磁盘的 VM 位于可用性集中,则需要先将可用性集转换为托管可用性集。
使用 Update-AzureRmAvailabilitySet cmdlet 转换可用性集。 以下示例在名为 myResourceGroup 的资源组中更新名为 myAvailabilitySet 的可用性集:
$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:
$avSet.PlatformFaultDomainCount = 2
Update-AzureRmAvailabilitySet -AvailabilitySet $avSet -Sku Aligned
解除分配 VM,并转换可用性集中的 VM。 以下脚本使用 Stop-AzureRmVM cmdlet 解除分配每个 VM,使用 ConvertTo-AzureRmVMManagedDisk 进行转换,并使用 Start-AzureRmVM 重启:
$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
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。