Как переместить образ виртуальной машины Azure в другое место - PullRequest
0 голосов
/ 10 октября 2018

У меня есть образ виртуальной машины Azure с управляемым диском в восточной части США, и я хочу переместить / скопировать его в Западную Европу.

Есть ли простой способ сделать это?

Iувидел, что есть расширение Azure Cli, называемое az-image-copy, но оно не работает для меня, потому что выдает ошибку, которая говорит о том, что он не может найти диск с ОС (хотя идентификатор ресурса правильный, и я вижу егона лазурном портале)

ОШИБКА: Ресурсный серверLinux_OsDisk_1_c208679747734937b10a1525aa84a7d7 не найден

Так есть ли другой способ сделать это?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Вы можете использовать Azure PowerShell, чтобы скопировать управляемые изображения, создать снимок и скопировать его в другой регион, а затем создать изображение.Вот аналогичная проблема .

Создание снимка:

<# -- Create a snapshot of the OS (and optionally data disks) from the generalized VM -- #>
$vm = Get-AzureRmVM -ResourceGroupName $resourceGroupName -Name $vmName
$disk = Get-AzureRmDisk -ResourceGroupName $resourceGroupName -DiskName $vm.StorageProfile.OsDisk.Name
$snapshot = New-AzureRmSnapshotConfig -SourceUri $disk.Id -CreateOption Copy -Location $region

$snapshotName = $imageName + "-" + $region + "-snap"

New-AzureRmSnapshot -ResourceGroupName $resourceGroupName -Snapshot $snapshot -SnapshotName $snapshotName

Копирование снимка:

# Create the name of the snapshot, using the current region in the name.
$snapshotName = $imageName + "-" + $region + "-snap"

# Get the source snapshot
$snap = Get-AzureRmSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName

# Create a Shared Access Signature (SAS) for the source snapshot
$snapSasUrl = Grant-AzureRmSnapshotAccess -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName -DurationInSecond 3600 -Access Read

# Set up the target storage account in the other region
$targetStorageContext = (Get-AzureRmStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName).Context
New-AzureStorageContainer -Name $imageContainerName -Context $targetStorageContext -Permission Container

# Use the SAS URL to copy the blob to the target storage account (and thus region)
Start-AzureStorageBlobCopy -AbsoluteUri $snapSasUrl.AccessSAS -DestContainer $imageContainerName -DestContext $targetStorageContext -DestBlob $imageBlobName
Get-AzureStorageBlobCopyState -Container $imageContainerName -Blob $imageBlobName -Context $targetStorageContext -WaitForComplete

# Get the full URI to the blob
$osDiskVhdUri = ($targetStorageContext.BlobEndPoint + $imageContainerName + "/" + $imageBlobName)

# Build up the snapshot configuration, using the target storage account's resource ID
$snapshotConfig = New-AzureRmSnapshotConfig -AccountType StandardLRS `
                                            -OsType Windows `
                                            -Location $targetRegionName `
                                            -CreateOption Import `
                                            -SourceUri $osDiskVhdUri `
                                            -StorageAccountId "/subscriptions/${sourceSubscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.Storage/storageAccounts/${storageAccountName}"

# Create the new snapshot in the target region
$snapshotName = $imageName + "-" + $targetRegionName + "-snap"
$snap2 = New-AzureRmSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName -Snapshot $snapshotConfig

Создание изображения:

<# -- In the second subscription, create a new Image from the copied snapshot --#>
Select-AzureRmSubscription -SubscriptionId $targetSubscriptionId

$snap = Get-AzureRmSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName

$imageConfig = New-AzureRmImageConfig -Location $destinationRegion

Set-AzureRmImageOsDisk -Image $imageConfig `
                        -OsType Windows `
                        -OsState Generalized `
                        -SnapshotId $snap.Id

New-AzureRmImage -ResourceGroupName $resourceGroupName `
                 -ImageName $imageName `
                 -Image $imageConfig

Подробнее см. По ссылке .

0 голосов
/ 10 октября 2018

Если ресурсы находятся в одной подписке, вы можете переместить ресурсы из группы ресурсов 01 (восток нас) в группу ресурсов 02 (западная Европа).Для вашей справки вы можете проверить следующие документы:

Переместить управляемые диски и виртуальные машины

Переместить ресурсы в новую группу ресурсов или подписку

Копирование управляемых дисков в одной и той же подписке или в другой подписке с помощью PowerShell

Перенос решений IaaS Azure с использованием MigAz

Последняя ссылка оИнструмент MigAz, позволяющий переносить ресурсы в Azure.

...