KVM/Qemu Festplatten an VM durchreichen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
besenwesen
Beiträge: 13
Registriert: 30.06.2019 16:43:36

KVM/Qemu Festplatten an VM durchreichen

Beitrag von besenwesen » 07.10.2019 09:43:18

tldr; Wie mache ich $BETREFF per cli?

Kurzum,
ich hab ein Debian 10 als VM Hypervisor gebastelt. Das Ganze wird realisiert mit KVM/Qemu mittels Libvirt. Auf dem HostOS ist bisher eine VM (FreeNAS) und die soll noch die Festplatten durchgereicht bekommen. Ich hab auf diversen Foren schon gelesen man kann einfach die xml der VM manipulieren um somit die Platten durchzureichen, das sieht mir allerdings eher nach einem merkwürdigem Workaround aus.
Da das HostOS ein Server sein soll der ausschließlich VMs (also weitere Server) verwaltet, gibt es hier kein
grafisches Interface*.. Muss also alles mit virsh in die Wege geleitet werden.
Welche Möglichkeiten habe ich?

*Ich weis man könnte auch virt-manager nutzen um auf einem anderen Rechner die VMs zu verwalten.
Aus irgendwelchen Gründen geht das aber nicht (virt-manager: nc: broken pipe und journalctl auf dem Server sagt auch nur, dass die authentifizierung erfolgreich war und der client sich dann sofort abmeldete).
Aber das soll ja nicht die Fragestellung des Threads sein.

TomL

Re: KVM/Qemu Festplatten an VM durchreichen

Beitrag von TomL » 07.10.2019 17:57:36

Hi

Ich habe Dein Posting einmal heute morgen gelesen, und nicht verstanden, worums geht. Da dachte ich mir, versuchs mittags noch mal.... gelesen, und wieder nicht verstanden. Und jetzt habe ich es mir zum 3. Mal angesehen und ich verstehe immer noch nicht, worums geht.

Wie bastelt man mit Debian 10 einen Hypervisor? Was ist das überhaupt und warum sollte man sowas überhaupt tun wollen? Hat dieses FreeNAS was mit dem gebastelten Hypervisor zu tun? Welche Rolle spielt Debian 10 dabei oder braucht es gar kein Debian 10 mehr, weil der Hypervisor fertig gebastelt ist? Was soll der Virtmanager mit dem FreeNAS tun? Und wenn das HostOS ein Server sein soll und FreeNAS eigentlich ein NAS-Server-Betriebssystem ist, ist dann das FreeNAS das HostOS? Wozu braucht das HostOS dann noch einen gebastelten Hypervisor? Also ich vermute mal, dass der Virtmanager gar nix mit dem FreeNAS anfangen kann.... und umgekehrt auch nicht. Und wenn kein grafische Oberfläche besteht, kann man das VM-Gezumpel auch nicht über den Virtmanager interaktiv bedienen, sondern nur via CLI-Kommandos....was der Virtmanager verdeckt sowieso auch tut. Warum sollte man eine Qemu/KVM-Platte durchreichen wollen? Wohin überhaupt? Das ist doch nur ein Image-File, welches man einfach an beliebiger Stelle mounten kann. Wobei man natürlich darauf achten sollte, die nicht konkurrierend zu verwenden.

Die libvirt-XML-Files sind nichts anderes als Settings-Dateien für KVM/Qemu-VMs. Lokal und mit einem grafischen Desktop kann man diese Dateien mit dem Virtmanager bearbeiten, auf allen anderen textbasierten Systemen einfach via Editor im Terminal.

Also sorry... Du solltest Dein Problem noch einmal etwas besser beschreiben... linear, zusammenhängend, logisch... so das man einen Chance hat, das zu verstehen... was am Ende rauskommen soll und wo das Problem liegt. Ich denke, dann kriegen wir Dein Problem bestimmt gelöst. :wink:

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: KVM/Qemu Festplatten an VM durchreichen

Beitrag von bluestar » 07.10.2019 19:34:10

Du suchst in etwa sowas

Code: Alles auswählen

virsh attach-disk FreeNas-VM /dev/sdb vdb

besenwesen
Beiträge: 13
Registriert: 30.06.2019 16:43:36

Re: KVM/Qemu Festplatten an VM durchreichen

Beitrag von besenwesen » 07.10.2019 22:16:25

