Kent Overstreet, Entwickler des Bcachefs-Dateisystems, hat Patches vorgeschlagen, die es dem Linux-Kernel ermöglichen, mit dem Bcachefs-Dateisystem zu arbeiten, selbst nachdem ein erheblicher Teil der Metadaten beschädigt wurde. Bei Bedarf werden beschädigte B-Bäume anhand von Metadaten aus den Inode- und Dirent-Strukturen rekonstruiert. Die Änderungen wurden von Linus Torvalds akzeptiert und in das heutige Test-Update des Kernels 6.9-rc3 aufgenommen.
Die Änderungen ermöglichen das Einbinden beschädigter Dateisysteme und bieten Zugriff auf alle oder fast alle Daten im Dateisystem, die von einem kürzlich aufgetretenen Fehler betroffen waren, der zur Zerstörung des Dateisystems führte. Der Fehler trat auf, als nach der Aktualisierung des Tools ein Versuch unternommen wurde, die Dateisystemstrukturen zu aktualisieren, dieser Prozess jedoch nicht abgeschlossen wurde. Infolgedessen versuchte der Kernel mit der alten Bcachefs-Implementierung, die Version der Strukturen herabzustufen, ohne die unvollständige Aktualisierung zu berücksichtigen. Eine solche Situation führte dazu, dass das Dateisystem in den "Split-Brain-Modus" eintrat, in dem keine der Operationen abgeschlossen werden konnte und die b-Baum-Strukturen des Dateisystems inkonsistent mit dem tatsächlichen Inhalt waren.
Der erwähnte Patch ermöglicht den fortlaufenden Betrieb, selbst in solchen Fällen. Zu den Einschränkungen der Technologie gehört, dass beim Vorhandensein von Snapshots das b-Baum-Snapshot vorhanden und intakt sein muss.
Quelle: opennet.ru
