Informacje o pamięci podręcznej puli magazynów

Dotyczy: Azure Stack HCI, wersje 22H2 i 21H2; Windows Server 2022, Windows Server 2019

Bezpośrednie miejsca do magazynowania podstawowa technologia wirtualizacji magazynu oparta na rozwiązaniach Azure Stack HCI i Windows Server oferuje wbudowaną pamięć podręczną po stronie serwera w celu zmaksymalizowania wydajności magazynu przy jednoczesnym zmniejszeniu kosztów. Jest to duża, trwała, w czasie rzeczywistym pamięć podręczna do odczytu i zapisu, która jest konfigurowana automatycznie podczas wdrażania. W większości przypadków nie jest wymagane żadne ręczne zarządzanie. Sposób działania pamięci podręcznej zależy od typów obecnych dysków.

Typy dysków i opcje wdrażania

Bezpośrednie miejsca do magazynowania obecnie współpracuje z czterema typami dysków:

Typ dysku Opis
PMem PMem odnosi się do pamięci trwałej, nowego typu magazynu o małych opóźnieniach i wysokiej wydajności.
Nvme NvMe (Non-Volatile Memory Express) odnosi się do dysków półprzewodnikowych, które znajdują się bezpośrednio w magistrali PCIe. Typowe czynniki form to 2,5" U.2, PCIe Add-In-Card (AIC) i M.2. NvMe oferuje większą przepływność operacji we/wy i we/wy z mniejszym opóźnieniem niż jakikolwiek inny typ dysku, który obsługujemy obecnie z wyjątkiem PMem.
SSD Ssd odnosi się do dysków półprzewodnikowych, które łączą się za pośrednictwem konwencjonalnych dysków SATA lub SAS.
HDD HDD odnosi się do obrotowych, magnetycznych dysków twardych, które oferują ogromną pojemność magazynu w niskich kosztach.

Można je łączyć na różne sposoby, które grupujemy w dwie kategorie: "all-flash" i "hybrid". Wdrożenia ze wszystkimi dyskami HDD nie są obsługiwane.

Uwaga

W tym artykule opisano konfiguracje pamięci podręcznej za pomocą dysków NVMe, SSD i HDD. Aby uzyskać informacje na temat używania pamięci trwałej jako pamięci podręcznej, zobacz Omówienie i wdrażanie pamięci trwałej.

Możliwości wdrażania wszystkich flash

Wdrożenia all-flash mają na celu zmaksymalizowanie wydajności magazynu i nie obejmują hdd.

Diagram przedstawia wdrożenia all-flash, w tym NVMe dla pojemności, NVMe dla pamięci podręcznej z dyskiem SSD dla pojemności i SSD dla pojemności.

Możliwości wdrażania hybrydowego

Wdrożenia hybrydowe mają na celu zrównoważenie wydajności i pojemności lub zmaksymalizowanie pojemności i dołączenie dysku TWARDEgo.

Diagram przedstawia wdrożenia hybrydowe, w tym NVMe dla pamięci podręcznej z dyskiem HDD dla pojemności, SSD dla pamięci podręcznej z dyskiem HDD dla pojemności i NVMe dla pamięci podręcznej z hdd plus SSD dla pojemności.

Uwaga

Wdrożenie hybrydowe nie jest obsługiwane w konfiguracji pojedynczego serwera. Wszystkie płaskie konfiguracje typu pojedynczego magazynu (na przykład all-NVMe lub all-SSD) są jedynym obsługiwanym typem magazynu dla pojedynczego serwera.

Dyski pamięci podręcznej są wybierane automatycznie

W przypadku wdrożeń z wieloma typami dysków Bezpośrednie miejsca do magazynowania automatycznie używa wszystkich dysków najszybszego typu do buforowania. Pozostałe dyski są używane jako magazyn.

Który typ jest "najszybszy" jest określany zgodnie z następującą hierarchią.

Diagram przedstawia typy dysków rozmieszczone szybciej, aby wolniejsze w kolejności NVMe, SSD, nieoznaczonego dysku reprezentującego dysk HDD.

Jeśli na przykład masz dyski NVMe i SSD, urządzenie NVMe będzie buforowane dla dysków SSD.

Jeśli masz dyski SSD i dyski HDD, dyski SSD będą buforowane dla dysków HDD.

Uwaga

Dyski pamięci podręcznej nie współtworzyją pojemności magazynu do klastra. Wszystkie dane przechowywane w pamięci podręcznej są również przechowywane w innym miejscu lub będą przechowywane po jego usunięciu. Oznacza to, że łączna pojemność magazynu pierwotnego klastra jest sumą tylko dysków pojemności.

Gdy wszystkie dyski są tego samego typu, żadna pamięć podręczna nie jest konfigurowana automatycznie. Istnieje możliwość ręcznego skonfigurowania dysków o większej wytrzymałości w pamięci podręcznej dla dysków o mniejszej wytrzymałości tego samego typu — zobacz sekcję Konfiguracja ręczna , aby dowiedzieć się, jak.

Porada

W niektórych przypadkach użycie pamięci podręcznej puli magazynów nie ma sensu. Na przykład we wdrożeniach all-NVMe lub all-SSD, zwłaszcza w bardzo małej skali, brak dysków "wydanych" w pamięci podręcznej może zwiększyć wydajność magazynu i zmaksymalizować wydajność. Podobnie małe wdrożenia biur zdalnych lub oddziałów mogą mieć ograniczone miejsce na dyski pamięci podręcznej.

Zachowanie pamięci podręcznej jest ustawiane automatycznie

Zachowanie pamięci podręcznej jest określane automatycznie na podstawie typów dysków, dla których są buforowane. Buforowanie dysków flash (takich jak buforowanie NVMe dla dysków SSD) powoduje buforowanie tylko zapisów. W przypadku buforowania obracających się dysków dyskowych (takich jak buforowanie dysków SSD dla dysków HDD) operacje odczytu i zapisu są buforowane.

Diagram porównujący buforowanie dla wszystkich flash, gdzie zapisy są buforowane i odczyty nie są, z użyciem hybrydowego, gdzie zarówno odczyty, jak i zapisy są buforowane.

Buforowanie tylko do zapisu dla wdrożeń all-flash

Buforowanie może być używane w scenariuszu all-flash, na przykład przy użyciu nvMe jako pamięci podręcznej w celu przyspieszenia wydajności dysków SSD. W przypadku buforowania we wszystkich wdrożeniach flash buforowane są tylko zapisy. Zmniejsza to zużycie dysków pojemnościowych, ponieważ wiele zapisów i ponownych zapisów może połączyć się w pamięci podręcznej, a następnie de-stage tylko w razie potrzeby, zmniejszając skumulowany ruch do dysków pojemności i wydłużając ich żywotność. Z tego powodu zalecamy wybranie dysków o wyższej wytrzymałości, zoptymalizowanych pod kątem zapisu dla pamięci podręcznej. Dyski pojemności mogą mieć dość niższą wytrzymałość zapisu.

Ponieważ operacje odczytu nie wpływają znacząco na żywotność pamięci flash, a dyski SSD powszechnie oferują małe opóźnienie odczytu, odczyty nie są buforowane: są one obsługiwane bezpośrednio z dysków pojemności (z wyjątkiem sytuacji, gdy dane zostały zapisane tak niedawno, że nie zostały jeszcze zde-staged). Dzięki temu pamięć podręczna może być dedykowana całkowicie do zapisu, maksymalizując jego skuteczność.

Powoduje to, że cechy zapisu, takie jak opóźnienie zapisu, są podyktowane przez dyski pamięci podręcznej, podczas gdy cechy odczytu są dyktowane przez dyski pojemności. Oba są spójne, przewidywalne i jednolite.

Buforowanie odczytu/zapisu dla wdrożeń hybrydowych

W przypadku buforowania dysków HDD zarówno odczyty, jak i zapisy są buforowane, aby zapewnić opóźnienie podobne do flash (często ok. 10x lepsze) dla obu tych operacji. Pamięć podręczna odczytu przechowuje ostatnio i często odczytywane dane w celu szybkiego dostępu i zminimalizowania losowego ruchu do dysków HDD. (Ze względu na opóźnienia wyszukiwania i rotacji opóźnienie i utracony czas poniesionych przez losowy dostęp do dysku TWARDEgo jest znaczący). Zapisy są buforowane w celu pochłaniania wybuchów i, tak jak wcześniej, do łączenie zapisów i ponownego zapisu oraz minimalizowanie skumulowanego ruchu do dysków pojemności.

Bezpośrednie miejsca do magazynowania implementuje algorytm, który usuwa losowe zapisy przed ich de-przemieszczaniem, aby emulować wzorzec we/wy na dysk, który wydaje się sekwencyjny, nawet gdy rzeczywisty we/wy pochodzący z obciążenia (np. maszyn wirtualnych) jest losowy. Pozwala to zmaksymalizować liczbę operacji we/wy na sekundę i przepływność do dysków HDD.

Buforowanie we wdrożeniach za pomocą dysków NVMe, SSD i HDD

Gdy dyski wszystkich trzech typów są obecne, dyski NVMe zapewniają buforowanie zarówno dla dysków SSD, jak i dysków HDD. Zachowanie jest tak jak opisano powyżej: tylko zapisy są buforowane dla dysków SSD, a zarówno odczyty, jak i zapisy są buforowane dla dysków HDD. Obciążenie buforowaniem dla dysków HDD jest dystrybuowane równomiernie wśród dysków pamięci podręcznej.

Podsumowanie

W tej tabeli przedstawiono podsumowanie dysków używanych do buforowania, które są używane do obsługi pojemności oraz jakie jest zachowanie buforowania dla każdej możliwości wdrożenia.

Wdrożenie Dyski pamięci podręcznej Dyski pojemności Zachowanie pamięci podręcznej (ustawienie domyślne)
Wszystkie urządzenia NVMe Brak (opcjonalnie: ręczne konfigurowanie) Nvme Tylko do zapisu (jeśli skonfigurowano)
Wszystkie dyski SSD Brak (opcjonalnie: ręczne konfigurowanie) SSD Tylko do zapisu (jeśli skonfigurowano)
NVMe + SSD Nvme SSD Tylko zapis
NVMe + HDD Nvme HDD Odczyt + zapis
SSD + HDD SSD HDD Odczyt + zapis
NVMe + SSD + HDD Nvme SSD + HDD Odczyt i zapis dla dysków HDD, tylko do zapisu dla dysków SSD

Architektura po stronie serwera

Pamięć podręczna jest implementowana na poziomie dysku: poszczególne dyski pamięci podręcznej na jednym serwerze są powiązane z jednym lub wieloma dyskami pojemności na tym samym serwerze.

Ponieważ pamięć podręczna znajduje się poniżej pozostałej części stosu magazynu zdefiniowanego przez oprogramowanie systemu Windows, nie ma ani nie potrzebuje żadnej świadomości pojęć, takich jak Miejsca do magazynowania lub odporność na uszkodzenia. Można o tym myśleć jako o tworzeniu "hybrydowych" (część flash, część dysk) dysków, które są następnie prezentowane w systemie operacyjnym. Podobnie jak w przypadku rzeczywistego dysku hybrydowego, ruch gorących i zimnych danych w czasie rzeczywistym między szybszymi i wolniejszymi częściami nośnika fizycznego jest prawie niewidoczny na zewnątrz.

Biorąc pod uwagę, że odporność w Bezpośrednie miejsca do magazynowania jest co najmniej na poziomie serwera (co oznacza, że kopie danych są zawsze zapisywane na różnych serwerach; co najwyżej jedna kopia na serwer), dane w pamięci podręcznej korzystają z tej samej odporności, co dane nie w pamięci podręcznej.

Diagram przedstawia trzy serwery przyłączone przez dublowanie trzykierunkowe w warstwie miejsca do magazynowania, która uzyskuje dostęp do warstwy pamięci podręcznej dysków NVMe, które uzyskują dostęp do nieoznakowanych dysków pojemności.

Na przykład w przypadku korzystania z dublowania trójkierunkowego trzy kopie danych są zapisywane na różnych serwerach, gdzie znajdują się w pamięci podręcznej. Niezależnie od tego, czy są one później odsecenowane, czy nie, trzy kopie zawsze będą istnieć.

Powiązania dysków są dynamiczne

Powiązanie między pamięcią podręczną a dyskami pojemności może mieć dowolny stosunek z zakresu od 1:1 do 1:12 i nowszych. Dostosowuje się dynamicznie za każdym razem, gdy dyski są dodawane lub usuwane, na przykład podczas skalowania w górę lub po awariach. Oznacza to, że można niezależnie dodawać dyski pamięci podręcznej lub dyski pojemności, zawsze wtedy, gdy chcesz.

Animowany diagram przedstawia dynamiczne mapowanie dwóch dysków pamięci podręcznej NVMe na pierwsze cztery, a następnie sześć, a następnie osiem dysków pojemności.

Zalecamy, aby liczba dysków pojemności zawierała wielokrotność liczby dysków pamięci podręcznej na potrzeby symetrii. Jeśli na przykład masz 4 dyski pamięci podręcznej, wydajność będzie większa niż 8 dysków pojemności (stosunek 1:2) niż 7 lub 9.

Obsługa błędów dysków pamięci podręcznej

Gdy dysk pamięci podręcznej zakończy się niepowodzeniem, wszystkie operacje zapisu, które nie zostały jeszcze de-staged, zostaną utracone na serwerze lokalnym, co oznacza, że istnieją one tylko na innych kopiach (na innych serwerach). Podobnie jak po każdym innym awarii dysku, Miejsca do magazynowania może i automatycznie odzyskuje, konsultując się z ocalałymi kopiami.

W krótkim okresie dyski pojemności powiązane z utraconym dyskiem pamięci podręcznej będą wyglądać w złej kondycji. Po ponownym powiązaniu pamięci podręcznej (automatycznej) i zakończeniu naprawy danych (automatycznej) zostaną wznowione wyświetlanie jako w dobrej kondycji.

W tym scenariuszu wymagane są co najmniej dwa dyski pamięci podręcznej na serwer w celu zachowania wydajności.

Animowany diagram przedstawia dwa dyski pamięci podręcznej SSD mapowane na sześć dysków pojemności do momentu awarii jednego dysku pamięci podręcznej, co powoduje mapowanie wszystkich sześciu dysków na pozostały dysk pamięci podręcznej.

Następnie możesz zastąpić dysk pamięci podręcznej tak samo jak każdy inny zamiennik dysku.

Uwaga

Może być konieczne wyłączenie w dół, aby bezpiecznie zastąpić nvme, który jest Add-In Card (AIC) lub M.2 form factor.

Relacja z innymi pamięciami podręcznymi

Istnieje kilka innych niepowiązanych pamięci podręcznych w stosie magazynu zdefiniowanego programowo w systemie Windows. Przykłady obejmują Miejsca do magazynowania pamięci podręcznej zapisu i pamięci podręcznej odczytu udostępnionego woluminu klastra (CSV).

W usłudze Azure Stack HCI pamięć podręczna zapisu Miejsca do magazynowania nie powinna być modyfikowana z domyślnego zachowania. Na przykład nie należy używać parametrów, takich jak -WriteCacheSize w poleceniu cmdlet New-Volume .

Możesz użyć pamięci podręcznej CSV, a nie — to do Ciebie. Jest on domyślnie włączony w usłudze Azure Stack HCI, ale nie powoduje konfliktu z pamięcią podręczną opisaną w tym temacie w żaden sposób. W niektórych scenariuszach może to zapewnić cenne zyski z wydajności. Aby uzyskać więcej informacji, zobacz Use the CSV in-memory read cache with Azure Stack HCI (Używanie pamięci podręcznej odczytu w pamięci za pomocą rozwiązania Azure Stack HCI).

Konfiguracja ręczna

W przypadku większości wdrożeń konfiguracja ręczna nie jest wymagana. Jeśli jest to potrzebne, zapoznaj się z poniższymi sekcjami.

Jeśli po skonfigurowaniu musisz wprowadzić zmiany w modelu urządzenia pamięci podręcznej, zmodyfikuj dokument Składniki pomocy technicznej usługi kondycji, zgodnie z opisem w temacie Przegląd usługi kondycji.

Określanie modelu dysku pamięci podręcznej

We wdrożeniach, w których wszystkie dyski są tego samego typu, takie jak wdrożenia all-NVMe lub all-SSD, nie skonfigurowano pamięci podręcznej, ponieważ system Windows nie może odróżnić cech, takich jak wytrzymałość zapisu automatycznie wśród dysków tego samego typu.

Aby użyć dysków o wyższej wytrzymałości do pamięci podręcznej dla dysków o mniejszej wytrzymałości tego samego typu, można określić, który model dysku ma być używany z parametrem -CacheDeviceModel polecenia cmdlet Enable-ClusterS2D . Wszystkie dyski tego modelu będą używane do buforowania.

Porada

Pamiętaj, aby dopasować ciąg modelu dokładnie tak, jak pokazano w danych wyjściowych polecenia Get-PhysicalDisk.

Przykład

Najpierw pobierz listę dysków fizycznych:

Get-PhysicalDisk | Group Model -NoElement

Oto kilka przykładowych danych wyjściowych:

Count Name
----- ----
    8 FABRIKAM NVME-1710
   16 CONTOSO NVME-1520

Następnie wprowadź następujące polecenie, określając model urządzenia pamięci podręcznej:

Enable-ClusterS2D -CacheDeviceModel "FABRIKAM NVME-1710"

Możesz sprawdzić, czy przeznaczone dyski są używane do buforowania, uruchamiając polecenie Get-PhysicalDisk w programie PowerShell i sprawdzając, czy ich właściwość Usage mówi "Dziennik".

Możliwości wdrażania ręcznego

Konfiguracja ręczna umożliwia następujące możliwości wdrażania:

Diagram przedstawia możliwości wdrażania, w tym NVMe dla pamięci podręcznej i pojemności, ssd zarówno dla pamięci podręcznej, jak i pojemności, oraz SSD dla pamięci podręcznej i mieszanego dysku SSD i HDD dla pojemności.

Ustawianie zachowania pamięci podręcznej

Istnieje możliwość zastąpienia domyślnego zachowania pamięci podręcznej. Można na przykład ustawić ją na buforowanie odczytów nawet we wdrożeniu all-flash. Odradzamy modyfikowanie zachowania, chyba że masz pewność, że ustawienie domyślne nie odpowiada Twojemu obciążeniu.

Aby zastąpić zachowanie, użyj polecenia cmdlet Set-ClusterStorageSpacesDirect i jego parametrów -CacheModeSSD i -CacheModeHDD . Parametr CacheModeSSD ustawia zachowanie pamięci podręcznej podczas buforowania dysków SSD. Parametr CacheModeHDD ustawia zachowanie pamięci podręcznej podczas buforowania dysków HDD.

Aby sprawdzić, czy zachowanie zostało ustawione, można użyć polecenia Get-ClusterStorageSpacesDirect .

Przykład

Najpierw pobierz ustawienia Bezpośrednie miejsca do magazynowania:

Get-ClusterStorageSpacesDirect

Oto kilka przykładowych danych wyjściowych:

CacheModeHDD : ReadWrite
CacheModeSSD : WriteOnly

Następnie wykonaj następujące czynności:

Set-ClusterStorageSpacesDirect -CacheModeSSD ReadWrite

Get-ClusterS2D

Oto kilka przykładowych danych wyjściowych:

CacheModeHDD : ReadWrite
CacheModeSSD : ReadWrite

Ustalanie rozmiaru pamięci podręcznej

Pamięć podręczna powinna mieć rozmiar, aby pomieścić zestaw roboczy (dane są aktywnie odczytywane lub zapisywane w dowolnym momencie) aplikacji i obciążeń.

Jest to szczególnie ważne w przypadku wdrożeń hybrydowych z dyskami twardymi. Jeśli aktywny zestaw roboczy przekracza rozmiar pamięci podręcznej lub jeśli aktywny zestaw roboczy dryfuje zbyt szybko, błędy pamięci podręcznej odczytu wzrosną, a zapisy będą musiały zostać bardziej agresywne, co zaszkodzi ogólnej wydajności.

W systemie Windows można użyć wbudowanego narzędzia monitor wydajności (PerfMon.exe), aby sprawdzić szybkość chybień pamięci podręcznej. W szczególności można porównać liczbę operacji odczytu/s pamięci podręcznej z licznika dysk hybrydowy magazynu klastra ustawionym na ogólną liczbę operacji we/wy odczytu wdrożenia. Każdy dysk hybrydowy odpowiada jednemu dyskowi pojemności.

Na przykład 2 dyski pamięci podręcznej powiązane z 4 dyskami pojemności powoduje 4 wystąpienia obiektów "Dysk hybrydowy" na serwer.

Monitor wydajności.

Nie ma reguły uniwersalnej, ale jeśli brakuje pamięci podręcznej zbyt wielu operacji odczytu, może to być niedostateczne i należy rozważyć dodanie dysków pamięci podręcznej w celu rozszerzenia pamięci podręcznej. Dyski pamięci podręcznej lub dyski pojemności można dodawać niezależnie za każdym razem, gdy chcesz.

Następne kroki

Aby uzyskać dodatkową wiedzę na temat magazynu, zobacz również: