Bietet Synology wirklich eine BTRFS Selbstheilung?


mgutt

Recommended Posts

Und zwar kam ich darauf als ich diesen Beitrag las, wo jemand den BTRFS Status seines Volumes ausgegeben hat:

Data,single: Size:5.59TiB, Used:5.41TiB
   /dev/vg1/volume_1       5.59TiB

Metadata,single: Size:8.00MiB, Used:0.00B
   /dev/vg1/volume_1       8.00MiB

Metadata,DUP: Size:10.50GiB, Used:9.19GiB
   /dev/vg1/volume_1      21.00GiB

System,single: Size:4.00MiB, Used:0.00B
   /dev/vg1/volume_1       4.00MiB

System,DUP: Size:8.00MiB, Used:112.00KiB
   /dev/vg1/volume_1      16.00MiB

 

Ich war verwundert, dass bei "Data" als Status "single" hinterlegt ist, denn das unterstützt keinerlei Korrekturen:

Depending on the RAID level you are using, the "correction" factor will be different:
* single and RAID-0 have no correction

 

Nach weiterer Recherche fand ich heraus, dass die Daten bei Synology trotzdem in einem RAID liegen. Allerdings nicht in einem BTRFS RAID, sondern in einem Linux RAID (mdadm) und darüber legen sie dann das BTRFS Volume:

2.png.27b8307d1b4844637715aee30939a473.png

 

Und wenn man weiter recherchiert, stellt man fest, dass Synology bei BTRFS nur optional eine Selbstheilung unterstützt::

Die Datei-Selbstreparaturfunktion kann beim Erstellen eines freigegebenen Ordners aktiviert werden
...
Die Datei-Selbstreparaturfunktion ist für die folgenden Bedingungen nicht verfügbar:
- Während einer Reparatur oder Paritäts-Konsistenzprüfung eines Volumes oder Speicherpools.
- Fehlerhaftes Volume.
- Auf VDSM oder VMM gespeicherte Daten.

 

Man kann also nur optional Dateien in bestimmten Ordnern "heilen" lassen. BTRFS unterstützt so einen Modus gar nicht. Entweder wird das komplette Volume abgesichert oder nicht. Und natürlich schützt BTRFS auch Daten in virtuellen Maschinen.

 

Ob Synologys Selbstheilung zuverlässig funktioniert, kann niemand sagen, denn es ist nicht Open Source. Ein Whitepaper konnte ich auch nicht finden. In einer FAQ wird nur hier hin verlinkt und dort findet man folgende Erklärung:

Quote

Btrfs speichert zwei Metadaten-Kopien auf einem Volumen und ermöglicht Datenwiederherstellung, wenn die Festplatte beschädigt ist oder fehlerhafte Sektoren aufweist.

 

Diese Aussage kann man evtl falsch verstehen, denn mit Metadaten kann man keine Daten wiederherstellen. Die enthalten ja keine Parität, sondern nur Attribute und die Checksumme:

Quote

metadata

Data about data. In btrfs, this includes all of the internal data structures of the filesystem, including directory structures, filenames, file permissions, checksums, and the location of each file's extents. All btrfs metadata is stored in B-trees.

 

Weiter erklärt Synology:

Quote

Btrfs Datei-Selbstheilung

Bei traditionellen Speichersystemen können Fehler auftreten, die komplett unbemerkt bleiben und zu fehlerhaften Daten führen, die ohne Warnung oder Fehlermeldung an Anwendungen gesendet werden. Um diese Fehler zu vermeiden, stellt Btrfs Prüfsummen für Daten und Metadaten bereit, erzeugt zwei Kopien der Metadaten und verifiziert dann die Prüfsummen bei jedem Leseprozess. Wenn eine Abweichung (schleichende Datenkorruption) erkannt wurde, kann das Btrfs-Dateisystem mithilfe der Metadatenspiegelung beschädigte Dateien (schleichende Datenkorruption) automatisch erkennen und fehlerhafte Daten mittels der unterstützten RAID-Volumes, einschließlich RAID 1, RAID 5, RAID 6, RAID 10, F1 und SHR, wiederherstellen.

 

Synology schreibt also, dass die Metadaten als Auslöser für eine Reparatur gelten. Das macht Sinn. Die Datei wird gelesen, die Checksumme passt nicht mit der aus den Metadaten überein, also muss die Datei kaputt sein.

 

Die Reparatur wird dann mit dem Linux RAID (mdadm) durchgeführt. Das kann ich mir schon vorstellen. Die lesen einfach alle Sektoren von allen Disks aus und wenn einer falsche Werte zurückgibt oder der Sektor kaputt ist, kann man mit der RAID-Parität die Daten wiederherstellen. Doch warum funktioniert das dann nur optional in ausgewählten Ordnern und nicht beim kompletten Volume? Kann sich da jemand einen Reim drauf machen?

 

Jedenfalls kann meiner Ansicht nach Synology keine "Btrfs Datei-Selbstheilung", wie sie selbst behaupten. Sie nutzen nur die BTRFS Metadaten als Auslöser. Repariert wird mit eigenen Techniken. Und der Schutz gilt eben nicht wie bei BTRFS für das komplette Volume. So verstehe ich das zumindest.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.