Inhaltsverzeichnis
OS Virtualisierung unter Linux
- Server- oder Prozess-Virtualisierung keine Voll-virtualisierer: LXC Linux Container Virtualisierung
- System Virtualisierung / Voll Virtualisierung z.B. auch um MS Windows als Gast auszuführen. KVM Kernel bases Virtual Machine
CPU Virt Features
In der CPU Information muss entweder svm
für AMD Prozessoren oder vmx
für Intel Prozessoren zu finden sein.
egrep "svm|vmx" /proc/cpuinfo
Befehle auf Qemu Konsole
Strg + Alt + 2 = qemu-monitor, zum senden von Befehlen an die Virtuelle-Maschine wärend der Laufzeit Strg + Alt + 1 = schaltet zurück zur Virtuellen-Maschine
+ Snapshots + Der Zugriff auf VM-Snapshots ist sowohl über diese ID, als auch über seinen Namen möglich. Gibt es bereits einen VM-Snapshot mit dem gleichen Namen oder mit der gleichen Nummer, wird dieser überschrieben.
(qemu) savevm vor_PatchDay
Nach dem Anlegen des VM-Snapshots können Änderungen am System durchgeführt werden. Danach kann ein weiterer VM-Snapshot angelegt werden.
(qemu) savevm nach_PatchDay
Falls es zu ungewollten Veränderungen gekommen ist können diese mit dem Befehl loadvm rückgängig gemacht werden. Es wird der Zustand des angegebenen VM-Snapshots wiederhergestellt.
(qemu) loadvm vor_PatchDay
Nicht mehr benötigte VM-Snapshots sollten gelöscht werden, da sie Speicherplatz belegen.
(qemu) delvm vor_PatchDay
Informationen zu vorhandenen VM-Snapshots zeigt im QEMU-Monitor der Befehl: (qemu) info snapshots
KVM/Qemu VM's einrichten und starten
Virtuelle Festplatten erstellen
das Image Format wird mit der Option -f angegeben, wird -f weggelassen wird das raw Format verwendet. (hier wird noch qcow genommen neu ist qcow2):
qemu-img create -f qcow suse01.img 6G qemu-img create -f qcow2 probeimg.img 5G qemu-img-kvm create -f qcow2 SLED11_201.qcow2 8G
Bridging mit TAP-device
folgende mögliche Befehle fügen dem NIC eine passende MAC-Adresse hinzu:
qemu -hda debian01.img -m 512 -cdrom debian-squeeze-i386-netinst.iso -net nic,macaddr=aa:bb:cc:dd:00:01 -net tap /dev/sr0 -boot d qemu -hda debian01.img -cdrom /dev/sr0 -net nic,macaddr=aa:bb:cc:dd:00:01 -net tap -boot d qemu -hda qemu_img/suse01.img -m 512 -cdrom SLES_11_SP1_NetVault_DR.i686-0.0.1.iso -net nic,macaddr=aa:bb:cc:dd:00:01 -net tap -boot d qemu-kvm -drive if=virtio,file=sles11_01-clone -cdrom ../SLES_11_SP1_Vault_DR.i686-0.0.5.iso -m 768 -net nic,macaddr=52:54:00:00:00:01 -net tap -boot c &
Für 64Bit:
qemu-system-x86_64 -hda debian01.img -cdrom /dev/sr0 -net nic,macaddr=aa:bb:cc:dd:00:01 -net tap -boot d qemu-system-x86_64 -hda debian01.img -m 512 -cdrom /dev/sr0 -net nic,macaddr=aa:bb:cc:dd:00:01 -net tap -boot d
unterschiedliche UUID's
qemu-kvm -hda /media/Sicherung/SicherArbeit/other/qemu_img/SLES11_203.qcow2 -smbios type=1,serial=ABCD123 -uuid 12345678-abcd-4321-abcd-1234567890cd -m 1024 -net nic,macaddr=52:54:00:00:00:02 -net tap -boot c & qemu-kvm -hda /media/Sicherung/SicherArbeit/other/qemu_img/SLED11_202.qcow2 -smbios type=1,serial=DCBA321 -uuid 87654321-abcd-1234-abcd-1234567890ab -m 1024 -net nic,macaddr=52:54:00:00:00:03 -net tap -boot c & qemu-kvm -hda /media/Sicherung/SicherArbeit/other/qemu_img/SLED11_202.qcow2 -cdrom /media/Sicherung/SicherArbeit/other/SLES-11-SP1-DVD-x86_64-GM-DVD1.iso -smbios type=1,serial=525401A -uuid 52540001-aabb-4321-abcd-1234567890dc -m 1024 -net nic,macaddr=52:54:00:00:00:01 -net tap -boot c &
Netzwerk-Boot
Mit der Option -boot n
qemu-kvm -drive if=virtio,file=sles11_01-clone -cdrom ../SLES_11_SP1_Vault_DR.i686-0.0.5.iso -m 768 -net nic,macaddr=52:54:00:00:00:01 -net tap -boot n &
Konfiguration auf dem Host-System
Es wird eine Netzwerkbrücke eingerichtet, hier anhand eines Beispiels mittels bonding, wobei zwei NIC's zu bond0 zusammengefasst werden und von diesen Interface aus eine Bridge gebaut wird. Inhalt der /etc/network/interfaces:
auto lo bond0 br0
iface bond0 inet manual
slaves eth0 eth1 bond-mode 4 bond-miimon 100
iface br0 inet static
address 192.168.1.12 gateway 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 dns-nameservers 192.168.1.1 bridge_ports bond0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge stp off
AQEMU als root mit den Einstellungen starten: Reiter Network –> NIC Model „default“
Connection Mode: "Open a TUN/TAP interface"
Häkchen bei TUN/TAP Script: /etc/qemu-ifup
Inhalt von /etc/qemu-ifup #!/bin/sh
switch=$(/sbin/ip route list | awk '/^default / { print $5 }') /sbin/ifconfig $1 0.0.0.0 up /usr/sbin/brctl addif ${switch} $1
+ weitere KVM Doku +
#!/bin/sh
ARGS=„-hda win2k.img -boot c -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup -m 256 -localtime“
echo „Loading kqemu kernel module…“ sudo modprobe kqemu echo „….“
echo „Starting QEMU with…“ echo $ARGS echo „….“ exec qemu $ARGS
Wichtige Vorbereitungen für dieses Skript!
1. Installation des Paketes bridge-utils 2. Umstellung der Netzwerk-Konfiguration 3. Anlegen eines Skriptes /etc/kvm/kvm-bridge 4. Sudo-Konfiguration einrichten
Das Paket bridge-utils benötigen wird zur Einrichtung und Konfiguration einer Netzwerk-Bridge.
Die Datei /etc/network/interfaces habe ich wie folgt eingerichtet:
# The loopback interface # automatically added when upgrading auto lo iface lo inet loopback # The bridge network interface(s) auto br0 iface br0 inet static address 192.168.1.108 network 192.168.1.0 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1 dns-nameservers 192.168.1.1 bridge_ports eth0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off # eof
Das Netzwerk auf dem Host sollte damit noch funktionieren. Die Optionen kann jeder anpassen, wie er gerne möchte…
Die ausführbare Datei /etc/kvm/kvm-bridge beinhaltet folgendes:
#!/bin/sh sudo /sbin/ifconfig $1 0.0.0.0 promisc up sudo /usr/sbin/brctl addif br0 $1 # eof
Nun richten wir noch die Sudo-Konfiguration mittels visudo ein. Beispiel:
%kvm ALL=NOPASSWD:/sbin/ifconfig %kvm ALL=NOPASSWD:/usr/sbin/brctl %kvm ALL=NOPASSWD:/usr/sbin/tunctl
Hier wird der Gruppe kvm voller Zugriff auf die Programme ifconfig, brctl und tunctl gegeben. (Sicher kann man die Einträge zusammenfassen, aber für mich ist das so übersichtlicher.)
Nach dem Start der virtuellen Maschine über /srv/kvm/script/kvm_sidux_start.sh, sollte jetzt in Sidux Ihr lokales Netzwerk zur Verfügung stehen. Falls auf dem Router dhcp eingerichtet ist brauchen Sie nichts tun. Andernfalls sollten Sie das Netzwerk von Hand einrichten.
Konsolen-Tool virsh
iglu:/ # virsh list Id Name Status
1 sles11-clone laufend