Omówienie i konfigurowanie języka DAX
Bezpośredni dostęp (DAX) traktuje urządzenia pamięci trwałej jako pamięć adresowalną bajtów, aby osiągnąć najniższe opóźnienia, zapewniając bezpośredni dostęp do pamięci adresowalnej bajtowo, zamiast przestrzegać normalnych konwencji I/O bloków systemu plików. Aplikacja bezpośrednio modyfikuje pamięć trwałą, pomijając obciążenie oprogramowania stosu we/wy. W przypadku prawidłowego użycia przez kod obsługujący język DAX (czyli przez dane mapowania pamięci), może to zapewnić znaczne korzyści z wydajności. Jednak język DAX ma wiele problemów i nie zapewni znaczących korzyści bez kodu z obsługą języka DAX.
W systemie Windows Server 2019 lub nowszym, wolumin DAX można utworzyć tylko w konfiguracji Storage Spaces lub Storage Spaces Direct, używającej pojedynczego dysku pamięci trwałej, bez parzystości i bez nadmiarowości. Nie można używać języka DAX na więcej niż jednym dysku pamięci trwałej i można używać tylko języka DAX z systemem plików NTFS.
Notatka
Język DAX nie jest obsługiwany w środowiskach lokalnych platformy Azure.
Tabela języka DAX i tłumaczeń blokowych (BTT)
Jeśli nie używasz języka DAX poprawnie, istnieje możliwość utraty danych. Zdecydowanie zalecamy używanie języka DAX w połączeniu z tabelą tłumaczenia blokowego (BTT) w celu ochrony przed "rozdartymi zapisami", które mogą wystąpić w przypadku awarii zasilania lub awarii systemu. Protokół BTT ogranicza to ryzyko poprzez zapewnienie semantyki aktualizacji sektora atomowego dla urządzeń pamięci trwałej, co zasadniczo umożliwia zapisywanie w sektorach podobnych do bloków, dzięki czemu aplikacje mogą uniknąć mieszania starych i nowych danych w scenariuszu awarii.
Chociaż zalecamy włączenie funkcji BTT na większości woluminów DAX, aby uniknąć problemów z rozdarciami przy zapisie metadanych NTFS, wadą funkcji BTT jest to, że może to wpływać na wykorzystanie "dużych" i "ogromnych" stron pamięci w woluminie DAX, ponieważ konieczne będą ponowne mapowania podczas operacji na metadanych. Jeśli chcesz używać dużych i ogromnych stron pamięci dla zamapowanych sekcji pamięci, nie włączaj protokołu BTT.
Tworzenie woluminu języka DAX przy użyciu programu Windows PowerShell
Ponieważ DAX jest właściwością systemu plików, należy go uwzględnić podczas formatowania woluminu NTFS.
Po utworzeniu woluminu użyj przełącznika -IsDax z poleceniem cmdlet Format-Volume
, aby sformatować wolumin i włączyć obsługę DAX.
Format-Volume -IsDax:$true
Poniższy fragment kodu tworzy wolumin języka DAX na dysku pamięci trwałej.
# 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
Następne kroki
Aby uzyskać powiązane informacje, zobacz również:
- Omówienie i wdrażanie pamięci trwałej