将 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 位于可用性集中,请参阅下一节。)
使用 Stop-AzureRmVM cmdlet 解除分配 VM。 以下示例在名为
myResourceGroup的资源组中解除分配名为myVM的 VM:PowerShell复制$rgName = "myResourceGroup"
$vmName = "myVM"
Stop-AzureRmVM -ResourceGroupName $rgName -Name $vmName -Force
使用 ConvertTo-AzureRmVMManagedDisk cmdlet 将 VM 转换为托管磁盘。 以下过程转换之前的 VM,包括 OS 磁盘和任何数据磁盘:
PowerShell复制ConvertTo-AzureRmVMManagedDisk -ResourceGroupName $rgName -VMName $vmName
使用 Start-AzureRmVM 在转换为托管磁盘后启动 VM。 以下示例重启之前的 VM:
PowerShell复制Start-AzureRmVM -ResourceGroupName $rgName -Name $vmName
在可用性集中转换 VM
如果要转换为托管磁盘的 VM 位于可用性集中,则需要先将可用性集转换为托管可用性集。
使用 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
解除分配 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
将 Windows 虚拟机从非托管磁盘转换为托管磁盘的更多相关文章
- 在 Windows 安装期间将 MBR 磁盘转换为 GPT 磁盘
以 UEFI 启动的 Windows 磁盘必须是 GPT 格式.本文将介绍如何在安装 Windows 期间将磁盘从 MBR 转换成 GPT. 特别注意:操作不慎可能丢失所有数据,如果你懂得安装系统的一 ...
- 使用mbr2gpt将MBR磁盘转换为GPT磁盘
随着越来越多的新PC的到来,UEFI启动渐渐的取代了BIOS启动方式.不过UEFI需要从GPT磁盘启动,原来的MBR磁盘不行.如果你更换了硬件,只想把磁盘拿到新平台上用又不想重装系统的话就麻烦了.以前 ...
- 有关 Azure IaaS VM 磁盘以及托管和非托管高级磁盘的常见问题解答
本文将对有关 Azure 托管磁盘和 Azure 高级存储的一些常见问题进行解答. 托管磁盘 什么是 Azure 托管磁盘? 托管磁盘是一种通过处理存储帐户管理来简化 Azure IaaS VM 的磁 ...
- (转)GPT磁盘与MBR磁盘区别
摘要: Windows 2008磁盘管理器中,在磁盘标签处右击鼠标,随磁盘属性的不同会出现“转换到动态磁盘”,“转换到基本磁盘”“转换成GPT磁盘”,“转换成MBR磁盘”等选项,在此做简单介绍.部 ...
- 如何从 Windows 虚拟机分离数据磁盘
当不再需要附加到虚拟机的数据磁盘时,可以轻松地分离它. 这会从虚拟机中删除该磁盘,但不会从存储中删除它. Warning 如果用户分离磁盘,它不会自动删除. 如果订阅了高级存储,则将继续承担该磁盘的存 ...
- 使用 Azure 门户创建 Windows 虚拟机
可以通过 Azure 门户创建 Azure 虚拟机. 此方法提供一个基于浏览器的用户界面,用于创建和配置虚拟机和所有相关的资源. 本快速入门介绍了如何创建虚拟机并在 VM 上安装 webserver. ...
- Windows无法安装到这个磁盘 选中的磁盘具有MBR分区表解决方法
在安装 win10的时候,会出现这种提示:Windows 无法安装到这个磁盘.选中的磁 盘具有 MBR 分区表.在 EFI 系统上, Windows 只能安装到 GPT 磁盘.出现这种 情况主要是因为 ...
- VMware下对虚拟机Ubuntu14系统所在分区sda1进行磁盘扩容
VMware下对虚拟机Ubuntu14系统所在分区sda1进行磁盘扩容 一般来说,在对虚拟机里的Ubuntu下的磁盘进行扩容时,都是添加新的分区,而并不是对其系统所在分区进行扩容,如在此链接中http ...
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(安装Windows虚拟机)-(4)
一.背景说明 在之前的篇章中,提到在webvirtmgr里安装linux系统的vm,下面说下安装windows系统虚拟机的操作记录: 由于KVM管理虚拟机的硬盘和网卡需要virtio驱动,linux ...
随机推荐
- JAVA实现调用微信js-sdk扫一扫
喜欢的朋友可以关注下. 已经很久没有给大家分享一片技术文章了,今天抽了点时间来,给大家说一说如何调用微信提供的扫一扫接口. 前提: 需要申请一个公众号:申请公众号需要的资料我就不说了,去申请微信会提示 ...
- Comparable接口和Comparator接口的不同用法
两者都可用来在定义比较方法,然后用在排序中. Comparable是类本身继承的接口 Comparator实在类外定义一个排序的类 比较而言,觉得Comparator更灵活一些,但是Comparabl ...
- can only concatenate tuple (not "int") to tuple问题原因
#测试程序 import os from pydub import AudioSegment #已经确定, # enPath = "%s%s/%s"%(enDir,file,enf ...
- Java:Cookie实现记住用户名、密码
package com.gamecenter.api.util; import java.io.IOException; import java.io.PrintWriter; import java ...
- 3.spring环境搭建
1. 导入jar 1.1 四个核心包一个日志包(commons-logging)
- .net 连接kafka
新建两个控制台项目,一个生产者,一个消费者,使用Nuget安装Confluent.Kafka 生产者 static void Main(string[] args) { var config = ne ...
- Spring的Java配置方式—@Configuration和@Bean实现Java配置
Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.@Configuration 和 @BeanSpring的Java配置方式是通过 @Configuration 和 @Be ...
- MySQL分布式jdbc连接
参考文档: https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-multi-host-connections.html 服务器故障转移 连 ...
- C++中的字符串可以这样换行写
运行结果:
- Ubuntu安装设置nginx和nohup常用操作
nginx安装 Ubuntu直接从常规源中安装 apt-get install nginx 安装的目录 配置文件:/etc/nginx/ 主程序文件:/usr/sbin/nginx Web默认目录:/ ...