Support - Xen Installation Guide

RedHat Enterprise Linux 6
CentOS 6
Scientific Linux 6

As any user of an EL6 distro would know, the creator of EL6 packages is RedHat (lovingly called TUV or The Upstream Vendor). Sadly, Redhat dropped support for Xen in version 6 of RedHat Enterprise Linux - preferring KVM as their corporate solution. Personally, I don't think this was the correct decision. This mini-howto will give the basics of setting up the Xen Dom0 using packages maintained by Steven Haigh, the main author of this site. From there, any Xen tutorial will cover the basics (and some more advanced) functionality of Xen guests (both Windows and Linux).

More support for these packages can be found in the support section of this site.

All packages are signed with the GPG Key 5838f88d. This key is part of the kernel-xen-release package.

Step 1

Download and install your base OS. I personally use Scientific Linux 6. After downloading and burning the DVD, perform a minimal install adding packages you require.

Step 2

Install the bridge-utils package.

# yum install bridge-utils

Step 3

Enable my Xen Repo for x86_64:

# yum install http://au1.mirror.crc.id.au/repo/kernel-xen-release-latest.noarch.rpm

Step 4

Choose your Xen version. We currently package Xen 4.4, 4.5 and 4.6.

Xen 4.4

# yum install xen44 # ls -l /boot/xen.gz lrwxrwxrwx 1 root root 12 Sep 10 02:54 /boot/xen.gz -> xen-4.4.1.gz

Xen 4.5

# yum install xen45 # ls -l /boot/xen.gz lrwxrwxrwx 1 root root 12 Sep 10 02:54 /boot/xen.gz -> xen-4.5.0.gz

Xen 4.6 - Requires kernel-xen-testing enabled in EL6.

# yum install xen46 # ls -l /boot/xen.gz lrwxrwxrwx 1 root root 12 Sep 10 02:54 /boot/xen.gz -> xen-4.6.0.gz

Step 5

Install the kernel-xen package. NOTE: It is important to do this AFTER installing Xen and in a separate yum command. If you combine the two, the kernel-xen package may be installed before the xen package. This will result in the required grub.conf entries not being set up.

# yum install kernel-xen

Step 6

Disable SELinux. While selinux is a great idea, it really screws with Xen. If there is anyone out there who wants to wade through what should be set for selinux to be enabled and still have Xen working, please email me! In the mean time, disable it by editing the following file /etc/sysconfig/selinux.

# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted

Step 7

Reboot into your new Xen kernel and test:

# xm info host : xenhost.lan.crc.id.au release : 3.8.3-1.el6xen.x86_64 version : #1 SMP Sat Mar 16 15:16:57 EST 2013 machine : x86_64 nr_cpus : 4 nr_nodes : 1 cores_per_socket : 4 threads_per_core : 1 cpu_mhz : 3303 hw_caps : bfebfbff:28100800:00000000:00003f40:179ae3bf:00000000:00000001:00000000 virt_caps : hvm total_memory : 8116 free_memory : 322 free_cpus : 0 xen_major : 4 xen_minor : 2 xen_extra : .1 xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 xen_scheduler : credit xen_pagesize : 4096 platform_params : virt_start=0xffff800000000000 xen_changeset : unavailable xen_commandline : dom0_mem=2048M cpufreq=xen dom0_max_vcpus=2 dom0_vcpus_pin cc_compiler : gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4) cc_compile_by : mockbuild cc_compile_domain : crc.id.au cc_compile_date : Sat Feb 16 19:16:38 EST 2013 xend_config_format : 4