Seite wählen

Btrfs / snapper und Tools

von | Apr 6, 2016 | Linux

Über dieses Datei-System und seine Tools wird ja viel geredet und spekuliert, ich möchte heute ein bißchen Praktisches und Kommandos zeigen und was man im Alltag gut brauchen kann.
Vorraussetzung ist das das Paket btrfs-procs und Abhängigkeiten installiert sind, das ist auch schon alles.
man btrfs zeigt die Möglichkeiten von btrfs und die Optionen/Schalter die es gibt.
Partitionen und UUID’s kann man so anschauen:
root:~ # btrfs filesystem show /      -> oder  abgekürzt btrfs fi sh /
Label: none uuid: 957ad303-786f-4456-95b6-1942e5d1943d
Total devices 1 FS bytes used 23.90GiB
devid 1 size 40.00GiB used 26.63GiB path /dev/sda2

————————
Speicherplatz-Belegung:
root ~ # btrfs fi df /
Data, single: total=23.01GiB, used=22.75GiB
System, DUP: total=64.00MiB, used=16.00KiB
Metadata, DUP: total=1.75GiB, used=1.14GiB
GlobalReserve, single: total=400.00MiB, used=0.00B

————————
btrfs scrub start /
liest alle Daten vom Root Filesystem und verifiziert / prüft die Checksum der Dateien im Filesystem
btrfs scrub status /
gibt den derzeitigen Status von scrub ob es Fehler in den Checksums gibt z.B.
scrub status for 957ad303-786f-4456-95b6-1942e5d1943d
scrub started at Tue Apr 5 13:35:17 2016 and finished after 00:04:16<
total bytes scrubbed: 25.03GiB with 0 errors

————————
Es gibt noch mehr Schalter z.B subvolume mit dem Subvolumes aufgelistet erzeugt werden können.
root:~ # btrfs subvolume list /
ID 257 gen 115 top level 5 path @
ID 258 gen 13814 top level 257 path @/.snapshots
ID 259 gen 13839 top level 258 path @/.snapshots/1/snapshot
ID 260 gen 4138 top level 257 path @/boot/grub2/i386-pc

————————
So kommen wir jetzt mal zu Snapper (Snapshot-Tool)
http://snapper.io/
Snapper wird bei SLES (SUSE) oder openSUSE automatisch mit installiert fürs Root-Dateisystem aktiviert, so das sofortige Änderungen am System als neuer Snapshot gespeichert werden. Diese werden normalerweise unter „/.snapshots/0 angelegt.
Für andere Linux-Distributionen wie Debian und Fedora muss wahrscheinilich installiert werden.
root:~ # snapper list
Type | # | Pre # | Date | User | Cleanup | Description | Userdata
-------+-----+-------+--------------------------+------+---------+-----------------------+--------------
single | 0 | | | root | | current |
single | 1 | | Fri Mar 4 13:01:15 2016 | root | | first root filesystem |
single | 2 | | Fri Mar 4 13:14:12 2016 | root | number | after installation | important=yes
pre | 3 | | Fri Mar 4 13:25:06 2016 | root | number | zypp(zypper) | important=yes
post | 4 | 3 | Fri Mar 4 14:00:49 2016 | root | number | | important=yes

————————
Konfig anschauen:
root:~ # snapper get-config
Key | Value
-----------------------+------
ALLOW_GROUPS |
ALLOW_USERS |
BACKGROUND_COMPARISON | yes
EMPTY_PRE_POST_CLEANUP | yes
EMPTY_PRE_POST_MIN_AGE | 1800
FSTYPE | btrfs
NUMBER_CLEANUP | yes
NUMBER_LIMIT | 10
NUMBER_LIMIT_IMPORTANT | 10
NUMBER_MIN_AGE | 1800
SUBVOLUME | /
SYNC_ACL | no
TIMELINE_CLEANUP | yes
TIMELINE_CREATE | no
TIMELINE_LIMIT_DAILY | 10
TIMELINE_LIMIT_HOURLY | 10
TIMELINE_LIMIT_MONTHLY | 10
TIMELINE_LIMIT_WEEKLY | 0
TIMELINE_LIMIT_YEARLY | 10
TIMELINE_MIN_AGE | 1800

Eine tolle ausführliche Beschreibung zu weiteren Funktionen gibt’s auf:
https://en.opensuse.org/openSUSE:Snapper_Tutorial
————————
Schönste Funktion: ROLLBACK
mit snapper rollback snapshotnumber kann man das System auf einen älteren Stand zurücksetzen..
Falls ein Update oder andere System-Probleme z.b nach einer Paket-Installation  (Kernel) fehlschlägt oder das System nicht mehr  funktionstüchig ist, kann man auf den letzten Snapshot, das System wieder auf den Stand vor dem Fehler  zurückdrehen.
Es wird vor dem Rollback noch ein Snapshot von dem „aktuellen Stand“(defeketen) gemacht und dann auf dem gewünschten Snapshot zurückgerollt.
Diese Rollback-Funktion geht nur mit dem BTRFS Datei-System und nur beim Root-Filesystem.
Es ist auch möglich von einer anderen Partition z.B. /home einen Snapper -Config zu erstellen um so automatische Snappschüsse von Home-Verzeichnis zu erhalten.
snapper -c home create-config /home
Um Dateien von einem älteren Snapshot vom /home/.snapshots/1/.. zu bekommen, muss man sich den Snapshot mounten:

mount -o subvolid=XY /dev/sdXY /mnt/

Die subvolid bekommt man durch:
root:~ # btrfs subvolume list /
ID 257 gen 115 top level 5 path @

————————
Unterschiede von zwei Snapshots:
root:~ # snapper diff 3..4 | head
Binary files /.snapshots/3/snapshot/bin/tar and /.snapshots/4/snapshot/bin/tar differ
--- /.snapshots/3/snapshot/boot/.vmlinuz-4.1.15-8-default.hmac 1970-01-01 01:00:00.000000000 +0100
+++ /.snapshots/4/snapshot/boot/.vmlinuz-4.1.15-8-default.hmac 2016-01-21 10:52:47.000000000 +0100
@@ -0,0 +1 @@
+e8eaf8b2f82bb5549f9be63183feeb09ae6e5f87d737c56ee7d00d38cfa882d6
--- /.snapshots/3/snapshot/boot/System.map-4.1.15-8-default 1970-01-01 01:00:00.000000000 +0100
+++ /.snapshots/4/snapshot/boot/System.map-4.1.15-8-default 2016-01-21 10:03:17.000000000 +0100
@@ -0,0 +1,74925 @@
+0000000000000000 D __per_cpu_start
+0000000000000000 V irq_stack_union

Welche Dateien zwischen Snapshots hinzugekommen sind:
root:~ # snapper status 3..4 | head
c..... /bin/tar
+..... /boot/.vmlinuz-4.1.15-8-default.hmac
+..... /boot/System.map-4.1.15-8-default
+..... /boot/config-4.1.15-8-default
+..... /boot/do_purge_kernels
c..... /boot/grub2/grub.cfg
c..... /boot/initrd
c..... /boot/initrd-4.1.12-1-default
+..... /boot/initrd-4.1.15-8-default
+..... /boot/symvers-4.1.15-8-default.gz

————————
Löschen von Snapshots:
snapper delete 25
snapper delete  25-30  -> löscht snapshots 25 bis 30
Ich persönlich finde das Tool Klasse, es hat mir schon mal sehr wichtige Daten gerettet.
Giv‘ em a try!!

Johannes Carraro
Johannes Carraro
Senior Systems Engineer

Bevor Johannes bei NETWAYS anheuerte war er knapp drei Jahre als Systemadministrator in Ansbach tätig. Seit Februar 2016 verstärkt er nun unser Team Operations als Senior Systems Engineer. In seiner Freizeit spielt Johannes E-Gitarre, bastelt an Linux Systemen zuhause herum und ertüchtigt sich beim Tischtennisspielen im Verein, bzw. Mountainbiken, Inlinern und nicht zuletzt Skifahren.

0 Kommentare

Trackbacks/Pingbacks

  1. Konvertierung des alten ext4 Dateisystems zum btrfs Dateisystem › NETWAYS Blog - […] z.B RAID5 beim Server oder auch als home-Partition, die automatische Snapshot-funktion mit Snapper finde ich besonders gelungen. Bei SUSE…

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema Linux

Kickstart your Laptop with Linux

Alle paar Jahre bekomme ich einen neuen Laptop bei Netways. Vor zwei Wochen war es wieder so weit und somit eine gute Gelegenheit mal wieder die Betriebssystem-Frage zu stellen. Die alte Frage also: "Welches Linux ist das Beste?". Also für mich ganz persönlich. Nicht...

Ansible – Testing roles with Molecule

Ansible is a widely used and a powerful open-source configuration and deployment management tool. It can be used for simple repetitive daily tasks or complex application deployments, therefore Ansible is able to cover mostly any situation. If used in complex or...

NETWAYS Support Collector Roadmap

Den Support Collector konnte ich bereits in meinem letzten Blogpost vorstellen. Für alle die den Beitrag verpasst haben, hier kurz umrissen was es ist: Bei dem Tool handelt es sich um einen von uns geschriebenen Datensammler, welche alle möglichen Support relevanten...