Udostępnij za pośrednictwem


Tworzenie maszyny wirtualnej na pomocą wyspecjalizowanego wirtualnego dysku twardego na koncie magazynu

Utwórz nową maszynę wirtualną, dołączając wyspecjalizowany dysk nieza zarządzanie jako dysk systemu operacyjnego przy użyciu programu PowerShell. Wyspecjalizowany dysk to kopia wirtualnego dysku twardego z istniejącej maszyny wirtualnej, która przechowuje konta użytkowników, aplikacje i inne dane o stanie z oryginalnej maszyny wirtualnej.

Dostępne są dwie opcje:

Opcja 1. Upload wyspecjalizowanego wirtualnego dysku twardego

Wirtualny dysk twardy można przekazać z wyspecjalizowanej maszyny wirtualnej utworzonej za pomocą lokalnego narzędzia do wirtualizacji, takiego jak funkcja Hyper-V, lub maszyny wirtualnej wyeksportowanych z innej chmury.

Przygotowywanie maszyny wirtualnej

Możesz przekazać wyspecjalizowany wirtualny dysk twardy, który został utworzony przy użyciu lokalnej maszyny wirtualnej lub dysku VHD wyeksportowanego z innej chmury. Wyspecjalizowany wirtualny dysk twardy przechowuje konta użytkowników, aplikacje i inne dane o stanie z oryginalnej maszyny wirtualnej. Jeśli zamierzasz utworzyć nową maszynę wirtualną przy użyciu wirtualnego dysku twardego, upewnij się, że zostały wykonane następujące kroki.

  • Przygotuj wirtualny dysk twardy Windows do przekazania na platformę Azure. Nie uogólniaj maszyny wirtualnej przy użyciu programu Sysprep.
  • Usuń wszystkie narzędzia wirtualizacji gościa i agentów zainstalowanych na maszynie wirtualnej (tj. narzędzia VMware).
  • Upewnij się, że maszyna wirtualna jest skonfigurowana do ściągania jej adresu IP i ustawień DNS za pośrednictwem protokołu DHCP. Dzięki temu serwer uzyskuje adres IP w sieci wirtualnej podczas uruchamiania.

Uzyskiwanie konta magazynu

Do przechowywania przekazanego obrazu maszyny wirtualnej potrzebne jest konto magazynu na platformie Azure. Możesz użyć istniejącego konta magazynu lub utworzyć nowe.

Aby wyświetlić dostępne konta magazynu, wpisz:

Get-AzStorageAccount

Jeśli chcesz użyć istniejącego konta magazynu, przejdź do sekcji Upload obrazu maszyny wirtualnej.

Jeśli musisz utworzyć konto magazynu, wykonaj następujące kroki:

  1. Potrzebna jest nazwa grupy zasobów, w której powinno zostać utworzone konto magazynu. Aby dowiedzieć się, wszystkie grupy zasobów, które znajdują się w subskrypcji, wpisz:

    Get-AzResourceGroup
    

    Aby utworzyć grupę zasobów o nazwie myResourceGroup w regionie Zachodnie stany USA, wpisz:

    New-AzResourceGroup -Name myResourceGroup -Location "West US"
    
  2. Utwórz konto magazynu o nazwie mystorageaccount w tej grupie zasobów przy użyciu polecenia cmdlet New-AzStorageAccount :

    New-AzStorageAccount -ResourceGroupName myResourceGroup -Name mystorageaccount -Location "West US" `
        -SkuName "Standard_LRS" -Kind "Storage"
    

Przekazywanie wirtualnego dysku twardego do konta magazynu

Użyj polecenia cmdlet Add-AzVhd , aby przekazać obraz do kontenera na koncie magazynu. W tym przykładzie plik myVHD.vhd"C:\Users\Public\Documents\Virtual hard disks\" jest przesyłany z pliku na konto magazynu o nazwie mystorageaccount w grupie zasobów myResourceGroup . Plik zostanie umieszczony w kontenerze o nazwie mycontainer , a nową nazwą pliku będzie 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"

Jeśli to się powiedzie, otrzymasz odpowiedź podobną do tej:

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

W zależności od połączenia sieciowego i rozmiaru pliku VHD ukończenie tego polecenia może trochę potrwać.

Opcja 2. Kopiowanie wirtualnego dysku twardego z istniejącej maszyny wirtualnej platformy Azure

Dysk VHD można skopiować na inne konto magazynu, aby użyć go podczas tworzenia nowej, zduplikowanej maszyny wirtualnej.

Zanim rozpoczniesz

Upewnij się, że:

  • Informacje o źródłowych i docelowych kontach magazynu. W przypadku źródłowej maszyny wirtualnej musisz mieć nazwę konta magazynu i kontenera. Zazwyczaj nazwa kontenera to vhds. Musisz również mieć docelowe konto magazynu. Jeśli jeszcze jej nie masz, możesz ją utworzyć przy użyciu portalu (>Wszystkie usługi Storage konta > Dodaj) lub polecenia cmdlet New-AzStorageAccount.
  • Pobrano i zainstalowano narzędzie AzCopy.

Cofniesz alokację maszyny wirtualnej

Cofniesz alokację maszyny wirtualnej, co wolnego miejsca na dysku VHD do skopiowania.

  • Portal: kliknij pozycję MaszynywirtualnemyVM>> Stop
  • PowerShell: użyj polecenia Stop-AzVM , aby zatrzymać (cofnić przydział) maszynę wirtualną o nazwie myVM w grupie zasobów myResourceGroup.
Stop-AzVM -ResourceGroupName myResourceGroup -Name myVM

Stan maszyny wirtualnej w maszynie wirtualnej w Azure Portal zmieni się z Zatrzymana na Zatrzymana (cofniesz jej alokację).

Uzyskiwanie adresów URL konta magazynu

Potrzebne są adresy URL źródłowych i docelowych kont magazynu. Adresy URL wyglądają tak: https://<storageaccount>.blob.core.windows.net/<containerName>/. Jeśli znasz już nazwę konta magazynu i kontenera, możesz po prostu zastąpić informacje w nawiasach, aby utworzyć adres URL.

Aby uzyskać adres URL, Azure Portal polecenia lub programu Azure PowerShell:

  • Portal: kliknij pozycję >dla wszystkich> usług Storage konta>magazynuBlobs>, a źródłowy plik VHD prawdopodobnie znajduje się w kontenerze vhds. Kliknij pozycję Właściwości kontenera i skopiuj adres URL z etykietą tekstową. Będą potrzebne adresy URL kontenerów źródłowych i docelowych.
  • PowerShell: użyj polecenia Get-AzVM , aby uzyskać informacje o maszynie wirtualnej o nazwie myVM w grupie zasobów myResourceGroup. W wynikach w sekcji profil Storage wirtualnego dysku twardego. Pierwsza część identyfikatorów URI to adres URL kontenera, a ostatnia część to nazwa wirtualnego dysku twardego systemu operacyjnego dla maszyny wirtualnej.
Get-AzVM -ResourceGroupName "myResourceGroup" -Name "myVM"

Uzyskiwanie kluczy dostępu do magazynu

Znajdź klucze dostępu dla źródłowego i docelowego konta magazynu. Aby uzyskać więcej informacji na temat kluczy dostępu, zobacz Informacje o kontach usługi Azure Storage.

  • Portal: kliknij pozycję Wszystkie usługi>Storage konta>magazynu Klucze>dostępu. Skopiuj klucz oznaczony jako klucz1.
  • PowerShell: użyj polecenia Get-AzStorageAccountKey , aby uzyskać klucz magazynu dla konta magazynu mystorageaccount w grupie zasobów myResourceGroup. Skopiuj klucz z etykietą klucz1.
Get-AzStorageAccountKey -Name mystorageaccount -ResourceGroupName myResourceGroup

Kopiowanie wirtualnego dysku twardego

Pliki między kontami magazynu można kopiować przy użyciu narzędzia AzCopy. Jeśli określony kontener nie istnieje dla kontenera docelowego, zostanie on utworzony automatycznie.

Aby użyć programu AzCopy, otwórz wiersz polecenia na komputerze lokalnym i przejdź do folderu, w którym zainstalowano program AzCopy. Będzie on podobny do C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy.

Aby skopiować wszystkie pliki w kontenerze, należy użyć przełącznika /S . Może to służyć do kopiowania dysku VHD systemu operacyjnego i wszystkich dysków danych, jeśli znajdują się w tym samym kontenerze. W tym przykładzie pokazano, jak skopiować wszystkie pliki w kontenerze mysourcecontainer na koncie magazynu mysourcestorageaccount do kontenera mydestinationcontainer na koncie magazynu mydestinationstorageaccount . Zastąp nazwy kont magazynu i kontenerów własnymi. Zastąp <sourceStorageAccountKey1> i <destinationStorageAccountKey1> własnymi kluczami.

AzCopy /Source:https://mysourcestorageaccount.blob.core.windows.net/mysourcecontainer `
    /Dest:https://mydestinationatorageaccount.blob.core.windows.net/mydestinationcontainer `
    /SourceKey:<sourceStorageAccountKey1> /DestKey:<destinationStorageAccountKey1> /S

