[SOLVED] HBA Passthrough in TrueNAS, OMV oder Windows VM

harry1983

Member
Feb 17, 2022
89
15
13
41
Grüss euch

Folgendes Thema habe ich leider seit heute. Ich habe mir eine HBA LSI Karte (Broadcom / LSI SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon]) organisiert, die an meinem Silverstone Case CS380 mit einer SAS/SATA Backplane hängt. Die Karte wird in Proxmox erkannt

Das Commando lscpi -knn zeigt

Code:
0b:00.0 RAID bus controller [0104]: Broadcom / LSI SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] [1000:0072] (rev 03)

Subsystem: Fujitsu Technology Solutions HBA Ctrl SAS 6G 0/1 [D2607] [1734:1177]

Kernel driver in use: vfio-pci

Kernel modules: mpt3sas

Soweit so gut. Aber wenn ich die Karte in eine VM durchschleife und dort versuche die erkannten SAS Disken zu formatieren oder in einen Pool zusammenzufassen stürzt die VM mit einem internal Error ab.

Das Proxmox Log zeigt mir jedesmal:

Code:
Feb 03 19:47:04 host1 QEMU[1716166]: kvm: vfio_err_notifier_handler(0000:0b:00.0) Unrecoverable error detected. Please collect any data possible and then kill the guest
Feb 03 19:47:04 host1 kernel: pcieport 0000:00:1c.7: DPC: containment event, status:0x1f05 source:0x0b00
Feb 03 19:47:04 host1 kernel: pcieport 0000:00:1c.7: DPC: ERR_FATAL detected
Feb 03 19:47:06 host1 QEMU[1716166]: kvm: vfio_err_notifier_handler(0000:0b:00.0) Unrecoverable error detected. Please collect any data possible and then kill the guest
Feb 03 19:47:06 host1 kernel: pcieport 0000:00:1c.7: DPC: Data Link Layer Link Active not set in 1000 msec
Feb 03 19:47:06 host1 kernel: pcieport 0000:00:1c.7: AER: subordinate device reset failed
Feb 03 19:47:06 host1 kernel: pcieport 0000:00:1c.7: AER: device recovery failed
Feb 03 19:47:06 host1 kernel: pcieport 0000:00:1c.7: DPC: containment event, status:0x1f05 source:0x0b00
Feb 03 19:47:06 host1 kernel: pcieport 0000:00:1c.7: DPC: ERR_FATAL detected
Feb 03 19:47:07 host1 kernel: pcieport 0000:00:1c.7: AER: device recovery successful

Interessanterweise ist es egal ob die VM TrueNAS core, Scale, OpenMediaVault oder ein Windows Server ist. Bei allen tritt das gleiche Problem auf. Jetzt bin ich auf die Fehlersuche gegangen, aber kann mir einfach keinen Reim draus machen woran es liegen kann. Die Disken werden in allen OS System richtig erkannt, aber weder Wipen noch initialisieren (im Windows) funktioniert.
Mein Mainboard ist aktuell ein ASUS Pro Q570M-C/CSM, die Karte hängt derzeit an einem x1 <-> x16 Riser Adapter, aber das dürfte ja (ausser vlt eine Geschwindigkeitseinbuße) kein Thema sein. Die Karte selbst dürfte vom Verkäufer richtig geflashed - IT Mode worden sein (Der Screenshot zeigt im CLI von TrueNAS einen Fehler, da sieht man die Firmwareversion).
Jetzt die große Frage, weiss jemand von euch woran das liegen kann? Ist das vlt das Mainboard das die Karte nicht richtig unterstützt? Oder hat die Karte etwas? (Muss zugeben die war bei ebay über einen Chinesen Händler, der aber 100% Weiterempfehlung für diese Karten hatte) Ich will mir jetzt nicht eine neue Karte kaufen, nur um dann feststellen zu müssen das es vlt nicht die Karte war :/

Proxmox ist die aktuellste Version inkl. aller notwendigen Patches.

Code:
root@host1:~# pveversion -v
proxmox-ve: 7.3-1 (running kernel: 5.15.83-1-pve)
pve-manager: 7.3-4 (running version: 7.3-4/d69b70d4)
pve-kernel-helper: 7.3-3
pve-kernel-5.15: 7.3-1
pve-kernel-5.15.83-1-pve: 5.15.83-1
pve-kernel-5.15.74-1-pve: 5.15.74-1
ceph-fuse: 15.2.17-pve1
corosync: 3.1.7-pve1
criu: 3.15-1+pve-1
glusterfs-client: 9.2-1
ifupdown2: 3.1.0-1+pmx3
ksm-control-daemon: 1.4-1
libjs-extjs: 7.0.0-1
libknet1: 1.24-pve2
libproxmox-acme-perl: 1.4.3
libproxmox-backup-qemu0: 1.3.1-1
libpve-access-control: 7.3-1
libpve-apiclient-perl: 3.2-1
libpve-common-perl: 7.3-2
libpve-guest-common-perl: 4.2-3
libpve-http-server-perl: 4.1-5
libpve-storage-perl: 7.3-2
libspice-server1: 0.14.3-2.1
lvm2: 2.03.11-2.1
lxc-pve: 5.0.2-1
lxcfs: 5.0.3-pve1
novnc-pve: 1.3.0-3
proxmox-backup-client: 2.3.2-1
proxmox-backup-file-restore: 2.3.2-1
proxmox-mini-journalreader: 1.3-1
proxmox-widget-toolkit: 3.5.3
pve-cluster: 7.3-2
pve-container: 4.4-2
pve-docs: 7.3-1
pve-edk2-firmware: 3.20220526-1
pve-firewall: 4.2-7
pve-firmware: 3.6-3
pve-ha-manager: 3.5.1
pve-i18n: 2.8-2
pve-qemu-kvm: 7.1.0-4
pve-xtermjs: 4.16.0-1
qemu-server: 7.3-3
smartmontools: 7.2-pve3
spiceterm: 3.2-2
swtpm: 0.8.0~bpo11+2
vncterm: 1.7-1
zfsutils-linux: 2.1.9-pve1
 

Attachments

  • Screenshot 2023-02-03 180001.png
    Screenshot 2023-02-03 180001.png
    48.9 KB · Views: 4
  • Screenshot 2023-02-03 204000.png
    Screenshot 2023-02-03 204000.png
    31.8 KB · Views: 3
Last edited:
Als erstes mal würde ich versuchen den Riser als Problemquelle auszuschließen. Der kann ja schlecht geschirmt sein oder ähnliches, was die Kommunikation stören könnte. 1x auf 16x klingt nach einen von dieses fragwürdigen GPU-Mining-Risern, welche das PCIe Signal über ein USB-Kabel schicken?
 
Als erstes mal würde ich versuchen den Riser als Problemquelle auszuschließen. Der kann ja schlecht geschirmt sein oder ähnliches, was die Kommunikation stören könnte. 1x auf 16x klingt nach einen von dieses fragwürdigen GPU-Mining-Risern, welche das PCIe Signal über ein USB-Kabel schicken?

Den hab ich vor 4 Tagen bei Reichelt bestellt. ist die Marke Delock, der hier: Reichelt Delock , der sollte eigentlich passen.
 
Würde auf dem PVE-Host erstmal mit:
Bash:
for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done
checken, wie die IOMMU-Gruppen aktuell überhaupt aussehen. (Vorausgesetzt, du benutzt nicht den ACS-Override-Patch: [1]; ansonsten ist die Ausgabe ziemlich useless.)

Sollten die gut aussehen (ohne ACS-Override-Patch!), würde ich auch als nächstes den Riser ausschließen.
Was steckt in dem x16-Slot? Wenn GPU und die CPU hat eine iGPU, dann würde ich die GPU mal ausbauen und den HBA in dem x16-Slot testen.
Bei solchen Sachen (Hardwareänderungen) Autostart der VMs (speziell die) mit PCIe-Passthrough immer ausschalten!
Kann auch sein, dass du die Netzwerk-Konfig nach solchen Änderungen anpassen musst, aufgrund eventuell geänderter NIC-Namen.

