It’s my understanding that ZFS doesn’t fully work with disk I/O limits in LXC due to how ZFS handles it’s own I/O path instead of through the kernel.
From: incus/doc/storage.md at main · lxc/incus · GitHub
I/O quotas (IOps/MBs) are unlikely to affect ZFS filesystems very much. That’s because of ZFS being a port of a Solaris module (using SPL) and not a native Linux filesystem using the Linux VFS API which is where I/O limits are applied.
My goal is to make sure a container can’t take up all disk IO bandwidth and prevent other containers from operating correctly.
Questions:
- Does anyone have any info on if any I/O operations are affected on ZFS with limits in place?
- We have a production environment which we would like to have a ZFS pool backed by 8 SSD drives and the entire pool is dedicated to LXD. Is there any way to limit disk I/O reliably?
- If not possible with ZFS what is the next recommended backend store to handle disk I/O limits with the above hardware setup?
If anyone has any insight into the best way to achieve that I appreciate any help!
Thank you in advance!
Side note: I tried to limit disk writes (writing random data via dd
command) on my dev environment which is an ubuntu host running ubuntu containers but the host is running on VirtualBox and the limits did not seem to apply. Is that because I’m running it through a virtualization layer under the host?