《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

Windows Azure Virtual Machine (38) 跨租户迁移使用托管磁盘的Azure虚拟机的更多相关文章

  1. [New Portal]Windows Azure Virtual Machine (13) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (3)

    <Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...

  2. [New Portal]Windows Azure Virtual Machine (15) 在本地制作数据文件VHD并上传至Azure(2)

    <Windows Azure Platform 系列文章目录> 在上一章内容里,我们已经将包含有OFFICE2013 ISO安装文件的VHD上传至Azure Blob Storage中了. ...

  3. [New Portal]Windows Azure Virtual Machine (10) 自定义Windows Azure Virtual Machine模板

    <Windows Azure Platform 系列文章目录> 通过之前的文章,我相信大家对微软Windows Azure Virtual Machine有一定的了解了. 虽然微软提供了非 ...

  4. Windows Azure Virtual Machine (31) 迁移Azure虚拟机

    <Windows Azure Platform 系列文章目录> 为什么要写这篇Blog? 之前遇到过很多客户提问: (1)我之前创建的虚拟机,没有加入虚拟网络.现在需要重新加入虚拟机网络, ...

  5. [New Portal]Windows Azure Virtual Machine (11) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (1)

    <Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...

  6. [New Portal]Windows Azure Virtual Machine (12) 在本地使用Hyper-V制作虚拟机模板,并上传至Azure (2)

    <Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,作为自定义的虚拟机模板. 注意:因为在制作VHD的最 ...

  7. [New Portal]Windows Azure Virtual Machine (21) 将本地Hyper-V的VM上传至Windows Azure Virtual Machine

    <Windows Azure Platform 系列文章目录> 本章介绍的内容是将本地Hyper-V的VHD,上传到Azure数据中心,并且保留OS中的内容. 注意:笔者没有执行Syspr ...

  8. Windows Azure Virtual Machine (26) 使用高级存储(SSD)和DS系列VM

    <Windows Azure Platform 系列文章目录> Update: 2016-11-3,如果大家在使用Linux VM,使用FIO进行IOPS测试的时候,请使用以下命令: su ...

  9. Windows Azure Virtual Machine (30) 修改Azure VM 的Subnet

    <Windows Azure Platform 系列文章目录> 我在使用Azure Virtual Machine虚拟机的时候,常常会结合Virtual Network虚拟网络一起使用. ...

随机推荐

  1. PHP递归函数return返回null的问题

    前段时间在写递归函数的时候碰到个问题,返回值一直为null,这里记录一下. 写个小例子: /** * @param $i * @return mixed */ function recursion($ ...

  2. 避免python二维列表append一维列表时浅拷贝问题

    原始问题: 由于浅拷贝原因,使得当a列表变动时,b列表也发生变动 解决办法: 如上图所示,添加的时候添加新列即可,类似新建一个列表,使得与原有列表a不共用同一个内存

  3. pyEcharts安装及使用指南(最新)

    pyEcharts安装及使用指南(最新): 网上资料大多数是0.5X的版本, 这里我给出我的0.5版本连接https://www.cnblogs.com/dgwblog/p/11811562.html ...

  4. python之面向对象设计、编程

    面向对象 一.编程三个范式 1.面向过程编程 2.函数式编程 数学层面的函数 python中的函数编程 3.面向对象编程 二.面向对象设计 1.类:把一类事物共同的特征和共同的动作整合在一起就是类: ...

  5. node 连接 mysql 数据库三种方法------笔记

    一.mysql库 文档:https://github.com/mysqljs/mysql mysql有三种创建连接方式 1.createConnection 使用时需要对连接的创建.断开进行管理 2. ...

  6. JS setInterval 循环定时器的使用 以及动态倒计时展示

    例: var setTime = setInterval(function () { ff(); //每秒调用的方法函数 }, 1000); //1000毫秒为1秒 //可使用 clearInterv ...

  7. CAT 默认密码修改

    修改操作 1.按照如下路径,打开SessionManager类,cat-home目录下:com.dianping.cat.system.page.login.service.SessionManage ...

  8. C#上手练习3(while、do while语句)(添加机器人聊天)

    C# while 循环与 for 循环类似,但是 while 循环一般适用于不固定次数的循环. while 循环的语法形式如下. while(布尔表达式){    语句块;} while 语句执行的过 ...

  9. linux shell中$0,$?,$!等的特殊用法

    记录下linux shell下的特殊用法及参数的说明 变量说明: $$Shell本身的PID(ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值 ...

  10. Java生鲜电商平台-电商支付流程架构实战

    Java生鲜电商平台-电商支付流程架构实战 说明:我一直秉承的就是接地气的业务架构实战.我的文章都有一个这样的核心. 1. 业务场景 2. 解决问题. 3.代码实现. 4.代码重构. 5.总结与复盘. ...