Skip to content

Commit 74732f0

Browse files
Merge pull request #34517 from sevend2/Transfer6214
Combine iSCSI content into I/O fundamentals article
2 parents 4ed4b71 + 10d2c2a commit 74732f0

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

docs/relational-databases/sql-server-storage-guide.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
2-
title: "SQL Server I/O fundamentals"
2+
title: "SQL Server I/O Fundamentals"
33
description: Learn about how storage choice and caching affect SQL Server performance.
44
author: rwestMSFT
55
ms.author: randolphwest
6-
ms.date: 06/12/2024
6+
ms.date: 06/24/2025
77
ms.service: sql
88
ms.subservice: supportability
99
ms.topic: conceptual
@@ -62,7 +62,7 @@ Long I/Os often indicate a [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md
6262
- Multiple long I/O messages appear in the error log during a heavy [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] workload.
6363
- Performance Monitor counters show long disk latencies, long disk queues, or no disk idle time.
6464

65-
Long I/Os can also be caused by a component in the I/O path (for example, a driver, controller, or firmware) continually postponing servicing an old I/O request, in favor of servicing newer requests. This can occur in interconnected environments, such as iSCSI and fiber channel networks (either due to a misconfiguration or path failure). This can be difficult to corroborate with the Performance Monitor tool because most I/Os are being serviced promptly. Long I/O requests can be aggravated by workloads that perform large amounts of sequential I/O, such as backup and restore, table scans, sorting, creating indexes, bulk loads, and zeroing out files.
65+
Long I/Os can also be caused by a component in the I/O path (for example, a driver, controller, or firmware) continually postponing servicing an old I/O request, in favor of servicing newer requests. This can occur in interconnected environments, such as [iSCSI](#iscsi) and fiber channel networks (either due to a misconfiguration or path failure). This can be difficult to corroborate with the Performance Monitor tool because most I/Os are being serviced promptly. Long I/O requests can be aggravated by workloads that perform large amounts of sequential I/O, such as backup and restore, table scans, sorting, creating indexes, bulk loads, and zeroing out files.
6666

6767
Isolated long I/Os that don't appear related to any of the previous conditions can be caused by a hardware or driver problem. The system event log might contain a related event that helps to diagnose the problem.
6868

@@ -101,7 +101,7 @@ It's a specific and defined set of implementation steps necessary to ensure that
101101

102102
The `FILE_FLAG_WRITE_THROUGH` option ensures that when a write operation returns successful completion the data is correctly stored in stable storage. This aligns with the Write Ahead Logging (WAL) protocol specification to ensure the data. Many storage devices (NVMe, PCIe, SATA, ATA, SCSI, and IDE-based) contain onboard caches of 512 KB, 1 MB, and larger. Storage caches usually rely on a capacitor and not a battery-backed solution. These caching mechanisms can't guarantee writes across a power cycle or similar failure point. They only guarantee the completion of the sector write operations. As the storage devices continue to grow in size, the caches become larger, and they can expose larger amounts of data during a failure.
103103

104-
For more information on FUA support by Linux distribution and its effect on [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)], see [SQL Server On Linux: Forced Unit Access (FUA) Internals](https://techcommunity.microsoft.com/t5/sql-server-blog/sql-server-on-linux-forced-unit-access-fua-internals/ba-p/3199102).
104+
For more information on FUA support by Linux distribution and its effect on [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)], see [SQL Server On Linux: Forced Unit Access (FUA) Internals](https://techcommunity.microsoft.com/blog/sqlserver/sql-server-on-linux-forced-unit-access-fua-internals/3199102).
105105

106106
## Transactional integrity and SQL Server recovery
107107

@@ -158,6 +158,11 @@ SCSI, SAS, and NVMe storage devices:
158158
- Typically have better meantime to failure rates than other implementations.
159159
- Contain sophisticated heuristics to help predict imminent failures.
160160

161+
<a id="iscsi"></a>
162+
163+
> [!NOTE]
164+
> [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] is supported on Internet Small Computer System Interface (iSCSI) technology components that meet the requirements of the [Windows Hardware Compatibility Program](/windows-hardware/design/compatibility/whcp-certification-process). Although [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] doesn't interact directly with iSCSI, it operates seamlessly because Windows presents iSCSI storage as standard drives. This allows [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] to read from and write to remote block-level storage across IP networks. Since iSCSI depends on networks, you can experience delays or bottlenecks, so you should optimize the server's caching performance and minimize latency. For more information, see [iSCSI Target Server Scalability Limits](/windows-server/storage/iscsi/iscsi-target-server-limits).
165+
161166
#### Non-SCSI
162167

163168
Other drive implementations, such as IDE, ATA, and SATA:
@@ -276,5 +281,5 @@ Many PC manufacturers order the drives with the write cache disabled. However, t
276281

277282
- [Pages and extents architecture guide](pages-and-extents-architecture-guide.md)
278283
- [Memory management architecture guide](memory-management-architecture-guide.md)
279-
- [SQL Server On Linux: Forced Unit Access (FUA) Internals](https://techcommunity.microsoft.com/t5/sql-server-blog/sql-server-on-linux-forced-unit-access-fua-internals/ba-p/3199102)
284+
- [SQL Server On Linux: Forced Unit Access (FUA) Internals](https://techcommunity.microsoft.com/blog/sqlserver/sql-server-on-linux-forced-unit-access-fua-internals/3199102)
280285
- [SQL Server I/O Basics, Chapter 2](/previous-versions/sql/sql-server-2005/administrator/cc917726(v=technet.10))

0 commit comments

Comments
 (0)