Principy a nasazení trvalé paměti

Platí pro: Azure Stack HCI verze 22H2 a 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016 Windows 10

Trvalá paměť (neboli PMem) je nový typ paměťové technologie, která zachovává svůj obsah prostřednictvím cyklů napájení a dá se použít jako úložiště nejvyšší úrovně. Proto můžete slyšet, že uživatelé označují PMem jako "paměť třídy úložiště" nebo SCM. Tento článek poskytuje základní informace o trvalé paměti a vysvětluje, jak ji nasadit jako nejvyšší úroveň úložiště v Azure Stack HCI a Windows Serveru.

Co je trvalá paměť?

Trvalá paměť je typ nestálého média, které se vejde do standardního slotu DIMM (paměť). Je pomalejší než DRAM, ale poskytuje vyšší propustnost než disky SSD a NVMe. Ve srovnání s DRAM mají trvalé paměťové moduly mnohem větší kapacitu a jsou levnější na GB, ale stále jsou dražší než NVMe. Obsah paměti zůstane, i když dojde k výpadku napájení systému v případě neočekávané ztráty napájení, vypnutí iniciovaného uživatelem nebo chybového ukončení systému. To znamená, že moduly trvalé paměti můžete používat jako ultrarychlé a trvalé úložiště.

Azure Stack HCI a Windows Server 2019 podporují použití trvalé paměti jako mezipaměti nebo jednotky kapacity. Vzhledem k cenovému modelu však trvalá paměť poskytuje největší hodnotu buď jako mezipaměť, nebo jako malé množství vyhrazeného úložiště pro data mapování paměti. Ve většině případů se trvalé paměťové jednotky automaticky použijí jako jednotky mezipaměti a jako jednotky kapacity se použije cokoli pomalejšího. Další informace o tom, jak nastavit jednotky mezipaměti a kapacity, najdete v tématech Principy mezipaměti fondu úložiště a Plánování svazků.

Koncepty trvalé paměti

Tato část popisuje základní koncepty, kterým budete muset porozumět, abyste mohli nasadit trvalou paměť v prostředích Windows Serveru a Azure Stack HCI, abyste snížili kritické body vstupně-výstupních operací a zlepšili výkon.

Metody přístupu

Existují dvě metody pro přístup k trvalé paměti. Jsou to tyto:

  • Blokovat přístup, který funguje jako úložiště kvůli kompatibilitě aplikací. V této konfiguraci data procházejí systémem souborů a zásobníky úložiště jako obvykle. Tuto konfiguraci můžete použít v kombinaci se systémem souborů NTFS a ReFS a doporučuje se pro většinu případů použití.
  • Přímý přístup (DAX), který funguje jako paměť, aby získal nejnižší latenci. Jazyk DAX můžete používat pouze v kombinaci se systémem souborů NTFS. Pokud jazyk DAX nepoužíváte správně, může dojít ke ztrátě dat. Důrazně doporučujeme, abyste použili JAZYK DAX se zapnutou tabulkou BTT (Block Translation Table) a zmírnit tak riziko roztrhaných zápisů. Další informace najdete v tématu Principy a konfigurace jazyka DAX.

Upozornění

Jazyk DAX se v prostředích Azure Stack HCI nepodporuje. Azure Stack HCI podporuje pouze blokový přístup se zapnutým BTT.

Oblasti

Oblast je sada jednoho nebo více modulů trvalé paměti. Oblasti se často vytvářejí jako prokládané sady , ve kterých se několik modulů trvalé paměti zobrazuje jako jeden logický virtuální adresní prostor pro zvýšení propustnosti. Pokud chcete zvětšit dostupnou šířku pásma, jsou sousední virtuální adresy rozložené mezi několik modulů trvalé paměti. Oblasti lze obvykle vytvářet v systému BIOS serverové platformy.

PmemDisks

Pokud chcete jako úložiště použít trvalou paměť, musíte definovat alespoň jeden pmemDisk, což je virtuální pevný disk (VHD) na hostiteli, který se ve virtuálním počítači vytvoří jako PmemDisk. PmemDisk je souvislý rozsah nevolatilní paměti, který si můžete představit jako oddíl pevného disku nebo logickou jednotku. Pomocí rutin Windows PowerShell můžete vytvořit několik jednotek PmemDisk, které rozdělí dostupnou nezpracovanou kapacitu. Každý modul trvalé paměti obsahuje oblast úložiště popisků (LSA), ve které se ukládají metadata konfigurace.

Tabulka blokového překladu

Na rozdíl od jednotek SSD moduly trvalé paměti nechrání před "roztrhanou zápisy", ke kterým může dojít v případě výpadku napájení nebo výpadku systému, což ohrožuje data. BTT toto riziko zmírňuje tím, že poskytuje sémantiku aktualizací atomických sektorů pro zařízení s trvalou pamětí, což v podstatě umožňuje zápisy sektorů podobných blokům, aby se aplikace mohly vyhnout kombinování starých a nových dat ve scénáři selhání. Důrazně doporučujeme zapnout BTT téměř ve všech případech. Vzhledem k tomu, že BTT je vlastnost PmemDisk, musí být zapnuta při vytvoření PmemDisk.

V režimu blokování přístupu doporučujeme používat BTT, protože všechna data budou používat sémantiku bloků. Funkce BTT je také užitečná v režimu DAX, protože operace s metadaty stále používají sémantiku bloků, i když ne. I v případě, že všechny operace aplikace používají soubory mapované paměti se sémantikou DAX, může stále docházet k roztrhaným zápisům pro operace metadat; proto je stále užitečné zapnout BTT.

Podporovaný hardware

Následující tabulka ukazuje podporovaný hardware trvalé paměti pro Azure Stack HCI a Windows Server. Ve Windows Serveru 2019 je trvalá paměť plně podporovaná, včetně Prostory úložiště s přímým přístupem.

Technologie trvalé paměti Windows Server 2016 Azure Stack HCI v20H2 nebo Windows Server 2019
NVDIMM-N v trvalém režimu Podporováno Podporováno
Trvalá paměť Intel Optane™ DC v přímém režimu aplikace Nepodporuje se Podporuje se
Trvalá paměť Intel Optane™ DC v režimu paměti Podporováno Podporováno

Intel Optane DC Persistent Memory podporuje operační režimy memory (volatile) i App Direct (persistent). Pokud chcete jako úložiště použít moduly trvalé paměti, což je primární případ použití serverových úloh, musíte použít režim App Direct. Režim paměti v podstatě využívá trvalou paměť jako pomalejší paměť RAM, která obvykle nesplňuje požadavky na výkon serverových úloh. Režim paměti se liší od jazyka DAX, což je trvalý svazek úložiště, ke kterému je možné přistupovat pomocí sémantiky podobné paměti.

Provozní režim je často předkonfigurován původním výrobcem zařízení.

Poznámka

Když restartujete systém, který má více modulů trvalé paměti Intel® Optane™ v režimu App Direct, které jsou rozdělené do několika pmemDisků, můžete ztratit přístup k některým nebo všem souvisejícím diskům logického úložiště. K tomuto problému dochází ve verzích Windows Serveru 2019, které jsou starší než verze 1903.

K této ztrátě přístupu dochází, protože modul trvalé paměti je netrénovaný nebo jinak selže při spuštění systému. V takovém případě selžou všechny pmemDisky v libovolném modulu trvalé paměti v systému, včetně těch, které se fyzicky nenamapují na modul, který selhal.

Pokud chcete obnovit přístup ke všem pmemDiskům, nahraďte modul, který selhal.

Pokud modul selže na Windows Serveru 2019 verze 1903 nebo novějších verzích, ztratíte přístup pouze k PmemDisks, které se fyzicky mapují na ovlivněný modul. jiného se to netýká.

Konfigurace trvalé paměti

Pokud používáte trvalou paměť Intel Optane, postupujte podle pokynů tady. Pokud používáte moduly trvalé paměti od jiného dodavatele, projděte si jeho dokumentaci.

Pokud chcete vytvořit PmemDisk, který podporuje BTT, použijte rutinu New-VHD :

New-VHD E:\pmemtest.vhdpmem -Fixed -SizeBytes 1GB -AddressAbstractionType BTT

Rozšíření VHD musí být vhdpmem.

Pomocí rutiny můžete také převést virtuální pevný disk, který nemá povolený BTT, na virtuální pevný disk, který to dělá (a naopak Convert-VHD ):

Convert-VHD .\pmemtest_nobtt.vhdpmem -AddressAbstractionType BTT -DestinationPath pmemtest_btt.vhdpmem

Po převodu bude mít nový virtuální pevný disk stejný identifikátor guid oboru názvů jako původní. To může vést k problémům, zejména pokud jsou obě připojené ke stejnému virtuálnímu počítači. Pokud chcete vytvořit nové UUID oboru názvů pro převedený virtuální pevný disk, použijte rutinu Set-VHD :

Set-VHD -ResetDiskIdentifier .\pmemtest_btt.vhdpmem

Principy prokládané sady

Prokládané sady se obvykle dají vytvořit v systému BIOS serverové platformy, aby se v hostitelském operačním systému zobrazovalo několik zařízení s trvalou pamětí jako jeden disk, čímž se zvýší propustnost daného disku.

Poznámka

Windows Server 2016 nepodporuje prokládané sady modulů trvalé paměti.

Vzpomeňte si, že modul trvalé paměti se nachází ve standardním slotu DIMM (memory), který data přibližuje procesoru. Tato konfigurace snižuje latenci a zlepšuje výkon načítání. Za účelem dalšího zvýšení propustnosti vytvoří dva nebo více modulů trvalé paměti n-way prokládané sady pro prokládání operací čtení a zápisu. Nejběžnější konfigurace jsou obousměrné nebo čtyřcestné prokládání.

Konfiguraci takových logických disků můžete zkontrolovat pomocí Get-PmemDisk rutiny PowerShellu následujícím způsobem:

Get-PmemDisk

DiskNumber Size   HealthStatus AtomicityType CanBeRemoved PhysicalDeviceIds UnsafeShutdownCount
---------- ----   ------------ ------------- ------------ ----------------- -------------------
2          252 GB Healthy      None          True         {20, 120}         0
3          252 GB Healthy      None          True         {1020, 1120}      0

Vidíme, že logický disk PMem 2 používá fyzická zařízení Id20 a ID120 a logický disk PMem 3 používá fyzická zařízení Id1020 a ID1120.

Pokud chcete načíst další informace o prokládané sadě, kterou používá logická jednotka, spusťte rutinu Get-PmemPhysicalDevice :

(Get-PmemDisk)[0] | Get-PmemPhysicalDevice

DeviceId DeviceType           HealthStatus OperationalStatus PhysicalLocation FirmwareRevision Persistent memory size Volatile memory size
-------- ----------           ------------ ----------------- ---------------- ---------------- ---------------------- --------------------
20       Intel INVDIMM device Healthy      {Ok}              CPU1_DIMM_C1     102005310        126 GB                 0 GB
120      Intel INVDIMM device Healthy      {Ok}              CPU1_DIMM_F1     102005310        126 GB                 0 GB

Konfigurace prokládané sady

Pokud chcete nakonfigurovat prokládanou sadu, spusťte rutinu Get-PmemUnusedRegion a zkontrolujte všechny oblasti trvalé paměti, které nejsou přiřazené k logickému disku trvalé paměti v systému:

Get-PmemUnusedRegion

RegionId TotalSizeInBytes DeviceId
-------- ---------------- --------
       1     270582939648 {20, 120}
       3     270582939648 {1020, 1120}

Pokud chcete zobrazit všechny informace o zařízení PMem v systému, včetně typu zařízení, polohy, stavu a provozního stavu atd., spusťte rutinu Get-PmemPhysicalDevice :

Get-PmemPhysicalDevice

DeviceId DeviceType           HealthStatus OperationalStatus PhysicalLocation FirmwareRevision Persistent memory size Volatile
                                                                                                                      memory size
-------- ----------           ------------ ----------------- ---------------- ---------------- ---------------------- --------------
1020     Intel INVDIMM device Healthy      {Ok}              CPU2_DIMM_C1     102005310        126 GB                 0 GB
1120     Intel INVDIMM device Healthy      {Ok}              CPU2_DIMM_F1     102005310        126 GB                 0 GB
120      Intel INVDIMM device Healthy      {Ok}              CPU1_DIMM_F1     102005310        126 GB                 0 GB
20       Intel INVDIMM device Healthy      {Ok}              CPU1_DIMM_C1     102005310        126 GB                 0 GB

Vzhledem k tomu, že máme k dispozici nepoužívané oblasti PMem, můžeme vytvořit nové disky s trvalou pamětí. Nepoužívané oblasti můžeme použít k vytvoření několika disků trvalé paměti spuštěním následujících rutin:

Get-PmemUnusedRegion | New-PmemDisk
Creating new persistent memory disk. This may take a few moments.

Po dokončení uvidíme výsledky spuštěním příkazu:

Get-PmemDisk

DiskNumber Size   HealthStatus AtomicityType CanBeRemoved PhysicalDeviceIds UnsafeShutdownCount
---------- ----   ------------ ------------- ------------ ----------------- -------------------
2          252 GB Healthy      None          True         {20, 120}         0
3          252 GB Healthy      None          True         {1020, 1120}      0

Stojí za to poznamenat, že můžeme spustit Get-PhysicalDisk | Where MediaType -eq SCM místo Get-PmemDisk toho, abychom získali stejné výsledky. Nově vytvořený disk trvalé paměti odpovídá 1:1 jednotkám, které se zobrazují v PowerShellu a v Windows Admin Center.

Nahrazení trvalé paměti

Pokud potřebujete nahradit modul, který selhal, musíte disk PMem znovu zprodukovat (postupujte podle kroků, které jsme nastínili dříve).

Při řešení potíží možná budete muset použít Remove-PmemDisk. Tato rutina odebere konkrétní disk s trvalou pamětí. Všechny aktuální disky s trvalou pamětí můžeme odebrat spuštěním následujících rutin:

Get-PmemDisk | Remove-PmemDisk

cmdlet Remove-PmemDisk at command pipeline position 1
Supply values for the following parameters:
DiskNumber: 2

This will remove the persistent memory disk(s) from the system and will result in data loss.
Remove the persistent memory disk(s)?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y
Removing the persistent memory disk. This may take a few moments.

Důležité

Odebrání disku trvalé paměti způsobí na daném disku ztrátu dat.

Další rutina, kterou můžete potřebovat, je Initialize-PmemPhysicalDevice. Tato rutina inicializuje oblasti úložiště popisků na fyzických zařízeních s trvalou pamětí a může vymazat poškozené informace o úložišti popisků na zařízeních.

Get-PmemPhysicalDevice | Initialize-PmemPhysicalDevice

This will initialize the label storage area on the physical persistent memory device(s) and will result in data loss.
Initializes the physical persistent memory device(s)?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): A
Initializing the physical persistent memory device. This may take a few moments.
Initializing the physical persistent memory device. This may take a few moments.
Initializing the physical persistent memory device. This may take a few moments.
Initializing the physical persistent memory device. This may take a few moments.

Důležité

Initialize-PmemPhysicalDevice způsobuje ztrátu dat v trvalé paměti. Použijte ho jenom jako poslední možnost k opravě problémů souvisejících s trvalou pamětí.

Trvalá paměť v akci na konferenci Microsoft Ignite 2018

Pokud se chcete podívat na některé výhody trvalé paměti, podívejme se na toto video z Konference Microsoft Ignite 2018.

Každý systém úložiště, který poskytuje odolnost proti chybám, nutně vytváří distribuované kopie zápisů. Tyto operace musí procházet sítí a zesilovat provoz zápisu back-endu. Z tohoto důvodu se absolutních největších srovnávacích testů IOPS obvykle dosahuje měřením pouze čtení, zejména pokud má úložný systém optimalizaci pro čtení z místní kopie, pokud je to možné. Prostory úložiště s přímým přístupem je k tomu optimalizovaný.

Při měření pouze pomocí operací čtení cluster dodal 13 798 674 IOPS.

Pokud video watch, všimnete si, že ještě větší je latence. Dokonce i při více než 13,7 M IOPS systém souborů ve Windows hlásí latenci, která je konzistentně menší než 40 μs! (To je symbol pro mikrosekundy, jednu miliontu sekundy.) Tato rychlost je řádově rychlejší než to, co typickí dodavatelé all-flash hrdě inzerují dnes.

Společně Prostory úložiště s přímým přístupem ve Windows Serveru 2019 a trvalé paměti Intel® Optane™ DC přinesly převratný výkon. Tento benchmark HCI s více než 13,7m IOPS, doprovázený předvídatelnou a extrémně nízkou latencí, je více než dvojnásobek našeho předchozího špičkového srovnávacího testu 6,7M IOPS. A co víc, tentokrát jsme potřebovali jenom 12 serverových uzlů, což je o 25 procent méně než předtím.

Testovací hardware byl 12serverový cluster nakonfigurovaný tak, aby používal trojcestné zrcadlení a svazky ReFS oddělené. 12 x Intel® S2600WFT, 384 GiB paměti, 2 x 28jádrový "CascadeLake", 1,5 TB trvalé paměti Intel® Optane™ DC jako mezipaměti, 32 TB NVMe (4 x 8 TB Intel® DC P4510) jako kapacita, 2 x Mellanox ConnectX-4 25 Gb/s.

Následující tabulka uvádí úplná čísla výkonu.

Srovnávací test Výkon
4K – 100% náhodné čtení 13,8 milionu IOPS
4K 90/10 % náhodného čtení/zápisu 9,45 milionu IOPS
2 MB sekvenční čtení Propustnost 549 GB/s

Další kroky

Související informace najdete také v tématech: