From Kerrighed

Contents

[edit] KDDM standalone

KDDM (Kernel Distributed Data Management) is a concept providing a very natural method for creating distributed kernel services. It is a layer that allows cluster-wide sharing of kernel data objects. It is a very flexible and configurable distributed shared memory system that uses a strict consistency model (invalidate on write). The Kerrighed SSI (single system image) uses it extensively for providing access from various kernel services to distributed shared objects in the cluster.

KDDM can be used outside the Kerrighed SSI for programming distributed services in a new and easy way: By starting with the well-tested code of non-distributed services and putting the relevant variables into KDDM sets (i.e. making them cluster-wide accessible). This approach relieves the programmer of the need to explicitely take care of synchronization, distributed locking and managing the data transport between the cluster nodes.

KDDM standalone is an effort to split out and make usable for a wider user-base the base infrastructure on which Kerrighed was built.

KDDM standalone comes as a set of kernel modules which build against a (more or less) unmodified kernel. Currently the kernel needs to be rather new (2.6.25 and up) and include TIPC version 1.7.5 or newer. KDDM standalone doesn't require any own patches to the kernel.


[edit] Components

The standalone KDDM infrastructure consists of several software layers. Each of the layers has its own source directory and builds an own loadable kernel module:

[edit] Tools

The tools layer is the lowest one and contains helper functions and structures used by all higher layers, for example hashtables, unique_ids, ioctl interface services registration. It builds the module krg-tools.ko.


[edit] RPC

The communication infrastructure is built of: - comlayer: the basic communication layer which uses TIPC and provides the basic mechanisms for exchanging data packets among the cluster nodes,

  • rpc: an RPC-like infrastructure for registering and dispatching services
  • rpclayer: a communication abstraction using pack/unpack transactions for data transport.

This part builds the module krg-rpc.ko.

WARNING: Before the RPC module is loaded the TIPC network MUST BE configured! In order to keep the KDDM standalone modules free from the need of kernel patches, the kerrighed node addressing configuration is done purely by using TIPC node addresses. If TIPC is unconfigured when the krg-rpc module is loaded, the load will fail "uncleanly", requiring a reboot of the machine.


[edit] Hotplug

The hotplug layer is taking care of cluster node membership management, node addition and removal and invocation of notifiers and callback functions that react to cluster changes. This components lives in the module krg-hotplug.ko.


[edit] KDDM

The layer providing the distributed shared memory functionality builds into the module krg-kddm.ko. For information on how to use the features provided by KDDM please visit: http://kerrighed.org/wiki/index.php/KernelDevelKddm


[edit] Installation

The installation procedure is described in the file INSTALL located at the top of the file tree. The steps involve patching the base kernel to the TIPC version 1.7.5, adding the kernel debugger kdb to the kernel and building the KDDM standalone modules.

[edit] SVN Repository Access

The SVN repository for KDDM standalone is located at https://efocht@scm.gforge.inria.fr/svn/kerrighed/branches/kddm

You can check out trunk by

svn co https://efocht@scm.gforge.inria.fr/svn/kerrighed/branches/kddm/trunk


[edit] Applications

kDFS, please have a look at http://www.kerrighed.org/wiki/index.php/KernelDevelKdFS

[edit] Roadmap


Page written by Erich Focht.