Langzeit Integrität von Daten

lizard11

Cadet 2nd Year
Registriert
Okt. 2011
Beiträge
26
Hi,
da ich bis jetzt nie den Fall hatte, dass ich alle meine Daten von jedem Gerät aus erreichen musste, habe ich auch noch nie ein NAS System besessen. Allerdings bin ich mir nicht mehr so sicher ob meine derzeitige Lösung zur Speicherung und Sicherung meiner Daten ausreicht.
Zur Zeit benutze ich Festplatten mit EXT4 zur Speicherung und Sicherung aller wichtigen Daten, das sieht folgendermaßen aus: an meinem Haupt-PC habe ich eine Festplatte auf der ich alle meine Daten bearbeite. Einmal Wöchentlich wird von dieser Festplatte eine Sicherung per rsync (mit Checksum-Vergleich, nicht per Zeitstempel) Script erstellt.

Jetzt zu der eigentlichen Fragen:
- Wie sieht es bei meinem System mit so etwas wie Bit-Rotting aus? Wenn irgendwo ein Bit kippt, dann erkennt das ja rsync und kopiert die Daten neu. Wenn das Bit auf der Produktivplatte kippt, dann würde rsync ja erst einmal falsche Daten kopieren und ich müsste irgendwie herausfinden welches die Richtige Kopie ist? Geht so etwas auch mit rsync?

- Könnte ich dieses Problem einfach mit einem NAS umgehen? Also das NAS erkennt, dass das Bit gekippt ist und repariert das bevor die Daten auf die Sicherung geschrieben werden? Funktioniert das nur mit BTRFS/ZFS oder auch irgendwie mit EXT4? So wie man liest haben viele Leute Probleme mit BTRFS weil es wohl noch nicht so ausgereift ist. Wie hat Synology diese Probleme gelöst? Kann ich sicher sein, dass wenn ich eine Datei nach x Jahren wieder öffne alle eventuellen Fehler erkannt und korrigiert oder verhindert wurden?

- Ist ein RAID1 System bei diesem Problem hilfreich oder eher hinderlich? Sprich, wenn irgendwo ein Bit kaputt geht kopiert das System in einem RAID den Fehler einfach mit oder weiß es irgendwie wo der Fehler aufgetreten ist und kann ihn dann mit Hilfe des RAID korrigieren auch wenn zum Beispiel "nur" EXT4 verwendet wird?

Ich mache mir im Moment ein paar Gedanken um die Integrität meiner Daten und überlege daher auch ein NAS anzuschaffen, aber eben nur wenn ich ein Vorteil gegenüber meiner Lösung davon habe. Ich weiß um ganz Sicher zu sein bräuchte ich auch noch ECC RAM, aber die meisten Sachen werden einfach nur einmalig geschrieben und dann nie wieder angefasst.
Wenn ich also auf der Platte arbeite und alles funktioniert ist das für mich dahingehend ausreichend Sicherheit. Ich will nur vermeiden, dass sich über ZEit Fehler in meine Daten einschleichen, die ich erst nach Jahren eventuell erkenne weil ich die Daten erst dann wider benötige.

Vielen Dank für eure Hilfe!
 
  • Gefällt mir
Reaktionen: KitKat::new()
Die + Serie unterstützen BtrFS, brauchen dafür aber 2 Platten - die DS220+ könnte das.

Mit ECC-Ram wird es kostenintensiver.
 
Ein Network Attached Storage (NAS) wird verwendet, um unabhängige Speicherkapazität in einem Rechnernetz bereitzustellen.

RAID 1 ist der Verbund von (mindestens) zwei Festplatten auf denen die gleichen Daten (Spiegelung) gespeichert werden - Redundanz.

Beides hilft nicht, wenn die Datei an sich beschädigt wird, dies muss das Betriebssystem sicherstellen.

Da es genannt wurde:

Btrfs design
The block header contains a checksum for the block contents, the uuid of the filesystem that owns the block, the ... without having to find and update the upper node each time the lower node checksum is updated.
 
Zuletzt bearbeitet:
Vielen Dank für eure Antworten.

@TechX
Die 2 Platten würden dann in RAID1 laufen?
Was ist dann wenn eine Platte ausfällt, sind die Daten mit BtrFS dann einfach nur doppelt vorhanden für die Checksumme oder gibt es dann Probleme?

