bcache auf md oder md auf bcache

bcache ermöglicht ein oder mehrere schnelle Festplatten wie Flash-basiert Solid State Drives (SSDs) als Cache für ein oder mehrere langsamere Festplattenlaufwerke .

Wenn ich das richtig verstehe,

  • eine SSD * könnte zugewiesen werden, um mehrere Sicherungsfestplatten zwischenzuspeichern, und dann könnten die resultierenden zwischengespeicherten Geräte mit mdadm RAIDed werden
    oder
  • mehrere Festplatten könnten in ein einzelnes Sicherungs-md-Gerät und das gerüstet werden SSD, die dem Cache zugewiesen ist,

Ich frage mich, was der vernünftigere Ansatz ist. Mir fällt ein, dass das Wachstum eines RAID5 / 6 mit der einen oder anderen Technik einfacher sein kann, aber ich bin es nicht sicher welche!

Gibt es gute Gründe (z. B. das Erweitern des Sicherungsspeichers oder irgendetwas anderes), einen Ansatz über den anderen zu wählen (für ein großes Nicht-Root-Dateisystem, das VM-Sicherungsdateien enthält)?


* mit „einer SSD“ meine ich eine Art redundantes SSD-Gerät, z. B. ein RAID1 mit zwei physikalischen Eigenschaften Alle SSDs

Kommentare

  • In beiden Fällen alle Festplatten, die bcache Backs müssen mit bcache formatiert werden. Sie müssen also ‚ entweder eine md Array, formatieren Sie die einzelne resultierende Festplatte vollständig als bcache unterstützte Partition, verknüpfen Sie sie mit dem Cache-Laufwerk und gehen Sie von dort aus oder formatieren Sie viele Festplatten mit bcache, verknüpfen Sie sie mit ihrem Cache-Laufwerk und formatieren Sie die vielen Festplatten als ein Array. In beiden Fällen gibt es mehrere mögliche Fehlerpunkte, die alle von der Interoperabilität zwischen zwei Dateisystemen abhängen – ganz zu schweigen von den endgültigen fs. Siehe hier : nach unten scrollen .
  • Dank der github.com/g2p/blocks können Sie es direkt konvertieren, obwohl dies einige Einschränkungen aufweist.
  • @mikeserv Ich verstehe das alles, dies ist für einen speziell entwickelten Server ‚ ist also alles gut. Was meinst du mit “ zwei Dateisystemen „? bcache ist kein Dateisystem – das einzige Dateisystem, das ich ‚ haben werde, ist XFS auf dem endgültigen bcache- oder mdadm-Gerät (je nachdem, welche Option ich wähle).
  • Danke @Adam, die direkte Konvertierung ist für mich kein Problem.
  • @mikeserv nein, es ist nicht ‚ t. Dateisysteme (z. B. btrfs, xfs, extN usw.) befinden sich auf Blockgeräten. mdadm und bcache arbeiten auf Blockgeräteebene und nicht auf Dateisystemebene (btrfs verwechselt das Problem mit der Layering-Verletzung ‚, aber das ist eine völlig separate Konversation).

Antwort

Ich halte das Zwischenspeichern des gesamten md-Geräts für am sinnvollsten.

Setzen von bcache zum Zwischenspeichern des Das gesamte MD-Gerät opfert die gesamte Idee eines Raids, da es einen weiteren einzelnen Fehlerpunkt einführt.

  • OTH-Fehler von SSD-Festplatten sind relativ selten, und bcache kann in den writethrough / writearound -Modus (im Gegensatz zum writeback -Modus), in dem keine Daten vorhanden sind Wird nur auf dem Cache-Gerät gespeichert, und ein Ausfall des Caches führt nicht dazu, dass die Informationen im RAID gelöscht werden. Dies macht es zu einer relativ sicheren Option.

  • Eine andere Tatsache ist, dass erhebliche Berechnungen erforderlich sind Overhead von Soft-RAID-5: Wenn jedes sich drehende Raid-Mitglied separat zwischengespeichert wird, muss der Computer dies noch tun Berechnen Sie alle Paritäten neu, auch bei Cache-Treffern.

  • Natürlich würden Sie teuren SSD-Speicherplatz opfern, wenn Sie jedes sich drehende Laufwerk separat zwischenspeichern. – Es sei denn, Sie planen, den überfallenen SSD-Cache zu verwenden.

  • Beide Optionen haben relativ wenig Einfluss auf die Zeit des Wachstumsprozesses – obwohl die Option, bei der sich drehende Laufwerke separat zwischengespeichert werden, aufgrund von möglicherweise langsamer sein kann mehr Busverkehr.

Es ist schnell und relativ einfach, bcache so zu konfigurieren, dass das ssd-Laufwerk entfernt wird, wenn Sie es ersetzen müssen. Dank der blockiert es sollte möglich sein, das Raid-Setup vor Ort in beide Richtungen zu migrieren.

Sie sollten sich auch daran erinnern, dass im Moment die meisten (alle?) live- CD-Distributionen unterstützen bcache nicht, sodass Sie mit solchen Tools nicht einfach auf Ihre Daten zugreifen können, unabhängig von bcachemdraid Layoutoption, die Sie ausgewählt haben.

Kommentare

  • I ‚ Ich habe die Frage aktualisiert, um deutlich zu machen, dass ich ‚ nicht vorhabe, einen nicht redundanten SSD-Cache zu haben. Ihre zweite Kugel Punkt ist ein ausgezeichneter Poi nt, danke dafür. Ihre dritte Kugel zum Thema Weltraum: Meinst du, weil Sie ‚ die Parität auf SSD speichern würden? Als Ihr letzter Absatz verwende ich ‚ F20, werde aber irgendwann RHEL / CentOS7 oder Debian Jessie verwenden (wenn bcache-tools den Schnitt macht).
  • @JackDouglas Ad 3. Aufzählungszeichen: Ja, genau das. Da Sie jedoch planen, überfallene SSD-Laufwerke zu verwenden, trifft dies ‚ nicht auf Sie zu.
  • Dies gilt immer noch, weil sie ‚ wird nicht nur gespiegelt, sondern muss auch die RAID-Parität für die Sicherungslaufwerke speichern. Dies ist ‚ nicht der Fall, wenn das RAID unter bcache durchgeführt wird, was ich für Ihren Punkt hielt.
  • Ich glaube, Sie meinen das Gegenteil: ssd matrix tut ‚ muss die sich drehenden Datenträger ‚ Parität nicht speichern, wenn das gesamte mdraid-Laufwerk gespeist wird.
  • yes, that ‚ ist genau das, was ich meine!

Antwort

I “ d denke, der vernünftige Ansatz besteht darin, das resultierende MD-Gerät zwischenzuspeichern.

bcache ist so konzipiert, dass es sequentielle Lese- und Schreibvorgänge durchläuft.

Wenn Sie jedes Gerät separat logisch mehrere Geräte zwischenspeichern Das Striping in eine überfallene oder gestrippte MD schreibt aus der Bcache-Perspektive ständig zufällige Blöcke.

Während ein zwischengespeichertes MD-Volume normal aussieht, werden Dateien auf das Volume geschrieben, anstatt zufällige Blöcke in mehrere Geräte.

Der gesamte Punkt des Hard- und Software-Raids besteht darin, die Daten im Backend so zu streifen, dass die resultierenden Dateien angezeigt werden tem sieht aus wie ein normales Volume.

Dies ist möglicherweise nicht korrekt (da bcache-Entwickler möglicherweise clever sind und diese Situation berücksichtigen), aber das logische Optimum besteht darin, Volumes zwischenzuspeichern und nicht zu blockieren Geräte.

Kommentare

  • auch ein sehr guter Punkt
  • Ein großer sequentieller Schreibvorgang auf ein RAID5 / 6 erzeugt sequentielle Schreibvorgänge in alle Komponentengeräte. Jedes Komponentengerät erhält jeden N-1-Datenblock (oder jede Parität), aber die Daten, die es erhält, sind sequentiell. Aber Sie ‚ haben Recht, dass es die Dinge verzerren wird. Wenn es einige Blöcke gibt, die häufige Teilstreifenschreibvorgänge sehen, die zu einem Lese-, Änderungs- und Schreibvorgang (eines Teils) des Paritätsstreifens führen, kann dieser von bcache zwischengespeichert werden. Es wäre jedoch noch besser, es höher zwischenzuspeichern, bevor der Teilstreifen-Schreibvorgang jemals das MD-Gerät traf.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.