Skip to content

Commit 38b6450

Browse files
committed
added misaligned io article
1 parent 10aff3b commit 38b6450

8 files changed

Lines changed: 90 additions & 8 deletions

File tree

74 Bytes
Loading

support/sql/azure-sql/sql-installation-fails-error-azure-vm.md renamed to support/sql/azure-sql/sql-installation-fails-sector-size-error-azure-vm.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
---
2-
title: SQL Server installation fails with error on Azure VM
2+
title: SQL Server installation fails with sector size error on Azure VM
33
description: This article provides a resolution for the problem that occurs when you try to install a SQL Server instance on Windows Server 2022 on an Azure virtual machine (VM).
4-
ms.date: 03/15/2025
4+
ms.date: 03/20/2025
5+
ms.author: dpless
6+
author: dplessMSFT
7+
ms.reviewer: mathoma
58
ms.custom: sap:Azure SQL virtual machine
6-
ms.reviewer:
79
ms.topic: troubleshooting
810
---
911
# Error (Cannot use file 'master.mdf' because it was originally formatted with sector size 4096) and SQL Server installation fails on a Windows Server 2022 Azure VM
1012

11-
This article helps you resolve a problem that occurs when you try to install SQL Server on Windows Server 2022 on a Microsoft Azure virtual machine (VM).
13+
This article helps you resolve a problem that occurs when you try to _manually_ install SQL Server to a Windows Server 2022 Microsoft Azure virtual machine (VM).
1214

1315
_Applies to:_   SQL Server on Azure VM - Windows, Windows Server 2022
1416