Hauro schrieb:
Beides hilft nicht, wenn die Datei an sich beschädigt wird, dies muss das Betriebssystem sicherstellen.
Genau das ist ja die Frage, schafft das Linux mit rsync und ext4 so out of the box irgendwie ohne, dass ich alle Sicherungen über eventuell etliche Jahre durchsuchen muss bis ich den Fehler finde oder brauche ich dazu ein Betriebssystem wie das von Synology?
Bzw.: kann das ein NAS sicherstellen? Oder kann das auch ein anderes einfacheres System?
 
@lizard11
Ausgangslage: Bitrot kommt vor einfach vor. Niemand weiß, wo und wann er vorkommt..

Bevor nun Bitrot behoben werden kann, muss er erkannt werden.

Welche Dateisysteme (die gehören dann zum Betriebssystem) können Bitrot erkennen? Dafür sind Prüfsummen der eigentlichen Daten nötig und die unterstützen mWn aktuell z.B. Btrfs, ZFS und ReFS für Windows.
ext4 hat nur Prüfsummen der Metadaten, aber nicht der eigentlichen Daten.

Und wenn es nun um das Beheben von Bitrot geht: Hier gäbe es verschiedene Möglichkeiten. Z.B. könnte, wenn Bitrot erkannt wird, versucht werden jedes Bit eines Blocks einmal zu drehen, wieder die Checksumme zu berechnen und zu vergleichen. Bei einem 4kB-Block wären das 4096 Versuche bei einem einzelnen Bitflip. Bei zwei Flips im gleichen Block müsste man schon ~16.777.000 Versuche unternehmen. Und wenn die berechnete Prüfsumme wieder mit der gespeicherten Prüfsumme übereinstimmt, hätte man den Fehler behoben.
Oder - so machen es mWn Btrfs und ZFS - man setzt einen Raid voraus. Dort gibt es dann jede Datei 2x. Wenn jetzt auf einer Festplatte ein Bit flippt, schaut man sich die gespeicherte Prüfsumme und die neu berechneten Prüfsummen von beiden Kopien an. Wenn die Prüfsummen auf einer Platte übereinstimmen, ist das die fehlerlose Kopie und man kann die fehlerlose Datei über die Datei mit dem Bitflip kopieren, um die Integrität wiederherzustellen.
Das ist quasi das, was du mit rsync imitierst. Mit dem Problem - das hast du ja auch schon erkannt - dass rsync quasi immer deinen PC als die Quelle der richtigen Daten ansieht. Du müsstest stattdessen ein Skript schreiben, dass jede Datei hasht und rsync müsste die Hashes lesen und vergleichen, um festzustellen, welche Datei die richtige ist. (Und bei jedem absichtlichen Schreiben auf deinem PC müsste die Hashtabelle aktualisiert werden.)
All das übernehmen die erwähnten Dateisysteme von alleine. Und Btrfs hat sogar ein rsync-Feature eingebaut: Btrfs kann Snapshots verschicken und empfangen.)

Wie oft ein Bitflip vorkommt, kannst du ohne entsprechendes Dateisystem (oder eigene Skripte) gar nicht erkennen. Es kann sein, dass eine 1 Woche alte Festplatte mit NTFS schon den ersten Bitflip in irgendeiner Audiodatei hat, was weder Windows, NTFS noch du beim Hören je merken werden. Und auch nach 10 Jahren können auf einer Festplatte keine bzw. nur unhörbare Fehler auftreten.
Es fällt halt nur per Zufall auf, wenn der Bitflip in einer wichtigen Systemdatei, in den Metadaten des Dateisystems oder in einer dann fehlerhaften JPEG-Datei auftreten.

Und weder Linux an sich, noch ext4 oder rsync werden Bitrot erkennen. (Selbst Btrfs erkennt Bitrot erst, wenn eine Datei neu gelesen wird. Dafür läuft auf entsprechenden Linux-Distributionen 1x pro Woche der "Scrub". Dabei liest Btrfs die gesamte Platte einmal ein und sucht nach neuen Fehlern/Bitflips.)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: raychan und whats4
@Fortatus
Vielen vielen Dank für deine ausführliche Antwort. Die hilft mir sehr weiter.

In diesem Fall benötige ich also ein NAS System, das mindestens 2 Platten aufnehmen kann und Btrfs oder ZFS beherrscht. Bei Synology wäre das also mindestens eine DS220+ oder sogar nur eine DS218 um überhaupt eine Chance zu haben Bitrot zu erkennen. Sowas wie eine Hashtabelle aller meiner Daten anzulegen wäre mir dann doch etwas zu viel :D

