XAPI on Ubuntu: Difference between revisions
m (Removed superfluous <nowiki></nowiki> tag pairs.) |
|||
Line 27: | Line 27: | ||
Add the following to /etc/apt/sources.list |
Add the following to /etc/apt/sources.list |
||
<pre |
<pre> |
||
deb http://ppa.launchpad.net/ubuntu-xen-org/xcp-unstable/ubuntu oneiric main |
deb http://ppa.launchpad.net/ubuntu-xen-org/xcp-unstable/ubuntu oneiric main |
||
deb-src http://ppa.launchpad.net/ubuntu-xen-org/xcp-unstable/ubuntu oneiric main |
deb-src http://ppa.launchpad.net/ubuntu-xen-org/xcp-unstable/ubuntu oneiric main |
||
</pre> |
|||
==2b. ... Use a Kronos Debian repository== |
==2b. ... Use a Kronos Debian repository== |
||
<pre |
<pre> |
||
apt-get install curl echo "deb http://downloads.xen.org/XCP/debian/repo/debian unstable main" > /etc/apt/sources.list.d/kronos.list echo "deb-src http://downloads.xen.org/XCP/debian/repo/debian unstable main" >> /etc/apt/sources.list.d/kronos.list wget --quiet -O - http://downloads.xen.org/XCP/debian/xcp.gpg.key | apt-key add - |
apt-get install curl echo "deb http://downloads.xen.org/XCP/debian/repo/debian unstable main" > /etc/apt/sources.list.d/kronos.list echo "deb-src http://downloads.xen.org/XCP/debian/repo/debian unstable main" >> /etc/apt/sources.list.d/kronos.list wget --quiet -O - http://downloads.xen.org/XCP/debian/xcp.gpg.key | apt-key add - |
||
</pre> |
|||
==3. Install xapi== |
==3. Install xapi== |
||
Line 42: | Line 42: | ||
<pre |
<pre> |
||
apt-get update |
apt-get update |
||
apt-get install xcp-xapi |
apt-get install xcp-xapi |
||
</pre> |
|||
Line 54: | Line 54: | ||
'''a)''' Optional: Make xen the default grub entry. |
'''a)''' Optional: Make xen the default grub entry. |
||
<pre |
<pre> |
||
sed -i 's/GRUB_DEFAULT=""/GRUB_DEFAULT="Xen 4.1-amd64"/' /etc/default/grub |
sed -i 's/GRUB_DEFAULT=""/GRUB_DEFAULT="Xen 4.1-amd64"/' /etc/default/grub |
||
update-grub |
update-grub |
||
</pre> |
|||
'''Note:''' given the default set up for Ubuntu's grub (in /etc/default/grub), you don't get to see the splashscreen with kernel boot options. If you do want to see the list of options, you may need to change some of the settings in this file. |
'''Note:''' given the default set up for Ubuntu's grub (in /etc/default/grub), you don't get to see the splashscreen with kernel boot options. If you do want to see the list of options, you may need to change some of the settings in this file. |
||
Line 65: | Line 65: | ||
This is likely to be /etc/network interfaces - ensure that you don't remove any existing settings. Note that if you are running a DHCP server on this machine, then you may need to change the xenbr0 interface to a static or manual IP address, as DHCP may not come up in time to provide an address otherwise. |
This is likely to be /etc/network interfaces - ensure that you don't remove any existing settings. Note that if you are running a DHCP server on this machine, then you may need to change the xenbr0 interface to a static or manual IP address, as DHCP may not come up in time to provide an address otherwise. |
||
<pre> |
|||
auto lo xenbr0 |
|||
iface xenbr0 inet dhcp |
iface xenbr0 inet dhcp |
||
bridge_ports eth0 |
bridge_ports eth0 |
||
</pre> |
|||
'''c.''' Setup the xensource-inventory file: |
'''c.''' Setup the xensource-inventory file: |
||
Line 75: | Line 76: | ||
'''Note:''' this assumes that the root partition is on /dev/sda1 - change if required. Note: this assumes that your management interface will be xenbr0 - change if required. |
'''Note:''' this assumes that the root partition is on /dev/sda1 - change if required. Note: this assumes that your management interface will be xenbr0 - change if required. |
||
<pre |
<pre> |
||
control_domain=`uuidgen` |
control_domain=`uuidgen` |
||
installation=`uuidgen` |
installation=`uuidgen` |
||
Line 87: | Line 88: | ||
PRIMARY_DISK='/dev/sda1' |
PRIMARY_DISK='/dev/sda1' |
||
EOF |
EOF |
||
</pre> |
|||
==5. Reboot.== |
==5. Reboot.== |
||
Line 97: | Line 98: | ||
Set up your path: |
Set up your path: |
||
<pre |
<pre> |
||
export PATH=$PATH:/usr/lib/xen-common/xapi/bin |
export PATH=$PATH:/usr/lib/xen-common/xapi/bin |
||
</pre> |
|||
Set up a storage repository. For now, we recommend NFS, or EXT if you have an unused block device. For example: |
Set up a storage repository. For now, we recommend NFS, or EXT if you have an unused block device. For example: |
||
<pre |
<pre> |
||
SR=`xe sr-create type=nfs name-label=nfs device-config:server=<nfs server> device-config:serverpath=<path on server>` |
SR=`xe sr-create type=nfs name-label=nfs device-config:server=<nfs server> device-config:serverpath=<path on server>` |
||
</pre> |
|||
or |
or |
||
Line 112: | Line 113: | ||
'''Note: DANGER!!!''' The partition selected will be formatted, and all data on it wiped. Ensure that you select the device correctly and that you have backed up any existing information on this partition. |
'''Note: DANGER!!!''' The partition selected will be formatted, and all data on it wiped. Ensure that you select the device correctly and that you have backed up any existing information on this partition. |
||
<pre |
<pre> |
||
SR=`xe sr-create type=ext device-config:device=/dev/sda3 name-label=ext` |
SR=`xe sr-create type=ext device-config:device=/dev/sda3 name-label=ext` |
||
</pre> |
|||
Set this as pool default SR: |
Set this as pool default SR: |
||
<pre |
<pre> |
||
POOL=`xe pool-list --minimal` |
POOL=`xe pool-list --minimal` |
||
xe pool-param-set uuid=$POOL default-SR=$SR |
xe pool-param-set uuid=$POOL default-SR=$SR |
||
</pre> |
|||
To install windows, you'll need an iso. These can be served by an NFS server. Try this: |
To install windows, you'll need an iso. These can be served by an NFS server. Try this: |
||
<pre |
<pre> |
||
xe-mount-iso-sr nfs-server:/path/to/isos |
xe-mount-iso-sr nfs-server:/path/to/isos |
||
</pre> |
|||
Then create a windows VM: |
Then create a windows VM: |
||
<pre |
<pre> |
||
xe vm-install template=Windows\ 7\ \(32-bit\) new-name-label=windows |
xe vm-install template=Windows\ 7\ \(32-bit\) new-name-label=windows |
||
xe vm-cd-add vm=windows cd-name=win7.iso device=3 |
xe vm-cd-add vm=windows cd-name=win7.iso device=3 |
||
xe vm-start vm=windows |
xe vm-start vm=windows |
||
</pre> |
|||
To get networking working, you'll need to manually set up the bridge: |
To get networking working, you'll need to manually set up the bridge: |
||
<pre |
<pre> |
||
brctl addbr xenbr0 |
brctl addbr xenbr0 |
||
brctl addif xenbr0 eth0 |
brctl addif xenbr0 eth0 |
||
</pre> |
|||
Line 151: | Line 152: | ||
<pre> |
<pre> |
||
xe pif-scan |
xe pif-scan |
||
</pre> |
|||
Line 161: | Line 162: | ||
<pre |
<pre> |
||
wget http://downloads.xen.org/XCP/debian/xs-tools-5.9.960.iso |
wget http://downloads.xen.org/XCP/debian/xs-tools-5.9.960.iso |
||
mv xs-tools-5.9.960.iso /usr/lib/xen-common/xapi/packages/iso |
mv xs-tools-5.9.960.iso /usr/lib/xen-common/xapi/packages/iso |
||
</pre> |
|||
Line 176: | Line 177: | ||
<pre |
<pre> |
||
apt-get install pbuilder debhelper dh-ocaml dh-autoreconf cdebootstrap python-debian mercurial git |
apt-get install pbuilder debhelper dh-ocaml dh-autoreconf cdebootstrap python-debian mercurial git |
||
wget http://downloads.xen.org/XCP/debian/blktap-dkms_0.1_all.deb |
wget http://downloads.xen.org/XCP/debian/blktap-dkms_0.1_all.deb |
||
dpkg -i blktap-dkms_0.1_all.deb |
dpkg -i blktap-dkms_0.1_all.deb |
||
</pre> |
|||
Line 186: | Line 187: | ||
<pre |
<pre> |
||
git clone https://github.com/jonludlam/xapi-autobuilder.git |
git clone https://github.com/jonludlam/xapi-autobuilder.git |
||
cd xapi-autobuilder |
cd xapi-autobuilder |
||
make clean ; make |
make clean ; make |
||
</pre> |
|||
Line 198: | Line 199: | ||
<pre |
<pre> |
||
wget -r -l1 --no-parent -nd http://downloads.xen.org/XCP/debian/latest/ |
wget -r -l1 --no-parent -nd http://downloads.xen.org/XCP/debian/latest/ |
||
rm index.html* |
rm index.html* |
||
</pre> |
|||
[[Category:XCP]] |
[[Category:XCP]] |
Revision as of 02:14, 29 November 2011
Installing Xapi on Ubuntu Oneiric
This is Project Kronos. Follow theses instructions to get xapi, the XenAPI server daemon, installed on an Ubuntu Oneiric box, using the upstream Linux kernel. This will effectively allow you to turn an existing Ubuntu machine into an XCP host. Note that this is *very much* a work-in-progress. Some features will be broken, and there will be a bit of manual configuration required. We appreciate any testing you do for this project, but please don't consider this production ready yet! Please visit the Kronos Supported Features page for a list of XCP features that are known to work on Kronos.
Warnings
An important note: don't be tempted to install any kernel (via apt, for instance) which ends in "-virtual" during this process. Such kernels are intended to run as Guests (that is, "VMs"), and are not configured to be used as the Dom0 kernel. You will run into particular problems if you try this on a system which uses an Nvidia card, as the nvidia-current drivers do not currently seem to compile against these kernels, and you will therefore not be able to start X correctly. Given the standard Oneiric start up and splash screens, this isn't a particularly easy problem to fix, so avoid it in the first place!
Another important note: the instructions on this page assume that:
- you know what you are doing with Linux, and are able to repair any issues that might arise as a result of following (or mis-following...) the instructions;
- you are running as root. If you don't know what this entails, then see 1. above, and seek further help from the community before proceeding.
Yet another note: XAPI expects to run in a clean environment, and listens on ports 80 and 443. If you're running anything else on these ports (typically Apache/Apache2), then you're likely to have problems.
1. Install Ubuntu Oneiric
Kronos will work with either Ubuntu Oneiric Server or Desktop, with the default kernel. If you want to use local storage, you will have to reserve an unformatted partition on your hard disk for xapi. In a later step, you will use this partition to create a local storage repository.
2a. Set up the Kronos PPA ...or...
Add the following to /etc/apt/sources.list
deb http://ppa.launchpad.net/ubuntu-xen-org/xcp-unstable/ubuntu oneiric main deb-src http://ppa.launchpad.net/ubuntu-xen-org/xcp-unstable/ubuntu oneiric main
2b. ... Use a Kronos Debian repository
apt-get install curl echo "deb http://downloads.xen.org/XCP/debian/repo/debian unstable main" > /etc/apt/sources.list.d/kronos.list echo "deb-src http://downloads.xen.org/XCP/debian/repo/debian unstable main" >> /etc/apt/sources.list.d/kronos.list wget --quiet -O - http://downloads.xen.org/XCP/debian/xcp.gpg.key | apt-key add -
3. Install xapi
This step installs XCP's xapi and all its dependencies, including the Xen hypervisor.
apt-get update apt-get install xcp-xapi
Once you've installed these packages, you can just do an `apt-get update && apt-get upgrade` to keep up with the latest builds.
4. Post-install setup
a) Optional: Make xen the default grub entry.
sed -i 's/GRUB_DEFAULT=""/GRUB_DEFAULT="Xen 4.1-amd64"/' /etc/default/grub update-grub
Note: given the default set up for Ubuntu's grub (in /etc/default/grub), you don't get to see the splashscreen with kernel boot options. If you do want to see the list of options, you may need to change some of the settings in this file.
b. Setup the network/interfaces file:
This is likely to be /etc/network interfaces - ensure that you don't remove any existing settings. Note that if you are running a DHCP server on this machine, then you may need to change the xenbr0 interface to a static or manual IP address, as DHCP may not come up in time to provide an address otherwise.
auto lo xenbr0 iface xenbr0 inet dhcp bridge_ports eth0
c. Setup the xensource-inventory file:
Note: this assumes that the root partition is on /dev/sda1 - change if required. Note: this assumes that your management interface will be xenbr0 - change if required.
control_domain=`uuidgen` installation=`uuidgen` cat > /etc/xensource-inventory << EOF CURRENT_INTERFACES='xenbr0' BUILD_NUMBER='0' CONTROL_DOMAIN_UUID='${control_domain}' INSTALLATION_UUID='${installation}' MANAGEMENT_INTERFACE='xenbr0' PRIMARY_DISK='/dev/sda1' EOF
5. Reboot.
Using XCP
Ensure that xapi is running with "service xapi status". If you don't get the response "* xapi is running", you will need to run "service xapi start".
Set up your path:
export PATH=$PATH:/usr/lib/xen-common/xapi/bin
Set up a storage repository. For now, we recommend NFS, or EXT if you have an unused block device. For example:
SR=`xe sr-create type=nfs name-label=nfs device-config:server=<nfs server> device-config:serverpath=<path on server>`
or
Note: DANGER!!! The partition selected will be formatted, and all data on it wiped. Ensure that you select the device correctly and that you have backed up any existing information on this partition.
SR=`xe sr-create type=ext device-config:device=/dev/sda3 name-label=ext`
Set this as pool default SR:
POOL=`xe pool-list --minimal` xe pool-param-set uuid=$POOL default-SR=$SR
To install windows, you'll need an iso. These can be served by an NFS server. Try this:
xe-mount-iso-sr nfs-server:/path/to/isos
Then create a windows VM:
xe vm-install template=Windows\ 7\ \(32-bit\) new-name-label=windows xe vm-cd-add vm=windows cd-name=win7.iso device=3 xe vm-start vm=windows
To get networking working, you'll need to manually set up the bridge:
brctl addbr xenbr0 brctl addif xenbr0 eth0
You may need to move the IP address to the bridge rather than the physical interface. Having done this, try a pif-scan:
xe pif-scan
This might create the network for your interface.
PV drivers for Windows
wget http://downloads.xen.org/XCP/debian/xs-tools-5.9.960.iso mv xs-tools-5.9.960.iso /usr/lib/xen-common/xapi/packages/iso
After doing this, rescan the SR to pick up the new ISO.
Compiling from source
The easiest way to compile the XCP toolstack from source is to use the xapi-autobuilder.
First install the perquisites:
apt-get install pbuilder debhelper dh-ocaml dh-autoreconf cdebootstrap python-debian mercurial git wget http://downloads.xen.org/XCP/debian/blktap-dkms_0.1_all.deb dpkg -i blktap-dkms_0.1_all.deb
Then clone xapi-autobuilder and build:
git clone https://github.com/jonludlam/xapi-autobuilder.git cd xapi-autobuilder make clean ; make
This will build all of the required Debian packages for Xapi (except for vncterm, which is only available as a binary until we sort out licensing issues). Take a look at xapi-autobuilder/build.sh to see what's going on inside. You can modify the files git-repos and hg-repos to point to your own repositories if you plan on compiling your own code. If you only want to build a subset of the packages, comment out the ones you don't want to build from the build.sh script.
You can manually download all of the latest packages and source packages using:
wget -r -l1 --no-parent -nd http://downloads.xen.org/XCP/debian/latest/ rm index.html*
[{Category:Users]]