bcache sur md ou md sur bcache

bcache autorise un ou plusieurs lecteurs de disque rapides tels que Flash les disques SSD (Solid State Drives) pour servir de cache pour un ou plusieurs disques durs plus lents .

Si je comprends bien,

  • un SSD * pourrait être affecté à la mise en cache de plusieurs disques durs de sauvegarde, puis les périphériques mis en cache résultants pourraient être mis en RAID avec mdadm
    ou
  • plusieurs disques durs pourraient être mis en RAID dans un seul périphérique de sauvegarde md et le SSD assigné au cache qui

Je me demande quelle est la meilleure approche. Il me vient à lesprit que la croissance dun RAID5 / 6 peut être plus simple avec lune ou lautre technique, mais je ne le suis pas sûr laquelle!

Y a-t-il de bonnes raisons (par exemple, augmenter le stockage de sauvegarde ou autre) pour choisir une approche plutôt quune autre (pour un grand système de fichiers non root contenant des fichiers de sauvegarde de VM)?


* par « un SSD » Je veux dire une sorte de périphérique SSD redondant, par exemple un RAID1 de deux physiques tous les SSD

Commentaires

  • Dans les deux cas, tous les disques bcache les dos devront être formatés avec bcache – vous devrez donc ‘ créer un md, formatez entièrement le disque résultant unique en tant que partition sauvegardée bcache, liez-le à son lecteur de cache et partez de là, ou formatez de nombreux disques avec bcache, liez-les à leur lecteur de cache, puis formatez les nombreux disques en un seul tableau. Dans les deux cas, il existe plusieurs points déchec possible qui dépendent tous de linteropérabilité entre deux systèmes de fichiers – sans parler des fs finaux. voir ici : faites défiler vers le bas .
  • Merci à github.com/g2p/blocks , vous pouvez le convertir sur place, bien quil y ait quelques limitations à cela.
  • @mikeserv Je comprends tout cela, cest pour un serveur spécialement conçu donc tout va bien ‘. Que voulez-vous dire  » deux systèmes de fichiers « ? bcache nest pas un système de fichiers – le seul système de fichiers que je ‘ aura sera XFS sur le périphérique final bcache ou mdadm (selon loption que je choisis).
  • Merci @Adam, la conversion sur place nest pas un problème pour moi.
  • @mikeserv non ce nest pas ‘ t. Les systèmes de fichiers (par exemple btrfs, xfs, extN, etc.) vivent au-dessus des périphériques de bloc. mdadm et bcache fonctionnent au niveau du périphérique bloc et non au niveau du système de fichiers (btrfs confond le problème avec la violation de couches de ‘, mais cest une conversation complètement séparée).

Réponse

Je pense que la mise en cache de tout le périphérique md est plus logique.

Mettre bcache en cache le tout le périphérique md sacrifie lidée même davoir un raid, car il introduit un autre point de défaillance unique.

  • Les autres pannes de disques SSD sont relativement rares et bcache peut être placé dans le writethrough / writearound mode (contrairement au mode writeback), où il ny a pas de données stocké uniquement sur le périphérique de cache, et léchec du cache ne tue pas les informations du raid en fait une option relativement sûre.

  • Un autre fait est quil y a un calcul significatif surcharge du RAID-5 logiciel; lors de la mise en cache de chaque membre du raid en rotation séparément, lordinateur doit toujours recalculez toutes les parités, même sur les hits de cache

  • Evidemment, vous « sacrifieriez un espace ssd coûteux, si vous mettez en cache chaque disque tournant séparément. – Sauf si vous prévoyez dutiliser le cache ssd raided.

  • Les deux options naffectent relativement pas la durée du processus de croissance – bien que loption avec les disques rotatifs mis en cache séparément puisse être plus lente en raison de plus de trafic de bus.

Cest un processus rapide et relativement simple pour configurer bcache pour supprimer le lecteur ssd, lorsque vous devez le remplacer. Merci à bloque il devrait être possible de migrer la configuration du raid dans les deux sens sur place.

Vous devez également vous rappeler que pour le moment, la plupart (tous?) vivent- Les distributions de CD ne prennent pas en charge bcache , vous ne pouvez donc pas simplement accéder à vos données avec de tels outils quel que soit le bcachemdraid option de mise en page que vous avez choisie.

Commentaires

  • I ‘ a mis à jour la question pour préciser que je ‘ je ne prévois pas davoir un cache SSD non redondant. Votre deuxième puce le point est un excellent poi nt, merci pour cela. Votre troisième puce sur lespace: voulez-vous dire parce que vous ‘ stocker la parité sur SSD? concernant votre dernier para, je ‘ m en utilisant F20 mais jutiliserai finalement RHEL / CentOS7 ou Debian Jessie (si bcache-tools fait la coupe).
  • @JackDouglas Ad 3e puce: Oui, exactement cela. Mais comme vous prévoyez dutiliser des disques SSD attaqués, cela ne sapplique pas ‘ à vous.
  • Cest toujours le cas car ils ‘ ll sera non seulement mis en miroir mais devra également stocker la parité RAID pour les disques de sauvegarde. Ce nest pas ‘ le cas si le RAID est fait sous bcache, ce que je pensais être votre argument
  • Je crois que vous voulez dire le contraire: la matrice ssd fait ‘ t avoir à stocker la parité des disques rotatifs ‘, si elle est alimentée par tout le lecteur mdraid.
  • oui, que ‘ est exactement ce que je veux dire!

Réponse

I  » Je pense que la bonne approche est de mettre en cache le périphérique MD résultant.

bcache est conçu pour passer des lectures et des écritures séquentielles.

Si vous mettez en cache chaque périphérique séparément, logiquement, plusieurs périphériques le striping dans un MD raided ou dépouillé, sera, du point de vue bcache, constamment en train décrire des blocs aléatoires.

Alors quun volume MD bcached aura lair normal, écrire des fichiers sur le volume, plutôt que des blocs aléatoires sur

Lintérêt du raid matériel et logiciel est deffectuer le striping des données dans le backend afin que les fichiers résultants tem ressemble à un volume normal.

Cela peut ne pas être correct (car les développeurs de bcache peuvent être intelligents et rendre compte de ce genre de situation), mais la chose logique optimale à faire est de mettre en cache les volumes, plutôt que de les bloquer périphériques.

Commentaires

  • également un très bon point
  • Une grande écriture séquentielle sur un RAID5 / 6 produit des écritures séquentielles dans tous les appareils composants. Chaque périphérique composant reçoit chaque bloc de données N-1 (ou parité), mais les données quil obtient sont séquentielles. Mais vous ‘ avez raison de dire que cela va déformer les choses. Sil y a des morceaux qui voient des écritures partielles fréquentes, résultant en une lecture-modification-écriture de (une partie de) la bande de parité, cela pourrait être mis en cache par bcache. Le mettre en cache plus haut, avant que lécriture de bande partielle natteigne le périphérique MD, serait encore mieux.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *