Jump to content

Slackware VM erlaubt keinen Update (bus 0x1b doppelt)


hawihoney

Recommended Posts

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

 

Link to comment
  • hawihoney changed the title to Slackware VM erlaubt keinen Update (bus 0x1b doppelt)

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>

 

Link to comment
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.

 

Link to comment

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 by hawihoney
Link to comment
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?

Link to comment

 

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 by hawihoney
  • Thanks 1
Link to comment

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...