SQL Server on Windows 用に永続メモリ (PMEM) を構成する

この記事では、SQL Server 2016 (13.x) on Windows 以降用に永続メモリ (PMEM) を構成する方法について説明します。

概要

SQL Server 2019 (15.x) には、永続メモリに依存するいくつかのメモリ内データベース機能があります。 このドキュメントでは、SQL Server on Windows 用に永続メモリを構成するために必要な手順について説明します。

注意

用語エンライトメントは、永続メモリ対応ファイル システムの操作の概念を伝えるために導入されました。 NTFS ファイル システムへの直接アクセス (DAX) 拡張機能により、カーネル領域からユーザー空間にファイルをメモリ マップする機能が提供されます。 ファイルがユーザー空間にメモリ マップされている場合、アプリケーションは、カーネル I/O スタックを完全にバイパスして、メモリ マップ ファイルに読み込み/格納命令を直接発行できます。 これは、"賢明な" ファイル アクセス方法と見なされます。 Windows Server 2022 の時点で、この "賢明な" 機能は Windows と Linux の両方のプラットフォームで利用できます。

デバイスを構成する

PMEM デバイスの名前空間を作成する

Windows では、ipmctl ユーティリティを使用して PMEM ディスク (Linux では名前空間と呼ばれます) を構成します。 Intel® Optane™ 固有の手順については、こちらを参照してください。 さまざまな Windows バージョンでサポートされている PMEM ハードウェアの詳細については、「永続的なメモリの理解とデプロイ」を参照してください。 PMEM ディスクは、PMEM NVDIMM 間でインターリーブする必要があり、デバイス上のメモリ領域へのさまざまな種類のユーザースペース アクセスを提供できます。 Windows のインターリーブ セットについて詳しくは、永続的なメモリの理解とデプロイに関する記事を参照してください。

PMEM ディスク

PowerShell を使用して PMEM ディスクを調べる

#Get information about all physical disks
Get-PhysicalDisk

#Review logical configuration of PMEM disks
Get-PmemDisk

#Get information about PMEM devices
Get-PmemPhysicalDevice

#Get information about unused PMEM regions
Get-PmemUnusedRegion

BTT と DAX

既定では、New-PmemDisk では目的の FSDax モードが使用されます。 原子性は、BlockTranslationTable ではなく既定値の None に設定されます。 サポートの観点からは、必要なセクター モード セマンティクスを模倣するために、トランザクション ログに対して BTT を有効にする必要があります。 一般的には NTFS で BTT を使用することをお勧めしますが、DAX で必要とするような大きなページを使用する場合は、BTT はお勧めできません。

Get-PmemUnusedRegion | New-PmemDisk -Atomicity None

NTFS ボリュームのフォーマット


#Initialize PMEM Disk(s)
Get-PmemDisk | Initialize-Disk -PartitionStyle GPT

#Create New Partition(s) and Format the Volume(s) with DAX Mode
Get-PmemDisk[0] | `
New-Partition `
    -UseMaximumSize `
    -AssignDriveLetter `
    -Offset 2097152 `
    -Alignment 2097152 | `
Format-Volume `
    -FileSystem NTFS `
    -IsDAX:$True `
    -AllocationUnitSize 2097152

ファイルの配置とオフセット

パーティション オフセットを確認する

Get-Partition | Select-Object DiskNumber, DriveLetter, IsDAX, Offset, Size, PartitionNumber | fl

fsutil を使用して、特定のファイルのファイル配置を確認します。 ファイル サイズは 2 MB の剰余である必要があります。

fsutil dax queryFileAlignment A:\AdventureWorks2022_A.mdf

PMEM の置き換え

PMEM ディスクの再プロビジョニング

PMEM モジュールが交換されるたびに、再プロビジョニングする必要があります。

注意

PMEM ディスクを削除すると、そのディスク上のデータが失われます。

# Remove all PMEM disks
Get-PmemDisk | Remove-PmemDisk -Confirm:$false

PMEM モジュールを消去する

PMEM モジュールからデータを完全に消去するには、Initialize-PmemPhysicalDevice PowerShell コマンドレットを使用します。

# Reinitialize all PMEM disks
Get-PmemPhysicalDevice | Initialize-PmemPhysicalDevice -Confirm:$false

関連項目

PMEM を操作するためのその他のコマンドレットについては、PowerShell リファレンス ドキュメントの「PersistentMemory」を参照してください。