码迷,mamicode.com
首页 > Windows程序 > 详细

Windows Azure之VM的迁移之旅

时间:2015-07-10 08:13:02      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:azure;跨存储;vm;迁移;blob;容器

今天主要是讲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。

技术分享

技术分享

终于可以新建磁盘了

技术分享

新建虚拟机

技术分享技术分享

本文出自 “gs_hao” 博客,谢绝转载!

Windows Azure之VM的迁移之旅

标签:azure;跨存储;vm;迁移;blob;容器

原文地址:http://gshao.blog.51cto.com/3512873/1672722

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!