![]() | |
Sun Java System Application Server 7 2004Q2 Update 1 Standard および Enterprise Edition インストールガイド |
第 2 章
HADB の設定準備クラスタの一部であるサーバーに高可用性コンポーネントをインストールすると、高可用性の設定準備が整います。
ここでは次の項目について説明します。
ここで説明するタスクを実行したあと、クラスタ、ロードバランサプラグイン、および高可用性データベース (HADB) の設定と管理の詳細な手順について『Sun Java System Application Server Administration Guide』を参照してください。
高可用性のトポロジについては、『Sun Java System Application Server システム配備ガイド』を参照してください。
Windows での HADB の設定Windows プラットフォームで使用可能な HADB のバージョンは、UNIX プラットフォームではバージョン 4.3.x であるのに対し 4.4.x です。このため、Windows での HADB の設定および管理に関し、UNIX バージョンからの変更点がいくつかあります。これらの変更は、この章の適切な箇所で説明されています。
HADB データベースとともに Application Server を設定する場合、「clsetup の使用」で説明されているように Windows プラットフォームでは、clsetup ユーティリティを使用できます。この節の例は UNIX 専用のものです。Windows プラットフォームには、適切な変更を行ってください。
Windows プラットフォームでの HADB の設定および実行の詳細については、『Sun Java System Application Server 7 2004Q2 Update 1 Administration Guide』の第 21 章「Administering High Availability on Windows」を参照してください。
2 つの HADB バージョン間の主な違いは次のとおりです。
HADB 4.4.x のこれらおよび他の変更点については、『Sun Java System Application Server 7 2004Q2 Update 1 Administration Guide』を参照してください。
共有メモリとセマフォの設定このセクションには、UNIIX プラットフォームでの HADB ホストマシンの共有メモリ設定についての手順が記載されています。HADB を使用する前に、共有メモリを設定する必要があります。
Solaris での共有メモリの設定
- root としてログインします。
- 次のコマンドを共有メモリ用の /etc/system ファイルに追加します。
set shmsys:shminfo_shmmax=0x80000000
set shmsys:shminfo_shmseg=20この例では、共有メモリ shmmax を 2G バイト (16 進 0x80000000) に設定しています。これは、ほとんどの設定に十分な値です。
shmsys:shminfo_shmmax の設定は 256M バイトごとに 0x10000000 として計算され、ホストのメモリサイズと同じに設定します。ホストのメモリを決定するには、次のコマンドを実行します。
prtconf | grep Memory
そのあと、ホストのメモリ値を次の式に入力します。
((<host> M バイト / 256M バイト) * 0x10000000)
セマフォの場合:
/etc/system ファイルには、あらかじめ semmni、semmns、および semmnu エントリが含まれている場合があります。次に例を示します。
set semsys:seminfo_semmni=10
set semsys:seminfo_semmns=60
set semsys:seminfo_semmnu=30このエントリが存在する場合は、次のように 16、128、および 1000 をそれぞれ追加することで、値を増加させます。
set semsys:seminfo_semmni=26
set semsys:seminfo_semmns=188
set semsys:seminfo_semmnu=1030/etc/system ファイルに上述のエントリが含まれていない場合は、ファイルの末尾に次のエントリを追加します。
set semsys:seminfo_semmni=16
set semsys:seminfo_semmns=128
set semsys:seminfo_semmnu=1000これは、コンピュータ上の最大 16 個の HADB ノードを起動するために十分な値です。
- コンピュータを再起動して共有メモリの設定を有効にします。
ノード数が 16 個を超える場合については、『Sun Java System Performance Tuning Guide』の「HADB」の章を参照してください。
Linux での共有メモリの設定
- 共有メモリを 512M バイトに増やすには、次のコマンドを実行します。
echo 536870912 > /proc/sys/kernel/shmmax
echo 536870912 > /proc/sys/kernel/shmallshmmax は単一の共有メモリセグメントの最大サイズで、shmall は利用可能な共有メモリの合計です。
デフォルトの値を使用する標準 HADB ノードの場合は、この値で十分です。より大きなサイズのメモリを使用する場合は、この値を大きくする必要があります。
- shmmax で指定されているデフォルトの共有メモリ制限は、proc ファイル内でマシンを再起動することなく変更できます。さらに、sysctl(8) を使用して値を変更することもできます。
- これらの変更を適用するには、kernel.shmmax=536870912の行を /etc/sysctl.conf ファイルに追加します。このファイルは、ブートプロセス中に使用されます。
echo kernel.shmmax=536870912 /etc/sysctl.conf
HADB ノードの説明ついては、 『Sun Java System Application Server Administration Guide』の「Administering the High-Availability Database (Enterprise Edition)」の章の「Configuring the HADB」を参照してください。また、ストレステストとパフォーマンステストについては、『Sun Java System Application Server Performance Tuning Guide』を参照してください。
ホスト通信の設定
HADB の管理用のリモートアクセスを実装するには、HADB サーバーと HADB 管理クライアントを稼働させるために使用するすべてのマシンが、リモートシェル (RSH) またはセキュアシェル (OpenSSH/SSH) 用に設定されている必要があります。この手順は UNIX プラットフォームの場合だけ必要です。
RSH は単純なリモートシェルコマンドであり、セキュリティ機能はありません。SSH 通信チャネルは、HADB ノード間で渡されるデータを暗号化することによって、一定レベルのセキュリティを提供します。
注
Solaris 9 および 10 の場合は、SSH をデフォルトでインストールすることをお奨めします。
Solaris 8 では、デフォルトでは SSH はインストールされません。使用している Solaris 8 システム上に SSH がない場合は、「Solaris 8 への SSH のインストール」の手順に従ってください。
SSH を使用したいが設定されていない場合は、hadbm コマンドを使用できません。SSH が認識されていることを確認するには、「SSH の要件と制限事項」を参照してください。
このセクションには、次の説明があります。
HADB 管理のための RSH の設定
SSH ではなく RSH を使用する場合は、set managementProtocol オプションを使って RSH を明示的に指定する必要があります。clresource.conf ファイルでこのパラメータを設定する方法については、表 2-3 を参照してください。
SSH は RSH よりも安全であるため、hadbm create コマンドのデフォルトとして強くお勧めします。
RSH を実装するには、次の手順を実行します。
- root としてログインします。
- Linux プラットフォームの場合だけ、/etc/securetty ファイルに次の内容を追加します。
rexec
rsh
rlogin
pts/0
pts/1さらに、/etc/xinetd.d/ の下の rexec、rlogin、およびrsh ファイルで、disable=no に変更します。
- /etc/hosts ファイルを編集して、ローカルホストのホスト名など、選択したすべての HADB ホストのエントリを組み込みます。localhost の形式を使用します。次に例を示します。
computer1.xbay.company.com
computer99.zmtn.company.com- このファイルを、選択したすべてのインストールホストの /etc/hosts ファイルに追加します。
- HADB ユーザーの $HOME ディレクトリで、.rhosts ファイルを作成します。
- グループやその他に対して読み取り専用のアクセス権が設定されていることを確認します。
各 HADB ホストのホスト名を追加します。このホスト名にはローカルホストの名前が含まれ、そのあとにデータベースユーザーの名前が続きます。たとえば、データベースユーザーが Jon の場合は次のようになります。
computer1.xbay.company.com Jon
computer99.zmtn.company.com Jon
mine456.red.mycompany.com Jon- このファイルを各 HADB ホストの .rhosts に追加します。
- 各ホストのホスト通信をチェックします。次に例を示します。
rsh computer99.zmtn.company.com uname -a
ID は他のホストから返されます。
HADB 管理のための SSH の設定
SSH は RSH よりも安全であるため、hadbm create コマンドを使用する場合に強くお勧めします。
注
セキュリティの観点から、RSA ベースのバージョン 1 のプロトコルではなく、DSA ベースのバージョン 2 のプロトコルをお勧めします。選択するバージョンは、サイトで使用している SSH クライアントソフトウェアによって異なります。
この節では、次のトピックを取り上げます。
SSH の要件と制限事項
注
SSH は、Solaris 9 システムにはデフォルトでインストールされますが、Solaris 8 にはデフォルトでインストールされません。Solaris 8 に SSH をインストールするには、「Solaris 8 への SSH のインストール」を参照してください。
SSH を設定するときは、次の要件の一部またはすべてを考慮する必要があります。
/usr/bin
- バイナリがシステム上にあっても、その場所が正しくない場合は、/usr/bin から正しい場所へのシンボリックリンクを作る必要があります。
- Solaris 8 システムの場合、SSH バイナリはデフォルトではインストールされないため、存在しない可能性があります。この場合は、「Solaris 8 への SSH のインストール」の手順に進んでください。
- サポート - サポートは、SunSSH と OpenSSH だけが対象です。別のバージョンの SSH を使用する場合は、該当の製品のマニュアルに記載されている設定手順を参照して、SSH 通信が正しく機能することを確認してください。
- OpenSSH クライアントおよびデーモン - OpenSSH クライアントおよびデーモンがある環境で実行中の場合、キーファイルに次のように名前を付けてください。
~/.ssh/authorized_keys2 または ~/.ssh/authorized_keys
- root 特権で実行 - HADB 管理クライアントを root として実行している場合は、すべてのマシンの sshd 設定 (/etc/ssh/sshd_config) で PermitRootLogin パラメータを必ず yes に設定してください。
注
デフォルトでは、Sun SSH は root 特権でのログインを許可しないため、これは no に設定されています。sshd 設定を変更した場合は、sshd を再起動する必要があります。サービスを再起動するには、次のように入力します。
/etc/init.d/sshd stop/start
- SSH プロトコルのバージョン 2 をサポートしない - SSH クライアントおよびデーモンが SSH プロトコルのバージョン 2 をサポートしていない場合は、オプションを付けずに ssh-keygen を実行する必要があります。このキーファイルに、id_dsa.pub ではなく identity.pub という名前が付きます。このファイルは ~/.ssh/authorized_keys に追加する必要があります。
- 混在した SSH 環境 - 混在した SSH 環境で操作する場合は、~/.ssh/authorized_keys2 ファイルと ~/.ssh/authorized_keys ファイルの両方を作成する必要があります。後者には、バージョン 1 とバージョン 2 の両方のキーが含まれている場合があります。
- 同じ場所に置く - Sun Java System Application Server と HADB を同じマシン上の同じ場所に置く場合は、次のコマンドのどちらかを実行して、.ssh ディレクトリの下に known_hosts ファイルを作成する必要があります。
ssh localhost
または
ssh hostname
Solaris 8 への SSH のインストール
Solaris 8 システムでは、ssh バイナリおよび scp バイナリはデフォルトではインストールされません。これらのバイナリが Solaris 8 システム上にない場合は、次の手順を実行します。
- 次のサイトに移動します。
http://www.sunfreeware.com/openssh8.html
このサイトでは、次のようなメッセージが表示されることがあります。
===PLEASE NOTE!!!............ make a note of some of the mirror sites so that if the servers are down, you can still download from a mirror site.
このようなメッセージが表示された場合は、「FTP/Mirror Sites」のリンクのリストにあるミラーサイトのいずれかにアクセスしてみてください。次に例を示します。
http://sunfreeware.secsup.org/
- このサイトで、インストールの手順に従って、必要な OpenSSH のパッケージとパッチのすべてをダウンロードしてインストールします。
これで SSH を設定する準備が整いました。
SSH の設定
ssh バイナリおよび scp バイナリがすでにインストールされているシステム上に SSH を設定するには、次の節で説明する手順のどちらかを実行します。
マウントされていないホームディレクトリの SSH
ホームディレクトリがマウントされていないシステムに SSH を実装するには、次の手順を実行します。
- SSH 要件が理解されていて、「SSH の要件と制限事項」に示す要件が満たされていることを確認します。
- HADB ユーザーとしてホストにログインします。
- 次のコマンドを実行して、キーを生成します。
ssh-keygen -t dsa
SSH1 と OpenSSH/1 の場合、通常は ssh-keygen コマンドにパラメータを付ける必要はありません。
- 次の 3 つのプロンプトに対して、Enter を押してデフォルトのオプションを受け入れます。
- クラスタ内のすべてのマシンに対して手順 1、2、および 3 を繰り返します。
~/.ssh ディレクトリ内にある identity.pub または id_dsa.pub というファイル (SSH のバージョン 1 とバージョン 2 のどちらを使うかによって異なる) に公開鍵が格納されます。マシンに接続する際のパスワード入力を不要にするには、このファイルの内容を、すべてのマシン上の authorized_keys というファイルに追加する必要があります。
- ログイン ID を設定するには、ユーザーディレクトリに移動します。
~/.ssh.
SSH1、OpenSSH/1 の場合、次の手順を行います。
- すべての HADB マシンの ~/.ssh ディレクトリに、authorized_keys ファイルをコピーします。
- ssh ディレクトリ、HADB ユーザーのホームディレクトリ、および .ssh/authorized_keys ファイルに対して、グループとその他の書き込み権がないことを確認します。
必要に応じて、これらのグループやその他の書き込み権を、次のようにして無効にします。
chmod og-w ~/.ssh
chmod og-w ~/.ssh/authorized_keys
chmod og-w $HOME$HOME を HADB ユーザーのホームディスクと置き換えます。たとえば、次のようにします。
chmod og-w ~/johnsmith
- ユーザーが入力しなくてもログインできるようにするには、SSH 環境を設定したあとにはじめて SSH を使用するときに、/.ssh ディレクトリの下の known_hosts ファイルへ次のようにノードマシン名を追加する必要があります。
- SSH が正しく設定されたことを確認するには、HADB の管理ツールを実行する前に、クラスタ内の各ホストに対してSSH の確認を行います。
パスワードの入力は必要なく、自動ログインします。
マウントされているホームディレクトリの SSH
ホームディレクトリがマウントされているシステムに SSH を実装するには、次の手順を実行します。
- 「SSH の要件と制限事項」に示すように、SSH 要件が満たされていることを確認します。
- HADB ユーザーとしてホストにログインします。
- 次のコマンドを実行して、キーを生成します。
ssh-keygen -t dsa
SSH1 と OpenSSH/1 の場合、通常は ssh-keygen コマンドにパラメータを付ける必要はありません。
- 次の 3 つのプロンプトに対して、Enter を押してデフォルトのオプションを受け入れます。
~/.ssh ディレクトリ内にある identity.pub または id_dsa.pub というファイル (SSH のバージョン 1 とバージョン 2 のどちらを使うかによって異なる) に公開鍵が格納されます。マシンに接続する際にパスワードの入力が求められないようにするには、このファイルの内容を、すべてのマシン上の authorized_keys2 というファイルに追加する必要があります。これは次のようにして行います。
- ログイン ID を設定するには、ユーザーディレクトリに移動します。
~/.ssh.
SSH1、OpenSSH/1 - identity.pub ファイルをコピーし、それに authorized_keys という名前を付けます。
OpenSSH/2 - id_dsa.pub ファイルをコピーし、それに authorized_keys という名前を付けます。
- ssh ディレクトリと .ssh/authorized_keys ファイルに、グループとその他に対する書き込み権がないことを確認します。
必要に応じて、これらのグループやその他の書き込み権を、次のようにして無効にします。
chmod og-w ~/.ssh
chmod og-w ~/.ssh/authorized_keys
chmod og-w /$HOMEHOME を HADB ユーザーのホームディスクと置き換えます。次に例を示します。
chmod og-w ~/johnsmith
- ユーザーが入力しなくてもログインできるようにするには、SSH 環境を設定したあとにはじめて SSH を使用するときに、/.ssh ディレクトリの下の known_hosts ファイルへノードマシン名を追加する必要があります。
ssh machine_name
machine_name を known_hosts ファイルに追加するかどうかのメッセージが表示されたら、「Yes」と答えます。これで、何も入力することなくログインできます。
- SSH が正しく設定されたことを確認するには、HADB の管理ツールを実行する前に、クラスタ内の各ホストに対してSSH の確認を行います。
パスワードの入力は必要なく、自動ログインします。
Solaris で VERITAS ファイルシステムを使う場合の HADB の使用法
Solaris でVERITAS ファイルシステムを使用する場合、HADB 履歴ファイルのメッセージ WRN: Direct disk I/O mapping failed を取得します。
このメッセージは、HADB がデータおよびログデバイスの「direct I/O」をオンすることを不可能であることを示します。direct I/O とは、ディスクのページを記述する CPU コストを削減し、さらにオペレーティングシステムのダーティデータページを管理するオーバーヘッドも少なくするパフォーマンス強化策です。
VERITAS で direct I/O を使用するには、オプション mincache=direct でマウントされるファイルシステムに、データおよびログデバイスを作成する必要があります。このオプションは、ファイルシステムで作成されるすべてのファイルに適用されることに注意してください。詳細については、コマンド mount_vxfs(1M) を参照してください。
もう 1 つの方法は VERITAS Quick I/O 機能を使用することです。事実上、この製品は raw I/O を行い、ファイルシステムのファイルを可能にします。詳細については、VERITASのマニュアル『VERITAS File Systema 4.0 Administrator's Guide for Solaris』を参照してください。
Linux で ext ファイルシステムを使う場合の HADB の使用方法
HADB は Red Hat Advanced Server 2.1 での ext3 ファイルシステムをサポートしていません。ext2 だけをサポートしています。ext3 ファイルシステムは Red Hat Advanced Server 3.0 の HADB でサポートされます。
ユーザー環境の設定
ホスト通信を設定すると、次のようにして、hadbm コマンドを install_dir/SUNWhadb/4/bin ディレクトリから実行できます。
ただし、高可用性の管理クライアントのコマンドをどこからでも使用できるようにローカル環境を設定すると、より便利です。これを設定するには、次の手順を実行します。
- PATH 変数を次のように設定します。
setenv PATH ${PATH}:install_dir/bin:install_dir/SUNWhadb/4/bin
- 次のコマンドを実行して、PATH 設定が正しいことを確認します。
which asadmin
which hadbm- 複数の Java バージョンがインストールされている場合は、JAVA_HOME 環境が Enterprise Edition の JDK バージョン 1.4.2_05 にアクセスしていることを確認します。
setenv JAVA_HOME java_install_dir
setenv PATH ${PATH}:${JAVA_HOME}/bin- HADB デバイスファイルおよびログファイルがデフォルトの場所にない場合 (appserver_install_dir/SUNWhadb/4)、次の hadbm コマンドを使用してこれら重要なファイルを検索します。
hadbm get configpath
hadbm get devicepath
hadbm get historypath
hadbm get installpathこれらのコマンドで表示された場所をバックアップします。
root 以外の特権に対する管理の設定デフォルトでは、Sun Java System Application Server の初期インストールまたは設定時、Sun Java System Application Server 用に作成されたファイルとパスの書き込み権はルートだけに与えられます。ルート以外のユーザーが Sun Java System Application Server を作成したり管理したりする場合、関連するファイルの書き込み権を、その特定のユーザー、またはそのユーザーが属するグループに与える必要があります。影響を受けるファイルとそのデフォルトの場所は次のとおりです。
次の手順で説明するように、Sun Java System Application Server を管理するためのユーザーグループを作成できます。もう 1 つの方法は、特定のユーザーにアクセス権と所有権を設定することです。
Sun Java System Application Server のユーザーグループを作成し、インストールルートディレクトリのアクセス権を設定するには、影響を受けるファイルのそれぞれに対して次の手順を繰り返します。
- root としてログインします。
- コマンドプロンプトから、Sun Java System Application Server ユーザーグループを作成します。次に例を示します。
# groupadd s1asuser
コマンド行で groupadd と入力して、適切な使用法を表示します。
- 影響を受けるファイルのそれぞれのグループ所有権を、新たに作成したグループに変更します。次に例を示します。
chgrp -R sjsasuser install_config_dir/cl*.conf
- 新しく作成したグループの書き込み権を設定します。
chmod -R g+rw install_config_dir/cl*.conf
- 影響を受けるファイルのそれぞれで、手順 3 と 4 を繰り返します。
- clsetup コマンドと cladmin コマンドを、新しく作成したグループで作成できるようにします。次に例を示します。
chmod -R g+x install_dir/bin/cl*
- --sysuser オプションを使って、デフォルトのドメインである domain 1 を削除してから再度作成します。sysuser も新たに作成したグループに属する必要があります。次に例を示します。
asadmin delete-domain domain1
asadmin create-domain --sysuser bleonard --adminport 4848 --adminuser admin --adminpassword password domain1
clsetup の使用clsetup ユーティリティの目的は、一般的な設定で基本クラスタを設定するプロセスを自動化することです。clsetup コマンドは install_dir/bin にあります。install_dir は、Sun Java System Application Server ソフトウェアがインストールされているディレクトリです。
clsetup ユーティリティは、cladmin コマンドとともに Sun Java System Application Server ソフトウェアにバンドルされています。
注
cladmin コマンドは、インストールと設定のすべてのタスクが完了したあとで、クラスタの設定と管理のプロセスを効率化するために使用します。HADB の作成方法と cladmin コマンドの使用方法については、『Sun Java System Application Server Administration Guide』を参照してください。
ここでは次の項目について説明します。
clsetup の機能
clsetup ユーティリティは、Sun Java System Application Server コマンドのセットです。これを使えば、事前に内容が設定されている入力ファイルに基づいて、自動的にクラスタを設定できます。クラスタ設定の一部として、HADB が作成されます。ただし、『Sun Java System Application Server Administration Guide』で説明されているように、hadbm コマンドを使用して作業用クラスタを設定する必要があります。
注
clsetup ユーティリティインタフェースは不確定です。不確定なインタフェースとは試験的または一時的なインタフェースであるため、次のリリースで互換性がなくなったり、削除されたり、または安定したインタフェースに置き換えられたりする場合があります。
この節では次の項目について説明します。
入力ファイルの機能
clsetup ユーティリティでは、次の 3 つの入力ファイルを使ってクラスタを設定します。
- clinstance.conf - このファイルは、アプリケーションサーバーインスタンスの server1 と server2 に関する情報が事前に設定されています。このファイルの内容の詳細については、「clinstance.conf ファイル」を参照してください。
- clpassword.conf - このファイルには、Sun Java System Application Server 7.1 Enterprise Edition ソフトウェアをインストールしたときに指定した、domain1 の管理サーバーパスワードが事前に設定されています。このファイルの内容の詳細については、「clpassword.conf ファイル」を参照してください。
- clresource.conf - このファイルには、クラスタリソースであるHADB、JDBC 接続プール、JDBC リソース、およびセッションストアとセッション持続性に関する情報が事前に設定されています。このファイルの内容の詳細については、「clresource.conf ファイル」を参照してください。
一般的なクラスタの設定をするようあらかじめ設定されている、clsetup 設定パラメータを使用します。別の設定をサポートするには、設定ファイルの一部、またはすべてを編集します。
clsetup が実行する内容
clsetup 入力ファイルに事前に設定されている値を使って、clsetup ユーティリティコマンドは次のことを行います。
- domain1 というデフォルトのドメイン内に、server2 という新しいサーバーインスタンスを作成します。server2 の HTTP ポート番号は、インストール時に server1 に指定した HTTP ポート番号の次に続く番号です。たとえば、インストール時に server1 にポート番号 80 を指定すると、server2 のポート番号は 81 です。
- ローカルマシン上に 2 つのノードを持つ hadb という HADB を作成します。ポートベースは 15200 で、データベースパスワードは password です。
- HADB にセッション情報を格納するために必要な HADB 表を作成します。
- clinstance.conf ファイル (server1、server2) にリストされているすべてのインスタンスに、appservCPL という接続プールを作成します。
- clinstance.conf ファイル (server1、server2) にリストされているすべてのインスタンスに、jdbc/hastore という JDBC リソースを作成します。
- clinstance.conf ファイル (server1、server2) にリストされているすべてのインスタンスに、セッション持続性情報を設定します。
- clinstance.conf ファイル (server1、server2) にリストされているすべてのインスタンスに RMI/IIOP クラスタを設定し、RMI/IIOP フェイルオーバーを有効にします。
- clinstance.conf ファイル (server1、server2) にリストされているすべてのインスタンスで、SFSB フェイルオーバーを設定します。
- clinstance.conf ファイル (server1、server2) にリストされているすべてのインスタンスで高可用性を有効にします。
clsetup が使用するコマンド
clsetup ユーティリティは、多数の hadbm コマンドと asadmin コマンドを使ってクラスタを設定します。表 2-1 では、左側の列に clsetup のタスクを示し、右側の列にタスクの実施に使われるコマンドを示しています。
clsetup の要件と制限事項
clsetup ユーティリティには、次の要件と制限が適用されます。
- インストールパス、デバイスパス、設定パスなどは、クラスタの一部を構成するすべてのマシン上で同じでなければいけません。
- clsetup を使用する前に、ローカルマシンで asadmin ユーティリティおよび hadbm ユーティリティが利用可能になっている必要があります。clsetup は、次のコンポーネントがインストールされているマシンだけで実行できます。
- clsetup を使用するには、「共有メモリとセマフォの設定」の説明に従って、UNIX プラットフォーム用の共有メモリを設定します。clsetup ユーティリティは共有メモリの値を設定しません。
- clsetup ユーティリティを使用するには、「ホスト通信の設定」の説明に従って、UNIX プラットフォームで SSH または RSH 用の HADB クラスタホスト通信を設定します。
- デフォルトではない RSH を使用する場合は、clresource.conf ファイルの次の行のコメント指定を外します。
- SSH を使用する同じマシン上で Application Server と HADB を同じ場所に置く場合は、known_hosts ファイルが .ssh ディレクトリの下に存在している必要があります。このファイルが存在しない場合は、clsetup を使用する前に、ssh localhost または ssh hostname コマンドのどちらかを実行します。
- clsetup を実行する前に、クラスタの一部である Sun Java System Application Server のすべてのインスタンスの管理サーバーを起動する必要があります。
- 管理者のパスワードは、クラスタの一部であるすべてのドメイン間で同じである必要があります。
- 処理するエントリ (HADB ノードと Application Server インスタンス) がすでに存在する場合、clsetup コマンドはそれらを削除したり再設定したりしないで、各設定手順は省略されます。
- 入力ファイルで指定した値は、クラスタ内のすべてのインスタンスで同じになります。clsetup は異なる値でインスタンスを設定するように設計されていません。たとえば、clsetup は、インスタンスごとに設定が異なる JDBC 接続プールは作成できません。
- clsetup では、inetd は設定されません。HADB は inetd 設定なしで作成されます。inetd の設定手順については、『Sun Java System Application Server Administration Guide』を参照してください。
- シェル初期化ファイル内のホスト名 - .cshrc または .login ファイルにホスト名とともにプロンプトを組み込むと、clsetup が停止したように見えることがあります。リモートコマンドの実行中のプロンプトと余剰な出力を削除します。たとえば、hostB で hostname コマンドを実行したときに、プロンプトなしで hostB が印刷される必要があります。
- clsetup を root 以外のユーザーとして実行するには、「root 以外の特権に対する管理の設定」で説明されている手順に従ってください。
clsetup 入力ファイルの編集
clsetup コマンドに必要な入力ファイルは、インストール処理の中で設定インストールディレクトリ (デフォルトは、UNIX では /etc/opt/SUNWappserver7、Windows では c:¥Sun¥AppServer7¥config¥ ) の下にインストールされます。これらの入力ファイルには通常設定の値が事前に入力されており、使用する設定に応じて変更できます。
このセクションには、次の内容があります。
clinstance.conf ファイル
clsetup を動作させるため、クラスタの一部であるすべてのアプリケーションサーバーのインスタンスが clinstance.conf ファイルに定義されている必要があります。インストール中に、2 つのインスタンスのエントリにより clinstance.conf ファイルが作成されます。クラスタにインスタンスを追加する場合は、そのインスタンスに関する情報を次のように追加する必要があります。
クラスタの一部であるインスタンスごとに 1 組のエントリが必要です。ハッシュマーク (#) で始まる行はコメントとして扱われます。
注
これらのエントリの clinstance.conf ファイルでの順序は重要であるため、ここで示す順序は変更しないでください。その他のアプリケーションサーバーインスタンスに関する情報を追加する場合、これらのインスタンスのエントリは同じ順序で表示される必要があります。コメントはファイルの任意の場所に追加できます。
表 2-2 では、clinstance.conf ファイル内のエントリに関する情報を説明しています。左側の列にはパラメータ名、中央の列にはパラメータの定義、右側の列にはデフォルト値を示しています。
clinstance.conf ファイルの例
この clinstance.conf ファイルには、2 つのインスタンスに関する情報が含まれています。
#Instance 1
instancename server1
user admin
host localhost
port 4848
domain domain1
instanceport 80#Instance 2
instancename server2
user admin
host localhost
port 4848
domain domain1
instanceport 81clpassword.conf ファイル
clsetup を実行するとき、asadmin コマンドには管理サーバーのパスワードが必要です。このパスワードは、インストール時に clpassword.conf ファイルに指定されます。
clpassword.conf ファイルの形式は次のとおりです。
password は管理サーバーのパスワードです。
アクセス権 0600 が clpassword.conf ファイルに事前設定されています。このファイルにアクセスできるのは root ユーザーだけです。
clresource.conf ファイル
インストール中に clresource.conf ファイルが作成されて、通常の設定が行われます。clresource.conf ファイルには、クラスタの一部である次のリソースに関する情報が含まれています。
UNIX プラットフォームでは、アクセス権 0600 が clresource.conf ファイルに事前設定されています。このファイルにアクセスできるのは root ユーザーだけです。
注
clsetup を実行する前に、最適化や別の設定のために、clresource.conf ファイルに指定した値を変更することができます。値を編集する場合は、ファイルの順序と形式を変更しないでください。
ハッシュマーク (#) で始まる行はコメントとして扱われます。
次の表では、clresource.conf ファイルのパラメータについて説明しています。左側の列にはパラメータ名、中央の列にはパラメータの定義、右側の列にはデフォルト値を示しています。
表 2-3 では、clresource.conf ファイルの HADB パラメータについて説明しています。
データベース名は、clresource.conf ファイルの [HADBINFO] セクションの末尾に指定されます。
表 2-4 では、clresource.conf ファイルのセッションストアパラメータについて説明しています。
表 2-4 clresource.conf ファイルのセッションストアパラメータ
パラメータ
定義
デフォルト値
storeurl
HADB ストアの URL
REPLACEURL
注: 値は実行時の実際の URL と置き換えられます
storeuser
セッションストアへのアクセス権を持つユーザー
appservusr
注: 表 2-5 の username プロパティと一致する必要があります
storepassword
storeuser のパスワード
password
注: 表 2-5 の password プロパティと一致する必要があります
dbsystempassword
HADB システムユーザーのパスワード
password
adminpassword
ドメインを管理する管理者のパスワード。 hadbm createdomain または hadbm create とともに adminpassword オプションを使用する場合には、hadbm コマンドを使うたびにこのパスワードを入力する必要がある
(Windows の場合に限る)
なし
adminpasswordfile
adminpasswordfile オプションは、パスワードを含むファイルへのパスとしてパスワードを提供するために使用
(Windows の場合に限る)
なし
no-adminauthentication
no-adminauthentication オプションで、管理者は管理者のパスワードを入力することなくすべての hadbm コマンドが使用可能
(Windows の場合に限る)
なし
表 2-5 では、clresource.conf ファイルの JDBC 接続プールパラメータについて説明しています。
接続プール名は、clresource.conf ファイルの [JDBC_CONNECTION_POOL] セクションの末尾に指定されます。
表 2-6 では、clresource.conf ファイルの JDBC リソースパラメータについて説明しています。
表 2-6 clresource.conf ファイルの JDBC リソースパラメータ
パラメータ
定義
デフォルト値
connectionpoolid
接続プールの名前
appservCPL
注: 接続プール名は表 2-5 に指定されています。
JDBC リソース名は、clresource.conf ファイルの [JDBC_RESOURCE] セクションの末尾に定義されています。
表 2-7 では、clresource.conf ファイルのセッションの持続性パラメータについて説明しています。
表 2-7 clresource.conf ファイルのセッション持続性パラメータ
パラメータ
定義
デフォルト値
type
セッション持続性タイプ
ha
frequency
セッション頻度
web-method
scope
セッションの範囲
セッション
store
セッションストア
jdbc/hastore
注: ストア名は、[JDBC_RESOURCE] セクションの末尾に定義されています
表 2-8 では、clresource.conf ファイルのステートフルセッション Bean パラメータについて説明しています。
表 2-8 clresource.conf ファイルのステートフルセッション Bean パラメータ
パラメータ
定義
デフォルト値
sfsb
ステートフルセッション Bean フェイルオーバー
false
表 2-9 では、clresource.conf ファイルの RMI/IIOP フェイルオーバーパラメータについて説明しています。
表 2-10 では、clresource.conf ファイルのクラスタ識別パラメータについて説明しています。
clresource.conf ファイルの例
[HADBINFO]
historypath /var/tmp
devicepath /opt/SUNWappserver7/SUNWhadb/4
datadevices 1
portbase 15200
spares 0
#set managementProtocol=rsh
inetd false
inetdsetupdir /tmp
devicesize 512
dbpassword password
hosts machine1,machine1
hadb[SESSION_STORE]
storeurl REPLACEURL
storeuser appservusr
storepassword password
dbsystempassword password[JDBC_CONNECTION_POOL]
steadypoolsize 8
maxpoolsize 32
datasourceclassname com.sun.hadb.jdbc.ds.HadbDataSource
isolationlevel repeatable-read
validationmethod meta-data
property username=appservusr:password=password:cacheDataBaseMetaData=false:e liminateRedundantEndTransaction=true:serverList=REPLACEURLappservCPL
[JDBC_RESOURCE]
connectionpoolid appservCPL
jdbc/hastore[SESSION_PERSISTENCE]
type ha
frequency web-method
scope session
store jdbc/hastoreWindows での clresource.conf ファイルの例
[HADBINFO]
package V4.4
historypath REPLACEDIR
devicepath C:¥Sun¥AppServer7¥SUNWhadb¥4.4.0-12
datadevices 1
portbase 15200
spares 0
#set LogbufferSize=32,DataBufferPoolSize=128
devicesize 208
dbpassword password
hosts machine1,machine2
adminpassword password
hadb
[SESSION_STORE]
storeurl EPLACEURL
storeuser appservusr
storepassword password
dbsystempassword password
[JDBC_CONNECTION_POOL]
steadypoolsize 8
maxpoolsize 2
datasourceclassname com.sun.hadb.jdbc.ds.HadbDataSource
isolationlevel repeatable-read
--isisolationguaranteed=true
validationmethod meta-data
property username=appservusr:password=password:cacheDataBaseMeta Data=false:eliminateRedundantEndTransaction=true:serverList=REPLACE URL
appservCPL
[JDBC_RESOURCE]
connectionpoolid appservCPL
jdbc/hastore
[SESSION_PERSISTENCE]
type ha
frequency web-method
scope session
store jdbc/hastore
[EJB_FAILOVER]
sfsb true
[RMI_IIOP_FAILOVER]
rmi_iiop true
[CLUSTER_ID]
cluster_id cluster1
clsetup の実行
clsetup の実行の構文は次のとおりです。
引数が指定されていない場合、clsetup は次のデフォルトを使用します。
カスタムの入力ファイルの場所を指定することで、これらの引数を無効にできます。次に例を示します。
カスタムの入力ファイルを指定するときは、入力ファイルにある必須形式に従ってください。この手順については、「clsetup 入力ファイルの編集」を参照してください。
clsetup を実行するには、次の手順を行います。
- 「clsetup の要件と制限事項」に記載されている要件が満たされていることを確認します。
注
clsetup を root 以外のユーザーとして実行する場合は、「root 以外の特権に対する管理の設定」を参照して設定を行ってください。
- 入力ファイルにクラスタの設定に必要な情報があることを確認します。必要に応じて、「clsetup 入力ファイルの編集」のガイドラインに従って入力ファイルを編集します。
- RSH を使用する場合は、clresource.conf ファイルを編集して次の行のコメント指定を外します (# 記号を削除します)。#set managementProtocol
- Sun Java System Application Server インストールディレクトリ下の /bin ディレクトリに移動します。
- clsetup コマンドを実行します。
UNIX の場合: ./clsetup
Windows の場合: clsetup.bat
clsetup コマンドにより詳細モードで実行されます。さまざまなコマンドが実行中に画面に表示され、出力はログファイル /var/tmp/clsetup.log (UNIX の場合)、またはデフォルトの Windows temp ディレクトリ (Windows の場合) にリダイレクトされます。
重大なエラーが発生した場合は、設定が停止し、ログファイルにエラーが記録されます。ログファイルがすでに存在している場合は、出力が既存のログファイルに追加されます。
処理するエントリ (HADB ノードと Application Server インスタンス) がすでに存在する場合、clsetup コマンドはそれらを削除したり再設定したりしないで、各設定手順は省略されます。この種のイベントは、ログファイルに記録されます。
- clsetup が設定を完了すると、それぞれの設定を確認したあとでログファイルのスキャンを行います。
- 完了すると、clsetup により、表 2-11 に記載されている終了コードが返されます。
clsetup のクリーンアップ手順
clsetup を実行したあと、発生したエラーがログファイル /var/tmp/clsetup.log に記録されます。clsetup コマンドの実行後に毎回ログファイルを調べ、報告される重大なエラー (例: 存在しないインスタンスの作成に失敗) を修正してください。
設定のすべてまたは一部は、次のようにして元に戻すことができます。
- Application Server インスタンスを削除するには、次のコマンドを実行します。asadmin delete-instance instance_name
- HADB を削除するには、次のコマンドを実行します。
- セッションストアをクリアするには、次のコマンドを実行します。cladmin clear-session-store --storeurl URL_information --storeuser storeUsername --storepassword store_user_name
- JDBC 接続プールを削除するには、次のコマンドを実行します。asadmin delete-jdbc-connection-pool connectionpool_name
- JDBC リソースを削除するには、次のコマンドを実行します。cladmin delete-jdbc-resource JDBCresource_Name
これらのコマンドの詳細な例については、マニュアルページを参照してください。HADB の設定と、クラスタ、ロードバランサプラグイン、および HADB の管理を行うには、『Sun Java System Application Server Administration Guide』を参照してください。
時刻の同期HADB は、内部イベントの管理やデバッグ目的でシステムクロックのタイムスタンプを使用するため、HADB を実行しているホストの時刻を同期させておくことを強くお奨めします。イベントは、先頭にタイプスタンプが付いた履歴ファイルに書き込まれます。HADB は分散システムのため、トラブルシューティングですべての HADB ノードの履歴ファイルがまとめて分析されます。また、HADB は内部でシステムクロックを使用して、タイムアウトのような時間依存のイベントを管理します。
HADB を実行しているシステムのシステムクロックを調整することはお奨めしません。HADB は通常システムクロックを使用するように実装されていますが、次の点に注意する必要があります。
時計を同期させるには、Solaris では "xntpd" (ネットワークタイムプロトコルデーモン)、Linux では "ntpd" を使用できます。