Az állandó memória megismerése és üzembe helyezése

A következőkre vonatkozik: Azure Stack HCI, 22H2 és 21H2 verzió; Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 10

Az állandó memória (vagy PMem) egy új típusú memóriatechnológia, amely energiaciklusokon keresztül megőrzi a tartalmát, és felső szintű tárolóként használható, ezért előfordulhat, hogy a felhasználók a PMem-et "tárolóosztályú memóriaként" vagy SCM-ként használják. Ez a cikk az állandó memóriáról nyújt hátteret, és ismerteti, hogyan helyezheti üzembe az Azure Stack HCI és a Windows Server legfelső szintű tárolási szintjeként.

Mi az állandó memória?

Az állandó memória olyan nem változékony adathordozó-típus, amely egy szabványos DIMM-tárolóhelyhez illeszkedik. Lassabb, mint a DRAM, de nagyobb átviteli sebességet biztosít, mint az SSD és az NVMe. A DRAM-hez képest az állandó memóriamodulok sokkal nagyobb kapacitásban vannak, és GB-onként kevésbé költségesek, azonban még mindig drágábbak, mint az NVMe. A memória tartalma akkor is megmarad, ha a rendszer teljesítménye váratlan áramkimaradás, felhasználó által kezdeményezett leállítás vagy rendszerösszeomlás esetén leáll. Ez azt jelenti, hogy az állandó memóriamodulokat ultragyors, állandó tárolóként használhatja.

Az Azure Stack HCI és a Windows Server 2019 támogatja az állandó memória gyorsítótárként vagy kapacitásmeghajtóként való használatát. A díjszabási modell alapján azonban az állandó memória a legtöbb értéket gyorsítótárként vagy a memórialeképezési adatok kis mennyiségű dedikált tárterületeként biztosítja. A legtöbb esetben az állandó memóriameghajtók automatikusan gyorsítótár-meghajtókként lesznek használva, és bármi lassabb lesz kapacitásmeghajtóként. A gyorsítótár- és kapacitásmeghajtók beállításáról további információt a Tárolókészlet gyorsítótárának és aKötetek megtervezése című témakörben talál.

Állandó memóriafogalmak

Ez a szakasz azokat az alapfogalmakat ismerteti, amelyeket ismernie kell ahhoz, hogy állandó memóriát helyezzen üzembe Windows Server- és Azure Stack HCI-környezetekben az I/O-szűk keresztmetszetek csökkentése és a teljesítmény javítása érdekében.

Hozzáférési módszerek

Az állandó memória eléréséhez két módszer létezik. Ezek a következők:

  • Letilthatja a hozzáférést, amely a tárolóhoz hasonlóan működik az alkalmazáskompatibilitás érdekében. Ebben a konfigurációban az adatok a szokásos módon haladnak át a fájlrendszeren és a tárolóvermeken. Ezt a konfigurációt az NTFS és a ReFS együttes használatával használhatja, és a legtöbb használati esetben ajánlott.
  • Közvetlen hozzáférés (DAX), amely memóriához hasonlóan működik a legalacsonyabb késés elérése érdekében. A DAX-et csak NTFS-lel kombinálva használhatja. Ha nem megfelelően használja a DAX-t, adatvesztés is lehetséges. Határozottan javasoljuk, hogy a DAX-t a blokkfordítási táblázat (BTT) bekapcsolt használatával használja az elszakított írások kockázatának csökkentése érdekében. További információ: A DAX ismertetése és konfigurálása.

Figyelmeztetés

A DAX nem támogatott az Azure Stack HCI-környezetekben. Az Azure Stack HCI csak a blokkhozzáférést támogatja, ha a BTT be van kapcsolva.

Régiók

A régió egy vagy több állandó memóriamodul készlete. A régiók gyakran egymással összefüggő csoportokként jönnek létre, amelyekben több állandó memóriamodul jelenik meg egyetlen logikai virtuális címtérként az átviteli sebesség növelése érdekében. A rendelkezésre álló sávszélesség növelése érdekében a szomszédos virtuális címek több állandó memóriamodulban is el vannak osztva. A régiók általában a kiszolgálóplatform BIOS-jában hozhatók létre.

PmemDisks

Ha állandó memóriát szeretne tárolóként használni, legalább egy PmemDisk értéket kell megadnia, amely egy virtuális merevlemez (VHD) a gazdagépen, amely pmemDiskként számbaveszi a virtuális gépen (VM) belül. A PmemDisk egy folytonosan megcímzett, nem felejtő memóriatartomány, amely a merevlemez-partícióhoz vagy a LUN-hoz hasonlítható. A rendelkezésre álló nyers kapacitás felosztásához több PmemDisks-t is létrehozhat Windows PowerShell parancsmagok használatával. Minden állandó memóriamodul tartalmaz egy Címketárterületet (LSA), amely a konfigurációs metaadatokat tárolja.

Fordítási tábla letiltása

A szilárdtest-meghajtóktól eltérően az állandó memóriamodulok nem védenek az áramkimaradás vagy rendszerkimaradás esetén előforduló "szakadt írásokkal" szemben, így az adatok veszélybe kerülnek. A BTT csökkenti ezt a kockázatot azáltal, hogy atomi szektorfrissítési szemantikát biztosít az állandó memóriaeszközökhöz, lényegében lehetővé téve a blokkszerű szektorok írását, hogy az alkalmazások elkerülhessék a régi és az új adatok keveredését egy meghibásodási forgatókönyvben. Határozottan javasoljuk, hogy szinte minden esetben kapcsolja be a BTT-t. Mivel a BTT a PmemDisk tulajdonsága, a PmemDisk létrehozásakor be kell kapcsolni.

Blokkelérési módban a BTT használatát javasoljuk, mert minden adat blokkszemantikát fog használni. A BTT DAX módban is hasznos, mert a metaadat-műveletek továbbra is blokkszemanikai műveleteket használnak, még akkor is, ha az alkalmazás adatműveletei nem. Még ha minden alkalmazásművelet memórialeképezett fájlokat használ DAX-szemantikával, a metaadat-műveletek esetében is előfordulhatnak szakadt írások; ezért a BTT bekapcsolása még mindig értékes.

Támogatott hardver

Az alábbi táblázat az Azure Stack HCI és a Windows Server támogatott állandó memóriahardverét mutatja be. Az állandó memória teljes mértékben támogatott a Windows Server 2019-ben, beleértve a Közvetlen tárolóhelyek is.

Állandó memóriatechnológia Windows Server 2016 Azure Stack HCI v20H2/Windows Server 2019
NVDIMM-N állandó módban Támogatott Támogatott
Intel Optane™ DC állandó memória alkalmazás közvetlen módban Nem támogatott Támogatott
Az Intel Optane™ DC állandó memóriája memória módban Támogatott Támogatott

Az Intel Optane DC perzisztens memória támogatja a memória (változékony) és az App Direct (állandó) működési módokat. Az állandó memóriamodulok tárolóként való használatához , amely a kiszolgálói számítási feladatok elsődleges használati esete, közvetlen alkalmazásmódot kell használnia. A memória mód lényegében lassabb RAM-ként használja az állandó memóriát, amely általában nem felel meg a kiszolgálói számítási feladatok teljesítménykövetelményeinek. A memória mód eltér a DAX-tól, amely egy állandó tárolókötet, amely memóriaszerű szemantika használatával érhető el.

Az üzemeltetési módot gyakran előre konfigurálja az eredeti eszköz gyártója.

Megjegyzés

Ha egy olyan rendszert indít újra, amely több, Több PmemDisksre osztott Intel® Optane™ állandó memóriamodullal rendelkezik App Direct módban, előfordulhat, hogy elveszíti a hozzáférést a kapcsolódó logikai tárolólemezek egy részéhez vagy mindegyikéhez. Ez a probléma a Windows Server 2019 1903-nál régebbi verzióiban fordul elő.

Ez a hozzáférés-vesztés azért fordul elő, mert egy állandó memóriamodul nincs betanítva, vagy más módon meghiúsul a rendszer indításakor. Ilyen esetben a rendszer minden állandó memóriamodulján lévő PmemDisks meghibásodik, beleértve azokat is, amelyek fizikailag nem képezhetők le a sikertelen modulra.

Az összes PmemDisks-hozzáférés visszaállításához cserélje le a sikertelen modult.

Ha egy modul meghiúsul a Windows Server 2019 1903-es vagy újabb verzióiban, akkor csak az érintett modulhoz fizikailag megfeleltethető PmemDisks-hez fog hozzáférni; másokat nem érint.

Állandó memória konfigurálása

Ha Intel Optane állandó memóriát használ, kövesse az itt található utasításokat. Ha egy másik gyártótól származó állandó memóriamodulokat használ, tekintse meg a dokumentációjukat.

A BTT-t támogató PmemDisk létrehozásához használja a New-VHD parancsmagot:

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

A VHD-bővítménynek "vhdpmem"-nek kell lennie.

Olyan VHD-t is átalakíthat, amelynél nincs engedélyezve a BTT, és a parancsmag használatával Convert-VHD (és fordítva):

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

Az átalakítás után az új VHD ugyanazzal a névtér GUID azonosítóval fog rendelkezni, mint az eredeti. Ez problémákhoz vezethet, különösen akkor, ha mindkettő ugyanahhoz a virtuális géphez van csatolva. Ha új névtér UUID-azonosítót szeretne létrehozni a konvertált VHD-hez, használja a Set-VHD parancsmagot:

Set-VHD -ResetDiskIdentifier .\pmemtest_btt.vhdpmem

Az interleaved sets ismertetése

Az interleaved készletek általában a kiszolgálóplatform BIOS-jában hozhatók létre, hogy több állandó memóriaeszköz jelenjen meg egyetlen lemezként a gazdagép operációs rendszerében, növelve az adott lemez átviteli sebességét.

Megjegyzés

Windows Server 2016 nem támogatja az állandó memóriamodulok interleaved készletét.

Ne feledje, hogy egy állandó memóriamodul egy szabványos DIMM-tárolóhelyen található, amely közelebb helyezi az adatokat a processzorhoz. Ez a konfiguráció csökkenti a késést, és javítja a beolvasási teljesítményt. Az átviteli sebesség további növelése érdekében két vagy több állandó memóriamodul létrehoz egy n-way interleaved készletet az olvasási/írási műveletek csíkozásához. A leggyakoribb konfigurációk a kétirányú vagy négyirányú összekapcsolás.

A PowerShell-parancsmaggal Get-PmemDisk áttekintheti az ilyen logikai lemezek konfigurációját az alábbiak szerint:

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

Láthatjuk, hogy a 2. logikai PMem-lemez az Id20 és az Id120 fizikai eszközöket, a 3. logikai PMem-lemez pedig az Id1020 és az Id1120 fizikai eszközöket használja.

Ha további információkat szeretne lekérni a logikai meghajtók által használt, egymással összekapcsolt készletről, futtassa a Get-PmemPhysicalDevice parancsmagot:

(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

Interleaved sets konfigurálása

Az interleaved készlet konfigurálásához futtassa a parancsmagot az Get-PmemUnusedRegion összes olyan állandó memóriarégió áttekintéséhez, amely nincs hozzárendelve a rendszer logikai állandó memórialemezéhez:

Get-PmemUnusedRegion

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

A rendszer összes PMem eszközinformációjának megtekintéséhez, beleértve az eszköz típusát, helyét, állapotát és működési állapotát stb., futtassa a Get-PmemPhysicalDevice parancsmagot:

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

Mivel rendelkezésre áll egy nem használt PMem-régió, létrehozhatunk új állandó memórialemezeket. A nem használt régióval több állandó memórialemezt is létrehozhatunk a következő parancsmagok futtatásával:

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

A művelet befejezése után a következő parancs futtatásával láthatjuk az eredményeket:

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

Érdemes megjegyezni, hogy futtathatunk Get-PhysicalDisk | Where MediaType -eq SCM ahelyett Get-PmemDisk , hogy ugyanazokat az eredményeket kapnánk. Az újonnan létrehozott állandó memórialemez megfelel az egy-az-egyhez meghajtóknak, amelyek a PowerShellben és Windows Admin Center jelennek meg.

Állandó memória cseréje

Ha egy meghibásodott modult kell lecserélnie, újra ki kell cserélnie a PMem-lemezt (lásd a korábban ismertetett lépéseket).

A hibaelhárítás során előfordulhat, hogy a parancsot kell használnia Remove-PmemDisk. Ez a parancsmag eltávolít egy adott állandó memórialemezt. Az összes aktuális állandó memórialemezt a következő parancsmagok futtatásával távolíthatjuk el:

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.

Fontos

Az állandó memórialemez eltávolítása adatvesztést okoz a lemezen.

Egy másik parancsmagra lehet szüksége: Initialize-PmemPhysicalDevice. Ez a parancsmag inicializálja a címketárterületeket a fizikai állandó memóriaeszközökön, és törölheti a sérült címketárolási információkat az eszközökön.

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.

Fontos

Initialize-PmemPhysicalDevice adatvesztést okoz az állandó memóriában. Csak végső megoldásként használja az állandó memóriával kapcsolatos problémák megoldásához.

Állandó memória működés közben a Microsoft Ignite 2018-ban

Az állandó memória előnyeinek megtekintéséhez tekintse meg a Microsoft Ignite 2018 videóját.

Minden olyan tárolórendszer, amely hibatűrést biztosít, szükségszerűen elosztott írási másolatokat készít. Az ilyen műveleteknek át kell haladnia a hálózaton, és fel kell fokoznia a háttérbeli írási forgalmat. Ezért az abszolút legnagyobb IOPS-teljesítménytesztszámokat általában csak az olvasások mérésével érik el, különösen akkor, ha a tárolórendszer józan optimalizálásokkal rendelkezik a helyi példányból való olvasáshoz, amikor csak lehetséges. Közvetlen tárolóhelyek erre van optimalizálva.

Ha csak olvasási műveletek használatával mérik, a fürt 13 798 674 IOPS-t szállított.

Ha szorosan watch a videót, észre fogja venni, hogy még inkább a késés az, ami még csepegtetőbb. A Windows fájlrendszere még 13,7 M IOPS-nál is 40 μs-nál kisebb késést jelent! (Ez a mikroszekundum szimbóluma, a másodperc egymilliomod része.) Ez a sebesség nagyságrenddel gyorsabb, mint amit a tipikus minden flash szállítók büszkén hirdetnek ma.

A Windows Server 2019 Közvetlen tárolóhelyek és az Intel® Optane™ DC állandó memóriája együttesen áttörést jelentő teljesítményt nyújtott. Ez a több mint 13,7 millió IOPS-ra vonatkozó HCI-teljesítményteszt kiszámítható és rendkívül alacsony késéssel együtt több mint duplája a korábbi, 6,7 millió IOPS-ra vonatkozó iparágvezető teljesítménytesztnek. Ráadásul ezúttal csak 12 kiszolgálócsomópontra volt szükség, ami 25 százalékkal kevesebb, mint korábban.

A teszthardver egy 12 kiszolgálós fürt volt, amely úgy lett konfigurálva, hogy háromutas tükrözést és tagolt ReFS-köteteket használjon, 12 x Intel® S2600WFT, 384 GiB memória, 2 x 28 magos "CascadeLake", 1,5 TB Intel® Optane™ DC állandó memória gyorsítótárként, 32 TB NVMe (4 x 8 TB Intel® DC P4510) kapacitásként, 2 x Mellanox ConnectX-4 25 Gbps.

Az alábbi táblázat a teljes teljesítményszámokat mutatja.

Külső viszonyítási alap Teljesítmény
4K 100%-os véletlenszerű olvasás 13,8 millió IOPS
4K 90/10% véletlenszerű olvasás/írás 9,45 millió IOPS
2 MB szekvenciális olvasás 549 GB/s átviteli sebesség

Következő lépések

A kapcsolódó információkért lásd még: