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:
- Przekazywanie wirtualnego dysku twardego
- Kopiowanie wirtualnego dysku twardego istniejącej maszyny wirtualnej platformy Azure
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:
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"
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.
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
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.
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
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
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"
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).