From Kerrighed

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

Contents

[edit] 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.

[edit] 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.

[edit] 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

[edit] Quick Compilation and Installation

[edit] Installing Kerrighed

[edit] 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)

[edit] 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

[edit] Advanced configuration

[edit] Kerrighed configuration

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

[edit] 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.

[edit] 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]

[edit] 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.

[edit] Using Kerrighed

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