我似乎在从快照创建托管磁盘时遇到问题。
看来我只能在美国西部的一个地区创建一个磁盘。
以下是我使用的PowerShell脚本:
Get-AzureRmSubscription –SubscriptionName 'MySubscription' | Select-AzureRmSubscription
$resourceGroupName = 'MyResourceGroup';
$diskName = 'MyNewDisk';
$location = 'West US';
$snapshotName = 'MySnapshot';
$snapshot = Get-AzureRmSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName;
$diskConfig = New-AzureRmDiskConfig -AccountType $storageType -Location $location -SourceResourceId $snapshot.Id -CreateOption Copy;
$disk = New-AzureRmDisk -Disk $diskConfig -ResourceGroupName $resourceGroupName -DiskName $diskName;
如果我将变量$ region值更改为' East US'或者任何其他区域,我在PowerShell中遇到错误(找不到资源)。
快照本身位于美国西部,但我想在美国东部创建一个磁盘。 我做错了什么?
答案 0 :(得分:3)
快照本身位于美国西部,但我想在东部创建一个磁盘 我们。我做错了什么?
我们无法从快照到其他位置创建托管磁盘。
如果要从快照创建托管磁盘到另一个位置,我们应该使用PowerShell 导出/复制托管快照作为VHD到不同区域的存储帐户。
这里是示例脚本:
#Provide the subscription Id of the subscription where snapshot is created
$subscriptionId = "yourSubscriptionId"
#Provide the name of your resource group where snapshot is created
$resourceGroupName ="yourResourceGroupName"
#Provide the snapshot name
$snapshotName = "yourSnapshotName"
#Provide Shared Access Signature (SAS) expiry duration in seconds e.g. 3600.
#Know more about SAS here: https://docs.microsoft.com/en-us/azure/storage/storage-dotnet-shared-access-signature-part-1
$sasExpiryDuration = "3600"
#Provide storage account name where you want to copy the snapshot.
$storageAccountName = "yourstorageaccountName"
#Name of the storage container where the downloaded snapshot will be stored
$storageContainerName = "yourstoragecontainername"
#Provide the key of the storage account where you want to copy snapshot.
$storageAccountKey = 'yourStorageAccountKey'
#Provide the name of the VHD file to which snapshot will be copied.
$destinationVHDFileName = "yourvhdfilename"
# Set the context to the subscription Id where Snapshot is created
Select-AzureRmSubscription -SubscriptionId $SubscriptionId
#Generate the SAS for the snapshot
$sas = Grant-AzureRmSnapshotAccess -ResourceGroupName $ResourceGroupName -SnapshotName $SnapshotName -DurationInSecond $sasExpiryDuration -Access Read
#Create the context for the storage account which will be used to copy snapshot to the storage account
$destinationContext = New-AzureStorageContext –StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey
#Copy the snapshot to the storage account
Start-AzureStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer $storageContainerName -DestContext $destinationContext -DestBlob $destinationVHDFileName
#Monitor status
Get-AzureStorageBlobCopyState -Context $destinationContext -Blob $destinationVHDFileName -Container $storageContainerName
有关它的更多信息,请参阅此link。
答案 1 :(得分:1)
您可以简单地使用azure站点恢复并添加azure2azure服务并将您的vm复制到其他跨区域,这不会重新启动v,它将在需要复制的vm内安装azure站点恢复软件,这将开始复制时,请注意为了更快地复制虚拟机,请使用高级托管磁盘。
注意:如果将类似East East 2的内容复制到北欧,将不支持此操作,这里有一个完整的文档,其中记录了支持哪些区域进行复制。如果您希望减少停机时间来跨区域复制托管磁盘,这是一个好方法。
如果您遵循此方法,则无需拍摄快照。
如果您还有其他疑问,请告诉我。