Изучение и настройка DAX

Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 10

Прямой доступ (DAX) обрабатывает устройства постоянной памяти как байт-адресную память, чтобы получить наименьшую задержку, обеспечивая прямой доступ к байт-адресной памяти, а не к обычным соглашениям о блоке ввода-вывода файловой системы. Приложение напрямую изменяет постоянную память, обходя программные издержки стека операций ввода-вывода. При правильном использовании кода с поддержкой DAX (т. е. данными сопоставления памяти) это может обеспечить значительные преимущества производительности. Однако DAX имеет ряд проблем, и он не обеспечит значительные преимущества без кода с поддержкой DAX.

В Windows Server 2019 и более поздних версиях можно создать только том DAX в конфигурации дисковые пространства или Локальные дисковые пространства, которая использует один диск постоянной памяти без четности и избыточности. Вы не можете использовать DAX в нескольких дисках постоянной памяти, и вы можете использовать daX только с NTFS.

Примечание.

DAX не поддерживается в средах Azure Stack HCI.

DAX и таблица перевода блоков (BTT)

Если вы не используете DAX правильно, существует вероятность потери данных. Настоятельно рекомендуется использовать DAX в сочетании с таблицей преобразования блоков (BTT) для защиты от "разорванных операций записи", которые могут возникнуть в случае сбоя питания или сбоя системы. BTT снижает этот риск, предоставляя семантику обновления атомарного сектора для устройств постоянной памяти, в основном обеспечивая запись в блок-подобный сектор, чтобы приложения могли избежать смешивания старых и новых данных в сценарии сбоя.

Хотя мы рекомендуем включить BTT на большинстве томов DAX, чтобы избежать возникновения проблем с записью метаданных NTFS, недостатком BTT является то, что это может повлиять на использование "больших" и "огромных" страниц памяти в томе DAX, так как перемежаются для операций метаданных. Если вы хотите использовать большие и огромные страницы памяти для сопоставленных разделов памяти, не включите BTT.

Создание тома DAX с помощью Windows PowerShell

Так как DAX является свойством файловой системы, его необходимо указать при форматировании тома NTFS.

После создания тома используйте параметр -IsDax с Format-Volume командлетом для форматирования тома, который будет включен в DAX.

Format-Volume -IsDax:$true

В следующем фрагменте кода создается том DAX на диске постоянной памяти.

# Here we use the first pmem disk to create the volume as an example
$disk = (Get-PmemDisk)[0] | Get-PhysicalDisk | Get-Disk
# Initialize the disk to GPT if it is not initialized
If ($disk.partitionstyle -eq "RAW") {$disk | Initialize-Disk -PartitionStyle GPT}
# Create a partition with drive letter 'S' (can use any available drive letter)
$disk | New-Partition -DriveLetter S -UseMaximumSize

   DiskPath: \\?\scmld#ven_8980&dev_097a&subsys_89804151&rev_0018#3&1b1819f6&0&03018089fb63494db728d8418b3cbbf549997891#{53f56307-b6
bf-11d0-94f2-00a0c91efb8b}

PartitionNumber  DriveLetter Offset                                               Size Type
---------------  ----------- ------                                               ---- ----
2                S           16777216                                        251.98 GB Basic

# Format the volume with drive letter 'S' to DAX Volume
Format-Volume -FileSystem NTFS -IsDax:$true -DriveLetter S

DriveLetter FriendlyName FileSystemType DriveType HealthStatus OperationalStatus SizeRemaining      Size
----------- ------------ -------------- --------- ------------ ----------------- -------------      ----
S                        NTFS           Fixed     Healthy      OK                    251.91 GB 251.98 GB

# Verify the volume is DAX enabled
Get-Partition -DriveLetter S | fl

UniqueId             : {00000000-0000-0000-0000-000100000000}SCMLD\VEN_8980&DEV_097A&SUBSYS_89804151&REV_0018\3&1B1819F6&0&03018089F
                       B63494DB728D8418B3CBBF549997891:WIN-8KGI228ULGA
AccessPaths          : {S:\, \\?\Volume{cf468ffa-ae17-4139-a575-717547d4df09}\}
DiskNumber           : 2
DiskPath             : \\?\scmld#ven_8980&dev_097a&subsys_89804151&rev_0018#3&1b1819f6&0&03018089fb63494db728d8418b3cbbf549997891#{5
                       3f56307-b6bf-11d0-94f2-00a0c91efb8b}
DriveLetter          : S
Guid                 : {cf468ffa-ae17-4139-a575-717547d4df09}
IsActive             : False
IsBoot               : False
IsHidden             : False
IsOffline            : False
IsReadOnly           : False
IsShadowCopy         : False
IsDAX                : True                   # <- True: DAX enabled
IsSystem             : False
NoDefaultDriveLetter : False
Offset               : 16777216
OperationalStatus    : Online
PartitionNumber      : 2
Size                 : 251.98 GB
Type                 : Basic

Следующие шаги

Дополнительные сведения см. также: