web-dev-qa-db-fra.com

Quels sont les avantages / inconvénients des différentes options de mise en cache de SSD à HDD (dm-cache, flashcash ...)?

Il semble exister différentes technologies permettant d’utiliser un disque SSD comme cache pour les disques durs extrêmes. 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 mises en œuvre? Laquelle est la meilleure pour une utilisation régulière d’un PC de bureau - pour améliorer les performances des programmes habituels tels que les navigateurs Web ou les jeux?

23
Uli

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

Avantages désavantages

  • Prix: les SSD sont assez chers
  • Capacité maximale et commune: les disques SSD haute capacité sont très rares et coûteux
  • Vitesse: c'est là que les disques SSD ont l'avantage
  • Durabilité: un disque SSD ne comporte aucune pièce mobile

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

Le noyau Linux 3.9 (disponible le 28 avril 2013) introduit la mise en cache SSD. Le mappeur de périphériques du noyau inclut désormais une cible de cache appelée dm-cache, qui permet aux disques SSD ou à d'autres périphériques de stockage d'être utilisés en tant que 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 d’abord en cache les données, puis de les transférer sur le disque dur le plus lent.

Source: Iwn

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

Source: ArchLinux

Bcache est un cache de couche de bloc du noyau Linux. Il permet à un ou plusieurs lecteurs de disque rapides, tels que les disques SSD (Solid State Drive), d’agir en tant que cache pour un ou plusieurs lecteurs de disque dur plus lents.

Les disques durs sont chers et gros, les SSD sont rapides mais petits et chers. Ne serait-ce pas agréable si vous pouviez obtenir de manière transparente les 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 disques SSD pour mettre en cache d’autres périphériques en mode bloc. C'est analogue à L2Arc pour ZFS, mais Bcache fait aussi de la mise en cache en écriture différée (en plus d'écrire en cache), et est agnostique au système de fichiers. Il est conçu pour être mis en marche avec un minimum d'effort et pour bien fonctionner sans configuration, peu importe la configuration. Par défaut, il ne met pas en cache les entrées/sorties séquentielles, mais uniquement les lectures et écritures aléatoires sur lesquelles les disques SSD Excel se trouvent. Il est conçu pour les ordinateurs de bureau, les serveurs, les baies de stockage haut de gamme et peut-être même les systèmes embarqués.

L’objectif de conception est d’être aussi rapide que le disque SSD et le périphérique mis en cache (en fonction de l’aboutissement du cache, des échecs et des écritures entre écritures et écritures) dans les limites de la marge d’erreur. Ce n'est pas encore tout à fait là, surtout pour les lectures séquentielles. Cependant, des tests ont montré qu'il était tout à fait possible, et même dans certains cas de faire mieux, principalement des écritures aléatoires.

Source: Bcache

Bcache a un gros inconvénient, et cela 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 disques SSD sans modifications majeures de l'infrastructure informatique. Un cache SSD peut offrir la plupart des avantages du passage d'un disque dur à un disque dur SSD pour une fraction du coût d'un système entièrement SSD. Un système en cache fonctionne généralement avec moins d'énergie qu'un système basé sur un disque dur présentant des performances similaires, ce qui crée un avantage supplémentaire en réduisant les exigences de refroidissement.

Un cache SSD peut également prolonger la durée de vie d'un système existant en améliorant les performances pour répondre à la demande croissante par le biais d'un investissement supplémentaire, plutôt que par une mise à niveau/un remplacement complet du système existant.

La mise en cache permet également un accès plus rapide aux données sans la charge administrative supplémentaire liée au stockage 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) l’attachement du cache à la partition existante avec les données car il faudrait une capacité de 200% et le déplacement prolongé des données afin d’activer/désactiver la mise en cache.

L’excellence de EnhanceIO réside dans le fait qu’il n’a pas besoin de périphérique intermédiaire et peut être connecté à tout périphérique en mode bloc 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 pour partitionner mais aussi pour un périphérique bloc partitionné afin de mettre en cache toutes ses partitions à la fois. Tout comme les modules enchanceio de flashcache sont construits avec DKMS et peuvent être utilisés avec des noyaux plus anciens.

Source: Debian

Avantages du cache DM

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é de la mémoire cache en fonction de la quantité de données à traiter ou de la valeur des données. Si une application particulière doit stocker beaucoup de données en séquence, les utilisateurs peuvent configurer le cache à cette fin. Si un utilisateur souhaite enregistrer des informations dans une base de données simultanément avec le cache, cela n'interférera pas avec les opérations du cache.

Avantages 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 un grand nombre de petits blocs, cela donne beaucoup 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 de cache peuvent ne plus correspondre au contenu du cache, bien qu'il soit possible de restaurer la configuration correcte par la suite.

Source: Compléments de Fraser Sherman

Par conséquent, il ressort clairement des informations ci-dessus que EnhanceIO est la solution, mais à mon avis, étant donné qu’il est basé sur Flashcache, j’utiliserais le cache flash. Mais je vais certainement essayer les deux avant de prendre une décision finale.

14
Mitch

Commentaires: J'ai installé les paquets standard deb de flashcache sur Ubuntu il y a environ un an en mode réinscription 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 imputables à flashcache) et j'ai utilisé "Ctrl-Alt-PrtScr REISUB" plusieurs fois pour récupérer sans problèmes ni problèmes de corruption. J'ai utilisé flashcache car a) il y avait des debs disponibles et b) cela ne nécessitait ni sauvegarde ni restauration de/home.

1
Kairuri