KVM/Qemu Festplatten an VM durchreichen
-
- Beiträge: 13
- Registriert: 30.06.2019 16:43:36
KVM/Qemu Festplatten an VM durchreichen
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.
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.
Re: KVM/Qemu Festplatten an VM durchreichen
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 :wink:](./images/smilies/icon_wink.gif)
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 :wink:](./images/smilies/icon_wink.gif)
Re: KVM/Qemu Festplatten an VM durchreichen
Du suchst in etwa sowas
Code: Alles auswählen
virsh attach-disk FreeNas-VM /dev/sdb vdb
-
- Beiträge: 13
- Registriert: 30.06.2019 16:43:36
Re: KVM/Qemu Festplatten an VM durchreichen
Lass es mich versuchen:TomL hat geschrieben:07.10.2019 17:57:36Also 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.![]()
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.
Möglicherweise exakt das was ich sehen wollte.bluestar hat geschrieben:07.10.2019 19:34:10Du suchst in etwa sowasCode: Alles auswählen
virsh attach-disk FreeNas-VM /dev/sdb vdb
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.
Re: KVM/Qemu Festplatten an VM durchreichen
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>besenwesen hat geschrieben:07.10.2019 22:16:25Ist das dann permanent oder würde der nächste reboot das wieder “detachen”?
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>
-
- Beiträge: 13
- Registriert: 30.06.2019 16:43:36
Re: KVM/Qemu Festplatten an VM durchreichen
Ne kein Sorge, die Platte soll NUR von der nas VM angesprochen werden.TomL hat geschrieben:07.10.2019 22:43:25Die 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.
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
![Thumbs Up :THX:](./images/smilies/thumbup.gif)
*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.
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
Re: KVM/Qemu Festplatten an VM durchreichen
Du solltest auf dem Hostsystem lediglich aufpassen, wenn du dort und in der VM mit LVM arbeiten willst...besenwesen hat geschrieben:08.10.2019 09:40:51Ne 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.
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.
Re: KVM/Qemu Festplatten an VM durchreichen
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.
-
- Beiträge: 13
- Registriert: 30.06.2019 16:43:36
Re: KVM/Qemu Festplatten an VM durchreichen
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“?bluestar hat geschrieben:08.10.2019 10:15:44Du 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.
Sonst hab ich eigentlich nur ein Dank an bluestar und TomL auszusprechen.
Durch euch und etwas Recherche konnte ich ordentlich was dazu lernen.
Re: KVM/Qemu Festplatten an VM durchreichen
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: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“?
Dein Dankeschön habe ich freudig aufgenommen.besenwesen hat geschrieben:08.10.2019 20:20:40Sonst hab ich eigentlich nur ein Dank an bluestar und TomL auszusprechen.
Durch euch und etwas Recherche konnte ich ordentlich was dazu lernen.
Re: KVM/Qemu Festplatten an VM durchreichen
Hast Du auf der KVM-Maschine denn nc installiert?besenwesen hat geschrieben: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)
Also: netcat-openbsd bzw. netcat-traditional?