Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: ✔️ Виртуальные машины Windows
В этой статье объясняется, как отправить виртуальный жесткий диск с локального компьютера на управляемый диск Azure или скопировать управляемый диск в другой регион с помощью модуля Azure PowerShell. Процесс отправки управляемого диска, который также называется прямой отправкой, позволяет отправлять виртуальный жесткий диск размером до 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 PowerShell.
Ограничения
- Виртуальные жесткие диски нельзя загрузить в пустые снимки.
- Azure Backup в настоящее время не поддерживает диски, защищенные с помощью идентификатора Microsoft Entra.
- Azure Site Recovery в настоящее время не поддерживает диски, защищенные с помощью идентификатора Microsoft Entra.
Назначьте роль RBAC
Чтобы получить доступ к управляемым дискам, защищенным с помощью идентификатора Microsoft Entra ID, запрашивающий пользователь должен иметь роль оператора данных для управляемых дисков или пользовательскую роль со следующими разрешениями:
- Microsoft.Compute/disks/download/action
- Microsoft.Compute/disks/upload/action
- Microsoft.Compute/snapshots/download/action
- Microsoft.Compute/snapshots/upload/action
Подробные инструкции по назначению роли см. в статье "Назначение ролей Azure с помощью Azure PowerShell". Сведения о создании или обновлении настраиваемой роли см. в статье "Создание или обновление пользовательских ролей Azure с помощью Azure PowerShell".
Начало работы
Существует два способа отправки виртуального жесткого диска с модулем Azure PowerShell. Вы можете использовать команду Add-AzVHD , которая автоматизирует большую часть процесса или вы можете выполнить отправку вручную с помощью AzCopy.
Для премиальных SSD, стандартных SSD и стандартных жестких дисков обычно следует использовать Add-AzVHD. Тем не менее, если вы отправляете на диск ценовой категории "Ультра" или SSD уровня "Премиум" версии 2, или если вам нужно отправить виртуальный жесткий диск размером более 50 ГиБ, необходимо отправить виртуальный жесткий диск или VHDX вручную с помощью AzCopy. VHD объемом 50 ГиБ и более загружаются быстрее с помощью AzCopy, и Add-AzVhd в настоящее время не поддерживает загрузку на Ультра диск или SSD Премиум версии 2.
Инструкции по копированию управляемого диска из одного региона в другой см. в разделе "Копирование управляемого диска".
Используйте Add-AzVHD
Предпосылки
- Установите модуль Azure PowerShell.
- Виртуальный жесткий диск подготовлен для Azure и хранится локально.
- В Windows вам не нужно преобразовывать VHD в VHDx, преобразовывать его в формат фиксированного размера или изменять его размер, чтобы включать смещение в 512 байт.
Add-AZVHD
выполняет эти функции для вас.- Для выполнения этих функций необходимо включить Hyper-V для Add-AzVHD.
- В Linux: эти действия необходимо выполнить вручную. См. Изменение размера виртуальных жестких дисков для получения подробной информации.
- В Windows вам не нужно преобразовывать VHD в VHDx, преобразовывать его в формат фиксированного размера или изменять его размер, чтобы включать смещение в 512 байт.
Загрузить VHD
(Необязательно) Предоставление доступа к диску
Если идентификатор Microsoft Entra ID используется для принудительного применения ограничений отправки для подписки или на уровне учетной записи, Add-AzVHD выполняется успешно только в том случае, если пользователь имеет соответствующую роль RBAC или необходимые разрешения. Вам потребуется назначить разрешения RBAC , чтобы предоставить доступ к диску и создать доступный для записи SAS.
New-AzRoleAssignment -SignInName <emailOrUserprincipalname> `
-RoleDefinitionName "Data Operator for Managed Disks" `
-Scope /subscriptions/<subscriptionId>
Используйте Add-AzVHD
В следующем примере выполняется отправка виртуального жесткого диска с локального компьютера на новый управляемый диск Azure с помощью Add-AzVHD. Замените <your-filepath-here>
, <your-resource-group-name>
, <desired-region>
и <desired-managed-disk-name>
вашими параметрами.
Замечание
Если вы используете Microsoft Entra ID для принудительного применения ограничений загрузки, добавьте DataAccessAuthMode 'AzureActiveDirectory'
в конец команды Add-AzVhd
.
# Required parameters
$path = <your-filepath-here>.vhd
$resourceGroup = <your-resource-group-name>
$location = <desired-region>
$name = <desired-managed-disk-name>
# Optional parameters
# $Zone = <desired-zone>
# $sku=<desired-SKU>
# -DataAccessAuthMode 'AzureActiveDirectory'
# -DiskHyperVGeneration = V1 or V2. This applies only to OS disks.
# To use $Zone or #sku, add -Zone or -DiskSKU parameters to the command
Add-AzVhd -LocalFilePath $path -ResourceGroupName $resourceGroup -Location $location -DiskName $name
Отправка вручную
Предпосылки
- Скачайте последнюю версию AzCopy v10.
- Установите модуль Azure PowerShell.
- Виртуальный жесткий диск фиксированного размера, подготовленный для Azure, хранящийся локально.
Чтобы загрузить ваш виртуальный жесткий диск в Azure, необходимо создать пустой управляемый диск, настроенный для этого процесса загрузки. Прежде чем создать его, необходимо ознакомиться с дополнительными сведениями о таких дисках.
Управляемый диск такого типа имеет два уникальных состояния:
- ReadyToUpload, который означает, что диск готов к загрузке, но сигнатура безопасного доступа (SAS) не была создана.
- ActiveUpload — означает, что диск готов к получению загрузки, и для него создан SAS.
Замечание
В любом из этих состояний плата за управляемый диск будет взиматься по стандартному тарифу на HDD, независимо от фактического типа диска. Например, P10 будет оплачиваться как S10. Это справедливо до тех пор, пока на управляемом диске не будет вызван revoke-access
, что необходимо для подключения диска к виртуальной машине.
Создание пустого управляемого диска
Прежде чем вы сможете создать пустой стандартный жесткий диск для загрузки, вам потребуется размер файла виртуального жесткого диска (VHD), который вы хотите загрузить, в байтах. Пример кода сделает это за вас, но если вы хотите сделать это самостоятельно, вы можете использовать: $vhdSizeBytes = (Get-Item "<fullFilePathHere>").length
. Это значение используется при указании параметра -UploadSizeInBytes .
Теперь в локальной оболочке создайте пустой стандартный HDD для отправки, указав параметр Upload в параметре -CreateOption , а также параметр -UploadSizeInBytes в командлете New-AzDiskConfig . Затем вызовите New-AzDisk , чтобы создать диск.
Замените <yourdiskname>
, <yourresourcegroupname>
а <yourregion>
затем выполните следующие команды:
Это важно
При создании диска ОС добавьте -HyperVGeneration '<yourGeneration>'
в New-AzDiskConfig
.
Если вы используете Microsoft Entra ID для защиты ваших загрузок, добавьте -dataAccessAuthMode 'AzureActiveDirectory'
в New-AzDiskConfig
.
При отправке на диск ценовой категории "Ультра" или SSD уровня "Премиум" версии 2 необходимо выбрать правильный размер сектора целевого диска. Если вы используете VHD-файл с размером 512 логических секторов, целевой диск должен иметь значение 512. Если вы используете VHDX-файл с размером 4 кб логического сектора, целевой диск должен иметь значение 4k, а размер целевого диска должен соответствовать размеру VHDX-файла. Обратите внимание, что отправка VHDX-файла приведет к расширению размера до следующего выравнивания 256 МиБ.
Файлы VHDX с размером логического сектора размером 512 не поддерживаются.
$vhdSizeBytes = (Get-Item "<fullFilePathHere>").length
## For Ultra Disks or Premium SSD v2, add -LogicalSectorSize and specify either 4096 or 512, depending on if you're using a VHDX or a VHD
$diskconfig = New-AzDiskConfig -SkuName 'Standard_LRS' -OsType 'Windows' -UploadSizeInBytes $vhdSizeBytes -Location '<yourregion>' -CreateOption 'Upload'
New-AzDisk -ResourceGroupName '<yourresourcegroupname>' -DiskName '<yourdiskname>' -Disk $diskconfig
Если вы хотите загрузить другой тип диска, замените Standard_LRS на Premium_LRS, Premium_ZRS, StandardSSD_ZRS, StandardSSD_LRS или UltraSSD_LRS.
Создание SAS с доступом для записи
Теперь, когда вы создали пустой управляемый диск, настроенный для процесса отправки, вы можете отправить в него 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>
, затем выполните следующие команды:
$diskSas = Grant-AzDiskAccess -ResourceGroupName '<yourresourcegroupname>' -DiskName '<yourdiskname>' -DurationInSecond 86400 -Access 'Write'
$disk = Get-AzDisk -ResourceGroupName '<yourresourcegroupname>' -DiskName '<yourdiskname>'
Отправка VHD или VHDX
Теперь, когда у вас есть SAS для пустого управляемого диска, его можно использовать для задания управляемого диска в качестве места назначения для команды отправки.
Используйте AzCopy версии 10 для отправки локального VHD-файла или VHDX-файла на управляемый диск, указав созданный URI SAS.
Замечание
Если необходимо отправить VHDX-файлы размером более 2 ТБ (что превышает ограничение формата VHD) и не удается преобразовать их в VHD из-за их размера, обратите внимание, что VHDx-файлы поддерживаются только для отправки в номера SKU дисков PremiumSSDv2 и UltraSSDD. Для файлов меньше 2TB рекомендуется преобразовать их в формат VHD перед отправкой.
Эта загрузка имеет такую же пропускную способность, как и эквивалентный стандартный жесткий диск (HDD). Например, если у вас есть размер, равный S4, у вас будет пропускная способность до 60 МиБ/с. Но если у вас есть размер, равный S70, у вас будет пропускная способность до 500 МиБ/с.
AzCopy.exe copy "c:\somewhere\mydisk.vhd" $diskSas.AccessSAS --blob-type PageBlob
После завершения загрузки и когда вам больше не нужно записывать данные на диск, отзовите SAS. Отмена SAS изменит состояние управляемого диска и позволит подключить диск к виртуальной машине.
Замените <yourdiskname>
и <yourresourcegroupname>
выполните следующую команду:
Revoke-AzDiskAccess -ResourceGroupName '<yourresourcegroupname>' -DiskName '<yourdiskname>'
Копирование управляемого диска
Прямая отправка также упрощает процесс копирования управляемого диска. Вы можете скопировать в одном регионе или скопировать управляемый диск в другой регион.
Следующий сценарий будет выполняться для вас, процесс аналогичен описанным выше шагам с некоторыми различиями, так как вы работаете с существующим диском.
Это важно
При указании размера диска в байтах управляемого диска, предоставляемого Azure, необходимо применить смещение 512. Это обусловлено тем, что при возврате диска в Azure опускается нижний колонтитул. Если этого не сделать, копирование завершится ошибкой. Следующий сценарий делает это автоматически.
Замените <sourceResourceGroupHere>
, <sourceDiskNameHere>
, <targetDiskNameHere>
, <targetResourceGroupHere>
, <yourOSTypeHere>
и <yourTargetLocationHere>
(пример значения расположения: uswest2) на ваши значения, а затем выполните следующий скрипт для копирования управляемого диска.
Подсказка
При создании диска ОС добавьте -HyperVGeneration '<yourGeneration>'
в New-AzDiskConfig
.
$sourceRG = <sourceResourceGroupHere>
$sourceDiskName = <sourceDiskNameHere>
$targetDiskName = <targetDiskNameHere>
$targetRG = <targetResourceGroupHere>
$targetLocate = <yourTargetLocationHere>
$targetVmGeneration = "V1" # either V1 or V2
#Expected value for OS is either "Windows" or "Linux"
$targetOS = <yourOSTypeHere>
$sourceDisk = Get-AzDisk -ResourceGroupName $sourceRG -DiskName $sourceDiskName
# Adding the sizeInBytes with the 512 offset, and the -Upload flag
$targetDiskconfig = New-AzDiskConfig -SkuName 'Standard_LRS' -osType $targetOS -UploadSizeInBytes $($sourceDisk.DiskSizeBytes+512) -Location $targetLocate -CreateOption 'Upload' -HyperVGeneration $targetVmGeneration
$targetDisk = New-AzDisk -ResourceGroupName $targetRG -DiskName $targetDiskName -Disk $targetDiskconfig
$sourceDiskSas = Grant-AzDiskAccess -ResourceGroupName $sourceRG -DiskName $sourceDiskName -DurationInSecond 86400 -Access 'Read'
$targetDiskSas = Grant-AzDiskAccess -ResourceGroupName $targetRG -DiskName $targetDiskName -DurationInSecond 86400 -Access 'Write'
azcopy copy $sourceDiskSas.AccessSAS $targetDiskSas.AccessSAS --blob-type PageBlob
Revoke-AzDiskAccess -ResourceGroupName $sourceRG -DiskName $sourceDiskName
Revoke-AzDiskAccess -ResourceGroupName $targetRG -DiskName $targetDiskName
Дальнейшие шаги
После успешной отправки виртуального жесткого диска на управляемый диск можно подключить диск к виртуальной машине и начать его использование.
Чтобы узнать, как подключить диск данных к виртуальной машине, см. статью по теме: присоединение диска данных к виртуальной машине Windows с помощью PowerShell. Сведения об использовании диска в качестве диска ОС см. в статье "Создание виртуальной машины Windows с помощью специализированного диска".
Если у вас есть дополнительные вопросы, ознакомьтесь с разделом о отправке управляемого диска в разделе часто задаваемых вопросов.