HBA auch mal direkt am PVE-Host, also komplett ohne PCIe-Passthrough, Binding, Blacklisting, testen. (Sowohl mit Riser, als auch in dem x16-Slot.)

Ggf. IT-Mode-Firmware (mit und/oder ohne Boot-ROM) nochmal "sauber" flashen. (Am sichersten vermutlich direkt am Host; ohne jegliches PCIe-Passthrough, Binding, Blacklisting, was auch immer.)

Gefälschter HBA könnte letzten Endes natürlich auch sein...

Was ich also unterm Strich erstmal sicherstellen würde ist, dass der HBA generell auf dem Host einwandfrei funktioniert.
Erst im nächsten Schritt würde ich mich um PCIe-Passthrough kümmern.

[1] https://wiki.archlinux.org/title/PC...passing_the_IOMMU_groups_(ACS_override_patch)
 
  • Like
Reactions: harry1983
Würde auf dem PVE-Host erstmal mit:
Bash:
for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; done
checken, wie die IOMMU-Gruppen aktuell überhaupt aussehen. (Vorausgesetzt, du benutzt nicht den ACS-Override-Patch: [1]; ansonsten ist die Ausgabe ziemlich useless.)

Sollten die gut aussehen (ohne ACS-Override-Patch!), würde ich auch als nächstes den Riser ausschließen.
Was steckt in dem x16-Slot? Wenn GPU und die CPU hat eine iGPU, dann würde ich die GPU mal ausbauen und den HBA in dem x16-Slot testen.
Bei solchen Sachen (Hardwareänderungen) Autostart der VMs (speziell die) mit PCIe-Passthrough immer ausschalten!
Kann auch sein, dass du die Netzwerk-Konfig nach solchen Änderungen anpassen musst, aufgrund eventuell geänderter NIC-Namen.

HBA auch mal direkt am PVE-Host, also komplett ohne PCIe-Passthrough, Binding, Blacklisting, testen. (Sowohl mit Riser, als auch in dem x16-Slot.)

Ggf. IT-Mode-Firmware (mit und/oder ohne Boot-ROM) nochmal "sauber" flashen. (Am sichersten vermutlich direkt am Host; ohne jegliches PCIe-Passthrough, Binding, Blacklisting, was auch immer.)

Gefälschter HBA könnte letzten Endes natürlich auch sein...

Was ich also unterm Strich erstmal sicherstellen würde ist, dass der HBA generell auf dem Host einwandfrei funktioniert.
Erst im nächsten Schritt würde ich mich um PCIe-Passthrough kümmern.

[1] https://wiki.archlinux.org/title/PC...passing_the_IOMMU_groups_(ACS_override_patch)

Kann berichten es funktioniert jetzt, ich habe die Karte aus dem Slot gegeben wieder frisch reingesetzt, die Kabel getauscht und siehe da es funktioniert nun ohne Probleme. Thema hat sich also Gott sei Dank erledigt, mysteriös wars aber trotzdem muss ich gestehen ^^

Zu deinen Fragen:

