Azure Stack VM features

Applies to: Azure Stack integrated systems and Azure Stack Development Kit

Azure Stack virtual machines (VMs) provide on-demand, scalable computing resources. Before you deploy VMs, you should understand the differences between the VM features available in Azure Stack and Microsoft Azure. This article describes these differences and identifies key considerations for planning VM deployments. To learn about high-level differences between Azure Stack and Azure, see the Key considerations article.

VM differences

Feature Azure (global) Azure Stack
Virtual machine images The Azure Marketplace contains images that you can use to create a VM. See the Azure Marketplace page to view the list of images that are available in the Azure Marketplace. By default, there aren't any images available in the Azure Stack marketplace. The Azure Stack cloud admin must publish or download images to the Azure Stack marketplace before users can use them.
Virtual machine sizes Azure supports a wide variety of sizes for VMs. To learn about the available sizes and options, refer to the Windows VMs sizes and Linux VM sizes topics. Azure Stack supports a subset of VM sizes that are available in Azure. To view the list of supported sizes, refer to the VM sizes section of this article.
Virtual machine quotas Quota limits are set by Microsoft. The Azure Stack cloud admin must assign quotas before they offer VM to their users.
Virtual machine extensions Azure supports a wide variety of VM extensions. To learn about the available extensions, refer to the VM extensions and features article. Azure Stack supports a subset of extensions that are available in Azure and each of the extensions have specific versions. The Azure Stack cloud admin can choose which extensions to be made available to for their users. To view the list of supported extensions, refer to the VM extensions section of this article.
Virtual machine network Public IP addresses assigned to a tenant VM are accessible over the Internet.


Azure VMs have a fixed DNS name.
Public IP addresses assigned to a tenant VM are accessible within the Azure Stack Development Kit environment only. A user must have access to the Azure Stack Development Kit via RDP or VPN to connect to a VM that is created in Azure Stack.

VMs created within a specific Azure Stack instance have a DNS name based on the value that is configured by the cloud admin.
Virtual machine storage Supports managed disks. Managed disks are supported in Azure Stack with version 1808 and later.
Virtual machine disk performance Depends on disk type and size. Depends on VM size of the VM which the disks are attached to. For more info, refer to the VM sizes supported in Azure Stack article.
API versions Azure always has the latest API versions for all the VM features. Azure Stack supports specific Azure services and specific API versions for these services. To view the list of supported API versions, refer to the API versions section of this article.
Azure Instance Metadata Service The Azure Instance Metadata Service provides info about running VM instances that can be used to manage and configure your VM. The Azure Instance Metadata Service isn't supported on Azure Stack.
Virtual machine availability sets Multiple fault domains (2 or 3 per region).
Multiple update domains.
Multiple fault domains (2 or 3 per region).
Multiple update domains (up to 20).
Virtual machine scale sets Autoscale is supported. Autoscale isn't supported.

Add more instances to a scale set using the portal, Resource Manager templates, or PowerShell.
Virtual machine diagnostics Linux VM diagnostics are supported. Linux VM diagnostics aren't supported in Azure Stack. When you deploy a Linux VM with VM diagnostics enabled, the deployment fails. The deployment also fails if you enable the Linux VM basic metrics through diagnostic settings.

VM sizes

Azure Stack imposes resource limits to avoid over consumption of resources (server local and service-level.) These limits improve the tenant experience by reducing the impact of resource consumption by other tenants.

  • For networking egress from the VM, there are bandwidth caps in place. Caps in Azure Stack are the same as the caps in Azure.
  • For storage resources, Azure Stack implements storage IOPS (Input/Output Operations Per Second) limits to avoid basic overconsumption of resources by tenants for storage access.
  • For VM disks, disk IOPS on Azure Stack is a function of VM size instead of the disk type. This means that for a Standard_Fs series VM, regardless of whether you choose SSD or HDD for the disk type, the IOPS limit for a single additional data disk is 2300 IOPS.

The following table lists the VMs that are supported on Azure Stack along with their configuration:

Type Size Range of supported sizes
General purpose Basic A A0 - A4
General purpose Standard A A0 - A7
General purpose D-series D1 - D4
General purpose Dv2-series D1_v2 - D5_v2
General purpose DS-series DS1 - DS4
General purpose DSv2-series DS1_v2 - DS5_v2
Memory optimized D-series D11 - D14
Memory optimized DS-series DS11 - DS14
Memory optimized Dv2-series D11_v2 - DS14_v2
Memory optimized DSv2-series - DS11_v2 - DS14_v2

VM sizes and their associated resource quantities are consistent between Azure Stack and Azure. This consistency includes the amount of memory, the number of cores, and the number/size of data disks that can be created. However, performance of VMs with the same size depends on the underlying characteristics of a particular Azure Stack environment.

VM extensions

Azure Stack includes a small set of extensions. Updates and additional extensions are available through Marketplace syndication.

Use the following PowerShell script to get the list of VM extensions that are available in your Azure Stack environment:

Get-AzureRmVmImagePublisher -Location local | `
  Get-AzureRmVMExtensionImageType | `
  Get-AzureRmVMExtensionImage | `
  Select Type, Version | `
  Format-Table -Property * -AutoSize

If provisioning an extension on a VM deployment takes too long, let the provisioning timeout instead of trying to stop the process to deallocate or delete the VM.

API versions

VM features in Azure Stack support the following API versions:

VM resource types

You can use the following PowerShell script to get the API versions for the VM features that are available in your Azure Stack environment:

Get-AzureRmResourceProvider | `
  Select ProviderNamespace -Expand ResourceTypes | `
  Select * -Expand ApiVersions | `
  Select ProviderNamespace, ResourceTypeName, @{Name="ApiVersion"; Expression={$_}} | `
  where-Object {$_.ProviderNamespace -like "Microsoft.compute"}

The list of supported resource types and API versions may vary if the cloud operator updates your Azure Stack environment to a newer version.

Windows activation

Windows products must be used in accordance with Product Use Rights and Microsoft license terms. Azure Stack uses Automatic VM Activation (AVMA) to activate Windows Server VMs.

  • Azure Stack host activates Windows with AVMA keys for Windows Server 2016. All VMs that run Windows Server 2012 R2 or later are automatically activated.
  • VMs that run Windows Server 2012 or earlier aren't automatically activated and must be activated by using MAK activation. To use MAK activation, you must provide your own product key.

Microsoft Azure uses KMS activation to activate Windows VMs. If you move a VM from Azure Stack to Azure and encounter activation problems, see Troubleshoot Azure Windows VM activation problems. Additional info can be found at the Troubleshooting Windows activation failures on Azure VMs Azure Support Team Blog post.

Next steps

Create a Windows VM with PowerShell in Azure Stack