Поделиться через


Экспорт/копирование управляемых моментальных снимков как VHD в учетную запись хранения в другом регионе с помощью PowerShell

Этот скрипт экспортирует управляемый моментальный снимок в учетную запись хранилища, находящуюся в другом регионе. Сначала он создает SAS URI для моментального снимка, а затем использует этот URI для копирования моментального снимка в учетную запись хранения в другом регионе. Используйте этот скрипт для поддержания резервного копирования управляемых дисков в другом регионе для аварийного восстановления.

При необходимости установите модуль Azure PowerShell с помощью инструкций, описанных в руководстве по Azure PowerShell, а затем запустите Connect-AzAccount для создания подключения к Azure. Кроме того, необходимо иметь открытый ключ SSH с именем id_rsa.pub в каталоге SSH профиля пользователя.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Пример скрипта

#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/Az.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-AzSubscription -SubscriptionId $SubscriptionId

#Generate the SAS for the snapshot 
$sas = Grant-AzSnapshotAccess -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-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey

#Copy the snapshot to the storage account 
Start-AzStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer $storageContainerName -DestContext $destinationContext -DestBlob $destinationVHDFileName

Объяснение скрипта

Этот скрипт использует следующие команды для создания URI SAS для управляемого моментального снимка и копирует моментальный снимок в учетную запись хранения с помощью URI SAS. Для каждой команды в таблице приведены ссылки на соответствующую документацию.

Приказ Примечания.
Grant-AzSnapshotAccess Создает URI SAS для моментального снимка, который используется для его копирования в учетную запись хранения.
New-AzureStorageContext Создает контекст для учетной записи хранения с использованием имени и ключа учетной записи. Этот контекст можно использовать для выполнения операций чтения и записи в учетной записи хранения.
Start-AzureStorageBlobCopy Копирует базовый виртуальный жесткий диск моментального снимка в учетную запись хранения

Дальнейшие действия

Создание управляемого диска из VHD

Создание виртуальной машины с управляемого диска

Дополнительные сведения о модуле Azure PowerShell см. в документации по Azure PowerShell.

Дополнительные примеры сценариев PowerShell виртуальной машины можно найти в документации по виртуальным машинам Azure Linux.