@@ -31,15 +33,17 @@ Detailed results:
3133
Error description: Could not find the Database Engine startup handle.
3234
```
3335

34-
3536
## Cause
3637

3738
NVMe is a communication protocol that facilitates faster and more efficient data transfer between servers and storage systems by using nonvolatile memory (NVMe). With NVMe, data can be transferred at the highest throughput and with the fastest response times.
3839

39-
Some of the newest Azure VM generations (such as Da/Ea/Fav6) have an NVMe-only storage interface and require an OS image that supports NVMe. However, these latest Azure VM generations deploy with a default sector size of 8 KB, which isn't currently supported by SQL Server. SQL Server currently supports disks with a standard native sector sizes of 512 bytes and 4 KB.
40+
Some of the newest Azure VM generations (such as Da/Ea/Fav6) have an NVMe-only storage interface and require an OS image that supports NVMe. However, these latest Azure VM generations deploy with a default sector size of 8 KB, which isn't currently supported by SQL Server. SQL Server currently supports disks with a standard native [sector sizes of 512 bytes and 4 KB](/sql/sql-server/install/hardware-and-software-requirements-for-installing-sql-server-2022#StorageTypes).
4041

4142
If an Azure virtual machine was deployed using the 8-KB sector size, and you attempt to install SQL Server after deployment, the installation can fail.
4243

44+
> [!NOTE]
45+
> This scenario only occurs when you are _manually_ installing SQL Server on an Azure VM, and not when you deploy a SQL Server VM from Azure Marketplace. The Azure Marketplace images are preconfigured to use the 4-KB sector size.
46+
4347
## Resolution
4448

4549
To resolve this problem, you must reinstall SQL Server after forcing the Azure VM to use the 4-KB sector size.
@@ -48,7 +52,7 @@ To successfully install SQL Server on your Azure VM, follow these steps:
4852

4953
1. If you've already installed SQL Server, then uninstall SQL Server. Otherwise, skip to the next step.
5054
1. Add the [ForcedPhysicalSectorSizeInBytes](../database-engine/database-file-operations/troubleshoot-os-4kb-disk-sector-size.md#resolutions) registry key.
51-
1. Verify the sector size is 4-KB by running the following command in an elevated command prompt: `fsutil fsinfo sectorinfo <volume pathname>`
55+
1. Verify the sector size is 4 KB by running the following command in an elevated command prompt: `fsutil fsinfo sectorinfo <volume pathname>`
5256
1. Restart the Azure VM.
5357
1. Reinstall SQL Server.
5458

47.3 KB
Loading
Loading
71.6 KB
Loading
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
title: Performance degradation - misaligned I/O sector size error
3+
description: This article describes how to resolve misaligned I/O operations due to sector size mismatch in SQL Server.
4+
ms.author: dpless
5+
author: dplessMSFT
6+
ms.reviewer: mathoma
7+
ms.date: 03/20/2025
8+
ms.custom:
9+
---
10+
# Performance degradation from misaligned I/O sector size error in SQL Server
11+
12+
_Original product version:_ &nbsp; SQL Server
13+
14+
This article introduces how to resolve performance degradation due to misaligned I/O operations in SQL Server when the physical sector size differs between disk drives.
15+
16+
## Overview
17+
18+
SQL Server can encounter misaligned I/O operations when the physical sector size of disk drives differs between servers or storage systems. This condition can degrade performance and is particularly common in environments where sector size mismatches are evident, such as:
19+
- Virtual machines with attached storage
20+
- Always On availability groups
21+
- Log shipping
22+
- Hardware migrations
23+
24+
For instance, a common issue arises when the primary server uses a 4-KB sector size, while the secondary uses 512 bytes, leading to misaligned I/O operations during log synchronization or restore processes. This misalignment can result in performance degradation, manifesting as slow restores or synchronization delays.
25+
26+
Trace Flag 1800 ensures that SQL Server uses a consistent 4-KB sector size for transaction log I/O operations, regardless of the underlying disk's physical sector size. This trace flag is designed to maintain performance in mixed environments, where servers might have been upgraded or migrated to hardware with different storage specifications.
27+
28+
For databases with write-intensive workloads, aligning I/O operations can lead to substantial performance gains, whereas the benefits may be negligible in read-intensive environments.
29+
30+
## Symptoms
31+
32+
You could be experiencing performance degradation in SQL Server due to misaligned I/O operations if you observe any of the following symptoms:
33+
- **Slow synchronization or restore times**: Misaligned I/O operations can result in slower synchronization or restore times, especially in distributed SQL Server environments, such as Always On availability groups or log shipping.
34+
- **Error messages in the SQL Server error log**: Error messages related to I/O operations can indicate misalignment issues, such as:
35+
36+
`There have been # misaligned log IOs which required falling back to synchronous IO`
37+
38+
39+
- **Performance bottle necks during write-intensive operations**: Write-intensive operations, such as log backups or database restores, can experience high disk latency and increased I/O wait times due to misaligned I/O operations, leading to performance bottlenecks and slow response times.
40+
41+
## Verify sector size
42+
43+
To avoid misaligned I/O operations, it's important to ensure that the physical sector size of the disk drives is consistent across all servers and storage systems.
44+
45+
You can verify the [sector size](../../azure-sql/sql-installation-fails-sector-size-error-azure-vm.md) by running the following command in an elevated command prompt:
46+
`fsutil fsinfo sectorinfo <volume pathname>`
47+
48+
The following screenshot shows the output of the `fsutil fsinfo sectorinfo` command for the `E:` drive, which has a sector size of 8 KB, but a physical sector size of 4 KB causing misaligned I/O operations:
49+
50+
:::image type="content" source="../../azure-sql/media/sql-installation-fails-error-azure-vm/8k-sector-size-example.png" alt-text="Screenshot of command prompt output of 8k sector size.":::
51+
52+
## Resolution
53+
54+
If you are experiencing performance degradation due to misaligned I/O operations, and you're unable to [modify your sector size](../database-file-operations/troubleshoot-os-4kb-disk-sector-size.md#resolutions), you can use [Trace Flag 1800](/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql) as a global startup parameter to force SQL Server to use a consistent 4-KB sector size for transaction log I/O operations.
55+
56+
To enable Trace Flag 1800 as a startup parameter, follow these steps:
57+
1. On the system where SQL Server is installed, open [SQL Server Configuration Manager](/sql/relational-databases/sql-server-configuration-manager).
58+
1. Expand **SQL Server Configuration Configuration Manager (Local**), and select **SQL Server Services**.
59+
1. Right-click the SQL Server instance you want to configure, and select **Properties**:
60+
61+
:::image type="content" source="media/performance-degradation-misaligned-io-sector-error/sql-server-configuration-manager-properties.png" alt-text="Screenshot of the SQL Server service right-click menu, with properties highlighted.":::
62+
63+
1. In **SQL Server properties**, select the **Startup Parameters** tab, and enter `-T1800` i the **Specify a startup parameter** field. Select **Add** to add the parameter to the list.
64+
65+
:::image type="content" source="media/performance-degradation-misaligned-io-sector-error/add-1800-trace-flag.png" alt-text="Screenshot adding the trace flag as a startup parameter in SQL Server properties. ":::
66+
67+
1. Confirm your trace flag has been added to the list of startup parameters. Select **OK** to save your changes:
68+
69+
:::image type="content" source="media/performance-degradation-misaligned-io-sector-error/trace-flag-1800.png" alt-text="Screenshot of the SQL Server properties window, with startup parameters highlighted.":::
70+
71+
1. Restart the SQL Server service so the trace flag is enabled when your instance starts.
72+
73+
## References
74+
75+
[KB3009974 - FIX: Slow synchronization when disks have different sector sizes](https://support.microsoft.com/topic/kb3009974-fix-slow-synchronization-when-disks-have-different-sector-sizes-for-primary-and-secondary-replica-log-files-in-sql-server-ag-and-logshipping-environments-ed181bf3-ce80-b6d0-f268-34135711043c)

support/sql/database-engine/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,8 @@ items:
154154
href: performance/understand-resolve-blocking.md
155155
- name: Upgrading compatibility level degrades performance for spatial queries
156156
href: performance/upgrade-compatibility-level-degrades-performance.md
157+
- name: Performance issue from misaligned I/O
158+
href: performance/performance-degradation-misaligned-io-sector-error.md
157159

158160
- name: Security, Encryption, Auditing, Authorization
159161
href: security/toc.yml

support/sql/toc.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ items:
1010
- name: Azure SQL Virtual Machine
1111
items:
1212
- name: SQL Server installation fails on some Azure VMs
13+
href: azure-sql/sql-installation-fails-sector-size-error-azure-vm.md
1314
- name: FCI installation fails with error on Azure VM
14-
href: azure-sql/sql-installation-fails-error-azure-vm.md
15+
href: azure-sql/fci-installation-fails-error-azure-vm.md
1516

1617
- name: Data Quality Services (DQS)
1718
items:

0 commit comments

Comments
 (0)