Skip to content

Commit 534dc5f

Browse files
Merge pull request #36410 from MashaMSFT/202601_sqlvmsize
SQL VM UAT retrieval risk testing
2 parents fa4b829 + 9087fac commit 534dc5f

11 files changed

Lines changed: 442 additions & 125 deletions

azure-sql/includes/sql-vm-deployment-failure.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ ms.service: sql
66
ms.topic: include
77
---
88
> [!WARNING]
9-
> Placing `tempdb` on the local temp disk for Azure VM images with uninitialized ephemeral disks isn't supported. Deployments through the Azure portal might fail, and SQL Server can fail to start. Either use a different VM size, or place `tempdb` on non-ephemeral storage both when you deploy the SQL Server image through the Azure portal, and when you install SQL Server manually. To learn more, review [VM deployment and SQL Server failures](/troubleshoot/sql/azure-sql/sql-deployment-fails-drive-not-ready).
9+
> Placing `tempdb` on the local temp disk for Azure VM images with uninitialized ephemeral disks, such as the **FXmdsv2**, isn't supported. This issue only affects Azure Virtual Machines with the new NVMe interface that also has local ephemeral storage. These deployments through the Azure portal might fail, and SQL Server can fail to start. Either use a different VM series, or place `tempdb` on non-ephemeral storage both when you deploy the SQL Server image through the Azure portal, and when you install SQL Server manually. To learn more more about the issue and also see a list of impacted VMs, review [VM deployment and SQL Server failures](/troubleshoot/sql/azure-sql/sql-deployment-fails-drive-not-ready).

azure-sql/includes/virtual-machines-best-practices-vm-size.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,17 @@ ms.date: 01/23/2026
66
ms.service: virtual-machines
77
ms.topic: include
88
ms.custom:
9-
- ignite-2024
109
---
11-
- Identify workload performance characteristics to determine the appropriate VM size for your business.
10+
- Before choosing a VM size, configure your [storage](../virtual-machines/windows/performance-guidelines-best-practices-storage.md). Collect a [baseline](../virtual-machines/windows/performance-guidelines-best-practices-collect-baseline.md) from your source environment under the highest stress conditions and then configure your storage based on the IOPS and throughput needs of your workload with a 20% buffer for future growth.
11+
- Identify workload performance characteristics ([OLTP](/azure/architecture/data-guide/relational-data/online-transaction-processing) vs [OLAP](/azure/architecture/data-guide/relational-data/online-analytical-processing), workload size) to determine the appropriate VM size for your business.
1212
- If you're migrating to Azure, [assess migration readiness](/sql/sql-server/azure-arc/migration-assessment) to find the right VM size for your existing SQL Server workload, and then migrate with [Azure Database Migration Service](/azure/dms/dms-overview).
1313
- Use Azure Marketplace images to deploy your SQL Server VMs as the SQL Server settings and storage options are configured for optimal performance.
14-
- Use VM sizes with 4 or more vCPUs.
14+
- Use VM sizes with 4 or more vCores.
1515
- Use memory optimized virtual machine sizes for the best performance of SQL Server workloads.
16-
- The [Edsv5-series](../virtual-machines/windows/performance-guidelines-best-practices-vm-size.md#edsv5-series), and the [Msv3 and Mdsv3-series](../virtual-machines/windows/performance-guidelines-best-practices-vm-size.md#msv3-and-mdsv3-series) offer an optimal memory-to-vCore ratio recommended for OLTP workloads.
17-
- The [Mbdsv3-series VMs](../virtual-machines/windows/performance-guidelines-best-practices-vm-size.md#mbsv3-and-mbdsv3-series) offer the best performance for SQL Server workloads on Azure VMs. Consider this series first for mission critical OLTP and data warehouse SQL Server workloads.
18-
- The [Ebdsv5-series](../virtual-machines/windows/performance-guidelines-best-practices-vm-size.md#ebdsv5-series) provides a high I/O throughput-to-vCore ratio, along with a memory-to-vCore ratio of 8:1. This series offers the best price-performance for SQL Server workloads on Azure VMs. Consider these VMs first for most SQL Server workloads.
19-
- The [M-series family](../virtual-machines/windows/performance-guidelines-best-practices-vm-size.md#memory-optimized-m-series-vms) offers VMs with the highest memory allocation in Azure.
20-
- The [Mbsv3 and Mbdsv3 series](../virtual-machines/windows/performance-guidelines-best-practices-vm-size.md#mbsv3-and-mbdsv3-series) VMs provide a high memory allocation and the highest I/O throughput-to-vCore ratio amongst the M-series family, along with a consistent memory-to-vCore ratio of at least 8:1.
21-
- Start development environments with the lower-tier D-Series, B-Series, or Av2-series and grow your environment over time.
16+
- The [Mbdsv3-series](../virtual-machines/windows/performance-guidelines-best-practices-vm-size.md#mbdsv3-series) offers the best overall performance for mission critical OLTP and data warehouse workloads.
17+
- The [Ebdsv5-series](../virtual-machines/windows/performance-guidelines-best-practices-vm-size.md#ebdsv5-series) provides the best price-performance for most production SQL Server workloads.
18+
- The [Easv7-series](../virtual-machines/windows/performance-guidelines-best-practices-vm-size.md#easv7-series) and [Msv3/Mdsv3-series](../virtual-machines/windows/performance-guidelines-best-practices-vm-size.md#msv3-and-mdsv3-medium-memory-series) are optimized for memory-intensive workloads.
19+
- The [M-series family](../virtual-machines/windows/performance-guidelines-best-practices-vm-size.md#memory-optimized-m-series-vms) offers the highest memory configurations in Azure for the largest workloads.
20+
- Start development environments with the lower-tier D-Series, or B-Series, and grow your environment over time.
2221
- Check [VM supportability](../virtual-machines/windows/performance-guidelines-best-practices-vm-size.md#supportability) to avoid unsupported configurations.
23-
- Use [VM vCore customization](../virtual-machines/windows/performance-guidelines-best-practices-vm-size.md#vm-vcore-customization) to appropriately allocate vCPUs for your workload and VM and reduce SQL Server licensing costs.
22+
- Use [VM vCore customization](../virtual-machines/windows/performance-guidelines-best-practices-vm-size.md#vm-vcore-customization) to appropriately allocate vCPUs for your workload and VM and reduce SQL Server licensing costs, as well as disable SMT/hyperthreading settings for optimal SQL Server performance.

azure-sql/virtual-machines/windows/availability-group-manually-configure-multiple-regions.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,9 @@ In the following steps, configure the **ad-remote-dc** machine as a domain contr
166166

167167
#### Set preferred DNS server address
168168

169-
The preferred DNS server address [shouldn't be updated](/azure/virtual-network/virtual-networks-name-resolution-for-vms-and-role-instances#specify-dns-servers) directly within a VM, it should be edited from the [Azure portal, or PowerShell, or Azure CLI](/azure/virtual-network/virtual-network-network-interface?tabs=network-interface-portal#change-dns-servers). The following steps make this change inside of the Azure portal:
169+
When you update the preferred DNS server, use the Azure portal, PowerShell, or the Azure CLI. Don't update the DNS server [directly within the VM](/azure/virtual-network/virtual-networks-name-resolution-for-vms-and-role-instances#specify-dns-servers).
170+
171+
To set the preferred DNS server address by using the Azure portal, follow these steps:
170172

171173
1. Sign-in to the [Azure portal](https://portal.azure.com).
172174

@@ -211,7 +213,7 @@ Once your server is joined to the domain, you can configure it as the second dom
211213
1. In the **Action** column of the **All Server Task Details** dialog, select **Promote this server to a domain controller**.
212214
1. Under **Deployment Configuration**, select **Add a domain controller to an existing domain**.
213215
1. Select **Select**.
214-
1. Connect by using the administrator account (**CORP\domainadmin**).
216+
1. Connect by using the administrator account (**CORP\DomainAdmin**).
215217
1. In **Select a domain from the forest**, choose your domain and then select **OK**.
216218
1. In **Domain Controller Options**, use the default values and set a DSRM password.
217219

azure-sql/virtual-machines/windows/availability-group-quickstart-template-configure.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ You can validate the cluster using Failover Cluster Manager (FCM) or the followi
105105
Manually create the availability group as you normally would, by using [SQL Server Management Studio](/sql/database-engine/availability-groups/windows/use-the-availability-group-wizard-sql-server-management-studio), [PowerShell](/sql/database-engine/availability-groups/windows/create-an-availability-group-sql-server-powershell), or [Transact-SQL](/sql/database-engine/availability-groups/windows/create-an-availability-group-transact-sql).
106106

107107
> [!IMPORTANT]
108-
> Do *not* create a listener at this time, because the **101-sql-vm-aglistener-setup** quickstart template does that automatically in step 4.
108+
> Do *not* create a listener at this time, because the **101-sql-vm-aglistener-setup** quickstart template does that automatically in a later step.
109109
110110
## Create load balancer
111111

@@ -204,7 +204,8 @@ This section discusses some known issues and their possible resolution.
204204
The selected availability group used in the Azure quickstart template for the availability group listener already contains a listener. Either it is physically within the availability group, or its metadata remains within the SQL IaaS Agent extension. Remove the listener by using [PowerShell](#remove-listener) before redeploying the **101-sql-vm-aglistener-setup** quickstart template.
205205

206206
### Connection only works from primary replica
207-
This behavior is likely from a failed **101-sql-vm-aglistener-setup** template deployment that has left the configuration of the internal load balancer in an inconsistent state. Verify that the backend pool lists the availability set, and that rules exist for the health probe and for the load-balancing rules. If anything is missing, the configuration of the internal load balancer is an inconsistent state.
207+
208+
This behavior is likely from a failed **101-sql-vm-aglistener-setup** template deployment that left the configuration of the internal load balancer in an inconsistent state. Verify that the backend pool lists the availability set, and that rules exist for the health probe and for the load-balancing rules. If anything is missing, the configuration of the internal load balancer is in an inconsistent state.
208209

209210
To resolve this behavior, remove the listener by using [PowerShell](#remove-listener), delete the internal load balancer via the Azure portal, and start again at step 3.
210211

azure-sql/virtual-machines/windows/doc-changes-updates-release-notes-whats-new-archive.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Return to [What's new in SQL Server on Azure VMs?](doc-changes-updates-release-n
4040

4141
| Changes | Month | Details |
4242
| --- | --- | --- |
43-
| **Mbsv3 and Mbdsv3 VM series GA** | November | A powerful new VM series that currently delivers one of the highest IOPS and GB throughput, with substantial vCore and memory options. This VM series is now generally available. Review [Mbsv3 and Mbdsv3 series](performance-guidelines-best-practices-vm-size.md#mbsv3-and-mbdsv3-series) to learn more. |
43+
| **Mbsv3 and Mbdsv3 VM series GA** | November | A powerful new VM series that currently delivers one of the highest IOPS and GB throughput, with substantial vCore and memory options. This VM series is now generally available. Review [Mbsv3 and Mbdsv3 series](performance-guidelines-best-practices-vm-size.md#mbdsv3-series) to learn more. |
4444
| **Microsoft Entra authentication in any cloud**| October | It's now possible to configure Microsoft Entra authentication for your SQL Server on Azure VMs in any cloud. Review [Microsoft Entra authentication](configure-azure-ad-authentication-for-sql-vm.md) to learn more. |
4545
| **Azure Key Vault Managed Hardware Security Module (HSM) support with Extensible Key Management**| September | Azure Key Vault Managed HSM is supported for SQL Server and SQL Server on Azure VMs when using the latest version of the SQL Server Connector, as well as Azure SQL. For more information, see [Set up SQL Server TDE Extensible Key Management by using Azure Key Vault](/sql/relational-databases/security/encryption/setup-steps-for-extensible-key-management-using-the-azure-key-vault). |
4646
|**Automated patching retirement** | September | The [automated patching](automated-patching.md) feature will retire. Currently scheduled for September 17, 2027. Migrate to [Azure Update Manager](../azure-update-manager-sql-vm.md) as soon as possible to continue receiving new updates to the patching feature for your SQL Server on Azure VM and avoid future service disruptions. |

azure-sql/virtual-machines/windows/doc-changes-updates-release-notes-whats-new.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ The following table lists features of SQL Server on Azure VMs that have been mad
5252
| [Azure Elastic SAN](storage-configuration-azure-elastic-san.md) | March 2025 | Place your SQL Server workloads on an Azure Elastic SAN for improved performance, throughput, and cost. |
5353
| [FCI with Azure Elastic SAN](failover-cluster-instance-azure-elastic-san-manually-configure.md) | March 2025 | Deploy your SQL Server failover cluster instance (FCI) by using an Azure Elastic SAN. |
5454
| [Managed identity support for SQL Server 2022 on Azure VM](managed-identity-extensible-key-management.md) | January 2025 | Starting with SQL Server 2022 Cumulative Update 17 (CU17), managed identities are supported for SQL Server on Azure VMs (Windows only). Managed identities can be used with [SQL Server credentials](/sql/t-sql/statements/create-credential-transact-sql) to [back up to and restore SQL Server on Azure VM databases from Azure Blob storage](backup-restore-to-url-using-managed-identities.md). Support for managed identities also enables functionalities like [Extensible Key Management (EKM) with Azure Key Vault (AKV) and Managed Hardware Security Modules (HSM)](managed-identity-extensible-key-management.md) to be used with SQL Server on Azure VMs. |
55-
| [Mbv3 VM series](performance-guidelines-best-practices-vm-size.md#mbsv3-and-mbdsv3-series) | November 2024 | A powerful new VM series that currently delivers a high level of IOPs and GB throughput, with strong memory capabilities up to the 176 vCore count for a consistent 8:1 memory-to-vCore ratio in this series. Both VMs in the series offer a consistent 64 maximum data disks per VM size, allowing you to maximize storage performance and still allow fully scalability across the table. The Mbdsv3 VMs in the series have the highest IOPS and GB throughput VMs available in Azure and can scale up to 4 TiBs at the 176 vCore level.|
55+
| [Mbv3 VM series](performance-guidelines-best-practices-vm-size.md#mbdsv3-series) | November 2024 | A powerful new VM series that currently delivers a high level of IOPs and GB throughput, with strong memory capabilities up to the 176 vCore count for a consistent 8:1 memory-to-vCore ratio in this series. Both VMs in the series offer a consistent 64 maximum data disks per VM size, allowing you to maximize storage performance and still allow fully scalability across the table. The Mbdsv3 VMs in the series have the highest IOPS and GB throughput VMs available in Azure and can scale up to 4 TiBs at the 176 vCore level.|
5656
| [Azure Update Manager](../azure-update-manager-sql-vm.md) | April 2024 | Automatically patch multiple SQL Server VMs at scale with the Azure Update Manager integrated in to the [SQL virtual machines](manage-sql-vm-portal.md) resource in the Azure portal, including Cumulative Updates. |
5757

5858
## Documentation changes

azure-sql/virtual-machines/windows/hadr-cluster-best-practices.md

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ To get started, see [Configure cluster quorum](hadr-cluster-quorum-configure-how
6161

6262
## Quorum Voting
6363

64-
It's possible to change the quorum vote of a node participating in a Windows Server Failover Cluster (cluster administrator required, optional for advanced configurations).
64+
It's possible to change the quorum vote of a node participating in a Windows Server Failover Cluster (cluster administrator required, optional for advanced configurations).
6565

6666
When modifying the node vote settings, follow these guidelines:
6767

@@ -75,6 +75,26 @@ When modifying the node vote settings, follow these guidelines:
7575
| Have an odd number of votes, with three quorum votes minimum. Add a [quorum witness](hadr-cluster-quorum-configure-how-to.md) for an additional vote if necessary in a two-node cluster. |
7676
| Reassess vote assignments post-failover. You don't want to fail over into a cluster configuration that doesn't support a healthy quorum. |
7777

78+
You can adjust quorum voting using Failover Cluster Manager or PowerShell:
79+
80+
```powershell
81+
Import-Module FailoverClusters
82+
83+
$node = "AlwaysOnSrv1"
84+
(Get-ClusterNode $node).NodeWeight = 0
85+
86+
$cluster = (Get-ClusterNode $node).Cluster
87+
$nodes = Get-ClusterNode -Cluster $cluster
88+
89+
$nodes | Format-Table -property NodeName, State, NodeWeight
90+
```
91+
92+
You can also use cluster.exe in an elevated command prompt:
93+
94+
```
95+
cluster.exe Cluster001 node AlwaysOnSrv1 /prop NodeWeight=0
96+
```
97+
7898
## Connectivity
7999

80100
To match the on-premises experience for connecting to your availability group listener or failover cluster instance, deploy your SQL Server VMs to multiple subnets within the same virtual network. Having multiple subnets negates the need for the extra dependency on an Azure Load Balancer, or a distributed network name (DNN) to route your traffic to your listener.
@@ -416,7 +436,7 @@ For more information, review [Troubleshooting cluster issue with Event ID 1135](
416436

417437
### Lease expiration errors
418438

419-
If [monitoring](#relaxed-monitoring) is too aggressive for your environment, you might see frequent availability group or FCI restarts, failures, or failovers.
439+
If monitoring is too aggressive for your environment, you might see frequent availability group or FCI restarts, failures, or failovers.
420440

421441
#### Symptoms
422442

@@ -434,6 +454,10 @@ Error 19419: The renewal of the lease between availability group '%.*ls' and the
434454
failed because the existing lease is no longer valid.
435455
```
436456

457+
### Resolution
458+
459+
Adjust your monitoring settings as described in the [Relaxed monitoring](#relaxed-monitoring) section.
460+
437461
### Connection timeout errors
438462

439463
If the **session timeout** is too aggressive for your availability group environment, you might experience connection failures.
@@ -455,6 +479,10 @@ replica 'replicaname' with ID [availability_group_id]. Either a networking or a
455479
exists, or the availability replica has transitioned to the resolving role.
456480
```
457481

482+
#### Resolution
483+
484+
Adjust your session timeout as described in the [Relaxed monitoring](#relaxed-monitoring) section.
485+
458486
### Group not failing over
459487

460488
If the **Maximum Failures in the Specified Period** value is too low and you're experiencing intermittent failures due to transient issues, your availability group could end in a failed state.
@@ -467,7 +495,7 @@ Not failing over group <Resource name>, failoverCount 3, failoverThresholdSettin
467495

468496
#### Resolution
469497

470-
Increase the **Maximum Failures in the Specified Period** value to tolerate more transient failures.
498+
Adjust your monitoring, session timeout, and increase the **Maximum Failures in the Specified Period** value to tolerate more transient failures.
471499

472500
### Event 1196 - Network name resource failed DNS registration
473501

azure-sql/virtual-machines/windows/hadr-cluster-quorum-configure-how-to.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,8 @@ You can also use the Failover Cluster manager; follow the same steps as for the
176176

177177
It's possible to change the quorum vote of a node participating in a Windows Server Failover Cluster.
178178

179+
For details, review [WSFC quorum modes and voting configuration](/sql/sql-server/failover-clusters/windows/wsfc-quorum-modes-and-voting-configuration-sql-server).
180+
179181
When modifying the node vote settings, follow these guidelines:
180182

181183
| Quorum voting guidelines |
@@ -188,6 +190,26 @@ When modifying the node vote settings, follow these guidelines:
188190
| Have an odd number of votes, with three quorum votes minimum. If necessary, add a [Quorum witness](hadr-cluster-quorum-configure-how-to.md) for a third vote in a two-node cluster. |
189191
| Reassess vote assignments post-failover. You don't want to fail over into a cluster configuration that doesn't support a healthy quorum. |
190192

193+
You can adjust quorum voting using Failover Cluster Manager or PowerShell:
194+
195+
```powershell
196+
Import-Module FailoverClusters
197+
198+
$node = "AlwaysOnSrv1"
199+
(Get-ClusterNode $node).NodeWeight = 0
200+
201+
$cluster = (Get-ClusterNode $node).Cluster
202+
$nodes = Get-ClusterNode -Cluster $cluster
203+
204+
$nodes | Format-Table -property NodeName, State, NodeWeight
205+
```
206+
207+
You can also use cluster.exe in an elevated command prompt:
208+
209+
```
210+
cluster.exe Cluster001 node AlwaysOnSrv1 /prop NodeWeight=0
211+
```
212+
191213
## Related content
192214

193215
- [HADR configuration best practices (SQL Server on Azure VMs)](hadr-cluster-best-practices.md)

0 commit comments

Comments
 (0)