Creating KVM guests with virt-install and qemu-kvm

In my KVM presentation, I discussed how to create KVM guests using the virt-install utility. To create a KVM guest, you can run the virt-install utility with one or more options that control where the guest will be installed, how to install it, and how to structure the guest hardware profile . Here is one such example:

$ virt-install --connect qemu:///system \
   --name kvmnode1 \
   --ram 512 \
   --file /nfs/vms/kvmnode1.disk1 \
   --file /nfs/vms/kvmnode1.disk2 \
   --network=bridge:br0 \
   --accelerate \
     -s 18 \
   --pxe \
     -d \
   --noautoconsole \
   --mac=54:52:00:53:20:15 \
   --nographics \
   --nonsparse

Under the covers virt-install executes qemu-kvm (at least on RHEL derives distributions), which is the process that is responsible for encapsulating the KVM guest in userspace. To start a guest using qemu-kvm, you can execute something similar to the following:

$ /usr/bin/qemu-kvm -M pc \
   -m 1024 \
   -smp 1 \
   -name kvmnode1 \
   -monitor stdio \
   -boot n \
   -drive file=/nfs/vms/kvmnode1,if=ide,index=0 \
   -net nic,macaddr=54:52:00:53:20:00,vlan=0 \
   -net tap,script=no,vlan=0,ifname=tap0 \
   -serial stdio\
   -nographic \
   -incoming tcp:0:4444

While virt-install is definitely easier to use, there are times when you may need to start a guest manually using qemu-kvm (certain options aren’t available through virt-install, so understanding how qemu-kvm works is key!). Viva la KVM!!!

Leave a Reply

Your email address will not be published. Required fields are marked *