Deploy VMs and scale sets to dedicated hosts

Applies to: ✔️ Linux VMs ✔️ Windows VMs ✔️ Uniform scale sets

This article guides you through how to create an Azure dedicated host to host your virtual machines (VMs) and scale set instances.

Limitations

  • The sizes and hardware types available for dedicated hosts vary by region. Refer to the host pricing page to learn more.
  • Not all Azure VM SKUs, regions and availability zones support ultra disks, for more information about this topic, see Azure ultra disks.
  • Additional limitations would apply when using ultra disks on the following VM sizes: LSv2, M, Mv2, Msv2, Mdsv2, NVv3, NVv4 on a dedicated host.
  • The fault domain count of the virtual machine scale set can't exceed the fault domain count of the host group.
  • Users can not select hardware capabilities like accelerated networking when creating a dedicated host.
  • Users would not be able to create VMs/VMSS with accelerated networking enabled on a dedicated host.

Create a host group

A host group is a resource that represents a collection of dedicated hosts. You create a host group in a region and an availability zone, and add hosts to it. You can use one or both of the following options with your dedicated hosts to ensure high availability:

  • Span across multiple availability zones. In this case, you're required to have a host group in each of the zones you wish to use.
  • Span across multiple fault domains, which are mapped to physical racks.

In either case, you need to provide the fault domain count for your host group. If you don't want to span fault domains in your group, use a fault domain count of 1.

You can also decide to use both availability zones and fault domains.

Enabling ultra disks is a host group level setting and can't be changed after a host group is created.

In this example, we'll create a host group using one availability zone and two fault domains.

  1. Open the Azure portal.
  2. Select Create a resource in the upper left corner.
  3. Search for Host group and then select Host Groups from the results.
  4. In the Host Groups page, select Create.
  5. Select the subscription you would like to use, and then select Create new to create a new resource group.
  6. Type myDedicatedHostsRG as the Name and then select OK.
  7. For Host group name, type myHostGroup.
  8. For Location, select East US.
  9. For Availability Zone, select 1.
  10. Select Enable Ultra SSD to use ultra disks with supported Virtual Machines.
  11. For Fault domain count, select 2.
  12. Select Automatic placement to automatically assign VMs and scale set instances to an available host in this group.
  13. Select Review + create and then wait for validation.
  14. Once you see the Validation passed message, select Create to create the host group.

It should only take a few moments to create the host group.

Create a dedicated host

Now create a dedicated host in the host group. In addition to a name for the host, you're required to provide the SKU for the host. Host SKU captures the supported VM series and the hardware generation for your dedicated host.

For more information about the host SKUs and pricing, see Azure Dedicated Host pricing.

If you set a fault domain count for your host group, you'll need to specify the fault domain for your host.

  1. Select Create a resource in the upper left corner.
  2. Search for Dedicated host and then select Dedicated hosts from the results.
  3. In the Dedicated Hosts page, select Create.
  4. Select the subscription you would like to use.
  5. Select myDedicatedHostsRG as the Resource group.
  6. In Instance details, type myHost for the Name and select East US for the location.
  7. In Hardware profile, select Standard Es3 family - Type 1 for the Size family, select myHostGroup for the Host group and then select 1 for the Fault domain. Leave the defaults for the rest of the fields.
  8. Leave the Automatically replace host on failure setting Enabled to automatically service heal the host in case of any host level failure.
  9. When you're done, select Review + create and wait for validation.
  10. Once you see the Validation passed message, select Create to create the host.

Create a VM

Now create a VM on the host.

If you would like to create a VM with ultra disks support, make sure the host group in which the VM will be placed is ultra SSD enabled. Once you've confirmed, create the VM in the same host group. See Deploy an ultra disk for the steps to attach an ultra disk to a VM.

  1. Choose Create a resource in the upper left corner of the Azure portal.
  2. In the search box above the list of Azure Marketplace resources, search for and select the image you want use, then choose Create.
  3. In the Basics tab, under Project details, make sure the correct subscription is selected and then select myDedicatedHostsRG as the Resource group.
  4. Under Instance details, type myVM for the Virtual machine name and choose East US for your Location.
  5. In Availability options select Availability zone, select 1 from the drop-down.
  6. For the size, select Change size. In the list of available sizes, choose one from the Esv3 series, like Standard E2s v3. You may need to clear the filter in order to see all of the available sizes.
  7. Complete the rest of the fields on the Basics tab as needed.
  8. If you want to specify which host to use for your VM, then at the top of the page, select the Advanced tab and in the Host section, select myHostGroup for Host group and myHost for the Host. Otherwise, your VM will automatically be placed on a host with capacity. Select host group and host
  9. Leave the remaining defaults and then select the Review + create button at the bottom of the page.
  10. When you see the message that validation has passed, select Create.

It will take a few minutes for your VM to be deployed.

Create a scale set

You can also create a scale set on your host.

Important

Starting November 2023, VM scale sets created using PowerShell and Azure CLI will default to Flexible Orchestration Mode if no orchestration mode is specified. For more information about this change and what actions you should take, go to Breaking Change for VMSS PowerShell/CLI Customers - Microsoft Community Hub

When you deploy a scale set, you specify the host group.

  1. Search for Scale set and select Virtual machine scale sets from the list.
  2. Select Add to create a new scale set.
  3. Complete the fields on the Basics tab as you usually would, but make sure you select a VM size that is from the series you chose for your dedicated host, like Standard E2s v3.
  4. On the Advanced tab, for Spreading algorithm select Max spreading.
  5. In Host group, select the host group from the drop-down. If you recently created the group, it might take a minute to get added to the list.

Reassign an existing VM

You can add reassign an existing multitenant VM or dedicated host VM to a different dedicated host, but the VM must first be Stop\Deallocated. Before you move a VM to a dedicated host, make sure that the VM configuration is supported:

  • The VM size must be in the same size family as the dedicated host. For example, if your dedicated host is DSv3, then the VM size could be Standard_D4s_v3, but it couldn't be a Standard_A4_v2.

  • The VM needs to be located in same region as the dedicated host.

  • The VM can't be part of a proximity placement group. Remove the VM from the proximity placement group before moving it to a dedicated host. For more information about this topic, see Move a VM out of a proximity placement group.

  • The VM can't be in an availability set.

  • If the VM is in an availability zone, it must be the same availability zone as the host group. The availability zone settings for the VM and the host group must match.

Move the VM to a dedicated host using the portal.

  1. Open the page for the VM.
  2. Select Stop to stop\deallocate the VM.
  3. Select Configuration from the left menu.
  4. Select a host group and a host from the drop-down menus.
  5. When you're done, select Save at the top of the page.
  6. After the VM has been added to the host, select Overview from the left menu.
  7. At the top of the page, select Start to restart the VM.

Move a VM from dedicated host to multitenant infrastructure

You can move a VM that is running on a dedicated host to multitenant infrastructure, but the VM must first be Stop\Deallocated.

  • Make sure that your subscription has sufficient vCPU quota for the VM in the region where
  • Your multitenant VM will be scheduled in the same region and zone as the dedicated host

Move a VM from dedicated host to multitenant infrastructure using the portal.

  1. Open the page for the VM.
  2. Select Stop to stop\deallocate the VM.
  3. Select Configuration from the left menu.
  4. Select None under host group drop-down menu.
  5. When you're done, select Save at the top of the page.
  6. After the VM has been reconfigured as a multitenant VM, select Overview from the left menu.
  7. At the top of the page, select Start to restart the VM.

Check the status of the host

If you need to know how much capacity is still available on a how, you can check the status.

  1. Search for and select the host.
  2. In the Overview page for the host, scroll down to see the list of sizes still available for the host. It should look similar to:

Check the available capacity of the host from the overview page for the host.

Restart a host

Restarting a host does not completely power off the host. When the host restarts, the underlying VMs will also restart. The host will remain on the same underlying physical hardware and both the host ID and asset ID will remain the same after the restart. The host SKU will also remain the same after the restart.

  1. Search for and select the host.
  2. In the top menu bar, select the Restart button.
  3. In the Essentials section of the Host Resource Pane, Host Status will switch to Host undergoing restart during the restart.
  4. Once the restart has completed, the Host Status will return to Host available.

Resize a host

Moving a host and all associated VMs to newer generation hardware can be done through the host resize feature. Resize simplifies the migration process and avoids having to manually create new hosts and move all VMs individually.

Resize limitations:

  • Host can only be resized to an ADH within the same VM family. A Dsv3-Type3 host can be resized to Dsv3-Type4 but not to an Esv3-Type4.
  • You can only resize to newer generation of hardware. A Dsv3-Type3 host can be resized to Dsv3-Type4 but not Dsv3-Type2.
  • Resizing changes the 'Host Asset ID'. The 'Host ID' remains the same.
  • The host and all associated VMs become unavailable during the resize operation.

Warning

The resize operation causes the loss of any non-persistent data such as temp disk data. Save all your work to persistent data storage before triggering resize.

Note

If the source host is already running on the latest hardware, 'Size' page would display an empty list. If you're looking for enhanced performance, consider switching to a different VM family.

  1. Search for and select the host.
  2. In the left menu under Settings, select Size.
  3. Once on the size page from the list of SKUs, select the desired SKU to resize to.
  4. Selecting a target size from the list would enable Resize button on the bottom on the page.
  5. Click Resize, host's 'Provisioning State' changes from 'Provisioning Succeeded' to 'Updating'
  6. Once the resizing is complete, the host's 'Provisioning State' reverts to 'Provisioning Succeeded'

Deleting a host

You're being charged for your dedicated host even when no virtual machines are deployed on the host. You should delete any hosts you're currently not using to save costs.

You can only delete a host when there are no any longer virtual machines using it.

  1. Search for and select the host.
  2. In the left menu, select Instances.
  3. Select and delete each virtual machine.
  4. When all of the VMs have been deleted, go back to the Overview page for the host and select Delete from the top menu.
  5. Once the host has been deleted, open the page for the host group and select Delete host group.

Next steps

  • For more information about this topic, see the Dedicated hosts overview.

  • There's sample template, available at Azure Quickstart Templates, which uses both zones and fault domains for maximum resiliency in a region.