TomL hat geschrieben: ↑ zum Beitrag ↑
07.10.2019 17:57:36
Also sorry... Du solltest Dein Problem noch einmal etwas besser beschreiben... linear, zusammenhängend, logisch... so das man einen Chance hat, das zu verstehen... was am Ende rauskommen soll und wo das Problem liegt. Ich denke, dann kriegen wir Dein Problem bestimmt gelöst. :wink:
Lass es mich versuchen:
Ich habe einen Rechner dessen einzige Aufgabe es ist virtuelle Maschinen zu verwalten.
Daran angeschlossen sind 3 Festplatten. Eine für das debian system, die anderen beiden sollen als datenspeicher an eine VM (freenas) durchgereicht werden. Wie realisiere ich das festplatten durchreichen vom host zur vm?
Deine verwirrung ist verständlich. Ich hätte im Betreff hinter “KVM/Qemu” ein “:” machen sollen.
Lass mich das tldr; umformulieren:

Tldr2; wie kann ich eine physische festplatte an eine virtuelle Maschine durchreichen. Auf dem host system (debian 10) ist kvm/qemu installiert.
bluestar hat geschrieben: ↑ zum Beitrag ↑
07.10.2019 19:34:10
Du suchst in etwa sowas

Code: Alles auswählen

virsh attach-disk FreeNas-VM /dev/sdb vdb
Möglicherweise exakt das was ich sehen wollte.
Kurze fragen dazu:
Ist das dann permanent oder würde der nächste reboot das wieder “detachen”?
Kann es sein, dass es zu Problemen kommen kann wenn die sata controller alle an einem pci bus hängen?

In jedem Fall, danke schonmal.
Ich werde das alsbald mal versuchen und Berichten.
Dennoch bin ich für jeglichen input dankbar, da ich diese Materie doch sehr interessant finde.

TomL

Re: KVM/Qemu Festplatten an VM durchreichen

Beitrag von TomL » 07.10.2019 22:43:25

besenwesen hat geschrieben: ↑ zum Beitrag ↑
07.10.2019 22:16:25
Ist das dann permanent oder würde der nächste reboot das wieder “detachen”?
Das ist nur gültig für die Session. Um das persistent zu machen, musst Du das in die Settings eintragen/einfügen, innerhalb der Sektion <devices> ..... </devices>

virsh edit vmname

Code: Alles auswählen

<disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none'/>
      <source dev='/dev/sdb1'/>
      <target dev='vdb' bus='virtio'/>
</disk>
Die Partition '/dev/sdb1' der Harddisk wird in diesem Beispiel als '/dev/vdb' in der VM angezeigt. Aber Achtung, die für die VM gedachte Platte oder die Partition darf auf dem Host-System nicht gleichzeitig gemountet sein... das führt ggf. zu unvorhersehbaren Effekten und vielleicht sogar zu massiven Problemen.

besenwesen
Beiträge: 13
Registriert: 30.06.2019 16:43:36

Re: KVM/Qemu Festplatten an VM durchreichen

Beitrag von besenwesen » 08.10.2019 09:40:51

TomL hat geschrieben: ↑ zum Beitrag ↑
07.10.2019 22:43:25
Die Partition '/dev/sdb1' der Harddisk wird in diesem Beispiel als '/dev/vdb' in der VM angezeigt. Aber Achtung, die für die VM gedachte Platte oder die Partition darf auf dem Host-System nicht gleichzeitig gemountet sein... das führt ggf. zu unvorhersehbaren Effekten und vielleicht sogar zu massiven Problemen.
Ne kein Sorge, die Platte soll NUR von der nas VM angesprochen werden.
Das nas soll am ende ein raid Verbund bilden und die platten entsprechend auch Partitionieren etc.
ich hoffe das stört das HostSystem nicht wenn sich die Partitionstabellen zur Laufzeit ändern.
(auch wenn nichts davon gemountet ist)

Code: Alles auswählen

virsh edit vmname
Ich wäre da sonst mit vim dran gegangen*. Danke :THX:

*Davon hab ich schonmal gelesen, ich dachte aber das sei so nicht gedacht und könnte eher zu Fehlern führen. In dem Artikel las ich nichts von 'virsh edit', daher dachte ich die XML mit vim zu editieren sei eher ein schmutziger workaround. :roll:

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: KVM/Qemu Festplatten an VM durchreichen

Beitrag von bluestar » 08.10.2019 10:15:44

