Some advise with USB HDD passthrough over HDD passthrough

GenGT

Member
Jun 18, 2022
5
0
6
Hello everyone,

I have a home server running Proxmox 8.4.1 and I recently acquired a Terramaster D6-320 DAS, which I’ve passed through via USB to an OMV virtual machine. This type of DAS presents 6 HDDs independently, but they all appear with the same ID repeated 6 times, so I have to passthrough each port individually.

Inside the OMV VM, I use a partition system based on mergerfs + snapraid. This way, I avoid the issues ZFS has with this kind of device, and it’s a setup that works perfectly for me.

The problem arises when I try to perform a parity sync with snapraid — at that moment, the VM completely freezes, and the following error appears in the logs:

usb_packet_check_state: assertion `!"usb packet state check failed

So I assume the issue is related to USB passthrough and how the host handles it.

This problem doesn’t occur if I pass the disks directly to the VM — in that case, the sync completes without issues. However, using that method, I lose all SMART-related functionality. I also can’t passthrough the entire USB controller, since the host manages all ports through a single controller.

Could you advise me on what I could check or try to get this working properly via USB passthrough?

Thanks!
 
Can you share qm config VMIDHERE --current? I wonder if passing a separate USB 3.x HUB would work better.
but they all appear with the same ID
That might be related to the problem.
 
Last edited:
Can you share qm config VMIDHERE --current? I wonder if passing a separate USB 3.x HUB would work better.

That might be related to the problem.
Hello,

This is my qm config that works:

agent: 1
balloon: 2048
bios: seabios
boot: order=scsi0;net0
cores: 4
cpu: host
machine: q35,viommu=intel
memory: 4096
meta: creation-qemu=9.2.0,ctime=1753033619
name: OpenMediaVault
net0: virtio=BC:24:11:B6:9C:40,bridge=vmbr0,rate=100
numa: 0
ostype: l26
scsi0: local-zfs:vm-100-disk-0,backup=0,iothread=1,size=8G,ssd=1
scsi1: local-zfs:vm-100-disk-1,backup=0,iothread=1,size=10G,ssd=1
scsi2: /dev/disk/by-id/ata-ST4000VN006-3CW104_XXXX,backup=0,size=3907018584K
scsi3: /dev/disk/by-id/ata-ST4000VX015-3CU104_XXXX,backup=0,size=3907018584K
scsi4: /dev/disk/by-id/ata-ST4000VX016-3CV104_XXXX,backup=0,size=3907018584K
scsi5: /dev/disk/by-id/ata-ST4000VX016-3CV104_XXXX,backup=0,size=3907018584K
scsi6: /dev/disk/by-id/ata-ST4000VX016-3CV104_XXXX,backup=0,size=3907018584K
scsi7: /dev/disk/by-id/ata-WDC_WD40PURX-64GVNY0_WD-WCC4E3NXNT3C,backup=0,size=3907018584K
scsihw: virtio-scsi-single
smbios1: uuid=8d0f25c8-f746-4cc9-8984-6e9d1bbd9794
sockets: 1
vmgenid: e630db4a-51a8-4ba6-a1c7-3d0b5de595ed
If I try to passtrough with usb vendor/ID option all HDD are showed as unic ID and OMV only detects one drive at the same time.
1753434953378.png

If I passtrough with USB Port, I can pass all HDDs and seems that all is working fine, but the VM crash (shutdown) when snapraid parity sync begins. With parity sync, all data disk reads at the same time, and parity disk write.

1753435206437.png

I can't passtrough the pci usb controller, as all USBs are controlled by only one controller:
1753435419629.png