Donnerstag, 3. Mai 2012

CSV Cache in Hyper-V 3 Server 2012

Cluster Shared Volume hat viele neue Funktionen in Windows Server 2012. Eines der neuen Funktionen ist der "CSV Cache" . CSV Cache  erlaubt es den System Speicher (RAM) des Hosts als einen Art Write-Through Cache zu nutzen. CSV Cache nutzt dies allerdings nur für lese Operationen. (read only unbuffered I/O). Dies beschleunigt die lesezugriffe bei z.B. Hyper-V.

CSV Cache arbeitet mit Block Level Caching, was es ermöglicht kleine Teile der .vhd im Cache bereitzustellen. (File Level Caching könnte nur die gesamte .vhd in den Speicher laden). Es gibt viele Lösungen auf dem Markt die per PCIe Steckkarte oder SSD ähnliches bewirken, Microsoft nimmt hierfür den RAM des Hosts.

CSV Cache ist komplett Cluster fähig.

CSV Cache ist am Besten zu aktiveren wenn es sich um lese intensive VM handelt. Wie z.B. VDI Umgebungen um bei morgendlichen Boot Storms keinen Engpass zu liefern. Aus Gründen des Einsatzzweckes ist CSV Cache per Default deaktiviert.
Es können bis zu 20 % des lokalen Host RAMs als CSV Cache allokiert werden. Allerdings kann bereits mit 512 MB ein enormer und kostengünstiger Vorteil entstehen.

Die Konfiguration des CSV Caches ist nur über 2 PowerShell  Befehle erreichbar.

CsvEnableBlockCache:  Da der CSV Cache nur per Volume (CSV) freigegeben wird und keine globale Aktivierung ist, können schreib intensive VMs auf einer anderen CSV liegen als die lese intensiven VMs. Der Default Wert ist 0

SharedVolumeBlockCacheSizeInMB : Das ist eine Cluster Globale Variable. Bei der Vergabe von 512 MB werden alle Cluster Knoten dies als CSV Cache benutzen.

Konfiguration:
  1. Powershell starten
  2. (Get-Cluster).SharedVolumeBlockCacheSizeInMB = 512
  3. Get-ClusterSharedVolume “Cluster Disk 1” | Set-ClusterParameter  CsvEnableBlockCache 1 
Ziel CSV wird erst dann CSV Cache Enabled nachdem sie Offline und wieder Online gebracht wurde !




PS C:\Users\Administrator> (get-Cluster). SharedVolumeblockcachesizeinMB = 512
PS C:\Users\Administrator> Get-ClusterSharedVolume "Cluster Disk 1" | Set-ClusterParameter Csvenableblockcache 1
WARNING: The properties were stored, but not all changes will take effect until Cluster Disk 1 is taken offline andthen online again.

IOmeter Messung aus einer VM heraus:

RealLife Werte: 40% Sequential, 60% Random, 35% write, 65 % Read, 8KB Blöcke
512 MB Cache
Mit Standard Werten / 512 MB Cache


RealLife Werte: 40% Sequential, 60% Random, 35% write, 65 % Read, 8KB Blöcke
2048 MB Cache

deutliche Verbesserung bei IOPS und avg. Response Time (ms) !


RealLife Werte: 40% Sequential 60% Random 35% write 65 % Read 8KB Blöcke
4096 MB Cache
kleine Veränderungen trotz Verdoppelung des Caches
 

RealLife Werte: 40% Sequential 60% Random 35% write 65 % Read 8KB Blöcke
8192 MB Cache
Performance Veränderungen nur noch sehr klein, hier muss entschieden werden ob der Kosten - Nutzen Effekt noch vorhanden ist.
ohne CSV Cache


512 MB Cache Enabled


2048 MB Cache

Hier ist deutlich zu sehen das die Read Performance deutlich ansteigt im Vergleich zu der CSV ohne Cache.
Interessant auch die Veringerung der Zugriffszeiten bei aktiviertem Cache.

Testumgebung: DELL Equallogic 8HDDs / 1x 1 GBit/s iSCSI Verbindung
Testtools: IOMETER / ATTO

Keine Kommentare:

Kommentar veröffentlichen