Freigeben über


Verstehen und Konfigurieren von DAX

Gilt für: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 10

Direct Access (DAX) behandelt Geräte mit persistentem Speicher als byteadressierbaren Speicher, um die geringste Latenz zu erzielen, und bietet direkten Zugriff auf byteadressierbaren Arbeitsspeicher, anstatt den normalen Dateisystem-Block-E/A-Konventionen zu folgen. Die App modifiziert den persistenten Speicher direkt und umgeht damit den Softwareoverhead des E/A-Stapels. Bei richtiger Verwendung durch DAX-fähigen Code (d. h. durch Arbeitsspeicher-Zuordnungsdaten) kann dies erhebliche Leistungsvorteile bringen. DAX weist jedoch eine Reihe von Problemen auf und bietet ohne DAX-fähigen Code keine signifikanten Vorteile.

In Windows Server 2019 und höher können Sie nur ein DAX-Volume auf einer Speicherplätze- oder Direkte Speicherplätze-Konfiguration erstellen, die einen einzelnen Datenträger mit persistentem Speicher ohne Parität und ohne Redundanz verwendet. Sie können DAX nicht über mehrere Datenträger mit persistentem Speicher hinweg verwenden, und Sie können DAX nur mit NTFS verwenden.

Hinweis

DAX wird in Azure Stack HCI-Umgebungen nicht unterstützt.

DAX- und Blockübersetzungstabelle (BTT)

Wenn Sie DAX nicht korrekt verwenden, kann es zu Datenverlusten kommen. Es wird dringend empfohlen, DAX in Verbindung mit der Blockübersetzungstabelle (Block Translation Table, BTT) zu verwenden, um vor „zerrissenen Schreibvorgängen“ (Torn Writes) zu schützen, die bei einem Strom- oder Systemausfall auftreten können. Die BTT mindert dieses Risiko, indem sie eine atomische Updatesemantik für die Sektoren der PMEM-Geräte bereitstellt. Dadurch werden blockähnliche Sektor-Schreibvorgänge ermöglicht, sodass Apps alte und neue Daten bei einem Ausfall nicht miteinander mischen müssen.

Wir empfehlen zwar die Aktivierung von BTT auf den meisten DAX-Volumes, um zu vermeiden, dass die NTFS-Metadaten Torn Writes-Problemen ausgesetzt werden, der Nachteil von BTT besteht aber darin, dass es sich auf die Verwendung von „großen“ und „sehr großen“ Speicherseiten auf einem DAX-Volume auswirken kann, da bei Metadatenvorgängen erneute Zuordnungen erfolgen. Wenn Sie große und sehr große Speicherseiten für die zugeordneten Speicherabbildabschnitte verwenden möchten, aktivieren Sie BTT nicht.

Erstellen eines DAX-Volumes mit Windows PowerShell

Da DAX eine Eigenschaft des Dateisystems ist, muss es beim Formatieren eines NTFS-Volumes angegeben werden.

Verwenden Sie nach dem Erstellen eines Volumes den Schalter -IsDax mit dem Format-Volume-Cmdlet, um das Volume als DAX-fähig zu formatieren.

Format-Volume -IsDax:$true

Mit dem folgenden Codeausschnitt erstellen Sie ein DAX-Volume auf einem Datenträger mit persistentem Speicher.

# 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

Nächste Schritte

Verwandte Informationen finden Sie außerdem unter: