mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
159 lines
6.2 KiB
Plaintext
159 lines
6.2 KiB
Plaintext
################################
|
|
__ __ _____ ___
|
|
\ \/ /___ _ __ |___ / / _ \
|
|
\ // _ \ '_ \ |_ \| | | |
|
|
/ \ __/ | | | ___) | |_| |
|
|
/_/\_\___|_| |_| |____(_)___/
|
|
|
|
################################
|
|
|
|
http://www.xensource.com/xen/about.html
|
|
|
|
What is Xen?
|
|
============
|
|
|
|
Xen is a Virtual Machine Monitor (VMM) originally developed by the
|
|
Systems Research Group of the University of Cambridge Computer
|
|
Laboratory, as part of the UK-EPSRC funded XenoServers project. Xen
|
|
is freely-distributable Open Source software, released under the GNU
|
|
GPL. Since its initial public release, Xen has grown a large
|
|
development community, spearheaded by XenSource Inc, a company created
|
|
by the original Xen development team to build enterprise products
|
|
around Xen.
|
|
|
|
The 3.0 release offers excellent performance, hardware support and
|
|
enterprise-grade features such as x86_32-PAE, x86_64, SMP guests and
|
|
live relocation of VMs. This install tree contains source for a Linux
|
|
2.6 guest; ports to Linux 2.4, NetBSD, FreeBSD and Solaris will follow
|
|
later (and are already available for previous Xen releases).
|
|
|
|
This file contains some quick-start instructions to install Xen on
|
|
your system. For full documentation, see the Xen User Manual. If this
|
|
is a pre-built release then you can find the manual at:
|
|
dist/install/usr/share/doc/xen/pdf/user.pdf
|
|
If you have a source release, then 'make -C docs' will build the
|
|
manual at docs/pdf/user.pdf.
|
|
|
|
Quick-Start Guide - Pre-Built Binary Release
|
|
============================================
|
|
|
|
[NB. Unless noted otherwise, all the following steps should be
|
|
performed with root privileges.]
|
|
|
|
1. Install the binary distribution onto your filesystem:
|
|
|
|
# sh ./install.sh
|
|
|
|
Among other things, this will install Xen and Xen-ready Linux
|
|
kernel files in /boot, kernel modules and Python packages in /lib,
|
|
and various control tools in standard 'bin' directories.
|
|
|
|
2. Configure your bootloader to boot Xen and an initial Linux virtual
|
|
machine. Note that Xen currently only works with GRUB and pxelinux
|
|
derived boot loaders: less common alternatives such as LILO are
|
|
*not* supported. You can most likely find your GRUB menu file at
|
|
/boot/grub/menu.lst: edit this file to include an entry like the
|
|
following:
|
|
|
|
title Xen 3.0 / XenLinux 2.6
|
|
kernel /boot/xen-3.0.gz console=vga
|
|
module /boot/vmlinuz-2.6-xen root=<root-dev> ro console=tty0
|
|
module /boot/initrd-2.6-xen.img
|
|
|
|
NB: Not all kernel configs need an initial ram disk (initrd), but
|
|
if you do specify one you'll need to use the 'module' grub directive
|
|
rather than 'initrd'.
|
|
|
|
The linux command line takes all the usual options, such as
|
|
root=<root-dev> to specify your usual root partition (e.g.,
|
|
/dev/hda1).
|
|
|
|
The Xen command line takes a number of optional arguments described
|
|
in the manual. The most common is 'dom0_mem=xxxM' which sets the
|
|
amount of memory to allocate for use by your initial virtual
|
|
machine (known as domain 0). Note that Xen itself reserves about
|
|
32MB memory for internal use, which is not available for allocation
|
|
to virtual machines.
|
|
|
|
3. Reboot your system and select the "Xen 3.0 / XenLinux 2.6" menu
|
|
option. After booting Xen, Linux will start and your initialisation
|
|
scripts should execute in the usual way.
|
|
|
|
Quick-Start Guide - Source Release
|
|
==================================
|
|
|
|
First, there are a number of prerequisites for building a Xen source
|
|
release. Make sure you have all the following installed, either by
|
|
visiting the project webpage or installing a pre-built package
|
|
provided by your Linux distributor:
|
|
* GCC (preferably v3.2.x or v3.3.x; older versions are unsupported)
|
|
* GNU Make
|
|
* GNU Binutils
|
|
* Development install of zlib (e.g., zlib-dev)
|
|
* Development install of Python v2.3 or later (e.g., python-dev)
|
|
* bridge-utils package (/sbin/brctl)
|
|
* iproute package (/sbin/ip)
|
|
* hotplug or udev
|
|
|
|
[NB. Unless noted otherwise, all the following steps should be
|
|
performed with root privileges.]
|
|
|
|
1. Download and untar the source tarball file. This will be a
|
|
file named xen-unstable-src.tgz, or xen-$version-src.tgz.
|
|
You can also pull the current version from the SCMS
|
|
that is being used (Bitkeeper, scheduled to change shortly).
|
|
|
|
# tar xzf xen-unstable-src.tgz
|
|
|
|
Assuming you are using the unstable tree, this will
|
|
untar into xen-unstable. The rest of the instructions
|
|
use the unstable tree as an example, substitute the
|
|
version for unstable.
|
|
|
|
2. cd to xen-unstable (or whatever you sensibly rename it to).
|
|
The Linux, netbsd and freebsd kernel source trees are in
|
|
the $os-$version-xen-sparse directories.
|
|
|
|
On Linux:
|
|
|
|
3. For the very first build, or if you want to destroy existing
|
|
.configs and build trees, perform the following steps:
|
|
|
|
# make KERNELS=linux-2.6-xen world
|
|
# make install
|
|
|
|
It will create and install into the dist/ directory which is the
|
|
default install location. It will build the xen binary (xen.gz),
|
|
and a linux kernel and modules that can be used in both dom0 and an
|
|
unprivileged guest kernel (vmlinuz-2.6.x-xen), the tools and the
|
|
documentation.
|
|
|
|
If you don't specify KERNELS= on the make command line it will
|
|
default to building two kernels, vmlinuz-2.6.x-xen0 and
|
|
vmlinuz-2.6.x-xenU. These are smaller builds with just selected
|
|
modules, intended primarilly for developers that don't like to wait
|
|
for a -xen kernel to build. The -xenU kernel is particularly small
|
|
as it does not contain any physical device drivers, and hence is
|
|
only useful for guest domains.
|
|
|
|
If you want to build an x86_32 PAE capable xen and kernel to work
|
|
on machines with >= 4GB of memory, use XEN_TARGET_X86_PAE=y on the
|
|
make command line.
|
|
|
|
4. To rebuild an existing tree without modifying the config:
|
|
# make dist
|
|
|
|
This will build and install xen, kernels, tools, and
|
|
docs into the local dist/ directory.
|
|
|
|
5. To rebuild a kernel with a modified config:
|
|
|
|
# make linux-2.6-xen-config CONFIGMODE=menuconfig (or xconfig)
|
|
# make linux-2.6-xen-build
|
|
# make linux-2.6-xen-install
|
|
|
|
Depending on your config, you may need to use 'mkinitrd' to create
|
|
an initial ram disk, just like a native system e.g.
|
|
# depmod 2.6.12.6-xen
|
|
# mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initrd-2.6.12.6-xen.img 2.6.12.6-xen
|