[SOLVED] Proxmox PCIe-Passthrough: HBA freezes Host

tim23

New Member
Mar 3, 2023
3
2
3
Deutsch:

Hallo Zusammen,

vor kurzem habe ich mir einen HBA für meinen Proxmox-Server zugelegt. Dieser sollte meine zwei SATA-HDDs an meine TrueNAS-VM durchreichen. Aktuell habe ich testweiße eine SSD am HBA angeschlossen.
Leider stützt der gesamte Proxmox-Server beim starten der TrueNAS-VM ab, sobald ich diese mit meinem HBA, inklusive angeschlossener Festplatte starte.

Komisch ist hierbei, dass die VM bei nicht angeschlossener Festplatte ohne Probleme startet. Sollte ich allerdings die Festplatte wieder am HBA anschließen und die VM neustarten, nimmt dieses das komplette Proxmox-System mit. Ich habe bereits drei unterschiedliche Festplatten angeschlossen, leider taucht immer wieder der gleiche Fehler auf.

Beim starten der VM kommt folgender Fehler (erkennbar nach dem neustarten des Hostsystems):

Code:
unable to read tail (got 0 bytes)

Ich hatte zuvor leider nie etwas mit Proxmox zu tun und bin neu in der Thematik. Ich finde den Fehler in der Konfiguration leider nicht.
Weiß eventuell hier jemand darüber etwas oder ist das sogar ein allgemeines Kernel Problem (https://www.reddit.com/r/homelab/comments/100440d/proxmox_error_unable_to_read_tail_got_0bytes/)

Kernel: 6.1.10-1-pve (auch bereits mit Kernel 5.13.19-6-pve und 5.15.85-1-pve versucht)
ProxmoxVE-Version: 7.3-6
CPU: Intel(R) Core(TM) i3-8100T CPU @ 3.10GHz (1 Socket)
HBA: BEYIMEI PCI Express SATA
Bootloader: GRUB

Welche Schritte ich bereits durchgeführt habe:

- Im BIOS bereits "VT-d" und "Intel Virtualization Technology" aktiviert

- unter "/etc/default/grub" folgendes ergänzt:

Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

> "update-grub" ausgeführt.

- unter "/etc/modules" folgendes ergänzt:

Code:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

> ink. Befehl "update-initramfs -u -k all" und reboot Befehl ausgeführt

- Ausgabe von "dmesg |grep -e DMAR -e IOMMU":

Code:
[    0.018110] ACPI: DMAR 0x000000008475B250 0000C8 (v01 INTEL  EDK2     00000002      01000013)
[    0.018147] ACPI: Reserving DMAR table memory at [mem 0x8475b250-0x8475b317]
[    0.051923] DMAR: IOMMU enabled
[    0.117932] DMAR: Host address width 39
[    0.117933] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.117939] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap 1c0000c40660462 ecap 19e2ff0505e
[    0.117941] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.117945] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008c40660462 ecap f050da
[    0.117946] DMAR: RMRR base: 0x00000083f46000 end: 0x00000083f65fff
[    0.117948] DMAR: RMRR base: 0x0000008b000000 end: 0x0000008f7fffff
[    0.117949] DMAR: RMRR base: 0x00000084697000 end: 0x00000084716fff
[    0.117951] DMAR-IR: IOAPIC id 2 under DRHD base  0xfed91000 IOMMU 1
[    0.117952] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[    0.117953] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.121211] DMAR-IR: Enabled IRQ remapping in x2apic mode
[    0.418592] DMAR: No ATSR found
[    0.418593] DMAR: No SATC found
[    0.418594] DMAR: IOMMU feature fl1gp_support inconsistent
[    0.418595] DMAR: IOMMU feature pgsel_inv inconsistent
[    0.418596] DMAR: IOMMU feature nwfs inconsistent
[    0.418597] DMAR: IOMMU feature pasid inconsistent
[    0.418598] DMAR: IOMMU feature eafs inconsistent
[    0.418598] DMAR: IOMMU feature prs inconsistent
[    0.418599] DMAR: IOMMU feature nest inconsistent
[    0.418600] DMAR: IOMMU feature mts inconsistent
[    0.418600] DMAR: IOMMU feature sc_support inconsistent
[    0.418601] DMAR: IOMMU feature dev_iotlb_support inconsistent
[    0.418602] DMAR: dmar0: Using Queued invalidation
[    0.418605] DMAR: dmar1: Using Queued invalidation
[    0.419104] DMAR: Intel(R) Virtualization Technology for Directed I/O

