Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
admin_grundlagen:docker_mit_btrfs [2024/06/18 16:17] ingo_wichmann [Docker Daten in BTRFS verschieben] |
admin_grundlagen:docker_mit_btrfs [2025/10/28 11:08] (aktuell) ingo_wichmann [Snapshot erstellen] |
||
|---|---|---|---|
| Zeile 2: | Zeile 2: | ||
| siehe auch https://docs.docker.com/storage/storagedriver/btrfs-driver/ | siehe auch https://docs.docker.com/storage/storagedriver/btrfs-driver/ | ||
| + | ===== BTRFS vorbereiten ===== | ||
| Voraussetzungen: | Voraussetzungen: | ||
| - | * kernel unterstützt BTRFS: | + | * kernel unterstützt BTRFS (( |
| modinfo btrfs | modinfo btrfs | ||
| Zeile 9: | Zeile 10: | ||
| grep btrfs /proc/filesystems | grep btrfs /proc/filesystems | ||
| -> Sollte bei Debian, Ubuntu und SuSE ''btrfs'' ausgeben. RedHat unterstützt BTRFS nicht. | -> Sollte bei Debian, Ubuntu und SuSE ''btrfs'' ausgeben. RedHat unterstützt BTRFS nicht. | ||
| + | )) | ||
| * Paket: | * Paket: | ||
| * Debian (12): ''btrfs-progs'' | * Debian (12): ''btrfs-progs'' | ||
| Zeile 15: | Zeile 16: | ||
| lsblk | lsblk | ||
| + | mkfs.btrfs /dev/sdaX | ||
| + | -> UUID merken, kommt später in die ''/etc/fstab'' | ||
| + | mount -m /dev/sdaX /mnt/btrfs | ||
| + | cd /mnt/btrfs | ||
| + | btrfs subvolume create $(date '+%Y%m%d')00 | ||
| + | btrfs subvolume show $(date '+%Y%m%d')00 | ||
| + | -> Subvolume ID merken und statt 20xxxxxx00 einsetzen: | ||
| + | btrfs subvolume set-default 20xxxxxx00 . | ||
| ===== Docker Daten in BTRFS verschieben ===== | ===== Docker Daten in BTRFS verschieben ===== | ||
| Zeile 21: | Zeile 30: | ||
| cd /var/lib/ | cd /var/lib/ | ||
| du -sh docker | du -sh docker | ||
| + | df -h . | ||
| + | -> ist genug Platz für ein Backup? | ||
| tar -caf docker.tar.zst docker/ | tar -caf docker.tar.zst docker/ | ||
| shopt -s dotglob | shopt -s dotglob | ||
| rm -rf docker/* | rm -rf docker/* | ||
| - | mkfs.btrfs /dev/sdaX | ||
| - | -> UUID in die Zwischenablage kopieren | ||
| <file txt /etc/fstab> | <file txt /etc/fstab> | ||
| … | … | ||
| # device during installation: /dev/sdaX | # device during installation: /dev/sdaX | ||
| - | UUID=d29a1a5f-14e1-4324-86e4-8175de675f88 /var/lib/docker btrfs rw,relatime,ssd,space_cache=v2,subvolid=5,subvol=/ 0 0 | + | UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /var/lib/docker btrfs rw 0 2 |
| + | UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/btrfs btrfs noauto,subvolid=5,subvol=/ 0 2 | ||
| </file> | </file> | ||
| mount -av | mount -av | ||
| tar -xf docker.tar.zst | tar -xf docker.tar.zst | ||
| + | rm docker.tar.zst | ||
| + | |||
| + | systemctl start docker.service | ||
| + | |||
| + | ===== Snapshot erstellen ===== | ||
| + | aktuell aktives Docker-Subvolume ermitteln: | ||
| + | mount /mnt/btrfs | ||
| + | cd /mnt/btrfs | ||
| + | btrfs subvolume get-default . | ||
| + | -> ID 472 gen 428819 top level 5 path **20xxxxxx00** | ||
| + | |||
| + | Container stoppen: | ||
| + | systemctl stop docker.socket docker.service | ||
| + | Snapshot erstellen | ||
| + | btrfs subvolume snapshot 20xxxxxx00 $(date '+%Y%m%d')01 | ||
| + | Container starten: | ||
| + | systemctl start docker.socket | ||
| + | watch docker ps | ||
| - | ===== Docker mit BTRFS starten ===== | + | ====== Docker mit BTRFS statt overlay ====== |
| <code json /etc/docker/daemon.json> | <code json /etc/docker/daemon.json> | ||
| { | { | ||