Wdrażanie maszyn wirtualnych na dedykowanych hostach przy użyciu Azure PowerShellDeploy VMs to dedicated hosts using the Azure PowerShell

W tym artykule opisano sposób tworzenia dedykowanego hosta platformy Azure do hostowania maszyn wirtualnych.This article guides you through how to create an Azure dedicated host to host your virtual machines (VMs).

Upewnij się, że zainstalowano program Azure PowerShell w wersji 2.8.0 lub nowszej oraz że zalogowano się na koncie platformy Azure w usłudze Connect-AzAccount .Make sure that you have installed Azure PowerShell version 2.8.0 or later, and you are signed in to an Azure account in with Connect-AzAccount.

OgraniczeniaLimitations

  • Zestawy skalowania maszyn wirtualnych nie są obecnie obsługiwane na dedykowanych hostach.Virtual machine scale sets are not currently supported on dedicated hosts.
  • Rozmiary i typy sprzętu dostępne dla dedykowanych hostów różnią się w zależności od regionu.The sizes and hardware types available for dedicated hosts vary by region. Więcej informacji można znaleźć na stronie cennika hosta.Refer to the host pricing page to learn more.

Tworzenie grupy hostówCreate a host group

Grupa hostów jest zasobem, który reprezentuje kolekcję dedykowanych hostów.A host group is a resource that represents a collection of dedicated hosts. Można utworzyć grupę hostów w regionie i strefie dostępności, a następnie dodać do niej hosty.You create a host group in a region and an availability zone, and add hosts to it. W przypadku planowania wysokiej dostępności dostępne są dodatkowe opcje.When planning for high availability, there are additional options. W przypadku dedykowanych hostów można użyć jednej lub obu następujących opcji:You can use one or both of the following options with your dedicated hosts:

  • Obejmuje wiele stref dostępności.Span across multiple availability zones. W takim przypadku konieczne jest posiadanie grupy hostów w każdej ze stref, które mają być używane.In this case, you are required to have a host group in each of the zones you wish to use.
  • Obejmuje wiele domen błędów, które są mapowane na stojaki fizyczne.Span across multiple fault domains which are mapped to physical racks.

W obu przypadkach należy podać liczbę domen błędów dla grupy hostów.In either case, you are need to provide the fault domain count for your host group. Jeśli nie chcesz obejmować domen błędów w grupie, użyj liczby domen błędów wynoszącej 1.If you do not want to span fault domains in your group, use a fault domain count of 1.

Możesz również zdecydować się na korzystanie ze stref dostępności i domen błędów.You can also decide to use both availability zones and fault domains. Ten przykład umożliwia utworzenie grupy hostów w strefie 1 z 2 domenami błędów.This example creates a host group in zone 1, with 2 fault domains.

$rgName = "myDHResourceGroup"
$location = "EastUS"

New-AzResourceGroup -Location $location -Name $rgName
$hostGroup = New-AzHostGroup `
   -Location $location `
   -Name myHostGroup `
   -PlatformFaultDomain 2 `
   -ResourceGroupName $rgName `
   -Zone 1

Tworzenie hostaCreate a host

Teraz Utwórzmy dedykowanego hosta w grupie hostów.Now let's create a dedicated host in the host group. Oprócz nazwy hosta, należy podać jednostkę SKU dla hosta.In addition to a name for the host, you are required to provide the SKU for the host. Jednostka SKU hosta przechwytuje obsługiwaną serię maszyn wirtualnych oraz generowanie sprzętu dla dedykowanego hosta.Host SKU captures the supported VM series as well as the hardware generation for your dedicated host.

Aby uzyskać więcej informacji o jednostkach SKU i cenach hosta, zobacz Cennik dedykowanego hosta platformy Azure.For more information about the host SKUs and pricing, see Azure Dedicated Host pricing.

Jeśli ustawisz liczbę domen błędów dla grupy hostów, zostanie wyświetlony monit o określenie domeny błędów dla hosta.If you set a fault domain count for your host group, you will be asked to specify the fault domain for your host. W tym przykładzie ustawimy domenę błędów dla hosta na 1.In this example, we set the fault domain for the host to 1.

$dHost = New-AzHost `
   -HostGroupName $hostGroup.Name `
   -Location $location -Name myHost `
   -ResourceGroupName $rgName `
   -Sku DSv3-Type1 `
   -AutoReplaceOnFailure 1 `
   -PlatformFaultDomain 1

Tworzenie maszyny wirtualnejCreate a VM

Utwórz maszynę wirtualną na dedykowanym hoście.Create a virtual machine on the dedicated host.

Jeśli podczas tworzenia grupy hostów została określona strefa dostępności, należy użyć tej samej strefy podczas tworzenia maszyny wirtualnej.If you specified an availability zone when creating your host group, you are required to use the same zone when creating the virtual machine. W tym przykładzie, ponieważ nasza grupa hostów znajduje się w strefie 1, musimy utworzyć maszynę wirtualną w strefie 1.For this example, because our host group is in zone 1, we need to create the VM in zone 1.

$cred = Get-Credential
New-AzVM `
   -Credential $cred `
   -ResourceGroupName $rgName `
   -Location $location `
   -Name myVM `
   -HostId $dhost.Id `
   -Image Win2016Datacenter `
   -Zone 1 `
   -Size Standard_D4s_v3

Ostrzeżenie

Jeśli utworzono maszynę wirtualną na hoście, który nie ma wystarczającej ilości zasobów, maszyna wirtualna zostanie utworzona w stanie niepowodzenia.If you create a virtual machine on a host which does not have enough resources, the virtual machine will be created in a FAILED state.

Sprawdź stan hostaCheck the status of the host

Można sprawdzić stan kondycji hosta oraz liczbę maszyn wirtualnych, które można wdrożyć na hoście przy użyciu GetAzHost z -InstanceView parametrem.You can check the host health status and how many virtual machines you can still deploy to the host using GetAzHost with the -InstanceView parameter.

Get-AzHost `
   -ResourceGroupName $rgName `
   -Name myHost `
   -HostGroupName $hostGroup.Name `
   -InstanceView

Dane wyjściowe będą wyglądać podobnie do tego:The output will look similar to this:

ResourceGroupName      : myDHResourceGroup
PlatformFaultDomain    : 1
AutoReplaceOnFailure   : True
HostId                 : 12345678-1234-1234-abcd-abc123456789
ProvisioningTime       : 7/28/2019 5:31:01 PM
ProvisioningState      : Succeeded
InstanceView           : 
  AssetId              : abc45678-abcd-1234-abcd-123456789abc
  AvailableCapacity    : 
    AllocatableVMs[0]  : 
      VmSize           : Standard_D2s_v3
      Count            : 32
    AllocatableVMs[1]  : 
      VmSize           : Standard_D4s_v3
      Count            : 16
    AllocatableVMs[2]  : 
      VmSize           : Standard_D8s_v3
      Count            : 8
    AllocatableVMs[3]  : 
      VmSize           : Standard_D16s_v3
      Count            : 4
    AllocatableVMs[4]  : 
      VmSize           : Standard_D32-8s_v3
      Count            : 2
    AllocatableVMs[5]  : 
      VmSize           : Standard_D32-16s_v3
      Count            : 2
    AllocatableVMs[6]  : 
      VmSize           : Standard_D32s_v3
      Count            : 2
    AllocatableVMs[7]  : 
      VmSize           : Standard_D64-16s_v3
      Count            : 1
    AllocatableVMs[8]  : 
      VmSize           : Standard_D64-32s_v3
      Count            : 1
    AllocatableVMs[9]  : 
      VmSize           : Standard_D64s_v3
      Count            : 1
  Statuses[0]          : 
    Code               : ProvisioningState/succeeded
    Level              : Info
    DisplayStatus      : Provisioning succeeded
    Time               : 7/28/2019 5:31:01 PM
  Statuses[1]          : 
    Code               : HealthState/available
    Level              : Info
    DisplayStatus      : Host available
Sku                    : 
  Name                 : DSv3-Type1
Id                     : /subscriptions/10101010-1010-1010-1010-101010101010/re
sourceGroups/myDHResourceGroup/providers/Microsoft.Compute/hostGroups/myHostGroup/hosts
/myHost
Name                   : myHost
Location               : eastus
Tags                   : {}

Dodawanie istniejącej maszyny wirtualnejAdd an existing VM

Możesz dodać istniejącą maszynę wirtualną do dedykowanego hosta, ale najpierw należy Stop\Deallocated. maszynę wirtualnąYou can add an existing VM to a dedicated host, but the VM must first be Stop\Deallocated. Przed przeniesieniem maszyny wirtualnej do dedykowanego hosta upewnij się, że konfiguracja maszyny wirtualnej jest obsługiwana:Before you move a VM to a dedicated host, make sure that the VM configuration is supported:

  • Rozmiar maszyny wirtualnej musi znajdować się w tej samej rodzinie rozmiarów co dedykowany host.The VM size must be in the same size family as the dedicated host. Na przykład jeśli dedykowany host to DSv3, rozmiar maszyny wirtualnej może być Standard_D4s_v3, ale nie Standard_A4_v2.For example, if your dedicated host is DSv3, then the VM size could be Standard_D4s_v3, but it could not be a Standard_A4_v2.
  • Maszyna wirtualna musi znajdować się w tym samym regionie co dedykowany host.The VM needs to be located in same region as the dedicated host.
  • Maszyna wirtualna nie może być częścią grupy umieszczania sąsiedztwa.The VM can't be part of a proximity placement group. Usuń maszynę wirtualną z grupy położenia zbliżeniowe przed przeniesieniem jej do dedykowanego hosta.Remove the VM from the proximity placement group before moving it to a dedicated host. Aby uzyskać więcej informacji, zobacz Przenoszenie maszyny wirtualnej z grupy umieszczania sąsiedztwaFor more information, see Move a VM out of a proximity placement group
  • Maszyna wirtualna nie może znajdować się w zestawie dostępności.The VM can't be in an availability set.
  • Jeśli maszyna wirtualna znajduje się w strefie dostępności, musi to być ta sama strefa dostępności co grupa hostów.If the VM is in an availability zone, it must be the same availability zone as the host group. Ustawienia strefy dostępności dla maszyny wirtualnej i grupy hostów muszą być zgodne.The availability zone settings for the VM and the host group must match.

Zastąp wartości zmiennych własnymi informacjami.Replace the values of the variables with your own information.

$vmRGName = "movetohost"
$vmName = "myVMtoHost"
$dhRGName = "myDHResourceGroup"
$dhGroupName = "myHostGroup"
$dhName = "myHost"

$myDH = Get-AzHost `
   -HostGroupName $dhGroupName `
   -ResourceGroupName $dhRGName `
   -Name $dhName
   
$myVM = Get-AzVM `
   -ResourceGroupName $vmRGName `
   -Name $vmName
   
$myVM.Host = New-Object Microsoft.Azure.Management.Compute.Models.SubResource

$myVM.Host.Id = "$myDH.Id"

Stop-AzVM `
   -ResourceGroupName $vmRGName `
   -Name $vmName -Force
   
Update-AzVM `
   -ResourceGroupName $vmRGName `
   -VM $myVM -Debug
   
Start-AzVM `
   -ResourceGroupName $vmRGName `
   -Name $vmName

CzyszczenieClean up

Opłaty są naliczane za dedykowane hosty nawet wtedy, gdy nie wdrożono żadnych maszyn wirtualnych.You are being charged for your dedicated hosts even when no virtual machines are deployed. Należy usunąć wszystkie hosty, których obecnie nie używasz, aby zaoszczędzić koszty.You should delete any hosts you are currently not using to save costs.

Hosta można usunąć tylko wtedy, gdy nie ma dłużej używanych maszyn wirtualnych.You can only delete a host when there are no any longer virtual machines using it. Usuń maszyny wirtualne za pomocą polecenia Remove-AzVM.Delete the VMs using Remove-AzVM.

Remove-AzVM -ResourceGroupName $rgName -Name myVM

Po usunięciu maszyn wirtualnych można usunąć hosta za pomocą polecenia Remove-AzHost.After deleting the VMs, you can delete the host using Remove-AzHost.

Remove-AzHost -ResourceGroupName $rgName -Name myHost

Po usunięciu wszystkich hostów można usunąć grupę hostów za pomocą polecenia Remove-AzHostGroup.Once you have deleted all of your hosts, you may delete the host group using Remove-AzHostGroup.

Remove-AzHost -ResourceGroupName $rgName -Name myHost

Możesz również usunąć całą grupę zasobów w pojedynczym poleceniu za pomocą polecenia Remove-AzResourceGroup.You can also delete the entire resource group in a single command using Remove-AzResourceGroup. Spowoduje to usunięcie wszystkich zasobów utworzonych w grupie, w tym wszystkich maszyn wirtualnych, hostów i grup hostów.This will delete all resources created in the group, including all of the VMs, hosts and host groups.

Remove-AzResourceGroup -Name $rgName

Następne krokiNext steps

  • Istnieje przykładowy szablon, który znajduje się w tym miejscu, który używa stref i domen błędów w celu uzyskania maksymalnej odporności w regionie.There is sample template, found here, that uses both zones and fault domains for maximum resiliency in a region.

  • Możesz również wdrożyć dedykowane hosty przy użyciu Azure Portal.You can also deploy dedicated hosts using the Azure portal.