OpenSSI Clusters for Linux 1.9.2 review

by on

OpenSSI Clusters for Linux project is a comprehensive clustering solution offering a full, highly available SSI environment for Linux

License: GPL (GNU General Public License)
File size: 0K
Developer: OpenSSI Cluster Project
0 stars award from

OpenSSI Clusters for Linux project is a comprehensive clustering solution offering a full, highly available SSI environment for Linux. Goals for OpenSSI Clusters include availability, scalability and manageability, built from standard servers.

Technology pieces include: membership, single root and single init, cluster filesystems and DLM, single process space and process migration, load leveling, single and shared IPC space, device space and networking space, and single management space

Here are some key features of "OpenSSI Clusters for Linux":
1. Membership

courtesy of the CI project
includes libcluster and the cluster command (part of Cluster Tools)

2. Internode Communication

courtesy of the CI project

3. Filesystem

CFS is transparently stacked over any ext3 mount, making it instantly and coherently shared across the cluster
CFS can be used for the root and other filesystems
there is mount enforcement across nodes in the cluster so an NFS mount on any node is automatically done on all nodes;
reopen of files, devices, ipc objects when processes move is supported
CFS supports file record locking and shared writable mapped files (along with all other standard POSIX capabilities
HA-CFS is configurable for the root or other filesystems
Lustre is supported;
openGFS was supported but is not currently
GFS will be supported in OpenSSI 2.x but is not currently supported

4. Process Management

very complete, including:
- clusterwide PIDs
- process migration and distributed rexec(), rfork() and migrate() with reopen of files, sockets, pipes, devices, etc.
- vprocs
- clusterwide signalling, get/setpriority
- capabilities
- distributed process groups, session, controlling terminal
- surrogate origin functionality
- no single points of failure (cleanup code to deal with nodedowns)
- Load leveling at exec() time and during process execution
- clusterwide ptrace() and strace
- clusterwide /proc/, ps, top, etc.
- threaded processes migrate as a group
- process groups can migrate as a group

5. Devices

there is a clusterwide device model via the devfs code
each node mounts its devfs on /cluster/node#/dev and bind mounts it to /dev so all devices are visible and accessible from all nodes, but by default you see only local devices
a process on any node can open a device on any node
devices are reopened when processes move
rocesses retain a context, even if they move; the context determines which node's devices to access by default
single, clusterwide /dev/pts

6. IPC

all IPC objects/mechanisms are clusterwide:
- pipes
- fifos
- signalling
- message queues
- semaphore
- shared memory
- Unix-domain sockets
- Internet-domain sockets
reopen of IPC objects is there for process movement
nodedown handling is there for all IPC objects

7. Clusterwide TCP/IP

HA-LVS is integrated, with extensions
extension is that port redirection to servers in the cluster is automatic and doesn't have to be managed.

8. Paging/Swapping

not clusterwide
each node is independent

9. Kernel Data Replication Service

it is in there (cluster/ssi/clreg)
no subsystems are using it


not there

11. Shared Storage

we have tested shared FCAL and use it for HA-CFS

12. HA interconnect

Bonding is supported

13. DLM

is integrated with CLMS and is HA

14. Sysadmin

services architecture has been made clusterwide
ps, top, ipcs are clusterwide by default
localview command can limit view to local node

15. Init, Booting and Run Levels

system runs with a single init which will failover/restart on another node if the node it is on dies

16. Application Availability

application monitoring/restart provided by spawndaemon/keepalive
services started by RC on the initnode will automatically restart on a failure of the initnode

17. Timesync

NTP for now

18. Load Leveling

for connection load balancing, using HA-LVS
process load leveling is on by default
process load leveling can occur at exec() time or during execution
applications must be registered to load level

19. Packaging/Install

Have source patch, binary RPMs and CVS source options;
Can also build Debian packages from CVS source;
First node is incremental to a standard Linux install
Other nodes install via netboot, PXEboot, DHCP and simple addnode command;

20. Object Interfaces

standard interfaces for objects work as expected
no new interfaces for object location or movement except for processes (rexec(), migrate(), and /proc/pid/goto to move a process)

OpenSSI Clusters for Linux 1.9.2 search tags