Was ist der Unterschied zwischen btrfs raid1 und btrfs -m dup -d dup auf einem einzelnen Gerät

Was ist der Unterschied zwischen btrfs raid1 und btrfs -m dup -d dup auf einem einzelnen Gerät

Ich verwende btrfs seit etwa zwei Jahren auf mehreren Geräten.

Ich plane, einige BTRFS-Konfigurationen auf einer Festplatte (Einzelplatte) zu testen, die nicht zuverlässige Sektoren hat. Ein Dutzend Sektoren auf der Festplatte sind manchmal nicht lesbar.

Gibt es einen Unterschied hinsichtlich der Datenintegrität und der allgemeinen Lese- und Schreibgeschwindigkeit bei diesen Konfigurationen:

1 TB HDD
-1 TB btrfs partition created with `mkfs.btrfs -d dup -m dup /dev/sda1`

1 TB HDD
-500 GB partition
-500 GB partition
--500 GB btrfs Raid 1 `mkfs.btrfs -m raid1 -d raid1 /dev/sda1 /dev/sda2`

Antwort1

Ich würde vorschlagen, die Variante mit zu verwenden, dupanstatt mehrere Partitionen auf demselben Gerät abzulegen und diese zu raiden. Die Raid-Variante ist schlecht, da der Raid anfordert, dass beide Kopien gelesen werden, während auf Daten zugegriffen wird (das ist gut für normale Raids mit mehreren Geräten, denn wenn eines der Geräte schneller ist, sind die Daten früher verfügbar). Bei einem rotierenden Einzelgerät führt dies dazu, dass der Lesekopf zwischen verschiedenen Partitionen hin- und herspringt. Wenn Sie also mehrere Anfragen in der Warteschlange haben (der übliche Fall), ist die Leistung wirklich schlecht. Eine Erhöhung der Warteschlangentiefe und des CFQ-Schedulers kann die Gesamtlatenz etwas reduzieren, aber es ist besser, dieses Durcheinander zu vermeiden.

Die dupVariante sollte vernünftig genug sein, normalerweise nur eine Kopie zu lesen und nur dann auf eine andere Kopie zurückzugreifen, wenn der Sektor nicht lesbar ist.

Ich bin mir bei dupder Implementierung nicht sicher, aber ich würde vermuten, dass dupdie Kopie nicht 1/2 Gerät von der ersten Kopie entfernt ist, was dupwahrscheinlich auch die Schreibleistung erhöht. Bei einem Einzelgeräte-RAID wird die Schreibleistung ebenfalls schlecht sein, da ein logischer Schreibvorgang an zwei Stellen auf einem physischen Rotationsgerät geschrieben werden muss und der Unterschied immer 1/2 Gerät beträgt, sodass Sie am Ende einen Algorithmus haben, der praktisch das allgemeine Worst-Case-Verhalten für ein Rotationsgerät implementiert.

Antwort2

Ein Unterschied zwischen DUP und RAID1, der mir einfällt:

  • Wenn Sie (wie ich) einige SSDs haben, die bei Nichtgebrauch die Meldung abgeben, dass zufällig ausgewählte Sektoren nicht lesbar sind
  • Dann kann DUP in Panik geraten, da einer dieser nicht lesbaren Sektoren im BTRFS-Partitionsheader vorhanden ist und BTRFS nichts darauf Gespeichertes mounten, lesen usw. kann. Bei RAID1 mounten Sie dagegen den anderen (wenn sich keiner dieser nicht lesbaren Sektoren im anderen BTRFS-Partitionsheader befindet) und führen einen Scrub durch, um die nicht lesbaren Sektoren neu zu schreiben.
  • RAID1 umfasst zwei Partitionen, jede mit ihrem eigenen Header. Wenn also ein Header beschädigt wurde (Partition neu formatieren) und der Header der anderen Partition korrekt ist, können Sie die andere Partition mounten, im degradierten Modus darauf zugreifen und sie reparieren (eine weitere neue Partition hinzufügen, die fehlende löschen, auf RAID1-Ebene ausgleichen).

Nun meine persönliche Geschichte mit KingDian-SSDs, bei denen nach längerer Zeit (mehr als acht Tage) ohne Strom zufällig nicht lesbare Sektoren auftreten; und wie BTRFS RAID1 zum Einsatz kommen und solche SSDs nutzen kann (bis zu einer Kollision mit nicht lesbaren Sektoren).

Zunächst möchte ich mich bei BTRFS und seinem DUP (ich werde es in naher Zukunft testen) und RAID1 (bereits mit perfekten Ergebnissen getestet) bedanken. Ich konnte damit meine SSDs der Marke KingDian verwenden. Bei den Marken Yucun und Samsung ist das Problem „nicht lesbare Sektoren“, das bei allen drei SSDs der Marke KingDian auftritt, noch nicht aufgetreten. Ich habe insgesamt 11 SSDs im Einsatz, eine KingDian ist kaputtgegangen, daher verwende ich jetzt nur noch 10) und eine KingDian 1TiB SSD, die ich nicht gerne verwende (ich wollte sie in FAT32 oder NTFS für die TV-Wiedergabe verwenden, meine legal gekauften DVDs habe ich in H.264/2xAAC konvertiert).

Das Problem mit KingDian-SSDs ist wirklich seltsam, deshalb werde ich Schritt für Schritt erklären, was ich tue, um das Problem zu erkennen:

  1. Erstellen Sie eine Partition für nur 90 % und formatieren Sie sie. Bis vor einigen Tagen habe ich Ext4 (Linux) / NTFS (Windows-Systempartition) verwendet. Ich hasse Windows wirklich, aber ich bin gezwungen, es zu verwenden.
  2. Installieren Sie das System auf dieser Partition
  3. Benutze das System täglich --> Kein Problem angezeigt
  4. Schalten Sie es aus und lassen Sie es länger als acht Tage ausgeschaltet --> Das Problem tritt bei KingDian SSs auf
  5. Um das Problem zu sehen, boote ich mit einer Live-Linux-Distribution (DVD / USB / etc.), ich verwende hauptsächlich SystemRescueCD, aber jede andere, die "ntfsclone" / "partclone.*" / "partimage" oder einfach nur ein einfaches "dd" hat, funktioniert
  6. Ich erstelle einen Klon der Partition und speichere sie als Datei (wie das Speichern einer Systempartition auf einem Backup-Medium).
  7. Das Problem tritt auf, es gibt einige Sektoren (zwischen einigen bis zu etwa 25 oder 30), die nicht lesbar sind
  8. Ich notiere (auf einem Blatt Papier), welche Sektoren nicht lesbar sind
  9. Jetzt beginnt das Seltsame, ich schalte es richtig aus und lasse es für weitere acht oder mehr Tage ausgeschaltet
  10. Ich wiederhole die Schritte 4 bis 7, um zu sehen, welche Sektoren jetzt nicht lesbar sind. Die Liste ändert sich häufig. Meistens haben beide Listen nichts gemeinsam, sodass alle nicht lesbaren Sektoren lesbar geworden sind und andere, die jetzt lesbar waren, nicht lesbar sind.
  11. Ich kann dies viele Male wiederholen (ohne überhaupt auf die SSD zu schreiben) und alle Listen mit nicht lesbaren Sektoren haben in der Regel keinen gemeinsamen Sektor (manchmal steht einer auf zwei Listen).

Warum machen diese SSDs (nur der Marke KingDian) so hässliche und seltsame Dinge? Es heißt zufällig, dass einige Sektoren nach einem langen Zeitraum (mehr als acht Tage) ohne Stromversorgung nicht lesbar sind und nach einem weiteren Zeitraum (mehr als acht Tage) ohne Stromversorgung wieder lesbar sind.

Das Merkwürdigste daran ist, dass sie immer die richtigen Daten enthalten, nachdem sie einmal nicht lesbar waren und dann wieder lesbar wurden.

Darüber hinaus konsultiere ich die SMART-Daten und dort steht, dass kein neuer neu zugewiesener Sektor vorhanden ist (es sind welche vorhanden, da ich unter Windows einmal ein Tool verwendet habe, um die Neuzuweisung eines nicht lesbaren Sektors zu erzwingen).

SMART Info sagt außerdem, dass kein Lesefehler vorliegt, während einige Sektoren nicht lesbar sind, und sagt auch, dass kein Schreibfehler vorliegt.

Offensichtlich liegt kein Lesefehler vor, es wurde nichts mit „falschen“ Daten „gelesen“ … das ist technisch etwas anderes als „konnte nicht lesen“ … und ich kann in den SMART-Daten kein Feld erkennen, das eine Anzahl nicht lesbarer Fehler anzeigt … usw.

Übrigens, wenn ich nicht lesbare Sektoren mit Daten neu beschreibe, werden sie wieder lesbar, ohne dass ein Sektor neu zugeordnet werden muss, vielleicht weil die verwendeten internen Sektoren nicht die fehlerhaften sind (denken Sie daran, dass SSDs beim Schreiben unterschiedliche Stellen verwenden, um die Lebensdauer zu verlängern, SSDs verwenden eine interne Zuordnung (LBA – tatsächliche Position innerhalb der Chips).

Übrigens dauerte das Klonen einer Partition mit 30 GiB Daten und ohne dieses Problem weniger als eine Minute (die SSD kann während des Klonens der Partition dauerhaft mit 550 MiB/s lesen, d. h. größtenteils sequenzielle Lesevorgänge). Bei 25 nicht lesbaren Sektoren dauerte es jedoch mehr als 24 Stunden (wenn man solche Fehler ignoriert, da es sonst nicht endet) und es werden einige „beschädigte“ Daten vorhanden sein (diejenigen, die nicht gelesen werden konnten).

Hier kam mir BTRFS zu Hilfe:

  • Zunächst verwendete ich zwei Partitionen in derselben SSD auf RAID1-Ebene von BTRFS für DATEN und METADATEN
  • Jetzt weiß ich, dass es DUP statt RAID1 gibt. Ich werde es mit DUP testen. Dadurch muss ich nicht jedes Mal zwei geklonte Partitionen sichern, sondern nur noch eine. Das wäre großartig (wenn es funktioniert).

Wie konnte ich mich retten? Ganz einfach: Bevor ich einen Klon auf das BackUP-Medium mache, führe ich einen Scrub auf dem zu klonenden Medium durch, sodass nicht lesbare Sektoren von BTRFS mit der anderen Kopie überschrieben werden (in der Hoffnung, dass es für beide Kopien zur gleichen Zeit und an der gleichen Position keinen nicht lesbaren Sektor gibt).

Mit zwei Partitionen hat es gut funktioniert (langsam, aber es hat funktioniert) und einige Sektoren der geklonten Daten sind nicht verloren gegangen; jetzt muss ich mit DUP auf einer Partition statt mit RAID1 auf zwei Partitionen gleicher Größe testen.

Dies verkürzt nicht die Zeit für die Erstellung der Sicherung (auch Scrub nimmt mehr Zeit in Anspruch), aber ich kann zumindest sicher sein, dass alle Daten korrekt sind ... bis eines Tages an derselben Position zur selben Zeit zwei nicht lesbare Sektoren für dieselben Daten auftreten (Kollision), die nicht wiederherstellbar sind.

Die andere Möglichkeit liegt auf der Hand: Überhaupt keine KingDian-SSDs mehr verwenden, das sind bislang die einzigen, die dieses Problem aufweisen (nicht lesbare Sektoren nach längerer Zeit ohne Strom).

Stellen Sie sich vor, Sie fahren in den Urlaub, schalten den Strom im Haus ab, kommen zurück und auf Ihren SSDs sind Teile nicht lesbar!!! Ein großes Problem für den Heimanwender, nicht für Rechenzentren, in denen SSDs immer mit Strom versorgt werden.

Tolles BTRFS!!! Jetzt denke ich an den anderen hässlichen Teil (für mich), wie man etwas Ähnliches für die NTFS-Partition (Windows-Systempartition) macht? Auf gar keinen Fall, NTFS hat diese Option nicht (denken Sie an Windows HOME-Versionen, nicht an SERVER usw.).

Also danke, BTRFS, Linux ist viel besser, als ich vor ein paar Tagen dachte. Ich bin seit Jahrzehnten Linux-Benutzer, habe mich aber geweigert, BTRFS auszuprobieren, weil alle FALSCHE Informationen über vollständige Beschädigung usw. enthielten, bis ich auf ein SSD-Problem stieß und etwas mit Redundanz brauchte.

Die andere Option, die mir in den Sinn kam, war ZFS, viel komplizierter, nicht in den GRUB2-Bootloader integriert, nicht in den Kernel integriert (und wird es vielleicht nie sein, wegen des Lizenzsystems) usw.; also habe ich endlich (gestern) BTRFS ausprobiert … und was für eine Überraschung, es scheint wirklich stabil zu sein, relativ einfach zu verwenden (Warnung beim Hinzufügen einer neuen Festplatte, sie wird in RAID0 hinzugefügt, nicht in RAID1, ich verwende kein RAID5/6 usw. und möchte auch keines verwenden), lässt sich leicht nach katastrophalen Schäden wiederherstellen (eine der beiden Partitionen neu formatieren), ohne dass Daten verloren gehen (auf Nicht-KingDian-SSDs) usw.

Natürlich verwende ich keine Untervolumes, Snapshots usw., sondern nur als einfaches Dateisystem für das Linux-Stammverzeichnis „/“ in RAID1. Wie gesagt muss ich mit DUP statt mit RAID1 testen, aber ich fürchte (ich bin sehr paranoid), dass ich bei ZWEI Partitionen auf derselben SSD in RAID1 bleiben werde, da ein nicht lesbarer Sektor im Partitionsheader bedeutet, dass alle BTRFS nicht wiederherstellbar/lesbar sind.

Wenn ich unter den SSDs, die solche zufälligen, nicht lesbaren Sektoren aufweisen, immer noch eine KingDian-SSD sehen könnte, würde ich Geld sparen. SSDs sind nicht billig, da ich nur SSDs mit Einzelbitzellen verwenden möchte und die sind wirklich teuer, noch teurer, je größer die Größe wird (ich gebe zu, dass ich sehr paranoid bin) und ich mehr als 10 Offline-Sicherungskopien aller Daten mit einem Verlauf von mehr als einhundert letzten Zuständen habe (zu paranoid, ich weiß).

Antwort3

Ich habe mindestens einen Unterschied gefunden:

Sie können Ihr degradiertes RAID1-RW nur ​​einmal mounten. Die Wahrscheinlichkeit, dass eine Partition ausfällt, während die andere Partition Ihres Geräts fehlerfrei ist, ist möglicherweise gering, dennoch ist dies ein Unterschied.

Quelle: https://btrfs.wiki.kernel.org/index.php/Gotchas#raid1_volumes_only_mountable_once_RW_if_degraded

RAID1-Volumes können nur einmal RW gemountet werden, wenn sie degradiert sind

Auch wenn keine einzelnen Profilblöcke vorhanden sind, können RAID-1-Volumes im Falle einer Verschlechterung nur einmal mit der Option -o degraded,rw schreibgeschützt gemountet werden.

Anmerkungen:

  • Dies passiert (Berichten zufolge) nicht, wenn mehr als 2 Geräte vorhanden sind.

  • Dies passiert bei RAID-10-Profil-Volumes nicht.

  • Dies liegt häufig an dem Problem „Unvollständige Chunk-Konvertierung“, bei dem einzelne Chunks übrig bleiben.

Mögliche Wiederherstellungen:

  • Wenn es immer noch lese-/schreibfähig ist, können Sie die Chunks vom Profil raid1 in das Profil single (oder das Profil dup) konvertieren, wenn Sie genügend Speicherplatz haben.

  • Wenn es immer noch lese-/schreibfähig ist, können Sie das fehlende Gerät durch das BTRFS-Gerät ersetzen.

  • Wenn ein RAID-1-Volume aus irgendeinem Grund im schreibgeschützten Zustand hängen bleibt, kann es nur wiederhergestellt werden, indem sein Inhalt gesichert und anschließend neu erstellt und der Inhalt wiederhergestellt wird.

Antwort4

Zu spät zur Party, aber egal. Ich habe mir die gleiche Frage gestellt und in dem Mann habe ich gelesen (über dup):

„Beispielsweise kann ein SSD-Laufwerk die Blöcke intern einer einzigen Kopie zuordnen und sie so deduplizieren. Dies macht den Zweck der erhöhten Redunanz zunichte und verschwendet nur Platz.“

Vielleicht wäre Raid1 eine Möglichkeit, dieses Problem zu vermeiden (oder auch nicht).

verwandte Informationen