Vielen Dank nochmals für eure Antworten.

Edit:
Noch eine Frage zum Thema:
Ist das ganze mit SHR bei Synology ebenfalls umsetzbar falls man 2 verschieden große Platten verwendet oder ist ein RAID1 zwingend notwendig? Ziel wäre es die platten damit dann einer nach der anderen auf Größere umzustellen oder eine Region zu schaffen auf der Daten liegen, die nicht gegen Bitrot geschützt sein müssen.
 
Zuletzt bearbeitet:
@lizard11 Aufgepasst: Wichtig ist dabei halt, dass Btrfs oder ZFS auch für den Raid zum Einsatz kommen müssen (d.h. das Betriebssystem muss so konfiguriert sein, dass die echten, rohen Festplatten an das Dateisystem gegeben werden).
Falls für den Raid stattdessen Software-RAID/mdadm vom Kernel zum Einsatz kommt und Btrfs oder ZFS nur auf einem logischen Volume laufen, funktioniert das Ganze nicht.

Hier kommt es also darauf an, wie Synology RAID und Btrfs genau einsetzt und konfiguriert.
 
@Fortatus
Danke nochmals für die Antwort!

@ Synology
Ist DSM in der Lage mit einem SHR System mittels Btrfs bit rot zu verhindern?
Oder wird dazu zwingend ein RAID1 benötigt?
Wenn SHR verwendet werden kann, können dabei dann verschiedene Bereiche konfiguriert werden? Also ein Bereich der mit einer Spiegelung der Daten Bit rot verhindert und ein anderer der nicht zu schützende Daten aufnehmen kann?
 
HI @lizard11

Ja und Ja :)

Folgende Optionen kannst du dir mal anaschauen -> Dateiintegrität und Dateibereiningung

Für die Dateiintegrität gilt:
Du brauchst ein NAS was BTRFS kann. Ob SHR oder Raid1 ist dabei egal.

Du kannst in der Systemsteuerung unter Gemeinsame Ordner die Dateiintigrität bei jedem Ordner beliebig aktivieren.

Schau mal hier: https://kb.synology.com/de-de/DSM/help/DSM/AdminCenter/file_share_create?version=7
Abschnitt: Daten-Prüfsumme für erweiterte Dateiintegrität aktivieren

2. Für Dateibereiningung gilt:
Du brauchst ein NAS wo Dateiintegrität aktiviert ist und ein Raid was mindestens 3 HDDs beinhaltet (SHR, RAID5, RAID6, RAIDF1)

Schau mal hier: https://kb.synology.com/de-de/DSM/help/DSM/StorageManager/storage_pool_data_scrubbing?version=7

Grüße
Philip
 
Hallo Philip,
vielen Dank für die Antwort.

Verstehe ich das richtig, dass ich in diesem Fall immer 3 Platten oder mehr benötige um Bitrot zu verhindern?
Die Dateibereiningung ist ja nur mit 3 oder Mehr Platten verfügbar. Funktioniert Dateiintegrität mit 2 im RAID 1 oder SHR? und ist es dort dann dem System möglich dann fehlerhafte Dateien irgendwie ohne die Bereinigung zu korrigieren?

In diesem Fall schätze ich, dass z.B. eine DS220+ nicht ausreicht um gegen Bitrot vorzugehen?

Viele Grüße
 
drei+ für einfache redundanz (raid5/raidz), die kapazität einer physikalischen geht an die redundanz.
4+ für doppelte redundanz (raid6/raidz2) die kapazität zweier physikalischer geht an die redundanz.

bsp raidz/raid5

drei platten a 8tb, nutzbar ~16, redundazverlust 33%, eine darf ohne datenverlust krepieren, wurscht welche, aber nur eine.
5 platten a 8tb, nutzbar ~24, redundazverlust 25%, eine darf ohne datenverlust krepieren, wurscht welche, aber nur eine.

mehr platten senkt den verlust, d.h. 5 sind effizienter als 3.
aber: bei zu vielen platten ist die einfache redundanz um das schlechter, um was die effizienz besser ist.

raidz2/raid6 tut im prinzip dasselbe, aber mit doppelter redundanz, zwei können krepieren.

was bedeutet: raidz/raid5 eher bei 3/5 platten, aber raidz2/raid6 eher bei 10 platten. als pimaldaumen satz.

