Speichersysteme hatten schon immer dieselben Gegner: Festplatten, die lügen, abgebrochene Schreibvorgänge und Abstürze mitten in einem Update. ZFS begegnet ihnen mit einer Handvoll Ideen, und Uberblok, ein interaktives Museum, das von einem erfahrenen Speicheringenieur gebaut wurde, zeigt sie Raum für Raum, direkt aus dem Code, der sie umsetzt. Jede Animation entspricht Codezeilen von Open ZFS zfs-2.4.4, eingefroren auf Commit 71a9f9578616, und jeder Codeauszug verlinkt zurück zum Quellcode. Der Autor betrachtet ZFS als die beeindruckendste ingenieurtechnische Leistung des Fachs. Er hat das Projekt als Hommage gebaut und um die Interna besser zu verstehen, und begrüßt Korrekturen von Lesern, die den Code besser kennen.
Das Museum öffnet in der Halle mit dem Uberblock, dem kleinen Datensatz, der die Wurzel eines gesamten Pools benennt. Er enthält eine Transaktionsgruppennummer, ub_txg, und einen Blockzeiger, ub_rootbp, über den alle anderen Blöcke erreichbar sind. Jede Festplatte trägt vier Labels, jedes mit einem Ring aus 128 KiB Uberblöcken. Ein neuer Uberblock überschreibt nie den vorherigen, sondern belegt Slot N mod der Anzahl der Slots. Beim Import liest ZFS alle Slots und behält den gültigen Uberblock mit der höchsten txg.
Die weiteren Räume behandeln die Geschichte des Projekts, den Baum und wie Copy-on-Write, Prüfsummen und Selbstheilung einen Pool ohne fsck konsistent halten, Transaktionsgruppen, die die Zustände offen, ruhend und synchronisierend durchlaufen, sowie die vdev-Hierarchie mit Mirror-, raidz-, draid-, Log-, Cache- und Spezialgeräten. Das Museum erklärt außerdem RAID-Z, Snapshots, ARC, Metaslabs, ZIL und send/receive, alles mit animierten Diagrammen.
Das Projekt ist unter uberblok.storagebits.workers.dev erreichbar, sein Quellcode liegt auf GitHub unter algotitanhq/uberblok.
Quelle: Hacker News · Zusammengefasst von HeadlinesBriefing