分散コンピューティングにおいて、単一システムイメージ( SSI ) クラスタは、1 つの単一システムのように見えるマシンのクラスタです。 [1] [2] [3]この概念は、分散オペレーティングシステムの概念と同義であると考えられることがよくありますが、[4] [5]単一イメージは、各ノードで実行される従来のオペレーティングシステムイメージの上にソフトウェアの追加レイヤーを追加することで実現できるジョブスケジューリングなど、より限定された目的で使用されることもあります。[6] SSI クラスタが注目されているのは、より特化したクラスタよりも使用と管理が簡単であるという認識に基づいています。
異なる SSI システムにより、単一のシステムで あるかのような錯覚が生じることがあります。
さまざまな SSI システムは、その使用目的に応じて、これらの機能のサブセットを提供する場合があります。
多くのSSIシステムはプロセスマイグレーション機能を提供しています。[7] プロセスは、あるノードで開始され、リソースのバランス調整や管理上の理由などにより、別のノードに移動されることがあります。[注 1]プロセスが1つのノードから別のノードに移動されると、関連する他のリソース( IPCリソースなど)も一緒に移動されることがあります。
一部のSSIシステムでは、実行中のプロセスのチェックポイント機能が提供されており、現在の状態を保存して後日再読み込みすることができます。[注 2] チェックポイント機能は移行と関連していると考えられます。あるノードから別のノードへのプロセスの移行は、まずプロセスのチェックポイント機能を実行し、次に別のノードでプロセスを再起動することで実現できます。あるいは、チェックポイント機能はディスクへのマイグレーションと見なすこともできます。
一部の SSI システムでは、すべてのプロセスが同じマシン上で実行されているという錯覚が生じます。プロセス管理ツール ( Unix系システムの「ps」、「kill」など) は、クラスター内のすべてのプロセスに対して動作します。
ほとんどのSSIシステムは、ファイルシステムの単一ビューを提供します。これは、単純なNFSサーバー、共有ディスクデバイス、あるいはファイルレプリケーションによって実現できます。
シングルルートビューの利点は、プロセスを任意の利用可能なノードで実行し、特別な注意を払うことなく必要なファイルにアクセスできることです。クラスターがプロセスマイグレーションを実装している場合、シングルルートビューを使用すると、プロセスが現在実行されているノードからファイルに直接アクセスできます。
一部のSSIシステムでは、単一ルートであってもノード固有のファイルを持つという「幻想を打ち破る」手段を提供しています。HP TruClusterは、 「コンテキスト依存シンボリックリンク」(CDSL)を提供し、アクセスするノードに応じて異なるファイルを参照します。HP VMSclusterは、必要に応じてクラスタ共有ファイルを隠蔽するノード固有のファイルを含む検索リスト論理名を提供します。この機能は、すべてのノードが同じ構成ではない異種クラスタを扱うために必要となる場合があります。複数のサイトにまたがる複数アーキテクチャの複数ノードなどのより複雑な構成では、複数のローカルディスクが結合されて論理的な単一ルートを形成する場合があります。
一部のSSIシステムでは、すべてのノードが他のノードのI/Oデバイス(テープ、ディスク、シリアル回線など)にアクセスできます。ただし、許可されるアクセスの種類には制限がある場合があります(例えば、OpenSSIでは、あるノードのディスクデバイスを別のノードにマウントすることはできません)。
一部のSSIシステムでは、異なるノード上のプロセスが、あたかも同一マシン上で実行されているかのように、プロセス間通信メカニズムを用いて通信できます。一部のSSIシステムでは、共有メモリも含まれる場合があります(分散共有メモリを用いてソフトウェアでエミュレートできます)。
ほとんどの場合、ノード間IPCは同一マシン上のIPCよりも遅く、共有メモリの場合は大幅に遅くなる可能性があります。一部のSSIクラスタには、この速度低下を軽減するための特別なハードウェアが搭載されています。
一部のSSIシステムは「クラスタIPアドレス」を提供します。これは、クラスタの外部から参照できる単一のアドレスであり、クラスタを1台のマシンのように扱うために使用できます。これは、クラスタへの着信コールを負荷分散し、負荷の低いノードに転送したり、冗長性を確保するために、ノードがクラスタに参加または離脱する際にクラスタアドレスをあるマシンから別のマシンに移動したりするために使用できます。[注 3]
ここでの例は、スケーリング機能を備えた商用プラットフォームから、分散システムを作成するためのパッケージ/フレームワーク、さらには単一のシステム イメージを実際に実装するものまで多岐にわたります。
{{citation}}: CS1 メンテナンス: 場所の発行元が見つかりません (リンク)
プロセス移行も Plan 9 では意図的に省略されています。
{{citation}}:欠落または空|title=(ヘルプ)