Condividi tramite


Comprendere e configurare DAX

Si applica a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 10

L'accesso diretto (DAX) considera i dispositivi di memoria persistente come memoria indirizzabile in byte per ottenere la latenza più bassa, fornendo l'accesso diretto alla memoria indirizzabile in byte anziché seguendo le normali convenzioni di I/O del blocco 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 Archiviazione Spaces 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 e è possibile usare DAX solo con NTFS.

Nota

DAX non è supportato in ambienti Azure Stack HCI.

Tabella di conversione daX e blocco (BTT)

Se non si usa CORRETTAMENTE DAX, è possibile che si verifichi una perdita di dati. È consigliabile usare DAX in combinazione con la tabella BTT (Block Translation Table) per proteggersi da "scritture strappate" che possono verificarsi in caso di interruzione dell'alimentazione o interruzione del sistema. BTT riduce questo rischio fornendo semantica di aggiornamento del settore atomico per i dispositivi di memoria persistente, essenzialmente abilitando scritture di settore 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 in modo non troncato, lo svantaggio di BTT è che può influire sull'utilizzo di pagine di memoria "grandi" e "enormi" in un volume DAX perché si verificheranno il mapping per le operazioni sui metadati. Se si desidera utilizzare pagine di memoria grandi e grandi per le sezioni mappate alla memoria, non attivare BTT.

Creare un volume DAX usando Windows PowerShell

Poiché DAX è una proprietà del file system, deve essere specificata durante la formattazione di un volume NTFS.

Dopo aver creato un volume, usare l'opzione -IsDax con il Format-Volume cmdlet per formattare il volume da abilitare 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 informazioni correlate, vedere anche: