Installing Xen on Fedora 20 as Domain-0

Posted on In Linux, Tutorial, Virtualization

I ever introduced [[installing-xen-domain-0-on-fedora-17]] as the first try to use the xen package delivered from Fedora and get away from manually compiling Xen and patching the kernel. In this post, I introduce installing Xen Dom0 on Fedora 20.

Installing Xen

First, install the xen pacakges:

# yum install xen

The Linux kernel is already ready to run in Domain-0 with [[simple-introduction-to-paravirt_ops-for-xen|the pv_ops technology]] enabled.

Run grub2-mkconfig

Run this command to make config for grub2 again:

# grub2-mkconfig -o /boot/grub2/grub.cfg

Otherwise, the kernel may fail to boot.

Then, we can boot the Fedora to run on Xen as Domain-0 by selecting the Fedora, with Xen hypervisor in Grub2 during booting the system. We can also [[setting-default-entry-in-grub2-and-grub]].

After booting Linux on Xen as Domain-0, we can list the information by ‘xl info’ as follow to verify that Xen works.

# xl info
host                   : localhost
release                : 3.15.6-200.fc20.x86_64
version                : #1 SMP Fri Jul 18 02:36:27 UTC 2014
machine                : x86_64
nr_cpus                : 4
max_cpu_id             : 3
nr_nodes               : 1
cores_per_socket       : 2
threads_per_core       : 2
cpu_mhz                : 3392
hw_caps                : bfebfbff:2c100800:00000000:00007f00:77dafbbf:00000000:00000021:000027ab
virt_caps              :
total_memory           : 8064
free_memory            : 128
sharing_freed_memory   : 0
sharing_used_memory    : 0
outstanding_claims     : 0
free_cpus              : 0
xen_major              : 4
xen_minor              : 3
xen_extra              : .2
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p 
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          : 
xen_commandline        : placeholder
cc_compiler            : gcc (GCC) 4.8.2 20131212 (Red Hat 4.8.2-7)
cc_compile_by          : mockbuild
cc_compile_domain      : [unknown]
cc_compile_date        : Fri Jun 20 21:32:24 UTC 2014
xend_config_format     : 4

Configuring the network

Here, we use bridged network.

NetworkManager does not work with bridge currently. To use bridge-based network for Xen. We should change the network management service from NetworkManager to network. The networking configuration is stored in ‘/etc/sysconfig/network-scripts/’.

First, disable NetworkManager and start network:

# systemctl disable NetworkManager.service && systemctl restart network.service

Make sure that the network service is automatically started by:

# chkconfig network on

Then, we can create the configuration file for the bridge. Let’s call the bridge ‘xenbr0’.

Edit ‘/etc/sysconfig/network-scripts/ifcfg-xenbr0’ (we assume dhcp here. You can also give the bridge a static IP as for the other network devices.):

DEVICE=xenbr0
TYPE=Bridge
ONBOOT=yes
DELAY=0
NM_CONTROLLED=no
BOOTPROTO=dhcp

Then find the configuration file for your existing network adapter (e.g. ifcfg-p2p1) and add this line.

BRIDGE=xenbr0

Also make sure that

NM_CONTROLLED=no

Finally, make the network configuration take effect by:

# systemctl restart network.service

One example Dom-U configuration file

I give one example Domain-U configuration file here as follows.

name="10.8.1.210"
vcpus=2
memory=2048
disk=['phy:/dev/vg_xen/vm-10.8.1.210,xvda,w']
vif=['bridge=xenbr0']
bootloader="/usr/bin/pygrub"
on_reboot="restart"
on_crash="restart"
# extra="single"

Most of the old ‘xm’ commands for Domain-U management work under ‘xl’ by just simply replacing ‘xm’ with ‘xl’.

Eric Ma

Eric is a systems guy. Eric is interested in building high-performance and scalable distributed systems and related technologies. The views or opinions expressed here are solely Eric's own and do not necessarily represent those of any third parties.

One comment

Leave a Reply

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