When I use kvm+libvirt as my hypervisor at home, I usually
pass logical volumes as the guests' drives (I probably can do better
but the disk here is just a garden-variety SSD, not NVMe).
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'
io='native'/>
<source file='/dev/vmhost_vg0/desktop'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00'
slot='0x04'
function='0x0'/>
</disk>
That works fine as local drives, but what about if I want to use the
network storage (can provide nfs and iscsi)? Should I:
1. Create one iscsi target for each guest? Reasoning here is that some
OS can boot off iscsi.
2. Create a local lv with the minimum required disk space to boot, and
then network mount the rest be it as nfs or iscsi?
3. Create a large iscsi target, do not format it, but instead
configure it as a lvm, handing out logical volumes as before? So the
vm guest won't know any better.
I am leaning towards door #3, but I am open for suggestions.