博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Azure迁移托管磁盘虚拟机到新账号下
阅读量:6343 次
发布时间:2019-06-22

本文共 2165 字,大约阅读时间需要 7 分钟。

先决条件:

导出托管磁盘VHD文件到存储账户时,需要关闭虚拟机操作。同时,请您记录好哪些是OS磁盘,哪些是数据磁盘。

官方参考文档:

需要安装Azure Powershell 模块,可参考https://docs.azure.cn/zh-cn/powershell-install-configure

具体步骤:

步骤一:导出托管磁盘VHD到原订阅存储账户下(旧订阅)

#登录Azure Account

Add-AzureRmAccount -EnvironmentName AzureChinaCloud

# 设置订阅ID(如此账户下只有一个订阅,此步骤可省略)

$subid = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ###替换为您的订阅ID
Select-AzureRmSubscription -SubscriptionID $subid

#将目标存储账号的信息赋予变量

$destStorageAccount = Get-AzureRmStorageAccount -ResourceGroupName <Resource Group Name for Dest Storage Account> -Name <Dest Storage Account Name>;

#获取托管磁盘的拷贝权限

$diskAccess = Grant-AzureRmDiskAccess -ResourceGroupName <Resource Group Name for Managed Disk> -DiskName <Managed Disk Name> -DurationInSecond 36000 -Access Read;

#将托管磁盘导出成VHD拷贝到目标存储账户,vhds为存储账户中的container名称

Start-AzureStorageBlobCopy -AbsoluteUri $diskAccess.AccessSAS -DestContainer "vhds" -DestContext $destStorageAccount.Context -DestBlob <Dest VHD Name>;

#查看拷贝进度

get-AzureStorageBlobCopyState -Blob <Dest VHD Name> -Container"vhds" -Context $destStorageAccount.Context -WaitForComplete

步骤二:从原有订阅存储账户下的VHD文件复制到新Azure账户订阅的存储账户下

#安装、使用AzCopy将原有存储账户下的VHD文件复制到新Azure账户订阅下的存储账户https://docs.azure.cn/zh-cn/storage/common/storage-use-azcopy

AzCopy /Source: /Dest: /SourceKey:key1 /DestKey:key2 /Pattern:abc.txt

步骤三:从存储帐户中的非托管磁盘创建托管数据磁盘(新订阅)

#将资源组,位置,托管数据磁盘的名称,非托管磁盘的URL赋予变量

$rgName = "myResourceGroup"
$location = "China North"
$diskName = "myDisk"
$vhdUri = ""

#创建托管数据磁盘

$disk1 = New-AzureRmDisk -DiskName $diskName -Disk (New-AzureRmDiskConfig -AccountType StandardLRS -Location $location -CreateOption Import -SourceUri $vhdUri) -ResourceGroupName $rgName

步骤四:更改OS托管磁盘的OsType,从而能够使用Portal上的“创建VM”按钮创建虚拟机(新订阅)

#查询托盘磁盘信息,缺失 OsType 的托管磁盘会被视作是数据磁盘,需要更新该托管磁盘的 OsType 来赋予正确的键值

Get-AzureRmDisk -ResourceGroupName "<资源组名称>" -DiskName "<托盘磁盘名称>"

#将托盘磁盘信息赋予给变量

$Disk = Get-AzureRmDisk -ResourceGroupName "<资源组名称>" -DiskName "<托盘磁盘名称>"

#输入托盘磁盘的 OsType

$Disk.OsType = "Linux" <-根据虚拟机 OS 类型选择 Windows 或者 Linux

#手动更新托盘磁盘的信息

Update-AzureRmDisk -ResourceGroupName "<资源组名称>" -DiskName "<托盘磁盘名称>" -Disk $Disk

在 Azure 门户 上重新查看该托盘磁盘的信息,可以看到 “创建 VM” 的按钮了,继续创建虚拟机了。

转载于:https://blog.51cto.com/jiaxiaolei/2138984

你可能感兴趣的文章
CentOS7.4安装配置mysql5.7 TAR免安装版
查看>>
解决IE二级链接无法打开故障
查看>>
Windows phone应用开发[16]-数据加密
查看>>
SQL Server 迁移数据到MySQL
查看>>
通用数据压缩算法简介
查看>>
The next Industry Standard in IT Monitoring, a python implementation Nagios like tool --- Shinken
查看>>
(笔记)找工作,该怎么进补
查看>>
div的显示和隐藏以及点击图标的更改
查看>>
(轉貼) Ubuntu將在ARM平台netbook上現身 (SOC) (News) (Linux) (Ubuntu)
查看>>
SQL注入测试工具:Pangolin(穿山甲)
查看>>
在html 的img属性里只显示图片的部分区域(矩形,给出开始点和结束点),其他部份不显示,也不要拉伸...
查看>>
程序员第二定律:量化管理在程序员身上永无可能
查看>>
ubuntu一些脚本的执行顺序
查看>>
类继承的结构
查看>>
python 自动生成C++代码 (代码生成器)
查看>>
svn经常使用命令具体解释(非常全,非常有用)
查看>>
DevExpress licenses.licx 的解决方法 z
查看>>
NOI第一天感想&小结
查看>>
<聪明的投资者(第四版点评)>读书笔记
查看>>
[ES6] 20. Polyfills
查看>>