Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi2:btrfs

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
lpi2:btrfs [2025/01/13 10:42] – [Subvolume zum default-Volume machen] ingo_wichmannlpi2:btrfs [2026/09/16 13:02] (aktuell) – ingo_wichmann
Zeile 1: Zeile 1:
 ====== btrfs ====== ====== btrfs ======
 +Status: 
 +  * https://btrfs.readthedocs.io/en/stable/Status.html
 +  * https://silvenga.com/posts/btrfs-and-lessons-learned/
  
 Paket:  Paket: 
-  * Debian: ''btrfs-progs''+  * Debian: ''btrfs-progs btrfsmaintenance'' 
 +  * RockyLinux: ''btrfs-progs btrfsmaintenance''
  
 ===== Dateisystem anlegen ===== ===== Dateisystem anlegen =====
-ext? nach btrfs konvertieren:+++++ ext? nach btrfs konvertieren |
   man btrfs-convert   man btrfs-convert
- +++++
-oder besser:+
  
 Dateisystem anlegen und mounten: Dateisystem anlegen und mounten:
   mkfs.btrfs /dev/sda2   mkfs.btrfs /dev/sda2
   btrfs filesystem show   btrfs filesystem show
-  mkdir /mnt/btrfs +  mount -m -o noatime /dev/sda2 /mnt/btrfs 
-  mount /dev/sda2 /mnt/btrfs+(( TODO: [[https://wiki.tnonline.net/w/Blog/The_case_for_(no)_atime_on_Linux|noatime]] nachvollziehen 
 +))
   cd /mnt/btrfs   cd /mnt/btrfs
  
 Beispieldaten hinein kopieren: Beispieldaten hinein kopieren:
   time cp -a /usr/share/ .   time cp -a /usr/share/ .
 +
 +===== Reflink / CoW =====
 +
 +Schnelle Kopien dank reflink/CoW:
 +  time cp -a share/ share2
  
 ===== Daten komprimieren ===== ===== Daten komprimieren =====
-Daten komprimieren: +Daten komprimieren: (( Data loss on rotated journal files on BTRFS volumes using compression: https://github.com/systemd/systemd/issues/9112 )) ((Mehr Datenverbrauch durch Defragmentation: [[https://btrfs.readthedocs.io/en/latest/Defragmentation.html|Defragmentation does not preserve extent sharing, e.g. files created by cp --reflink or existing on multiple snapshots. Due to that the data space consumption may increase.]] )) 
-  btrfs filesystem df -h share/+  btrfs filesystem df -h .
 -> ''Data, single: total=2.01GiB, used=1.53GiB'' -> ''Data, single: total=2.01GiB, used=1.53GiB''
   btrfs filesystem defragment -czstd -r share/   btrfs filesystem defragment -czstd -r share/
-  btrfs filesystem df -h share/+  btrfs filesystem df -h .
 -> ''Data, single: total=3.01GiB, used=740.17MiB'' -> ''Data, single: total=3.01GiB, used=740.17MiB''
 +  btrfs filesystem usage .
 ===== Subvolumes ===== ===== Subvolumes =====
 Informationen über das top-level Subvolume anzeigen: Informationen über das top-level Subvolume anzeigen:
Zeile 62: Zeile 71:
   btrfs subvolume snapshot -r subvol2 snap_ro1   btrfs subvolume snapshot -r subvol2 snap_ro1
  
-  btrfs filesystem df -h .+  btrfs filesystem usage .
   btrfs filesystem du -s --human-readable .   btrfs filesystem du -s --human-readable .
   du -sh .   du -sh .
Zeile 69: Zeile 78:
   du -sh subvol2   du -sh subvol2
   btrfs filesystem du -s --human-readable snap1   btrfs filesystem du -s --human-readable snap1
 +
 +===== Backup mit send und receive =====
 +==== Initiales Vollbackup ====
 +Read-only Snapshot erstellen:
 +  btrfs subvolume snapshot -r subvol2 snap_ro2
 +Backup übertragen:
 +  btrfs send snap_ro2 | ssh 192.168.122.74 btrfs receive /mnt/btrfs
 +((
 +Mit ''pv'' Datenmenge anzeigen:
 +  btrfs send -p snap_ro2 | pv | ssh 192.168.122.74 btrfs receive /mnt/btrfs
 +))
 +==== Inkrement ====
 +Daten ändern:
 +  touch subvol2/status
 +  date -r subvol2/status
 +Read-only Snapshot erstellen:
 +  btrfs subvolume snapshot -r subvol2 snap_ro3
 +Backup übertragen:
 +  btrfs send -p snap_ro2 snap_ro3 | ssh 192.168.122.74 btrfs receive /mnt/btrfs
 +Testen, ob Daten angekommen sind:
 +  ssh 192.168.122.74 date -r /mnt/btrfs/snap_ro3/status
  
 ===== Subvolume zum default-Volume machen ===== ===== Subvolume zum default-Volume machen =====
Zeile 74: Zeile 104:
 Snapshot des root-Volumes erstellen: Snapshot des root-Volumes erstellen:
   btrfs subvolume snapshot . 2025011300   btrfs subvolume snapshot . 2025011300
-Daten (nicht Subvolumes!) aus root-Volume löschen: 
-  ls 2025011300 | xargs echo rm -rf 
--> prüfen, das da keine Verzeichnisse mit verschachtelten Subvolumes enthalten sind 
-  ls 2025011300 | xargs rm -rf 
   btrfs subvolume show 2025011300   btrfs subvolume show 2025011300
 -> ''Subvolume ID'' kopieren, z.B. 258 -> ''Subvolume ID'' kopieren, z.B. 258
   btrfs subvolume set-default 256 2025011300/   btrfs subvolume set-default 256 2025011300/
 +Daten (nicht Subvolumes!) aus root-Volume löschen:
 +  rm -rf --one-file-system /mnt/btrfs
  
 testen: testen:
Zeile 89: Zeile 117:
   ls btrfs   ls btrfs
  
-===== Subvolume mounten ===== +===== Top-Subvolume mounten ===== 
-  mkdir /mnt/subvol +  mkdir /mnt/btrfs 
-  mount -o subvolid=5 /dev/sdb /mnt/subvol +  mount -o subvolid=5,subvol=/ /dev/sda2 /mnt/btrfs 
-===== SuSE =====+<file txt /etc/fstab> 
 +UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/btrfs btrfs noauto,subvolid=5,subvol=/ 0 0 
 +</file> 
 + 
 +===== Datenträger tauschen ===== 
 +==== langsam ==== 
 +  btrfs device usage . 
 +  btrfs device add /dev/sda6 . 
 +  btrfs device usage . 
 +  btrfs device del /dev/sda2 . 
 +  watch -d btrfs filesystem usage -T . 
 + 
 +==== schneller & fehlertoleranter ==== 
 +  # btrfs replace start <id> <new-disk> <mount-point> 
 +  btrfs   replace start 1    /dev/sda6  . 
 +  btrfs replace status . 
 + 
 +== Doku == 
 +  * https://wiki.tnonline.net/w/Btrfs/Replacing_a_disk 
 +  * [[https://btrfs.readthedocs.io/en/latest/btrfs-replace.html|man btrfs-replace]] 
 +===== Dateisystem vergrößern ===== 
 +Datenträger/Volume auf dem das BTRFS liegt vergrößern, dann: 
 +  btrfs device usage . 
 +  btrfs filesystem resize max . 
 +  btrfs device usage . 
 + 
 +===== zum RAID1 erweitern ===== 
 +  btrfs device add /dev/vde . 
 +  btrfs -v balance start -mconvert=raid1,soft -dconvert=raid1,soft . 
 +  btrfs device usage . 
 + 
 +====== BTRFS bei SuSE ======
 ++++ SuSE default root layout | ++++ SuSE default root layout |
 SuSE default: SuSE default:
lpi2/btrfs.1736764966.txt.gz · Zuletzt geändert: 2025/01/13 10:42 von ingo_wichmann