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 odnosi się do pamięci trwałej, nowego typu magazynu o małych opóźnieniach i wysokiej wydajności. | |
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 odnosi się do dysków półprzewodnikowych, które łączą się za pośrednictwem konwencjonalnych dysków SATA lub SAS. | |
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.
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.
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ą.
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.
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.
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.
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.
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:
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.
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ż: