Azure Lei Zhang的博客

weibo: LeiZhang的微博/QQ: 185165016/QQ群:319036205/邮箱:leizhang1984@outlook.com/TeL:139-161-22926

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  《Windows Azure Platform 系列文章目录

 

  背景介绍:

  (1)我们建议使用Azure Manage Disk托管磁盘来创建Azure虚拟机

  (2)使用托管磁盘的好处是,让微软云Azure管理多台虚拟机的磁盘,保证高可用

 

  在一般情况下,使用Azure 用户界面是没有办法迁移使用托管磁盘的虚拟机,我们必须通过Azure PowerShell或者CLI,将托管磁盘的VHD文件进行迁移

 

  关键步骤如下:

  (1)将使用托管磁盘的虚拟机关机

  (2)将托管磁盘导出,生成SAS Token 

  (3)创建新的Azure存储账户

  (4)使用SAS Token,将托管磁盘的VHD文件,拷贝到新的Azure Storage存储账户里

  (5)基于这个存储账户重建虚拟机

 

  本章我们将介绍如何进行迁移。

  1.首先,我们登录https://portal.azure.cn,选择需要迁移的使用托管磁盘的Azure虚拟机,将该虚拟机关机

  2.选择虚拟机,磁盘

  

 

  3.点击磁盘导出,时间选择3600秒,然后点击生成URL

  在1小时(3600秒)的时间内,对该虚拟机的磁盘可以执行导出操作

  

 

  4.导出的路径如下图,我们把路径保存到记事本上

  

 

  5.我们在新的租户下,创建1个新的存储账户,假设命名为leimigrationnew。在这个存储账户下,创建1个container,命名为vhds。图略

  6.在本地运行Azure PowerShell,执行下面的脚本

#在另外一个租户下,运行下面的PowerShell
#首先进行登录
Add-AzureRMAccount -Environment AzureChinaCloud

#设置订阅ID
$subid='[设置新租户的订阅ID]'
Select-AzureRmSubscription -SubscriptionId $subid

#设置存储账户名称和存储秘钥
$accountname='[这里输入存储账户名称]'
$accountkey='[这里输入存储账户秘钥]'

$destContext = New-AzureStorageContext -StorageAccountName $accountname -StorageAccountKey $accountkey

#设置托管磁盘的https sas token url
$accesssas="[这里设置我们在步骤4中复制的托管磁盘sas token url]"

#注意,这里我们复制到container的名称是vhds,我们必须手动先创建好该container
#我们这里将vhd文件名命名为tesisdisk.vhd
$blobcopy=Start-AzureStorageBlobCopy -AbsoluteUri $accesssas -DestContainer "vhds" -DestContext $destContext -DestBlob "testisdisk.vhd"

#我们运行完上面的命令后,托管磁盘会异步进行vhd拷贝
#如果需要查看拷贝进度,请运行下面的命令
$blobCopy | Get-AzureStorageBlobCopyState

 

  7.运行了上面的Powershell之后,我们就异步的将托管磁盘进行复制。

  如果托管磁盘容量很大的话,需要运行下面的脚本,查看VHD拷贝进度

#查看VHD拷贝进度
$blobCopy | Get-AzureStorageBlobCopyState

 

  如果VHD正在拷贝,则状态显示为Pending,如下图:

  

 

  如果VHD已经拷贝结束,则状态显示为Success

  

  

 

  8.拷贝完成后,我们在另外一个租户的存储账户内,查看到VHD文件已经拷贝成功了。如下图:

  

 

  9.后续,我们可以基于上面的VHD文件,进行虚拟机的重建

  具体可以参考:Azure ARM (15) 根据现有VHD文件,创建ARM VM

 

posted on 2019-08-07 22:22  Lei Zhang的博客  阅读(516)  评论(0编辑  收藏  举报