btrfs! Und jetzt?
Ich möchte an dieser Stelle mal über meine Erfahrungen mit btrfs im alltäglichen Einsatz berichten.
(das ist auch quasi meine schriftliche Ausführung von meinem Vortrag bei den Tux-Tagen 2022)
Zum Video
Dadurch das btrfs ein Cpoy On Write Dateisystem ist muss man einfach ein paar Dinge wissen um nicht böse auf die Nase zu fallen:
btrfs ist ein Copy On Write Dateisystem wie z.B. ZFS aber wie funktioniert so ein Copy On Write Dateisystem eigentlich?
Im Grunde ist es so:
Wird eine Datei verändert wird diese nicht einfach überschrieben sondern in den freien Speicher neu geschrieben, danach werden diese Verglichen anhand der Metadaten und geprüft ob diese Gesund sind.
Das ist sehr nützlich um Datenkorruption zu verhindern.
Wird eine Datei nicht verändert aber trotzdem kopiert, dann wird diese nur referenziert.
Das ermöglicht das erstellen von effizienten Snapshots, was euch ermöglicht einem Verschlüsselungstrojaner oder ähnliichen den digitalen Mittelfinger zu zeigen, indem Ihr einfach einen Snapshot zurückrollt.
Jetzt wieder zum eigentlichen Thema:
1. df -h sagt uns nicht mehr die Wahrheit
Durch die Funktionsweise von COW Dateisystemen kann es sein das df uns nicht mehr die ganze Wahrheit zeigt.
Sollte euch irgendwas komisch vorkommen dann hilft
sudo btrfs filesystem df -h /
um euch eine genaue Übersicht über btrfs zu erhalten mit den verwendeten Speicher- und Metadatenverbrauch.
Sollte dort etwas am Limit sein kann man mit
sudo btrfs scrub start /
Metadaten und die Datenintegrität überprüfen und aufräumen und mit
sudo btrfs scrub status /
kann man einsehen wie weit die Prüfung ist und ob es Fehler gab.
Das könntet Ihr übrigens regelmäßig machen, da das nicht weh tut.
Was hingegen weh tuen kann(besonders bei SSDs) ist das Defragmentieren und ja Fragmentierung spielt bei einem COW Dateisystem wieder eine Rolle aufgrund der Funktionsweise.
Daher ist das Defragmentieren bei SSDs mit Vorsicht zu genießen und sollte nur händisch ausgeführt werden,es sei denn Ihr habt das Geld um regelmäßig neue SSDs zu kaufen weil das Defragmentieren die Lebenszeit einer SSD deutlich verkürzt.
Defragmentzieren könnt Ihr mit:
sudo btrfs filesystem defragment -r /
Kurz noch angemerkt das es die Mountoption autodefrag gibt die Ihr auch nur bei HDDs nutzen solltet.
Kommen wir jetzt zu Snapshots, denn Snapshots sind cool und mächtig.
Snapshots können einfach angelegt werden mit z.B.:
sudo btrfs subvolume snapshot /home /snapshots/home-1
und genauso einfach wieder entfernt mit:
sudo btrfs subvolume delete /snapshots/home-1
und euch alle eure Snapshots anzeigen lassen mit:
sudo btrfs subvolume list -p /
Und wozu jetzt Snapshots? Ganz einfach Snapshots werden als Subvolumes angelegt was bedeutet das Ihr die Snapshots quasi überall mounten könnt wo Ihr wollt.
Ihr braucht ein Backup eurer Daten? Snapshot! Ihr brauch eine Bastel- oder Entwicklungsumgebung? Snapshot! Euer System bootet nicht mehr nach dem letzten Update? Snapshot!
Wer nicht im Terminal arbeiten möchte, dem kann ich btrfs assistant empfehlen.
(leider noch nicht in den offiziellen Repos und muss daher selber kompiliert werden)
Und für das letzte bisschen Zuckerguss obendrauf verweise ich auf timeshift-autosnap-apt und auf grub-btrfs wie in meinem Serviervorschlag beschrieben.
Hi saint, gerade mehr oder weniger zufällig auf deinen Vortrag bei den Tux-Tagen 2022 gestoßen. Hatte btrfs schon vorher auf dem Schirm, aber möchte mich an dieser Stelle noch einmal für den tollen und verständlichen Vortrag bedanken. Bisher hatte ich noch an keiner Stelle Informationen zu btrfs gefunden, die so gut auf den Punkt gebracht und gleichzeitig so gut verständlich waren.
Die Kombination von btrfs mit den autosnaps und grub-btrfs klingt fast zu schön, um wahr zu sein. Ich hätte dabei noch zwei Anforderungen, die es u.U. zu einem perfekten Dateisystem machen würden. Vielleicht kannst du mir dazu etwas sagen oder auf ebenso verständliche Quellen oder Anleitungen verweisen, wo ich mehr dazu erfahren kann.
Die erste Anforderung ergibt sich aus der Notwenigkeit sich vor Ransomware zu schützen. Bei einem Befall durch Ransomware werden durch Schadcode lokale Dateien verschlüsselt und man wird aufgefordert Geld (meist in Form von Cryptowährungen) an die Erpresser zu übermitteln, um die Werkzeuge zu erhalten, die eigenen Dateien wieder zu entschlüsseln.
Da wäre es doch famos, wenn die zuvor erstellten Snapshots als ausschließlich lesbar gespeichert werden würden und so einer ungewollten Verschlüsselung durch die Schadware entgehen würde. Daher meine erste Frage: Ist das umsetzbar und falls ja, wie? Natürlich wäre es ganz großartig, wenn ein zurückrollen ebenso einfach wäre, wie im Vortrag gezeigt und durch wenige Klicks/Befehle zu bewerkstelligen wäre, auch aus dem grub-Menü heraus!
Die zweite Anforderung an btrfs ergibt sich ebenfalls aus einem Sicherheitsbedenken, allerdings weiß ich nicht, ob sich die zugehörige Frage eher an btrfs oder mehr an LUKS richtet: Wie setze ich ein Linuxsystem mit btrfs als Dateisystem UND einer zeitgemäßen Verschlüsselung auf?
Das sind die letzten beiden Hürden, die mich bis jetzt noch nicht zu der Schlussfolgerung gelangen lassen, dass btrfs die eierlegende Wollmilchsau ist. Umso schöner wäre es natürlich, wenn beide Anforderungen doch noch zu erfüllen wären, denn dann würde mich nichts mehr davon abhalten, auf allen meinen Systemen btrfs zu nutzen.
Besten Dank schon einmal für die Infos bis hierher und ich würde mich über eine (gerne auch ausführliche) Antwort sehr freuen. Einen weiteren Vortrag zu btrfs und genau diesen beiden Sicherheitsmaßnahmen, würde ich mir auch mit größter Freude ansehen! Vielleicht entsteht daraus ja auch ein neuer Blogeintrag! 😉
Beste Grüße