I will be using Kernel-based Virtual Machine (KVM) implementation for Linux Guests. KVM is a full virtualization framework which can run multiple unmodified guests including various flavors of Microsoft Windows, Linux Operating Systems and other UNIX family systems. In order to see the types of Guest operating systems and platforms that KVM supports you can look at http://www.linux-kvm.org/page/Guest_Support_Status
Let’s get started. For this blog the host system on which I am working is running CentOS 6.0 with Linux 2.6.32 on a x86_64 platform. I will be creating a CentOS 5.6 image for the VM guest. As the first step, I will get my host system ready with KVM tools and other dependencies. To do this I require a package called kvm – this package includes the VM kernel module. In addition to the kvm package I will be using three tools (viz. virt-install, virsh, and virt-viewer) from toolkit called libvirt. Libvirt (http://libvirt.org/) is a hypervisor-independent API that is able to interact with the virtualization capabilities of various operating systems. The commands below show you how to use yum to install kvm and libvirt related packages:
yum install kvm
yum install virt-manager libvirt libvirt-python python-virtinst libvirt-client
1: virt-install \
2: --name=vm56-25GB \
3: --disk path=/home/aguru/myvms/vm5.6-25GB.img,sparse=true,size=25 \
4: --ram=2048 \
5: --location=http://mirror.unl.edu/centos/5.6/os/x86_64/ \
6: --os-type=linux \
7: --vnc
In the above code snippet 'virt-install' is a libvirt command line tool for provisioning new virtual machines. The different options that I have used above are explained below
--name is the name of the new machine that I am creating
--disk option specifies the absolute path of the virtual machine image (file) that will be created. The ‘sparse’ option in the same line means that the host system does not have to allocate all the space up-front, and the ‘size’ gives the size of the hard disk drive of the VM in GB
--ram is the RAM of guest in MB
--location using this option I am providing a location for network install where the OS install files for the guest are located
--os-type specifies type of guest operating system
--vnc specifies to setup a virtual console in the guest and export it as a VNC server in host
Unless there are any missing dependencies and tools that somehow did not get installed correctly - your install should start with a new VNC window popping up on your display. I have a few screen captures of what you may see shown below.
** Just a quick note - to release the mouse cursor from the VNC window you can use Ctrl-Alt.
and so on with finally a screen as below
On the final screen of installation you can click the 'Reboot' button from the VM window to restart the guest VM.
Few basic commands to list, start and stop a VM
virsh list –all
The output of virsh list --all shows the defined VMs and their current state for e.g. a typical output may look like:
Id Name State ---------------------------------- - vm56-15KSGB shut off - vm56-25GB shut off
In order to start a VM from the shut off state issue a virsh start command. Note below that the virsh list –all now shows an Id and the running state of the VM (vm56-15KSGB)
virsh start vm56-15KSGB virsh list --all Id Name State ---------------------------------- 1 vm56-15KSGB running - vm56-25GB shut off
To launch a VNC console for displaying the console of a running VM you can use virt-viewer e.g.
virt-viewer 1
And finally, to shutdown a running VM use virsh shutdown or force a virsh destroy e.g.
virsh shutdown 1or
virsh destroy 1
Both virt-viewer and virsh shutdown take the Id of the running VM as an argument.
What if I have a Kickstart file for the VM I want to create?
In case you have a Kickstart file that you will like to use for creating the VM you may use the following command:
1: virt-install \
2: --name=vm56-15KSGB \
3: --disk path=/home/aguru/myvms/vm56-15KSGB.img,sparse=true,size=15 \
4: --ram=2048 \
5: --location=http://newman.ultralight.org/os/centos/5.5/x86_64 \
6: --os-type=linux \
7: --vnc \
8: -x "ks=http://httpdserver.hosting.kickstart/pathto.kickstart.file"
The only thing to note which is additional in this virt-install command as compared to its previous use in this blog is the extra flag '–x '. The value passed along with the -x flag points to the location of the web location of the kickstart file.
That is it all for this post. In the next post I will talk about using this created image and then launching it in a Condor VM Universe.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.