Ok, from what you posted, I will just summarize this (before I confuse myself perhaps even more
![Big Grin :D :D](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
):
You have 1MB ZVOL disk0 which appears not to be used at all by the VM. Then there's the 3T+ ZVOL which is disk1 which presents itself within the VM as dev sda, split into two partitions- a 1GB EFI and the rest being the VM root partition. This is somehow what one would expect from a Ubuntu install (to auto-partition the drive given to itself a single meaningful ZVOL given to it). I can only speculate the 1MB zvol was some attempt at BIOS BOOT partition but clearly it's not even used by the VM (unless you cropped that output, but it does not really matter).
I do not want to detract from troubleshooting the original issue at hand and since you were getting buffer IO errors from both zvols, i.e. even the one not even in use, I can only revert back to my earlier hypothesis [1] above here.
All the rest, i.e. why use a zvol in this manner and where that mysterious 1MB unused zvol comes from - probably having followed some nextcloud install guide? - is not really a cause for your buffer IO errors, it was just a source of confusion (for me anyways), surely it's suboptimal, but it does not explain how you got all those REFRESERV values all around (e.g. the 1MB unused zvol has 3MB REFRESERV which even more bizzare). I can only imagine all you did was create zvols (virtual disks for your VM) and left them NOT thin provisioned and PVE maxed out the REFRESERV values.
Later on, I might try to setup a 6 vdev RAIDZ2 here over PVE GUI and see what it creates, perhaps file a bug report from there. Takeout for me would be to NOT use thick provisioning on ZFS. In terms of PVE GUI this means ticking extra THIN provision box when creating these zvols.
[1]
https://forum.proxmox.com/threads/m...rt-passed-any-ideas.151260/page-3#post-685626