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

23

Il semble y avoir différentes technologies disponibles pour utiliser un disque SSD comme cache pour les disques 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)

Y at-il des différences notables dans les différentes implémentations? Quelle est la meilleure solution pour une utilisation sur un ordinateur de bureau classique - pour améliorer les performances des programmes habituels tels que les navigateurs Web ou les jeux?

    
posée Uli 04.05.2013 - 12:29
la source

2 réponses

14

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

Avantages / inconvénients

  • Prix: les SSD sont en quelque sorte coûteux
  • Capacité maximale et commune: les disques SSD haute capacité sont très rares et cher
  • Vitesse: c'est là que les disques SSD prennent le dessus
  • Durabilité: un SSD n’a pas de pièces mobiles

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

  

Le noyau Linux 3.9 (disponible le 28 avril 2013) introduit SSD   mise en cache. Le mappeur de périphériques du noyau inclut désormais une cible de cache appelée   dm-cache qui permet d'utiliser les SSD ou tout autre périphérique de stockage en tant que   cache pour un disque dur. Il accélère essentiellement l'écriture et la lecture des données   comme 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 plus lent.

Source: Iwn

  

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

Source: ArchLinux

  

Bcache est un cache de couche de noyau Linux. Il permet un ou plusieurs rapide   lecteurs de disque tels que les disques SSD (flash) basés sur   cache pour un ou plusieurs disques durs plus lents.

     

Les disques durs sont bon marché et volumineux, les SSD sont rapides, mais de petite taille et chers.   Ne serait-il pas bien si vous pouviez obtenir de manière transparente les avantages de   tous les 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   autres périphériques de bloc. Il est analogue à L2Arc pour ZFS, mais Bcache aussi   fait de la mise en cache en écriture (en plus de simplement écrire en cache), et c'est   système de fichiers agnostique. Il est conçu pour être allumé avec un minimum de   effort, et de bien travailler sans configuration sur n'importe quelle configuration. Par   par défaut, il ne mettra pas en cache les entrées-sorties séquentielles, mais uniquement les lectures et écritures aléatoires   que les SSD excellent. Il est destiné à être adapté aux ordinateurs de bureau, serveurs,   baies de stockage haut de gamme, et peut-être même intégrées.

     

L'objectif de conception est d'être aussi rapide que le SSD et le périphérique en cache   (en fonction du succès du cache par rapport à l’échec et de l’écriture par rapport à l’écriture différée)   écrit) dans la marge d'erreur. Ce n'est pas tout à fait là,   principalement pour les lectures séquentielles. Mais les tests ont montré que c'est   avec emphatiquement possible, et même dans certains cas pour faire mieux - principalement   écrit au hasard.

Source: Bcache

Bcache a un gros inconvénient, et qu’il lui faut de la mémoire pour implémenter le cache.

  

EnhanceIO est une solution qui s’exécute sous la couche application,   permettre aux applications d'utiliser les avantages de performance des disques SSD   sans modifications majeures de l'infrastructure informatique. Un cache SSD peut produire le plus   des avantages de passer des disques durs aux disques SSD à une fraction du   coût d'un système tout SSD. Un système mis en cache fonctionne généralement sur moins   pouvoir qu'un système basé sur le disque dur de performances similaires, et que   crée un avantage secondaire en réduisant les besoins en refroidissement.

     

Un cache SSD peut également prolonger la vie utile d’un système existant   améliorer la performance pour répondre à la demande croissante grâce à une augmentation progressive   l'investissement, 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   Frais d'administration de stockage pour acquérir et installer un nouveau disque   étagères, configuration de nouvelles LUN et migration des données vers les nouvelles 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 spécialement   partition de données préparée (formatée). Cela rend difficile (si   possible) pour attacher un cache à une partition existante avec des données comme on le ferait   besoin d'une capacité de 200% et d'effectuer de longs transferts de données afin de   activer / désactiver la mise en cache.

     

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

Source: Debian

  

Avantages du cache DM

     

Les caches DM utilisent une architecture simplifiée, ce qui les rend adaptables   et facile à personnaliser. Les utilisateurs peuvent ajuster la taille du bloc et le cache   capacité basée sur la quantité de données qu’elle devra traiter ou sur le   valeur des données. Si une application particulière doit stocker une grande   beaucoup de données en séquence, les utilisateurs peuvent configurer le cache pour cela   objectif. Si un utilisateur veut enregistrer des informations dans une base de données   simultanément avec le cache, cela n'interférera pas avec le cache   opérations.

     

Disque-avantages DM Cache

     

L’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 grand et   comprend beaucoup de petits blocs, ce qui ajoute 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 un serveur   crash, les métadonnées du cache peuvent ne plus correspondre au contenu du cache,   mais il est 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, étant donné qu'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.

    
réponse donnée Mitch 18.05.2013 - 11:16
la source
1

Commentaires: J'ai installé des paquets deb standard flashcache sur Ubuntu il y a environ un an en mode écriture sur 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 "accrocs" liés à X (c.-à-d. Non attribuables à FlashCache) et j'ai utilisé "Ctrl-Alt-PrtScr REISUB" plusieurs fois pour récupérer sans problèmes et sans problèmes 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.

    
réponse donnée Kairuri 10.11.2015 - 22:15
la source

Lire d'autres questions sur les étiquettes