Opis i wdrażanie pamięci trwałej
Dotyczy: Azure Stack HCI, wersje 22H2 i 21H2; Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 10
Ważne
Usługa Azure Stack HCI jest teraz częścią usługi Azure Local. Trwa zmiana nazwy dokumentacji produktu. Jednak starsze wersje rozwiązania Azure Stack HCI, na przykład 22H2 będą nadal odwoływać się do rozwiązania Azure Stack HCI i nie będą odzwierciedlać zmiany nazwy. Dowiedz się więcej.
Pamięć trwała (lub PMem) to nowy typ technologii pamięci, która zachowuje swoją zawartość przez cykle zasilania i może być używana jako magazyn najwyższej warstwy, dlatego można usłyszeć, że ludzie nazywają PMem "pamięcią klasy magazynu" lub SCM. W tym artykule przedstawiono podstawowe informacje na temat pamięci trwałej i wyjaśniono, jak wdrożyć ją jako górną warstwę magazynowania w usłudze Azure Stack HCI i systemie Windows Server.
Co to jest pamięć trwała?
Pamięć trwała to typ nośnika nietrwałego, który mieści się w standardowym miejscu DIMM (pamięci). Jest wolniejsza niż pamięć DRAM, ale zapewnia wyższą przepływność niż SSD i NVMe. W porównaniu z pamięcią DRAM moduły pamięci trwałej mają znacznie większe pojemności i są tańsze na GB, jednak nadal są droższe niż NVMe. Zawartość pamięci pozostaje nawet wtedy, gdy zasilanie systemu spadnie w przypadku nieoczekiwanej utraty zasilania, zainicjowanego przez użytkownika zamknięcia lub awarii systemu. Oznacza to, że można używać modułów pamięci trwałej jako ultra-szybki, trwały magazyn.
Usługi Azure Stack HCI i Windows Server 2019 obsługują używanie pamięci trwałej jako pamięci podręcznej lub dysku pojemności. Jednak biorąc pod uwagę model cenowy, pamięć trwała zapewnia największą wartość jako pamięć podręczną lub niewielką ilość dedykowanego magazynu dla danych mapowania pamięci. W większości przypadków trwałe dyski pamięci będą automatycznie używane jako dyski pamięci podręcznej, a wszystkie elementy wolniejsze będą używane jako dyski pojemności. Aby uzyskać więcej informacji na temat konfigurowania pamięci podręcznej i dysków pojemności, zobacz Opis pamięci podręcznej puli magazynów i woluminów planu.
Pojęcia dotyczące pamięci trwałej
W tej sekcji opisano podstawowe pojęcia, które należy zrozumieć, aby wdrożyć pamięć trwałą w środowiskach windows Server i Azure Stack HCI w celu zmniejszenia wąskich gardeł we/wy i zwiększenia wydajności.
Metody dostępu
Istnieją dwie metody uzyskiwania dostępu do pamięci trwałej. Są to:
- Blokuj dostęp, który działa jak magazyn w celu zapewnienia zgodności aplikacji. W tej konfiguracji dane przepływają przez system plików i stosy magazynu w zwykły sposób. Tę konfigurację można używać w połączeniu z systemami plików NTFS i ReFS i jest zalecana w większości przypadków użycia.
- Bezpośredni dostęp (DAX), który działa jak pamięć, aby uzyskać najmniejsze opóźnienie. Język DAX można używać tylko w połączeniu z systemem plików NTFS. Jeśli nie używasz języka DAX poprawnie, istnieje możliwość utraty danych. Zdecydowanie zalecamy używanie języka DAX z włączoną tabelą tłumaczenia blokowego (BTT), aby ograniczyć ryzyko rozdartych zapisów. Aby dowiedzieć się więcej, zobacz Omówienie i konfigurowanie języka DAX.
Ostrzeżenie
Język DAX nie jest obsługiwany w środowiskach rozwiązania Azure Stack HCI. Usługa Azure Stack HCI obsługuje tylko dostęp zablokowany, a protokół BTT jest włączony.
Regiony
Region to zestaw co najmniej jednego modułu pamięci trwałej. Regiony są często tworzone jako zestawy przeplatane, w których wiele modułów pamięci trwałej jest wyświetlanych jako pojedyncza logiczna wirtualna przestrzeń adresowa w celu zwiększenia przepływności. Aby zwiększyć dostępną przepustowość, sąsiadujące adresy wirtualne są rozłożone na wiele modułów pamięci trwałej. Regiony można zwykle tworzyć w systemie BIOS platformy serwera.
PmemDisks
Aby użyć pamięci trwałej jako magazynu, należy zdefiniować co najmniej jeden dysk PmemDisk, który jest wirtualnym dyskiem twardym (VHD) na hoście, który wylicza jako PmemDisk wewnątrz maszyny wirtualnej. PmemDisk to ciągły zakres nietrwałej pamięci, którą można traktować jak partycja dysku twardego lub jednostka LUN. Możesz utworzyć wiele dysków PmemDisk za pomocą poleceń cmdlet programu Windows PowerShell, aby podzielić dostępną pojemność nieprzetworzonej. Każdy moduł pamięci trwałej zawiera obszar magazynu etykiet (LSA), który przechowuje metadane konfiguracji.
Blokuj tabelę tłumaczenia
W przeciwieństwie do dysków półprzewodnikowych moduły pamięci trwałej nie chronią przed "rozdartymi zapisami", które mogą wystąpić w przypadku awarii zasilania lub awarii systemu, co naraża dane na ryzyko. 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. Zdecydowanie zalecamy włączenie funkcji BTT w prawie wszystkich przypadkach. Ponieważ BTT jest właściwością PmemDisk, należy ją włączyć po utworzeniu dysku PmemDisk.
W trybie bloku dostępu zalecamy używanie protokołu BTT, ponieważ wszystkie dane będą używać semantyki bloków. Protokół BTT jest również przydatny w trybie języka DAX, ponieważ operacje metadanych nadal używają semantyki bloków, nawet jeśli nie są wykonywane operacje na danych aplikacji. Nawet jeśli wszystkie operacje aplikacji używają plików mapowanych w pamięci z semantykami języka DAX, rozdarte zapisy mogą nadal występować w przypadku operacji metadanych; dlatego włączenie funkcji BTT jest nadal cenne.
Obsługiwany sprzęt
W poniższej tabeli przedstawiono obsługiwany sprzęt pamięci trwałej dla usług Azure Stack HCI i Windows Server. Pamięć trwała jest w pełni obsługiwana w systemie Windows Server 2019, w tym w Miejsca do magazynowania Direct.
Technologia pamięci trwałej | Windows Server 2016 | Azure Stack HCI v20H2/Windows Server 2019 |
---|---|---|
Karta NVDIMM-N w persis tryb namiotu | Obsługiwane | Obsługiwane |
Pamięć trwała intel Optane™ DC w trybie bezpośrednim aplikacji | Nieobsługiwany | Obsługiwane |
Pamięć trwała intel Optane™ DC w trybie pamięci | Obsługiwane | Obsługiwane |
Pamięć trwała intel Optane DC obsługuje tryby operacyjne Pamięć (volatile) i App Direct (trwałe). Aby używać modułów pamięci trwałej jako magazynu, który jest podstawowym przypadkiem użycia obciążeń serwera, należy użyć trybu bezpośredniego aplikacji. Tryb pamięci zasadniczo używa pamięci trwałej jako wolniejszej pamięci RAM, która zwykle nie spełnia wymagań dotyczących wydajności obciążeń serwera. Tryb pamięci różni się od języka DAX, który jest trwałym woluminem magazynu, do którego można uzyskać dostęp przy użyciu semantyki przypominającej pamięć.
Tryb operacyjny jest często wstępnie skonfigurowany przez producenta oryginalnego urządzenia.
Uwaga
Po ponownym uruchomieniu systemu z wieloma modułami pamięci trwałej Intel® Optane™ w trybie bezpośrednim aplikacji podzielonym na wiele dysków PmemDisks można utracić dostęp do niektórych lub wszystkich powiązanych dysków magazynu logicznego. Ten problem występuje w wersjach systemu Windows Server 2019 starszych niż wersja 1903.
Ta utrata dostępu występuje, ponieważ moduł pamięci trwałej jest nieuszkodzony lub w inny sposób kończy się niepowodzeniem po uruchomieniu systemu. W takim przypadku wszystkie dyski PmemDisks w dowolnym module pamięci trwałej w systemie kończą się niepowodzeniem, w tym te, które nie są fizycznie mapowane na moduł, który zakończył się niepowodzeniem.
Aby przywrócić dostęp do wszystkich dysków PmemDisks, zastąp moduł, który zakończył się niepowodzeniem.
Jeśli moduł ulegnie awarii w systemie Windows Server 2019 w wersji 1903 lub nowszej, utracisz dostęp tylko do dysków PmemDisk, które fizycznie mapuje się na dotknięty moduł; nie ma to wpływu na inne osoby.
Konfigurowanie pamięci trwałej
Jeśli używasz pamięci trwałej Intel Optane, postępuj zgodnie z instrukcjami dostępnymi tutaj. Jeśli używasz modułów pamięci trwałej od innego dostawcy, zapoznaj się z jego dokumentacją.
Aby utworzyć dysk PmemDisk obsługujący protokół BTT, użyj New-VHD
polecenia cmdlet :
New-VHD E:\pmemtest.vhdpmem -Fixed -SizeBytes 1GB -AddressAbstractionType BTT
Rozszerzenie dysku VHD musi mieć wartość "vhdpmem".
Możesz również przekonwertować dysk VHD, który nie ma włączonego protokołu BTT na taki, który wykonuje (i odwrotnie) przy użyciu Convert-VHD
polecenia cmdlet :
Convert-VHD .\pmemtest_nobtt.vhdpmem -AddressAbstractionType BTT -DestinationPath pmemtest_btt.vhdpmem
Po przekonwertowaniu nowy wirtualny dysk twardy będzie miał ten sam identyfikator GUID przestrzeni nazw co oryginalny. Może to prowadzić do problemów, zwłaszcza jeśli obie są dołączone do tej samej maszyny wirtualnej. Aby utworzyć nowy identyfikator UUID przestrzeni nazw dla przekonwertowanego wirtualnego dysku twardego, użyj Set-VHD
polecenia cmdlet :
Set-VHD -ResetDiskIdentifier .\pmemtest_btt.vhdpmem
Omówienie przeplatanych zestawów
Zestawy przeplatane można zwykle tworzyć w systemie BIOS platformy serwera, aby wiele urządzeń pamięci trwałej było wyświetlanych jako jeden dysk do systemu operacyjnego hosta, zwiększając przepływność dla tego dysku.
Uwaga
System Windows Server 2016 nie obsługuje przeplatanych zestawów modułów pamięci trwałej.
Pamiętaj, że moduł pamięci trwałej znajduje się w standardowym miejscu dimm (pamięci), które przybliża dane do procesora. Ta konfiguracja zmniejsza opóźnienie i zwiększa wydajność pobierania. Aby jeszcze bardziej zwiększyć przepływność, co najmniej dwa trwałe moduły pamięci tworzą n-way przeplatane zestaw do usuwania operacji odczytu/zapisu. Najbardziej typowe konfiguracje to przeplatanie dwukierunkowe lub czterokierunkowe.
Możesz użyć Get-PmemDisk
polecenia cmdlet programu PowerShell, aby przejrzeć konfigurację takich dysków logicznych w następujący sposób:
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
Widzimy, że dysk logiczny PMem 2 używa urządzeń fizycznych Id20 i Id120, a dysk logiczny PMem 3 używa urządzeń fizycznych Id1020 i Id1120.
Aby pobrać więcej informacji na temat zestawu przeplatanego używanego przez dysk logiczny, uruchom Get-PmemPhysicalDevice
polecenie cmdlet:
(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
Konfigurowanie zestawów przeplatanych
Aby skonfigurować zestaw przeplatany, uruchom Get-PmemUnusedRegion
polecenie cmdlet , aby przejrzeć wszystkie regiony pamięci trwałej, które nie są przypisane do logicznego dysku pamięci trwałej w systemie:
Get-PmemUnusedRegion
RegionId TotalSizeInBytes DeviceId
-------- ---------------- --------
1 270582939648 {20, 120}
3 270582939648 {1020, 1120}
Aby wyświetlić wszystkie informacje o urządzeniu PMem w systemie, w tym typ urządzenia, lokalizację, kondycję i stan operacyjny itd., uruchom Get-PmemPhysicalDevice
polecenie cmdlet:
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
Ponieważ mamy dostępny nieużywany region PMem, możemy utworzyć nowe dyski pamięci trwałej. Za pomocą nieużywanego regionu można utworzyć wiele dysków pamięci trwałej, uruchamiając następujące polecenia cmdlet:
Get-PmemUnusedRegion | New-PmemDisk
Creating new persistent memory disk. This may take a few moments.
Po wykonaniu tej czynności możemy zobaczyć wyniki, uruchamiając polecenie:
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
Warto zauważyć, że możemy uruchomić Get-PhysicalDisk | Where MediaType -eq SCM
zamiast Get-PmemDisk
uzyskać te same wyniki. Nowo utworzony dysk pamięci trwałej odpowiada jeden do jednego z dyskami wyświetlanymi w programie PowerShell i w Centrum administracyjnym systemu Windows.
Zastępowanie pamięci trwałej
Jeśli musisz zamienić moduł, który zakończył się niepowodzeniem, musisz ponownie aprowizacji dysku PMem (zapoznaj się z krokami opisanymi wcześniej).
Podczas rozwiązywania problemów może być konieczne użycie polecenia Remove-PmemDisk
. To polecenie cmdlet usuwa określony dysk pamięci trwałej. Możemy usunąć wszystkie bieżące dyski pamięci trwałej, uruchamiając następujące polecenia cmdlet:
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.
Ważne
Usunięcie dysku pamięci trwałej powoduje utratę danych na tym dysku.
Inne polecenie cmdlet, które może być potrzebne, to Initialize-PmemPhysicalDevice
. To polecenie cmdlet inicjuje obszary przechowywania etykiet na fizycznych urządzeniach pamięci trwałej i może wyczyścić uszkodzone informacje o magazynie etykiet na urządzeniach.
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.
Ważne
Initialize-PmemPhysicalDevice
powoduje utratę danych w pamięci trwałej. Użyj go tylko jako ostateczności, aby rozwiązać trwałe problemy związane z pamięcią.
Pamięć trwała w akcji na konferencji Microsoft Ignite 2018
Aby zobaczyć niektóre zalety pamięci trwałej, przyjrzyjmy się temu filmowi wideo z konferencji Microsoft Ignite 2018.
Każdy system magazynowania, który zapewnia odporność na uszkodzenia, musi sprawiać, że rozproszone kopie zapisów. Takie operacje muszą przechodzić przez sieć i wzmacniać ruch zapisu zaplecza. Z tego powodu bezwzględne największe liczby testów porównawczych liczby operacji we/wy na sekundę są zwykle osiągane przez pomiar tylko operacji odczytu, zwłaszcza jeśli system magazynu ma optymalizacje zdrowego rozsądku w celu odczytu z kopii lokalnej, jeśli jest to możliwe. Miejsca do magazynowania Direct jest zoptymalizowany pod kątem tego celu.
W przypadku pomiaru przy użyciu tylko operacji odczytu klaster dostarczył 13 798 674 operacji we/wy na sekundę.
Jeśli oglądasz film uważnie, zauważysz, że to, co jeszcze bardziej szczęka spada, to opóźnienie. Nawet przy ponad 13,7 M IOPS, system plików w systemie Windows zgłasza opóźnienia, które stale są mniejsze niż 40 μs! (Jest to symbol mikrosekund, jedna milionowa sekundy). Ta prędkość jest o rzędu wielkości szybciej niż to, co typowe wszyscy dostawcy flash dumnie reklamują dzisiaj.
Razem Miejsca do magazynowania Direct w systemach Windows Server 2019 i Intel® Optane™ DC trwałej pamięci zapewnia przełomowe wyniki. Ten test porównawczy HCI ponad 13,7 mln operacji we/wy na sekundę, któremu towarzyszy przewidywalne i bardzo małe opóźnienia, jest ponad dwukrotnie większy niż poprzedni branżowy test porównawczy 6,7 mln operacji we/wy na sekundę. Co więcej, tym razem potrzebowaliśmy tylko 12 węzłów serwera — 25 procent mniej niż wcześniej.
Sprzęt testowy był klastrem 12-serwerowym skonfigurowanym do używania dublowania trójstopniowego i rozdzielanego woluminów systemu plików ReFS, 12 x Intel® S2600WFT, 384 GiB pamięci, 2 x 28-rdzeniowy "CascadeLake" , 1,5 TB pamięci trwałej Intel® Optane™ DC jako pamięć podręczna, 32 TB NVMe (4 x 8 TB Intel® DC P4510) jako pojemność, 2 x Mellanox ConnectX-4 25 Gb/s.
W poniższej tabeli przedstawiono pełne numery wydajności.
Punkt odniesienia | Wydajność |
---|---|
Odczyt losowy 4K 100% | 13,8 mln operacji we/wy na sekundę |
Losowy odczyt/zapis 4K 90/10% | 9,45 mln operacji we/wy na sekundę |
Odczyt sekwencyjny 2 MB | Przepływność 549 GB/s |
Następne kroki
Aby uzyskać powiązane informacje, zobacz również: