Quels sont les avantages / inconvénients des différentes options de cache SSD vers HDD (dm-cache, flashcashe…)?

23

Il semble qu'il existe différentes technologies différentes pour utiliser un SSD pour servir de cache pour les disques durs durs. Ceux que je connais:

  • dm-cache (par Redhat - dans le noyau 3.9, il devrait donc être dans ubuntu 13.10)
  • Flashcache (développé et utilisé par facebook)
  • Bcache (développé et utilisé par Google)
  • EnhanceIO (par STEC; basé sur Flashcache)

Existe-t-il des différences notables dans les différentes implémentations? Laquelle est la meilleure pour une utilisation régulière sur un ordinateur de bureau - pour augmenter les performances des programmes habituels tels que les navigateurs Web ou les jeux?

Uli
la source
Pour augmenter les performances, j'ai trouvé que l'installation d'ubuntu 64 bits fonctionnait très bien, ma machine est devenue encore plus rapide qu'auparavant! En outre, à propos du cache, vous devez utiliser le cache compressé RAM avec ce package zram-configqui aura la priorité sur l'utilisation du swap. Et, stockez le jeu sur le SDD et testez-le. Certains jeux ne fonctionneront pas beaucoup plus rapidement, d'autres fonctionneront très bien! Je préfère ne pas utiliser le SDD en tant que cache en raison de sa limite d'écriture, mais les SDD sont moins chers, donc ce n'est plus tellement un problème :)
Aquarius Power

Réponses:

14

Je ne sais vraiment pas par où commencer, car tout cela est une excellente information. Je vais commencer par quelques informations sur les SSD, puis une description de toutes les différentes méthodes de mise en cache, et je vais partir de là. Je souhaite que vous

Avantages désavantages

  • Prix: les SSD sont en quelque sorte chers
  • Capacité maximale et commune: les SSD haute capacité sont très rares et chers
  • Vitesse: c'est là que les SSD prennent l'avantage
  • Durabilité: un SSD n'a pas de pièces mobiles

Mieux vaut avoir un système hybride, avoir le meilleur des deux mondes (capacité, fiabilité, vitesse, etc.)

Le noyau Linux 3.9 (mis à disposition le 28 avril 2013) introduit la mise en cache SSD. Le mappeur de périphériques du noyau comprend désormais une cible de cache appelée dm-cache qui permet aux SSD ou à tout autre périphérique de stockage d'être utilisés comme cache pour un disque dur. Il accélère essentiellement l'écriture et la lecture des données car il permet au SSD le plus rapide de mettre en cache les données, puis de les transférer sur le disque dur le plus lent.

Source: Iwn

Flashcache est un module écrit et publié à l'origine par Facebook (Mohan Srinivasan, Paul Saab et Vadim Tkachenko) en avril 2010. Il s'agit d'un module de noyau qui permet la mise en cache Writethrough d'un lecteur sur un autre lecteur. Ceci est le plus souvent utilisé pour mettre en cache un disque rotatif sur un disque SSD plus petit pour des raisons de performances. Cela vous donne la vitesse d'un SSD et la taille d'un lecteur de rotation standard pour les fichiers récemment mis en cache. FlashCache est un cache de bloc d'écriture différée à usage général pour Linux.

Source: ArchLinux

Bcache est un cache de couche de bloc noyau Linux. Il permet à une ou plusieurs unités de disque rapides telles que des unités SSD basées sur Flash d'agir comme cache pour une ou plusieurs unités de disque dur plus lentes.

Les disques durs sont bon marché et gros, les SSD sont rapides mais petits et chers. Ne serait-ce pas bien si vous pouviez bénéficier en toute transparence des avantages des deux? Avec Bcache, vous pouvez avoir votre gâteau et le manger aussi.

Les correctifs Bcache pour le noyau Linux permettent d'utiliser des SSD pour mettre en cache d'autres périphériques de bloc. C'est analogue à L2Arc pour ZFS, mais Bcache fait également la mise en cache de l'écriture différée (en plus de simplement écrire via la mise en cache), et il est indépendant du système de fichiers. Il est conçu pour être allumé avec un minimum d'effort et pour fonctionner correctement sans configuration sur aucune configuration. Par défaut, il ne mettra pas en cache les E / S séquentielles, juste les lectures et écritures aléatoires sur lesquelles les SSD excellent. Il est conçu pour être adapté aux ordinateurs de bureau, aux serveurs, aux baies de stockage haut de gamme et peut-être même intégré.

Le but de la conception est d'être aussi rapide que le SSD et le périphérique mis en cache (selon les écritures du cache par rapport à celles manquées et les écritures par rapport aux écritures en écriture différée) dans la marge d'erreur. Ce n'est pas encore tout à fait là, surtout pour les lectures séquentielles. Mais les tests ont montré qu'il est catégoriquement possible, et même dans certains cas, de faire mieux - principalement des écritures aléatoires.

Source: Bcache

Bcache a un gros inconvénient, et qu'il enlève de la mémoire au système pour implémenter le cache.

EnhanceIO est une solution qui s'exécute sous la couche d'application, permettant aux applications d'utiliser les avantages de performances des SSD sans changements majeurs de l'infrastructure informatique. Un cache SSD peut offrir la plupart des avantages du passage des disques durs aux disques SSD à une fraction du coût d'un système entièrement SSD. Un système mis en cache fonctionne généralement avec moins d'énergie qu'un système basé sur un disque dur aux performances similaires, ce qui crée un avantage secondaire en réduisant les besoins de refroidissement.

Un cache SSD peut également prolonger la durée de vie utile d'un système existant en améliorant les performances pour répondre aux demandes croissantes grâce à un investissement incrémentiel, plutôt que par une mise à niveau / remplacement en gros du système existant.

La mise en cache permet également d'accéder plus rapidement aux données sans la surcharge d'administration du stockage supplémentaire pour acquérir et installer de nouvelles étagères de disque, configurer de nouveaux LUN et migrer les données vers les nouveaux LUN. La mise en cache est presque transparente et nécessite peu ou pas de temps d'arrêt. EnhanceIO est basé sur Flashcache.

Source: Stec-Inc

bcache est le plus inutile de tous car il nécessite une partition de données spécialement préparée (formatée). Cela rend difficile (si possible) d'attacher le cache à la partition existante avec des données car il faudrait 200% de capacité et d'effectuer un long déplacement de données afin d'activer / désactiver la mise en cache.

L'éclat de EnhanceIO est qu'il n'a pas du tout besoin de périphérique intermédiaire et peut être attaché à n'importe quel périphérique de bloc à la volée même lorsque le périphérique est déjà monté. Une autre chose super cool est que vous pouvez attacher le cache EnhanceIO non seulement à la partition mais au périphérique de bloc partitionné pour mettre en cache toutes ses partitions à la fois. Tout comme les modules enchanceio flashcache sont construits avec DKMS et peuvent être utilisés avec des noyaux plus anciens.

Source: Debian

Avantages de DM Cache

Les caches DM utilisent une architecture simplifiée, ce qui les rend adaptables et faciles à personnaliser. Les utilisateurs peuvent ajuster la taille du bloc et la capacité du cache en fonction de la quantité de données à gérer ou de la valeur des données. Si une application particulière a besoin de stocker un grand nombre de données en séquence, les utilisateurs peuvent configurer le cache à cet effet. Si un utilisateur souhaite enregistrer des informations dans une base de données simultanément avec le cache, cela n'interfère pas avec les opérations du cache.

Inconvénients du cache DM

Un inconvénient de l'utilisation d'un cache DM est que le système d'exploitation Linux dispose d'un espace limité pour stocker les métadonnées. Si le cache est volumineux et comprend de nombreux petits blocs, cela représente un grand nombre de métadonnées pour les informations stockées. Pour résoudre ce problème, l'utilisateur doit augmenter la taille du bloc. Un autre problème possible est que, après une panne de serveur, les métadonnées du cache peuvent ne plus correspondre au contenu du cache, bien qu'il soit possible de restaurer la configuration correcte à terme.

Source: Compléments de Fraser Sherman

Donc, d'après les informations ci-dessus, il est clair que EnhanceIO est la voie à suivre, mais à mon avis, car il est basé sur Flashcache, j'irais avec le cache flash. Mais je vais certainement essayer les deux avant de prendre une décision finale.

Mitch
la source
EnhanceIO: un pilote basé sur le logiciel de mise en cache SSD EhanceIO dérivé du projet Flashcache open source de Facebook qui est utile pour utiliser les SSD comme périphériques de cache pour les disques durs traditionnels. webupd8.org/2013/05/get-better-linux-desktop-performance.html
Qasim
Merci d'avoir répondu! Avec un peu de chance, EnhanceIO atterrira dans le noyau 3.10 et sera disponible dans la prochaine version d'Ubuntu.
Uli
1
Belle écriture, mais je dois souligner que le cache DM est totalement sûr, si vous rencontrez un crash, vous ne perdez pas de données bien sûr. En pratique, le cache peut être moins efficace pendant un certain temps jusqu'à ce que les métadonnées soient régénérées.
lzap
3
Le commentaire sur l'utilisation de la mémoire bcache est incorrect, tout comme celui (cité) sur la conversion.
Gabriel
@Gabriel n'hésitez pas à modifier, mais incluez la source. :)
Mitch
1

Commentaires: J'ai installé les packages deb standard de flashcache sur Ubuntu il y a environ un an en mode réécriture pour mettre en cache / home (2 To) sur une tranche de 50 Go sur un SSD. Il a fonctionné à merveille sans aucun problème. J'ai eu quelques "blocages" liés à X (c'est-à-dire non attribuables à flashcache) et j'ai utilisé "Ctrl-Alt-PrtScr REISUB" plusieurs fois pour récupérer sans problème ni problème de corruption. J'ai utilisé flashcache car a) il y avait des debs disponibles et b) il ne nécessitait pas de sauvegarde et de restauration de / home.

Kairuri
la source