Skapa en virtuell dator från en specialiserad virtuell hårddisk i ett lagringskonto
Skapa en ny virtuell dator genom att ansluta en specialiserad ohanterad disk som OS-disk med powershell. En specialiserad disk är en kopia av en virtuell hårddisk från en befintlig virtuell dator som underhåller användarkonton, program och andra tillståndsdata från den ursprungliga virtuella datorn.
Du kan välja mellan två alternativ:
- Ladda upp en virtuell hårddisk
- Kopiera den virtuella hårddisken för en befintlig virtuell Azure-dator
Alternativ 1: Upload en specialiserad virtuell hårddisk
Du kan ladda upp den virtuella hårddisken från en specialiserad virtuell dator som skapats med ett lokalt virtualiseringsverktyg som Hyper-V eller en virtuell dator som exporterats från ett annat moln.
Förbereda den virtuella datorn
Du kan ladda upp en specialiserad virtuell hårddisk som har skapats med hjälp av en lokal virtuell dator eller en virtuell hårddisk som exporterats från ett annat moln. En specialiserad virtuell hårddisk underhåller användarkonton, program och andra tillståndsdata från den ursprungliga virtuella datorn. Om du tänker använda den virtuella hårddisken som den är för att skapa en ny virtuell dator ska du se till att följande steg slutförs.
- Förbered en virtuell Windows hårddisk för uppladdning till Azure. Generalisera inte den virtuella datorn med hjälp av Sysprep.
- Ta bort eventuella gästvirtualiseringsverktyg och agenter som är installerade på den virtuella datorn (d.v.s. VMware-verktyg).
- Se till att den virtuella datorn är konfigurerad för att hämta dess IP-adress och DNS-inställningar via DHCP. Detta säkerställer att servern får en IP-adress inom det virtuella nätverket när den startas.
Hämta lagringskontot
Du behöver ett lagringskonto i Azure för att lagra den uppladdade VM-avbildningen. Du kan antingen använda ett befintligt lagringskonto eller skapa ett nytt.
Om du vill visa tillgängliga lagringskonton skriver du:
Get-AzStorageAccount
Om du vill använda ett befintligt lagringskonto fortsätter du till Upload avsnittet VM-avbildning.
Följ dessa steg om du behöver skapa ett lagringskonto:
Du behöver namnet på resursgruppen där lagringskontot ska skapas. Om du vill ta reda på alla resursgrupper som finns i din prenumeration skriver du:
Get-AzResourceGroup
Om du vill skapa en resursgrupp med namnet myResourceGroup i regionen USA , västra skriver du:
New-AzResourceGroup -Name myResourceGroup -Location "West US"
Skapa ett lagringskonto med namnet mystorageaccount i den här resursgruppen med hjälp av cmdleten New-AzStorageAccount :
New-AzStorageAccount -ResourceGroupName myResourceGroup -Name mystorageaccount -Location "West US" ` -SkuName "Standard_LRS" -Kind "Storage"
Ladda upp den virtuella hårddisken till lagringskontot
Använd cmdleten Add-AzVhd för att ladda upp avbildningen till en container i ditt lagringskonto. I det här exemplet laddas filen myVHD.vhd"C:\Users\Public\Documents\Virtual hard disks\"
upp från till ett lagringskonto med namnet mystorageaccount i resursgruppen myResourceGroup . Filen placeras i containern med namnet mycontainer och det nya filnamnet blir 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"
Om det lyckas får du ett svar som ser ut ungefär så här:
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
Beroende på nätverksanslutningen och storleken på VHD-filen kan det här kommandot ta en stund att slutföra.
Alternativ 2: Kopiera den virtuella hårddisken från en befintlig virtuell Azure-dator
Du kan kopiera en virtuell hårddisk till ett annat lagringskonto som ska användas när du skapar en ny, duplicerad virtuell dator.
Innan du börjar
Kontrollera att du:
- Ha information om käll - och mållagringskontona. För den virtuella källdatorn måste du ha lagringskontot och containernamnen. Vanligtvis är containernamnet vhds. Du måste också ha ett mållagringskonto. Om du inte redan har en kan du skapa en med hjälp av antingen portalen (Alla> tjänster Storage-konton > Lägg till) eller med hjälp av cmdleten New-AzStorageAccount.
- Har laddat ned och installerat Verktyget AzCopy.
Frisallokera den virtuella datorn
Frigör den virtuella datorn, vilket frigör den virtuella hårddisk som ska kopieras.
- Portal: Klicka på VirtuelladatorermyVM> Stoppa >
- PowerShell: Använd Stop-AzVM för att stoppa (friplacera) den virtuella datorn med namnet myVM i resursgruppen myResourceGroup.
Stop-AzVM -ResourceGroupName myResourceGroup -Name myVM
Status för den virtuella datorn i Azure Portal från Stoppad till Stoppad (frisallokerad).
Hämta URL:er för lagringskontot
Du behöver URL:erna för käll- och mållagringskontona. URL:erna ser ut så här: https://<storageaccount>.blob.core.windows.net/<containerName>/
. Om du redan känner till lagringskontot och containernamnet kan du bara ersätta informationen mellan hakparenteserna för att skapa din URL.
Du kan använda Azure Portal eller Azure Powershell för att hämta URL:en:
- Portal: Klicka på > för alla>tjänster StoragekontonlagringskontoBlobs>> och vhd-källfilen finns förmodligen i vhds-containern. Klicka på Egenskaper för containern och kopiera texten med etiketten URL. Du behöver URL:erna för både käll- och målcontainrarna.
- PowerShell: Använd Get-AzVM för att hämta information om den virtuella datorn med namnet myVM i resursgruppen myResourceGroup. I resultatet tittar du i avsnittet Storage förVHD-URI. Den första delen av URI:n är URL:en till containern och den sista delen är OS VHD-namnet för den virtuella datorn.
Get-AzVM -ResourceGroupName "myResourceGroup" -Name "myVM"
Hämta lagringsåtkomstnycklarna
Hitta åtkomstnycklarna för käll- och mållagringskontona. Mer information om åtkomstnycklar finns i Om Azure Storage-konton.
- Portal: Klicka på Alla tjänster>StoragekontonlagringskontoÅtkomstnycklar>>. Kopiera nyckeln med etiketten key1.
- PowerShell: Använd Get-AzStorageAccountKey för att hämta lagringsnyckeln för lagringskontot mystorageaccount i resursgruppen myResourceGroup. Kopiera nyckeln med etiketten key1.
Get-AzStorageAccountKey -Name mystorageaccount -ResourceGroupName myResourceGroup
Kopiera den virtuella hårddisken
Du kan kopiera filer mellan lagringskonton med hjälp av AzCopy. Om den angivna containern inte finns för målcontainern skapas den åt dig.
Om du vill använda AzCopy öppnar du en kommandotolk på den lokala datorn och navigerar till mappen där AzCopy är installerat. Det kommer att likna C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy.
Om du vill kopiera alla filer i en container använder du växeln /S . Detta kan användas för att kopiera den virtuella hårddisken i operativsystemet och alla datadiskar om de finns i samma container. Det här exemplet visar hur du kopierar alla filer i containern mysourcecontainer i lagringskontot mysourcestorageaccount till containern mydestinationcontainer i lagringskontot mydestinationstorageaccount . Ersätt namnen på lagringskontona och containrarna med dina egna. Ersätt <sourceStorageAccountKey1>
och <destinationStorageAccountKey1>
med dina egna nycklar.
AzCopy /Source:https://mysourcestorageaccount.blob.core.windows.net/mysourcecontainer `
/Dest:https://mydestinationatorageaccount.blob.core.windows.net/mydestinationcontainer `
/SourceKey:<sourceStorageAccountKey1> /DestKey:<destinationStorageAccountKey1> /S
Om du bara vill kopiera en specifik virtuell hårddisk i en container med flera filer kan du också ange filnamnet med hjälp av växeln /Pattern. I det här exemplet kopieras bara filen med namnet 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
När det är klart visas ett meddelande som ser ut ungefär så här:
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
Felsökning
- Om du ser felet "Servern kunde inte autentisera begäran" när du använder AZCopy kontrollerar du att värdet för rubriken Authorization (Auktorisering) har rätt format, inklusive signaturen. Om du använder nyckel 2 eller sekundär lagringsnyckel kan du prova att använda den primära eller första lagringsnyckeln.
Skapa den nya virtuella datorn
Du måste skapa nätverk och andra VM-resurser som ska användas av den nya virtuella datorn.
Skapa undernätet och det virtuella nätverket
Skapa det virtuella nätverkets vNet och undernät.
Skapa undernätet. Det här exemplet skapar ett undernät med namnet mySubNet i resursgruppen myResourceGroup och anger adressprefixet för undernätet till 10.0.0.0/24.
$rgName = "myResourceGroup" $subnetName = "mySubNet" $singleSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24
Skapa det virtuella nätverket. I det här exemplet anges namnet på det virtuella nätverket till myVnetName, platsen till USA, västra och adressprefixet för det virtuella nätverket till 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
Skapa nätverkssäkerhetsgruppen och en RDP-regel
För att kunna logga in på den virtuella datorn med RDP måste du ha en säkerhetsregel som tillåter RDP-åtkomst på port 3389. Eftersom den virtuella hårddisken för den nya virtuella datorn skapades från en befintlig specialiserad virtuell dator kan du efter att den virtuella datorn har skapats använda ett befintligt konto från den virtuella källdatorn som hade behörighet att logga in med RDP. Detta måste slutföras innan du skapar nätverksgränssnittet som det ska associeras med.
I det här exemplet anges NSG-namnet till myNsg och RDP-regelnamnet till 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
Mer information om slutpunkter och NSG-regler finns i Öppna portar till en virtuell dator i Azure med Hjälp av PowerShell.
Skapa en offentlig IP-adress och ett nätverkskort
För att upprätta kommunikation med den virtuella datorn i det virtuella nätverket behöver du en offentlig IP-adress och ett nätverksgränssnitt.
Skapa den offentliga IP-adressen. I det här exemplet anges namnet på den offentliga IP-adressen till myIP.
$ipName = "myIP" $pip = New-AzPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $location ` -AllocationMethod Dynamic
Skapa nätverkskortet. I det här exemplet är nätverkskortnamnet inställt på myNicName. Det här steget associerar även nätverkssäkerhetsgruppen som skapades tidigare med det här nätverkskortet.
$nicName = "myNicName" $nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName $rgName ` -Location $location -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
Ange namn och storlek för den virtuella datorn
I det här exemplet anges namnet på den virtuella datorn till "myVM" och VM-storleken till "Standard_A2".
$vmName = "myVM"
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize "Standard_A2"
Lägg till nätverkskortet
$vm = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
Konfigurera OS-disken
Ange URI för den virtuella hårddisken som du laddade upp eller kopierade. I det här exemplet sparas VHD-filen med namnet myOsDisk.vhd i ett lagringskonto med namnet myStorageAccount i en container med namnet myContainer.
$osDiskUri = "https://myStorageAccount.blob.core.windows.net/myContainer/myOsDisk.vhd"
Lägg till OS-disken. I det här exemplet, när OS-disken skapas, läggs termen "osDisk" till i namnet på den virtuella datorn för att skapa OS-diskens namn. Det här exemplet anger också att den Windows virtuella hårddisken ska kopplas till den virtuella datorn som OS-disk.
$osDiskName = $vmName + "osDisk" $vm = Set-AzVMOSDisk -VM $vm -Name $osDiskName -VhdUri $osDiskUri -CreateOption attach -Windows
Valfritt: Om du har datadiskar som måste kopplas till den virtuella datorn lägger du till datadiskarna med hjälp av URL:erna för data-VHD:er och lämpligt lun (Logical Unit Number).
$dataDiskName = $vmName + "dataDisk"
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -VhdUri $dataDiskUri -Lun 1 -CreateOption attach
När du använder ett lagringskonto ser URL:erna för data- och operativsystemdisken ut ungefär så här: https://StorageAccountName.blob.core.windows.net/BlobContainerName/DiskName.vhd
. Du hittar detta på portalen genom att bläddra till mållagringscontainern, klicka på operativsystemet eller den virtuella hårddisken för data som kopierades och sedan kopiera innehållet i URL:en.
Slutför den virtuella datorn
Skapa den virtuella datorn med hjälp av de konfigurationer som vi nyss skapade.
#Create the new VM
New-AzVM -ResourceGroupName $rgName -Location $location -VM $vm
Om kommandot lyckades visas utdata som liknar följande:
RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
True OK OK
Kontrollera att den virtuella datorn har skapats
Du bör se den nyligen skapade virtuella datorn antingen i Azure Portal, under AllatjänsterVirtuella> datorer eller med hjälp av följande PowerShell-kommandon:
$vmList = Get-AzVM -ResourceGroupName $rgName
$vmList.Name
Nästa steg
Logga in på den nya virtuella datorn. Mer information finns i Ansluta och logga in på en virtuell Azure-dator som kör Windows.