Code:
root@host1:~# for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU group %s ' "$n"; lspci -nns "${d##*/}"; doneIOMMU group 0 00:00.0 Host bridge [0600]: Intel Corporation Device [8086:4c53] (rev 01)
IOMMU group 10 00:1c.6 PCI bridge [0604]: Intel Corporation Device [8086:43be] (rev 11)
IOMMU group 11 00:1c.7 PCI bridge [0604]: Intel Corporation Device [8086:43bf] (rev 11)
IOMMU group 12 00:1d.0 PCI bridge [0604]: Intel Corporation Device [8086:43b0] (rev 11)
IOMMU group 13 00:1f.0 ISA bridge [0601]: Intel Corporation Device [8086:4384] (rev 11)
IOMMU group 13 00:1f.3 Audio device [0403]: Intel Corporation Device [8086:43c8] (rev 11)
IOMMU group 13 00:1f.4 SMBus [0c05]: Intel Corporation Device [8086:43a3] (rev 11)
IOMMU group 13 00:1f.5 Serial bus controller [0c80]: Intel Corporation Device [8086:43a4] (rev 11)
IOMMU group 13 00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (14) I219-LM [8086:15f9] (rev 11)
IOMMU group 14 01:00.0 PCI bridge [0604]: ASMedia Technology Inc. Device [1b21:1806] (rev 01)
IOMMU group 15 02:00.0 PCI bridge [0604]: ASMedia Technology Inc. Device [1b21:1806] (rev 01)
IOMMU group 15 03:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller [10ec:8125] (rev 04)
IOMMU group 16 02:02.0 PCI bridge [0604]: ASMedia Technology Inc. Device [1b21:1806] (rev 01)
IOMMU group 16 04:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller [10ec:8125] (rev 04)
IOMMU group 17 02:06.0 PCI bridge [0604]: ASMedia Technology Inc. Device [1b21:1806] (rev 01)
IOMMU group 17 05:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller [10ec:8125] (rev 04)
IOMMU group 18 02:0e.0 PCI bridge [0604]: ASMedia Technology Inc. Device [1b21:1806] (rev 01)
IOMMU group 18 06:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller [10ec:8125] (rev 04)
IOMMU group 19 07:00.0 Non-Volatile memory controller [0108]: Sandisk Corp Device [15b7:501a]
IOMMU group 1 00:01.0 PCI bridge [0604]: Intel Corporation Device [8086:4c01] (rev 01)
IOMMU group 20 0a:00.0 SATA controller [0106]: ASMedia Technology Inc. Device [1b21:1064] (rev 02)
IOMMU group 21 0b:00.0 RAID bus controller [0104]: Broadcom / LSI SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] [1000:0072] (rev 03)
IOMMU group 22 0c:00.0 Non-Volatile memory controller [0108]: Sandisk Corp Device [15b7:501a]
IOMMU group 2 00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:4c8a] (rev 04)
IOMMU group 3 00:06.0 PCI bridge [0604]: Intel Corporation Device [8086:4c09] (rev 01)
IOMMU group 4 00:14.0 USB controller [0c03]: Intel Corporation Device [8086:43ed] (rev 11)
IOMMU group 4 00:14.2 RAM memory [0500]: Intel Corporation Device [8086:43ef] (rev 11)
IOMMU group 5 00:15.0 Serial bus controller [0c80]: Intel Corporation Device [8086:43e8] (rev 11)
IOMMU group 6 00:16.0 Communication controller [0780]: Intel Corporation Device [8086:43e0] (rev 11)
IOMMU group 6 00:16.3 Serial controller [0700]: Intel Corporation Device [8086:43e3] (rev 11)
IOMMU group 7 00:17.0 SATA controller [0106]: Intel Corporation Device [8086:43d2] (rev 11)
IOMMU group 8 00:1b.0 PCI bridge [0604]: Intel Corporation Device [8086:43c0] (rev 11)
IOMMU group 9 00:1c.0 PCI bridge [0604]: Intel Corporation Device [8086:43ba] (rev 11)

Der Riser ist wie gesagt frisch gekauft und ein normaler Hersteller, keine Chinesenkopie

Im aktuellen x16 Slot steckt eine 4 Port 2,5Gbit/s Netzwerkkarte, die kann ich leider nicht rausgeben sonst komme ich am Server nicht mehr von meinem PC, da müsste ich vorher das ganze Netzwerk umkonfigurieren.

Firmware hätte ich mir zumindest die Version angesehen, die würde passen zum aktuellen Flash den ich nach einer Anleitung gefunden habe.

Wie gesagt Thema ist Gott sei Dank erledigt, aber falls jemand ein ähnliches hat sind deine Schritte sicher mal nicht schlecht durchzugehen :)
Danke
 
  • Like
Reactions: Neobin

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!