Ich habe ein paar Linux-Server im Einsatz, die diverse LXC-Container
ausführen. Die LXC-Container laufen in einem speziellen Plattenbereich,
der mit BTRFS formatiert ist. Leider kann man nur schwer erkennen, wie
voll der Plattenbereich ist. Hier beschreibe ich, wie ich das erkenne
und wie ich den Plattenbereich vergrößere.
Standard-Plattenbereiche
Grundsätzlich schaue ich mit den Füllstand der Plattenbereiche der Server
ja an mit df -h:
Leider erkennt man hier icht den Bereich, in dem die LXC-Container
abliegen!
LXC-Plattenbereiche
123456789101112
root@sb35 ~ # lxc storage list
+---------+-------------+--------+--------------------------------------+---------+
| NAME | DESCRIPTION | DRIVER | SOURCE | USED BY |
+---------+-------------+--------+--------------------------------------+---------+
| default | | btrfs | 1307d017-6705-4e1f-af2c-99f8ee25f3cc | 16 |
+---------+-------------+--------+--------------------------------------+---------+
root@sb35 ~ # lxc storage list --format csv|cut -f1 -d,|while read s; do ( echo "$s"; lxc storage info $s|grep -E "^\s*(space|total) "|cut -f2 -d:)|tr "\n" ","|sed -e "s/,$/\n/"; done
default, 31.65GB, 53.69GB
root@sb35 ~ # lxc storage list --format csv|cut -f1,4 -d,|tr "," " "|while read s b; do ( echo "$s,$b"; blkid|grep "$b"|cut -f1 -d:)|tr "\n" ","; done|sed -e "s/,$/\n/"
default,1307d017-6705-4e1f-af2c-99f8ee25f3cc,/dev/mapper/vg0-lxd
Mit diesen Kommandos sehe ich, dass ich:
einen Plattenbereich eingebunden habe in LXC: default
dieser grob zu zwei Dritteln voll ist: 30 von 50 GB
die zugehörige Gerätedatei diese ist: /dev/mapper/vg0-lxd
Vergrößern
Ich möchte den Plattenbereich vergrößern von 50 GB auf 60 GB:
12345678910111213
root@sb35 ~ # lvextend -L 60G /dev/mapper/vg0-lxd
Size of logical volume vg0/lxd changed from 50.00 GiB (12800 extents) to 60.00 GiB (15360 extents).
Logical volume vg0/lxd successfully resized.
root@sb35 ~ # mount /dev/mapper/vg0-lxd /mnt
root@sb35 ~ # btrfs filesystem resize max /mnt
Resize '/mnt' of 'max'
root@sb35 ~ # umount /mnt
root@sb35 ~ # lxc storage list --format csv|cut -f1 -d,|while read s; do ( echo "$s"; lxc storage info $s|grep -E "^\s*(space|total) "|cut -f2 -d:)|tr "\n" ","|sed -e "s/,$/\n/"; done
default, 31.66GB, 64.42GB
Mit diesem Verfahren hat der Ablauf geklappt! Anderswo beschriebene Abläufe wie bspw.
nsenter -t $(pgrep daemon.start) -m -- btrfs filesystem resize max /var/snap/lxd/common/lxd/storage-pools/default
klappen bei mir nicht, weil in dem dabei aktivierten Namespace das Programm btrfs nicht verfügbar ist.