KVM: Unterschied zwischen den Versionen
HK (Diskussion | Beiträge) |
HK (Diskussion | Beiträge) (→Optimiere für lokale Nutzung) |
||
(35 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | = KVM mit | + | = Headless Windows mit KVM = |
+ | |||
+ | == libvirt == | ||
+ | === Basic commands === | ||
+ | KVM-Maschine auf der lokalen Maschine steuern | ||
+ | ==== starten ==== | ||
+ | virsh --connect qemu:///system start win-10-2-ISO | ||
+ | ==== Herunter fahren per ACPI ==== | ||
+ | virsh --connect qemu:///system shutdown win-10-2-ISO | ||
+ | ==== Maschine abschalten (Stecker ziehen) ==== | ||
+ | virsh --connect qemu:///system destroy win-10-2-ISO | ||
+ | |||
+ | |||
+ | |||
+ | === VM erstellen === | ||
+ | http://bart.vanhauwaert.org/hints/installing-win10-on-KVM.html | ||
+ | |||
+ | Vorher herunter laden | ||
+ | https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso | ||
+ | Die Seite bietet auch nützliche Infos | ||
+ | https://docs.fedoraproject.org/quick-docs/en-US/creating-windows-virtual-machines-using-virtio-drivers.html<br> | ||
+ | Bei der Installation muss im Partitionsprogramm des Installers der virtio-Treiber von der virtio-win.iso geladen werden.(Siehe bart.vanhauwaert.org) | ||
+ | |||
+ | Das Beispiel nutzt eine logial volume. (Erstellen mit lvcreate -L75GB <VG-name> -n <LV-name>) | ||
+ | <source> | ||
+ | virt-install \ | ||
+ | --name=win-10-1 | ||
+ | --ram=8192 \ | ||
+ | --cpu=host | ||
+ | --vcpus=4 \ | ||
+ | --os-type=windows \ | ||
+ | --os-variant=win8.1 \ | ||
+ | --disk /dev/mapper/vms-win10,bus=virtio \ | ||
+ | --disk /var/virtualbox/VirtualBoxISOs/Win10_1803_German_x64.iso,device=cdrom,bus=ide \ | ||
+ | --disk /var/virtualbox/VirtualBoxISOs/virtio-win.iso,device=cdrom,bus=ide \ | ||
+ | --network bridge=lxc-out \ | ||
+ | --graphics spice,listen=0.0.0.0 | ||
+ | </source> | ||
+ | |||
+ | Als bridge nutzen wir die "out"-bridge.<br> | ||
+ | Hostsystem erkunden mit | ||
+ | ip link | ||
+ | |||
+ | === Edit config === | ||
+ | Nachbearbeitungen am erzeugten XML-File: | ||
+ | virsh edit <vmname> | ||
+ | == spice == | ||
+ | Verbindungen per VPN sind zu langsam und nicht benutzbar.<br> | ||
+ | Das mag mit den Leitungen zu tun haben, aber es hat mal funktioniert, jetzt nicht mehr, | ||
+ | * Zugriff auf den Windows-Host mit Spice | ||
+ | * Ein Linux-User, der direkt und Fullscreen in das Windows einloggt. | ||
+ | |||
+ | virsh edit <vmname> | ||
+ | |||
+ | <graphics type='spice'/> | ||
+ | |||
+ | <video> | ||
+ | <model type='qxl'> | ||
+ | </video> | ||
+ | |||
+ | $vmname-config ertellen | ||
+ | * ToDo | ||
+ | remote-viewer $vmname-config | ||
+ | |||
+ | === spice-guest-tools === | ||
+ | * Install "spice-guest-tools" von | ||
+ | https://spice-space.org/download.html | ||
+ | * Bringt den "qxl-Treiber" für die Grafik mit | ||
+ | * "spice-agent" für copy-and-paste sowie resolution switching | ||
+ | |||
+ | === Clients === | ||
+ | ==== spice-viewer-gtk ==== | ||
+ | Nur als proof-of-concept gedacht, funktioniert er momentan besser (auch lokal) als der remote-viewer. | ||
+ | spicy -h 192.168.2.40 -p 5900 | ||
+ | ==== remote-viewer ==== | ||
+ | Verbindungsaufbauten dauern im Vergleich zu spicy eine gefühlte Ewigkeit. | ||
+ | remote-viewer spice://<Host-IP>:<Port> | ||
+ | |||
+ | ===== Linux-Spice User ===== | ||
+ | * Slim umstellen, dass beim Login die .xinitrc ausgeführt wird. | ||
+ | |||
+ | * remote-viewer config | ||
+ | ~/$vmname-config | ||
+ | [virt-viewer] | ||
+ | type=spice | ||
+ | host=<your-host> | ||
+ | port=<your-port> | ||
+ | fullscreen=1 | ||
+ | password=<your-password> | ||
+ | |||
+ | ~/.xinitrc | ||
+ | #!/bin/sh | ||
+ | remote-viewer $vmname-config | ||
− | + | == VNC == | |
− | Das | + | Ist als Tool im lokalen Netz eine brauchbare Alternative.<br> |
− | + | Achtung: Sicherheitsbedenken! | |
+ | === Keymap === | ||
+ | Das deutsche Tastaturlayout <br> | ||
+ | virsh edit <vmname> | ||
+ | * In die Zeile | ||
+ | <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'> | ||
+ | "keymap='de'" hinzu fügen. | ||
− | + | = KVM mit LVM = | |
− | |||
− | |||
+ | == Zwei LVs mit virtio == | ||
− | + | Im folgenden Beispiel wurden zwei Logical Volumes vom Host der Maschine zur Verfügung gestellt.<br> | |
+ | Für gute I/O-Performance.<br> | ||
Wichtig ist, das im Gast folgende Treiber geladen sind. | Wichtig ist, das im Gast folgende Treiber geladen sind. | ||
Zeile 19: | Zeile 117: | ||
Wichtig: ohne boot=on startet der Gast nicht, wenn if=virtio als Option mitgegeben wurde.<br> | Wichtig: ohne boot=on startet der Gast nicht, wenn if=virtio als Option mitgegeben wurde.<br> | ||
<code> | <code> | ||
− | kvm -m 1000 -boot c -drive file=/dev/debpc/kvm1,if=virtio,boot=on,cache=none -- | + | kvm -m 1000 -boot c -drive file=/dev/debpc/kvm1,if=virtio,boot=on,cache=none -drive file=/dev/debpc/kvm1-swap,if=virtio,cache=none |
</code> | </code> | ||
+ | == LV im Host mounten == | ||
+ | Das vom der VM genutzte LV enthält eine Partitionstabelle.<br> | ||
+ | Um das LV dennoch im Host einbinden zu können, muss die Partitionstabelle des LVs erst dem Host bekannt gemacht werden | ||
+ | |||
+ | kpartx -a -v /dev/<vg>/<lg> | ||
+ | |||
+ | -a => active | ||
+ | -d => deactivate | ||
+ | -v => verbose | ||
+ | |||
+ | Danach sind mehr /dev/dm-<123> im System wie vor dem Aufruf. Welcher der Richtige ist, muss letztlich ausprobiert werden.<br> | ||
+ | Am besten mit dem /dev/dm-<123> mit der höchsten Benennung anfangen. | ||
+ | |||
+ | ==Links== | ||
Meine Tests wurden durch folgende Seite inspiriert. | Meine Tests wurden durch folgende Seite inspiriert. | ||
− | + | http://www.carfax.org.uk/docs/qemu-virtio |
Aktuelle Version vom 27. Juli 2018, 16:20 Uhr
Inhaltsverzeichnis
Headless Windows mit KVM
libvirt
Basic commands
KVM-Maschine auf der lokalen Maschine steuern
starten
virsh --connect qemu:///system start win-10-2-ISO
Herunter fahren per ACPI
virsh --connect qemu:///system shutdown win-10-2-ISO
Maschine abschalten (Stecker ziehen)
virsh --connect qemu:///system destroy win-10-2-ISO
VM erstellen
http://bart.vanhauwaert.org/hints/installing-win10-on-KVM.html
Vorher herunter laden
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
Die Seite bietet auch nützliche Infos
https://docs.fedoraproject.org/quick-docs/en-US/creating-windows-virtual-machines-using-virtio-drivers.html
Bei der Installation muss im Partitionsprogramm des Installers der virtio-Treiber von der virtio-win.iso geladen werden.(Siehe bart.vanhauwaert.org)
Das Beispiel nutzt eine logial volume. (Erstellen mit lvcreate -L75GB <VG-name> -n <LV-name>)
virt-install \
--name=win-10-1
--ram=8192 \
--cpu=host
--vcpus=4 \
--os-type=windows \
--os-variant=win8.1 \
--disk /dev/mapper/vms-win10,bus=virtio \
--disk /var/virtualbox/VirtualBoxISOs/Win10_1803_German_x64.iso,device=cdrom,bus=ide \
--disk /var/virtualbox/VirtualBoxISOs/virtio-win.iso,device=cdrom,bus=ide \
--network bridge=lxc-out \
--graphics spice,listen=0.0.0.0
Als bridge nutzen wir die "out"-bridge.
Hostsystem erkunden mit
ip link
Edit config
Nachbearbeitungen am erzeugten XML-File:
virsh edit <vmname>
spice
Verbindungen per VPN sind zu langsam und nicht benutzbar.
Das mag mit den Leitungen zu tun haben, aber es hat mal funktioniert, jetzt nicht mehr,
- Zugriff auf den Windows-Host mit Spice
- Ein Linux-User, der direkt und Fullscreen in das Windows einloggt.
virsh edit <vmname>
<graphics type='spice'/> <video> <model type='qxl'> </video>
$vmname-config ertellen
- ToDo
remote-viewer $vmname-config
spice-guest-tools
- Install "spice-guest-tools" von
https://spice-space.org/download.html
- Bringt den "qxl-Treiber" für die Grafik mit
- "spice-agent" für copy-and-paste sowie resolution switching
Clients
spice-viewer-gtk
Nur als proof-of-concept gedacht, funktioniert er momentan besser (auch lokal) als der remote-viewer.
spicy -h 192.168.2.40 -p 5900
remote-viewer
Verbindungsaufbauten dauern im Vergleich zu spicy eine gefühlte Ewigkeit.
remote-viewer spice://<Host-IP>:<Port>
Linux-Spice User
- Slim umstellen, dass beim Login die .xinitrc ausgeführt wird.
- remote-viewer config
~/$vmname-config
[virt-viewer] type=spice host=<your-host> port=<your-port> fullscreen=1 password=<your-password>
~/.xinitrc
#!/bin/sh remote-viewer $vmname-config
VNC
Ist als Tool im lokalen Netz eine brauchbare Alternative.
Achtung: Sicherheitsbedenken!
Keymap
Das deutsche Tastaturlayout
virsh edit <vmname>
- In die Zeile
<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'>
"keymap='de'" hinzu fügen.
KVM mit LVM
Zwei LVs mit virtio
Im folgenden Beispiel wurden zwei Logical Volumes vom Host der Maschine zur Verfügung gestellt.
Für gute I/O-Performance.
Wichtig ist, das im Gast folgende Treiber geladen sind.
virtio, virtio-blk, virtio-pci
Wichtig: ohne boot=on startet der Gast nicht, wenn if=virtio als Option mitgegeben wurde.
kvm -m 1000 -boot c -drive file=/dev/debpc/kvm1,if=virtio,boot=on,cache=none -drive file=/dev/debpc/kvm1-swap,if=virtio,cache=none
LV im Host mounten
Das vom der VM genutzte LV enthält eine Partitionstabelle.
Um das LV dennoch im Host einbinden zu können, muss die Partitionstabelle des LVs erst dem Host bekannt gemacht werden
kpartx -a -v /dev/<vg>/<lg>
-a => active -d => deactivate -v => verbose
Danach sind mehr /dev/dm-<123> im System wie vor dem Aufruf. Welcher der Richtige ist, muss letztlich ausprobiert werden.
Am besten mit dem /dev/dm-<123> mit der höchsten Benennung anfangen.
Links
Meine Tests wurden durch folgende Seite inspiriert.