Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
OpenSSI
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Features== ===Single process space=== OpenSSI provides a single process space β every process is visible from every node, and can be managed from any node using the normal Linux commands (ps, kill, renice and so on). The Linux /proc virtual filesystem shows all running processes on all nodes. The implementation of the single process space is accomplished using the [[VPROC]] abstraction invented by [[Locus Computing Corporation|Locus]] for the [[Tru64 UNIX#OSF/1 AD|OSF/1 AD]] operating system. ===Migration=== OpenSSI allows migration of running processes between nodes. When running processes are migrated they continue to have access to any open files, IPC objects or network connections. Processes can be ''manually'' migrated, either by the process calling the special OpenSSI ''migrate(2)'' system call, or by writing a node number to a special file in the processes /proc directory. Processes may also, if the user wants, be automatically migrated in order to balance load across the cluster. OpenSSI uses an algorithm developed by the [[MOSIX]] project for determining the load on each node. ===Single root=== OpenSSI provides a single root for the cluster - from any node the same files and directories are available. OpenSSI uses several mechanisms to provide the single root β CFS (the OpenSSI Cluster File System), SAN cluster filesystems and parallel mounts of network file systems. OpenSSI uses the context dependent symbolic link (CDSL) feature, inspired by HP's [[TruCluster]] system, to allow access to node-specific files in a manner transparent to non [[cluster-aware application]]s. A CDSL may point to different files on each node in the cluster. ====CFS==== CFS, the OpenSSI Cluster File System provides transparent inter-node access to an underlying ''real'' file system on one node. CFS is ''stacked'' on top of the real file system and co-ordinates access from different nodes using a ''token'' mechanism. One node has physical access to the underlying file system and performs all read and write operations. At any one time one node ''owns'' a token, representing a part of the underlying file, this implies that that part of the file is in the cache of the owning node. If another node tries to access that part of the file the token is ''stolen'' and the cache contents are copied to the stealing node. The OpenSSI CFS implementation is remarkably similar to that used by [[Hewlett-Packard|HP]] [[TruCluster]].<ref> {{Citation |title = TruCluster Server Handbook |first1 = Scott |last1 = Fafrak |first2 = Jim A. |last2 = Lola |first3 = Brad |last3 = Nichols |first4 = Gregory |last4 = Yates |pages = 342β345 |publisher = Digital Press |isbn = 1-55558-259-1 |year = 2003 }} </ref> CFS is also used to co-ordinate access to shared memory segments. CFS can be used in a fault tolerant system by using shared disk subsystems (dual ported [[SCSI]] or [[Storage area network|SAN]]), or by using [[DRBD]]. If the node that is currently directly accessing the file system crashes then the CFS mount ''fails over'' to the other node that is directly connected to the disk and the cluster now accesses the file system via that node. ====SAN clustered file systems==== OpenSSI can use [[Storage area network|SAN]] based [[clustered file system]]s for its root provided they provide a [[POSIX]] compatible file system interface. [[Lustre (file system)|Lustre]] and [[Global File System]] have been tested, too. With a clustered file system, each node mounts the file system in parallel and access to the files goes directly from the node to the file system. ====NFS==== OpenSSI mounts [[Network File System (protocol)|NFS]] files systems in parallel on each node. Every node accesses the NFS server directly. ===Single I/O space=== OpenSSI provides cluster-wide access to all I/O devices on the system, with some limitations - it is not possible for a node to mount a block device from another node. The [[udev]] device manager is used to manage the /dev directory. Each node runs its own copy of udev to create the appropriate device nodes in a subdirectory of /dev, /dev/1 for node 1, /dev/2 for node 2 and so on. ===Single IPC space=== OpenSSI provides internode access to all the standard Linux inter-process communication mechanisms, [[Shared memory (interprocess communication)|shared memory]], [[semaphore (programming)|semaphore]]s, [[SYSV]] message queues, [[Named pipe|pipe]]s and [[Unix domain socket]]s. In order to implement cluster wide shared memory β [[distributed shared memory]] β OpenSSI uses the CFS ''token'' system. At any one time a memory segment may be readable by one or more nodes, or writable by one node. If a node without write access to a segment tries to write then the segment is marked unreadable on all other nodes and writable on the current node. If a node without read access tries to read a segment then the current value is copied from a node where it was valid and if it was writable it is marked readable. ===Cluster IP address=== OpenSSI uses [[Linux Virtual Server|LVS]] to provide fault-tolerant load balanced [[Internet Protocol|IP]] services. Inbound network connections are received by a ''director'' node which redirects them to the least loaded server node. (A node may be both a director and server). In the event of director node failure another director node takes over and the system continues to accept inbound connections.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)