キャリアグレードLinuxの、"Carrier Grade Linux Clustering Requirements Definition Version 3.1"では、クラスタリングに関する要求仕様を定義しています。
以下が要求仕様です。(工事中。随時追加予定)
表面的に訳しただけの所も多いので、そのうち解説を書くつもりです。
SA forum AISとあるのは、SA forumのApplication Interface Specificationで定義されている機能です。
4 Clustering Requirements
4.1 Service Availability Forum API
CMS.1.0 Cluster Membership Service (SA Forum AIS)
クラスタノードとクラスタのメンバに関する情報を得る手段を提供し、クラスタのメンバが変わった場合に通知を受取ることを可能とする。
CES.1.0 Cluster Event Service (SA Forum AIS)
publisher/subscriber間の非同期通信が可能なイベントチャネルのコンセプトに基づく通信サービス。
プロセスがpublishしたイベントは、イベントチャネルにsubscribeしているクラスタ内のどのプロセスにも送られる。これは、ノード間、プロセス間通信を意味する。
CCS.1.0 Cluster Checkpoint Service (SA Forum AIS)
チェックポイント機能。
故障からのリカバリーにおいて、チェックポイントサービスは以前のチェックポイントデータから回復し、故障する前に記録された状態から実行を再開する。
チェックポイント情報はメモリ上に格納され、チェックポイントデータは複数のクラスタノードに複写される。
CLS.1.0 Cluster Lock Service (SA Forum AIS)
異なったノードのプロセスが共用リソースのアクセスで競合するクラスタに適した分散ロックサービス。
分散ロックマネージャーの使用で利益があるアプリケーションとサービスは、データベースやファイルシステム、リソースコントローラー/マネージャーのようにトランザクション指向のものである。
CAF.1.0 Cluster Availability Framework (SA Forum AIS)
可用性管理フレームワークは、SA対応したアプリケーションに以下の機能を提供する。
- 登録と登録の削除
- 状態の監視
- 可用性管理
- グループ管理
- エラーレポート
4.2 機能要件
CFH.1.0 Cluster Node Failure Detection
クラスタメンバーシップサービスと連動した、高速でコミュニケーションベースのクラスタノード故障機構。
最低限、クラスタノード故障機構は現在クラスタ内でアクティブなノードの一覧を保持する。
クラスタのメンバーシップの変更は、メンバーシップイベントの通知のために登録されているクラスタサービス、アプリケーション、ミドルウェアによって監視されるメンバーシップイベントが発生する。
高速なノード故障検出は、ノードが故障していると報告している故障ノードに依存してはならない。ただし、自己診断はクラスタ内で故障検出を迅速に行う役に立つかも知れない。
この要求は、共用リソースへのアクセスからのノード故障を以下に予防するかの問題(CFH.3.0 Application Fail-Over Enabling)には関係しない。
高速ノード故障検出は以下の能力を含む。
- クラスタ通信機構を通じたクラスタのメンバーの状態監視能力
- クラスタノードの状態をチェックするための複数の冗長通信パスのサポート
- 高速な故障検出のサポート。ガイドラインでは故障検出が最大250ms。高速な故障検出と潜在的な偽の故障はトレードオフであるため、状態監視間隔はチューナブルでなければならない。
- クラスタメンバーの変更イベントをミドルウェアとアプリケーションに提供する能力
CFH.2.0 Prevent Failed Node From Corrupting Shared Resources
故障したノードを強制停止することなどにより共用リソースを保護する。
CFH.3.0 Application Fail-Over Enabling
アプリケーションのフェイルオーバーを可能とする。
CSM.1.0 Storage Network Replication
以下をサポートするストレージネットワークレプリケーション。
- 複数ノードのデータのレプリケーションのためにクラスタのローカルネットワークを使用する、RAID-1ライクなディスクミラーリングを可能とするネットワークレプリケーションレイヤー。
- ノード故障の後のレプリケートデータの複数ノードでの再同期と、レプリケートデータが再同期する間でも利用可能であるようなリカバリー。
CSM.2.0 Cluster-aware Volume Management for Shared Storage
クラスタ対応された共用ストレージのボリューム管理
- ボリューム定義が変更されたらリモートノードに通知される
- クラスタワイドでボリューム名が一貫していて不整合にならない
- 異なるクラスタノードからのボリューム管理が一貫している
- ストレージのストライピングとコンカチネートがサポートされている。共用ストレージのクラスタミラーは、この要求には含めない。(CSM3.0 Shared Strage Mirroring参照)
CSM.3.0 Shared Storage Mirroring
共用ストレージのクラスタワイドのデータミラー。
この共用ストレージにアクセスする各ノードはミラー化されたストレージの同じビューを持つ。共用ストレージは各ラスタのどのノードからも管理可能。これはハードRAIDでもソフトRAIDでもよい。
CSM.4.0 Redndant Cluster Storage Path
ストレージへの冗長パス。
CGL Availability Requirement: AVL.7.1 Multi-Path Access To Storageと同じ。
CSM.6.0 Cluster File System
複数のノードから同時にアクセスできる共用ファイルシステム。ノード故障はすべてのノードで透過的でなければならない。ユーザーAPIとセマンティクスは通常のファイルシステムと同じでなければならない。
CCM.2 Cluster Communication Service
信頼でき高スループットなプロセス間、プロセッサー間通信。
このサービスはクラスタの通信基盤を提供し、プラットフォーム無依存でスケーラブルな高可用性高性能な分散通信アプリケーションを設計可能とする。
CCM.2.1 Cluster Communication Service - Logical Addressing
point-to-pointとmultipoint通信のための論理アドレッシングを提供するソケットベースのクラスタ通信サービス。
CCM.2.2 Cluster Communication Service - Fault Handling
コネクションの故障を検出、切断し、故障を通知する高信頼な通信サービス。
確立したコネクションはプロセスやノードのクラッシュのようなどのようなサービス故障に対しても250ms以内にアプリケーションに問題を報告する。
コネクション故障検出はクラスタに合わせて設定可能でなければならない。
CCM.3.0 Redundant Cluster Communication Path
クラスタノード間の冗長化された通信パス。アプリケーションに対しては一つに見える。
これは、CGL Availability Requirement: AVL.7.3 Redundant Communication Pathsに対応する。
CAF.2 Highly Available Network
ステートフルなネットワークとセッションのフェイルオーバー。
(つまりコネクション自体を透過的にフェイルオーバーさせろと言っている)
CAF.2.1 Ethernet MAC Address Takeover
MACアドレス引き継ぎ。
CAF.2.2 IP Takeover
IPアドレス引き継ぎ。
CCS.2.0 SAF-AIS Data Checkpointing Performance
SA Forum AISのチェックポインティングサービス。
ただし、毎秒500回、API1個あたり最低限2048バイトに耐えられなければならない。
CMS.2.0 Dynamic Cluster Membership
事前の設定無しに動的にクラスタノードが追加できること。
4.3 クラスタ管理
CMON.1 Cluster Node Monitoring
クラスタの全ノードの可用性の監視を管理コンソールで出来ること。
CMON.1.1 Cluster Node HW Status Monitoring
クラスタノードのハードウェア故障から隔離された管理コンソール。
CGL Standards Requirements DefinitionのSTD.8.8 SA Forum HPIに対応する。
CMON.1.2 Cluster Events for Node Status Changes
クラスタのメンバーシップの変更があった場合に管理コンソールから検出できること。
CMON.1.3 Cluster-Wide Resource Monitor
集中してクラスタリソースにアクセスでき、全クラスタの性能の分析が容易に出来、統計情報が採取できること。
CDIAG.2 Cluster-Wide Diagnostic Info
core dumpやcrash dumpのような診断情報を生成・収集するクラスタ対応された機構。
CDIAG.2.1 Cluster-Wide Identified Application Core Dump
core dumpが生成されたノードが一意に識別できる、クラスタ対応されたアプリケーションcore dump。
例えば、ディスクレスノードのダンプをネットワークストレージに格納し、どのノードのものか識別できること。
CDIAG.2.2 Cluster-Wide Kernel Crash Dump
crash dumpが(以下同文)
CDIAG.2.3 Cluster-Wide Log Collection
ロギングが(以下同文)
CDIAG.2.4 Synchronized/Atomic Time Across Cluster
500ms以内の時刻同期機構。時刻同期サービスが開始して10秒以内に同期すること。
5 Clustering Roadmap
5.1 Service Availability Forum API
CCM.1.0 Cluster Message Service (SA Forum AIS)
SAF-AISメッセージサービス。
5.2 機能要件
CSM.5.0 Cluster Synchronized Device Hotswap
クラスタ内で共用装置の活性挿抜。
CSM.7.0 Shared Storage Consistent Access
パーティションが他のノードで使われている時には、パーティション情報の変更が出来ないような共用ストレージの一貫性の維持。
CCM.2 Cluster Communication Service
信頼でき高スループットなプロセス間、プロセッサー間通信。
このサービスはクラスタの通信基盤を提供し、プラットフォーム無依存でスケーラブルな高可用性高性能な分散通信アプリケーションを設計可能とする。
CCM.2.3 Cluster Communication Service - Quality of Service
コネクションモードでレプリケートなしで、不正になることが無く、損失がないメッセージ配布のシーケンスを保証する。
CCM.2.4 Cluster Communication Service - Performance
スループットとレイテンシーにおいて、TCPよりも高速なクラスタ間通信。
CCM.2.5 Cluster Communication Service - Event Notification
プロセス間通信(IPC)に中継することが出来る高信頼な通信サービス。
CCM.4 Group Messaging Protocol
グループへのメッセージの送信、グループ内のメッセージの受信、グループメンバーシップの変更の受信が可能で、配布が保証されているグループメッセージングプロトコル。
CCM.4.1 Group Messaging Agreed Ordering
すべてのメンバーが同じ順序でメッセージを受取ることが出来るようなグループメッセージングプロトコル。
CCM.4.2 Group Messaging Safe Ordering
すべてのグループメンバーや非グループメンバーが同じ順序でメッセージを受取ることができるグループメッセージングプロトコル。
CCM.4.3 Group Messaging Membership Delivery Guarantee
すべてのメッセージとメンバーシップの変更がすべてのクラスタメンバーに配布されるグループメッセージングプロトコル。
CMS.3.0 Single Node Multiple Clusters
自分自身のクラスタメンバーとなり、クラスタの複数のインスタンスの一部となる能力。
CAF.2 Highly Available Network
Requirement参照。
CAF.2.3 Deliberate TCP Session Takeover
TCPセッションを待機ノードに切替えるための、TCPソケット、バッファ構造、シーケンス番号の同期機構。
CAF.2.4 TCP Session Takeover on Node Failure
CPU、メモリ、カーネルのような致命的なリソースのフェイルによりTCPセッションを切替えるためのTCPソケット、バッファ構造、シーケンス番号の同期機構。
5.3 クラスタ管理
CMON.1 Cluster Node Monitoring
Requirement参照。
CMON.1.4 Cluster-Wide Application Monitor
クラスタ内のアプリケーションを監視する手段。
これはクラスタ内で動作するアプリケーションをオンデマンドでチェックし、アプリケーションが故障していたなら管理者が指定していたアクションを実行する。
CCON.1 Management Control
診断の実行、ソフトウェアのアップデート、クラスタノードのリブートなどの管理をリモートから実行できる管理コンソール。
CCON.1.1 Run Diagnostics
クラスタノードの診断をリモートから実行できる管理コンソール。
CCON.1.2 Boot/Reboot nodes
クラスタ内のどのノードでも起動・再起動できる管理コンソール。
CGL STD.8.8 SA Forum HPIに対応する。
CCON.1.3 SW Upgrades
ノード上のソフトウェアのアップグレードをリモートから実行できる管理コンソール。
CCON.1.4 SW Rolling Upgrades
クラスタが動作したままの、クラスタ内のノードのアップグレード。
CDIAG.1 Online Diagnostics
クラスタ内のノードのオンライン診断をリモートから実行できる機能。
CDIAG.1.1 Online Diagnostics for Fans and Power Supplies
ファン、冗長電源ユニットのオンライン診断。
CDIAG.1.2 Online Diagnostics for System Components
CPU、メモリ、インタフェースカード、ディスクなどのシステムコンポーネントのオンライン診断。