author | ms.author | ms.date | ms.service | ms.subservice | ms.topic | ms.custom | |
---|---|---|---|---|---|---|---|
rwestMSFT |
randolphwest |
01/21/2025 |
sql |
linux |
include |
|
Certain versions of supported Linux distributions provide support for FUA I/O subsystem capability, which provides data durability. [!INCLUDE ssnoversion-md] uses the FUA capability to provide highly efficient and reliable I/O for [!INCLUDE ssnoversion-md] workloads. For more information on FUA support by Linux distribution and its effect on [!INCLUDE ssnoversion-md], see SQL Server On Linux: Forced Unit Access (FUA) Internals.
SUSE Linux Enterprise Server 12 SP5, Red Hat Enterprise Linux 8.0, and Ubuntu 18.04 introduced support for FUA capability in the I/O subsystem. If you're using [!INCLUDE sssql17-md] CU 6 and later versions, you should use following configuration for high performing and efficient I/O implementation with FUA by [!INCLUDE ssnoversion-md].
Use this recommended configuration if the following conditions are met.
-
[!INCLUDE sssql17-md] CU 6 and later versions
-
Linux distribution and version that supports FUA capability (starting with Red Hat Enterprise Linux 8.0, SUSE Linux Enterprise Server 12 SP5, or Ubuntu 18.04)
-
XFS file system for [!INCLUDE ssnoversion-md] storage
-
Storage subsystem and/or hardware that supports and is configured for FUA capability
Recommended configuration:
-
Enable Trace Flag 3979 as a startup parameter.
-
Use mssql-conf to configure
control.writethrough = 1
andcontrol.alternatewritethrough = 0
.
For almost all other configuration that doesn't meet the previous conditions, the recommended configuration is as follows:
-
Enable Trace Flag 3982 as a startup parameter (which is the default for [!INCLUDE ssnoversion-md] in the Linux ecosystem), and make sure that Trace Flag 3979 isn't enabled as a startup parameter.
-
Use mssql-conf to configure
control.writethrough = 1
andcontrol.alternatewritethrough = 1
.
-
The [!INCLUDE ssnoversion-md] must use persisted mounted storage, and not
overlayfs
. -
The storage must use the XFS filesystem and should support FUA. Before enabling this setting, you should work with your Linux distribution and storage vendor, to ensure that the OS and storage subsystem supports FUA options. On Kubernetes, you can query for the filesystem type using the following command, where
<pvc-name>
is yourPersistentVolumeClaim
:kubectl describe pv <pvc-name>
In the output, look for the
fstype
that is set to XFS. -
The worker node hosting the [!INCLUDE ssnoversion-md] pods, should be using a Linux distribution and version that supports FUA capability (starting with Red Hat Enterprise Linux 8.0, SUSE Linux Enterprise Server 12 SP5, or Ubuntu 18.04).
If the above conditions are met, then you can use the following recommended FUA settings.
-
Enable Trace Flag 3979 as a startup parameter.
-
Use mssql-conf to configure
control.writethrough = 1
andcontrol.alternatewritethrough = 0
.