ZFS Reduce overhead with "nested" ZFS (on a zvol, VM scenario)

zirias@

Developer
On my server that's also hosting several bhyve VMs, I use zvols to back storage for these machines. So inside these VMs, I use "simple" filesystems (like e.g. UFS in FreeBSD VMs).

But there's one exception: My -CURRENT testbuilder, used for development and testing of ports. With poudriere heavily relying on ZFS snapshots and clones (and working very inefficiently without them), it needs ZFS. Something like a "virtio-zfs" driver allowing to pass a tree of datasets to a vm, similar to zfs-jail(8) for jails, would be perfect, but that remains a dream for now, not even sure it would be conceptually possible.

Now I'm looking for ideas how to reduce the resource overhead. One thing that comes to mind is to avoid using the "inner" ARC by setting primarycache=none. Will this affect performance a lot? Are there other ideas what could be tweaked?

edit, even with primarycache=none, ARC starts growing as soon as disk I/O is performed, I wonder what else is using it. But I guess I have to revert that anyways, things like git status got horribly slow :(. Is there even any chance to optimize anything here?
 
hardworkingnewbie this is a different problem I happen to have with this machine as well, for poudriere logs etc ... I want them always available, even when the machine is down, so virtio-p9 would help a lot. Unfortunately, there is still no guest side code for that in FreeBSD, and the last WIP branch I tested didn't work reliably, so for now, I have to use NFS for that.

It doesn't help for running poudriere though. Poudriere needs to create snapshots and clones on the fly, this only works on ZFS.
 
Back
Top