Passthrough einer nicht dauerhaft aktiven USB 3-HDD zum Container

d4kine

New Member
Sep 28, 2021
2
0
1
35
Hallo zusammen,

nach inzwischen 2 Tagen erfolglosen Versuchen und Lesen von diversen Foreneinträgen, bin ich ratlos und hoffe einer von euch weiß hier weiter.

Szenario
An einem Intel Nuc ist per USB3-Port eine HDD angeschlossen, welche nicht dauerhaft eingeschaltet ist. Diese soll in einen LXC-Container 1:1 durchgereicht werden. Wichtig ist hier, dass die Festplatte, welche sich mittels Schalter am USB-HDD Case ein- und ausschalten lässt, immer wieder erreichbar ist. Mit einer VM würde es funktionieren, allerdings erreiche ich hier einen Durchsatz, welcher jenseits von gut und böse ist.


Technische Infos
Intel NUC 7PJYH
Proxmox VE 7.1-10

Code:
root@proxmox:/dev/bus/usb/002# lsusb
Bus 002 Device 002: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge, ASM1153E SATA 6Gb/s bridge
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Code:
root@proxmox:/dev/bus/usb/002# fdisk -l
Disk /dev/sdb: 3.64 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: EFRX-68WT0N0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 9445A0EB-28C0-4156-881F-7231EFEF8AA0

Device     Start        End    Sectors  Size Type
/dev/sdb1   2048 7814035455 7814033408  3.6T Linux filesystem

Code:
root@proxmox:/dev/bus/usb/002# blkid
/dev/sda2: UUID="CAB4-3A54" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="85ab4012-4e1a-4218-8c7f-792f2913e4d4"
/dev/sda3: UUID="rKYnoI-MmF9-a8OM-9Cvp-sOTg-M58o-oceN4w" TYPE="LVM2_member" PARTUUID="e12b2c9f-b10b-4f5d-95bf-1856b5c513ae"
/dev/mapper/pve-swap: UUID="e5da5891-4ff4-4503-8ca3-e1480a321185" TYPE="swap"
/dev/mapper/pve-root: UUID="55bc89e2-ee98-449d-8f97-55faa6bdec5f" BLOCK_SIZE="4096" TYPE="ext4"
/dev/mapper/pve-vm--111--disk--0: UUID="dc78a47d-6254-4be7-b7e1-68ee65eeb693" BLOCK_SIZE="4096" TYPE="ext4"
/dev/mapper/pve-vm--112--disk--0: UUID="714e9ca8-e0b3-4aeb-8a7a-467d5c9cdc7a" BLOCK_SIZE="4096" TYPE="ext4"
/dev/mapper/pve-vm--110--disk--0: UUID="1451d41e-96b0-4161-92e3-0a150f15ed7b" BLOCK_SIZE="4096" TYPE="ext4"
/dev/mapper/pve-vm--114--disk--1: UUID="08ab1f6a-f285-47c1-9566-d240deaddca4" BLOCK_SIZE="4096" TYPE="ext4"
/dev/mapper/pve-vm--200--disk--0: UUID="d0d9b283-4984-4844-8e9d-fc5e229b7199" BLOCK_SIZE="4096" TYPE="ext4"
/dev/mapper/pve-vm--113--disk--0: UUID="62bbcd77-31f7-447f-a840-d303a8022884" BLOCK_SIZE="4096" TYPE="ext4"
/dev/mapper/pve-vm--102--disk--0: UUID="3f2cfd56-fa26-4936-81e2-2be0103dc015" BLOCK_SIZE="4096" TYPE="ext4"
/dev/sda1: PARTUUID="ade445c7-d8c4-4683-8970-b0733a11bb6e"
/dev/mapper/pve-vm--103--disk--0: PTUUID="b40e115b" PTTYPE="dos"
/dev/mapper/pve-vm--101--disk--0: PTUUID="3ffa8ede" PTTYPE="dos"
/dev/mapper/pve-vm--101--disk--3: PTUUID="a00d4c81-e725-4082-ad7a-ba83e9f67eff" PTTYPE="gpt"
/dev/mapper/pve-vm--100--disk--0: PTUUID="e56a8f29" PTTYPE="dos"
/dev/sdb1: UUID="db6a0267-93c4-4301-b3ce-b2ce3aa3978b" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="nas" PARTUUID="2e4df02a-0533-4e3f-88b9-802be61565bb"


Bisher versucht
  • Mit AutoFS beim Erkennen der HDD mit Seriennummer dies nach /mount/usb gemounted. Dies mit Bind-Mount (nach /media/usb für LXC verbunden
  • Eigene udev-Regeln angelegt und bei erkennen des Geräts es nach /mount/usb/ gemounted. Auch hier mit Bind-Mount
  • Das Gerät direkt an den Container durchgegeben, wobei ich im Container kein AutoFS nutzen kann.

    Code:
    root@proxmox:/dev/bus/usb/002# ll /dev/bus/usb/002/004
    crw-rw-r-- 1 root root 189, 132 Jan 31 16:36 /dev/bus/usb/002/004

    Code:
    root@proxmox:/dev/bus/usb/002# cat /etc/pve/lxc/102.conf
    arch: amd64
    cores: 2
    hostname: fileshare
    memory: 512
    net0: name=eth0,bridge=vmbr0,firewall=1,gw=10.1.1.1,hwaddr=DE:51:71:43:95:62,ip=10.1.1.101/24,type=veth
    onboot: 1
    ostype: debian
    rootfs: local-lvm:vm-102-disk-0,size=4G
    swap: 512
    lxc.cgroup.devices.allow: c 189:* rwm
    lxc.mount.entry: /dev/bus/usb/002/004 dev/bus/usb/002/004 none bind,optional,create=file

Das eigentliche Problem ist, dass mir der Zugriff auf die Festplatte (nachdem sie 1x aus und wieder eingeschaltet wird), nur noch "Input/Ouput Errors" wirft, sobald ich irgendwas versuche zu machen. Außer ich starte den Container neu. Dies kann natürlich in die UDEV-Regeln ergänzt werden, jedoch hab ich dann eventuell Datenverlust, wenn parallel Daten mittels Samba auf eine zweite Platte geschrieben werden.... Wie ich es auch mache, ich weiß keinen weitere Weg mehr, habt ihr eventuell eine Idee?

Beste Grüße ;D
 
Ein Problem was ich da auch sehe ist, dass dir da Daten verloren gehen können. Du darfst die HDD ja nicht einfach so ausschalten, weil sich da noch Daten im RAM befinden könnten die auf die HDD hätten geschrieben werden sollen. Also entweder musst du alle Async Writes als Sync Writes erzwingen, dass da erst garnicht im System-RAM oder RAM-Cache der HDD gecacht wird oder du musst die HDD korrekt per Software runterfahren lassen und warten bis dies abgeschlossen ist, bevor du dann die HDD über einen Knopf vom Strom nimmst.
 
Last edited:
Technisch erfolgen Writes auf diese Platte eher selten wogegen Reads maßgeblicher sind. Um mir über den Punkt Gedanken machen zu müssen, müsste generell die HDD mal ordentlich durchgereicht werden (auch nach wiederholtem ein- und ausschalten). Wüsstest du dafür auch eine Lösung? :)
 

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!