Kerrighed project is a Single System Image operating system for clusters. Kerrighed offers the view of a unique SMP machine on top of a cluster of standard PCs.
The goals of Kerrighed are high performance of applications, high availability of the cluster, efficient resources management, high customizability of the operating system and ease of use.
Kerrighed is implemented as an extension to Linux operating system (a set of Linux modules and a small patch to the kernel).
Here are some key features of "Kerrighed":
Customizable Cluster Wide Process Scheduler.
- Processes and threads are automatically scheduled over the cluster nodes to balance the CPU load using the Kerrighed default scheduling algorithm. However, Kerrighed offers a toolkit to easily write customized schedulers hot-loadable through kernel modules.
Cluster Wide Shared Memory.
- Threads and System V memory segments can operate through the whole cluster, just like on an SMP machine.
High Performance Stream Migration Mechanism.
- Processes using streams (socket, pipe, fifo, char device, etc) can be migrated with no penalty on communication performance after migration.
Distributed File System.
- A unique file name space is seen over the whole cluster. All cluster disks are merged in an unique virtual disk in a customizable RAID-like fashion.
- Processes can be checkpointed and restarted on any cluster node.
Full Posix Thread Interface.
- The full Posix Thread interface can operate with threads spread over cluster nodes.
Cluster Wide Unix Process Interface.
- All traditional UNIX process management commands (top, ps, kill, etc) operate cluster wide. Moreover, process identifiers (pid) are unique cluster wide.
Customizable Single System Image Features.
- Single system image features (shared memory, global scheduler, migrable streams, etc) can be enabled or desabled on a per process basis.