I just spent the last few hours trying to determine why my LXD VM’s would boot, but not find network interfaces. I’ve solved the issue, but I’m left with a question about how LXD handles ZFS storage for its VMs.
I see that when I run
lxc launch ubuntu:focal --vm -p default my-test that LXD generates two zfs objects, a dataset, which in my case lives at
data-pool/lxd-store/virtual-machines/default_my-test and appears to hold config data and other qemu related things, and a zvol at
data-pool/lxd-store/virtual-machines/default_my-test.block. The dataset has a ZFS quota of
95.4M applied to it, but I didn’t set this quota, so I assume that LXD did somehow? (my actual issue was
warning: tap: open vhost char device failed: Permission denied at the end of
lxd info my-test --show-log and the result was that commands hung, and no VM’s could use the network)
The thing that is strange is that older VM’s on the same system (LXD 4.15, has always been v4.x) do not have this quota set. I assume that because of my snapshot policy(@daily), this quota was responsible for making all the VM’s fail to boot with networking and show lots of other weird issues, like hung
lxc stop my-test commands when my snapshots filled up the
95.4M of space on that dataset.
My two questions are:
- Did LXD set this quota, and how to I control that/set a new default value?
- Is there any problem for the long run with removing the quota, or should i leave it at
1Gwhich is how i set it to get things working again?
All my LXD containers ran flawlessly throughout this incident.
Thanks for any tips or help you all can offer!