tutorials:dateisysteme:btrfs:btrfs
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
tutorials:dateisysteme:btrfs:btrfs [2025/01/12 13:42] – [Swapdatei] Single Data Profile only Hinweis hinzugefügt gahsul | tutorials:dateisysteme:btrfs:btrfs [2025/02/25 18:41] (aktuell) – [Siehe auch] So verwendest du BTRFS in der PRAXIS! gahsul | ||
---|---|---|---|
Zeile 9: | Zeile 9: | ||
===== Dateisystem Erstellung ===== | ===== Dateisystem Erstellung ===== | ||
- | Ein BTRFS Dateisystem wird mit [[am> | + | Ein BTRFS Dateisystem wird mit [[am> |
* [[am> | * [[am> | ||
- | * [[am> | + | * [[am> |
- | * [[am> | + | * [[am> |
==== Beispielbefehl ==== | ==== Beispielbefehl ==== | ||
Zeile 26: | Zeile 26: | ||
Ein [[https:// | Ein [[https:// | ||
- | < | + | < |
**Hinweis: | **Hinweis: | ||
</ | </ | ||
Zeile 72: | Zeile 72: | ||
Ein Snapshot ist ebenfalls ein Subvolumen, jedoch mit einem vorgegebenen Anfangsinhalt des ursprünglichen Subvolumen. Ein Subvolumen hat immer die Inode-Nummer 256. Somit kann ein Snapshot wie eine schnelle Art von Referenzierung mit dem Inhalt eines anderen Subvolumen betrachtet werden, das sich nicht mit ändert. | Ein Snapshot ist ebenfalls ein Subvolumen, jedoch mit einem vorgegebenen Anfangsinhalt des ursprünglichen Subvolumen. Ein Subvolumen hat immer die Inode-Nummer 256. Somit kann ein Snapshot wie eine schnelle Art von Referenzierung mit dem Inhalt eines anderen Subvolumen betrachtet werden, das sich nicht mit ändert. | ||
- | < | + | < |
**Hinweis: | **Hinweis: | ||
</ | </ | ||
Zeile 144: | Zeile 144: | ||
* [[https:// | * [[https:// | ||
+ | ===== NO_COW ===== | ||
+ | |||
+ | <WRAP info> | ||
+ | Verzeichnis und/oder Dateien, deren Inhalt sich schnell und häufig ändert, wirkt sich COW nachteilig auf die Geschwindigkeit des Dateisystems aus. | ||
+ | </ | ||
+ | |||
+ | <WRAP important> | ||
+ | Wichtig: für '' | ||
+ | </ | ||
+ | |||
+ | Beispiele hierfür sind: | ||
+ | |||
+ | * Virtuelle Maschinen Datei Images | ||
+ | * Datenbanken | ||
+ | * Logdateien | ||
+ | * Verzeichnisse, | ||
+ | |||
+ | Für solche Anwendungsfälle lässt sich '' | ||
+ | |||
+ | <WRAP important> | ||
+ | Soll hingegen das '' | ||
+ | </ | ||
+ | |||
+ | <WRAP info> | ||
+ | Ergänzender weise sei noch die '' | ||
+ | </ | ||
+ | |||
+ | ==== Beispiele ==== | ||
+ | |||
+ | === Setzen des C Flags === | ||
+ | |||
+ | <code bash> | ||
+ | chattr +C < | ||
+ | </ | ||
+ | |||
+ | === Nachträgliches setzten des C Flags auf eine Datei mit Inhalt === | ||
+ | |||
+ | <code bash> | ||
+ | $ mv / | ||
+ | $ mkdir / | ||
+ | $ chattr +C / | ||
+ | $ cp -a --reflink=never / | ||
+ | $ rm -rf / | ||
+ | </ | ||
+ | |||
+ | ==== Auswirkungen auf Snapshots ==== | ||
+ | |||
+ | Für einen Snapshot ist COW erfoderlich. Aus diesem Grund wird beim anlegen eines Snapshots bei der ersten Schreibopertation auf eine '' | ||
+ | |||
+ | ==== siehe auch ==== | ||
+ | |||
+ | * [[aw> | ||
+ | * [[aw> | ||
+ | |||
+ | ===== Ermittlung des Speicherplatzes ===== | ||
+ | |||
+ | ==== Einleitung ==== | ||
+ | |||
+ | BTRFS kann sehr Speicherplatz effizient Daten vorhalten, indem die COW Eigenart des Dateisystems genutzt wird. Statt eine Datei ein zweites Mal physikalisch zu kopieren, wird stattdessen auf diese referenziert. Das sorgt dafür, dass nur neue Änderungen tatsächlich gespeichert werden müssen, und der Kopiervorgang ist quasi sofort erledigt. Nach diesem Prinzip arbeiten auch die Snapshots. | ||
+ | |||
+ | Leider kommen übliche Tools wie z.B.'' | ||
+ | Somit kann es vorkommen, dass Daten im Subvolumen **@** gelöscht wurden, '' | ||
+ | |||
+ | ==== BTRFS eigene Speicherplatz Verwaltungstools ==== | ||
+ | |||
+ | Aus diesem Grund haben die '' | ||
+ | |||
+ | === btrfs filesystem df === | ||
+ | |||
+ | [[am> | ||
+ | |||
+ | * Wie groß die eigentlichen Dateiinhalte (**Data, total**) und wie viel sie eigentlich an Speicherplatz unter der Berücksichtigung von Referenzen und Komprimierung einnehmen (**used**). | ||
+ | * Dasselbe noch einmal für die Metadaten (**Metadata**) | ||
+ | * Und noch einmal für den Systembaum (**System**)) der **Data** und **Metadata** verbindet. | ||
+ | * Die GlobalReserve ist Speicherplatz den sich BTRFS für die 3 Baumstrukturen zum Verwalten reserviert, damit das Dateisystem steuerbar bleibt, falls der Speicherplatz zur Neige geht. | ||
+ | |||
+ | == Beispielausgabe == | ||
+ | |||
+ | <code bash> | ||
+ | $ btrfs filesystem df /path | ||
+ | Data, single: total=1.15TiB, | ||
+ | System, single: total=32.00MiB, | ||
+ | Metadata, single: total=12.00GiB, | ||
+ | GlobalReserve, | ||
+ | </ | ||
+ | |||
+ | === btrfs filesystem du === | ||
+ | |||
+ | **'' | ||
+ | |||
+ | == Beispielausgabe == | ||
+ | |||
+ | <code bash> | ||
+ | $ btrfs filesystem du -s / | ||
+ | | ||
+ | 21.55GiB | ||
+ | </ | ||
+ | |||
+ | === btrfs filesystem usage === | ||
+ | |||
+ | **'' | ||
+ | |||
+ | Damit Allokierter Speicherplatz wieder freigeben werden kann, so müssen alle Dateien/ | ||
+ | |||
+ | == Beispielausgabe == | ||
+ | |||
+ | <code bash> | ||
+ | # btrfs filesystem usage / | ||
+ | Overall: | ||
+ | Device size: | ||
+ | Device allocated: | ||
+ | Device unallocated: | ||
+ | Device missing: | ||
+ | Device slack: | ||
+ | Used: | ||
+ | Free (estimated): | ||
+ | Free (statfs, df): | ||
+ | Data ratio: | ||
+ | Metadata ratio: | ||
+ | Global reserve: | ||
+ | Multiple profiles: | ||
+ | |||
+ | Data, | ||
+ | / | ||
+ | |||
+ | Metadata, | ||
+ | / | ||
+ | |||
+ | System,DUP: Size: | ||
+ | / | ||
+ | |||
+ | Unallocated: | ||
+ | / | ||
+ | </ | ||
===== Siehe auch ===== | ===== Siehe auch ===== | ||
Zeile 153: | Zeile 287: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | * [[ytv> | ||
+ | * [[ytv> | ||
+ |
tutorials/dateisysteme/btrfs/btrfs.1736689339.txt.gz · Zuletzt geändert: 2025/01/12 13:42 von gahsul