この節では、Sun Cluster Geographic Edition ソフトウェアによって管理されるアプリケーションを作成する際に必要なガイドラインを説明します。
Sun Cluster Geographic Edition ソフトウェアによって管理されるアプリケーションを作成する前に、アプリケーションが高可用性またはスケーラビリティーを備えるための次の要件を満たしているかどうかを判断してください。
アプリケーションが一部の要件を満たしていない場合は、アプリケーションの可用性とスケーラビリティーを高めるようにアプリケーションのソースコードを変更して対応することがあります。
Sun Cluster Geographic Edition 環境では、ネットワーク対応 (クライアントサーバーモデル) とネットワーク非対応 (クライアントレス) のアプリケーションはどちらも、高可用性またはスケーラビリティーを備えることが可能です。ただし、タイムシェアリング環境では、アプリケーションは サーバー上で動作し、telnet または rlogin 経由でアクセスされるため、Sun Cluster Geographic Edition は可用性を強化することはできません。
アプリケーションはクラッシュに対する耐障害性 (クラッシュトレラント) を備えていなければなりません。つまり、ノードが予期せぬ停止状態になった後、アプリケーションは再起動時に必要なディスクデータを復元できなければなりません。さらに、クラッシュ後の復元時間にも制限が課せられます。ディスクを復元し、アプリケーションを再起動できる能力は、データの整合性に関わる問題であるため、クラッシュトレラントであることは、アプリケーションが高可用性を備えるための前提条件となります。データサービスは接続を復元できる必要はありません。
アプリケーションは、自身が動作するノードの物理ホスト名に依存してはなりません。
アプリケーションは、複数の IP アドレスが「起動」状態になるよう構成されている環境で正しく動作する必要があります。たとえば、ノードが複数のパブリックネットワーク上に存在する多重ホームホスト環境や、単一のハードウェアインタフェース上に複数の論理インタフェースが「起動」状態になるよう構成されているノードが存在する環境があります。
アプリケーションのバイナリとライブラリは、ローカルの各ノードまたはクラスタファイルシステムに格納できます。クラスタファイルシステム上に格納する利点は、1 箇所にインストールするだけで済む点です。難点は、Sun Cluster ソフトウェアに対して順次アップグレードを使用する際、アプリケーションがリソースグループマネージャー (RGM) の制御下で実行されている間バイナリが使用中になることです。
初回の照会がタイムアウトした場合、クライアントは自動的に照会を再試行できる必要があります。アプリケーションとプロトコルがすでに単一サーバーのクラッシュと再起動に対応できている場合、関連するリソースグループのフェイルオーバーまたはスイッチオーバーにも対応します。
アプリケーションは、クラスタファイルシステム内で UNIX® ドメインソケットまたは名前付きパイプを使用してはなりません。
スケーラブルサービスを実現するためには、前に示した高可用性の要件をすべて満たした上で、次に示す追加要件も満たしている必要があります。
アプリケーションは、複数のインスタンスを実行でき、すべてのインスタンスがクラスタファイルシステム内の同じアプリケーションデータを処理できる必要があります。
アプリケーションは、複数のノードからの同時アクセスに対してデータの整合性を保証する必要があります。
アプリケーションは、クラスタファイルシステムのように、広域的に使用可能な機構を備えたロック機能を実装している必要があります。
スケーラブルサービスの場合、アプリケーションの特性により負荷均衡ポリシーが決定されます。たとえば、負荷均衡ポリシー Lb_weighted は、任意のインスタンスがクライアントの要求に応答できるポリシーですが、クライアント接続にサーバー上のメモリー内キャッシュを使用するアプリケーションには適用されません。この場合、特定のクライアントのトラフィックをアプリケーションの 1 つのインスタンスに制限する負荷均衡ポリシーを指定する必要があります。負荷均衡ポリシー Lb_sticky と Lb_sticky_wild は、クライアントからのすべての要求を同じアプリケーションインスタンスに繰り返して送信します。この場合、そのアプリケーションはメモリー内キャッシュを使用できます。異なるクライアントから複数のクライアント要求が送信された場合、RGM はサービスの複数のインスタンスに要求を分配します。
スケーラブルデータサービス用の負荷均衡ポリシーの設定については、『Sun Cluster データサービス開発ガイド (Solaris OS 版)』の第 2 章「データサービスの開発」を参照してください。
アプリケーションはデータ複製に関する次の要件を満たす必要があります。
複製される情報はホスト固有またはクラスタ固有であってはいけません。
アプリケーションがリモートサイトにフェイルオーバーするときに、アプリケーションが別のIPアドレスのホスト上で動作する可能性があります。クライアントノードがリモートサイトを見つけることができるように、Sun Cluster Geographic Edition のアクションスクリプトを使用して DNS/NIS マッピングを更新してください。
アプリケーションでデータ喪失が許されない場合は、同期複製を使用してください。