Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Создайте новую виртуальную машину, подключив специализированный неуправляемый диск в качестве диска ОС с помощью PowerShell. Специализированный диск — это копия виртуального жесткого диска из существующей виртуальной машины, которая сохраняет учетные записи пользователей, приложения и другое состояние исходной виртуальной машины.
У вас есть два варианта:
Вариант 1: Загрузить специализированный VHD
Виртуальный жесткий диск можно отправить из специализированной виртуальной машины, созданной с помощью локального средства виртуализации, например Hyper-V, или виртуальной машины, экспортируемой из другого облака.
Подготовка виртуальной машины
Вы можете отправить специализированный виртуальный жесткий диск, созданный с помощью локальной виртуальной машины или виртуального жесткого диска, экспортированного из другого облака. Специализированный виртуальный жесткий диск поддерживает учетные записи пользователей, приложения и другие данные о состоянии на исходной виртуальной машине. Если вы планируете использовать VHD-as-is для создания новой виртуальной машины, убедитесь, что выполнены следующие действия.
- Подготовьте виртуальный жесткий диск Windows для загрузки вAzure. Не обобщайте виртуальную машину с помощью Sysprep.
- Удалите все средства и агенты гостевой виртуализации, установленные на виртуальной машине (т. е. средства VMware).
- Убедитесь, что виртуальная машина настроена для извлечения IP-адреса и параметров DNS через DHCP. Это гарантирует, что сервер получает IP-адрес в виртуальной сети при запуске.
Получите учетную запись хранения
Для хранения отправленного образа виртуальной машины требуется учетная запись хранения в Azure. Можно использовать существующую учетную запись хранения или создать новую.
Чтобы отобразить доступные учетные записи хранения, введите следующее:
Get-AzStorageAccount
Если вы хотите использовать существующую учетную запись хранения, перейдите к разделу "Отправка образа виртуальной машины".
Если вам нужно создать учетную запись хранения, выполните следующие действия.
Вам нужно имя группы ресурсов, в которой должна быть создана учетная запись хранения. Чтобы узнать все группы ресурсов, которые находятся в подписке, введите следующее:
Get-AzResourceGroupЧтобы создать группу ресурсов с именем myResourceGroup в регионе западной части США, введите следующее:
New-AzResourceGroup -Name myResourceGroup -Location "West US"Создайте учетную запись хранения с именем mystorageaccount в этой группе ресурсов с помощью командлета New-AzStorageAccount:
New-AzStorageAccount -ResourceGroupName myResourceGroup -Name mystorageaccount -Location "West US" ` -SkuName "Standard_LRS" -Kind "Storage"
Загрузите виртуальный жесткий диск в вашу учетную запись хранения
Используйте командлет Add-AzVhd для отправки образа в контейнер в учетной записи хранения данных. Этот пример загружает файл myVHD.vhd из "C:\Users\Public\Documents\Virtual hard disks\" в учетную запись хранения с именем mystorageaccount в группе ресурсов myResourceGroup. Файл будет помещен в контейнер с именем mycontainer, а новое имя файла будет myUploadedVHD.vhd.
$rgName = "myResourceGroup"
$urlOfUploadedImageVhd = "https://mystorageaccount.blob.core.windows.net/mycontainer/myUploadedVHD.vhd"
Add-AzVhd -ResourceGroupName $rgName -Destination $urlOfUploadedImageVhd `
-LocalFilePath "C:\Users\Public\Documents\Virtual hard disks\myVHD.vhd"
При успешном выполнении вы получите ответ, который выглядит примерно так:
MD5 hash is being calculated for the file C:\Users\Public\Documents\Virtual hard disks\myVHD.vhd.
MD5 hash calculation is completed.
Elapsed time for the operation: 00:03:35
Creating new page blob of size 53687091712...
Elapsed time for upload: 01:12:49
LocalFilePath DestinationUri
------------- --------------
C:\Users\Public\Doc... https://mystorageaccount.blob.core.windows.net/mycontainer/myUploadedVHD.vhd
В зависимости от сетевого подключения и размера VHD-файла эта команда может занять некоторое время.
Вариант 2. Копирование виртуального жесткого диска из существующей виртуальной машины Azure
Вы можете скопировать виртуальный жесткий диск (VHD) в другую учетную запись хранения для использования при создании новой аналогичной ВМ.
Перед тем как начать
Убедитесь, что вы:
- Укажите сведения об учетных записях хранения источника и назначения. Для исходной виртуальной машины необходимо иметь имена учетной записи хранения и контейнеров. Обычно имя контейнера будет vhds. У вас также должна быть целевая учетная запись хранения. Если у вас еще нет, его можно создать с помощью портала (добавление учетных > записей хранения всех служб>) или с помощью командлета New-AzStorageAccount.
- Скачали и установили средство AzCopy.
Освободите ресурсы виртуальной машины
Отмените размещение виртуальной машины, которая освобождает виртуальный жесткий диск для копирования.
- Портал: Нажмите виртуальные машины>myVM> Остановить
- Powershell: используйте Stop-AzVM , чтобы остановить виртуальную машину с именем myVM в группе ресурсов myResourceGroup.
Stop-AzVM -ResourceGroupName myResourceGroup -Name myVM
Состояние виртуальной машины на портале Azure изменяется с Остановлено на Остановлено (деаллоцировано).
Получите URL-адреса аккаунта хранения
Вам нужны URL-адреса исходных и целевых учетных записей хранения. URL-адреса выглядят следующим образом: https://<storageaccount>.blob.core.windows.net/<containerName>/ Если вы уже знаете учетную запись хранения и имя контейнера, вы можете просто заменить сведения между скобками, чтобы создать URL-адрес.
Чтобы получить URL-адрес, можно использовать портал Azure или Azure PowerShell:
- Портал: Щелкните > для всех служб>учетных записей хранения>учетная запись хранения>Объекты BLOB, а исходный VHD-файл, вероятно, находится в контейнере vhds. Щелкните "Свойства " для контейнера и скопируйте ТЕКСТОВЫй URL-адрес. Вам потребуются URL-адреса исходных и целевых контейнеров.
- Powershell: используйте Get-AzVM , чтобы получить сведения о виртуальной машине с именем myVM в группе ресурсов myResourceGroup. В результатах просмотрите раздел профиля хранилища для URI Vhd. Первая часть URI — ЭТО URL-адрес контейнера, а последняя часть — имя виртуального жесткого диска ОС для виртуальной машины.
Get-AzVM -ResourceGroupName "myResourceGroup" -Name "myVM"
Получение ключей доступа к хранилищу
Найдите ключи доступа для исходных и целевых учетных записей хранения. Дополнительные сведения о ключах доступа см. в статье о учетных записях хранения Azure.
- Портал. Щелкните все>учетные записи хранения учетных записейхраненияключей доступа кучетной> записи > хранения. Скопируйте ключ, помеченный как key1.
- Powershell: используйте Get-AzStorageAccountKey , чтобы получить ключ хранилища для учетной записи хранения mystorageaccount в группе ресурсов myResourceGroup. Скопируйте ключ с меткой key1.
Get-AzStorageAccountKey -Name mystorageaccount -ResourceGroupName myResourceGroup
Копирование виртуального жесткого диска
Файлы между учетными записями хранения можно скопировать с помощью AzCopy. Для целевого контейнера, если указанный контейнер не существует, он будет создан для вас.
Чтобы использовать AzCopy, откройте командную строку на локальном компьютере и перейдите в папку, в которой установлен AzCopy. Он будет похож на C:\Program Files (x86)\Microsoft SDK\Azure\AzCopy.
Чтобы скопировать все файлы в контейнере, используйте параметр /S . Это можно использовать для копирования виртуального жесткого диска ОС и всех дисков данных, если они находятся в одном контейнере. В этом примере показано, как скопировать все файлы в контейнере mysourcecontainer в учетной записи хранения mysourcestorageaccount в контейнер mydestinationcontainer в учетной записи хранения mydestinationstorageaccount . Замените имена учетных записей хранения и контейнеров собственными. Замените <sourceStorageAccountKey1> и <destinationStorageAccountKey1> на собственные ключи.
AzCopy /Source:https://mysourcestorageaccount.blob.core.windows.net/mysourcecontainer `
/Dest:https://mydestinationatorageaccount.blob.core.windows.net/mydestinationcontainer `
/SourceKey:<sourceStorageAccountKey1> /DestKey:<destinationStorageAccountKey1> /S
Если вы хотите скопировать только определенный виртуальный жесткий диск в контейнере с несколькими файлами, можно также указать имя файла с помощью параметра /Pattern. В этом примере будет скопирован только файл с именем myFileName.vhd .
AzCopy /Source:https://mysourcestorageaccount.blob.core.windows.net/mysourcecontainer `
/Dest:https://mydestinationatorageaccount.blob.core.windows.net/mydestinationcontainer `
/SourceKey:<sourceStorageAccountKey1> /DestKey:<destinationStorageAccountKey1> `
/Pattern:myFileName.vhd
По завершении вы получите сообщение, которое выглядит примерно так:
Finished 2 of total 2 file(s).
[2016/10/07 17:37:41] Transfer summary:
-----------------
Total files transferred: 2
Transfer successfully: 2
Transfer skipped: 0
Transfer failed: 0
Elapsed time: 00.00:13:07
Устранение неполадок
- При использовании AZCopy, если отображается сообщение об ошибке "Сервер не прошел проверку подлинности запроса", убедитесь, что значение заголовка авторизации правильно сформировано, включая подпись. Если вы используете ключ 2 или дополнительный ключ хранилища, попробуйте использовать первичный или 1-й ключ хранилища.
Создание новой виртуальной машины
Необходимо создать сетевые и другие ресурсы виртуальных машин, которые будут использоваться новой виртуальной машиной.
Создание подсети и виртуальной сети
Создайте виртуальную сеть и подсеть виртуальной сети.
Создайте подсеть. В этом примере создается подсеть с именем mySubNet, в группе ресурсов myResourceGroup, а префикс адреса подсети — 10.0.0.0/24.
$rgName = "myResourceGroup" $subnetName = "mySubNet" $singleSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24Создайте виртуальную сеть. В этом примере имя виртуальной сети должно быть myVnetName, расположение в западной части США, а префикс адреса для виртуальной сети — 10.0.0.0/16.
$location = "West US" $vnetName = "myVnetName" $vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgName -Location $location ` -AddressPrefix 10.0.0.0/16 -Subnet $singleSubnetСоздание группы безопасности сети и правила RDP
Чтобы войти на виртуальную машину с помощью RDP, необходимо иметь правило безопасности, которое разрешает доступ по протоколу RDP через порт 3389. Так как виртуальный жесткий диск для новой виртуальной машины был создан на основе существующей специализированной виртуальной машины, после создания виртуальной машины можно использовать имеющуюся учетную запись из исходной виртуальной машины, которая имела разрешение на вход с помощью RDP. До создания сетевого интерфейса, с которым оно будет связано, необходимо завершить этот процесс.
В этом примере имя группы безопасности сети присваивается myNsg, а имя правила RDP устанавливается как myRdpRule.
$nsgName = "myNsg"
$rdpRule = New-AzNetworkSecurityRuleConfig -Name myRdpRule -Description "Allow RDP" `
-Access Allow -Protocol Tcp -Direction Inbound -Priority 110 `
-SourceAddressPrefix Internet -SourcePortRange * `
-DestinationAddressPrefix * -DestinationPortRange 3389
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $rgName -Location $location `
-Name $nsgName -SecurityRules $rdpRule
Дополнительные сведения о конечных точках и правилах NSG см. в статье "Открытие портов для виртуальной машины в Azure с помощью PowerShell".
Создание общедоступного IP-адреса и сетевого адаптера
Чтобы включить связь с виртуальной машиной в виртуальной сети, вам потребуется общедоступный IP-адрес и сетевой интерфейс.
Создайте общедоступный IP-адрес. В этом примере для общедоступного IP-адреса задано значение myIP.
$ipName = "myIP" $pip = New-AzPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $location ` -AllocationMethod DynamicСоздайте сетевой адаптер. В этом примере имя сетевого адаптера имеет значение myNicName. Этот шаг также связывает созданную ранее группу сетевой безопасности с этой сетевой картой.
$nicName = "myNicName" $nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName $rgName ` -Location $location -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
Задание имени и размера виртуальной машины
В этом примере имя виртуальной машины — myVM, а размер виртуальной машины — Standard_A2.
$vmName = "myVM"
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize "Standard_A2"
Добавьте сетевой адаптер
$vm = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
Настройка диска ОС
Установите URI для VHD, который вы загрузили или скопировали. В этом примере VHD-файл с именем myOsDisk.vhd хранится в учетной записи хранения с именем myStorageAccount в контейнере с именем myContainer.
$osDiskUri = "https://myStorageAccount.blob.core.windows.net/myContainer/myOsDisk.vhd"Добавьте диск ОС. В этом примере при создании диска ОС к имени виртуальной машины добавляется термин osDisk для создания имени диска ОС. В этом примере также указывается, что этот виртуальный жесткий диск под управлением Windows должен быть подключен к виртуальной машине в качестве диска ОС.
$osDiskName = $vmName + "osDisk" $vm = Set-AzVMOSDisk -VM $vm -Name $osDiskName -VhdUri $osDiskUri -CreateOption attach -Windows
Необязательно. Если у вас есть диски данных, которые необходимо подключить к виртуальной машине, добавьте диски данных с помощью URL-адресов виртуальных жестких дисков данных и соответствующего логического номера единицы (Lun).
$dataDiskName = $vmName + "dataDisk"
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -VhdUri $dataDiskUri -Lun 1 -CreateOption attach
При использовании учетной записи хранения URL-адреса дисков и данных операционной системы выглядят примерно так: https://StorageAccountName.blob.core.windows.net/BlobContainerName/DiskName.vhd Это можно найти на портале, перейдя в целевой контейнер хранилища, щелкнув операционную систему или виртуальный жесткий диск данных, скопированный, а затем скопируйте содержимое URL-адреса.
Завершение работы виртуальной машины
Создайте виртуальную машину с помощью только что созданных конфигураций.
#Create the new VM
New-AzVM -ResourceGroupName $rgName -Location $location -VM $vm
Если эта команда выполнена успешно, вы увидите следующие выходные данные:
RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
True OK OK
Убедитесь, что виртуальная машина создана
Вы должны увидеть только что созданную виртуальную машину на портале Azure, в разделе "Все службы>" или с помощью следующих команд PowerShell:
$vmList = Get-AzVM -ResourceGroupName $rgName
$vmList.Name
Дальнейшие действия
Войдите на новую виртуальную машину. Дополнительные сведения см. в статье Подключение к виртуальной машине Azure под управлением Windows и вход в нее.