Podgląd: wdrażanie maszyn wirtualnych na dedykowanych hostach przy użyciu interfejsu wiersza polecenia platformy AzurePreview: Deploy VMs to dedicated hosts using the Azure CLI

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 interfejs wiersza polecenia platformy Azure w wersji 2.0.70 lub nowszej oraz że zalogowano się na koncie platformy Azure przy użyciu az login.Make sure that you have installed Azure CLI version 2.0.70 or later, and signed in to an Azure account using az login.

Ważne

Dedykowane hosty platformy Azure są obecnie dostępne w publicznej wersji zapoznawczej.Azure Dedicated Hosts is currently in public preview. Ta wersja zapoznawcza nie jest objęta umową dotyczącą poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych.This preview version is provided without a service level agreement, and it's not recommended for production workloads. Niektóre funkcje mogą być nieobsługiwane lub ograniczone.Certain features might not be supported or might have constrained capabilities. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Ograniczenia znanej wersji zapoznawczejKnown preview limitations

  • Zestawy skalowania maszyn wirtualnych nie są obecnie obsługiwane na dedykowanych hostach.Virtual machine scale sets are not currently supported on dedicated hosts.
  • Początkowa wersja zapoznawcza obsługuje następujące serie maszyn wirtualnych: DSv3 i ESv3.The preview initial release supports the following VM series: DSv3 and ESv3.

Tworzenie grupy zasobówCreate resource group

Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi.An Azure resource group is a logical container into which Azure resources are deployed and managed. Utwórz grupę zasobów za pomocą AZ Group Create.Create the resource group with az group create. Poniższy przykład tworzy grupę zasobów o nazwie myDHResourceGroup w lokalizacji Wschodnie stany USA .The following example creates a resource group named myDHResourceGroup in the East US location.

az group create --name myDHResourceGroup --location eastus 

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.

W tym przykładzie użyjemy polecenia AZ VM Host Group Create , aby utworzyć grupę hostów przy użyciu stref dostępności i domen błędów.In this example, we will use az vm host group create to create a host group using both availability zones and fault domains.

az vm host group create \
   --name myHostGroup \
   -g myDHResourceGroup \
   -z 1 \
   --platform-fault-domain-count 2 

Inne przykładyOther examples

Można również użyć AZ VM Host Group Create , aby utworzyć grupę hostów w strefie dostępności 1 (i bez domen błędów).You can also use az vm host group create to create a host group in availability zone 1 (and no fault domains).

az vm host group create \
   --name myAZHostGroup \
   -g myDHResourceGroup \
   -z 1 \
   --platform-fault-domain-count 1 

Poniższe zastosowania: AZ VM Host Group Create , aby utworzyć grupę hostów przy użyciu tylko domen błędów (do użycia w regionach, w których strefy dostępności nie są obsługiwane).The following uses az vm host group create to create a host group by using fault domains only (to be used in regions where availability zones are not supported).

az vm host group create \
   --name myFDHostGroup \
   -g myDHResourceGroup \
   --platform-fault-domain-count 2 

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. W trakcie okresu zapoznawczego będzie obsługiwana następująca wartość jednostki SKU hosta: DSv3_Type1 i ESv3_Type1.During the preview, we will support the following host SKU values: DSv3_Type1 and ESv3_Type1.

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.

Użyj AZ VM Host Create , aby utworzyć hosta.Use az vm host create to create a host. 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.

az vm host create \
   --host-group myHostGroup \
   --name myHost \
   --sku DSv3-Type1 \
   --platform-fault-domain 1 \
   -g myDHResourceGroup

Tworzenie maszyny wirtualnejCreate a virtual machine

Utwórz maszynę wirtualną na dedykowanym hoście za pomocą polecenia AZ VM Create.Create a virtual machine within a dedicated host using az vm create. 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.

az vm create \
   -n myVM \
   --image debian \
   --generate-ssh-keys \
   --host-group myHostGroup \
   --host myHost \
   --generate-ssh-keys \
   --size Standard_D4s_v3 \
   -g myDHResourceGroup \
   --zone 1

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 za pomocą polecenia AZ VM Host Get-instance-View.You can check the host health status and how many virtual machines you can still deploy to the host using az vm host get-instance-view.

az vm host get-instance-view \
   -g myDHResourceGroup \
   --host-group myHostGroup \
   --name myHost

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

{
  "autoReplaceOnFailure": true,
  "hostId": "6de80643-0f45-4e94-9a4c-c49d5c777b62",
  "id": "/subscriptions/10101010-1010-1010-1010-101010101010/resourceGroups/myDHResourceGroup/providers/Microsoft.Compute/hostGroups/myHostGroup/hosts/myHost",
  "instanceView": {
    "assetId": "12345678-1234-1234-abcd-abc123456789",
    "availableCapacity": {
      "allocatableVms": [
        {
          "count": 31.0,
          "vmSize": "Standard_D2s_v3"
        },
        {
          "count": 15.0,
          "vmSize": "Standard_D4s_v3"
        },
        {
          "count": 7.0,
          "vmSize": "Standard_D8s_v3"
        },
        {
          "count": 3.0,
          "vmSize": "Standard_D16s_v3"
        },
        {
          "count": 1.0,
          "vmSize": "Standard_D32-8s_v3"
        },
        {
          "count": 1.0,
          "vmSize": "Standard_D32-16s_v3"
        },
        {
          "count": 1.0,
          "vmSize": "Standard_D32s_v3"
        },
        {
          "count": 1.0,
          "vmSize": "Standard_D48s_v3"
        },
        {
          "count": 0.0,
          "vmSize": "Standard_D64-16s_v3"
        },
        {
          "count": 0.0,
          "vmSize": "Standard_D64-32s_v3"
        },
        {
          "count": 0.0,
          "vmSize": "Standard_D64s_v3"
        }
      ]
    },
    "statuses": [
      {
        "code": "ProvisioningState/succeeded",
        "displayStatus": "Provisioning succeeded",
        "level": "Info",
        "message": null,
        "time": "2019-07-24T21:22:40.604754+00:00"
      },
      {
        "code": "HealthState/available",
        "displayStatus": "Host available",
        "level": "Info",
        "message": null,
        "time": null
      }
    ]
  },
  "licenseType": null,
  "location": "eastus2",
  "name": "myHost",
  "platformFaultDomain": 1,
  "provisioningState": "Succeeded",
  "provisioningTime": "2019-07-24T21:22:40.604754+00:00",
  "resourceGroup": "myDHResourceGroup",
  "sku": {
    "capacity": null,
    "name": "DSv3-Type1",
    "tier": null
  },
  "tags": null,
  "type": null,
  "virtualMachines": [
    {
      "id": "/subscriptions/10101010-1010-1010-1010-101010101010/resourceGroups/MYDHRESOURCEGROUP/providers/Microsoft.Compute/virtualMachines/MYVM",
      "resourceGroup": "MYDHRESOURCEGROUP"
    }
  ]
}

Eksportowanie jako szablonExport as a template

Możesz wyeksportować szablon, jeśli chcesz teraz utworzyć dodatkowe środowisko programistyczne z tymi samymi parametrami lub środowiskiem produkcyjnym, które je dopasowuje.You can export a template if you now want to create an additional development environment with the same parameters, or a production environment that matches it. Menedżer zasobów używa szablonów JSON, które definiują wszystkie parametry środowiska.Resource Manager uses JSON templates that define all the parameters for your environment. Wszystkie środowiska można tworzyć, odwołując się do tego szablonu JSON.You build out entire environments by referencing this JSON template. Szablony JSON można kompilować ręcznie lub wyeksportować istniejące środowisko, aby utworzyć szablon JSON.You can build JSON templates manually or export an existing environment to create the JSON template for you. Użyj AZ Group Export , aby wyeksportować grupę zasobów.Use az group export to export your resource group.

az group export --name myDHResourceGroup > myDHResourceGroup.json 

To polecenie tworzy plik myDHResourceGroup.json w bieżącym katalogu roboczym.This command creates the myDHResourceGroup.json file in your current working directory. Po utworzeniu środowiska na podstawie tego szablonu zostanie wyświetlony monit o podanie wszystkich nazw zasobów.When you create an environment from this template, you are prompted for all the resource names. Można wypełnić te nazwy w pliku szablonu, dodając parametr --include-parameter-default-value do polecenia az group export.You can populate these names in your template file by adding the --include-parameter-default-value parameter to the az group export command. Edytuj szablon JSON, aby określić nazwy zasobów, lub Utwórz plik Parameters. JSON, który określa nazwy zasobów.Edit your JSON template to specify the resource names, or create a parameters.json file that specifies the resource names.

Aby utworzyć środowisko na podstawie szablonu, użyj AZ Group Deployment Create.To create an environment from your template, use az group deployment create.

az group deployment create \ 
    --resource-group myNewResourceGroup \ 
    --template-file myDHResourceGroup.json 

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 AZ VM Delete.Delete the VMs using az vm delete.

az vm delete -n myVM -g myDHResourceGroup

Po usunięciu maszyn wirtualnych można usunąć hosta za pomocą polecenia AZ VM Host Delete.After deleting the VMs, you can delete the host using az vm host delete.

az vm host delete -g myDHResourceGroup --host-group myHostGroup --name myHost 

Po usunięciu wszystkich hostów można usunąć grupę hostów za pomocą polecenia AZ VM Host Group Delete.Once you have deleted all of your hosts, you may delete the host group using az vm host group delete.

az vm host group delete -g myDHResourceGroup --host-group myHostGroup  

Możesz również usunąć całą grupę zasobów w pojedynczym poleceniu.You can also delete the entire resource group in a single command. 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.

az group delete -n myDHResourceGroup 

Następne krokiNext steps

  • Aby uzyskać więcej informacji, zobacz Omówienie dedykowanych hostów .For more information, see the Dedicated hosts overview.

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

  • 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.