Posted in : Azure, Hyper-V, Windows Server Av Simon Gottschlag Översätt med Google ⟶
8 years ago
Det finns många sätt att flytta Hyper-V VM till Azure, i detta fallet beskriver jag hur det kan göras till ett befintligt virtual network (classic / Azure Service Management – ASM).
Kortfattat är det följande som behöver hanteras: (denna guide utgår från att VM:et kört sysprep innan det importeras)
# Lagringen i Azure $storage = "myazurestorage" # Blob containerns namn $storagecontainer = "vhds" # Var VHD-filerna ligger $sourcedir = "D:\VMs\VM\Virtual Hard Drives" # Namnet på vad VHD-filerna, utan .vhd $DiskC = "VM_C_DRIVE" $DiskD = "VM_D_DRIVE" # Source och destination för VHD-filerna $AzureCvhd = "https://$($storage).blob.core.windows.net/$($storagecontainer)/$($DiskC).vhd" $AzureDvhd = "https://$($storage).blob.core.windows.net/$($storagecontainer)/$($DiskD).vhd" $LocalCvhd = "$($sourcedir)\$($DiskC).vhd" $LocalDvhd = "$($sourcedir)\$($DiskD).vhd" # Namnet på VM och service i Azure, behöver inte vara samma som hostnamnet i Windows $vmname = "MIGRATED-VM" $service = "SVC-${vmname}" # Befintlig availability group, virtual network, subnet och size $AG = "AG-MyAvailabilityGroup" $vnet = "VN-MyVirtualNetwork" $subnet = "SN-MySubnet" $size = "Medium" # Statisk IP-adress VM:et skall få i Azure (om inte, ta bort "Set-AzureStaticVNetIP" för $VM nedan) $IPAddress = "10.0.0.100" # Kopiera VHD till Azure # Detta kommer också konvertera från dynamic vhd till static vhd om det behövs # VHDX är inte supporterat än Add-AzureVhd -Destination $AzureCvhd -LocalFilePath $LocalCvhd -NumberOfUploaderThreads 32 Add-AzureVhd -Destination $AzureDvhd -LocalFilePath $LocalDvhd -NumberOfUploaderThreads 32 # Gör VHD-filerna tillgängliga att läggas på VM Add-AzureDisk -DiskName $DiskC -MediaLocation $AzureCvhd -Label $DiskC -OS Windows Add-AzureDisk -DiskName $DiskD -MediaLocation $AzureDvhd -Label $DiskD -OS Windows # Skapa konfiguration för det nya VM:et i Azure $VM = New-AzureVMConfig -name $vmname -InstanceSize $size -DiskName $DiskC | Add-AzureDataDisk -Import $DiskD -LUN 0 | Set-AzureSubnet -SubnetNames $subnet | Set-AzureStaticVNetIP -IPAddress $IPAddress # Skapa VM:et utifrån konfigurationen New-AzureVM -ServiceName $service -AffinityGroup $AG -VMs $VM -VNetName $vnet
Innan ett VM flyttas från Hyper-V till Azure behöver det bekräftas att Remote Desktop är aktiverat samt att det är tillåtet i brandväggen för Domain, Public och Private networks.
Mer info om hur powershell för Azure installeras och används finn här: How to install and configure Azure PowerShell
Kortfattat, vad som behöver göras för att koppla upp sig innan ovan kan utföras:
# Användarnamn och lösenord som är admin för din Azure-subscription $cred = Get-Credential Add-AzureAccount -Credential $cred # Ta hem certifikatet som används för att autentisera mot Azure Service Management # Kommer öppna Internet Explorer för att ladda ner certifikatet Get-AzurePublishSettingsFile # Använd certifikatet Import-AzurePublishSettingsFile "<PATH>\<SUBSCRIPTION>-credentials.publishsettings" # Lista de subscriptions du har åtkomst till Get-AzureSubscription # Välj din subscription Select-AzureSubscription -SubscriptionName "<Subscription Name>" # Välj subscription och vilket storage account som skall användas Set-AzureSubscription -SubscriptionName "<subscription>" -CurrentStorageAccount "<storage account>"
När väl den virtuella maskinen är igång finns det några saker som är rekommenderade att utföra (enligt Windows IT Pro: Use a Non-SYSPREP VHD in Azure):
# Ändra så att D: kan användas Disk Management > Byt label pa "Temporary Storage" fran D: till Z: # Flytta paging filen Inaktivera paging-fil pa C: Aktivera "system managed" paging-fil pa Z: # Byt till KMS Client Key (från CMD som admin) cscript \windows\system32\slmgr.vbs /ipk <KMS Client Key> cscript \windows\system32\slmgr.vbs /skms kms.core.windows.net cscript \windows\system32\slmgr.vbs /ato # Aktivera att diskar skall kopplas på per automatik (från CMD som admin) diskpart SAN POLICY=OnlineAll exit # Ändra RDP-inställningar (från CMD som admin) reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /t REG_DWORD /v KeepAliveEnable /d 1 reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /t REG_DWORD /v KeepAliveInterval /d 1
KMS Client Keys finns här: Technet – Appendix A: KMS Client Setup Keys
Jag valde även att installera Azure Windows VM agent, vilket även kräver .NET 4.5 om det inte redan är installerat. Mer information om detta finns här: About the virtual machine agent and extensions
Jag valde även att ta bort så kallade ”Ghost NICs” från den virtuella maskinen, då jag sett att det ibland kan ställa till problem:
# Från CMD som admin set devmgr_show_nonpresent_devices=1 start devmgmt.msc View > Show hidden devices Avinstallera network adapters som är "hidden"
Har du något mer du gör när du flyttar VM till Azure? Lämna gärna en kommentar!
Tags : Azure, Hyper-V, PowerShell, Windows Server
Personlig rådgivning
Vi erbjuder personlig rådgivning med författaren för 1400 SEK per timme. Anmäl ditt intresse i här så återkommer vi så snart vi kan.
Add comment