Virtualization short cuts for noobs
Introduction
Purpose
Scope
Acronyms, descriptions
References
- http://www.linux-kvm.org/page/Documents
- KVM documentation page.
- http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge
- description of the linux bridge implementation.
- http://en.gentoo-wiki.com/wiki/Bridging_Network_Interfaces
- http://en.gentoo-wiki.com/wiki/KVM#Networking_2
- Shows direct and indirect bridging.
- http://blog.loftninjas.org/2008/08/18/using-attach-interface-with-libvirt-and-qemukvm-on-ubuntu/
- about attach-interface.
- http://tjworld.net/wiki/Linux/Ubuntu/VirtualMachinesWithVDENetworking
- Virtual Machines With VDE Networking
- http://www.mythicalbeast.co.uk/linux/dnsmasq_howto.html
- HOWTO for dnsmasq
- http://www.tuxradar.com/content/howto-linux-and-windows-virtualization-kvm-and-qemu
- hands-on KVM usage and a bit of background information.
- http://www.ibm.com/developerworks/library/l-linuxvirt/index.html
- An overview of virtualization methods, architectures, and implementations. From 2006.
- Virtualization_Quick_Start
- Get going with KVM.
Open issues
- how to pin Dom0
- How do we pin Dom0 to a specific CPU?
Operating Environment
Which packages you need in order to run virtualization.
yum install @virtualization
or
- yum install libvirt
- yum install qemu-kvm
- yum install python-virtinst
- yum install virt-manager
- yum install virt-viewer
- yum install virt-top
Storage
- File based
- LVM Based
- NFS based
- iSCSI
Network
Network configuration needs.
- Bridging
- Direct
- NAT
- NAT/Route
Get direct bridging
Looks better: [Guest Configuration on Fedora 12 with Netcf] Source: [KVM w/o dnsmasq on CentOS 5.2 X64].
- cd /etc/sysconfig/network-scripts
- mkdir bak
- cp -p ifcfg-eth0 bak
- virsh iface-dumpxml eth0 > bak/eth0.xml
- cp bak/eth0.xml bak/kvmbr0.xml
- vi bak/kvmbr0.xml
- virsh iface-define bak/kvmbr0.xml
- virsh iface-list
- service network restart
- virsh edit fc13_1
- brctl show
The following didn't cut it, it simply prevented the DomU in starting, due to the missing 'default' network...
- virsh net-destroy default
- virsh net-autostart --disable default
- virsh net-autostart default
bak/kvmbr0.xml
<interface type='bridge' name='virbr0'> <start mode="onboot"/> <protocol family="ipv4"> <dhcp/> </protocol> <bridge stp="on"> <interface type="ethernet" name="eth0"> <mac address='d8:d3:85:e1:29:68'/> </interface> </bridge> </interface>
virsh net-dumpxml default
<network> <name>default</name> <uuid>4eb269bb-b949-49ae-95b1-6e281b634c47</uuid> <forward mode='route'/> <bridge name='virbr0' stp='on' delay='0' /> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.2' end='192.168.122.254' /> </dhcp> </ip> </network>
Storage creation
LVM creation
- Create a partition of type 8e (Linux LVM)
- pvcreate /dev/sda5
- vgcreate LX /dev/sda5
- lvcreate --size 10G --name vol01 LX
Resource allocation
KVM
Xen
CPU
I/O
Number of devices
Administration
virsch
virsh help lists the supported commands.
See also [28. Managing guests with virsh]
Virsh operations commands of interest
- console
- get access to the console in the DomU.
- destroy
- as if you pulled the power cord, preferably use 'shutdown'.
- reboot
- reboot the domain.
- shutdown
- shutdown the domain.
- undefine
- remove all references to the domain. (Note; not sure if it is actually *all*).
- dumpxml
- list
- List the active domains. Use '--all' to include the the inactive containers to the list.
Virsh network commands of interest
- domifstat
- interface statistics.
- virsh domifstat z3 vif7.0
- attach-interface
- attach a network interface.
- virsh attach-interface z3 bridge eth1 --target eth1 --mac xx:xx:xx:xx:xx:xx
- net-edit
- For an description of the xml structure see: [XML format]
- net-list
- list networks.
virsh cpu commands of interest
- vcpuping <domain-id> <vcpuid> <cpulist>
- Pin a domains virtual cpu to a list of cpu's.
- virsh vcpupin z2 0 2
- virsh vcpuinfo z2
VCPU: 0 CPU: 2 State: idle CPU time: 9.8s CPU Affinity: --y-----
virt-install
virt-mananger
remote management
Creating DomUs
Creating a CentOS 5.5 DomU
source:NFS, storage:LVM network:bridge;4
virt-install -p --name=z4 --ram=512 --vcpus=1 --disk path=/dev/loom/z4 --os-type=linux
--os-variant=rhel5 --location=nfs:192.168.42.132:/exports/isos/centos55 -x
"ks=nfs:192.168.42.132:/exports/ks/anaconda-ks.cfg ip=192.168.42.31 netmask=255.255.255.0
gateway=192.168.42.132 dns=192.168.42.32"
Trouble shooting
virt-install
ERROR Host does not support virtualization type 'xen'
running on KVM, the '-p | --para-virt' is not supported.
error: Failed to get local hostname
- The hostname must be set.
- The system must be able to do a dns lookup of the hostname.
- e.g. put the hostname in /etc/hosts
- Re: et-mgmt-tools virsh failed to get local hostname
virt-install --connect=qemu:///system --name=z01 --ram=512 --vcpus=1 --disk path=/dev/LX/vol01 --os-type=linux --os-variant=rhel5 --location=nfs:192.168.42.132:/exports/isos/centos55 -x "ks=nfs:192.168.42.132:/exports/ks/anaconda-ks.cfg ip=192.168.42.31 netmask=255.255.255.0 gateway=192.168.42.132 dns=192.168.42.32" Starting install... Retrieving file .treeinfo... | 834 B 00:00 ... Retrieving file vmlinuz... | 3.7 MB 00:00 ... Retrieving file initrd.img... | 15 MB 00:00 ... Creating domain... | 0 B 00:00 error: Failed to get local hostname Domain installation still in progress. You can reconnect to the console to complete the installation process.