Jeśli chcesz skopiować tylko określony wirtualny dysk twardy w kontenerze z wieloma plikami, możesz również określić nazwę pliku przy użyciu przełącznika /Pattern. W tym przykładzie zostanie skopiowany tylko plik o nazwie 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

Po zakończeniu zostanie wyświetlony komunikat podobny do tego:

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

Rozwiązywanie problemów

  • Jeśli podczas korzystania z narzędzia AZCopy zostanie wyświetlony błąd "Serwer nie może uwierzytelnić żądania", upewnij się, że wartość nagłówka Autoryzacja jest poprawnie postać wraz z podpisem. Jeśli używasz klucza 2 lub pomocniczego klucza magazynu, spróbuj użyć podstawowego lub pierwszego klucza magazynu.

Tworzenie nowej maszyny wirtualnej

Musisz utworzyć sieć i inne zasoby maszyny wirtualnej, które będą używane przez nową maszynę wirtualną.

Tworzenie podsieci i sieci wirtualnej

Utwórz sieć wirtualną i podsieć sieci wirtualnej.

  1. Utwórz podsieć. W tym przykładzie grupę zasobów myResourceGroup tworzy podsieć o nazwie mySubNet i ustawia prefiks adresu podsieci na 10.0.0.0/24.

    $rgName = "myResourceGroup"
    $subnetName = "mySubNet"
    $singleSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix 10.0.0.0/24
    
  2. Utwórz sieć wirtualną. W tym przykładzie nazwa sieci wirtualnej jest ustawiana na myVnetName, lokalizacja na Zachodnie stany USA, a prefiks adresu dla sieci wirtualnej na 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
    

    Tworzenie sieciowej grupy zabezpieczeń i reguły protokołu RDP

    Aby można było zalogować się do maszyny wirtualnej przy użyciu protokołu RDP, musisz mieć regułę zabezpieczeń, która zezwala na dostęp RDP na porcie 3389. Ponieważ wirtualny dysk twardy dla nowej maszyny wirtualnej został utworzony na podstawie istniejącej wyspecjalizowanej maszyny wirtualnej, po jej utworzeniu możesz użyć istniejącego konta ze źródłowej maszyny wirtualnej, która ma uprawnienia do logowania się przy użyciu protokołu RDP. Należy to zrobić przed utworzeniem interfejsu sieciowego, z który zostanie skojarzony.
    W tym przykładzie nazwa sieciowej grupy danych jest ustawiana na myNsg , a nazwa reguły protokołu RDP na 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
	

Aby uzyskać więcej informacji na temat punktów końcowych i reguł sieciowej sieciowej organizacji, zobacz Otwieranie portów dla maszyny wirtualnej na platformie Azure przy użyciu programu PowerShell.

Tworzenie publicznego adresu IP i karty sieciowej

