Comprendre et configurer un DAX

S’applique à : Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 10

L’accès direct (DAX) traite les périphériques mémoire persistants comme une mémoire adressable en octets pour obtenir la latence la plus faible, en fournissant un accès direct à la mémoire adressable en octets plutôt qu’en suivant les conventions normales d’E/S de bloc de système de fichiers. L’application modifie directement la mémoire persistante, en ignorant la surcharge logicielle de la pile d’E/S. L’utilisation correcte du code avec prise en charge de DAX (c’est-à-dire par des données de mappage de mémoire) peut offrir des avantages significatifs en matière de performances. Toutefois, le DAX pose un certain nombre de problèmes et n’offre pas d’avantages significatifs sans code avec prise en charge de DAX.

Dans Windows Server 2019 et versions ultérieures, vous ne pouvez créer un volume DAX que sur une configuration Espaces de stockage ou Espaces de stockage direct utilisant un seul disque de mémoire persistante, sans parité ni redondance. Vous ne pouvez pas utiliser DAX sur plusieurs disques de mémoire persistante, ou avec NTFS.

Notes

La méthode DAX n’est pas prise en charge dans des environnements Azure Stack HCI.

DAX et table des traductions de bloc (BTT)

Si vous n’utilisez pas la méthode DAX correctement, vous vous exposez à des pertes de données. Nous vous recommandons vivement d’utiliser DAX conjointement avec la table des traductions de bloc (BTT) pour vous prémunir contre les « erreurs d’écritures » susceptibles de se produire en cas de coupure de courant ou de panne du système. La BTT atténue ce risque en fournissant une sémantique de mise à jour de secteur atomique pour les périphériques mémoire persistants, et en activant essentiellement les écritures de secteur de type bloc de sorte que les applications puissent éviter de mélanger des données anciennes et nouvelles en cas de défaillance.

Bien que nous vous recommandions d’activer la BTT sur la plupart des volumes DAX afin d’éviter d’exposer les métadonnées NTFS à des problèmes d’erreurs d’écriture, l’inconvénient de la BTT est qu’elle peut avoir une incidence sur l’utilisation de pages volumineuses ou très volumineuses sur un volume DAX, car des re-mappages se produisent pour les opérations de métadonnées. Si vous souhaitez utiliser des pages de mémoire volumineuses et très volumineuses pour vos sections mappées en mémoire, n’activez pas la BTT.

Créer un volume DAX à l’aide de Windows PowerShell

Étant donné que le DAX est une propriété du système de fichiers, il doit être spécifié lors de la mise en forme d’un volume NTFS.

Après avoir créé un volume, utilisez le commutateur -IsDax avec la cmdlet Format-Volume afin de mettre en forme le volume de façon à ce qu’il soit compatible avec DAX.

Format-Volume -IsDax:$true

L’extrait de code suivant crée un volume DAX sur un disque de mémoire persistante.

# 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

Étapes suivantes

Pour consulter des informations connexes, reportez-vous également à :