В это статье я покажу, как загрузить VHD файл виртуальной машины, созданной на внутреннем сервере Hyper-V в облако Azure. Для этого нам потребуются:
- Действующая подписка Azure
- Установленный модуль Microsoft Azure для PowerShell
- VHD файл виртуальной машины
Подготовка VHD файла
На ВМ, которую вы планируете загрузить в облако, необходимо выполнить sysprep (%windir%\System32\sysprep\sysprep.exe). В настройках sysprep указываем следующие параметры:
- Enter System Out-of-Box Experience (OOBE)
- Generalize
- Shutdown
ВМ после выполнения sysprep выключится.
Создание учетной записи хранения Azure
В облаке Azure необходимо создать новую учетную запись хранения и загрузить в нее файл виртуальной машины. Для этого нам понадобится модуль Microsoft Azure for PowerShell (как установить и настроить подключение к Azure из PowerShell).
- Авторизуемся на портале Azure:
Login-AzureRmAccount
- Выведем список доступных подписок Azure:
Get-AzureRmSubscription
- Затем выберем нужную подписку:
Select-AzureSubscription -SubscriptionName MSDN
Получим список имеющихся аккаунтов хранения:
Get-AzureRmStorageAccount
Создадим новую учетную запись хранения:
New-AzureRmStorageAccount -ResourceGroupName VMblogResourceGroup -Name VMblogstorageaccount -Location “West EU” -SkuName “Standard_LRS” -Kind “VMBlogStorage”
Варианты аргумента Skuname:
- Standard_LRS – локальное отказоустойчивое хранилище.
- Standard_ZRS – Зональное избыточное хранилище.
- Standard_GRS – геораспределенное хранилище.
- Standard_RAGRS – геораспределенное хранилище с доступом только на чтение.
- Premium_LRS – премиальное локальное отказоустойчивое хранилище (SSD)
Далее в созданном хранилище нужно создать контейнер, в который мы загрузим VHD файл. Создать контейнер можно из графического интерфейса веб портала Azure или из PowerShell.
Перейдите в раздел Storage и нажмите в правой панели +Container.
Либо создайте контейнер с помощью Powershell. Сначала нужно выбрать учетную запись хранения:
Set-AzureSubscription -CurrentStorageAccountName <StorageAccountName> -SubscriptionName <SubscriptionName>
Затем создать новый контейнер.
New-AzureStorageContainer -Name <ContainerName> -Permission Off
Загрузка VHD в облако Azure
Теперь с помощью командлета add-azureRMVhd можно загрузить файл в Azure.
$RGName = “vmblog_rg”
$urlOfUploadedVhd = “https://vmblog_ru.blob.core.windows.net/vmvhd”
Теперь запустим процесс загрузки VHD файла с локального диска в облако:
Add-AzureRMVhd –ResourceGroupName $rgName –Destination $urlOfUploadedVhd –LocalFilePath “D:\Personal\Azure\VHD\W2K8-R2-SP1-Master.vhd”
После окончания загрузки проверьте, что на портале Azure появился новый VHD диск: