Udostępnij za pośrednictwem


Opis pamięci podręcznej puli magazynów

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

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.

Miejsca do magazynowania Direct, 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 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

Miejsca do magazynowania Direct 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 wyższą przepływność operacji we/wy i operacji 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 przy 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 TWARDYMi nie są obsługiwane.

Uwaga

W tym artykule opisano konfiguracje pamięci podręcznej z dyskami 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 wszystkich dysków flash mają na celu zmaksymalizowanie wydajności magazynu i nie obejmują dysków HDD.

Diagram przedstawia wdrożenia wszystkich dysków flash, w tym NVMe dla pojemności, NVMe dla pamięci podręcznej z dyskami SSD dla pojemności i ssd dla pojemności.

Możliwości wdrożenia 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 hdd dla pojemności, SSD dla pamięci podręcznej z 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

We wdrożeniach z wieloma typami dysków usługa Miejsca do magazynowania Direct automatycznie używa wszystkich dysków najszybszego typu do buforowania. Pozostałe dyski są używane do obsługi pojemności.

Typ "najszybszy" jest określany zgodnie z następującą hierarchią.

Diagram przedstawia typy dysków rozmieszczone szybciej w kolejności NVMe, SSD, dysku bez etykiet reprezentującego hdd.

Jeśli na przykład masz dyski NVMe i SSD, dysk NVMe będzie buforowany 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ą użytecznej pojemności magazynu w klastrze. Wszystkie dane przechowywane w pamięci podręcznej są również przechowywane w innym miejscu lub zostaną usunięte. Oznacza to, że łączna nieprzetworzona pojemność magazynu klastra jest sumą tylko dysków pojemności.

Jeśli 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 to zrobić.

Napiwek

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 zdalne lub oddziałowe 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 obrotowych dysków (takich jak buforowanie dysków SSD dla dysków HDD) buforowane są zarówno operacje odczytu, jak i zapisu.

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ń wszystkich flash

Buforowanie może być używane w scenariuszu typu all-flash, na przykład użycie nvme jako pamięci podręcznej w celu przyspieszenia wydajności dysków SSD. Podczas 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 łączyć się w pamięci podręcznej, a następnie usuwać tylko w razie potrzeby, zmniejszając skumulowany ruch do dysków pojemnościowych i wydłużając ich żywotność. Z tego powodu zalecamy wybranie dysków o większej wytrzymałości i zoptymalizowanych pod kątem zapisu dla pamięci podręcznej. Dyski pojemności mogą mieć rozsądnie 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óźnienia odczytu, odczyty nie są buforowane: są 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 zdeetapowane). Dzięki temu pamięć podręczna może być przeznaczona całkowicie do zapisu, maksymalizując jego skuteczność.

Powoduje to, że właściwości zapisu, takie jak opóźnienie zapisu, są dyktowane przez dyski pamięci podręcznej, podczas gdy właściwości 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 uzyskania szybkiego dostępu i zminimalizowania losowego ruchu do dysków HDD. (Ze względu na opóźnienia wyszukiwania i rotacji opóźnienie i utratę czasu poniesionego przez losowy dostęp do dysku TWARDEgo jest znaczące). Zapisy są buforowane w celu absorbowania wzrostów i, tak jak wcześniej, łączenie zapisów i ponowne zapisy oraz minimalizowanie skumulowanego ruchu na dyskach pojemnościowych.

Miejsca do magazynowania Direct implementuje algorytm, który usuwa losowe zapisy przed ich wycofaniem, aby emulować wzorzec we/wy na dysk, który wydaje się sekwencyjny nawet wtedy, gdy rzeczywiste operacje we/wy pochodzące z obciążenia (np. maszyn wirtualnych) są losowe. 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 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 dysków HDD jest dystrybuowane równomiernie między dyskami 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 (domyślne)
Wszystkie nvme Brak (opcjonalnie: ręczne konfigurowanie) NvMe Tylko zapis (jeśli jest skonfigurowany)
Wszystkie dyski SSD Brak (opcjonalnie: ręczne konfigurowanie) SSD Tylko zapis (jeśli jest skonfigurowany)
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 programowo w systemie 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ęść dysku) dysków, które następnie są prezentowane systemowi operacyjnemu. Podobnie jak w przypadku rzeczywistego dysku hybrydowego, ruch danych gorących i zimnych 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 Miejsca do magazynowania Direct 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, które nie znajdują się w pamięci podręcznej.

Diagram przedstawia trzy serwery połączone z dublowaniem trzystopniowym 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 dysków pojemności bez etykiet.

Na przykład w przypadku korzystania z dublowania trójstopniowego trzy kopie danych są zapisywane na różnych serwerach, na których znajdują się w pamięci podręcznej. Niezależnie od tego, czy są one później odseetapowane, 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. Jest on dostosowywany 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, za każdym razem, 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 zmianę liczby dysków pojemności na liczbę 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 z 8 dyskami pojemności (współczynnik 1:2) niż 7 lub 9.

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

Gdy dysk pamięci podręcznej ulegnie awarii, wszystkie operacje zapisu, które nie zostały jeszcze cofnięte, zostaną utracone na serwerze lokalnym, co oznacza, że istnieją 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 ocalałych kopii.

Przez krótki okres 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świetlane 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 zamapowane 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, aby bezpiecznie zastąpić nvme, który jest dodatkiem 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 zdefiniowanym programowo w systemie Windows. Przykłady obejmują pamięć podręczną Miejsca do magazynowania zapisu zwrotnego oraz pamięć podręczną 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 ty. 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 w zakresie 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 woluminów CSV 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ługa kondycji zgodnie z opisem w Usługa kondycji omówienie.

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 między dyskami tego samego typu.

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

Napiwek

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 dyski, które mają być używane do buforowania, uruchamiając polecenie Get-PhysicalDisk w programie PowerShell i sprawdzając, czy właściwość Usage ma wartość "Journal".

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 dla pamięci podręcznej i pojemności oraz ssd dla pamięci podręcznej oraz mieszane dyski 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ć go tak, aby buforować odczyty 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 dla dysków SSD. Parametr CacheModeHDD ustawia zachowanie pamięci podręcznej podczas buforowania dla dysku HDD.

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

Przykład

Najpierw pobierz ustawienia Miejsca do magazynowania Direct:

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

Rozmiar pamięci podręcznej powinien być dostosowany do zestawu roboczego (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.

Możesz użyć wbudowanego narzędzia monitor wydajności (PerfMon.exe) w systemie Windows, aby sprawdzić szybkość chybień pamięci podręcznej. W szczególności można porównać chybił odczyty pamięci podręcznej na sekundę z licznika dysk hybrydowy magazynu klastra ustawiony 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 uniwersalnej reguły, ale jeśli brakuje pamięci podręcznej zbyt wielu operacji odczytu, może to być niedowymiarowane i należy rozważyć dodanie dysków pamięci podręcznej w celu rozwinięcia 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ż: