Vista previa: Implementación de máquinas virtuales en hosts dedicados mediante la CLI de AzurePreview: Deploy VMs to dedicated hosts using the Azure CLI

En este artículo se ofrecen instrucciones para crear un host dedicado de Azure en el que se pueden hospedar máquinas virtuales (VM).This article guides you through how to create an Azure dedicated host to host your virtual machines (VMs).

Asegúrese de tener instalada la CLI de Azure, versión 2.0.70 o posterior, y de haber iniciado sesión en una cuenta de Azure con 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.

Importante

Los hosts dedicados de Azure están actualmente en versión preliminar pública.Azure Dedicated Hosts is currently in public preview. Esta versión preliminar se ofrece sin Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción.This preview version is provided without a service level agreement, and it's not recommended for production workloads. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas.Certain features might not be supported or might have constrained capabilities. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Limitaciones conocidas de la versión preliminarKnown preview limitations

  • Actualmente, los conjuntos de escalado de máquinas virtuales no se admiten en los hosts dedicados.Virtual machine scale sets are not currently supported on dedicated hosts.
  • La versión preliminar inicial admite las siguientes series de máquinas virtuales: DSv3 y ESv3.The preview initial release supports the following VM series: DSv3 and ESv3.

Creación de un grupo de recursosCreate resource group

Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure.An Azure resource group is a logical container into which Azure resources are deployed and managed. Cree el grupo de recursos con az group create.Create the resource group with az group create. En el ejemplo siguiente se crea un grupo de recursos en la ubicación Este de EE. UU. con el nombre myDHResourceGroup.The following example creates a resource group named myDHResourceGroup in the East US location.

az group create --name myDHResourceGroup --location eastus 

Creación de un grupo hostCreate a host group

Un grupo host es un recurso que representa una colección de hosts dedicados.A host group is a resource that represents a collection of dedicated hosts. Puede crear un grupo host en una región y una zona de disponibilidad, y agregarle hosts.You create a host group in a region and an availability zone, and add hosts to it. Al planear la alta disponibilidad, hay otras opciones.When planning for high availability, there are additional options. Puede usar una o ambas de las dos opciones siguientes con los hosts dedicados:You can use one or both of the following options with your dedicated hosts:

  • Abarcar varias zonas de disponibilidad.Span across multiple availability zones. En este caso, es necesario tener un grupo host en cada una de las zonas que quiera usar.In this case, you are required to have a host group in each of the zones you wish to use.
  • Abarcar varios dominios de error que se asignan a bastidores físicos.Span across multiple fault domains which are mapped to physical racks.

En cualquier caso, es necesario proporcionar el número de dominios de error del grupo host.In either case, you are need to provide the fault domain count for your host group. Si no quiere abarcar dominios de error en el grupo, use un número de dominios de error de 1.If you do not want to span fault domains in your group, use a fault domain count of 1.

También puede usar zonas de disponibilidad y dominios de error a la vez.You can also decide to use both availability zones and fault domains.

En este ejemplo, se usará az vm host group create para crear un grupo host con zonas de disponibilidad y dominios de error.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 

Otros ejemplosOther examples

También se puede usar az vm host group create para crear un grupo host en la zona de disponibilidad 1, pero sin ningún dominio de error.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 

En el ejemplo siguiente se usa az vm host group create para crear un grupo host únicamente con dominios de error (para usarlo en regiones que no admitan zonas de disponibilidad).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 

Creación de un hostCreate a host

Ahora vamos a crear un host dedicado en el grupo host.Now let's create a dedicated host in the host group. Además de un nombre para el host, se le pedirá que proporcione el SKU del host.In addition to a name for the host, you are required to provide the SKU for the host. El SKU del host registra la serie de máquinas virtuales admitidas, así como la generación de hardware del host dedicado.Host SKU captures the supported VM series as well as the hardware generation for your dedicated host. Durante la versión preliminar, se admitirán los siguientes valores de SKU de host: DSv3_Type1 y ESv3_Type1.During the preview, we will support the following host SKU values: DSv3_Type1 and ESv3_Type1.

Para obtener más información sobre los precios y los SKU de host, consulte Precios de hosts dedicados de Azure.For more information about the host SKUs and pricing, see Azure Dedicated Host pricing.

Use az vm host create para crear un host.Use az vm host create to create a host. Si establece un número de dominios de error para el grupo host, se le pedirá que especifique el dominio de error para su host.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

Creación de una máquina virtualCreate a virtual machine

Cree una máquina virtual en un host dedicado mediante az vm create.Create a virtual machine within a dedicated host using az vm create. Si especificó una zona de disponibilidad al crear el grupo host, debe usar la misma zona al crear la máquina virtual.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

Advertencia

Si crea una máquina virtual en un host que no tenga suficientes recursos, la máquina virtual se creará en un estado de error.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.

Comprobación del estado del hostCheck the status of the host

az vm host get-instance-view permite comprobar el estado de mantenimiento del host y el número de máquinas virtuales que todavía se pueden implementar.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

El resultado será similar al siguiente: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"
    }
  ]
}

Exportar como plantillaExport as a template

Si ahora quiere crear un entorno de desarrollo adicional con los mismos parámetros, o un entorno de producción que coincida, puede exportar una plantilla.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. Resource Manager usa plantillas JSON que definen todos los parámetros de su entorno.Resource Manager uses JSON templates that define all the parameters for your environment. Puede crear entornos enteros haciendo referencia a esta plantilla JSON.You build out entire environments by referencing this JSON template. Puede compilar plantillas JSON manualmente o exportar un entorno existente para que la plantilla JSON se cree automáticamente.You can build JSON templates manually or export an existing environment to create the JSON template for you. Use az group export para exportar su grupo de recursos.Use az group export to export your resource group.

az group export --name myDHResourceGroup > myDHResourceGroup.json 

Este comando crea el archivo myDHResourceGroup.json en el directorio de trabajo actual.This command creates the myDHResourceGroup.json file in your current working directory. Al crear un entorno a partir de esta plantilla, se le piden todos los nombres de recursos.When you create an environment from this template, you are prompted for all the resource names. Puede rellenar estos nombres en el archivo de plantilla si agrega el parámetro --include-parameter-default-value al comando 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. Edite la plantilla JSON para especificar los nombres de los recursos o cree un archivo parameters.json que especifique los nombres de estos.Edit your JSON template to specify the resource names, or create a parameters.json file that specifies the resource names.

Para crear un entorno a partir de la plantilla, use 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 

LimpiezaClean up

Aunque no se implementen máquinas virtuales, se le cobrará por los hosts dedicados.You are being charged for your dedicated hosts even when no virtual machines are deployed. Elimine los hosts que no use actualmente para ahorrar costos.You should delete any hosts you are currently not using to save costs.

Solo se puede eliminar un host cuando no haya ninguna máquina virtual que lo use.You can only delete a host when there are no any longer virtual machines using it. Elimine las máquinas virtuales con az vm delete.Delete the VMs using az vm delete.

az vm delete -n myVM -g myDHResourceGroup

Después de eliminar las máquinas virtuales, puede eliminar el host mediante 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 

Una vez que haya eliminado todos los hosts, puede eliminar el grupo host con 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  

También puede eliminar todo el grupo de recursos con un solo comando.You can also delete the entire resource group in a single command. Se eliminarán todos los recursos creados en el grupo, lo que incluye las máquinas virtuales, los hosts y los grupos host.This will delete all resources created in the group, including all of the VMs, hosts and host groups.

az group delete -n myDHResourceGroup 

Pasos siguientesNext steps

  • Para más detalles, consulte la información general Hosts dedicados.For more information, see the Dedicated hosts overview.

  • También se pueden crear hosts dedicados con Azure Portal.You can also create dedicated hosts using the Azure portal.

  • En este vínculo encontrará una plantilla de ejemplo en la que se usan zonas y dominios de error para obtener la máxima resistencia en una región.There is sample template, found here, that uses both zones and fault domains for maximum resiliency in a region.