Sun Cluster HA for SAP の構成を計画するにあたっては、次のことを考慮してください。
フェイルオーバーが発生した場合にスタンバイサーバーにかかる総負荷は多めに見積もってください。フェイルオーバーが発生すると、中央インスタンスとデータベースインスタンスがスタンバイサーバーに同時に存在することがあるため、スタンバイサーバー上の CPU、スワップ、共有メモリー、入出力帯域幅に十分なリソースを割り当ててください。
次の場合は、ロギングファイルシステムを使用してください。
ボリュームマネージャが VxVM の場合は、VxFS と ダーティリージョンログを使用してください。
ボリュームマネージャが Solstice DiskSuite の場合は、Solaris の UFS ロギングまたは Solstice DiskSuite の UFS ロギングを使用してください。
SAP ソフトウェアとデータベース用にそれぞれ異なるディスクグループを構成してください。scinstall(1M) コマンドは、1 つの論理ホスト上に複数のディスクグループを構成できません。このため、クラスタの初期インストールで、scinstall(1M) を使用して論理ホストを設定しないでください。論理ホストの設定は、クラスタが動作した後、scconf(1M) を使用して行なってください。詳細は、scconf(1M) のマニュアルページを参照してください。
名前の長さは、できる限り 8 文字以下にしてください。ホスト名が 8 文字よりも長い場合、/etc/hosts ファイルを変更して、実際のホスト名に 8 文字以下の別名を付けてください。
SAP ガイドラインのとおりに、中央インスタンスのプロファイルの作業プロセスは Enqueue、Message、Dialog (1 つ)、および Update (1 つ) に制限してください。SAP ユーザーが中央インスタンス経由で SAP に接続できないように設定し、その代わりに、すべてのユーザーが代替アプリケーションサーバーに接続するように推奨してください。システム管理者と Sun Cluster HA for SAP は、単一の Dialog 作業プロセス経由で中央インスタンスに接続できます。
SAP およびデータベースは、大量のメモリーとスワップ空間を使用します。推奨するメモリーおよびスワップ条件については、SAP およびデータベースのマニュアルを参照してください。
中央インスタンスの論理ホストのすべての潜在的マスターの /var/opt/informix または /var/opt/oracle に、Oracle クライアントのバイナリ用の領域を用意してください。140M バイトほど必要です。詳細は、SAP のマニュアルを参照してください。
HA 1.3 または Sun Cluster 2.1 を Sun Cluster 2.2 にアップグレードするにあたっては、SAP に関わる次のことに注意してください。
HA 1.3 または Sun Cluster 2.1 で hasap_start_all_instances あるいは hasap_stop_all_instances スクリプトをカスタマイズしていた場合は、Sun Cluster 2.2 へのアップグレードを開始する前に、そのスクリプトファイルを安全な場所に保存し、アップグレードの完了後に復元してください。Sun Cluster 2.2 は古いスクリプトを削除するため、こうすることによって、カスタマイズ内容が失われるのを防ぐことができます。
Sun Cluster 2.2 に実装されている構成パラメータは、Solstice HA 1.3 や Sun Cluster 2.1 に実装されているものと異なります。このため、Sun Cluster 2.2 にアップグレードした後に、hadsconfig(1M) コマンドを実行して、Sun Cluster HA for SAP を再構成してください。
アップグレードを開始する前に、既存の構成を表示し、現在の構成変数を書き留めておいてください。Solstice HA 1.3 の場合は hainetconfig(1M) コマンド、Sun Cluster 2.1 の場合は、hadsconfig(1M) コマンドを使用して、それぞれ構成を表示することができます。Sun Cluster 2.2 にアップグレードした後に、hadsconfig(1M) コマンドを採用して、インスタンスを再作成してください。
Sun Cluster 2.2 では、hareg -n コマンドは、すべてのインスタンスおよび障害モニターを含めて、Sun Cluster HA for SAP データサービス全体を停止します。以前のバージョンでは、 Sun Cluster HA for SAP と組み合わせられたとき、hareg -n コマンドは、単に障害モニターだけを停止しました。
また、hareg -y を使用して Sun Cluster HA for SAP データサービスを起動する場合は、前もって SAP 中央インスタンスを停止しておく必要があります。停止しておかないと、Sun Cluster HA for SAP データサービスは、インスタンスを正しく起動、監視することができません。
従来、アプリケーションサーバーのインスタンスの停止および再起動は、中央インスタンスを再起動した後、手動で行なっていました。Sun Sun Cluster HA for SAP は、中央インスタンスの論理ホストがスイッチオーバーあるいはフェイルオーバーしたときに必ず呼び出されるフックを提供します。これらのフックは、hasap_stop_all_instances および hasap_start_all_instances スクリプトを呼び出すことによって提供されます。これらのスクリプトはべき等である必要があります。
アプリケーションサーバーを構成して、論理ホストがスイッチオーバーまたはフェイルオーバーしたときに自動的にアプリケーションサーバーを制御するには、個々の必要性に従って起動および停止スクリプトを作成します。Sun Cluster には、このためのサンプルスクリプト (/opt/SUNWcluster/ha/sap/hasap_stop_all_instances.sample および /opt/SUNWcluster/ha/sap/hasap_start_all_instances.sample) が用意されており、コピーしてカスタマイズすることができます。また、これらのスクリプトには、カスタマイズ例が含まれています。 サンプルスクリプトをコピーしてから、接尾辞 .sample を削除することによってファイル名を変更し、適宜、編集してください。
フェイルオーバーの発生後、Sun Cluster HA for SAP は、カスタマイズされたスクリプトを呼び出すことによって、アプリケーションサーバーを再起動します。これらのスクリプトは、中央インスタンスからアプリケーションを制御し、完全名で呼び出します。
構成にテストシステムまたは開発システムを含めている場合は、hasap_stop_all_instances スクリプトを編集して、中央インスタンスの論理ホストがフェイルオーバーしたときにテスト/開発システムを停止するようにしてください。
中央インスタンスの論理ホストのスイッチオーバーまたはフェイルオーバー中、スクリプトは次の順で呼び出されます。
hasap_stop_all_instances を呼び出すことにより、アプリケーションサーバーのインスタンスおよびテスト/開発システムを停止する
中央インスタンスを停止する
論理ホストおよびディスクグループのスイッチオーバーを行なう
再度、hasap_stop_all_instances を呼び出すことにより、全アプリケーションサーバーとテスト/開発システムの停止を確認する
中央インスタンスを起動する
hasap_start_all_instances を呼び出すことにより、アプリケーションサーバーのインスタンスを起動する
詳細は、hasap_start_all_instances(1M) および hasap_start_all_instances(1M) のマニュアルページを参照してください。
また、クラスタ内の全ホストおよび全物理ホストから各アプリケーションサーバーとテスト/開発システム上の SAP 管理アカウント (<sapsid>adm) に root アクセスできるようにする必要があります。テスト/開発システムの場合は、root にデータベース管理アカウント (ora<sapsid>) へのアクセス権も付与してください。これは、ユーザーに対して .rhosts ファイルを作成することによって実現します。
... phys-hahost1 root phys-hahost2 root phys-hahost3 root hahost1 root hahost2 root hahost3 root ... |
複数のアプリケーションサーバーまたは 1 つのテスト/開発システムを含む構成では、Sun Cluster HA for SAP に対して STOP_NET メソッドのタイムアウト値を大きくすることを検討してください。STOP_NET メソッドのデフォルトのタイムアウト値は 60 秒であるため、この値を大きくする必要があるのは、hasap_stop_all_instances スクリプトの実行に 60 秒を超える時間がかかる場合だけです。hasap_stop_all_instances スクリプトが 60 秒以内に終了しない場合は、STOP_NET のタイムアウト値を大きくしてください。
STOP_NET メソッドのタイムアウト値は、次のコマンドで確認できます。
# hareg -q sap -T STOP_NET |
hasap_dbms コマンドは、Sun Cluster HA for SAP が登録されていて、オフ状態のときにだけ使用できます。このコマンドは、1 つのノード (クラスタのメンバーになっているノード) 上でのみ実行してください。詳細は、hasap_dbms(1M) のマニュアルページを参照してください。
CCD に行を追加できない、あるいは CCD を更新できないことを示すエラーが hasap_dbms(1M) コマンドから返された場合は、その原因として、別のクラスタユーティリティも CCD を更新しようとしていることが考えられます。このエラーが発生した場合は、正しく実行されるまで hasap_dbms(1M) を再実行してください。hasap_dbms(1M) コマンドが正しく実行されたら、hareg コマンドを実行することによって、更新された CCD に必要な行がすべて含まれていることを確認してください。hareg(1M) コマンドからエラーが返された場合は、まず、hasap_dbms -f コマンドを実行することによって、元のメソッドのタイムアウト値を復元してください。次に、hasap_dbms -r コマンドを実行することによって、デフォルトの依存関係を復元してください。両方のコマンドが正常に終了したら、元の hasap_dbms(1M) コマンドを再実行して、新しい依存関係とメソッドのタイムアウト値を設定します。詳細は、hasap_dbms(1M) のマニュアルページを参照してください。
STOP_NET メソッドのタイムアウト値を大きくするには、次のコマンドを使用します。
# /opt/SUNWcluster/ha/sap/hasap_dbms -t STOP_NET=new_timeout_value |
STOP_NET メソッドのタイムアウト値を大きくした場合は、クラスタの再構成時に論理ホストを再マスターするときに Sun Cluster フレームワークが使用するタイムアウト値も大きくする必要があります。scconf(1M) コマンドを使用して、論理ホストのタイムアウト値を大きくしてください。『Sun Cluster 2.2 のシステム管理』のクラスタ遷移手順に対するタイムアウト値の設定についての説明を参照してください。loghost_timeout 値は、STOP_NET のタイムアウト値の少なくとも 2 倍にしてください。
アプリケーションサーバーがクラスタの外部に存在する場合は、中央インスタンスの論理ホストに Sun Cluster HA for NFS を構成する必要があります。クラスタ外部のアプリケーションサーバーは、SAP の中央インスタンスから SAP プロファイルディレクトリおよび実行可能なディレクトリを NFS マウントします。Sun Cluster HA for NFS の設定の詳細な手順については、第 11 章「Sun Cluster HA for NFS のインストールと構成」を参照してください。また、SAP に固有の次のガイドラインに注意してください。
同じクラスタ内の別のノードの NFS クライアントとしてノードを構成しないでください。
クラスタ内でアプリケーションサーバーを実行する場合は、NFS を実行する外部クラスタを設定する必要があります。アプリケーションサーバーと中央インスタンスは、外部の NFS クラスタからファイルをマウントします。
Sun Cluster HA for NFS と HA-DBMS、Sun Cluster HA for SAP データサービスの間には、起動の順序について依存関係があります。この依存関係は、特殊なスクリプトを使用して管理することができます。詳細は、「Oracle の SAP に対するデータサービスの依存関係の設定」または「Informix の SAP に対するデータサービスの依存関係の設定」 を参照してください。
通常は、すべての SAP インスタンスに次のディレクトリを共有させてください。
/usr/sap/trans
/sapmnt/<SAPSID>/exe
/sapmnt/<SAPSID>/global
/sapmnt/<SAPSID>/profile