I am interested in using KVM images on zvols under ZFS on Linux, on a multi-socket system. I am wondering how I should pin NUMA nodes so as to maximize the benefits of ZFS ARC cache for all KVM images on the system. Obviously, I should pin each VM to one socket/node so that all of its memory is on one controller. But I am puzzled about how to set up the host so that the ARC maximally benefits each VM.
It seems logical that if I keep the host on one NUMA node, that would mean that the VMs on the other node will have slower access to the ARC. However, if the host is spread across NUMA nodes, its performance will suffer, which could harm performance in the guest.
From what I've read, I'm not even clear on if the host can be tied to specific nodes, or if by definition it uses all of them. And if that is the case, how aware is ZFS on Linux ARC of NUMA nodes?