t34ewf 发表于 2015-7-10 08:27:36

Windows Azure之VM的迁移之旅

                      今天主要是讲Azure VM如何从地理区域A迁移到地理区域B的过程。
应用场景:同一订阅下的存储A中的vhd复制到存储B中。A复制到B, 只需要用到A的vhd链接。
目前有一台azure vm在中国东部,存储账号也是中国东部。

我们假设我们要把VM迁移到中国北部,按照一般的想法和做法,是直接就保留磁盘再删除虚拟机的动作。


可以在磁盘那边看到我们保留下来的磁盘vhd文件(需要等候几分钟,因为azure存储是有缓存的);

新建虚拟机(注意:位置显示的是中国东部,我们继续试下能否创建vm处于北部的)

不能创建北部的虚拟机;

我想大家都明白了,主要是虚拟机vhd文件处在的存储位置是中国东部,所以关联vm的vhd也只能是东部的区域位置。

我们如何将虚拟机从东部迁移到北部呢,重点就是迁移vhd的存储位置。因为Azure的存储blob默认是地域冗余的。

来了,扯淡就到这了,我们开始迁移vhd吧。
首先,没用过Windows Azure Powershell的小伙伴,麻烦下载链接:https://www.microsoft.com/web/handlers/webpi.ashx/getinstaller/WindowsAzurePowerShell.3f.3f.3fnew.appids
1.打开Microsoft Azure Powershell,输入Get-AzurePublishSettingsFile -Environment AzureChinaCloud,来获取Azure的订阅账号信息;


2.导入刚才的文件;
输入:import-AzurePublishSettingsFile “****.publishsettings”

3.需要在不同区域位置存储账号(东部和北部)vhds容器配置公共容器;

4.定义要迁移到中国北部存储账号名称以及密钥;
输入:$context = New-AzureStorageContext -StorageAccountName " StorageAccountName " –storageaccountkey "storageaccountkey " -endpoint "core.chinacloudapi.cn"
PS:命令的-endpoint "core.chinacloudapi.cn" 表明指定到中国区Azure,如果不指定,会指向global azure。


5.从东部的存储blob迁移到北部的存储blob
输入:Start-AzureStorageBlobCopy -SrcUri URL -DestContainer vhds(容器名字不要搞错了) -DestBlob copy.vhd(要重新命名的) -DestContext $context
SrcUri 就是刚才虚拟机vm的存储url


速度很快,基本是秒迁移的。
6.迁移完vhd,我们就要把刚才的vhd创建到磁盘;

噔噔,这么操作会报错的。报错是租约凭据冲突。


为什么呢。我咨询过世纪互联的support,得到的答复是缓存导致。但是真实的情况是这样的么?我足足试过等了半个多小时等候所谓缓存去除时间,后来我自己尝试自己的办法,解决了这个问题。
我个人看法是vhd有一个唯一的标识码,当vhd还是处于磁盘或者镜像的时候,其实azure已经把这个唯一标识给了磁盘vhd,除非是这个vhd不作为一个磁盘或者镜像,才可以新建,于是乎,我就保留关联vhd。


终于可以新建磁盘了

新建虚拟机


                   

页: [1]
查看完整版本: Windows Azure之VM的迁移之旅