W Windows Server 2012/2012R2 wprowadzono dość ciekawą, ale mało udokumentowaną funkcjonalność, która pozwala na wykorzystanie pamięci RAM serwerów w klastrze dla przyspieszenia operacji zapisu i odczytu na storage. Rozwiązanie generalnie pozwala nawet na kilkakrotnie zwiększenie ilość IOPS dla odczytu i kilkunastoprocentowe dla zapisu.
Domyślnie funkcja jest wyłączona (w Windows Server 2012), bowiem jej włączenie i konfiguracja jest zależna od celu wykorzystywania Cache. Rozwiązanie jest wbudowane w funkcje klastra i jego ustawienie nie wymaga operacji na poszczególnych węzłach.
Microsoft zaleca nie przekraczanie dla rozmiaru cache 20% ilości pamięci fizycznej w przypadku serwerów Windows Server 2012 oraz 80% w przypadku Windows Server 2012 R2. Rozwiązanie jest zalecane dla Hyper-V oraz Scale-Out File Servers.
Dla rozwiązań Hyper-V zalecane jest użycie niedużych rozmiarów cache – można zacząć od 512MB i zwiększać ją do 1GB, 2GB i więcej. Natomiast dla Scale-Out File Server powinno się użyć większych rozmiarów.
Konfiguracja dla Windows Server 2012
Z poziomu Powershell (tryb administracyjny) wywołaj polecenie dla utworzenia np. 1GB rozmiaru cache:
(Get-Cluster).SharedVolumeBlockCacheSizeInMB = 1024
Oraz wykonaj polecenia włączenia Cache na poszczególnych dyskach:
Get-ClusterSharedVolume "Cluster Disk 1" | Set-ClusterParameter CsvEnableBlockCache 1
Po wydaniu powyższych poleceń warto jeszcze przenieść obsługę dysku na inny węzeł – tak by konfiguracja została aktywowana. Zalecany jest też restart poszczególnych serwerów.
Konfiguracja dla Windows Server 2012 R2
Z poziomu Powershell (tryb administracyjny) wywołaj polecenie dla utworzenia np. 1GB rozmiaru cache:
(Get-Cluster).BlockCacheSize = 1024
Zmiany zostaną wprowadzone automatycznie.
CSV Cache nie będzie działać w następujących przypadkach.
- jeśli użyjemy Storage Spaces z mechanizmami Tiering (automatyczne rozkładanie danych na dyski SSD i SAS w zależności od częstotliwości dostępu)
- Volumenów deduplikowanych za pomocą systemowego rozwiązania do deduplikacji danych.
- Volumenów z partycją typu ReFS z włączonym integrity stream.
Monitorowanie działania CSV Cache
Do monitorowania stanu wykorzystania Cache można posłużyć się licznikami z Performance Monitor. Służy do tego sekcja „Cluster CSV Volume Cache” z następującymi licznikami:
Monitoring ilości operacji I/O z cache:
- Cache IO Read-Bytes
- Cache IO Read-Bytes/Sec
- Cache Read
- Cache Read/Sec
Monitoring ilości operacji I/O z dysków fizycznych:
- Disk IO Read-Bytes
- Disk IO Read-Bytes/Sec
- Disk Read
- Disk Read/Sec
Monitoring łącznej ilości operacji I/O:
- IO Read-Bytes
- IO Read-Bytes/Sec
- IO Read
- IO Read/Sec
na podstawie: http://blogs.msdn.com/b/clustering/archive/2013/07/19/10286676.aspx
oraz http://www.thomasmaurer.ch/2012/04/windows-server-8-csv-cache-benchmark/