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?
scrub
undreplace
Unterstü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.dev stats
, was ein weiterer Cronjob sein könnte .Antworten:
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?
quelle
btrfs fi sh
dass 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.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 ...
quelle