WebHostingTalk


Virtualization using Xen

Xen is a virtual machine monitor that supports execution of multiple guest operating systems.

Here are the steps to install Xen on CentOS:

1. Execute the following commands to install Xen and Xen kernel.

   [root@localhost ~]#yum install kernel-xen xen
   Installing: xen-libs ######################### [1/9]
   Installing: kernel-xen ######################### [2/9]
   Installing: dnsmasq ######################### [3/9]
   Installing: libvirt ######################### [4/9]
   Installing: libvirt-python ######################### [5/9]
   Installing: python-virtinst ######################### [6/9]
   Updating : util-linux ######################### [7/9]
   Installing: xen ######################### [8/9]
   Cleanup : util-linux ######################### [9/9]
   Installed: kernel-xen.i686 0:2.6.18-128.1.10.el5 xen.i386 0:3.0.3-80.el5_3.2
   Dependency Installed: dnsmasq.i386 0:2.48-1.el5.rf libvirt.i386 0:0.3.3-14.el5_3.1 libvirt-python.i386 0:0.3.3-14.el5_3.1 python-virtinst.noarch 0:0.300.2-12.el5 xen-libs.i386 0:3.0.3-80.el5_3.2
   Dependency Updated: util-linux.i386 0:2.13-0.50.el5
   Complete!

2. Once the installation is over, you will find the new kernel “Xen kernel (vmlinuz-2.6.18-8.1.4.el5xen)” in the grub.conf file.

   [root@localhost xinetd.d]#cat /etc/grub.conf
   default=1
   timeout=5
   splashimage=(hd0,7)/grub/splash.xpm.gz
   hiddenmenu
   title CentOS (2.6.18-128.1.10.el5xen)
   root (hd0,7)
   kernel /xen.gz-2.6.18-128.1.10.el5
   module /vmlinuz-2.6.18-128.1.10.el5xen ro root=LABEL=/1 rhgb quiet
   module /initrd-2.6.18-128.1.10.el5xen.img
   title Linux (2.6.18-8.el5)
   root (hd0,7)
   kernel /vmlinuz-2.6.18-8.el5 ro root=LABEL=/1 rhgb quiet
   initrd /initrd-2.6.18-8.el5.img
   title windows
   rootnoverify (hd0,0)
   chainloader +1 

3. Change the default value to 0 in the file ‘/etc/grub.conf’

default=0

4. Create an nfs mount /root/install and copy the contents of the CentOS DVD contents to /root/install directory.

   [root@localhost ~]#mkdir /root/install
   [root@localhost ~]#mount /dev/cdrom /mnt/cd
   [root@localhost ~]#cp -prf /mnt/cd/* /root/install
   [root@localhost ~]# vi /etc/exports
   /root/install *(rw,sync)
   [root@localhost ~]# exportfs -a

5. Create a new directory for a virtual machine “/vm” and reboot the server.

6. Once you reboot the machine, the system will now have the new Xen kernel.

   [root@localhost opt]# uname -a
   Linux localhost.localdomain 2.6.18-128.1.10.el5xen #1 SMP Thu May 7 11:51:15 EDT 2009 i686 i686 i386 GNU/Linux

7. To check if Xen has started, execute the command :

   [root@localhost ~]# xm list
   Name ID Mem(MiB) VCPUs State Time(s)
   Domain-0 0 736 2 r—– 300.4

8. You can use the tool “virt-install” for creating virtual machines as follows :

   [root@localhost ~]#virt-install

It will come up with a few questions such as :

   What is the name of your virtual machine?
   vm01
   How much RAM should be allocated (in megabytes)
   256
   What would you like to use as the disk (path)?
   /vm/vm01.img
   How large would you like the disk (/vm/vm01.img) to be (in gigabytes)?
   5
   Would you like to enable graphics support? (yes or no)
   no
   What is the install location?
   /root/install ( This is the nfs mount)

9. This would create the vm01 configuration file /etc/xen/vm01 for us (in dom0).

It should look like this:

   [root@localhost ~]#vi /etc/xen/vm01
   name = “vm01″
   uuid = “219eaf21-e688-611f-53ac-f28f44dd73e3″
   maxmem = 256
   memory = 256
   vcpus = 1
   bootloader = “/usr/bin/pygrub”
   on_poweroff = “destroy”
   on_reboot = “restart”
   on_crash = “restart”
   vfb = [ ]
   disk = [ "tap:aio:/vm/vm01,xvda,w" ]
   vif = [ "mac=00:16:3e:6d:88:1e,bridge=xenbr0" ]

10. To log in to the virtual machine, use the following command:-

   [root@localhost ~]#xm console vm01

That’s it !

Some important Xen commands:

1. xm create -c /path/to/config

This command is used to start a virtual machine

For example, xm create /etc/xen/vm01

2. xm shutdown

Command to stop a virtual machine

For example, xm shutdown vm01

3. xm destroy

Stop a virtual machine immediately without shutting it down

For example, xm destroy vm01

4. xm list

List all running systems

5. xm console

Log in on a virtual machine

For example, xm console vm01

7. xm help

List of all commands

   * Share/Save/Bookmark

Web Hosting Wiki article text shared under a Creative Commons License.

Personal Tools

Toolbox