I have tried to setup a server for our small company using a Ryzen 7 2700X, ASUS ROG Crosshair VI Hero, 64GB DDR4-2666 C16, 256GB SAMSUNG 970 Pro (boot drive), 4x 4TB WD Gold (zpool) and Ubuntu Server 19.10.
KVM QEMU is the hypervisor and I have a standard qcow2 in a dataset of the pool with virtio interface for the VM drive. However performance is kinda bad. I have passed through the Zeppelin USB host controller and I tried to copy a large file in the VM. The write performance at first is kinda good an consistent but at about 18GB it starts to go way down from about 300MB/s to 20MB/s or worse. I already tried changing the buffer mode and using a RAW file instead of qcow2. I also tried adding cache and log devices to the pool but it doesn’t change. Maybe if someone has gone through this already, you could help me out or give me a hint on what I am doing wrong. Here is my pool configuration. Thank you very much in advance
How does your hypervisor allocate the space for the VM disk? Is it set to some sort of thin provisioning where the VM only uses the amount of space that it actually takes up, or is it possible to allocate all the space for the VM disks before hand?
Could you try to do some fio/dd tests on the filesystem where you store the VM disks? On the hypervisor itself, not via a VM, just to check if the issue is on the filesystem layer or the VM layer. Maybe it could point us in the right direction?