存储账户之间转移虚拟机

Azure 中一个常见的任务就是将虚拟机从一个存储账号转移到另一个。在我们深入了解这些步骤之前,简要的回顾一下 Azure 虚拟机是如何被创建的。当您在创建一台 Azure 虚拟机时,有两个服务会协同工作来创建该虚拟机:计算和存储。在存储方面,Azure 存储服务会在您的一个账户中创建一个 VHD。该 VHD 的物理节点是存储在您指定用于放置虚拟机的区域。在计算方面,我们在第二个群集中找到一个物理节点用于放置您的虚拟机。当 VM 在该群集中启动时,它会和存储服务创建连接并且从该 VHD 启动。当创建一个虚拟机时,我们要求您创建该 VM 时的 VHD 所位于的存储账户在同一区域,这是为了确保当虚拟机和存储账户通讯时能够保持性能一致性。

有了这个背景之后,让我们通过以下步骤将虚拟机从一个区域转移到另一个:

停止虚拟机

将 VHD blob 从源区域的存储账户复制到目标区域的存储账户

通过该 blob 创建虚拟机磁盘

从该磁盘启动虚拟机

停止虚拟机

在管理门户界面,选择您需要转移的虚拟机,在控制菜单中选择 关闭。

或者使用 Azure PowerShell cmdlet 来完成相同的操作:

复制

$servicename = "KenazTestService"

$vmname = "TestVM1"

Get-AzureVM -ServiceName $servicename -Name $vmname | Stop-AzureVM

当您进行复制操作时,一个必要的步骤是关闭虚拟机以保证文件系统的一致性。Azure 目前还不支持虚拟机的实时转移。该操作意味着您在将一个专用的 VM 从一个区域转移到另一个 。如果您想要通过一个通用的映像创建 VM ,在虚拟机停止之前使用系统准备工具(sys-prep)对映像进行一般化处理。

复制 VHD blob

Azure 存储服务提供了将 Blob 从一个存储账户移动到另一个的功能,我们需要执行以下步骤来完成该操作:

确定源存储账户信息;

确定目标存储账户信息;

确保目标存储账户中存在目标容器;

执行 Blob 复制操作。

注意:在位于不同区域的存储账户之间复制 blob 时,根据该 blob 的大小会出现花费一个小时或更长的时间的情况。执行该操作最便捷的方式是通过 Azure PowerShell:

复制

Select-AzureSubscription "kenazsubscription"

# VHD blob to copy #

$blobName = "KenazTestService-TestVM1-2014-8-26-15-1-55-658-0.vhd"

# Source Storage Account Information #

$sourceStorageAccountName = "kenazsa"

$sourceKey = "MySourceStorageAccountKey"

$sourceContext = New-AzureStorageContext –StorageAccountName $sourceStorageAccountName -StorageAccountKey $sourceKey

$sourceContainer = "vhds"

# Destination Storage Account Information #

$destinationStorageAccountName = "kenazdestinationsa"

$destinationKey = "MyDestinationStorageAccountKey"

$destinationContext = New-AzureStorageContext –StorageAccountName $destinationStorageAccountName -StorageAccountKey $destinationKey

# Create the destination container #

$destinationContainerName = "destinationvhds"

New-AzureStorageContainer -Name $destinationContainerName -Context $destinationContext

# Copy the blob #

$blobCopy = Start-AzureStorageBlobCopy -DestContainer $destinationContainerName `

-DestContext $destinationContext `

-SrcBlob $blobName `

-Context $sourceContext `

-SrcContainer $sourceContainer

执行以上命令将会开始从您的源账户向目标账户进行 blob 的复制操作,此时,您可能需要稍作等待以确保 blob 能够完全的复制。如您需要查看该操作的状态,您可以使用以下命令。

复制

while(($blobCopy | Get-AzureStorageBlobCopyState).Status -eq "Pending")

{

Start-Sleep -s 30

$blobCopy | Get-AzureStorageBlobCopyState

}

}

当完成 blob 复制操作后,该状态将变为“成功”。更详细的 VHD 拷贝操作示例可以参考 “Azure 虚拟机: 跨存储账户拷贝 VHDS” 。

使用 AzCopy 复制 blob

另一种方式可以使用 AzCopy 工具(下载地址),下面同样是存储账户间 blob 复制的命令:

复制

AzCopy https://sourceaccount.blob.core.chinacloudapi.cn/mycontainer1 https://destaccount.blob.core.chinacloudapi.cn/mycontainer2 /sourcekey:key1 /destkey:key2 abc.txt

关于如何在不同场景使用 AzCopy 工具更详细的信息,请查看“使用 AzCopy 命令行工具入门”。

创建虚拟机磁盘

此时,您复制到目标存储账户中的 blob 仍然只是一个 blob, 为了可以从该 blob 启动,您需要通过该 blob 创建一个虚拟机磁盘。导航至虚拟机 磁盘 部分并且选择 创建。

注意:以上指令是特定的用于专用的 VMs,如您想要使该 VHD 作为映像来加载,您需要重启 VM, 使用 sysperp 工具一般化处理,复制 blob,然后作为映像添加(而非磁盘)。

在 VHD URL 选项处选择目标容器中复制的 blob,勾选选项“ VHD 包含操作系统”,这向 Azure 表明您所创建的磁盘对象是用作 OS 磁盘使用的,而非作为数据磁盘使用。

注意:如果遇到该错误提示“ Blob 发生租约冲突….”,返回上一步确认该 blob 复制操作已经完成。

或者,您可以通过 执行 PowerShell 命令来进行相同的操作。

复制

Add-AzureDisk -DiskName "myMigratedTestVM" `

-OS Linux `

-MediaLocation "https://kenazdestinationsa.blob.core.chinacloudapi.cn/destinationvhds/KenazTestService-TestVM1-2014-8-26-16-16-48-522-0.vhd" `

-Verbose

以上步骤完成后,该磁盘将出现在虚拟机 磁盘 部分。

创建虚拟机

此时,您可以使用之前创建好的磁盘来创建虚拟机,在经典管理门户中,选择从库中创建虚拟机并且在我的磁盘下选择您创建好的磁盘。

注意:如果您转移的虚拟机有一个已经配置好的存储池(或者需要磁盘驱动器的字母排序保持不变),记录下 VHD 映射到源 VM 的 LUN 编号,并且确保数据磁盘在目标虚拟机上被附加到了同样的 LUN 编号上。

现在虚拟机已经在目标存储账户中运行了。

立即访问http://market.azure.cn

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容