hawihoney Posted March 23, 2021 Share Posted March 23, 2021 Wir haben heute spaßeshalber einen Test mit einer neuen Slackware VM durchgeführt. Wir wollen halt permanent weiter lernen ... Bei diesem Test ging es um das Passthru von allen 24 Disks eines HBAs (plus Primary VDisk) an eine VM - statt des HBAs. Dabei stellten wir zwei Dinge fest: 1.) Man kann nur 24 VDisks in der "Edit Form" erfassen. Da die Primary VDisk mitzählt, kann man nicht alle 24 Disks eines 4 HE Systems erfassen. 2.) Also dachten wir, wechseln wir einfach in die "Edit XML" Sicht und hängen einen weiteren Disk Block manuell an. Das wurde mit einem "VM Creation Error" quittiert. Angeblich hätten wir einen Bus doppelt vergeben "duplicate bus 0x1b". Hier der betreffende Block: <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source dev='/dev/disk/by-id/ata-TOSHIBA_HDWE140_Y9E8K42GFBRG'/> <target dev='hdaa' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x1b' slot='0x00' function='0x0'/> </disk> Wie geht man mit der Vergabe des bus am Besten vor? 0x1b ist tasächlich an anderer Stelle in Benutzung. 0x1c und 0x1d ebenfalls. Kann ich einfach den nächsten freien bus Wert nehmen - auch wenn sich damit Löcher ergeben? Hier die komplette VM Beschreibung: VM.xml Quote Link to comment
ich777 Posted March 23, 2021 Share Posted March 23, 2021 Warum reicht ihr nicht gleich den ganzen HBA durch? Bitte wenn du schon einen Doppelpost im Deutschen und im Englischen Bereich machst dann füge auch dort deine XML hinzu. Hast du deine xml schon mal nach "0x1b" durchsucht bzw hast du das schon gesehen: <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x1b' slot='0x00' function='0x0'/> </memballoon> Quote Link to comment
mgutt Posted March 23, 2021 Share Posted March 23, 2021 Warum probierst du es nicht einfach aus? Und wenn es nicht klappt, könnte man ja den Rest hochzählen oder nicht? Quote Link to comment
hawihoney Posted March 23, 2021 Author Share Posted March 23, 2021 3 hours ago, ich777 said: Doppelpost Wo? Ich habe Mal vor ein paar Wochen nach der generellen Möglichkeit für das Passthru von vielen Disks gefragt und nie eine Antwort erhalten. Jetzt bin ich weiter und frage konkret etwas ganz anderes. Die HBAs werden aktuell durchgeleitet. Unsere neuen Boards haben aber nicht mehr 2x CPUs bzw. 6x volle PCIe Slots. Deshalb weg von HBA Passthru, hin zu Disk Passthru und Nutzung der Backplane Expander. Den doppelten hatte ich schon gesehen und gleich 0x1c ausprobiert. Der wird aber auch als doppelt angewiesen. 0x1c ist ein Port kein Bus. Quote Link to comment
hawihoney Posted March 24, 2021 Author Share Posted March 24, 2021 (edited) Nach diversen Versuchen habe ich das Ganze zum Laufen gebracht. Es war nicht ganz einfach, da man ohne die Angabe einer Identifikation der Platten, z.B. durch die Seriennummer, die Platten im Guest nicht vernünftig unterscheiden kann. Dies ging nur durch Angabe der Option "serial": <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none' io='native'/> <source dev='/dev/disk/by-id/ata-TOSHIBA_HDWE140_Y9E8K42GFBRG'/> <target dev='hdd' bus='virtio'/> --> <serial>Y9E8K42GFBRG</serial> <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> </disk> Zuordnung der Platten, Parity Check des Arrays, ... alles hat geklappt. Und dennoch haben wir abgebrochen. Die Performance z.B. beim Parity Check war einfach unterirdisch. Mit 15 MB/s lag sie erheblich unter den üblichen Werten in der VM. Normalerweise kam die VM mit "passed through" HBA auf 90 MB/s. Edited March 24, 2021 by hawihoney Quote Link to comment
mgutt Posted March 24, 2021 Share Posted March 24, 2021 On 3/23/2021 at 3:42 PM, hawihoney said: Deshalb weg von HBA Passthru, hin zu Disk Passthru und Nutzung der Backplane Expander. Der Grund ist mir immer noch nicht klar. Musstet ihr auf einen HBA verzichten und verteilt die Disks über einen Controller an VM1 und an VM2 oder warum kann der HBA nicht an die VM durchgeleitet werden? Quote Link to comment
hawihoney Posted March 24, 2021 Author Share Posted March 24, 2021 (edited) 1 hour ago, mgutt said: Der Grund ist mir immer noch nicht klar. Der größte (74 Platten) und älteste Unraid Server besteht aus drei Unraid Arrays und enthält alleine drei HBAs dafür. Für jedes Array einen HBA (zwei davon sind an Unraid VMs durchgeschliffen). Alle sechs Slots sind voll. Dieser Server muss ersetzt werden. Die Idee war auf andere Boards zu wechseln, Umstellung auf Single CPU mit iGPU und Nutzung der drei Backplane Expander mit einem HBA. Wir könnten natürlich auf Multiple Arrays in Unraid warten, das war ursprünglich der Plan. Jetzt sind einzelne Cores in einer CPU des Doppel-CPU Systems ausgefallen. Wir haben die betreffenden Cores isoliert, aber das Problem scheint auch PCIe Slots dieser defekten CPU zu betreffen. Es fallen dann auf einmal einzelne Karten aus. Also wollte ich nicht mehr warten. Wollte die drei PCIe Slots der zweiten CPU leeren und statt zwei HBAs nur deren Platten durchschleifen. Die defekte CPU hätte ich dann entfernt. Ich wäre auch mit marginalen Performance Einbußen bei Verwendung von virtio klar gekommen, aber 1/6 der ursprünglichen Performance ist zu wenig. Die defekte, alte CPU wird nun also ersetzt. Edited March 24, 2021 by hawihoney 1 Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.