Single system image: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
imported>Vt320
update vms release
 
imported>Laura240406
Cleaned up article content (via article-cleaner)
 
Line 1: Line 1:
{{Short description|Cluster dedicated operating system}}
{{Short description|Cluster dedicated operating system}}
In [[distributed computing]], a '''single system image''' ('''SSI''') cluster is a [[cluster (computing)|cluster]] of machines that appears to be one single system.<ref name=Pfister1998>{{Citation
In [[distributed computing]], a '''single system image''' ('''SSI''') cluster is a [[cluster (computing)|cluster]] of machines that appears to be one single system.<ref name="Pfister1998">{{Citation
| last = Pfister
| last = Pfister
| first = Gregory F.
| first = Gregory F.
| year = 1998
| year = 1998
| title = In search of clusters
| title = In search of clusters
| isbn = 978-0-13-899709-0
| isbn = 978-0-13-899709-0
| publisher = Prentice Hall PTR
| publisher = Prentice Hall PTR
| location = Upper Saddle River, NJ
| location = Upper Saddle River, NJ
| oclc = 38300954
| oclc = 38300954
| url-access = registration
| url-access = registration
| url = https://archive.org/details/insearchofcluste00pfis
| url = https://archive.org/details/insearchofcluste00pfis
}}</ref><ref name=Buyya2001>{{citation
}}</ref><ref name="Buyya2001">{{citation
|author1=Buyya, Rajkumar |author2=Cortes, Toni |author3=Jin, Hai | year = 2001
|author1=Buyya, Rajkumar |author2=Cortes, Toni |author3=Jin, Hai | year = 2001
| title = Single System Image
| title = Single System Image
| journal = International Journal of High Performance Computing Applications
| journal = International Journal of High Performance Computing Applications
| volume = 15
| volume = 15
| issue = 2
| issue = 2
| pages = 124
| pages = 124
| doi = 10.1177/109434200101500205
| doi = 10.1177/109434200101500205
|s2cid=38921084 | url = http://www.buyya.com/papers/SSI-CCWhitePaper.pdf
|s2cid=38921084 | url = http://www.buyya.com/papers/SSI-CCWhitePaper.pdf
}}</ref><ref name=Healy2016>{{citation
}}</ref><ref name="Healy2016">{{citation
|author1=Healy, Philip |author2=Lynn, Theo |author3=Barrett, Enda |author4=Morrison, John P. | year = 2016
|author1=Healy, Philip |author2=Lynn, Theo |author3=Barrett, Enda |author4=Morrison, John P. | year = 2016
| title = Single system image: A survey
| title = Single system image: A survey
| journal = Journal of Parallel and Distributed Computing
| journal = Journal of Parallel and Distributed Computing
| volume = 90-91
| volume = 90-91
| pages = 35–51
| pages = 35–51
| doi = 10.1016/j.jpdc.2016.01.004
| doi = 10.1016/j.jpdc.2016.01.004
| url = https://cora.ucc.ie/bitstream/handle/10468/4932/PH_Single_SV2016.pdf
| url = https://cora.ucc.ie/bitstream/handle/10468/4932/PH_Single_SV2016.pdf
|hdl=10468/4932 }}</ref> The concept is often considered synonymous with that of a [[distributed operating system]],<ref>
|hdl=10468/4932 }}</ref> The concept is often considered synonymous with that of a [[distributed operating system]],<ref>{{Citation
{{Citation
| title = Distributed systems: concepts and design
| title = Distributed systems: concepts and design
| year = 2005
| year = 2005
|author1=Coulouris, George F |author2=Dollimore, Jean |author3=Kindberg, Tim | isbn = 978-0-321-26354-4
|author1=Coulouris, George F |author2=Dollimore, Jean |author3=Kindberg, Tim | isbn = 978-0-321-26354-4
| publisher = Addison Wesley
| publisher = Addison Wesley
| page = 223
| page = 223
| url = https://books.google.com/books?id=d63sQPvBezgC&dq=%22distributed+operating+system%22&pg=PA223
| url = https://books.google.com/books?id=d63sQPvBezgC&dq=%22distributed+operating+system%22&pg=PA223
}}</ref><ref>{{Citation
}}</ref><ref>{{Citation
|author1=Bolosky, William J. |author2=Draves, Richard P. |author3=Fitzgerald, Robert P. |author4=Fraser, Christopher W. |author5=Jones, Michael B. |author6=Knoblock, Todd B. |author7=Rashid, Rick | contribution = Operating System Directions for the Next Millennium | title = 6th Workshop on Hot Topics in Operating Systems (HotOS-VI) | place = Cape Cod, MA | pages = 106–110 | date = 1997-05-05| doi = 10.1109/HOTOS.1997.595191  | citeseerx = 10.1.1.50.9538  
|author1=Bolosky, William J. |author2=Draves, Richard P. |author3=Fitzgerald, Robert P. |author4=Fraser, Christopher W. |author5=Jones, Michael B. |author6=Knoblock, Todd B. |author7=Rashid, Rick | contribution = Operating System Directions for the Next Millennium | title = 6th Workshop on Hot Topics in Operating Systems (HotOS-VI) | place = Cape Cod, MA | pages = 106–110 | date = 1997-05-05| doi = 10.1109/HOTOS.1997.595191  | citeseerx = 10.1.1.50.9538
|isbn=978-0-8186-7834-9 |s2cid=15380352 }}</ref> but a single image may be presented for more limited purposes, just [[job scheduling]] for instance, which may be achieved by means of an additional layer of software over conventional [[Operating system|operating system image]]s running on each [[Node (networking)|node]].<ref>{{Citation
|isbn=978-0-8186-7834-9 |s2cid=15380352 }}</ref> but a single image may be presented for more limited purposes, just [[job scheduling]] for instance, which may be achieved by means of an additional layer of software over conventional [[Operating system|operating system image]]s running on each [[Node (networking)|node]].<ref>{{Citation
| title=Grid And Cluster Computing
| title=Grid And Cluster Computing
| author= Prabhu, C.S.R.
| author= Prabhu, C.S.R.
| isbn=978-81-203-3428-1
| isbn=978-81-203-3428-1
| publisher=Phi Learning
| publisher=Phi Learning
| year=2009
| year=2009
| pages=256
| pages=256
| url=https://books.google.com/books?id=EIVdVtGHv-0C&dq=%22distributed+operating+system%22+%22single+system+image%22&pg=PA177
| url=https://books.google.com/books?id=EIVdVtGHv-0C&dq=%22distributed+operating+system%22+%22single+system+image%22&pg=PA177
}}</ref> The interest in SSI clusters is based on the perception that they may be simpler to use and administer than more specialized clusters.
}}</ref> The interest in SSI clusters is based on the perception that they may be simpler to use and administer than more specialized clusters.


Line 51: Line 50:


==Features of SSI clustering systems==
==Features of SSI clustering systems==
Different SSI systems may, depending on their intended usage, provide some subset of these features.
Different SSI systems may, depending on their intended usage, provide some subset of these features.


===Process migration===
===Process migration===
{{main|Process migration}}
{{main|Process migration}}
Many SSI systems provide [[process migration]].<ref name=Smith1988>{{citation
Many SSI systems provide [[process migration]].<ref name="Smith1988">{{citation
| last = Smith | first =  Jonathan M.
| last = Smith | first =  Jonathan M.
| year = 1988
| year = 1988
| title = A survey of process migration mechanisms
| title = A survey of process migration mechanisms
| journal = ACM SIGOPS Operating Systems Review
| journal = ACM SIGOPS Operating Systems Review
| volume = 22
| volume = 22
| issue =  3
| issue =  3
| pages = 28–40
| pages = 28–40
| doi = 10.1145/47671.47673
| doi = 10.1145/47671.47673
| url = http://www.cis.upenn.edu/~jms/svy-pm.pdf
| url = http://www.cis.upenn.edu/~jms/svy-pm.pdf
| citeseerx =  10.1.1.127.8095
| citeseerx =  10.1.1.127.8095
| s2cid = 6611633
| s2cid = 6611633
}}</ref>
}}</ref>
Processes may start on one [[Node (networking)|node]] and be moved to another node, possibly for [[Load balancing (computing)|resource balancing]] or administrative reasons.<ref group="note">for example it may be necessary to move long running processes off a node that is to be closed down for maintenance</ref> As processes are moved from one node to another, other associated resources (for example [[Inter-process communication|IPC]] resources) may be moved with them.
Processes may start on one [[Node (networking)|node]] and be moved to another node, possibly for [[Load balancing (computing)|resource balancing]] or administrative reasons.<ref group="note">for example it may be necessary to move long running processes off a node that is to be closed down for maintenance</ref> As processes are moved from one node to another, other associated resources (for example [[Inter-process communication|IPC]] resources) may be moved with them.


===Process checkpointing===
===Process checkpointing===
Some SSI systems allow [[Application checkpointing|checkpointing]] of running processes, allowing their current state to be saved and reloaded at a later date.<ref group="note">Checkpointing is particularly useful in clusters used for [[high-performance computing]], avoiding lost work in case of a cluster or node restart.</ref>
Some SSI systems allow [[Application checkpointing|checkpointing]] of running processes, allowing their current state to be saved and reloaded at a later date.<ref group="note">Checkpointing is particularly useful in clusters used for [[high-performance computing]], avoiding lost work in case of a cluster or node restart.</ref>
Checkpointing can be seen as related to migration, as migrating a process from one node to another can be implemented by first checkpointing the process, then restarting it on another node. Alternatively checkpointing can be considered as ''migration to disk''.
Checkpointing can be seen as related to migration, as migrating a process from one node to another can be implemented by first checkpointing the process, then restarting it on another node. Alternatively checkpointing can be considered as ''migration to disk''.


===Single process space===
===Single process space===
Line 81: Line 79:
Most SSI systems provide a single view of the file system. This may be achieved by a simple [[Network File System (protocol)|NFS]] server, shared disk devices or even file replication.
Most SSI systems provide a single view of the file system. This may be achieved by a simple [[Network File System (protocol)|NFS]] server, shared disk devices or even file replication.


The advantage of a single root view is that processes may be run on any available node and access needed files with no special precautions. If the cluster implements process migration a single root view enables direct accesses to the files from the node where the process is currently running.
The advantage of a single root view is that processes may be run on any available node and access needed files with no special precautions. If the cluster implements process migration a single root view enables direct accesses to the files from the node where the process is currently running.


Some SSI systems provide a way of "breaking the illusion", having some node-specific files even in a single root. [[Hewlett-Packard|HP]] [[TruCluster]] provides a "context dependent symbolic link" (CDSL) which points to different files depending on the node that accesses it. [[Hewlett-Packard|HP]] [[VMScluster]] provides a search list logical name with node specific files occluding cluster shared files where necessary. This capability may be necessary to deal with ''heterogeneous'' clusters, where not all nodes have the same configuration. In more complex configurations such as multiple nodes of multiple architectures over multiple sites, several local disks may combine to form the logical single root.
Some SSI systems provide a way of "breaking the illusion", having some node-specific files even in a single root. [[Hewlett-Packard|HP]] [[TruCluster]] provides a "context dependent symbolic link" (CDSL) which points to different files depending on the node that accesses it. [[Hewlett-Packard|HP]] [[VMScluster]] provides a search list logical name with node specific files occluding cluster shared files where necessary. This capability may be necessary to deal with ''heterogeneous'' clusters, where not all nodes have the same configuration. In more complex configurations such as multiple nodes of multiple architectures over multiple sites, several local disks may combine to form the logical single root.


===Single I/O space===
===Single I/O space===
Some SSI systems allow all nodes to access the I/O devices (e.g. tapes, disks, serial lines and so on) of other nodes. There may be some restrictions on the kinds of accesses allowed (For example, [[OpenSSI]] can't mount disk devices from one node on another node).
Some SSI systems allow all nodes to access the I/O devices (e.g. tapes, disks, serial lines and so on) of other nodes. There may be some restrictions on the kinds of accesses allowed (For example, [[OpenSSI]] can't mount disk devices from one node on another node).


===Single IPC space===
===Single IPC space===
Some SSI systems allow processes on different nodes to communicate using [[inter-process communication]]s mechanisms as if they were running on the same machine. On some SSI systems this can even include [[Shared memory (interprocess communication)|shared memory]] (can be emulated in software with [[distributed shared memory]]).
Some SSI systems allow processes on different nodes to communicate using [[inter-process communication]]s mechanisms as if they were running on the same machine. On some SSI systems this can even include [[Shared memory (interprocess communication)|shared memory]] (can be emulated in software with [[distributed shared memory]]).


In most cases inter-node IPC will be slower than IPC on the same machine, possibly drastically slower for shared memory. Some SSI clusters include special hardware to reduce this slowdown.
In most cases inter-node IPC will be slower than IPC on the same machine, possibly drastically slower for shared memory. Some SSI clusters include special hardware to reduce this slowdown.


===Cluster IP address===
===Cluster IP address===
Some SSI systems provide a "[[cluster IP]] address", a single address visible from outside the cluster that can be used to contact the cluster as if it were one machine. This can be used for load balancing inbound calls to the cluster, directing them to lightly loaded nodes, or for redundancy, moving the cluster address from one machine to another as nodes join or leave the cluster.<ref group=note>"leaving a cluster" is often a euphemism for crashing</ref>
Some SSI systems provide a "[[cluster IP]] address", a single address visible from outside the cluster that can be used to contact the cluster as if it were one machine. This can be used for load balancing inbound calls to the cluster, directing them to lightly loaded nodes, or for redundancy, moving the cluster address from one machine to another as nodes join or leave the cluster.<ref group="note">"leaving a cluster" is often a euphemism for crashing</ref>


==Examples==
==Examples==
Examples here vary from commercial platforms with scaling capabilities, to packages/frameworks for creating distributed systems, as well as those that actually implement a single system image.
Examples here vary from commercial platforms with scaling capabilities, to packages/frameworks for creating distributed systems, as well as those that actually implement a single system image.


{|class="wikitable sortable"
{|class="wikitable sortable"
|+SSI Properties of different clustering systems
|+SSI Properties of different clustering systems
|-
|-
!Name
!Name
![[#Process migration|Process migration]]
![[#Process migration|Process migration]]
![[#Process checkpointing|Process checkpoint]]
![[#Process checkpointing|Process checkpoint]]
![[#Single process space|Single process space]]
![[#Single process space|Single process space]]
![[#Single root|Single root]]
![[#Single root|Single root]]
![[#Single I/O space|Single I/O space]]
![[#Single I/O space|Single I/O space]]
![[#Single IPC space|Single IPC space]]
![[#Single IPC space|Single IPC space]]
![[#Cluster IP address|Cluster IP address]]<ref group="t">Many of the [[Linux]] based SSI clusters can use the [[Linux Virtual Server]] to implement a single cluster IP address</ref>  
![[#Cluster IP address|Cluster IP address]]<ref group="t">Many of the [[Linux]] based SSI clusters can use the [[Linux Virtual Server]] to implement a single cluster IP address</ref>
!Source Model
!Source Model
!Latest release date<ref group="t">Green means software is actively developed</ref>
!Latest release date<ref group="t">Green means software is actively developed</ref>
!Supported OS  
!Supported OS
|-
|-
|[[Amoeba distributed operating system|Amoeba]]<ref group="t">[[Amoeba distributed operating system|Amoeba]] development is carried forward by Dr. Stefan Bosse at [http://www.bsslab.de/english/index.html BSS Lab] {{webarchive|url=https://web.archive.org/web/20090203124419/http://bsslab.de/english/index.html |date=2009-02-03 }}</ref>
|[[Amoeba distributed operating system|Amoeba]]<ref group="t">[[Amoeba distributed operating system|Amoeba]] development is carried forward by Dr. Stefan Bosse at [http://www.bsslab.de/english/index.html BSS Lab] {{webarchive|url=https://web.archive.org/web/20090203124419/http://bsslab.de/english/index.html |date=2009-02-03 }}</ref>
| {{Yes}} <!-- Process migration -->
| {{Yes}} <!-- Process migration -->
| {{Yes}} <!-- Process checkpointing -->
| {{Yes}} <!-- Process checkpointing -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{Unk}} <!-- Single I/O space -->
| {{Unk}} <!-- Single I/O space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Single IPC space -->
| {{Unk}} <!-- Cluster IP address -->
| {{Unk}} <!-- Cluster IP address -->
| {{Yes|Open}} <!-- Source Model -->
| {{Yes|Open}} <!-- Source Model -->
| {{No|{{dts|1996|07|30}}}} <!-- Latest release date -->
| {{No|{{dts|1996|07|30}}}} <!-- Latest release date -->
| Native <!-- Supported OS -->
| Native <!-- Supported OS -->
|-
|-
|[[AIX]] [[Transparent Computing Facility|TCF]]
|[[AIX]] [[Transparent Computing Facility|TCF]]
| {{Unk}} <!-- Process migration -->
| {{Unk}} <!-- Process migration -->
| {{Unk}} <!-- Process checkpointing -->
| {{Unk}} <!-- Process checkpointing -->
| {{Unk}} <!-- Single process space -->
| {{Unk}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{Unk}} <!-- Single I/O space -->
| {{Unk}} <!-- Single I/O space -->
| {{Unk}} <!-- Single IPC space -->
| {{Unk}} <!-- Single IPC space -->
| {{Unk}} <!-- Cluster IP address -->
| {{Unk}} <!-- Cluster IP address -->
| {{No|Closed}} <!-- Source Model -->
| {{No|Closed}} <!-- Source Model -->
| {{No|{{dts|1990|03|30}}}}<ref>{{cite web|url=http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=OC&subtype=NA&htmlfid=897/ENUS5706-297&appname=totalstorage |title=AIX PS/2 OS}}</ref> <!-- Latest release date -->
| {{No|{{dts|1990|03|30}}}}<ref>{{cite web|url=http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=OC&subtype=NA&htmlfid=897/ENUS5706-297&appname=totalstorage |title=AIX PS/2 OS}}</ref> <!-- Latest release date -->
| [[AIX]] PS/2 1.2 <!-- Supported OS -->
| [[AIX]] PS/2 1.2 <!-- Supported OS -->
|-
|-
|[[NonStop (server computers)|NonStop Guardian]]<ref group="t">[[Guardian90 TR90.8]] Based on R&D by Tandem Computers c/o Andrea Borr at [https://www.hpl.hp.com/techreports/tandem/TR-90.8.pdf] </ref>
|[[NonStop (server computers)|NonStop Guardian]]<ref group="t">[[Guardian90 TR90.8]] Based on R&D by Tandem Computers c/o Andrea Borr at [https://www.hpl.hp.com/techreports/tandem/TR-90.8.pdf]</ref>
| {{Yes}}<!-- Process migration -->
| {{Yes}}<!-- Process migration -->
| {{Yes}} <!-- Process checkpointing -->
| {{Yes}} <!-- Process checkpointing -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Cluster IP address -->
| {{Yes}} <!-- Cluster IP address -->
| {{No|Closed}} <!-- Source Model -->
| {{No|Closed}} <!-- Source Model -->
| {{Yes|{{dts|2018||}}}} <!-- Latest release date -->
| {{Yes|{{dts|2018||}}}} <!-- Latest release date -->
| [[NonStop OS]] <!-- Supported OS -->
| [[NonStop OS]] <!-- Supported OS -->
|-
|-


|[[Inferno (operating system)|Inferno]]
|[[Inferno (operating system)|Inferno]]
| {{No}}<!-- Process migration -->
| {{No}}<!-- Process migration -->
| {{No}} <!-- Process checkpointing -->
| {{No}} <!-- Process checkpointing -->
| {{No}} <!-- Single process space -->
| {{No}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Single IPC space -->
| {{Unk}} <!-- Cluster IP address -->
| {{Unk}} <!-- Cluster IP address -->
| {{Yes|Open}} <!-- Source Model -->
| {{Yes|Open}} <!-- Source Model -->
| {{Yes|{{dts|2015|03|04}}}} <!-- Latest release date -->
| {{Yes|{{dts|2015|03|04}}}} <!-- Latest release date -->
| Native, [[Windows]], [[Irix]], [[Linux]], [[OS X]], [[FreeBSD]], [[Solaris (operating system)|Solaris]], [[Plan 9 from Bell Labs|Plan 9]] <!-- Supported OS -->
| Native, [[Windows]], [[Irix]], [[Linux]], [[OS X]], [[FreeBSD]], [[Solaris (operating system)|Solaris]], [[Plan 9 from Bell Labs|Plan 9]] <!-- Supported OS -->
|-
|-
|[[Kerrighed]]
|[[Kerrighed]]
| {{Yes}} <!-- Process migration -->
| {{Yes}} <!-- Process migration -->
| {{Yes}} <!-- Process checkpointing -->
| {{Yes}} <!-- Process checkpointing -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{Unk}} <!-- Single I/O space -->
| {{Unk}} <!-- Single I/O space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Single IPC space -->
| {{Unk}} <!-- Cluster IP address -->
| {{Unk}} <!-- Cluster IP address -->
| {{Yes|Open}} <!-- Source Model -->
| {{Yes|Open}} <!-- Source Model -->
| {{No|{{dts|2010|06|14}}}} <!-- Latest release date -->
| {{No|{{dts|2010|06|14}}}} <!-- Latest release date -->
| [[Linux]] 2.6.30 <!-- Supported OS -->
| [[Linux]] 2.6.30 <!-- Supported OS -->
|-
|-
|[[LinuxPMI]]<ref group="t">[[LinuxPMI]] is a successor to [[openMosix]]</ref>
|[[LinuxPMI]]<ref group="t">[[LinuxPMI]] is a successor to [[openMosix]]</ref>
| {{Yes}} <!-- Process migration -->
| {{Yes}} <!-- Process migration -->
| {{Yes}} <!-- Process checkpointing -->
| {{Yes}} <!-- Process checkpointing -->
| {{No}} <!-- Single process space -->
| {{No}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{No}} <!-- Single I/O space -->
| {{No}} <!-- Single I/O space -->
| {{No}} <!-- Single IPC space -->
| {{No}} <!-- Single IPC space -->
| {{Unk}} <!-- Cluster IP address -->
| {{Unk}} <!-- Cluster IP address -->
| {{Yes|Open}} <!-- Source Model -->
| {{Yes|Open}} <!-- Source Model -->
| {{No|{{dts|2006|06|18}}}} <!-- Latest release date -->
| {{No|{{dts|2006|06|18}}}} <!-- Latest release date -->
| [[Linux]] 2.6.17 <!-- Supported OS -->
| [[Linux]] 2.6.17 <!-- Supported OS -->
|-
|-
|[[LOCUS (operating system)|LOCUS]]<ref group="t">[[LOCUS (operating system)|LOCUS]] was used to create [[IBM]] [[AIX]] [[Transparent Computing Facility|TCF]]</ref>
|[[LOCUS (operating system)|LOCUS]]<ref group="t">[[LOCUS (operating system)|LOCUS]] was used to create [[IBM]] [[AIX]] [[Transparent Computing Facility|TCF]]</ref>
| {{Yes}} <!-- Process migration -->
| {{Yes}} <!-- Process migration -->
| {{Unk}} <!-- Process checkpointing -->
| {{Unk}} <!-- Process checkpointing -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes|Yes<ref group="t">[[LOCUS (operating system)|LOCUS]] used [[named pipes]] for IPC</ref>}} <!-- Single IPC space -->
| {{Yes|Yes<ref group="t">[[LOCUS (operating system)|LOCUS]] used [[named pipes]] for IPC</ref>}} <!-- Single IPC space -->
| {{Unk}} <!-- Cluster IP address -->
| {{Unk}} <!-- Cluster IP address -->
| {{No|Closed}} <!-- Source Model -->
| {{No|Closed}} <!-- Source Model -->
| {{No|{{dts|1988}}}} <!-- Latest release date -->
| {{No|{{dts|1988}}}} <!-- Latest release date -->
| Native <!-- Supported OS -->
| Native <!-- Supported OS -->
|-
|-
|[[MOSIX]]
|[[MOSIX]]
| {{Yes}} <!-- Process migration -->
| {{Yes}} <!-- Process migration -->
| {{Yes}} <!-- Process checkpointing -->
| {{Yes}} <!-- Process checkpointing -->
| {{No}} <!-- Single process space -->
| {{No}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{No}} <!-- Single I/O space -->
| {{No}} <!-- Single I/O space -->
| {{No}} <!-- Single IPC space -->
| {{No}} <!-- Single IPC space -->
| {{Unk}} <!-- Cluster IP address -->
| {{Unk}} <!-- Cluster IP address -->
| {{No|Closed}} <!-- Source Model -->
| {{No|Closed}} <!-- Source Model -->
| {{Yes|{{dts|2017|10|24}}}} <!-- Latest release date -->
| {{Yes|{{dts|2017|10|24}}}} <!-- Latest release date -->
| [[Linux]] <!-- Supported OS -->
| [[Linux]] <!-- Supported OS -->
|-
|-
|[[openMosix]]<ref group="t">[[openMosix]] was a fork of MOSIX</ref>
|[[openMosix]]<ref group="t">[[openMosix]] was a fork of MOSIX</ref>
| {{Yes}} <!-- Process migration -->
| {{Yes}} <!-- Process migration -->
| {{Yes}} <!-- Process checkpointing -->
| {{Yes}} <!-- Process checkpointing -->
| {{No}} <!-- Single process space -->
| {{No}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{No}} <!-- Single I/O space -->
| {{No}} <!-- Single I/O space -->
| {{No}} <!-- Single IPC space -->
| {{No}} <!-- Single IPC space -->
| {{Unk}} <!-- Cluster IP address -->
| {{Unk}} <!-- Cluster IP address -->
| {{Yes|Open}} <!-- Source Model -->
| {{Yes|Open}} <!-- Source Model -->
| {{No|{{dts|2004|12|10}}}} <!-- Latest release date -->
| {{No|{{dts|2004|12|10}}}} <!-- Latest release date -->
| [[Linux]] 2.4.26 <!-- Supported OS -->
| [[Linux]] 2.4.26 <!-- Supported OS -->
|-
|-
|[[Open-Sharedroot]]<ref group="t">[[Open-Sharedroot]] is a shared root Cluster from ATIX</ref>
|[[Open-Sharedroot]]<ref group="t">[[Open-Sharedroot]] is a shared root Cluster from ATIX</ref>
| {{No}} <!-- Process migration -->
| {{No}} <!-- Process migration -->
| {{No}} <!-- Process checkpointing -->
| {{No}} <!-- Process checkpointing -->
| {{No}} <!-- Single process space -->
| {{No}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{No}} <!-- Single I/O space -->
| {{No}} <!-- Single I/O space -->
| {{No}} <!-- Single IPC space -->
| {{No}} <!-- Single IPC space -->
| {{Yes}} <!-- Cluster IP address -->
| {{Yes}} <!-- Cluster IP address -->
| {{Yes|Open}} <!-- Source Model -->
| {{Yes|Open}} <!-- Source Model -->
| {{No|{{dts|2011|09|01}}}}<ref>{{cite web|url=https://github.com/Open-Sharedroot?tab=repositories |title=Open-Sharedroot GitHub repository|website=[[GitHub]]}}</ref> <!-- Latest release date -->
| {{No|{{dts|2011|09|01}}}}<ref>{{cite web|url=https://github.com/Open-Sharedroot?tab=repositories |title=Open-Sharedroot GitHub repository|website=[[GitHub]]}}</ref> <!-- Latest release date -->
| [[Linux]] <!-- Supported OS -->
| [[Linux]] <!-- Supported OS -->
|-
|-
|[[OpenSSI]]
|[[OpenSSI]]
| {{Yes}} <!-- Process migration -->
| {{Yes}} <!-- Process migration -->
| {{No}} <!-- Process checkpointing -->
| {{No}} <!-- Process checkpointing -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Cluster IP address -->
| {{Yes}} <!-- Cluster IP address -->
| {{Yes|Open}} <!-- Source Model -->
| {{Yes|Open}} <!-- Source Model -->
| {{No|{{dts|2010|02|18}}}} <!-- Latest release date -->
| {{No|{{dts|2010|02|18}}}} <!-- Latest release date -->
| [[Linux]] 2.6.10 ([[Debian]], [[Fedora (operating system)|Fedora]]) <!-- Supported OS -->
| [[Linux]] 2.6.10 ([[Debian]], [[Fedora (operating system)|Fedora]]) <!-- Supported OS -->
|-
|-
|[[Plan 9 from Bell Labs|Plan 9]]
|[[Plan 9 from Bell Labs|Plan 9]]
| {{No}}<ref>{{Citation
| {{No}}<ref>{{Citation
  | last1 = Pike | first1 = Rob
| last1 = Pike | first1 = Rob
  | last2 = Presotto | first2 = Dave
| last2 = Presotto | first2 = Dave
  | last3 = Thompson | first3 = Ken
| last3 = Thompson | first3 = Ken
  | last4 = Trickey | first4 = Howard
| last4 = Trickey | first4 = Howard
  | contribution = Plan 9 from Bell Labs
| contribution = Plan 9 from Bell Labs
  | series = In Proceedings of the Summer 1990 UKUUG Conference
| series = In Proceedings of the Summer 1990 UKUUG Conference
  | pages = 8
| pages = 8
  | year = 1990
| year = 1990
  | quote = Process migration is also deliberately absent from Plan 9.
| quote = Process migration is also deliberately absent from Plan 9.
  }}</ref> <!-- Process migration -->
}}</ref> <!-- Process migration -->
| {{No}} <!-- Process checkpointing -->
| {{No}} <!-- Process checkpointing -->
| {{No}} <!-- Single process space -->
| {{No}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Cluster IP address -->
| {{Yes}} <!-- Cluster IP address -->
| {{Yes|Open}} <!-- Source Model -->
| {{Yes|Open}} <!-- Source Model -->
| {{Yes|{{dts|2015|01|09}}}} <!-- Latest release date -->
| {{Yes|{{dts|2015|01|09}}}} <!-- Latest release date -->
| Native <!-- Supported OS -->
| Native <!-- Supported OS -->
|-
|-
|[[Sprite operating system|Sprite]]
|[[Sprite operating system|Sprite]]
| {{Yes}} <!-- Process migration -->
| {{Yes}} <!-- Process migration -->
| {{Unk}} <!-- Process checkpointing -->
| {{Unk}} <!-- Process checkpointing -->
| {{No}} <!-- Single process space -->
| {{No}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single I/O space -->
| {{No}} <!-- Single IPC space -->
| {{No}} <!-- Single IPC space -->
| {{Unk}} <!-- Cluster IP address -->
| {{Unk}} <!-- Cluster IP address -->
| {{Yes|Open}} <!-- Source Model -->
| {{Yes|Open}} <!-- Source Model -->
| {{No|{{dts|1992}}}} <!-- Latest release date -->
| {{No|{{dts|1992}}}} <!-- Latest release date -->
| Native <!-- Supported OS -->
| Native <!-- Supported OS -->
|-
|-
|[[TidalScale]]
|[[TidalScale]]
| {{Yes}}<!-- Process migration -->
| {{Yes}}<!-- Process migration -->
| {{No}} <!-- Process checkpointing -->
| {{No}} <!-- Process checkpointing -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Cluster IP address -->
| {{Yes}} <!-- Cluster IP address -->
| {{No|Closed}} <!-- Source Model -->
| {{No|Closed}} <!-- Source Model -->
| {{Yes|{{dts|2020|08|17}}}} <!-- Latest release date -->
| {{Yes|{{dts|2020|08|17}}}} <!-- Latest release date -->
| [[Linux]], [[FreeBSD]] <!-- Supported OS -->
| [[Linux]], [[FreeBSD]] <!-- Supported OS -->
|-
|-
|[[TruCluster]]
|[[TruCluster]]
| {{No}} <!-- Process migration -->
| {{No}} <!-- Process migration -->
| {{Unk}} <!-- Process checkpointing -->
| {{Unk}} <!-- Process checkpointing -->
| {{No}} <!-- Single process space -->
| {{No}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{No}} <!-- Single I/O space -->
| {{No}} <!-- Single I/O space -->
| {{No}} <!-- Single IPC space -->
| {{No}} <!-- Single IPC space -->
| {{Yes}} <!-- Cluster IP address -->
| {{Yes}} <!-- Cluster IP address -->
| {{No|Closed}} <!-- Source Model -->
| {{No|Closed}} <!-- Source Model -->
| {{No|{{dts|2010|10|1}}}} <!-- Latest release date -->
| {{No|{{dts|2010|10|1}}}} <!-- Latest release date -->
| [[Tru64]] <!-- Supported OS -->
| [[Tru64]] <!-- Supported OS -->
|-
|-
|[[VMScluster]]
|[[VMScluster]]
| {{No}} <!-- Process migration -->
| {{No}} <!-- Process migration -->
| {{No}} <!-- Process checkpointing -->
| {{No}} <!-- Process checkpointing -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Cluster IP address -->
| {{Yes}} <!-- Cluster IP address -->
| {{No|Closed}} <!-- Source Model -->
| {{No|Closed}} <!-- Source Model -->
| {{Yes|{{dts|2024|11|20}}}} <!-- Latest release date -->
| {{Yes|{{dts|2024|11|20}}}} <!-- Latest release date -->
| [[OpenVMS]] <!-- Supported OS -->
| [[OpenVMS]] <!-- Supported OS -->
|-
|-
|[[z/VM]]
|[[z/VM]]
| {{Yes}} <!-- Process migration -->
| {{Yes}} <!-- Process migration -->
| {{No}} <!-- Process checkpointing -->
| {{No}} <!-- Process checkpointing -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single process space -->
| {{No}} <!-- Single root -->
| {{No}} <!-- Single root -->
| {{No}} <!-- Single I/O space -->
| {{No}} <!-- Single I/O space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Single IPC space -->
| {{Unk}} <!-- Cluster IP address -->
| {{Unk}} <!-- Cluster IP address -->
| {{No|Closed}} <!-- Source Model -->
| {{No|Closed}} <!-- Source Model -->
| {{Yes|{{dts|2022|09|16}}}} <!-- Latest release date -->
| {{Yes|{{dts|2022|09|16}}}} <!-- Latest release date -->
| Native <!-- Supported OS -->
| Native <!-- Supported OS -->
|-
|-
|[[UnixWare NonStop Clusters]]<ref group="t">[[UnixWare NonStop Clusters]] was a base for [[OpenSSI]]</ref>
|[[UnixWare NonStop Clusters]]<ref group="t">[[UnixWare NonStop Clusters]] was a base for [[OpenSSI]]</ref>
| {{Yes}} <!-- Process migration -->
| {{Yes}} <!-- Process migration -->
| {{No}} <!-- Process checkpointing -->
| {{No}} <!-- Process checkpointing -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single process space -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single root -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single I/O space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Single IPC space -->
| {{Yes}} <!-- Cluster IP address -->
| {{Yes}} <!-- Cluster IP address -->
| {{No|Closed}} <!-- Source Model -->
| {{No|Closed}} <!-- Source Model -->
| {{No|{{dts|2000|6|}}}} <!-- Latest release date -->
| {{No|{{dts|2000|6|}}}} <!-- Latest release date -->
| [[UnixWare]] <!-- Supported OS -->
| [[UnixWare]] <!-- Supported OS -->
|}  
|}
<references group="t"/>
<references group="t"/>



Latest revision as of 06:01, 13 June 2025

Template:Short description In distributed computing, a single system image (SSI) cluster is a cluster of machines that appears to be one single system.[1][2][3] The concept is often considered synonymous with that of a distributed operating system,[4][5] but a single image may be presented for more limited purposes, just job scheduling for instance, which may be achieved by means of an additional layer of software over conventional operating system images running on each node.[6] The interest in SSI clusters is based on the perception that they may be simpler to use and administer than more specialized clusters.

Different SSI systems may provide a more or less complete illusion of a single system.

Features of SSI clustering systems

Different SSI systems may, depending on their intended usage, provide some subset of these features.

Process migration

Script error: No such module "Labelled list hatnote". Many SSI systems provide process migration.[7] Processes may start on one node and be moved to another node, possibly for resource balancing or administrative reasons.[note 1] As processes are moved from one node to another, other associated resources (for example IPC resources) may be moved with them.

Process checkpointing

Some SSI systems allow checkpointing of running processes, allowing their current state to be saved and reloaded at a later date.[note 2] Checkpointing can be seen as related to migration, as migrating a process from one node to another can be implemented by first checkpointing the process, then restarting it on another node. Alternatively checkpointing can be considered as migration to disk.

Single process space

Some SSI systems provide the illusion that all processes are running on the same machine - the process management tools (e.g. "ps", "kill" on Unix like systems) operate on all processes in the cluster.

Single root

Most SSI systems provide a single view of the file system. This may be achieved by a simple NFS server, shared disk devices or even file replication.

The advantage of a single root view is that processes may be run on any available node and access needed files with no special precautions. If the cluster implements process migration a single root view enables direct accesses to the files from the node where the process is currently running.

Some SSI systems provide a way of "breaking the illusion", having some node-specific files even in a single root. HP TruCluster provides a "context dependent symbolic link" (CDSL) which points to different files depending on the node that accesses it. HP VMScluster provides a search list logical name with node specific files occluding cluster shared files where necessary. This capability may be necessary to deal with heterogeneous clusters, where not all nodes have the same configuration. In more complex configurations such as multiple nodes of multiple architectures over multiple sites, several local disks may combine to form the logical single root.

Single I/O space

Some SSI systems allow all nodes to access the I/O devices (e.g. tapes, disks, serial lines and so on) of other nodes. There may be some restrictions on the kinds of accesses allowed (For example, OpenSSI can't mount disk devices from one node on another node).

Single IPC space

Some SSI systems allow processes on different nodes to communicate using inter-process communications mechanisms as if they were running on the same machine. On some SSI systems this can even include shared memory (can be emulated in software with distributed shared memory).

In most cases inter-node IPC will be slower than IPC on the same machine, possibly drastically slower for shared memory. Some SSI clusters include special hardware to reduce this slowdown.

Cluster IP address

Some SSI systems provide a "cluster IP address", a single address visible from outside the cluster that can be used to contact the cluster as if it were one machine. This can be used for load balancing inbound calls to the cluster, directing them to lightly loaded nodes, or for redundancy, moving the cluster address from one machine to another as nodes join or leave the cluster.[note 3]

Examples

Examples here vary from commercial platforms with scaling capabilities, to packages/frameworks for creating distributed systems, as well as those that actually implement a single system image.

SSI Properties of different clustering systems
Name Process migration Process checkpoint Single process space Single root Single I/O space Single IPC space Cluster IP address[t 1] Source Model Latest release date[t 2] Supported OS
Amoeba[t 3] Yes Yes Yes Yes Template:Unk Yes Template:Unk Open Template:Dts Native
AIX TCF Template:Unk Template:Unk Template:Unk Yes Template:Unk Template:Unk Template:Unk Closed Template:Dts[8] AIX PS/2 1.2
NonStop Guardian[t 4] Yes Yes Yes Yes Yes Yes Yes Closed Template:Dts NonStop OS
Inferno No No No Yes Yes Yes Template:Unk Open Template:Dts Native, Windows, Irix, Linux, OS X, FreeBSD, Solaris, Plan 9
Kerrighed Yes Yes Yes Yes Template:Unk Yes Template:Unk Open Template:Dts Linux 2.6.30
LinuxPMI[t 5] Yes Yes No Yes No No Template:Unk Open Template:Dts Linux 2.6.17
LOCUS[t 6] Yes Template:Unk Yes Yes Yes Yes[t 7] Template:Unk Closed Template:Dts Native
MOSIX Yes Yes No Yes No No Template:Unk Closed Template:Dts Linux
openMosix[t 8] Yes Yes No Yes No No Template:Unk Open Template:Dts Linux 2.4.26
Open-Sharedroot[t 9] No No No Yes No No Yes Open Template:Dts[9] Linux
OpenSSI Yes No Yes Yes Yes Yes Yes Open Template:Dts Linux 2.6.10 (Debian, Fedora)
Plan 9 No[10] No No Yes Yes Yes Yes Open Template:Dts Native
Sprite Yes Template:Unk No Yes Yes No Template:Unk Open Template:Dts Native
TidalScale Yes No Yes Yes Yes Yes Yes Closed Template:Dts Linux, FreeBSD
TruCluster No Template:Unk No Yes No No Yes Closed Template:Dts Tru64
VMScluster No No Yes Yes Yes Yes Yes Closed Template:Dts OpenVMS
z/VM Yes No Yes No No Yes Template:Unk Closed Template:Dts Native
UnixWare NonStop Clusters[t 10] Yes No Yes Yes Yes Yes Yes Closed Template:Dts UnixWare
  1. Many of the Linux based SSI clusters can use the Linux Virtual Server to implement a single cluster IP address
  2. Green means software is actively developed
  3. Amoeba development is carried forward by Dr. Stefan Bosse at BSS Lab Template:Webarchive
  4. Guardian90 TR90.8 Based on R&D by Tandem Computers c/o Andrea Borr at [1]
  5. LinuxPMI is a successor to openMosix
  6. LOCUS was used to create IBM AIX TCF
  7. LOCUS used named pipes for IPC
  8. openMosix was a fork of MOSIX
  9. Open-Sharedroot is a shared root Cluster from ATIX
  10. UnixWare NonStop Clusters was a base for OpenSSI

See also

Notes

  1. for example it may be necessary to move long running processes off a node that is to be closed down for maintenance
  2. Checkpointing is particularly useful in clusters used for high-performance computing, avoiding lost work in case of a cluster or node restart.
  3. "leaving a cluster" is often a euphemism for crashing

References

Template:Reflist

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. Script error: No such module "citation/CS1".
  7. Script error: No such module "citation/CS1".
  8. Script error: No such module "citation/CS1".
  9. Script error: No such module "citation/CS1".
  10. Script error: No such module "citation/CS1".