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


Отправка VHD в Azure или копирование управляемого диска в другой регион с помощью Azure CLI

Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Гибкие масштабируемые наборы

В этой статье объясняется, как с помощью AzCopy отправить виртуальный жесткий диск с локального компьютера на управляемый диск Azure или скопировать управляемый диск в другой регион. Этот процесс прямой загрузки позволяет загружать виртуальный жесткий диск размером до 32 ТиБ непосредственно на управляемый диск. В настоящее время прямая передача поддерживается для дисков категории "Ультра", SSD уровня "Премиум" версии 2, SSD уровня "Премиум", SSD уровня "Стандартный" и "Стандартный" HDD.

Если вы предоставляете решение по резервному копированию для виртуальных машин IaaS в Azure, то должны использовать прямую отправку для восстановления резервных копий клиентов на управляемые диски. При отправке виртуального жесткого диска из внешнего источника в Azure скорость передачи зависит от локальной пропускной способности. При отправке или копировании из виртуальной машины Azure пропускная способность будет такой же, как и для стандартных жестких дисков.

Безопасные отправки с помощью идентификатора Microsoft Entra

Если вы используете идентификатор Microsoft Entra для управления доступом к ресурсам, теперь его можно использовать для ограничения отправки управляемых дисков Azure. Эта функция доступна в статусе общего доступа во всех регионах. Когда пользователь пытается отправить диск, Azure проверяет удостоверение запрашивающего пользователя в идентификаторе Microsoft Entra и подтверждает, что у пользователя есть необходимые разрешения. На более высоком уровне системный администратор может задать политику на уровне учетной записи или подписки Azure, чтобы убедиться, что удостоверение Microsoft Entra имеет необходимые разрешения для загрузки перед тем, как будет разрешена загрузка диска или его моментального снимка. Если у вас есть вопросы по защите отправки с помощью идентификатора Microsoft Entra, обратитесь к этой электронной почте: azuredisks@microsoft .com

Предпосылки

Ограничения

  • Нельзя загружать виртуальные жесткие диски в пустые моментальные снимки.
  • Azure Backup в настоящее время не поддерживает диски, защищенные с помощью идентификатора Microsoft Entra.
  • Azure Site Recovery в настоящее время не поддерживает диски, защищенные с помощью идентификатора Microsoft Entra.

Назначьте роль RBAC

Чтобы получить доступ к управляемым дискам, защищенным с помощью идентификатора Microsoft Entra, запрашивающий пользователь должен иметь роль оператор данных для управляемых дисков или пользовательскую роль со следующими разрешениями:

  • Microsoft.Compute/disks/download/action
  • Microsoft.Compute/disks/upload/action
  • Microsoft.Compute/snapshots/download/action
  • Microsoft.Compute/snapshots/upload/action

Подробные инструкции по назначению роли см. в статье Назначение ролей Azure с помощью Azure CLI. Сведения о создании или обновлении настраиваемой роли см. в статье Создание или обновление настраиваемых ролей Azure с помощью Azure CLI.

Начало работы

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

Предпосылки

  • Скачайте последнюю версию AzCopy v10.
  • Установка Azure CLI.
  • Если вы планируете отправить виртуальный жесткий диск (VHD) из локальной среды: требуется VHD фиксированного размера, который подготовлен для Azure и хранится локально.
  • Если вы планируете выполнить действие копирования, требуется управляемый диск в Azure.

Чтобы отправить виртуальный жесткий диск в Azure, необходимо создать пустой управляемый диск, настроенный для этого процесса отправки. Прежде чем создать его, необходимо ознакомиться с дополнительными сведениями о таких дисках.

Управляемый диск такого типа имеет два уникальных состояния:

  • Готов к загрузке, что означает, что диск готов принимать загрузку, но защищенная сигнатура доступа (SAS) не была создана.
  • ActiveUpload — означает, что диск готов к получению загрузки, и для него создан SAS.

Примечание.

В любом из этих состояний плата за управляемый диск будет взиматься по стандартному тарифу на HDD, независимо от фактического типа диска. Например, P10 будет оплачиваться как S10. Это справедливо до тех пор, пока на управляемом диске не будет вызван revoke-access, что необходимо для подключения диска к виртуальной машине.

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

Прежде чем создать пустой стандартный HDD для загрузки, вам нужно узнать размер файла VHD, который вы хотите загрузить, в байтах. Чтобы получить это значение, можно использовать wc -c <yourFileName>.vhd или ls -al <yourFileName>.vhd. Это значение используется при указании параметра --upload-size-bytes.

Создайте пустой стандартный HDD для загрузки, указав оба параметра --for-upload и --upload-size-bytes в командлете disk create.

Замените <yourdiskname>, <yourresourcegroupname>, <yourregion> значениями по своему выбору. Параметр --upload-size-bytes содержит пример значения 34359738880, замените его нужным вам значением.

Это важно

При создании диска ОС добавьте --hyper-v-generation <yourGeneration> в az disk create.

Если вы используете идентификатор Microsoft Entra для защиты отправки дисков, добавьте -dataAccessAuthmode 'AzureActiveDirectory'. При отправке на диск ценовой категории "Ультра" или SSD уровня "Премиум" версии 2 необходимо выбрать правильный размер сектора целевого диска. Если вы используете VHDX-файл с размером 4 кб логического сектора, целевой диск должен иметь значение 4k. Если вы используете VHD-файл с размером 512 логических секторов, целевой диск должен иметь значение 512.

Файлы VHDX с размером логического сектора 512 байт не поддерживаются.

##For Ultra Disk or Premium SSD v2, add --logical-sector-size and specify either 512 or 4096, depending on if you're using a VHD or VHDX

az disk create -n <yourdiskname> -g <yourresourcegroupname> -l <yourregion> --os-type Linux --for-upload --upload-size-bytes 34359738880 --sku standard_lrs

Если вы хотите загрузить другой тип диска, замените standard_lrs, premium_lrs, premium_zrs, standardssd_lrs, standardssd_zrs, premiumv2_lrs или ultrassd_lrs.

(Необязательно) Предоставление доступа к диску

Если вы используете идентификатор Microsoft Entra для безопасной отправки, необходимо назначить разрешения RBAC, чтобы предоставить доступ к диску и создать доступный для записи SAS.

az role assignment create --assignee "{assignee}" \
--role "{Data Operator for Managed Disks}" \
--scope "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{providerName}/{resourceType}/{resourceSubType}/{diskName}"

Создание SAS с доступом для записи

Теперь, когда вы создали пустой управляемый диск, настроенный для процесса отправки, вы можете отправить в него VHD. Для загрузки VHD на диск требуется записываемый SAS, чтобы вы могли ссылаться на него как на место назначения загрузки.

Это важно

15 февраля 2025 г. время доступа для подписей общего доступа (SAS) для дисков и моментальных снимков будет ограничено максимум 60 днями. Попытка создать SAS с истечением срока действия более 60 дней приводит к ошибке. Любой существующий диск или моментальный снимок с ключом SAS, созданный с истечением срока действия более чем через 60 дней, может перестать работать через 60 дней после даты создания и приведет к ошибке 403 при авторизации.

Если срок действия SAS управляемого диска или моментального снимка превышает 60 дней, отмените доступ и создайте новый SAS, запрашивающий доступ на срок до 60 дней (5 184 000 секунд) или менее. Повышение общей безопасности с помощью SAS с более короткими датами окончания срока действия. Внесите эти изменения до 15 февраля 2025 г., чтобы предотвратить прерывание работы службы. Следующие ссылки можно использовать для поиска, отзыва и запроса нового SAS.

  • Чтобы проверить, имеет ли диск активный SAS, можно использовать REST API, Azure CLI или модуль Azure PowerShell и проверить свойство DiskState .
  • Чтобы отменить SAS, можно использовать REST API, Azure CLI или модуль Azure PowerShell.
  • Чтобы создать SAS, можно использовать REST API, Azure CLI или модуль Azure PowerShell и задать длительность доступа в 5 184 000 секунд или меньше.

