Создание управляемого диска на основе моментального снимка с помощью интерфейса командной строки (Linux)

В этой статье содержатся два сценария для создания управляемого диска на основе моментального снимка. Первый сценарий предназначен для управляемого диска с ключами, управляемыми платформой, и второй сценарий предназначен для управляемого диска с ключами, управляемыми клиентом. Используйте эти скрипты для восстановления виртуальной машины из моментальных снимков дисков ОС и данных. Можно создать управляемые диски данных и ОС на основе соответствующих моментальных снимков, а затем создать виртуальную машину, подключив эти управляемые диски. Кроме того, вы можете восстановить диски данных существующей виртуальной машины, подключив диски данных, созданные из моментальных снимков.

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

Необходимые компоненты

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

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

Запуск Azure Cloud Shell

Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью.

Чтобы открыть Cloud Shell, просто выберите Попробовать в правом верхнем углу блока кода. Cloud Shell можно также запустить в отдельной вкладке браузера, перейдя на страницу https://shell.azure.com.

Когда откроется Cloud Shell, убедитесь, что для вашей среды выбран вариант Bash. В последующих сеансах в среде Bash будет использоваться Azure CLI. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте код в Cloud Shell и нажмите клавишу ВВОД, чтобы выполнить его.

Вход в Azure

Проверка подлинности Cloud Shell автоматически производится с данными той учетной записи, с которой был осуществлен вход. Используйте следующий скрипт, чтобы войти с другой подпиской, указав вместо <Subscription ID> идентификатор нужной подписки Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

Дополнительные сведения см. в разделах Настройка активной подписки и Интерактивный вход.

Диски с ключами, управляемыми платформой

#Provide the subscription Id of the subscription where you want to create Managed Disks
subscriptionId="<subscriptionId>"

#Provide the name of your resource group
resourceGroupName=myResourceGroupName

#Provide the name of the snapshot that will be used to create Managed Disks
snapshotName=mySnapshotName

#Provide the name of the new Managed Disks that will be create
diskName=myDiskName

#Provide the size of the disks in GB. It should be greater than the VHD file size.
diskSize=128

#Provide the storage type for Managed Disk. Acceptable values are Standard_LRS, Premium_LRS, PremiumV2_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, and StandardSSD_ZRS.
storageType=Premium_LRS

#Required for Premium SSD v2 and Ultra Disks
#Provide the Availability Zone you'd like the disk to be created in, default is 1
zone=1

#Set the context to the subscription Id where Managed Disk will be created
az account set --subscription $subscriptionId

#Get the snapshot Id 
snapshotId=$(az snapshot show --name $snapshotName --resource-group $resourceGroupName --query [id] -o tsv)

#Create a new Managed Disks using the snapshot Id
#Note that managed disk will be created in the same location as the snapshot
#If you're creating a Premium SSD v2 or an Ultra Disk, add "--zone $zone" to the end of the command
az disk create --resource-group $resourceGroupName --name $diskName --sku $storageType --size-gb $diskSize --source $snapshotId

Диски с ключами, управляемыми клиентом

#Provide the subscription Id of the subscription where you want to create Managed Disks
subscriptionId="<subscriptionId>"

#Provide the name of your resource group
resourceGroupName=myResourceGroupName

#Provide the name of the snapshot that will be used to create Managed Disks
snapshotName=mySnapshotName

#Provide the name of the new Managed Disks that will be create
diskName=myDiskName

#Provide the size of the disks in GB. It should be greater than the VHD file size.
diskSize=128

#Provide the storage type for Managed Disk. Premium_LRS or Standard_LRS.
storageType=Premium_LRS

#Provide the name of the target disk encryption set
diskEncryptionSetName=myName

#Provide the target disk encryption set resource group
diskEncryptionResourceGroup=myGroup

#Required for Premium SSD v2 and Ultra Disks
#Provide the Availability Zone you'd like the disk to be created in, default is 1
zone=1

#Set the context to the subscription Id where Managed Disk will be created
az account set --subscription $subscriptionId

#Get the snapshot Id 
snapshotId=$(az snapshot show --name $snapshotName --resource-group $resourceGroupName --query [id] -o tsv)

#Get the disk encryption set ID
diskEncryptionSetId=$(az disk-encryption-set show --name $diskEncryptionSetName --resource-group $diskEncryptionResourceGroup)

#Create a new Managed Disks using the snapshot Id
#Note that managed disk will be created in the same location as the snapshot
#To change the location, add the --location parameter
#If you're creating a Premium SSD v2 or an Ultra Disk, add "--zone $zone" to the end of the command
az disk create -g $resourceGroupName -n $diskName --source $snapshotId --disk-encryption-set $diskEncryptionSetID --location eastus2euap

Влияние на производительность — фоновый процесс копирования

При создании управляемого диска из моментального снимка он запускает процесс фонового копирования. Вы можете подключить диск к виртуальной машине во время выполнения этого процесса, но вы будете испытывать влияние на производительность (влияние чтения на 4k дисков, 512e как на чтение, так и на запись) с более высокой задержкой, снижением скорости ввода-вывода в секунду и пропускной способностью до завершения фоновой копии. Для дисков категории "Ультра" и SSD уровня "Премиум" версии 2 можно проверка состояние процесса фонового копирования с помощью следующих команд:

Внимание

Вы не можете использовать следующие разделы, чтобы получить состояние фонового копирования для типов дисков, отличных от диска "Ультра" или SSD уровня "Премиум" версии 2. Другие типы дисков всегда будут сообщать 100 %.

subscriptionId=yourSubscriptionID
resourceGroupName=yourResourceGroupName
diskName=yourDiskName
az account set --subscription $subscriptionId
az disk show -n $diskName -g $resourceGroupName --query [completionPercent] -o tsv

Очистка ресурсов

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

az group delete --name myResourceGroupName

Примеры

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

Команда Примечания.
az snapshot show Получает все свойства моментального снимка, используя имя и свойства группы ресурсов моментального снимка. Свойство ID используется для создания управляемого диска.
az disk create Создает управляемый диск с помощью идентификатора моментального снимка управляемого моментального снимка

Следующие шаги

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

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

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