Flashcache, pour ceux qui ne l'ont pas vu auparavant, est une méthode pour étendre le cache de blocs Linux avec un lecteur SSD. C'est moins cher que d'exécuter un serveur avec une demi-To de RAM juste pour la mise en cache.
Est-ce que cela fonctionnera même?
Cela devrait. Le cache de blocs Linux fonctionne en mettant en cache les blocs accédés , pas les fichiers . Tant que vous ne donnez pas aux machines KVM un accès direct aux périphériques de bloc (vous ne l'êtes pas), le cache de blocs Linux sera en jeu. Toutefois, si vous êtes donnez des machines KVM accès bloc périphérique directement la réponse , il est moins clair.
Si vous utilisez des disques virtuels sauvegardés sur fichiers, cela fonctionnera certainement.
Si vous utilisez des disques virtuels soutenus par LV, je ne sais pas.
Dans quelle mesure puis-je m'attendre à augmenter les performances?
C'est une chose à laquelle nous ne pouvons pas répondre. Cela dépend d'une variété de choses. Dans l'abstrait, vous obtiendrez les meilleures performances pour dimensionner votre SSD afin qu'il soit plus grand que l'ensemble de blocs actif. Si vous obtenez une mise en cache parfaite, vos performances seront similaires à l'exécution de l'ensemble de votre système sur des SSD. Ce que vous ferez effectivement.
Quelle doit être la taille du SSD?
Nous ne pouvons pas vous aider à trouver la taille exacte dont vous avez besoin. Plus c'est mieux, bien sûr, mais trouver le rapport exact entre cache-SSD et stockage principal n'est pas une mince affaire.
Pour compliquer cela, les écritures doivent être vidées immédiatement, telles que certaines opérations du système de fichiers et certaines configurations de base de données. Ces écritures ne seront que brièvement mises en cache et leurs performances ne seront en aucun cas affectées par la présence ou l'absence de flashcache.
Que se passe-t-il si le SSD meurt?
La même chose se produit lorsque vous dites à Linux de supprimer les caches mais avec une torsion. Avec les drop-caches, toutes les écritures non vidées qui se trouvent dans le cache de bloc seront vidées sur le disque. Ce qui se passe lorsque le SSD disparaît dépend du mode de mise en cache :
Writethrough : Toutes les écritures sont écrites dans le cache et le stockage principal en parallèle, de sorte que les risques d'une perte soudaine de SSD provoquant des erreurs sur les machines virtuelles sont très faibles.
Contournement : toutes les écritures sont écrites sur le stockage principal et mises en cache uniquement lors de la lecture. Aucune chance d'erreurs dans les VM.
Écriture différée : toutes les écritures vont d'abord dans le cache et sont écrites sur le stockage principal en arrière-plan. Les plus susceptibles de provoquer des erreurs dans vos machines virtuelles en cas de défaillance du SSD, et je n'utiliserais pas ce mode en production.
Combien plus rapide serait l'écriture différée par rapport à l'écriture et à l'écriture?
Cela dépend de la quantité d'écriture que vous faites. Si vos écritures saturent périodiquement votre stockage principal, l'augmentation des performances pourrait être assez importante. Si vous êtes principalement lu avec un peu d'écriture, vous ne remarquerez probablement pas d'améliorations.
De plus, l'écriture différée est une mauvaise politique pour ce que vous faites, alors ne l'utilisez pas.