und ja, ein recht erwachsenes nas braucht durchaus erwachsene hardware. nix mit billig.
 
HI @lizard11

Die Infos von whats4 beziehen sich ja eher auf die Raidtypen und Ausfallsicherheit.
Daher haben Sie mit deiner Fragen nicht direkt was zu tun.

Im Grunde gibt es 2 Arten wie wir Bitrot/Flips erkennen und korrigieren.

  • Datei / Dateisystem Ebene (brauchst btrfs)
  • Raid (brauchst btrfs, ein RAID mit 3 Platten und Paritäten z.B SHR, RAID5, Raid6, F1)

An erster Stelle musst du die Dateiintegritätsprüfung für jeden Ordner aktivieren.
-> Das ist der Datei/Dateisystem check.
-> Erst dann werden entsprechende Metadaten/Prüfsummen angeleg. Wird auch für das evtl RaidScrubbing gebraucht.
-> Du musst es beim erstellen des Ordners machen. Nachträglich geht nicht!

Jedes mal wenn du eine Datei anlegst oder öffnest/bearbeitest passiert das:
Das System prüft die Dateien durch Berechnung und Vergleich der Prüfsumme der Dateien.
Wenn eine Abweichung der Prüfsumme festgestellt wird, wird sie durch Prüfung und Berechnung der Originaldaten auf dem RAID korrigiert.

Wie gesagt: Das passiert nur wenn du die Dateien "anfasst".
-> Dir könnten ggfs Dateien "kippen/kaputt" gehen die du ewig nicht beachtet hast.

Du kannst im Storage Manager aber mit der Dateibereinigung den Vorgang zeitlich für alle Daten anstoßen.
-> System läut dann alle Daten ab.

Bei der Option Dateibereinigung passieren aber 2 Dinge (wenn dein NAS die btrfs und Raid Voraussetzung erfüllt)

1. Dateisystem Scrubbing (wie oben beschrieben)
2. Raid Scrubbing -> Aber nur:
a) Wenn es nötig ist und
b) Wenn du ein passendes Raid mit Paritäten hast. Also SHR mit 3 HDD, RAID5, RAID6, Raid F1)
=> Ein Raid1 oder SHR mit 2 HDDs haben keine wirklichen Paritäten.

Das RaidScrubbing/Bereinigung kannst du also nicht manuell anstoßen.
-> Das macht das System automatisch bei der Dateibereinigung

Es kann passieren, dass die Dateibereinigung/Check fehlschlägt, falls Metadaten falsch übermittelt/überschrieben worden sind (z.B Raid1/SHR mit 2 HDDs)

Dann greift das RaidScrubbing ein und überprüft die Raid Paritäten.
Sollte z.B doch einen Fehler geben und es liegen falsche Infos z.B auf HDD2, dann kann das System immer noch HDD 3 hinzuziehen und dort die Paritäten Infos checken.

Hast du kein SHR 3 bzw Raid mit Paritäten, dann macht das System den Dateisystem check und lässt das RaidScrubbing aus.

Allgemein:
  • Bitrot passieren aber sind vermutlich das geringere Problem wenn es um Datenverlust geht :)
  • Wenn du kein passendes Raid hast, erkennt das System die Bitrots/Flips und versucht Sie zu korrigieren
  • RaidScrubbing bietet dann nochmal eine Stufe mehr Sicherheit

Hoffe die Infos helfen.

Gruß Philip
 
Hallo Philip,
vielen Dank für diese ausführliche Antwort!

Angenommen ich habe nur ein NAS mit 2 Bays wie die DS220+ im RAID 1 oder SHR mit Btrfs und verwende dort die Dateiintegritätsprüfung. Jetzt öffne ich eine Datei und das System erkennt, dass die Prüfsumme auf Platte 1 nicht stimmt. Dann korrigiert das System die fehlerhaften Daten wenn auf Platte 2 alles stimmt?

Die Prüfung der Datei passiert in diesem Fall ja nur wenn ich sie öffne. Passiert dies auch wenn ein Backup gemacht wird? Dabei müssen ja eigentlich alle Dateien einmal angefasst und geöffnet werden und könnten damit überprüft und korrigiert werden?

Wenn das so funktioniert wäre das ein für mich möglicher Ansatz. Wenn nicht wären die einzigen Möglichkeit alle Dateien händisch zu öffnen (eher nicht :D) oder ein größeres NAS mit mindestens 3 Platten.
 
Zurück
Oben