Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Permanent geheugen (of PMem) is een nieuw type geheugentechnologie dat de inhoud ervan behoudt via energiecycli en kan worden gebruikt als opslag op de hoogste laag. Daarom kunnen mensen naar PMem verwijzen als 'storage-class memory' of SCM. In dit artikel vindt u achtergrondinformatie over permanent geheugen en wordt uitgelegd hoe u dit implementeert als de bovenste opslaglaag in Azure Local en Windows Server.
Wat is permanent geheugen?
Permanent geheugen is een type niet-vluchtige media die in een standaard DIMM-sleuf (geheugen) past. Het is langzamer dan DRAM, maar biedt een hogere doorvoer dan SSD en NVMe. In vergelijking met DRAM zijn permanente geheugenmodules veel groter en goedkoper per GB, maar ze zijn nog steeds duurder dan NVMe. Geheugeninhoud blijft zelfs behouden wanneer systeemstroom uitvalt in het geval van een onverwacht stroomverlies, door de gebruiker geïnitieerde afsluiting of systeemcrash. Dit betekent dat u permanente geheugenmodules kunt gebruiken als ultrasnelle, permanente opslag.
Azure Local en Windows Server 2019 ondersteunen het gebruik van permanent geheugen als een cache of een capaciteitsstation. Gezien het prijsmodel biedt permanent geheugen echter de meeste waarde als een cache of als een kleine hoeveelheid toegewezen opslag voor geheugentoewijzingsgegevens. In de meeste gevallen worden permanente geheugenstations automatisch gebruikt als cachestations en wordt alles langzamer gebruikt als capaciteitsstations. Zie Inzicht in de opslagpoolcache en Volumes plannen voor meer informatie over het instellen van cache- en capaciteitsstations.
Concepten voor permanent geheugen
In deze sectie worden de basisconcepten beschreven die u moet begrijpen om permanent geheugen te implementeren in Windows Server- en Azure Local-omgevingen om I/O-knelpunten te verminderen en de prestaties te verbeteren.
Toegangsmethoden
Er zijn twee methoden voor toegang tot permanent geheugen. Dit zijn:
- Toegang blokkeren, die werkt als opslag voor app-compatibiliteit. In deze configuratie stromen gegevens normaal door het bestandssysteem en de opslagstacks. U kunt deze configuratie gebruiken in combinatie met NTFS en ReFS, en het wordt aanbevolen voor de meeste gebruiksvoorbeelden.
- Directe toegang (DAX) die werkt als geheugen om de laagste latentie te krijgen. U kunt DAX alleen gebruiken in combinatie met NTFS. Als u DAX niet correct gebruikt, kan er sprake zijn van gegevensverlies. We raden u ten zeerste aan DAX te gebruiken met BTT (Block Translation Table) ingeschakeld om het risico op gescheurde schrijfbewerkingen te beperken. Zie DAX begrijpen en configureren voor meer informatie.
Warning
DAX wordt niet ondersteund in lokale Azure-omgevingen. Azure Local biedt alleen ondersteuning voor bloktoegang, waarbij BTT is ingeschakeld.
Regions
Een regio is een set van een of meer permanente geheugenmodules. Regio's worden vaak gemaakt als interleaved sets waarin meerdere permanente geheugenmodules worden weergegeven als één logische virtuele adresruimte om de doorvoer te verhogen. Om de beschikbare bandbreedte te verhogen, worden aangrenzende virtuele adressen verdeeld over meerdere permanente geheugenmodules. Regio's kunnen meestal worden gemaakt in het BIOS van een serverplatform.
PmemDisks
Als u permanent geheugen als opslag wilt gebruiken, moet u ten minste één PmemDisk definiëren. Dit is een virtuele harde schijf (VHD) op de host die als een PmemDisk in een virtuele machine (VM) opsommen. Een PmemDisk is een aaneengesloten bereik van niet-vluchtig geheugen dat u kunt beschouwen als een harde schijfpartitie of LUN. U kunt meerdere PmemDisks maken met windows PowerShell-cmdlets om de beschikbare onbewerkte capaciteit te verdelen. Elke permanente geheugenmodule bevat een LSA (Label Storage Area) waarin de metagegevens van de configuratie worden opgeslagen.
Vertaaltabel blokkeren
In tegenstelling tot solid-state drives beschermen permanente geheugenmodules niet tegen 'gescheurde schrijfbewerkingen', wat kan gebeuren bij stroom- of systeemstoringen, waardoor gegevens gevaar lopen. BTT vermindert dit risico door semantiek van atomische sectorupdates te bieden voor peristente geheugenapparaten, waardoor blokachtige sectorschrijfbewerkingen kunnen uitvoeren, zodat apps kunnen voorkomen dat oude en nieuwe gegevens gemengd worden in een foutscenario. We raden u ten zeerste aan om BTT in bijna alle gevallen in te schakelen. Omdat BTT een eigenschap van de PmemDisk is, moet deze worden ingeschakeld wanneer de PmemDisk wordt gemaakt.
In de blokkeringsmodus raden we u aan BTT te gebruiken omdat alle gegevens gebruikmaken van bloksemantiek. BTT is ook handig in de DAX-modus omdat metagegevensbewerkingen nog steeds gebruikmaken van bloksemantiek, zelfs als de gegevensbewerkingen van de toepassing dat niet doen. Zelfs als alle toepassingsbewerkingen geheugen-gemapte bestanden met DAX-semantiek gebruiken, kunnen onderbroken schrijfbewerkingen nog steeds plaatsvinden bij de metagegevensbewerkingen; daarom blijft het inschakelen van BTT waardevol.
Ondersteunde hardware
In de volgende tabel ziet u ondersteunde permanente geheugenhardware voor Azure Local en Windows Server. Permanent geheugen wordt volledig ondersteund in Windows Server 2019, waaronder Opslagruimten Direct.
| Permanente geheugentechnologie | Windows Server 2016 | Azure Local 2311.2 en hoger/Windows Server 2019 en hoger |
|---|---|---|
| NVDIMM-N in permanente modus | Supported | Supported |
| Permanent geheugen van Intel Optane™ DC in de directe modus van de app | Niet ondersteund | Supported |
| Intel Optane™ DC Persistent Memory in geheugenmodus | Supported | Supported |
Intel Optane DC Persistent Memory ondersteunt zowel geheugenmodus (vluchtig) als App Direct (permanente) bedrijfsmodi. Als u permanente geheugenmodules wilt gebruiken als opslag, wat de primaire use case is voor serverworkloads, moet u de modus App Direct gebruiken. De geheugenmodus maakt in feite gebruik van permanent geheugen als trager RAM-geheugen, wat meestal niet voldoet aan de prestatievereisten van serverworkloads. De geheugenmodus verschilt van DAX. Dit is een permanent opslagvolume dat kan worden geopend met behulp van semantiek die lijkt op geheugen.
De bedrijfsmodus wordt vaak vooraf geconfigureerd door de oorspronkelijke fabrikant van het apparaat.
Note
Wanneer u een systeem opnieuw start met meerdere permanente Intel® Optane-geheugenmodules™ in de App Direct-modus die zijn onderverdeeld in meerdere PmemDisks, hebt u mogelijk geen toegang meer tot sommige of alle gerelateerde logische opslagschijven. Dit probleem treedt op in Windows Server 2019-versies die ouder zijn dan versie 1903.
Dit toegangsverlies treedt op omdat een permanente geheugenmodule niet-getraind is of anders mislukt wanneer het systeem wordt gestart. In dat geval mislukken alle PmemDisks op een permanente geheugenmodule op het systeem, inclusief de modules die niet fysiek zijn toegewezen aan de mislukte module.
Vervang de mislukte module om de toegang tot alle PmemDisks te herstellen.
Als een module uitvalt in Windows Server 2019 versie 1903 of nieuwere versies, verliest u alleen toegang tot PmemDisks die fysiek zijn toegewezen aan de desbetreffende module; andere worden niet beïnvloed.
Permanent geheugen configureren
Als u permanent geheugen van Intel Optane gebruikt, volgt u de instructies hier. Als u permanente geheugenmodules van een andere leverancier gebruikt, raadpleegt u de bijbehorende documentatie.
Als u een PmemDisk wilt maken die BTT ondersteunt, gebruikt u de New-VHD cmdlet:
New-VHD E:\pmemtest.vhdpmem -Fixed -SizeBytes 1GB -AddressAbstractionType BTT
De VHD-extensie moet 'vhdpmem' zijn.
U kunt ook een VHD converteren waarvoor BTT niet is ingeschakeld in een VHD die wel (en vice versa) doet met behulp van de Convert-VHD cmdlet:
Convert-VHD .\pmemtest_nobtt.vhdpmem -AddressAbstractionType BTT -DestinationPath pmemtest_btt.vhdpmem
Na het converteren heeft de nieuwe VHD dezelfde naamruimte-GUID als de oorspronkelijke. Dit kan leiden tot problemen, vooral als ze beide zijn gekoppeld aan dezelfde VIRTUELE machine. Als u een nieuwe naamruimte-UUID voor de geconverteerde VHD wilt maken, gebruikt u de Set-VHD cmdlet:
Set-VHD -ResetDiskIdentifier .\pmemtest_btt.vhdpmem
De interleaved sets begrijpen
Interleaved-sets kunnen meestal worden gemaakt in het BIOS van een serverplatform om meerdere permanente geheugenapparaten te laten verschijnen als één schijf naar het hostbesturingssysteem, waardoor de doorvoer voor die schijf toeneemt.
Note
Windows Server 2016 biedt geen ondersteuning voor interleaved sets met permanente geheugenmodules.
Zoals u weet, bevindt een permanente geheugenmodule zich in een standaard DIMM-sleuf (geheugen) waarmee gegevens dichter bij de processor worden geplaatst. Deze configuratie vermindert de latentie en verbetert de prestaties van het ophalen. Om de doorvoer verder te verhogen, creëren twee of meer persistent-geheugenmodules een n-weg interleaved set om stroken van lees-/schrijfbewerkingen uit te voeren. De meest voorkomende configuraties zijn tweeweg- of vierweg-interleave.
U kunt de Get-PmemDisk PowerShell-cmdlet als volgt gebruiken om de configuratie van dergelijke logische schijven te controleren:
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
We kunnen zien dat de logische PMem-schijf 2 gebruikmaakt van de fysieke apparaten Id20 en Id120 en logische PMem-schijf 3 gebruikmaakt van de fysieke apparaten Id1020 en Id1120.
Als u meer informatie wilt ophalen over de interleaved set die door een logische schijf wordt gebruikt, voert u de Get-PmemPhysicalDevice cmdlet uit.
(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 configureren
Als u een interleaved-set wilt configureren, voert u de Get-PmemUnusedRegion cmdlet uit om alle permanente geheugenregio's te controleren die niet zijn toegewezen aan een logische permanente geheugenschijf op het systeem:
Get-PmemUnusedRegion
RegionId TotalSizeInBytes DeviceId
-------- ---------------- --------
1 270582939648 {20, 120}
3 270582939648 {1020, 1120}
Als u alle PMem-apparaatgegevens in het systeem wilt zien, inclusief apparaattype, locatie, status en operationele status, enzovoort, voert u de Get-PmemPhysicalDevice cmdlet uit:
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
Omdat we een beschikbare ongebruikte PMem-regio hebben, kunnen we nieuwe permanente geheugenschijven maken. We kunnen de ongebruikte regio gebruiken om meerdere permanente geheugenschijven te maken door de volgende cmdlets uit te voeren:
Get-PmemUnusedRegion | New-PmemDisk
Creating new persistent memory disk. This may take a few moments.
Nadat dit is voltooid, kunnen we de resultaten zien door het volgende uit te voeren:
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
Het is vermeldenswaard dat we Get-PhysicalDisk | Where MediaType -eq SCM kunnen uitvoeren in plaats van Get-PmemDisk om dezelfde resultaten te krijgen. De zojuist gemaakte persistent geheugen schijf komt een-op-een overeen met schijven die worden weergegeven in PowerShell en in het Windows Admin Center.
Permanent geheugen vervangen
Als u een mislukte module moet vervangen, moet u de PMem-schijf opnieuw inrichten (raadpleeg de stappen die we eerder hebben beschreven).
Wanneer u problemen oplost, moet u mogelijk gebruiken Remove-PmemDisk. Met deze cmdlet wordt een specifieke permanente geheugenschijf verwijderd. We kunnen alle huidige permanente geheugenschijven verwijderen door de volgende cmdlets uit te voeren:
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.
Important
Het verwijderen van een permanente geheugenschijf veroorzaakt gegevensverlies op die schijf.
Een andere cmdlet die u mogelijk nodig hebt, is Initialize-PmemPhysicalDevice. Met deze cmdlet worden de labelopslaggebieden op de fysieke permanente geheugenapparaten geïnitialiseerd en kunnen beschadigde labelopslaggegevens op de apparaten worden gewist.
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.
Important
Initialize-PmemPhysicalDevice veroorzaakt gegevensverlies in permanent geheugen. Gebruik dit alleen als laatste redmiddel om permanente problemen met betrekking tot geheugen op te lossen.
Permanent geheugen in actie op Microsoft Ignite 2018
Bekijk deze video van Microsoft Ignite 2018 om enkele van de voordelen van permanent geheugen te bekijken.
Elk opslagsysteem dat fouttolerantie biedt, maakt noodzakelijkerwijs gedistribueerde kopieën van schrijfbewerkingen. Dergelijke bewerkingen moeten het netwerk doorkruisen en het schrijfverkeer van de back-end versterken. Daarom worden de allerhoogste IOPS-benchmarknummers doorgaans bereikt door alleen het lezen te meten, met name als het opslagsysteem optimalisaties met gezond verstand heeft om indien mogelijk van de lokale kopie te lezen. Storage Spaces Direct is geoptimaliseerd om dit te doen.
Wanneer het cluster wordt gemeten met alleen leesbewerkingen, levert het cluster 13.798.674 IOPS.
Als je de video nauwkeurig bekijkt, zul je opmerken dat de latentie nog verbazingwekkender is. Zelfs bij meer dan 13,7 M IOPS rapporteert het bestandssysteem in Windows latentie die consistent kleiner is dan 40 μs! (Dat is het symbool voor microseconden, een miljoenste van een seconde.) Deze snelheid is een orde van grootte sneller dan wat typische all-flash leveranciers trots adverteren vandaag.
Opslagruimten Direct in Windows Server 2019 en Intel® Optane™ DC bieden samen baanbrekende prestaties. Deze benchmark van meer dan 13,7 MILJOEN IOPS, vergezeld van voorspelbare en extreem lage latentie, is meer dan het dubbele van onze toonaangevende benchmark van 6,7 miljoen IOPS. Bovendien hebben we deze keer slechts 12 serverknooppunten nodig: 25 procent minder dan voorheen.
De testhardware was een cluster van 12 servers dat is geconfigureerd voor het gebruik van spiegeling in drie richtingen en gescheiden ReFS-volumes, 12 x Intel® S2600WFT, 384 GiB-geheugen , 2 x 28-core "CascadeLake", 1,5 TB Intel® Optane™ DC permanent geheugen als cache, 32 TB NVMe (4 x 8 TB Intel® DC P4510) als capaciteit, 2 x Mellanox ConnectX-4 25 Gbps.
In de volgende tabel ziet u de volledige prestatienummers.
| Benchmark | Performance |
|---|---|
| 4K 100% willekeurige leesactie | 13,8 miljoen IOPS |
| 4K 90/10% willekeurige lees-/schrijfbewerkingen | 9,45 miljoen IOPS |
| 2 MB sequentiële leesbewerkingen | Doorvoer van 549 GB/s |
Volgende stappen
Zie ook voor gerelateerde informatie: