如果您在一个地区的Azure应用设置中已经花了大量的时间和精力,不想在另一个地区重新构建整个磁盘,托管磁盘(ManagedDisk)迁移是一个不错的选择。Azure 托管磁盘通过管理与 VM 磁盘关联的存储帐户(StorageAccount),简化了 Azure IaaS VM 的磁盘管理,但是这也导致无法使用存储帐户中的 VHD 文件在不同的区域中创建托管磁盘。
那么我们如何将Azure托管磁盘从一个区域移动到另一个区域呢?
1.首先我们需要创建一个用于迁移的源存储帐户(Source StorageAccount)。
$rgName ="roger02" $location ="China North" $storageAccountName ="roger1026" New-AzureRmResourceGroup -Name $rgName -Location $location New-AzureRmStorageAccount -Name $storageAccountName -Location $location -SkuName Premium_LRS -ResourceGroupName $rgName
2. 在我们想要移动到的地区创建一个新的存储帐户(Target StorageAccount)。
$rgName ="roger01" $location ="China East" $storageAccountName ="roger109" New-AzureRmResourceGroup -Name $rgName -Location $location New-AzureRmStorageAccount -Name $storageAccountName -Location $location -SkuName Premium_LRS -ResourceGroupName $rgName
3. 在门户内的资源组“roger02“下创建受托管的磁盘(ManagedDisk)。
请参照如下截图中的顺序:
4. 执行以下命令来复制blob并获取状态。
#Source storage account $rgName ="roger02" $location ="China North" $storageAccountName ="roger1026" $diskName ="rogerdisk" #Target storage account $destrgName ="roger01" $destlocation ="China East" $deststorageAccountName ="roger109" $destdiskName ="destrogerdisk" #Assign access to the source disk $sas =Grant-AzureRmDiskAccess -ResourceGroupName $rgName -DiskName $diskName -DurationInSecond 3600 -Access Read $saKey =Get-AzureRmStorageAccountKey -ResourceGroupName $destrgName -Name $deststorageAccountName $storageContext =New-AzureStorageContext –StorageAccountName $deststorageAccountName -StorageAccountKey $saKey[0].Value New-AzureStorageContainer -Context $storageContext -Name vhds10261 Start-AzureStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer vhds10261 -DestContext $storageContext -DestBlob $destdiskName Get-AzureStorageBlobCopyState -Context $storageContext -Blob $destdiskName -Container vhds10261
现在我们只需要等待复制过程的完成。以上就是通过powershell命令迁移托管磁盘的步骤。
注意:
如果托管磁盘附加到VM,则应停止VM,然后将其复制到存储帐户。
(END)
文章源自:Dev Chat 在线支持
作者: