Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
admin_grundlagen:docker_mit_btrfs [2024/02/24 09:23] ingo_wichmann angelegt |
admin_grundlagen:docker_mit_btrfs [2025/04/01 11:02] (aktuell) ingo_wichmann |
||
---|---|---|---|
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'' | ||
+ | mkdir /mnt/btrfs | ||
+ | mount /dev/sdaX /mnt/btrfs | ||
+ | cd /mnt/btrfs | ||
+ | btrfs subvolume create $(date '+%Y%m%d') | ||
+ | -> Subvolume ID merken und bei XXX einsetzen: | ||
+ | btrfs subvolume set-default XXX $(date '+%Y%m%d')/ | ||
===== Docker Daten in BTRFS verschieben ===== | ===== Docker Daten in BTRFS verschieben ===== | ||
- | systemctl stop docker.service | ||
systemctl stop docker.socket | systemctl stop docker.socket | ||
+ | systemctl stop docker.service | ||
cd /var/lib/ | cd /var/lib/ | ||
du -sh docker | du -sh docker | ||
- | tar -cf docker.tar.zstd --use-comp=zstd 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.zstd | + | tar -xf docker.tar.zst |
+ | rm docker.tar.zst | ||
+ | |||
+ | ===== Snapshot erstellen ===== | ||
+ | systemctl stop docker.socket | ||
+ | systemctl stop docker.service | ||
+ | mount /mnt/btrfs | ||
+ | cd /mnt/btrfs | ||
+ | aktuell aktives Docker-Subvolume ermitteln: | ||
+ | btrfs subvolume get-default . | ||
+ | -> ID 472 gen 428819 top level 5 path **2025012601** | ||
+ | btrfs subvolume snapshot 2025012601 $(date '+%Y%m%d')00 | ||
+ | systemctl start docker.socket | ||
+ | |||
+ | ===== Docker mit BTRFS starten ===== | ||
+ | <code json /etc/docker/daemon.json> | ||
+ | { | ||
+ | "storage-driver": "btrfs" | ||
+ | } | ||
+ | </code> | ||
+ | systemctl start docker.socket | ||
+ | systemctl start docker.service | ||
+ | |||
+ | prüfen: | ||
+ | docker info | ||
+ | -> ''Storage Driver: btrfs'' | ||