VM-Config:

1677860503389.png

GUI-Ausschnitt:

1677860422189.png


Kann mir hier eventuell jemand bei dem Problem helfen oder weiß näheres dazu? Ich würde mich sehr darüber freuen.
 
Hast du denn auch überprüft, ob der HBA in seiner eigenen isolieren IOMMU Gruppe ist? Nicht das du da ausversehen noch andere Onboard-Geräte oder ähnlich mit durchreichst. Weil das ist meistens die Ursache, wenn der Server dann abschmiert. Allerdings passt dazu nicht wirklich, dass das ohne angeschlossene Disks klappt.

Du solltest außerdem mal gucken, was denn da für ein SATA Controller verwendet wird.
 
Hallo Dunuin,

der HBA ist der "ASMedia Technology Inc. ASM1062 Serial ATA Controller". Hier die Ausgabe von den IOMMU Gruppen:

Code:
root@pve:~# for d in /sys/kernel/iommu_groups/*/devices/*; do n=${d#*/iommu_groups/*}; n=${n%%/*}; printf 'IOMMU Group %s ' "$n"; lspci -nns "${d##*/}"; done;
IOMMU Group 0 00:02.0 VGA compatible controller [0300]: Intel Corporation CoffeeLake-S GT2 [UHD Graphics 630] [8086:3e91]
IOMMU Group 10 00:1f.0 ISA bridge [0601]: Intel Corporation Cannon Point-LP LPC Controller [8086:a309] (rev 10)
IOMMU Group 10 00:1f.3 Audio device [0403]: Intel Corporation Cannon Lake PCH cAVS [8086:a348] (rev 10)
IOMMU Group 10 00:1f.4 SMBus [0c05]: Intel Corporation Cannon Lake PCH SMBus Controller [8086:a323] (rev 10)
IOMMU Group 10 00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller [8086:a324] (rev 10)
IOMMU Group 10 00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (7) I219-LM [8086:15bb] (rev 10)
IOMMU Group 11 02:00.0 Non-Volatile memory controller [0108]: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983 [144d:a808]
IOMMU Group 12 04:00.0 SATA controller [0106]: ASMedia Technology Inc. ASM1062 Serial ATA Controller [1b21:0612] (rev 02)
IOMMU Group 1 00:00.0 Host bridge [0600]: Intel Corporation 8th Gen Core 4-core Desktop Processor Host Bridge/DRAM Registers [Coffee Lake S] [8086:3e1f] (rev 08)
IOMMU Group 2 00:12.0 Signal processing controller [1180]: Intel Corporation Cannon Lake PCH Thermal Controller [8086:a379] (rev 10)
IOMMU Group 3 00:14.0 USB controller [0c03]: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller [8086:a36d] (rev 10)
IOMMU Group 3 00:14.2 RAM memory [0500]: Intel Corporation Cannon Lake PCH Shared SRAM [8086:a36f] (rev 10)
IOMMU Group 4 00:16.0 Communication controller [0780]: Intel Corporation Cannon Lake PCH HECI Controller [8086:a360] (rev 10)
IOMMU Group 5 00:17.0 SATA controller [0106]: Intel Corporation Cannon Lake PCH SATA AHCI Controller [8086:a352] (rev 10)
IOMMU Group 6 00:1b.0 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port #17 [8086:a340] (rev f0)
IOMMU Group 7 00:1b.4 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port #21 [8086:a32c] (rev f0)
IOMMU Group 8 00:1c.0 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port #1 [8086:a338] (rev f0)
IOMMU Group 9 00:1c.7 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port #8 [8086:a33f] (rev f0)


1677863499653.png

Wenn ich das richtig rauslesen kann hat der HBA eine eigene dedizierte Gruppe. Der Onboard SATA-Controller hat die Gruppe 5 und der HBA die Gruppe 12.
 
Last edited:
Hallo Dunuin,

es funktioniert nun nachdem ich auf "UEFI" umgestellt habe.
Ich bedanke mich vielmals für deine Hilfe und wünsche Dir noch einen schönen Abend.
 
  • Like
Reactions: mr44er and Dunuin

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!