Aby umożliwić komunikację z maszyną wirtualną w sieci wirtualnej, potrzebujesz publicznego adresu IP i interfejsu sieciowego.

  1. Utwórz publiczny adres IP. W tym przykładzie nazwa publicznego adresu IP jest ustawiona na myIP.

    $ipName = "myIP"
    $pip = New-AzPublicIpAddress -Name $ipName -ResourceGroupName $rgName -Location $location `
        -AllocationMethod Dynamic
    
  2. Utwórz kartę sieciową. W tym przykładzie nazwa karty sieciowej jest ustawiona na myNicName. Ten krok kojarzy również utworzoną wcześniej sieciową grupę zabezpieczeń z tą kartą sieciową.

    $nicName = "myNicName"
    $nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName $rgName `
     -Location $location -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
    

Ustawianie nazwy i rozmiaru maszyny wirtualnej

W tym przykładzie nazwa maszyny wirtualnej jest ustawiana na "myVM", a rozmiar maszyny wirtualnej na "Standard_A2".

$vmName = "myVM"
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize "Standard_A2"

Dodawanie karty sieciowej

$vm = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id

Konfigurowanie dysku systemu operacyjnego

  1. Ustaw wartość URI przekazanego lub skopiowanego wirtualnego dysku twardego. W tym przykładzie plik VHD o nazwie myOsDisk.vhd jest przechowywany na koncie magazynu o nazwie myStorageAccount w kontenerze o nazwie myContainer.

    $osDiskUri = "https://myStorageAccount.blob.core.windows.net/myContainer/myOsDisk.vhd"
    
  2. Dodaj dysk systemu operacyjnego. W tym przykładzie po utworzeniu dysku systemu operacyjnego termin "osDisk" jest dołączany do nazwy maszyny wirtualnej w celu utworzenia nazwy dysku systemu operacyjnego. W tym przykładzie określono również, Windows wirtualny dysk twardy oparty na Windows powinien być dołączony do maszyny wirtualnej jako dysk systemu operacyjnego.

    $osDiskName = $vmName + "osDisk"
    $vm = Set-AzVMOSDisk -VM $vm -Name $osDiskName -VhdUri $osDiskUri -CreateOption attach -Windows
    

Opcjonalnie: jeśli masz dyski danych, które muszą być dołączone do maszyny wirtualnej, dodaj dyski danych przy użyciu adresów URL dysków VHD danych i odpowiedniego numeru jednostki logicznej (Lun).

$dataDiskName = $vmName + "dataDisk"
$vm = Add-AzVMDataDisk -VM $vm -Name $dataDiskName -VhdUri $dataDiskUri -Lun 1 -CreateOption attach

W przypadku korzystania z konta magazynu adresy URL dysków danych i systemu operacyjnego wyglądają podobnie do tych: https://StorageAccountName.blob.core.windows.net/BlobContainerName/DiskName.vhd. Można to znaleźć w portalu, przeglądając docelowy kontener magazynu, klikając skopiowany dysk VHD systemu operacyjnego lub danych, a następnie kopiując zawartość adresu URL.

Ukończenie maszyny wirtualnej

Utwórz maszynę wirtualną przy użyciu właśnie utworzonych konfiguracji.

#Create the new VM
New-AzVM -ResourceGroupName $rgName -Location $location -VM $vm

Jeśli to polecenie powiodło się, zobaczysz dane wyjściowe podobne do tych:

RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
                         True         OK OK   

Sprawdź, czy maszyna wirtualna została utworzona

Nowo utworzona maszyna wirtualna powinna zostać Azure Portal obszarze >Wszystkie usługi Maszyny wirtualne lub za pomocą następujących poleceń programu PowerShell:

$vmList = Get-AzVM -ResourceGroupName $rgName
$vmList.Name

Następne kroki

Zaloguj się do nowej maszyny wirtualnej. Aby uzyskać więcej informacji, zobacz How to connect and log on to an Azure virtual machine running Windows (Jak nawiązać połączenie z maszyną wirtualną platformy Azure z systemem Windows).