SUNWscacsls パッケージには、Oracle Solaris Cluster と通信する ACSLS エージェントソフトウェアが含まれています。これには、ACSLS と Solaris Cluster との間の正しい操作を確保する特殊な構成ファイルとパッチが含まれています。
ダウンロードした SUNWscacsls.zip ファイルを /opt 内で unzip します。
# cd /opt # unzip SUNWscacsls.zip
SUNWscacsls パッケージをインストールします。
# pkgadd -d .
隣接するノードで手順 1 と 2 を繰り返します。
2 つのノードのいずれかで acslspool がマウントされたままになっていることを確認します。
# zpool status acslspool
acslspool がマウントされていない場合、ほかのノードを確認します。
acslspool がいずれのノードでもマウントされていない場合、次のようにして現在のノードにインポートします。
# zpool import -f acslspool
zpool status で確認します。
acslspool を所有するノードの /opt/ACSLSHA/util ディレクトリに移動し、copyUtils.sh スクリプトを実行します。この操作は、両方のノードで重要なファイルを更新するか適切な場所にコピーします。隣接するノードでこの操作を繰り返す必要はありません。
# cd /opt/ACSLSHA/util # ./copyUtils.sh
acslspool がアクティブになっているノードで、acsss ユーザーとして ACSLS アプリケーションを起動し (acsss enable)、これが動作していることを確認します。発生した問題をすべて解決します。主な問題は、ノードで STKacsls パッケージを削除して再インストールすることで解決することがあります。
STKacsls パッケージを再インストールする必要がある場合、パッケージのインストール後に /opt/ACSLSHA/util/copyUtils.sh スクリプトを実行します。
acsls を停止します。
# su - acsss $ acsss shutdown $ exit #
アクティブノードから acslspool をエクスポートします。
# zpool export acslspool
注記:
ユーザーacsss がログインしている場合、ユーザーシェルが acslspool 内のいずれかの場所でアクティブな場合、または acsss サービスが有効なままになっている場合、この操作は失敗します。隣接するノードから acslspool をインポートします。
# zpool import acslspool
このノードで ACSLS アプリケーションを起動して、ライブラリの操作が成功したことを確認します。発生した問題をすべて解決します。主な問題は、ノードで STKacsls パッケージを削除して再インストールすることで解決することがあります。
STKacsls パッケージを再インストールする必要がある場合、パッケージのインストール後に /opt/ACSLSHA/util/copyUtils.sh スクリプトを実行します。
この手順では、Solaris Cluster によって管理および制御される 3 つの ACSLS リソースを作成します。
acsls-rs は ACSLS アプリケーションそのものです。
acsls-storage は、ACSLS が存在する ZFS ファイルシステムです。
<logical host> は仮想 IP です (両方のノードに共通するネットワーク ID)。/etc/hosts の構成を参照してください。
これらのリソースハンドルが作成されたら、これらは acsls-rg の名前の下にある共通リソースグループに割り当てられます。
これらのリソースを構成するには、最初に acslspool がマウントされていることを確認し (zpool list)、次に /opt/ACSLSHA/util ディレクトリに移動して acsAgt configure を実行します。
# cd /opt/ACSLSHA/util # ./acsAgt configure
このユーティリティーでは論理ホスト名の入力を求めるプロンプトが表示されます。論理ホストが /etc/hosts ファイルで定義されていること、および対応する IP アドレスが、ACSLS HA 用の Solaris システムの構成の章で定義されている ipmp グループにマップされていることを確認してください。さらに、acsAgt configure を実行する前に、zpool list を使用して、acslspool が現在のサーバーノードにマウントされていることを確認します。
この構成手順は完了するまで 1 分以上かかる場合があります。リソースハンドルが作成されると、ACSLS アプリケーションを起動しようとする操作が行われます。
ACSLS クラスタの操作を表示するとき、複数の視点が存在します。Solaris Cluster が ACSLS アプリケーションを 1 分に 1 回プローブするとき、プローブが実行されるたびにプローブの結果が表示されると便利です。プローブがノードのスイッチオーバーイベントをトリガーするステータスを返すとき、1 つのノードでシャットダウンアクティビティーが表示され、隣接するノードで起動アクティビティーが表示されると便利です。一般的に、ACSLS アプリケーションの動作の健全性を時系列に沿って示すビューがあれば便利です。
操作上のもっとも重要な視点は、ACSLS の観点です。acsss_event.log の末尾には、刻一刻と変わるシステム全体の健全性についての最適な指標を表示できます。
/opt/ACSLSHA/util ディレクトリのツール event_tail.sh は、どちらか一方のノードから acsss_event.log への直接アクセスを提供します。このツールから提供されるビューは、制御が 1 つのノードから別のノードに切り替わってもアクティブなままになります。通常の ACSLS アクティビティーに加えて、このツールは ACSLS Cluster リソースグループ (acsls-rg) のステータス変更を動的に追跡し、1 つのノードがオフラインになり別のノードがオンラインになるときのリアルタイムビューが可能です。このツールは次のようにシェルから発行します。
# /opt/ACSLSHA/util/event_tail.sh
単一ノードの観点から開始アクティビティーおよび停止アクティビティーを表示するには、次のようにそのノードから start_stop_log を表示します。
# tail -f /opt/ACSLSHA/log/start_stop_log
アクティブなノード上の定期的なプローブの結果を表示するには:
# tail -f /opt/ACSLSHA/log/probe_log
Solaris Cluster および ACSLS Cluster エージェントは、重要なイベントの詳細を Solaris システムログ (var/adm/messages) に送信します。指定されたノード上のシステムログを表示するために、/opt/ACSLSHA/log ディレクトリ内にリンクが提供されます。
# tail -f /opt/ACSLSHA/log/messages
クラスタ構成には多くの視点があり、時間の経過に応じてクラスタ制御が 1 つのノードから別のノードに移行するため、システムの操作アクティビティーを単一の観点から刻一刻と追跡することが困難な場合があります。ha_console.sh ユーティリティーを使用すれば、包括的なビューをさらに簡単に提供できます。
ACSLS HA システムのいずれかのノードにリモートデスクトップからログインし、 を実行します。このユーティリティーは、ログイン ID (
ha_console.shwho am i) をチェックして表示内容の送信先を判断します。ローカルコンソールまたはデスクトップシステムから HA ノードに直接ログインし、表示を参照します。問題が発生した場合は、/opt/ACSLSHA/log ディレクトリの gnome-terminal.log 内でメッセージを探してください。
# /opt/ACSLSHA/util/ha_console.sh
このユーティリティーは、このセクションに記載されているすべてのログを両方のノードからモニターします。これはローカルのコンソール画面で 7 つの gnome-terminal ウィンドウを起動します。画面上に次のようにウィンドウを整理すると、便利なことがあります。
1 つの端末表示から、ACSLS クラスタコンプレックス全体の包括的なビューが表示されます。
リモートシステムは表示データをローカル画面に送信するため、ローカルシステム上で X-11 アクセスを開きます。UNIX システムでは、これを実行するコマンドは xhost + です。Windows システムでは、xming や exceed などの X-11 クライアントソフトウェアをインストールする必要があります。
ha_console.sh の使用に問題がある場合は、ローカルシステムから各ノードに対して複数のログインセッションを開いて、このセクションに記載されているさまざまなログを表示できます。
acslsha が起動して Solaris Cluster に登録されたら、クラスタコマンドを使用して、ACSLS リソースグループとそれに関連するリソースのステータスを確認します。
# clrg status
=== Cluster Resource Groups ===
Group Name Node Name Suspended Status
---------- --------- --------- ------
acsls-rg node1 No Online
node2 No Offline
# clrs status
=== Cluster Resources ===
Resource Name Node Name State Status Message
------------- --------- ----- --------------
acsls-rs node1 Online Online
node2 Offline Offline
acsls-storage node1 Online Online
node2 Offline Offline
<logical host> node1 Online Online
node2 Offline Offline
初期テストを容易にするために、クラスタのフェイルオーバー準備を一時的に中断します。
# clrg suspend acsls-rg # clrg status
アクティブノードからスタンバイへのクラスタの切り替え操作をテストします。
# cd /opt/ACSLSHA/util # ./acsAgt nodeSwitch
スイッチオーバーアクティビティーは、前のセクションで説明されている手順を使用して複数の観点からモニターできます。
ACSLS サーバーの論理ホスト名を使用して、ACSLS クライアントシステムからネットワーク接続を確認します。
# ping acsls_logical_host # ssh root@acsls_logical_host hostname passwd:
この操作は、アクティブノードのホスト名を返します。
ACSLS 操作を確認します。
# su acsss $ acsss status
反対側のノードから手順 3、4、および 5 を繰り返します。
クラスタのフェイルオーバー準備を再開します。
# clrg resume acsls-rg # clrg status
次の一連のテストには、ノードのフェイルオーバー動作の検証が含まれます。
複数のフェイルオーバーシナリオを連続して実行するために、デフォルトの応答間隔を 20 分から 5 分に下げます。(詳細は、ACSLS HA の微調整の章を参照してください。)テスト目的の場合、デフォルト設定を下げるのが簡単です。
応答間隔を変更するには、/opt/ACSLSHA/util ディレクトリに移動して、acsAgt pingpong を実行します。
# ./acsAgt pingpong Pingpong_interval current value: 1200 seconds. desired value: [1200] 300 Pingpong_interval : 300 seconds
アクティブノードをリブートして、2 つのシステムコンソールと、ACSLS クラスタ操作のモニタリングで提示した観点から操作をモニターします。スタンバイノードへの自動フェイルオーバー操作を確認します。
手順 4 で提示されているように、クライアントシステムから論理ホストへのネットワークアクセスを確認します。
ACSLS 操作が新しいノードでアクティブになったら、このノードをリブートして、反対側のノードへのフェイルオーバーアクションを調べます。
ha_console.sh を使用して操作をモニターする場合、リブートノードに関連するウィンドウが表示されなくなることがあります。そのノードが再稼働したら、いずれかのノードで ha_console.sh コマンドをもう 1 回実行して、新しくリブートしたノードからウィンドウを復元します。
手順 4 で提示されているネットワークの確認を繰り返します。
ACSLS クラスタの操作には、フェイルオーバーシナリオの完全なセットが提供されています。ACSLS HA システムを本番環境に配置する前に、これらのシナリオをいくつでもテストできます。システムを本番環境に戻す前に、推奨される応答間隔の設定に復元してフェイルオーバーが常時繰り返されないようにします。