この章では、Sun Cluster 3.0 または 3.1 を使用して、Calendar Server 6.3 ソフトウェア用の高可用性をインストールおよび設定する方法について説明します。
Calendar Server の高可用性 (HA) 設定により、ソフトウェアとハードウェアの障害を監視し、回復処理を行うことができます。Calendar Server の HA 機能は、フェイルオーバーサービスとして実装されます。この章では、Sun Cluster ソフトウェアを使用した 2 つの Calendar Server HA の設定 (非対称型および対称型) について説明します。
この章では、Calendar Server 用の HA のインストールと設定の方法について、次の項目で説明します。
付録 C 「Calendar Server 設定ワークシート」には、Calendar Server HA 設定の計画に役立つワークシートが用意されています。
高可用性は複数の方法で設定できます。ここでは、3 つのタイプの高可用性の概要について説明し、必要に適したタイプを選択するために役立つ情報を紹介します。
この節の内容は次のとおりです。
単純な非対称型高可用性システムには 2 つの物理ノードがあります。プライマリノードは常にアクティブであり、もう一方のノードはバックアップノードとして機能して、プライマリノードに障害が生じた場合に処理を継続できるようになっています。フェイルオーバーを行う場合、共有ディスクアレイがバックアップノードによって制御されるように切り替えられます。Calendar Server プロセスは、障害の発生したプライマリノードで停止し、バックアップノードで起動します。
このタイプの高可用性システムにはいくつかの長所があります。1 つの長所は、バックアップノードが専用であり、完全にプライマリノード用として確保されているという点です。したがって、フェイルオーバーの実行時に、バックアップノード上でリソースが競合することがありません。もう 1 つの長所は順次アップグレードを行えるということです。つまり、一方のノードでアップグレードを行いながら、他方のノードで Calendar Server ソフトウェアを実行し続けられます。1 番目のノードのアップグレード中に ics.conf ファイルを変更しても、設定ファイルは起動時に一度読み込まれるだけなので、その変更はセカンダリノードで実行しているもう一方の Calendar Server インスタンスには影響しません。新しい設定を有効にするには、カレンダプロセスを停止してから再起動する必要があります。もう一方のノードをアップグレードする場合は、アップグレードしたプライマリノードへのフェイルオーバーを実行し、セカンダリノード上でアップグレードを開始します。
もちろん、最初にセカンダリノードをアップグレードしてからプライマリノードをアップグレードすることもできます。
非対称型高可用性モデルにはいくつかの短所もあります。1 つの短所は、バックアップノードがほとんど常にアイドル状態になっているため、リソースが十分に活用されないという点です。もう 1 つの短所は、ストレージアレイが単一であるということです。単純な非対称型高可用性システムでは、ディスクアレイに障害が発生すると、バックアップが利用できなくなります。
単純な対称型高可用性システムには 2 つのアクティブな物理ノードがあり、独自のディスクアレイを備えています。各ディスクアレイは 2 つのストレージボリュームから構成され、一方のボリュームにはローカルカレンダストアが、もう一方のボリュームには他方のノードのカレンダストアのミラーイメージが格納されます。それぞれのノードは他方のバックアップノードとして動作します。一方のノードからバックアップノードへのフェイルオーバーが行われると、Calendar Server の 2 つのインスタンスがバックアップノード上で並列して動作しますが、それぞれのインスタンスは独自のインストールディレクトリから実行され、独自のカレンダストアにアクセスします。共有するものは、バックアップノードの演算能力だけです。
このタイプの高可用性システムの長所は、両方のノードが同時にアクティブになるため、マシンのリソースが十分に活用されるという点です。ただし、障害が発生すると、バックアップノードは両方のノードから Calendar Server のサービスを実行するので、リソースの競合が多くなります。
対称型高可用性はバックアップストレージアレイも実現します。ディスクアレイに障害が発生した場合に備え、その冗長イメージをバックアップノード上のサービスで取得しておくことができます。
対称型高可用性システムを設定するには、共有ディスク上に Calendar Server バイナリをインストールします。この場合、順次アップグレードを実行できなくなる可能性があります。順次アップグレードは、Calendar Server パッチリリースによるシステム更新時のダウンタイムをゼロまたは最小にする機能であり、Calendar Server の今後のリリースで予定されています。
この章で説明した 2 種類の高可用性システム以外にも、2 つを組み合わせて 3 番目のタイプも構成できます。このタイプが、複数ノードの非対称型高可用性システムです。このタイプでは、「N」個のディスクアレイと「N」個のノードがすべて、将来の使用のために確保され通常はアクティブでない同一のバックアップノードを使用します。このバックアップノードは「N」個のうちどのノードの Calendar Server でも実行できます。前述の図に示すように、バックアップノードは「N」個のノードの各ディスクアレイを共有します。同時に複数のノードに障害が発生した場合、バックアップノードには、最高「N」個の Calendar Server インスタンスを並列して実行する能力が必要になります。「N」個のノードにはそれぞれ独自のディスクアレイが割り当てられています。
N+1 モデルの長所は、Calendar Server の負荷を複数のノードに分散でき、すべてのノードの障害に対処するために必要なバックアップノードが 1 つで済むことです。
このタイプの高可用性の短所は、非対称型システムと同じく、バックアップノードがほとんど常にアイドル状態になっていることです。さらに、N+1 高可用性システムのバックアップノードは、複数の Calendar Server インスタンスを実行する必要が生じる場合に備え、余分な能力を備えている必要があります。つまり、非常に高価なマシンをアイドル状態で待機させておくことになります。ただしマシンのアイドル率は 1:N であり、一方、単一の非対称型システムの場合は 1:1 になります。
このタイプのシステムを設定するには、「N」個の各ノードとバックアップノードに対して、非対称型高可用性システムの手順を適用します。その都度同じバックアップノードを使用しますが、プライマリノードは異なります。
次の表には、各高可用性モデルの長所と短所がまとめられています。この情報を使用して、どのモデルが配備に適しているかを判断してください。
表 6–1 各高可用性モデルの長所と短所
次の表では、任意の日にシステム障害によってカレンダサービスが利用できなくなる確率を示しています。この計算では、平均で、システムクラッシュまたはサーバーハングにより 3 か月に 1 日各サーバーが停止し、12 か月に 1 日各ストレージデバイスが停止すると想定しています。また、両方のノードが同時に停止するという可能性の低いケースについては無視しています。
表 6–2 システムのダウンタイムの計算
モデル |
サーバーのダウンタイムの確率 |
単一サーバー (高可用性なし) |
確率 (停止) = (4 日のシステム停止 + 1 日のストレージ停止)/365 = 1.37% |
非対称 |
確率 (停止) = (0 日のシステム停止 + 1 日のストレージ停止)/365 = 0.27% |
対称 |
確率 (停止) = (0 日のシステム停止 + 0 日のストレージ停止)/365 = (ほとんど 0) |
N + 1 非対称 |
確率 (停止) = (5 時間のシステム停止 + 1 日のストレージ停止)/(365xN) = 0.27%/N |
ここでは、HA 環境に Calendar Server をインストールするための前提条件について説明します。
次の前提条件が適用されます。
Solaris 9 または Solaris 10 のどちらかのオペレーティングシステムを、必要なパッチとともにクラスタのすべてのノードにインストールしていること
Sun Cluster 3.0 または 3.1 をクラスタのすべてのノードにインストールしていること
Java Enterprise System インストーラを使用して、Calendar Server HA エージェントパッケージ (SUNWscics) をクラスタのすべてのノードにインストールしていること
HAStoragePlus フェイルオーバーファイルシステム (FFS) システムとしてローカルファイルシステムを指定するか、または HAStorage クラスタファイルシステム (CFS) を指定すること
2001 年 12 月以前にリリースされた Sun Cluster 3.0 を使用している場合は、HAStorage クラスタファイルシステム (CFS) として指定されているグローバルファイルシステムを使用する必要があります。
論理ボリュームが作成されている場合 (対称型高可用性システムに該当)、Solstice DiskSuite または Veritas Volume Manager のどちらかを使用します。
HAStoragePlus リソースタイプを使用すると、ローカルでマウントされたファイルシステムを Sun Cluster 環境内で高可用性にすることができます。Sun Cluster グローバルデバイスグループ上に存在するファイルシステムはすべて HAStoragePlus とともに使用できます。HAStoragePlus ファイルシステムは、どの時点でも 1 つのクラスタノードでのみ使用できます。これらのローカルマウントされるファイルシステムは、フェイルオーバーモードでのみ、またフェイルオーバーリソースグループ内でのみ使用できます。HAStoragePlus は、従来のグローバルファイルシステム (GFS)、つまりクラスタファイルシステム (CFS) のサポートに加え、フェイルオーバーファイルシステム (FFS) を提供します。
HAStoragePlus は、その前身である HAStorage に比べ次のような多くの長所があります。
HAStoragePlus はグローバルファイルサービス層を完全に回避します。非常に多数のディスクアクセスが必要なデータサービスにとって、これはパフォーマンスの大幅な向上につながります。
HAStoragePlus は、グローバルファイルサービス層と連携しない可能性があるファイルシステムも含めて、UFS、VxFS などの任意のファイルシステムと連携できます。Solaris オペレーティングシステムでサポートされるファイルシステムは HAStoragePlus と連携します。
2002 年 5 月以降にリリースされた Sun Cluster 3.0 によるデータサービスリソースグループ内では HAStoragePlus リソースを使用します。
HAStoragePlus については、『Sun Cluster Data Services Planning and Administration Guide for Solaris OS 』を参照してください。
次に、非対称型高可用性に合わせて Calendar Server をインストールし設定するために必要な作業を示します。
ノードの準備
Solaris オペレーティングシステムソフトウェアをクラスタのすべてのノードにインストールします。
Sun Cluster ソフトウェアをクラスタのすべてのノードにインストールします。
Java Enterprise System インストーラを使用して、Calendar Server HA エージェントパッケージ (SUNWscics) をクラスタのすべてのノードにインストールします。
共有ディスク上にファイルシステムを作成します。
Communications Suite 5 インストーラを使用して、クラスタのプライマリノードとセカンダリノードに Calendar Server をインストールします。
ディレクトリサーバー LDAP ディレクトリが置かれているマシン上で、Directory Preparation Script (comm_dssetup.pl) を実行します。
1 番目のノード (プライマリノード)をインストールし設定します。
Sun Cluster コマンド行インタフェースを使用して、プライマリノードで HA を設定します。
プライマリノードで、Calendar Server 設定プログラム ( csconfigurator.sh) を実行します。
Sun Cluster コマンド行インタフェースを使用して、セカンダリノードに切り替えます。
プライマリノード上の Calendar Server の config ディレクトリから共有ディスクの config ディレクトリへのシンボリックリンクを作成します。
2 番目のノード (セカンダリノード) をインストールし設定します。
プライマリノードの設定時に作成した状態ファイルを再利用してセカンダリノードで Calendar Server 設定プログラムを実行します。
設定ファイル (ics.conf) を編集します。
Sun Cluster コマンド行インタフェースを使用して、Calendar Server のリソースグループを設定し有効にします。
Sun Cluster コマンド行インタフェースを使用して、リソースグループが正しく作成されたかどうかをテストし、プライマリノードへのフェイルオーバーを実行します。
段階的な手順については、「6.6 非対称型高可用性環境での Calendar Server 6.3 ソフトウェアのインストールと設定」を参照してください。
次に、対称型高可用性に合わせて Calendar Server をインストールし設定するために必要な作業を示します。
ノードの準備
Solaris オペレーティングシステムソフトウェアをクラスタのすべてのノードにインストールします。
Sun Cluster ソフトウェアをクラスタのすべてのノードにインストールします。
クラスタファイルシステム (グローバルファイルシステム) またはフェイルオーバーファイルシステム (ローカルファイルシステム) のどちらかで、ファイルシステムを 6 つ作成します。
必要なディレクトリを作成します。
Java Enterprise System インストーラを使用して、Calendar Server HA エージェントパッケージ (SUNWscics) をクラスタのすべてのノードにインストールします。
1 番目のノードをインストールし設定します。
Communications Suite 5 インストーラを使用して、Calendar Server をクラスタの 1 番目のノードにインストールします。
ディレクトリサーバー LDAP データベースが置かれているマシン上で、Directory Preparation Script (comm_dssetup.pl) を実行します。
2 つのノード上の Calendar Server のインスタンスが同じ LDAP サーバーを共有している場合、Calendar Server ソフトウェアを 2 番目のノードにインストールしたあとは、この手順を繰り返す必要はありません。
Sun Cluster コマンド行インタフェースを使用して、1 番目のノードで HA を設定します。
1 番目のノードで、Calendar Server 設定プログラム ( csconfigurator.sh) を実行します。
Sun Cluster コマンド行インタフェースを使用して、2 番目のノードへのフェイルオーバーを実行します。
1 番目のノードで設定ファイル (ics.conf) を編集します。
Sun Cluster コマンド行インタフェースを使用して、1 番目のノードで Calendar Server のリソースグループを設定し有効にします。
Sun Cluster コマンド行インタフェースを使用して、1 番目のノードのリソースグループを作成し有効にします。
Sun Cluster コマンド行インタフェースを使用して、リソースグループが正しく作成されたかどうかをテストし、1 番目のノードへのフェイルオーバーを実行します。
2 番目のノードをインストールし設定します。
Communications Suite 5 インストーラを使用して、Calendar Server をクラスタの 2 番目のノードにインストールします。
Sun Cluster コマンド行インタフェースを使用して、2 番目のノードで HA を設定します。
1 番目のノードの設定時に作成した状態ファイルを再利用して、Calendar Server 設定プログラム (csconfigurator.sh) を 2 番目のノードで実行します。
Sun Cluster コマンド行インタフェースを使用して、1 番目のノードへのフェイルオーバーを実行します。
2 番目のノードで設定ファイル (ics.conf) を編集します。
Sun Cluster コマンド行インタフェースを使用して、2 番目のノードで Calendar Server のリソースグループを作成し有効にします。
Sun Cluster コマンド行インタフェースを使用して、リソースグループが正しく作成されたかどうかをテストし、2 番目のノードへのフェイルオーバーを実行します。
段階的な手順については、「6.7 対称型高可用性 Calendar Server システムの設定」を参照してください。
この節を印刷し、HA のインストールおよび設定プロセスの進行に応じて使用した値を記録してください。
ここでは、次の 4 つの表で、すべての例で使用する変数名について説明します。
表 6–3 非対称型の例で使用するディレクトリ名変数
表 6–4 対称型の例で使用するディレクトリ名変数
表 6–5 非対称型の例で使用するリソース名変数
表 6–6 対称型の例で使用するリソース名変数
表 6–7 非対称型の例における IP アドレスの変数名
表 6–8 対称型の例における IP アドレスの変数名
名前の例 |
ディレクトリ |
説明 |
---|---|---|
install-root |
/opt |
Calendar Server がインストールされているディレクトリ。 |
cal-svr-base |
/opt/SUNWics5/cal |
すべての Calendar Server ファイルが格納されているディレクトリ。 |
var-cal-dir |
/var/opt/SUNWics5 |
/var ディレクトリ。 |
share-disk-dir |
/cal |
グローバルディレクトリ。つまり非対称型高可用性システムでのノード間で共有されるディレクトリ。 |
表 6–4 対称型の例で使用するディレクトリ名変数
名前の例 |
ディレクトリ |
説明 |
---|---|---|
install-rootCS1 install-rootCS2 |
/opt/Node1 /opt/Node2 |
Calendar Server のインスタンスがインストールされているディレクトリ。 |
cal-svr-baseCS1 cal-svr-baseCS2 |
/opt/Node1/SUNWics5/cal /opt/Node2/SUNWics5/cal |
ノードのすべての Calendar Server ファイルが格納されているディレクトリ。 |
var-cal-dirCS1 var-cal-dirCS2 |
/var/opt/Node1/SUNWics5 /var/opt/Node2/SUNWics5 |
各ノードの /var ディレクトリ。 |
share-disk-dirCS1 share-disk-dirCS2 |
/cal/Node1 /cal/Node2 |
Calendar Server の各インスタンスがそのフェイルオーバーノードと共有しているグローバル (共有) ディレクトリ。これは、対称型高可用性システムで使用されます。 |
表 6–5 非対称型の例で使用するリソース名変数
変数名 |
説明 |
---|---|
CAL-RG |
カレンダリソースグループ。 |
LOG-HOST-RS |
論理ホスト名リソース。 |
LOG-HOST-RS-Domain.com |
完全修飾論理ホスト名リソース。 |
CAL-HASP-RS |
HAStoragePlus リソース。 |
CAL-SVR-RS |
Calendar Server リソースグループ。 |
表 6–6 対称型の例で使用するリソース名変数
変数名 |
説明 |
---|---|
CAL-CS1-RG |
Calendar Server の 1 番目のインスタンスのカレンダリソースグループ。 |
CAL-CS2-RG |
Calendar Server の 2 番目のインスタンスのカレンダリソースグループ。 |
LOG-HOST-CS1-RS |
Calendar Server の 1 番目のインスタンスの論理ホスト名リソース。 |
LOG-HOST-CS1-RS-Domain.com |
Calendar Server の 1 番目のインスタンスの完全修飾論理ホスト名リソース。 |
LOG-HOST-CS2-RS |
Calendar Server の 2 番目のインスタンスの論理ホスト名リソース。 |
LOG-HOST-CS2-RS-Domain.com |
Calendar Server の 2 番目のインスタンスの完全修飾論理ホスト名リソース。 |
CAL-HASP-CS1-RS |
Calendar Server の 1 番目のインスタンスの HAStoragePlus リソース。 |
CAL-HASP-CS2-RS |
Calendar Server の 2 番目のインスタンスの HAStoragePlus リソース。 |
CAL-SVR-CS1-RS |
Calendar Server の 1 番目のインスタンスの Calendar Server リソースグループ。 |
CAL-SVR-CS2-RS |
Calendar Server の 2 番目のインスタンスの Calendar Server リソースグループ。 |
表 6–7 非対称型の例における IP アドレスの変数名
論理 IP アドレス |
説明 |
---|---|
IPAddress |
chsttpd デーモンが待機するポートの IP アドレス。標準的な IP 形式で指定してください。例: "123.45.67.890" |
表 6–8 対称型の例における IP アドレスの変数名
論理 IP アドレス |
説明 |
---|---|
IPAddressCS1 |
Calendar Server の 1 番目のインスタンスの chsttpd デーモンが待機するポートの IP アドレス。標準的な IP 形式で指定してください。例: "123.45.67.890" |
IPAddressCS2 |
Calendar Server の 2 番目のインスタンスの chsttpd デーモンが待機するポートの IP アドレス。標準的な IP 形式で指定してください。例: "123.45.67.890" |
ここでは、非対称型高可用性 Calendar Server クラスタの設定手順について説明します。
ここで説明する内容は次のとおりです。
共有ディスク上にファイルシステムを作成します。/etc/vfstab はクラスタのすべてのノードで同じにしてください。
CFS の場合、次の例のようになります。
## Cluster File System/Global File System ## /dev/md/penguin/dsk/d400 /dev/md/penguin/rdsk/d400 /cal ufs 2 yes global,logging
FFS の場合、次の例のようになります。
## Fail Over File System/Local File System ## /dev/md/penguin/dsk/d400 /dev/md/penguin/rdsk/d400 /cal ufs 2 no logging
これらのコマンドのフィールドは、スペースではなくタブで区切られます。
クラスタのすべてのノードに対して、設定およびデータを保持している共有ディスク上に /Cal ディレクトリを作成します。たとえば、すべての共有ディスクに対して次のコマンドを実行します。
mkdir -P /Cal
ここでは、Calendar Server の高可用性のインストールと設定に関する作業手順について説明します。
次の各作業を順番に実行して、設定をすべて行います。
Communications Suite 5 インストーラを使用して、クラスタのプライマリノードとセカンダリノードに Calendar Server をインストールします。
必ず、すべてのノードで同じインストールルートを指定してください。
「インストールディレクトリの指定」パネルで、両方のノードのインストールルートを入力します。
これにより、次のディレクトリに Calendar Server バイナリがインストールされます。/install-root/SUNWics5/cal。このディレクトリは Calendar Server ベース (cal-svr-base) と呼ばれます。
「あとで設定」オプションを選択します。
インストールの終了後、ファイルがインストールされたことを確認します。
# pwd /cal-svr-base # ls -rlt total 16 drwxr-xr-x 4 root bin 512 Dec 14 12:52 share drwxr-xr-x 3 root bin 512 Dec 14 12:52 tools drwxr-xr-x 4 root bin 2048 Dec 14 12:52 lib drwxr-xr-x 2 root bin 1024 Dec 14 12:52 sbin drwxr-xr-x 8 root bin 512 Dec 14 12:52 csapi drwxr-xr-x 11 root bin 2048 Dec 14 12:52 html
既存のディレクトリサーバー LDAP に対して、ディレクトリ準備スクリプト (comm_dssetup.pl) を実行します。
これにより、新しい LDAP スキーマ、インデックス、および設定データが設定され、ディレクトリサーバーの準備が整います。
comm_dssetup.pl の実行手順と詳細については、『Sun Java Communications Suite 5 インストールガイド』の第 8 章「Directory Preparation Tool (comm_dssetup.pl) 」を参照してください。
前述のように Sun Cluster コマンド行インタフェースを使用して、1 番目のノードで HA を設定します。
例でのディレクトリ名と Sun Cluster リソース名の重要な点については、「6.5 Calendar Server バージョン 6.3 で高可用性を設定するためのすべての配備例で使用する命名規則」を参照してください。
Calendar Server と HAStoragePlus リソースを登録します。
./scrgadm -a -t SUNW.HAStoragePlus ./scrgadm -a -t SUNW.scics
フェイルオーバー Calendar Server リソースグループを作成します。
たとえば、次の例では、プライマリノードを Node1、セカンダリノード (フェイルオーバーノード) を Node2 として、カレンダリソースグループ CAL-RG を作成します。
./scrgadm -a -g CAL-RG -h node1,node2
Calendar Server リソースグループ内に論理ホスト名リソースを作成し、そのリソースグループをオンラインにします。
たとえば、次の例では、論理ホスト名リソース LOG-HOST-RS を作成してから、リソースグループ CAL-RG をオンラインにします。
./scrgadm -a -L -g CAL-RG -l LOG-HOST-RS ./scrgadm -c -j LOG-HOST-RS -y \ R_description="LogicalHostname resource for LOG-HOST-RS" ./scswitch -Z -g CAL-RG
HAStoragePlus リソースを作成し有効にします。
たとえば、次の例では、HAStoragePlus リソース CAL-HASP-RS を作成し有効にします。
scrgadm -a -j CAL-HASP-RS -g CAL-RG -t SUNW.HAStoragePlus:4 -x FilesystemMountPoints=/cal scrgadm -c -j CAL-HASP-RS -y R_description="Failover data service resource for SUNW.HAStoragePlus:4" scswitch -e -j CAL-HASP-RS
設定プログラムを実行します。
たとえば、 /cal-svr-base/sbin ディレクトリから次のように実行します。
# pwd /cal-svr-base/sbin # ./csconfigurator.sh
設定スクリプトの実行方法については、このガイドの第 2 章「Calendar Server 6.3 ソフトウェアの初期実行時設定プログラム (csconfigurator.sh)」を参照してください。
「ランタイム設定」パネルで、両方の Calendar Server 起動オプションを選択解除します。
「設定およびデータファイルの格納ディレクトリ」パネルで、共有ディスク上のすべてのディレクトリを設定します。次の場所を使用します。
/share-disk-dir/config
/share-disk-dir/csdb
/share-disk-dir/store
/share-disk-dir/logs
/share-disk-dir/tmp
ディレクトリを指定し終えたら、「ディレクトリの作成」を選択します。
「アーカイブおよびホットバックアップの設定」パネルで、次のように指定します。
/share-disk-dir/csdb/archive
/share-disk-dir/csdb/hotbackup
ディレクトリを指定し終えたら、「ディレクトリの作成」オプションを選択します。
設定が正しいことを確認します。
設定出力の最後を調べ、「All Tasks Passed」というメッセージが記されていることを確認します。設定出力の最後の部分は、次のようになります。
... All Tasks Passed. Please check install log /var/sadm/install/logs/Sun_Java_System_Calendar_Server_install.B12141351 for further details.
詳細な出力例については、「6.11 カレンダ設定プログラムの出力例 (簡略)」を参照してください。
「次へ」をクリックして設定を終了します。
セカンダリノードに切り替えます。
Sun Cluster コマンド行インタフェースを使用して、セカンダリノードに切り替えます。たとえば、次のコマンドは、セカンダリ (フェイルオーバー) ノード Node2 にリソースグループを切り替えます。
scswitch -z -g CAL-RG -h Node2
Calendar Server の config ディレクトリから、共有ファイルシステムの config ディレクトリへのシンボリックリンクを作成します。
たとえば、次のコマンドを実行します。
# pwd /cal-svr-base # ln -s /share-disk-dir/config .
必ず、ln コマンドの最後にピリオド (.) を付けてください。
プライマリノード設定の状態ファイルを使用して、セカンダリノード上で Calendar Server を設定します。
設定プログラムを実行したときに作成した状態ファイルを実行して、プライマリノードの設定を共有します。
たとえば、次のコマンドを実行します。
# /cal-svr-base/sbin/csconfigurator.sh -nodisplay -noconsole -novalidate
設定プログラムを初めて実行したときと同様に、すべての作業が成功していることを確認します。
設定ファイル (ics.conf) を編集します。
ics.conf ファイルを編集して、ファイルの最後に次のパラメータを追加します。カレンダリソースの論理ホスト名は LOG-HOST-RS です。
この手順を行う前に、ics.conf ファイルをバックアップしておいてください。
! The following are the changes for making Calendar Server ! Highly Available ! local.server.ha.enabled="yes" local.server.ha.agent="SUNWscics" service.http.listenaddr="IPAddress" local.hostname="LOG-HOST-RS" local.servername="LOG-HOST-RS" service.ens.host="LOG-HOST-RS" service.http.calendarhostname="LOG-HOST-RS-Domain.com" local.autorestart="yes" service.listenaddr="IPAddress"
Calendar Server リソースグループを作成し、有効にします。
この例の場合、リソースグループ名は CAL-SVR-RS です。また、論理ホストリソース名と HAStoragePlus リソース名を指定するように要求されます。
./scrgadm -a -j CAL-SVR-RS -g CAL-RG -t SUNW.scics -x ICS_serverroot=/cal-svr-base -y Resource_dependencies=CAL-HASP-RS,LOG-HOST-RS ./scrgadm -e -j CAL-SVR-RS
フェイルオーバーを実行して、カレンダリソースグループの作成が成功したかどうかをテストします。
./ scswitch -z -g CAL-RG -h Node1
この手順を終えると、Calendar Server の非対称型高可用性システムの作成と設定は終了です。次の節では、Sun Cluster にログオンしてデバッグを行うための設定方法について説明します。
これで、非対称型の Calendar Server HA システムのインストールと設定は終了しました。
ここでは、対称型高可用性 Calendar Server システムの設定手順について説明します。
対称型高可用性 Calendar Server システムを設定する手順は次のとおりです。
Calendar Server をノードにインストールする前に完了しなければならない準備作業が 2 つあります。
準備作業は次のとおりです。
例の中では、さまざまな箇所で各ノードのインストールディレクトリ (cal-svr-base) を指定する必要があります。対称型 HA システムの cal-svr-base は非対称型 HA システムとは異なります。対称型 HA システムの場合、cal-svr-base の形式は、/opt/node/SUNWics5/cal になります。ここで、 /opt/node は Calendar Server をインストールしたルートディレクトリ (install-root) の名前です。
例として使用するため、および 2 つの Calendar Server インスタンスのインストールディレクトリを区別するために、cal-svr-baseCS1 および cal-svr-baseCS1 と名付けられています。
この例では、2 つの Calendar Server インスタンスのインストールルートが区別できるように、install-rootCS1 および install-rootCS2 と名付けられています。
クラスタファイルシステム (グローバルファイルシステム) またはフェイルオーバーファイルシステム (ローカルファイルシステム) のどちらかを使用して、ファイルシステムを 6 つ作成します。
次の例は、グローバルファイルシステムの場合です。/etc/vfstab ファイルの内容は次のようになります (フィールドはすべてタブで区切られている)。
# Cluster File System/Global File System ## /dev/md/penguin/dsk/d500 /dev/md/penguin/rdsk/d500 /cal-svr-baseCS1 ufs 2 yes logging,global /dev/md/penguin/dsk/d400 /dev/md/penguin/rdsk/d400 /share-disk-dirCS1 ufs 2 yes logging,global /dev/md/polarbear/dsk/d200 /dev/md/polarbear/rdsk/d200 /cal-svr-baseCS2 ufs 2 yes logging,global /dev/md/polarbear/dsk/d300 /dev/md/polarbear/rdsk/d300 /share-disk-dirCS2 ufs 2 yes logging,global /dev/md/polarbear/dsk/d600 /dev/md/polarbear/rdsk/d300 /var-cal-dirCS1 ufs 2 yes logging,global /dev/md/polarbear/dsk/d700 /dev/md/polarbear/rdsk/d300 /var-cal-dirCS2 ufs 2 yes logging,global
次の例は、フェイルオーバーファイルシステムの場合です。/etc/vfstab ファイルの内容は次のようになります (フィールドはすべてタブで区切られている)。
# Failover File System/Local File System ## /dev/md/penguin/dsk/d500 /dev/md/penguin/rdsk/d500 /cal-svr-baseCS1 ufs 2 yes logging /dev/md/penguin/dsk/d400 /dev/md/penguin/rdsk/d400 /share-disk-dirCS1 ufs 2 yes logging /dev/md/polarbear/dsk/d200 /dev/md/polarbear/rdsk/d200 /cal-svr-baseCS2 ufs 2 yes logging /dev/md/polarbear/dsk/d300 /dev/md/polarbear/rdsk/d300 /share-disk-dirCS2 ufs 2 yes logging /dev/md/polarbear/dsk/d600 /dev/md/polarbear/rdsk/d300 /var-cal-dirCS1 ufs 2 yes logging /dev/md/polarbear/dsk/d700 /dev/md/polarbear/rdsk/d300 /var-cal-dirCS2 ufs 2 yes logging
クラスタのすべてのノードに、次の必須ディレクトリを作成します。
# mkdir -p /install-rootCS1 share-disk-dirCS1 install-rootCS2 share-disk-dirCS2 var-cal-dirCS1 var-cal-dirCS2
Calendar Server HA パッケージ (SUNWscics) をクラスタのすべてのノードにインストールします。
インストールは、Java Enterprise System インストーラから行う必要があります。
Java Enterprise System インストーラについては、『Sun Java Enterprise System 5 Installation and Configuration Guide』を参照してください。
この節の手順に従って、Calendar Server の 1 番目のインスタンスを インストールし設定します。ここでは、次の内容について説明します。
ファイルがマウントされていることを確認します。
プライマリノード (Node1) で次のコマンドを入力します。
df -k
次に、出力の例を示します。
/dev/md/penguin/dsk/d500 35020572 34738 34635629 1% /install-rootCS1 /dev/md/penguin/dsk/d400 35020572 34738 34635629 1% /share-disk-dirCS1 /dev/md/polarbear/dsk/d300 35020572 34738 34635629 1% /share-disk-dirCS2 /dev/md/polarbear/dsk/d200 35020572 34738 34635629 1% /install-rootCS2 /dev/md/polarbear/dsk/d600 35020572 34738 34635629 1% /var-cal-dirCS1 /dev/md/polarbear/dsk/d700 35020572 34738 34635629 1% /var-cal-dirCS2
Sun Java Systems Communications Suite インストーラを使用して、プライマリノードに Calendar Server をインストールします。
ディレクトリサーバーのあるマシン上でディレクトリ準備ツールスクリプトを実行します。
Sun Cluster コマンド行インタフェースを使用し、次の手順に従って 1 番目のノードで Sun Cluster を設定します。
次のリソースタイプを登録します。
./scrgadm -a -t SUNW.HAStoragePlus ./scrgadm -a -t SUNW.scics
フェイルオーバーリソースグループを作成します。
次の例では、リソースグループは CAL-CS1-RG であり、2 つのノードのうちプライマリノードには Node1 という名前が、フェイルオーバーノードには Node2 という名前が付けられています。
./scrgadm -a -g CAL-CS1-RG -h Node1,Node2
このノードの論理ホスト名リソースを作成します。
カレンダクライアントはこの論理ホスト名で待機します。次の例では LOG-HOST-CS1-RS を使用していますが、この箇所は実際のホスト名に変更します。
./scrgadm -a -L -g CAL-RG -l LOG-HOST-CS1-RS ./scrgadm -c -j LOG-HOST-CS1-RS -y R_description= "LogicalHostname resource for LOG-HOST-CS1-RS"
リソースグループをオンラインにします。
scswitch -Z -g CAL-CS1-RG
HAStoragePlus リソースを作成し、フェイルオーバーリソースグループに追加します。
次の例では、リソースは CAL-HASP-CS1-RS という名前になっています。ここは各自のリソース名に置き換えます。このマニュアルの例では、見やすくするために、行が 2 行に分かれて表示されています。
./scrgadm -a -j CAL-HASP-CS1-RS -g CAL-CS1-RG -t SUNW.HAStoragePlus:4 -x FilesystemMountPoints=/install-rootCS1, /share-disk-dirCS1,/cal-svr-baseCS1 ./scrgadm -c -j CAL-HASP-CS1-RS -y R_description="Failover data service resource for SUNW.HAStoragePlus:4"
HAStoragePlus リソースを有効にします。
./scswitch -e -j CAL-HASP-CS1-RS
プライマリノードで設定プログラムを実行します。
# cd /cal-svr-baseCS1/sbin/ # ./csconfigurator.sh
設定スクリプトの実行手順については、『Sun Java System Calendar Server 6.3 管理ガイド』を参照してください。
「ランタイム設定」パネルで、両方の Calendar Server 起動オプションを選択解除します。
「設定およびデータファイルの格納先ディレクトリ」パネルで、次のリストに示すように共有ディスクのディレクトリを指定します。
/share-disk-dirCS1/config
/share-disk-dirCS1/csdb
/share-disk-dirCS1/store
/share-disk-dirCS1/logs
/share-disk-dirCS1/tmp
ディレクトリを指定し終えたら、「ディレクトリの作成」を選択します。
「アーカイブおよびホットバックアップの設定」パネルで、次のリストに示すように共有ディスクのディレクトリ名を指定します。
/share-disk-dirCS1/csdb/archive
/share-disk-dirCS1/csdb/hotbackup
これらのディレクトリを指定したあとで、「ディレクトリの作成」を選択します。
設定が成功したことを確認します。
設定プログラムにより一連のメッセージが表示されます。すべてのメッセージが PASSED で始まっている場合、成功したことを意味します。表示される出力例については、「6.11 カレンダ設定プログラムの出力例 (簡略)」の例を参照してください。
Sun Cluster コマンド行インタフェースを使用して、2 番目のノードへのフェイルオーバーを実行します。
次に例を示します。
# /usr/cluster/bin/scswitch -z -g CAL-CS1-RG -h Node2
設定ファイル ics.conf を編集して、次の例に示すパラメータを追加します。
この手順を開始する前に、ics.conf ファイルをバックアップしておいてください。
! The following changes were made to configure Calendar Server ! Highly Available ! local.server.ha.enabled="yes" local.server.ha.agent="SUNWscics" service.http.listenaddr="IPAddressCS1" local.hostname="LOG-HOST-CS1-RS" local.servername="LOG-HOST-CS1-RS" service.ens.host="LOG-HOST-CS1-RS" service.http.calendarhostname="LOG-HOST-CS1-RS-Domain.com" local.autorestart="yes" service.listenaddr = "IPAddressCS1"
service.http.calendarhostname に指定する値は完全修飾ホスト名です。
Sun Cluster コマンド行インタフェースを使用して、Calendar Server リソースグループを作成します。
カレンダリソースグループを作成し、有効にします。
次に例を示します。
./scrgadm -a -j CAL-SVR-CS1-RS -g CAL-CS1-RG -t SUNW.scics -x ICS_serverroot=/cal-svr-baseCS1 -y Resource_dependencies=CAL-HASP-CS1-RS,LOG-HOST-CS1-RS ./scrgadm -e -j CAL-SVR-CS1-RS
Sun Cluster コマンド行インターフェイスを使用して、Calendar Server リソースグループの作成が成功したかどうかをテストし、1 番目のノードへのフェイルオーバーを実行します。このノードがプライマリノードになります。
次に例を示します。
./scswitch -z -g CAL-CS1-RG -h Node1
2 番目の Calendar Server インスタンスのプライマリノードは 2 番目のノード (Node2) です。
ファイルがマウントされていることを確認します。
プライマリノード (Node2) で次のコマンドを入力します。
df -k
次のような出力が表示されます。
/dev/md/penguin/dsk/d500 35020572 34738 34635629 1% /install-rootCS1 /dev/md/penguin/dsk/d400 35020572 34738 34635629 1% /share-disk-dirCS1 /dev/md/polarbear/dsk/d300 35020572 34738 34635629 1% /share-disk-dirCS2 /dev/md/polarbear/dsk/d200 35020572 34738 34635629 1% /install-rootCS2 /dev/md/polarbear/dsk/d600 35020572 34738 34635629 1% /var-cal-dirCS1 /dev/md/polarbear/dsk/d700 35020572 34738 34635629 1% /var-cal-dirCS2
Sun Java Systems Communications Suite インストーラを使用して、新しいプライマリノード (2 番目のノード) に Calendar Server をインストールします。
Sun Cluster コマンド行インタフェースを使用して、次の手順に示すように、Calendar Server の 2 番目のインスタンスを設定します。
フェイルオーバーリソースグループを作成します。
次の例では、リソースグループは CAL-CS2-RG であり、2 つのノードのうちプライマリノードには Node2 という名前が、フェイルオーバーノードには Node1 という名前が付けられています。
./scrgadm -a -g CAL-CS2-RG -h Node2,Node1
論理ホスト名リソースを作成します。
カレンダクライアントはこの論理ホスト名で待機します。次の例では LOG-HOST-CS2-RS を使用していますが、実際のホスト名ではこの箇所を変更します。
./scrgadm -a -L -g CAL-CS2-RG -l LOG-HOST-CS2-RS ./scrgadm -c -j LOG-HOST-CS2-RS -y R_description="LogicalHostname resource for LOG-HOST-CS2-RS"
リソースグループをオンラインにします。
scswitch -Z -g CAL-CS2-RG
HAStoragePlus リソースを作成し、フェイルオーバーリソースグループに追加します。
次の例では、リソースは CAL-SVR-CS2-RS という名前が付けられています。ここは各自のリソース名に置き換えます。
./scrgadm -a -j CAL-SVR-CS2-RS -g CAL-CS2-RG -t SUNW.HAStoragePlus:4 -x FilesystemMountPoints=/install-rootCS2, /share-disk-dirCS2,/var-cal-dirCS2 ./scrgadm -c -j CAL-HASP-CS2-RS -y R_description="Failover data service resource for SUNW.HAStoragePlus:4"
HAStoragePlus リソースを有効にします。
./scswitch -e -j CAL-HASP-CS2-RS
セカンダリノードで設定プログラムを再度実行します。
# cd /cal-svr-baseCS2/sbin/ # ./csconfigurator.sh
設定スクリプトの実行手順については、『Sun Java System Calendar Server 6.3 管理ガイド』を参照してください。
「ランタイム設定」パネルで、両方の Calendar Server 起動オプションを選択解除します。
「設定およびデータファイルの格納先ディレクトリ」パネルで、次のリストに示すように適切なディレクトリを指定します。
share-disk-dirCS2/config
/share-disk-dirCS2/csdb
/share-disk-dirCS2/store
/share-disk-dirCS2/logs
/share-disk-dirCS2/tmp
ディレクトリを指定し終えたら、「ディレクトリの作成」を選択します。
「アーカイブおよびホットバックアップの設定」パネルで、次のリストに示すように適切なディレクトリ名を指定します。
/share-disk-dirCS2/csdb/archive
/share-disk-dirCS2/csdb/hotbackup
これらのディレクトリを指定したあとで、「ディレクトリの作成」を選択します。
設定が成功したことを確認します。
設定プログラムにより一連のメッセージが表示されます。すべてのメッセージが PASSED で始まっている場合、成功したことを意味します。表示される出力例については、「6.11 カレンダ設定プログラムの出力例 (簡略)」の例を参照してください。
Sun Cluster コマンド行インタフェースを使用して、1 番目のノードへのフェイルオーバーを実行します。
次に例を示します。
# /usr/cluster/bin/scswitch -z -g CAL-CS2-RG -h Node1
設定ファイル ics.conf を編集して、次の例に示すパラメータを追加します。
示された値は例でのみ使用します。例の値は、各自の情報に置き換える必要があります。
この手順を開始する前に、ics.conf ファイルをバックアップしておいてください。
! The following changes were made to configure Calendar Server ! Highly Available ! local.server.ha.enabled="yes" local.server.ha.agent="SUNWscics" service.http.listenaddr="IPAddressCS2" local.hostname="LOG-HOST-CS2-RS" local.servername="LOG-HOST-CS2-RS" service.ens.host="LOG-HOST-CS2-RS" service.http.calendarhostname="LOG-HOST-CS2-RS-Domain.com" local.autorestart="yes" service.listenaddr = "IPAddressCS2"
service.http.calendarhostname の値は完全修飾ホスト名にする必要があります。
Sun Cluster コマンド行インタフェースを使用して、Calendar Server リソースグループを作成します。
Calendar Server リソースグループを作成し、有効にします。
次に例を示します。
./scrgadm -a -j CAL-SVR-CS2-RS -g CAL-CS2-RG -t SUNW.scics -x ICS_serverroot=/cal-svr-baseCS2 -y Resource_dependencies=CAL-HASP-CS2-RS,LOG-HOST-CS2-RS ./scrgadm -e -j CAL-SVR-CS2-RS
Sun Cluster コマンド行インタフェースを使用して、カレンダリソースグループの作成が成功したかどうかをテストし、2 番目のノードへのフェイルオーバーを実行します。このノードがこの Calendar Server インスタンスのプライマリノードになります。
次に例を示します。
./scswitch -z -g CAL-CS2-RG -h Node2
これで、対称型 HA Calendar Server のインストールと設定が終了しました。
次のコマンドを使用して、Calendar Server HA サービスの起動、フェイルオーバー、無効化、削除、および再起動を行います。
# scswitch -e -j CAL-SVR-RS
# scswitch -z -g CAL-RG -h Node2
# scswitch -n -j CAL-SVR-RS
# scrgadm -r -j CAL-SVR-RS
# scrgadm -R -j CAL-SVR-RS
この節では、Sun Cluster 用の HA 設定を解除する方法について説明します。ここでは、この章で説明した単純な非対称型の設定例を使用します。このシナリオは各自のインストールに応じて変更する必要があります。
スーパーユーザーになります。
以降の Sun Cluster コマンドはすべて、スーパーユーザーとして実行する必要があります。
リソースグループをオフラインにします。次のコマンドを使用して、リソースグループ内のすべてのリソース (たとえば Calendar Server および HA 論理ホスト名) を終了します 。
# scswitch -F -g CAL-RG |
個別のリソースを無効にします。
次のコマンドを実行して、リソースグループから 1 つずつリソースを削除します。
# scswitch -n -j CAL-SVR-RS # scswitch -n -j CAL-HASP-RS # scswitch -n -j LOG-HOST-RS |
次のコマンドを使用して、リソースグループ自体を削除します。
# scrgadm -r -g CAL-RG |
リソースタイプを削除します (必要な場合)。リソースタイプをクラスタから削除する場合は、次のコマンドを使用します。
# scrgadm -r -t SUNW.scics # scrgadm -r -t SUNW.HAStorage |
Calendar Server Sun Cluster エージェントは次の 2 つの異なる API を使用してメッセージをログに記録します。
scds_syslog_debug(): Calendar Server エージェントが使用します。メッセージは daemon.debug レベルでログに記録されます。
scds_syslog(): Calendar Server エージェントと Sun Cluster データサービスが使用します。メッセージは daemon.notice、daemon.info、および daemon.error レベルでログに記録されます。
/var/adm ファイルは共有できないので、各 HA ノードで次の作業を行う必要があります。このファイルは、それぞれのノードのルートパーティションにあります。
Calendar Server エージェント用のログディレクトリを作成します。
mkdir -p /var/cluster/rgm/rt/SUNW.scics
デバッグレベルを 9 に設定します。
echo 9 >/var/cluster/rgm/rt/SUNW.scics/loglevel
次の例は、ディレクトリで目にするようなログメッセージを示しています。最後の行で、ICS-serverroot が cal-svr-base、つまりインストールディレクトリを要求していることに注意してください。
Dec 11 18:24:46 mars SC[SUNW.scics,CAL-RG,cal-rs,ics_svc_start]: [ID 831728 daemon.debug] Groupname icsgroup exists. Dec 11 18:24:46 mars SC[SUNW.scics,CAL-RG,LOG-HOST-RS,ics_svc_start]: [ID 383726 daemon.debug] Username icsuser icsgroup Dec 11 18:24:46 mars SC[SUNW.scics,CAL-RG,LOG-HOST-RS,ics_svc_start]: [ID 244341 daemon.debug] ICS_serverroot = /cal-svr-base
Sun Cluster データサービスログを有効にします。
syslog.conf ファイルを編集して、次の行を追加します。
daemon.debug /var/adm/clusterlog
これにより、すべてのデバッグメッセージのログが daemon.debug /var/adm/clusterlog ファイルに記録されます。
syslogd デーモンを再起動します。
pkill -HUP syslogd
すべての syslog デバッグメッセージは次の接頭部が冒頭に置かれています。
SC[resourceTypeName, resourceGroupName, resourceName, methodName]
次のメッセージ例では、見やすくするために、複数の行に分けて表示しています。
Dec 11 15:55:52 Node1 SC [SUNW.scics,CAL-RG,CalendarResource,ics_svc_validate]: [ID 855581 daemon.error] Failed to get the configuration info Dec 11 18:24:46 Node1 SC [SUNW.scics,CAL-RG,LOG-HOST-RS,ics_svc_start]: [ID 833212 daemon.info] Attempting to start the data service under process monitor facility.
ここでは、設定プログラムの出力の一部を示します。実際の出力はこれよりもはるかに長くなります。出力の最後には、「All Tasks Passed」というメッセージが記されていることを確認します。ログファイルをよく調べてください。ファイルの場所は出力の最後に記述されています。
/usr/jdk/entsys-j2se/bin/java -cp /opt/Node2/SUNWics5/cal/share/lib: /opt/Node2/SUNWics5/cal/share -Djava.library.path= /opt/Node2/SUNWics5/cal/lib configure -nodisplay -noconsole -novalidate # ./csconfigurator.sh -nodisplay -noconsole -novalidate /usr/jdk/entsys-j2se/bin/java -cp /opt/Node2/SUNWics5/cal/share/lib: /opt/Node2/SUNWics5/cal/share -Djava.library.path= /opt/Node2/SUNWics5/cal/lib configure -nodisplay -noconsole -novalidate Java Accessibility Bridge for GNOME loaded. Loading Default Properties... Checking disk space... Starting Task Sequence ===== Mon Dec 18 15:33:29 PST 2006 ===== Running /bin/rm -f /opt/Node2/SUNWics5/cal/config /opt/Node2/SUNWics5/cal/data ===== Mon Dec 18 15:33:29 PST 2006 ===== Running /usr/sbin/groupadd icsgroup ===== Mon Dec 18 15:33:29 PST 2006 ===== Running /usr/sbin/useradd -g icsgroup -d / icsuser ===== Mon Dec 18 15:33:30 PST 2006 ===== Running /usr/sbin/usermod -G icsgroup icsuser ===== Mon Dec 18 15:33:30 PST 2006 ===== Running /bin/sh -c /usr/bin/crle ===== Mon Dec 18 15:33:32 PST 2006 ===== Running /bin/chown icsuser:icsgroup /etc/opt/Node2/SUNWics5/config/watcher. cnf ... Sequence Completed PASSED: /bin/rm -f /opt/Node2/SUNWics5/cal/config /opt/Node2/SUNWics5/cal/data : status = 0 PASSED: /usr/sbin/groupadd icsgroup : status = 9 PASSED: /usr/sbin/useradd -g icsgroup -d / icsuser : status = 9 ... All Tasks Passed. Please check install log /var/sadm/install/logs/Sun_Java_System_Calendar_Server_install.B12181533 for further details.
Sun Cluster については、docs. sun.com に置かれた多くのマニュアルを参照してください。
一部のマニュアルのタイトルは次のとおりです。
『Sun Cluster Concepts Guide for Solaris OS』は、Sun Cluster ソフトウェアとデータサービスに関する一般的な背景情報を提供し、リソースタイプ、リソース、リソースグループの用語について解説します。
『Sun Cluster Data Services Planning and Administration Guide for Solaris OS』は、データサービスの計画と管理に関する一般的な情報を提供します。
『Sun Cluster System Administration Guide for Solaris OS』は、Sun Cluster の設定をソフトウェアで管理する手順について解説します。
『Sun Cluster Reference Manual for Solaris OS』は、SUNWscman および SUNWccon パッケージだけで利用できるコマンドも含め、Sun Cluster ソフトウェアで利用できるコマンドとユーティリティーについて解説します。