Чтобы создать SAS для записи на пустой управляемый диск, замените <yourdiskname> и <yourresourcegroupname>, а затем выполните следующую команду:

az disk grant-access -n <yourdiskname> -g <yourresourcegroupname> --access-level Write --duration-in-seconds 86400

Пример возвращаемого значения:

{
  "accessSas": "https://md-impexp-t0rdsfgsdfg4.blob.core.windows.net/w2c3mj0ksfgl/abcd?sv=2017-04-17&sr=b&si=600a9281-d39e-4cc3-91d2-923c4a696537&sig=xXaT6mFgf139ycT87CADyFxb%2BnPXBElYirYRlbnJZbs%3D"
}

Отправка VHD или VHDX

Теперь, когда у вас есть SAS для пустого управляемого диска, его можно использовать для задания управляемого диска в качестве места назначения для команды отправки.

Используйте AzCopy версии 10 для отправки локального VHD-файла или VHDX-файла на управляемый диск, указав созданный URI SAS.

Эта загрузка имеет такую же пропускную способность, как и эквивалентный стандартный жесткий диск (HDD). Например, если у вас есть размер, равный S4, у вас будет пропускная способность до 60 МиБ/с. Но если у вас есть размер, равный S70, у вас будет пропускная способность до 500 МиБ/с.

AzCopy.exe copy "c:\somewhere\mydisk.vhd" "sas-URI" --blob-type PageBlob

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

Замените <yourdiskname> и <yourresourcegroupname>, а затем выполните указанную ниже команду, чтобы сделать диск пригодным для использования:

az disk revoke-access -n <yourdiskname> -g <yourresourcegroupname>

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

Прямая отправка также упрощает процесс копирования управляемого диска. Копирование можно выполнить в пределах одного и того же региона либо между регионами (скопировать в другой регион).

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

Это важно

При указании размера управляемого диска Azure в байтах необходимо добавить смещение в 512 байт. Это обусловлено тем, что при возврате диска в Azure опускается нижний колонтитул. Если этого не сделать, копирование завершится ошибкой. Следующий сценарий делает это автоматически.

Замените <sourceResourceGroupHere>, <sourceDiskNameHere>, <targetDiskNameHere>, <targetResourceGroupHere>, и <yourTargetLocationHere> (примером значения расположения будет uswest2) своими значениями, а затем выполните следующий сценарий, чтобы скопировать управляемый диск.

Подсказка

При создании диска ОС добавьте --hyper-v-generation <yourGeneration> в az disk create.

sourceDiskName=<sourceDiskNameHere>
sourceRG=<sourceResourceGroupHere>
targetDiskName=<targetDiskNameHere>
targetRG=<targetResourceGroupHere>
targetLocation=<yourTargetLocationHere>
#Expected value for OS is either "Windows" or "Linux"
targetOS=<yourOSTypeHere>

sourceDiskSizeBytes=$(az disk show -g $sourceRG -n $sourceDiskName --query '[diskSizeBytes]' -o tsv)

az disk create -g $targetRG -n $targetDiskName -l $targetLocation --os-type $targetOS --for-upload --upload-size-bytes $(($sourceDiskSizeBytes+512)) --sku standard_lrs

targetSASURI=$(az disk grant-access -n $targetDiskName -g $targetRG  --access-level Write --duration-in-seconds 86400 --query [accessSas] -o tsv)

sourceSASURI=$(az disk grant-access -n $sourceDiskName -g $sourceRG --duration-in-seconds 86400 --query [accessSas] -o tsv)

azcopy copy $sourceSASURI $targetSASURI --blob-type PageBlob

az disk revoke-access -n $sourceDiskName -g $sourceRG

az disk revoke-access -n $targetDiskName -g $targetRG

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

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

Если у вас есть дополнительные вопросы, ознакомьтесь с разделом "Вопросы и ответы о передаче управляемого диска ".