Comprendere e configurare DAX
L'accesso diretto (DAX) considera i dispositivi di memoria persistente come memoria indirizzabile a byte per ottenere la latenza più bassa, fornendo l'accesso diretto alla memoria indirizzabile a byte anziché seguendo le normali convenzioni di I/O a blocchi del file system. L'app modifica direttamente la memoria persistente, ignorando il sovraccarico software dello stack di I/O. Se usato correttamente dal codice compatibile con DAX, ovvero dai dati di mapping della memoria, ciò può offrire vantaggi significativi in termini di prestazioni. Tuttavia, DAX presenta diversi problemi e non offre vantaggi significativi senza codice compatibile con DAX.
In Windows Server 2019 e versioni successive è possibile creare un volume DAX solo in una configurazione di Spazi di archiviazione o Spazi di archiviazione diretta che usa un singolo disco di memoria persistente, senza parità e senza ridondanza. Non è possibile usare DAX in più dischi di memoria persistente ed è possibile usare DAX solo con NTFS.
Nota
DAX non è supportato in ambienti locali di Azure.
DAX e tabella di conversione dei blocchi (BTT)
Se non si usa correttamente DAX, è possibile che si verifichi una perdita di dati. È consigliabile usare DAX insieme alla tabella di conversione dei blocchi (BTT, Block Translation Table) per proteggersi dalle "scritture incomplete" che possono verificarsi in caso di interruzione dell'alimentazione o di interruzione del sistema. BTT riduce questo rischio fornendo una semantica di aggiornamento del settore atomico per i dispositivi di memoria persistente, consentendo essenzialmente scritture di settori simili a blocchi in modo che le app possano evitare di combinare dati obsoleti e nuovi in uno scenario di errore.
Anche se è consigliabile abilitare BTT nella maggior parte dei volumi DAX per evitare di sottoporre i metadati NTFS a problemi di scrittura incompleta, lo svantaggio di BTT è che può influire sull'utilizzo di pagine di memoria "grandi" ed "enormi" in un volume DAX perché verranno effettuate modifiche al mapping per le operazioni sui metadati. Se si desidera utilizzare pagine di memoria grandi ed enormi per le sezioni di cui è stato eseguito il mapping in memoria, non attivare BTT.
Creare un volume DAX usando Windows PowerShell
Poiché DAX è una proprietà del file system, deve essere specificata quando si formatta un volume NTFS.
Dopo aver creato un volume, usare l'opzione -IsDax con il cmdlet Format-Volume
per formattare il volume in modo che sia abilitato per DAX.
Format-Volume -IsDax:$true
Il frammento di codice seguente crea un volume DAX in un disco di memoria persistente.
# 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
Passaggi successivi
Per ulteriori informazioni, vedere anche: