From Kerrighed

This page describes how to install Kerrighed 2.3.0 on your system.

Contents

Presentation

Kerrighed offers the view of a big SMP machine on top of a Linux cluster. Each node of the cluster must share the same filesystem. This can be done :

  • either by sharing the root filesystem through the network (e.g.: NFSROOT)
  • either by copying read-only files on each nodes then sharing through the network read-write files.

This manual covers the compilation and installation of Kerrighed from sources on a single node. Duplication and/or sharing of filesystem is really dependant from a distribution to another and is not covered by this manual.

Once installed, the Kerrighed OS is made of the following parts:

  • a patched Linux kernel,
  • a Linux module,
  • some user-level tools,
  • scripts to start/stop Kerrighed service,
  • a library, libkerrighed.

Getting Kerrighed

  • Patch, module, tools, services and library sources are available in a tarball on INRIA's GForge.
  • Linux 2.6.20 vanillas sources are also needed.

Pre-requisites

You are supposed to know:

  • how to compile/configure/install a Linux kernel from sources,
  • a little bit (a little bit more is even better) about your distribution boot process.

The following software is required Kerrighed to compile:

  • automake: >=1.9
  • autoconf: >=2.59
  • libtool
  • rsync
  • bzip2
  • gcc: 3.3.x is the recommended compiler for Linux Kernel.

Kerrighed is reported to build with 4.1 series.

Optional features requires the following:

  • lsb_release: to install Kerrighed startup scripts into /etc/init.d
  • xmlto: a tool to create manpages from docbook

Quick Compilation and Installation

Installing Kerrighed

Installing Kerrighed from the tarball

wget -O /usr/src/kerrighed-latest.tar.gz http://kerrighed.gforge.inria.fr/kerrighed-latest.tar.gz
wget -O /usr/src/linux-2.6.20.tar.bz2 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.20.tar.bz2
  • Decompress the Tarballs
cd /usr/src
tar zxf kerrighed-latest.tar.gz
tar jxf linux-2.6.20.tar.bz2
  • Configure the Sources
cd kerrighed-*
./configure --with-kernel=/usr/src/linux-2.6.20
  • Patch the kernel
make patch
  • Configure the kernel

Patch comes with a default configuration which may not suit your needs but gives you a running Kerrighed configuration. There are different ways to configure the kernel options:

    • Run one of make -C /usr/src/linux-2.6.20 *config. Type make -C /usr/src/linux-2.6.20 help and have a look at 'Configuration targets' section.
    • Run make kernel-config KERNEL_CONFIG=/path/to/a/configfile.

For some hints on kernel options, have a look at Kernel Options section below.

  • Build the sources
make kernel
make
  • Install all, as user root
make kernel-install
make install
  • Check the installation. You should have now the following dir/files installed:
/boot/vmlinuz-2.6.20-krg Kerrighed kernel
/boot/System.map Kerrighed kernel symbol table
/lib/modules/2.6.20-krg Kerrighed modules
/etc/init.d/kerrighed Kerrighed service script *
/etc/default/kerrighed Service configuration
/usr/local/share/man Manpages
/usr/local/bin/krgadm Cluster administration tool
/usr/local/bin/krgcapset Process capabilities tool
/usr/local/bin/migrate Process migration tool
/usr/local/lib/libkerrighed-* Kerrighed library
/usr/local/include/kerrighed Kerrighed library headers

* This script prepare the node to integrate a cluster, but does not start the cluster. See krgadm (1)

Kerrighed configuration

Kerrighed needs one parameters, the session id. This id is between 1 and 254 and can be set through:

  • boot parameter: session_id=XX
  • /etc/kerrighed_nodes file: session=XX

Advanced configuration

Kerrighed configuration

The configure script provides a lot of options to configure the build and installation process.

Generic configure options

By default, make install will install the package's files in /usr/local/bin, /usr/local/man, etc. You can specify an installation prefix other than /usr/local by giving configure the option --prefix=PATH.

configure recognizes the following options to control how it operates.

--cache-file=FILE
    Use and save the results of the tests in FILE instead of
    ./config.cache.  Set FILE to /dev/null to disable caching, for
    debugging configure.

--help
    Print a summary of the options to configure, and exit.

--quiet
--silent
-q
    Do not print messages saying which checks are being made.

--srcdir=DIR
    Look for the package's source code in directory DIR.  Usually
    configure can determine that directory automatically.

--version
    Print the version of Autoconf used to generate the configure
    script, and exit.

Kerrighed specific options

Following options can be passed to the toplevel configure script:

--disable-linux-check
    Check for the Linux sources to be compatible with
    Kerrighed (!!! disable at your own risk !!!) [default=enable]

--disable-module
    Patch the kernel with Kerrighed and build the module [default=enable]

--disable-libkerrighed
    Disable libkerrighed [default=enable]

--disable-tools
    Disable tools [default=enable]

--disable-service
    Do not install kerrighed service [default: enable if lsb found]

--with-kernel=PATH
    Path to kernel source [default=/lib/modules/`uname -r`/source]

--with-kernel-build=PATH
    Path to kernel build [default=/lib/modules/`uname -r`/build]

--disable-kernel-defconfig
    Do not use default config for kernel compilation [default=enable]

--with-kernel-config=PATH
    Path to a kernel .config file. Sample files are provided in 'samples'
    directory. Implies --disable-kernel-defconfig [default=none]

Kernel options (hints)

If you want to edit kernel options, note that the following are currently broken with Kerrighed:

  • General setup -> IPC Namespaces
  • Processor type and features -> Preemption Model -> Voluntary Kernel Preemption
  • Processor type and features -> Preemption Model -> Preemptible Kernel
  • Security options -> Enable access key retention support
  • Networking -> Networking options -> The Ipv6 protocol
  • Networking -> Networking options -> IP: tunneling
  • Networking -> Networking options -> IP: GRE tunnels over IP
  • Devices drivers -> Network device support -> Dummy net driver support
  • Devices Drivers -> Network device support -> Bonding driver support
  • Devices Drivers -> Network device support -> EQL (serial line load balancing) support

Note: don't forget to add your NIC driver and, if you plan to use NFSROOT, include it in the kernel, not as module.

Using Kerrighed

Now that Kerrighed is installed and configured on your system, have a look at the user manual.