Installation on XenServer
The following guide covers the base installation of FreeBSD on the XenServer virtual server system from Citrix. This should also be suitable for the open-source Xen platform. The installation is similar to an installation of FreeBSD on regular x86 systems. The following covers the specifics of the XenServer system installation.
The following assumes that an installation of XenServer has been completed on a server featuring compatible hardware-assisted virtualisation processors from AMD or Intel. Citrix, the company behind XenServer, offer a free but functionality-restricted version called 'XenServer Express'. These restrictions are just limitations on the number of virtual guests that can be run at once (currently limited to four) and the amount of memory accessible by the guest operating systems and others (see the Citrix website for further details). There are commercial licenses available from Citrix that remove these restrictions and offer enhanced usability features.
The open-source version of XenServer, called Xen, is available under the GPL and features none of the above restrictions on use. However it is an open-source release and as such requires the ability to install a Xen system from source-code or binary packages within a special Linux kernel.
There is no specific Xen-based release of FreeBSD, instead the installation media for AMD64 must be downloaded (or purchased through one of the affiliated on-line stores). The standard i386 release might also work but the underlying Xen virtualisation is 64-bit based. If using the ports system only CD1 is required for the base system installation.
Since the XenServer 'creates' a virtual machine within which to run an operating system (a kind of guest-space within the host server) the creation of such virtual machines is done via a wizard. As of writing there is no official FreeBSD specific guest template available during the wizard stage, instead the 'Other install media' must be selected. This involves specifying the required number of (virtual) CPUs, RAM, hard drive space and network interfaces manually - the templates simply define defaults for known guest operating systems.
Booting FreeBSD within a XenServer host is much the same as an installation on commodity PC hardware. The XenServer guest is viewable through the XenCenter console and keyboard and mouse interaction is passed from the desktop machine through to it.
FreeBSD on XenServer specific issues
The following lists some variations to the typical x86-based installation.
The Network interface information required page will list the available (recognised) Ethernet cards installed. The virtualised network card(s) provided by the XenServer host appear as physical network devices to the FreeBSD operating system. They are detected by the RealTec 8139C+/8169/8169S/8110S PCI Ethernet card driver.
FreeBSD refers to the above driver using the interface name re0 for the first detected card and re1, re2, etc. for subsequent (virtualised) network devices.
The XenServer host does not present an audio device to the guest operating system. Therefore no sound support is available.
The XenServer host presents the video card as a virtual Cirrus Logic based 5446 display controller chip. Despite being an old graphics card by modern standards it is widely compatible with many operating systems since they typically ship with suitable drivers. Where no drivers exist it can be utilised as a generic VGA / SVGA display.
During the installation on a XenServer system the following choices were used.
The hard drive was split up into the following slices:
The 'SWAP' is set to 2x the on-board RAM size (a FreeBSD system recommendation). The '/usr' splice is 32GB, but shown as 32768MB on the screen. The '/svr' slice used the remainder of the disk, which happened to be 114GB of the 160GB (give-or-take) capacity and exists as a place to host the 'server' specific data instead of the default '/usr' locations used by Apache and others.
A FreeBSD 9.0 Citrix XenServer template, with PV drivers on an HVM kernel and Xen-Tools is available for download