Btrfs: RAID 1 auf 3+ Geräten

10

Ich habe derzeit eine Btrfs-Partition mit vier Geräten: drei 3-TB-Laufwerke und ein 4-TB-Laufwerk. Daten und Metadaten sind RAID 10, daher habe ich 6 TB nutzbaren Speicherplatz, der fast voll ist. Ich hatte erwartet, dass die RAID 5-Unterstützung in Btrfs zum Zeitpunkt der Speicherbelegung ausgereift sein würde, aber anscheinend hat dies keine Priorität.

Meine Frage ist: Gibt es einen Grund, RAID 10 RAID 1 vorzuziehen ? Ich weiß, dass echtes RAID 1 auf meiner aktuellen Hardware mir 3 TB nutzbaren Speicherplatz mit 4 Kopien jedes Blocks geben sollte, aber Btrfs verhält sich anscheinend nicht so. Aus den Btrfs-FAQ :

btrfs kombiniert zuerst alle Geräte in einem Speicherpool und dupliziert dann die Chunks, wenn Dateidaten erstellt werden. RAID-1 ist derzeit als "2 Kopien aller Daten auf verschiedenen Geräten" definiert. Dies unterscheidet sich von MD-RAID und dmraid darin, dass diese genau n Kopien für n Geräte erstellen. In einem btrfs-RAID-1 auf drei 1-TB-Geräten erhalten wir 1,5 TB verwendbare Daten. Da jeder Block nur auf 2 Geräte kopiert wird, müssen für das Schreiben eines bestimmten Blocks nur genau 2 Geräte geschrieben werden. Lesen kann nur von einem gemacht werden.

Und von Jens Erat bei Stack Overflow :

Btrfs verteilt die Daten (und ihre RAID 1-Kopien) blockweise und kann daher sehr gut mit Festplatten unterschiedlicher Größe umgehen. Sie erhalten die Summe aller Festplatten, geteilt durch zwei - und müssen nicht darüber nachdenken, wie Sie sie zu Paaren ähnlicher Größe zusammensetzen können.

Wenn mehr als eine Festplatte ausfällt, besteht immer die Gefahr, dass Daten verloren gehen: RAID 1 kann nicht damit umgehen, dass zwei Festplatten gleichzeitig verloren gehen. In Ihrem oben angegebenen Beispiel verlieren Sie immer Daten, wenn die falschen zwei Festplatten ausfallen.

Bedeutet dies, dass ich durch die Neuverteilung von RAID 10 zu RAID 1 aufgrund des 4-TB-Laufwerks zusätzliche 500 GB Daten (6,5 TB statt 6 TB) bekomme? Und gibt es einen Grund für mich, bei RAID 10 zu bleiben?

Mikkel
quelle
1
BTRFS RAID-5 ist (obwohl noch experimentell) tatsächlich ziemlich stabil und sogar viele typische Datenwiederherstellungsszenarien funktionieren in der aktuellen Version (ohne Absturz). Sie sollten wahrscheinlich von Zeit zu Zeit ein Peeling durchführen, um sicherzustellen, dass Ihre Daten immer noch korrekt sind, aber es könnte einen Versuch wert sein. Es ist möglich, von RAID-1 (0) zu RAID-5 zu konvertieren.
basic6
@ basic6 Gut zu wissen, danke. Ich war die Erforschung , dass vor nicht allzu langer und sah , dass scrubund replaceUnterstützung wie von 3,19 zugegeben worden waren, aber die Leute beschwerten sich immer noch über den Mangel an Geräten Störmeldungen. Ich habe Crones für wöchentliche Peelings und wöchentliche / monatliche SMART-Selbsttests eingerichtet, damit ich diese Probleme erkennen kann. Ich werde es versuchen.
Mikkel
Periodische (wöchentliche oder monatliche) Scrubs sind wichtig. Wenn ein Scrub einen Fehler findet, weil er nicht von einem Laufwerk lesen kann, erhöht sich die Fehleranzahl. Überprüfen Sie die Fehleranzahl mit dev stats, was ein weiterer Cronjob sein könnte .
basic6

Antworten:

5

Ja, Sie erhalten zusätzliche 500 GB. Beachten Sie, dass die Bestimmung des verfügbaren Speicherplatzes in btrfs schwer fassbar bleibt. Außerdem: Schauen Sie sich den btrfs-Rechner für die Datenträgernutzung an .

Zu Ihrer zweiten Frage: Möglicherweise verlieren Sie an Leistung auf Ihrem Array. Natürlich sind Ihre Daten in beiden RAID-Konfigurationen gleich sicher. Wenn Sie über die Leistung nachdenken , können Sie sich vielleicht diese Benchmarks ansehen : kernel.org , phoronix.com .

Haben Sie vielleicht schon versucht, auf RAID 1 zu konvertieren? Wenn ja: Was sind Ihre Ergebnisse?

Laura
quelle
1
Dies gibt keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlassen Sie einen Kommentar unter seinem Beitrag. Sie können jederzeit Ihre eigenen Beiträge kommentieren. Sobald Sie einen ausreichenden Ruf haben, können Sie jeden Beitrag kommentieren .
DavidPostill
Um Ihre Frage zu beantworten, habe ich jedoch konvertiert und das Ergebnis scheint meinen Erwartungen zu entsprechen. Btrfs macht einen schlechten Job angibt , tatsächlich verfügbaren Speicherplatz, aber Sie können live in der Ausgabe von , btrfs fi shdass der zusätzlichen Platz auf dem 4 - TB - Laufwerk wird in Anspruch genommen wird, und (2,83 + 1,93 + 1,93 + 1,95) /2~=4.30 wie erwartet. Ich habe kürzlich einen Laufwerksausfall erlitten und ohne Datenverlust erfolgreich wiederhergestellt, sodass ich aus erster Hand bestätigen kann, dass die Redundanz intakt ist.
Mikkel
Es tut mir leid, dass meine Antwort @david unklar war. Ich habe versucht, die beiden Fragen in den letzten beiden Zeilen des ursprünglichen Beitrags zu beantworten. Zusätzlich habe ich eine Reihe von Unsicherheiten angegeben (die btrfs eigen zu sein scheinen) und meine Quellen als Referenz angegeben. In der Tat habe ich dem Autor auch eine Frage gestellt, damit andere vielleicht aus seinen Erkenntnissen lernen können. Ich habe dies in der Antwort aus Gründen getan, die Sie bereits erklärt haben. Ich werde Ihre Kommentare berücksichtigen, wenn ich das nächste Mal eine Frage zum Stapelaustausch beantworte.
Laura
Es ist vielleicht nicht die sicherste Antwort, aber meine Ergebnisse zeigen, dass Ihre Annahmen korrekt sind, also akzeptiere ich sie. Ich bin mir jedoch nicht sicher, welchen Kommentar Sie zu Leistungsunterschieden abgeben. Dies gilt sicherlich für Hardware-RAID 1 gegenüber 10, aber ich bin mir nicht sicher, ob Btrfs eine Leistungssteigerung durch RAID 10 sieht. Darüber hinaus ist das, was es als RAID 1 bezeichnet, hier immer noch auf mehrere Geräte verteilt, sodass es RAID 10 immer noch ähnlicher ist als RAID 10 echtes RAID 1. Wenn ich Ihre Antwort vor der Konvertierung gelesen hätte, hätte ich dies vor und nach dem Benchmarking getan, aber ich verbringe keine weitere Woche damit, das Array auf RAID 10 und zurück zu konvertieren.
Mikkel
Nun, es gibt diese Seite , die marginale Vorteile für RAID 10 gegenüber RAID 1 zeigt und die Einschränkung enthält, dass die Benchmarks 7 Jahre alt sind.
Mikkel
0

Verwenden Sie nicht btrfs raid 5 oder 6, da die Implementierung voller Fehler ist. Führen Sie zfs aus, wenn Sie dies möchten.

Mit raid10 gewinnen Sie an Geschwindigkeit.

Am besten erstellen Sie eine 3-TB-Partition auf dem 4-TB-Laufwerk (stellen Sie sicher, dass alle 3 genau die gleiche Größe haben) und kombinieren Sie diese zu einem RAID10 mit 6 TB freiem Speicherplatz. Verwenden Sie die zusätzlichen 1 TB auf dem 4-TB-Laufwerk für / boot (dies muss ohnehin vfat sein, wenn Sie efistub verwenden und grub oder einen anderen Bootloader vermeiden möchten, der Ihren Boot etwas schneller macht), tauschen Sie (Sie können a verwenden ziemlich groß, das Optimum wäre ein kleiner Zram-Swap (4 GB funktionieren gut mit 32 GB RAM, 2 GB sollten mit 16 GB gut sein, wenn Sie weniger als 16 IDK haben, wenn es sich lohnt, und Sie sollten wahrscheinlich trotzdem ein Upgrade durchführen) Wird zuerst verwendet (setzen Sie die Priorität auf die höchste), indem Sie zstd und so viele Komprimierungsströme verwenden, wie Sie über Kerne / Threads verfügen ...

orange_juice6000
quelle