besenwesen hat geschrieben: ↑ zum Beitrag ↑
08.10.2019 09:40:51
Ne kein Sorge, die Platte soll NUR von der nas VM angesprochen werden.
Das nas soll am ende ein raid Verbund bilden und die platten entsprechend auch Partitionieren etc.
ich hoffe das stört das HostSystem nicht wenn sich die Partitionstabellen zur Laufzeit ändern.
Du solltest auf dem Hostsystem lediglich aufpassen, wenn du dort und in der VM mit LVM arbeiten willst...
Dann würde ich dir auf jeden Fall dazu raten, die durchgereichten HDDs im Hostsystem für's LVM explizit auszuklammern.

Wenn du bei virsh attach-disk noch die Option --persistent anhängst, dann bleiben deine Änderungen auch nach dem VM-Neustart erhalten.

TomL

Re: KVM/Qemu Festplatten an VM durchreichen

Beitrag von TomL » 08.10.2019 10:26:57

besenwesen hat geschrieben: ↑ zum Beitrag ↑
08.10.2019 09:40:51
Ich wäre da sonst mit vim dran gegangen.
Das funktioniert imho nicht und das solltest Du auch nicht tun. Mit virsh läuft das xml-File nach dem Editieren durch einen Parser, der eine Syntaxprüfung durchführt und die noch fehlenden PCI-Parameter setzt. Der von bluestar erwähnte Parameter --persistent macht im grundegenommen nichts anderes, als genau dieses Paket in die xml einzufügen und ist damit die etwas weniger aufwändigere Variante. Ich halts allerdings für gut, wenn man weiss, wie man auch via virsh edit mit der xml umgehen kann, das hilft einem bei vielen anderen Aktionen. virsh ist zudem auch noch eine interaktive Shell.

besenwesen
Beiträge: 13
Registriert: 30.06.2019 16:43:36

Re: KVM/Qemu Festplatten an VM durchreichen

Beitrag von besenwesen » 08.10.2019 20:20:40

bluestar hat geschrieben: ↑ zum Beitrag ↑
08.10.2019 10:15:44
Du solltest auf dem Hostsystem lediglich aufpassen, wenn du dort und in der VM mit LVM arbeiten willst...
Dann würde ich dir auf jeden Fall dazu raten, die durchgereichten HDDs im Hostsystem für's LVM explizit auszuklammern.

Wenn du bei virsh attach-disk noch die Option --persistent anhängst, dann bleiben deine Änderungen auch nach dem VM-Neustart erhalten.
Ich wollte eigentlich auf dem HostOS nicht mit LVMs arbeiten, aber das zu wissen ist doch gut. Daher meine folgende frage: was meinst du mit „im hostsystem ausklammern“?

Sonst hab ich eigentlich nur ein Dank an bluestar und TomL auszusprechen.
Durch euch und etwas Recherche konnte ich ordentlich was dazu lernen.

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: KVM/Qemu Festplatten an VM durchreichen

Beitrag von bluestar » 08.10.2019 20:30:00

besenwesen hat geschrieben: ↑ zum Beitrag ↑
08.10.2019 20:20:40

Ich wollte eigentlich auf dem HostOS nicht mit LVMs arbeiten, aber das zu wissen ist doch gut. Daher meine folgende frage: was meinst du mit „im hostsystem ausklammern“?
Die Datei /etc/lvm/lvm.conf kennt die Option filter, damit kannst du Blockgeräte von der Verwendung mit LVM ausschließen.
besenwesen hat geschrieben: ↑ zum Beitrag ↑
08.10.2019 20:20:40
Sonst hab ich eigentlich nur ein Dank an bluestar und TomL auszusprechen.
Durch euch und etwas Recherche konnte ich ordentlich was dazu lernen.
Dein Dankeschön habe ich freudig aufgenommen.

chmeyer
Beiträge: 96
Registriert: 03.02.2010 21:09:12
Wohnort: RLP

Re: KVM/Qemu Festplatten an VM durchreichen

Beitrag von chmeyer » 21.11.2019 21:01:50

besenwesen hat geschrieben: ↑ zum Beitrag ↑
07.10.2019 09:43:18
*Ich weis man könnte auch virt-manager nutzen um auf einem anderen Rechner die VMs zu verwalten.
Aus irgendwelchen Gründen geht das aber nicht (virt-manager: nc: broken pipe)
Hast Du auf der KVM-Maschine denn nc installiert?
Also: netcat-openbsd bzw. netcat-traditional?

Antworten