Difference between revisions of "Upgrade to Xen 3.2"

From PDP/Grid Wiki
Jump to navigationJump to search
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
Here are the steps to upgrade a CentOS 5.1 x86_64 system from Xen 3.1 to 3.2.
 +
 +
==The CentOS installation==
 +
 
The CentOS 5.1 distribution comes with Xen 3.1 as an option. To install this, you need to select "Virtualization" during the installation stage or
 
The CentOS 5.1 distribution comes with Xen 3.1 as an option. To install this, you need to select "Virtualization" during the installation stage or
 
  @virtualization
 
  @virtualization
Line 5: Line 9:
 
[[Image:Centos5-installer-virt.png|Screenshot from the text-based installer]]
 
[[Image:Centos5-installer-virt.png|Screenshot from the text-based installer]]
  
 +
==Building the Xen 3.2 RPM==
 
There is no pre-compiled Xen 3.2 for CentOS 5 x86_64 available yet, so download the [http://bits.xensource.com/oss-xen/release/3.2.0/centos-5.1/xen-3.2.0-0xs.centos5.src.rpm source RPM] from [http://xen.org/ xen.org].
 
There is no pre-compiled Xen 3.2 for CentOS 5 x86_64 available yet, so download the [http://bits.xensource.com/oss-xen/release/3.2.0/centos-5.1/xen-3.2.0-0xs.centos5.src.rpm source RPM] from [http://xen.org/ xen.org].
  
Install the source RPM
+
===Install the source RPM===
 +
Install as root:
 
  rpm -i xen-3.2.0-0xs.centos5.src.rpm
 
  rpm -i xen-3.2.0-0xs.centos5.src.rpm
which will leave the sources and spec file in /usr/src/redhat.
+
This will leave the sources and spec file in /usr/src/redhat.
The RPMs can be build when the build requirements are satisfied.
+
The RPMs can be build when the build requirements are satisfied. The following list of packages should do.
  BuildRequires: transfig libidn-devel zlib-devel texi2html SDL-devel curl-devel
+
  yum install curl-devel dev86 gettext ghostscript \
BuildRequires: libX11-devel python-devel ghostscript tetex-latex
+
            glibc-devel gnutls-devel gtk2-devel \
BuildRequires: ncurses-devel gtk2-devel libaio-devel
+
            libaio-devel libidn-devel libX11-devel \
BuildRequires: perl
+
            ncurses-devel openssl-devel perl \
  BuildRequires: udev
+
            python-devel SDL-devel tetex-latex \
  BuildRequires: /usr/include/gnu/stubs-32.h
+
            texi2html transfig udev zlib-devel
  BuildRequires: dev86
+
 
  BuildRequires: gettext
+
 
  BuildRequires: gnutls-devel
+
I had to make one minor change to the spec file: I changed the line
  BuildRequires: openssl-devel
+
  #/usr/lib/xen/boot/hvmloader
 +
to
 +
  /usr/lib/xen/boot/hvmloader
 +
 
 +
===Compile the RPM===
 +
 
 +
Finally, do the build
 +
rpmbuild -bb xen.spec
 +
 
 +
==Installing the new Xen==
 +
Install the resulting RPMS
 +
  rpm -i xen-libs-3.2.0-0xs.x86_64.rpm \
 +
        xen-3.2.0-0xs.x86_64.rpm
 +
 
 +
Update GRUB: put /boot/xen.gz-3.2 in /etc/grub.conf
 +
default=0
 +
timeout=5
 +
  serial --unit=1 --speed=9600
 +
  terminal --timeout=5 serial console
 +
  title CentOS (2.6.18-53.1.14.el5xen)
 +
        root (hd0,2)
 +
        kernel /xen.gz-3.2 com2=9600,8n1 console=com2,vga
 +
        module /vmlinuz-2.6.18-53.1.14.el5xen ro root=/dev/VolGroup00/LogVol00 console=xvc xencons=xvc
 +
        module /initrd-2.6.18-53.1.14.el5xen.img
 +
 
 +
And reboot.
 +
 
 +
==Caveat==
 +
 
 +
Following these steps fails [[the Little Red Riding Hood Constraint]]. One immediate consequence is that the grub configuration may not survive an ordinary kernel upgrade, i.e. you may have to put ken.gz-3.2 back in manually.

Latest revision as of 09:47, 23 April 2008

Here are the steps to upgrade a CentOS 5.1 x86_64 system from Xen 3.1 to 3.2.

The CentOS installation

The CentOS 5.1 distribution comes with Xen 3.1 as an option. To install this, you need to select "Virtualization" during the installation stage or

@virtualization

in the kickstart file.

Screenshot from the text-based installer

Building the Xen 3.2 RPM

There is no pre-compiled Xen 3.2 for CentOS 5 x86_64 available yet, so download the source RPM from xen.org.

Install the source RPM

Install as root:

rpm -i xen-3.2.0-0xs.centos5.src.rpm

This will leave the sources and spec file in /usr/src/redhat. The RPMs can be build when the build requirements are satisfied. The following list of packages should do.

yum install curl-devel dev86 gettext ghostscript \
            glibc-devel gnutls-devel gtk2-devel \
            libaio-devel libidn-devel libX11-devel \
            ncurses-devel openssl-devel perl \
            python-devel SDL-devel tetex-latex \
            texi2html transfig udev zlib-devel


I had to make one minor change to the spec file: I changed the line

#/usr/lib/xen/boot/hvmloader

to

/usr/lib/xen/boot/hvmloader

Compile the RPM

Finally, do the build

rpmbuild -bb xen.spec

Installing the new Xen

Install the resulting RPMS

rpm -i xen-libs-3.2.0-0xs.x86_64.rpm \
       xen-3.2.0-0xs.x86_64.rpm

Update GRUB: put /boot/xen.gz-3.2 in /etc/grub.conf

default=0
timeout=5
serial --unit=1 --speed=9600
terminal --timeout=5 serial console
title CentOS (2.6.18-53.1.14.el5xen)
        root (hd0,2)
        kernel /xen.gz-3.2 com2=9600,8n1 console=com2,vga
        module /vmlinuz-2.6.18-53.1.14.el5xen ro root=/dev/VolGroup00/LogVol00 console=xvc xencons=xvc
        module /initrd-2.6.18-53.1.14.el5xen.img

And reboot.

Caveat

Following these steps fails the Little Red Riding Hood Constraint. One immediate consequence is that the grub configuration may not survive an ordinary kernel upgrade, i.e. you may have to put ken.gz-3.2 back in manually.