Da Proxmox hier und da vom Linux Standard abweicht, möchte ich euch zeigen, wie man bspw. USB Autosuspend unter Proxmox deaktivieren kann.
Ich selbst bin bei der Inbetriebnahme bzw. beim Kopieren großer Datenmengen auf ein Fantec-Gehäuses darüber gestolpert. Ich habe den Kopiervorgang ganz normal via bspw. rsync gestartet und erstmal lief alles wie erwartet. Irgendwann stieg dann aber meine TrueNAS KVM (die Festplatten des Fantec-Gehäuses sind zu der TrueNAS KVM durchgereicht) mit heftigen I/O Error aus.
Nach einer recht langwierigen Fehlersuche bin ich auf folgende Zeilen im Syslog des Proxmox Hosts gestoßen:
Jul 7 15:14:03 proxmox kernel: [57874.024100] blk_update_request: I/O error, dev sdd, sector 508188064 op 0x1:(WRITE) flags 0x20c800 phys_seg 128 prio class 0
Jul 7 15:14:03 proxmox kernel: [57874.024128] blk_update_request: I/O error, dev sdd, sector 508189088 op 0x1:(WRITE) flags 0x208800 phys_seg 125 prio class 0
Jul 7 15:14:03 proxmox kernel: [57874.024160] blk_update_request: I/O error, dev sdd, sector 508190088 op 0x1:(WRITE) flags 0x208800 phys_seg 3 prio class 0
Jul 7 15:14:03 proxmox kernel: [57874.024181] blk_update_request: I/O error, dev sde, sector 508189600 op 0x1:(WRITE) flags 0x20c800 phys_seg 128 prio class 0
Jul 7 15:14:03 proxmox kernel: [57874.024202] blk_update_request: I/O error, dev sde, sector 508190624 op 0x1:(WRITE) flags 0x208800 phys_seg 128 prio class 0
Jul 7 15:14:03 proxmox kernel: [57874.024976] blk_update_request: I/O error, dev sdd, sector 508188064 op 0x1:(WRITE) flags 0x20c800 phys_seg 128 prio class 0
Jul 7 15:14:03 proxmox kernel: [57874.024994] blk_update_request: I/O error, dev sdd, sector 508189088 op 0x1:(WRITE) flags 0x208800 phys_seg 128 prio class 0
Jul 7 15:14:03 proxmox kernel: [57874.100847] blk_update_request: I/O error, dev sde, sector 508189600 op 0x1:(WRITE) flags 0x20c800 phys_seg 128 prio class 0
Jul 7 15:14:03 proxmox kernel: [57874.116869] blk_update_request: I/O error, dev sde, sector 508190624 op 0x1:(WRITE) flags 0x208800 phys_seg 128 prio class 0
Jul 7 15:14:03 proxmox kernel: [57874.208828] blk_update_request: I/O error, dev sde, sector 0 op 0x1:(WRITE) flags 0x800 phys_seg 0 prio class 0
Keine Produkte gefunden.
Jul 7 15:14:03 proxmox kernel: [57874.016425] usb 4-1.2: USB disconnect, device number 29
Jul 7 15:14:03 proxmox kernel: [57874.630095] usb 4-1.3: USB disconnect, device number 30
Jul 7 15:14:04 proxmox kernel: [57875.465716] usb 4-1: reset SuperSpeed Plus Gen 2x1 USB device number 12 using xhci_hcd
Jul 7 15:14:05 proxmox kernel: [57876.204881] usb 4-1.2: new SuperSpeed Plus Gen 2x1 USB device number 31 using xhci_hcd
Jul 7 15:14:05 proxmox kernel: [57876.225425] usb 4-1.2: New USB device found, idVendor=174c, idProduct=1356, bcdDevice= 1.00
Jul 7 15:14:05 proxmox kernel: [57876.225442] usb 4-1.2: New USB device strings: Mfr=2, Product=3, SerialNumber=1
Jul 7 15:14:05 proxmox kernel: [57876.225450] usb 4-1.2: Product: ASM1352R-PM
Jul 7 15:14:05 proxmox kernel: [57876.225454] usb 4-1.2: Manufacturer: ASMT
Jul 7 15:14:05 proxmox kernel: [57876.225459] usb 4-1.2: SerialNumber: 0000000000000001
Jul 7 15:14:05 proxmox kernel: [57876.308823] usb 4-1.3: new SuperSpeed Plus Gen 2x1 USB device number 32 using xhci_hcd
Jul 7 15:14:05 proxmox kernel: [57876.329406] usb 4-1.3: New USB device found, idVendor=174c, idProduct=1356, bcdDevice= 1.00
Jul 7 15:14:05 proxmox kernel: [57876.329419] usb 4-1.3: New USB device strings: Mfr=2, Product=3, SerialNumber=1
Jul 7 15:14:05 proxmox kernel: [57876.329426] usb 4-1.3: Product: ASM1352R-PM
Jul 7 15:14:05 proxmox kernel: [57876.329431] usb 4-1.3: Manufacturer: ASMT
Jul 7 15:14:05 proxmox kernel: [57876.329435] usb 4-1.3: SerialNumber: 0000000000000002
Ok, ich habe also I/O Error und exakt im gleichen Moment verbindet sich der USB-Port neu. Da lag die Vermutung recht schnell nahe, dass es sich hier um Einstellungen des Power Managements handelt. Gesagt getan, nach kurzer Befragung von Google habe ich herausgefunden, dass Linux (als auch Proxmox) standardmäßig USB Autosuspend aktiviert hat. Also, wie deaktiviere ich das Ganze?
Änderung des Bootloaders um USB Autosuspend unter Proxmox zu deaktivieren
Im Prinzip kommt es darauf an, wie ihr Proxmox installiert habt. Im Normalfall müsst ihr die Grub Config anpassen. Hierzu editiert ihr folgende Datei:
/etc/default/grub
Und ändert die Zeile:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
Wie folgt:
GRUB_CMDLINE_LINUX_DEFAULT="quiet usbcore.autosuspend=-1"
Sollten außer dem “quiet” noch weitere Optionen in dieser Zeile vorhanden sein, behaltet diese bei und fügt die Command “usbcore.autosuspend=-1” einfach am Ende ein.
Abschließend updatet ihr den Bootloader mit “update-grub” und startet das System neu.
Keine Produkte gefunden.
Solltet ihr allerdings Proxmox als UEFI mode installiert haben, ist das Vorgehen etwas anders. Hierzu editiert ihr stattdessen folgende Datei:
/etc/kernel/cmdline
Hier hängt ihr unseren Befehl “usbcore.autosuspend=-1” einfach an des Zeilenende. Dies sieht dann in etwa so aus:
root=ZFS=rpool/ROOT/pve-1 boot=zfs usbcore.autosuspend=-1
Auch jetzt müsst ihr das Ganze entprechend über “proxmox-boot-tool refresh” updaten und anschließend das System neustarten, um USB Autosuspend unter Proxmox zu deaktivieren.
Nachdem euer Proxmox Host rebootet hat, gibt es einen ganz einfachen Befehl, um zu überprüfen, ob die Deaktivierung erfolgreich war:
cat /sys/module/usbcore/parameters/autosuspend
Wenn euch jetzt hier eine “-1” ausgeben wird, habt ihr systemweit USB Autosuspend unter Proxmox deaktivieren können.
Tipps & Tricks
Ihr möchtet mehr zum Thema Proxmox und Linux erfahren? Dann klickt euch doch mal durch meine Beiträge hierzu:
Ich bin beruflich Consultant für Datacenter-Netzwerke. Da ich aber durch und durch IT’ler bin, beschäftige ich mich auch im Privaten viel mit Technik, Smart Home und Automatisierung.
Mit meinen Beiträgen möchte ich euch helfen, in dieser schnelllebigen Welt der Technik etwas Licht ins Dunkle zu bringen.