BtrFS: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(→Links) |
(→Quota) |
||
Zeile 67: | Zeile 67: | ||
btrfs qgroup assign 0/966 1/100 /media/work # subvolume b hat id 966 | btrfs qgroup assign 0/966 1/100 /media/work # subvolume b hat id 966 | ||
btrfs qgroup show -reF /media/work | btrfs qgroup show -reF /media/work | ||
</pre> | |||
<pre># qgroup total owned | |||
0/5 4698025984 8192 | |||
0/257 52432896 4096 | |||
0/263 4405821440 12288 | |||
0/264 4698025984 8192 | |||
</pre> | </pre> | ||
Version vom 30. November 2019, 00:20 Uhr
Links
- VmHost
- Scrub-Script: http://marc.merlins.org/perso/btrfs/post_2014-03-19_Btrfs-Tips_-Btrfs-Scrub-and-Btrfs-Filesystem-Repair.html
- Position einer Datei im Image: https://blogs.oracle.com/wim/btrfs-scrub-go-fix-corruptions-with-mirror-copies-please
Erstellen
- Achtung: Immer Partitionsschema anlegen (fdisk...). Ohne geht auch, aber mit Einschränkungen (grub...)
mkfs.btrfs -L debian10 /dev/sdb1 btrfs filesystem label /dev/sdb1 debian10 # oder RAID1 für Daten (-d) und Metadaten (-m): mkfs.btfs -m raid1 -d raid1 /dev/sdb1 /dev/sdc1 -f # Anzeigen: btrfs filesystem usage /media/work # Späteres Hinzufügen: btrfs device add -f /dev/sdd1 /media/work # Balance notwendig! # Nachträglich zu RAID wandeln: btrfs balance start -dconvert=raid1 -mconvert=raid1 /media/work
Kommandos
btrfs subvol create /media/work/root btrfs subvol list /media/work # z.B. 257 btrfs subvol set-default 257 /media/work # kein default mehr: 5 ist das Rootsystem btrfs subvol set-default 5 /media/work btrfs subvol get-default # Readonly für Snapshot entfernen: btrfs property set -ts /media/fs.system/snapshot ro false btrfs property set /usr compression lzo btrfs property get /usr compression btrfs scrub start / btrfs scrub status / # Für nodatacow: chattr -RV +C /var/lib/mysql/images lsattr -R /var/lib/mysql/images # Kompression anzeigen: compsize /media/work # Info: btrfs filesystem show /media/work btrfs filesystem df /media/work
Quota
- Nachträglich einrichten:
btrfs quota enable /media/work btrfs subvolume list /media/work | cut -d' ' -f2 | xargs -I{} -n1 btrfs qgroup create 0/{} /media/work btrfs quota rescan /media/work
- qgroups sind Nummern <level>/<id>
- Level 0 ist voreingestellt, wenn Subvolume erzeugt wird
- <id> ist für Level 0 die Subvolume-ID, z.B. 0/5 ist die qgroup des Toplevel-Volumes
- <id> für Level > 0 ist frei wählbar
- Erklärung: https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-quota
- Scripte, die Belegungen auflisten: https://btrfs.wiki.kernel.org/index.php/Quota_support
btrfs quota limit 20G /media/work/home # Gruppe einrichten und nutzen (für 2 Subvolumes) btrfs qgroup create 1/100 /media/work btrfs qgroup assign 0/965 1/100 /media/work # subvolume a hat id 965 btrfs qgroup assign 0/966 1/100 /media/work # subvolume b hat id 966 btrfs qgroup show -reF /media/work
# qgroup total owned 0/5 4698025984 8192 0/257 52432896 4096 0/263 4405821440 12288 0/264 4698025984 8192
Einhängen
mount /dev/sdb /media/work
- In /etc/fstab:
UUID=xxx /media/work btrfs defaults,subvol=@,compress,autodefrag 0 1
Subvolumes
Verschachteltes Design
- Gesamtes FS wird gemountet
- Alle Subvolumes sind dann automatisch vorhanden. Nicht extra mounten!
- Aber nur Mounten gestattet Optionen wie Komprimieren oder nodatacow
Gemischtes Design
- Beispiel: ein Subvolume ist als / gemounted, das gesamte FS wird in /media/fs gemountet
- Bei Snapshots sind verschachtelte Subvolumes nicht enthalten (keine rekursiven Snapshots)
Flaches Design
- /etc/fstab:
LABEL=the-btrfs-fs-device / btrfs subvol=/root,defaults,noatime 0 0 LABEL=the-btrfs-fs-device /home btrfs subvol=/home,defaults,noatime 0 0
btrfs subvolume create /media/work/root btrfs subvolume create /media/work/home btrfs subvolume list /media/work btrfs subvolume delete /media/work/vm-store
Snapshots
- Wenn ein (schreibbarer) Schnappschuss erstellt wurde, gibt es keinen Unterschied zwischen Orginal und Schnappschuss.
- Bei Snapshots sind verschachtelte Subvolumes nicht enthalten (keine rekursiven Snapshots)
- Zurücksetzen (Rollback):
- Orginal unmounten
- mv zum Verschieben des alten Subvolumes an einen anderen Platz benutzen
- mv zum Verschieben des Schnappschusses zum Orginal benutzen
- Neu mounten
btrfs subvolume snapshot -r /media/work/backup /media/snapshots/dayly/backup.mon
Balance
btrfs balance /media/work # Verlauf testen btrfs balance status /media/work # Stoppen btrfs balance pause /media/work # Weitermachen btrfs balance resume /media/work # Info btrfs balance status /media/work
Umbau / Fehlerfall
btrfs balance start -v -mconvert=single -dconvert=single /media/work --force btrfs device delete /dev/sda /media/data # Bei einer defekten Festplatte kann das Dateisystem mit folgenden Befehl gemountet werden: mount -o degraded,rw /dev/sda /media/work # folgender Befehl ersetzt eine defekte Platte: btrfs replace start 6 /dev/sdf1 /media/work # mount nicht möglich "inactive unit": btrfs rescue zero-log /dev/sdc5 # Reaktivierung raid1: btrfs balance start -v -mconvert=raid1 -dconvert=raid1 /media/work
Info
btrfs device scan btrfs device scan /dev/sda