Une des nouveautés de Windows Server 2012 au niveau du Failover Clustering est CSV-(Block)Cache, c’est à dire que l’on peut allouer de la mémoire vive en tant que cache write-trough. Cette nouvelle fonctionnalité permet la mise en cache des lectures uniquement (Read Only Unbuffered I/O) non bufferisées par le cache de Windows, ce qui améliore grandement les temps de lecture ! Il est intéressant de noter que le mécanisme de cache agit au niveau bloc et utilise la mémoire vive contrairement à d’autre solutions qui utilisent le SSD-Caching, pour information, la vitesse d’un SSD OCZ est de 1400 Mbps et la mémoire DDR3-2500 est de 20.000 Mbps !
Ce mécanisme de cache sera donc plus efficace dans des scénarios où les lectures sont prédominantes, typiquement des usages VDI mais également pour réduire « les tempêtes » de démarrage de VMs, Scale-Out File Servers, … Microsoft recommande de l »utiliser pour tous vos scénarios, a noter qu’il désactivé par défaut ! Une présentation au TechEd a démontré des gains de performances très appréciables dans un environnement VDI. Le test a été réalisé sur 5120 VMs dans un cluster 16 noeuds avec 320 VMs par noeud, le temps de boot est ainsi passé de 211 secondes à seulement 29 dont 90% bootent en moins de 40 secondes !
La recommandation Microsoft est d’attribuer 20% de la mémoire totale au CSV-Cache, les test Microsoft ont démontrés qu’à partir de 512 Mo les résultats sont déjà très bons (meilleur rapport coût ressource/performance), c’est d’ailleurs la valeur par défaut 😉 Bien entendu, selon votre pattern I/O ou votre charge (workload) vous pouvez augmenter cette valeur.
Le site YUSUFOZTRUK.INFO a réalisé des benchmarks à l’aide de IOMTER sur une VM avec un cache de 4 Go et sans, les résultats sont bons malgré l’usage d’une seule VM ! Un autre benchmark est disponible ici.
Voici les commandes pour définir la taille du cache de la fonctionnalité CSV-Cache:
(Get-Cluster). SharedVolumeBlockCacheSizeInMB = 512
Ensuite, il convient de l’activer à l’aide de cette commande:
Vous pouvez modifier les quantités de mémoire vive uniquement lorsque l’ordinateur virtuel est éteint mais vous pouvez modifier la mémoire tampon et la pondération à tout moment.