| 日本−日本語 |
|
|
|
![]() |
Serviceguard の管理 > 第5章 HA クラスタの構成システムの準備 |
|
クラスタを構成する前に、すべてのクラスタノードに適切なセキュリティファイル、カーネル構成ファイル、NTP (network time protocol) 構成があることを確認してください。 Serviceguard のインストール方法については、お使いのバージョンのリリースノートを参照してください。リリースノートは、 http://docs.hp.com/ja -> [ハイ アベイラビリティ] -> [Serviceguard] -> [リリースノート] にあります。 HP-UX のインストールとアップデートについては、目的のバージョンの『 HP-UX インストール/アップデートガイド』を参照してください。http://docs.hp.com/ja を開き、目的のバージョンの HP-UX の [Operating Environments] を選択し、[インストール & アップデート] を選択します。 本書の付録 E 「ソフトウェアのアップグレード」に、クラスタを止めずに Serviceguard をアップグレードするための手順が記載されています。作業を始める前に、この付録全体とリリースノートの対応する項をすべて読んでください。 Serviceguard は、/etc/cmcluster.conf という特別なファイルを使って、HP-UX ファイルシステム内の構成ファイルおよびログファイルの位置を定義します。このファイルでは、次の位置が定義されています。 ################## cmcluster.conf ############### # Highly Available Cluster file locations # This file must not be edited #################################################
本書では、システムファイルの名前にはこのいずれかの位置の接頭辞が付いています。このため、$SGCONF/filename への参照は、このファイル内の接頭辞の定義を指定すると解決します。 たとえば、SGCONF が /etc/cmcluster/と定義されている場合、$SGCONF/cmclconfig ファイルの完全なパス名は、/etc/cmcluster/cmclconfig です。
Serviceguard デーモンは、定義されているアクセス制御ポリシーと、接続元のホスト名およびユーザー名を照合することで、コマンドへのアクセスを許可します。 Serviceguard ノードは、クラスタの共有ネットワークのいずれを経由しても通信することができるため、これらのネットワークのプライマリアドレスをすべて識別する必要があります。 Serviceguard のアクセス制御ポリシーはホスト名を基にしているため、アクセス制御ポリシーで指定された名前と照合するために、IP アドレスからホスト名に変換できる必要があります。 IP アドレスは、複数のホスト名 (別名) に変換されることがありますが、名前のいずれかが、ポリシーに定義された名前と一致する必要があります。 以降では、クラスタに必要なセキュリティレベルを達成するために、IP とユーザー ID、Serviceguard のアクセス制御ポリシーを構成する方法について説明します。 Serviceguard は、HP-UX に組み込まれている名前解決サービスを使います。名前解決は、DNS や NIS サービスだけに依存するのではなく、最初に各ノードの /etc/hosts ファイルで解決するように定義することをお勧めします。 たとえば、2 つのプライベートサブネットと 1 つのパブリックサブネットを持つ 2 ノード (gryf と sly) のクラスタがあるとします。プライベートサブネットを共有していない非クラスタノード (bit) にこれらのノードへのアクセスを許可するとします。両方のクラスタノード上の /etc/hosts ファイルには、以下の内容が含まれていなければなりません。
アプリケーションで、ホスト名の別名を使う必要がある場合は、Serviceguard ホスト名は、別名の 1 つである必要があります。以下に例を示します。
Serviceguard は、identd デーモンを使って、ネットワーク接続の要求元のユーザー名を検証します。通常、このデーモンは、/etc/inetd.conf の設定に従って inetd から起動されます。Serviceguard デーモンが identd デーモンに接続できない場合、要求は拒否されます。 Serviceguard が、リモートユーザーをリモートノードのルートユーザーと見なすためには、identd がユーザー名 “root” を返さなければなりません。identd は、最初に一致した UID 0 のユーザー名を返すため、各ノードの /etc/passwd 内の root ユーザーのエントリーは、UID が 0 の他のエントリーより前に記述する必要があります。 identd を無効にする場合は、identd を使わないように Serviceguard を構成することができます。
identd を無効にする必要がある場合は、/etc/inetd.conf 内の tcp hacl-cfg コマンドと hacl-probe コマンドに -i オプションを追加します。 以下に例を示します。
Serviceguard のアクセス制御ポリシーでは、リモートノードのユーザーに許可するローカルノードの操作を定義します。このようなアクセス制御を、アクセスロールまたは Role Based Access (RBA) といいます。本書では、アクセスロールを使います。Serviceguard は、ルートアクセスと非ルートアクセスという 2 つのアクセスレベルを認識します。
パッケージ構成とクラスタ構成でロールに矛盾があると、パッケージの構成が失敗します。そのため、パッケージのロールを作成するときには、クラスタ構成ファイルを参照することをお勧めします。クラスタ構成ファイルのリストを出力するには、cmgetconf を使います。 ユーザー名またはホスト名に対してクラスタ構成ファイルでロールが構成されている場合、パッケージ構成ファイルでは同じユーザー名またはホスト名に対してロールを指定しないでください。また、クラスタとそのパッケージの管理に対する完全な制御権をすでに持っているクラスタルートユーザーに、パッケージ管理ロールを割り当てても意味はありません。 Serviceguard では、ノードがクラスタに構成されているかどうかに応じて、アクセス制御のために使われるメカニズムが異なります。次の 2 つの項では、これら 2 つのケースでアクセス制御ポリシーを構成する方法について説明します。 Serviceguard を初めてシステムにンストールしたときは、アクセス制御ポリシーは定義されていません。このシステムをクラスタのメンバーにするためには、他のすべてのクラスタノードのルートユーザーに対して、そのノードへのルートアクセスを許可する必要があります。そのためのメカニズムが、$SGCONF/cmclnodelist です。このファイルはデフォルトでは存在しませんが、次の項の説明に従って作成する必要があります。 cmclnodelist ファイルは、新規インストールの際にはデフォルトでは作成されません。このファイルを作成するときには、ファイルの先頭に次のようなコメントを追加することをお勧めします。
cmclnodelist ファイル内のエントリーの形式は、次のとおりです。 [hostname or IP address] [user] [#Comment] 例を次に示します。
ルートアクセスが可能なユーザーは、すべてのクラスタ構成コマンドを使うことができます。ルートアクセスを持たないユーザーには、モニターロールが割り当てられ、ノードの構成に対する読み取り専用アクセスが許可されます。この例では、ノード gryf、sly、bit 上のルートユーザーは、この cmclnodelist ファイルがあるノードに対してルートの権限を持ちます。非ルートユーザー user1 は、ノード gryf と sly からこのノードに接続すると、モニターロールが割り当てられます。 Serviceguard は、cmclnodelist ファイルでの “+” の使用も認めています。この指定は、任意のノード上の任意のルートユーザーがこのノードを構成でき、任意の非ルートユーザーがモニターロールを持つことを示します。
ノードをクラスタに構成すると、クラスタ全体のセキュリティはアクセス制御ポリシーで決まります。cmclnodelist への変更は無視されます。各クラスタノードのルートユーザーは、自動的に他のノードへのルートアクセスが許可されます。その他のユーザーには、非ルートロールが与えられます。
クラスタのアクセス制御ポリシーは、クラスタ構成ファイルで定義し、特定のパッケージのアクセス制御ポリシーは、パッケージ構成ファイルで定義します。ホストとユーザーの任意の組み合わせに対して、クラスタのロールを割り当てることができます。クラスタあたり最大 200 のアクセスポリシーが定義できます。 アクセスポリシーは、構成ファイル内で以下の 3 つのパラメータを使って定義します。
アクセス制御ポリシーの例を示します。
このポリシーがクラスタ構成ファイルで定義されている場合には、ユーザー john に対して、ノード bit のすべてのパッケージの PACKAGE_ADMIN ロールが与えられます。また、PACKAGE_ADMIN には MONITOR が含まれているため、ユーザー john にはクラスタ全体の MONITOR ロールも与えられます。 このポリシーが PackageA のパッケージ構成ファイルで定義されている場合には、ノード bit のユーザー john に対して、PackageA だけについての PACKAGE_ADMIN ロールが与えられます。 衝突するロールを構成することは許されていません。衝突するロールを指定すると、Serviceguard は構成を適用する際にエラーで失敗します (ただし、ワイルドカードは例外です。衝突するロールを指定すると、ANY_USER と john に異なるロールを与えることができます)。 たとえば、以下のエントリーをクラスタ構成ファイルに指定したとします。
この例では、ユーザー john に 2 つのロールを割り当てているため失敗します (いずれにしても、PACKAGE_ADMIN には MONITOR ロールがすでに含まれているため、Policy 2 は不要です)。 ワイルドカード ANY_USER にはユーザー john が含まれていますが、Policy 3 は他のポリシーとは衝突しません。
クラスタのロールを計画したら、できるだけ早めに検証してください。組織のセキュリティポリシーで許可されている場合は、グループログインを作成する方が簡単な場合があります。たとえば、ANY_CLUSTER_NODE のユーザー operator1 に MONITOR ロールを割り当てます。そして、このログイン名とパスワードを、クラスタを監視するすべての人に知らせることができます。 ユーザーレベルのどの Serviceguard コマンド (cmviewcl など) を使用する場合でも、コマンドは名前検索機能を使ってすべてのクラスタノードのアドレスを取得します。名前解決サービス (DNS など) が使用可能でない場合、コマンドはハングするか、予期しないネットワーキングエラーメッセージを返す場合があります。
この問題を避けるには、すべてのクラスタノード上で、DNS または NIS に加えて /etc/hosts ファイルを使うように構成します。こうすることで、プライマリ LAN が障害になっても、Serviceguard が完全に機能し続けることができます。詳細は、「名前解決サービスの障害からの保護」を参照してください。
ここでは、信頼性の高い名前解決構成を作成し、DNS サービスや NIS サービスが障害になっても、クラスタノード同士が通信を続けられるようにする方法について説明します。待機 LAN が構成されている場合は、このアプローチにより、プライマリ LAN が障害になっても、(cmrunnode や cmruncl などのコマンドも含め) クラスタは完全に機能し続けることができます。
全クラスタノードでルートボリュームをミラー化することを強くお勧めします。以下の手順では、ブートボリュームとルートボリュームが別のボリュームであると想定し、ブートボリューム (/dev/vg00/lvol1)、一次スワップ (/dev/vg00/lvol2)、ルートボリューム (/dev/vg00/lvol3) のミラーを作成します。この例と以下のコマンドでは、/dev/dsk/c4t5d0 が一次ディスク、/dev/dsk/c4t6d0 がミラーです。実際にコマンドを入力するときは、システムのルートディスクに対応する正しいデバイスファイル名を入力してください。
次のガイドラインは、ロックディスクを使っている場合に適用されます。クラスタロックディスクは、すべてのクラスタノードに物理的に接続されている LVM ボリュームグループ上に構成されます。このボリュームグループには、パッケージが使用するデータを含めることもできます。 二重クラスタロックディスクを使用している場合、クラスタロックの物理ボリュームでデフォルトの入出力タイムアウト値を使用する必要があります。クラスタロックの物理ボリュームの入出力タイムアウト値を変更すると、割り当てられた時間内にクラスタ内のノードがロックディスクの障害を検出できなくなり、クラスタの再編成が失敗する可能性があります。既存の入出力タイムアウト値を表示するには、次のコマンドを実行します。 pvdisplay <lock device file name> 入出力タイムアウト値は、“default” として表示されなければなりません。入出力タイムアウトをデフォルト値に戻すには、次のコマンドを実行します。 pvchange -t 0 <lock device file name> 二重クラスタロックは、特別なハードウェア構成でのみ使用できます。第 3 章の「二重ロックディスク」の説明を参照してください。ロックディスクを設定する方法については、「ロックディスクの指定」を参照してください。 クラスタを構成し、クラスタロック ボリュームグループおよび物理ボリュームを作成した後、各ロックボリュームグループ上のボリュームグループ構成データのバックアップを取る必要があります。構成した各ロックボリュームグループに対して vgcfgbackup コマンドを使用して、ディスク障害後に vgcfgrestore コマンドでロック構成を新しいディスクに復元できるように、ファイルをバックアップします。
LUN は、Logical Unit Number の略です。この用語は 1 台の物理ディスクを指すこともありますが、最近では SAN (Storage Area Network) や NAS (Network-Attached Storage) の分野で、1 台以上の物理ディスクから作成された仮想的なストレージを指すためによく使われます。 ロック LUN 用のデバイスを選択する際は、以下の点に注意してください。
ロック LUN に必要なストレージ容量は小さく、100 KB 程度です。
idisk ユーティリティを使うと、HP Integrity サーバーだけからなるクラスタ内に、ロック LUN 用のパーティションを作成できます。以下の手順に従ってください。詳細は、idisk (1m) のマンページを参照してください。この手順は、このロック LUN を使うクラスタ内のノードのいずれかで実行してください。
cmquerycl -L を使って、ロック LUN を定義するクラスタ構成ファイルを作成します。
これらのコマンドは、構成ファイルを作成します。その構成ファイルは、適用準備が整った時点でクラスタ構成に適用することができます。「バイナリ構成ファイルの配布」を参照してください。また、「ロック LUN の指定」を参照してください。
クォーラムサーバーソフトウェアは、クラスタの構成時に稼働していなければならず、クラスタが稼働するノード以外のシステム上にインストールしなければなりません。詳細と推奨事項については、「クォーラムサーバーの使用」を参照してください。 Quorum Server (製品番号 B8467BA) を稼働させるシステム (複数可) 上に Quorum Server をインストールするには、HP-UX の swinstall コマンドを使います。インストールについての詳細は、ご使用の Quorum Server の『 Quorum Server リリースノート』を参照してください。 クォーラムサーバーの実行可能ファイル qs は、/usr/lbin ディレクトリにインストールされます。インストールの完了後、特定のホストシステムがクォーラムサービスを利用できるようにするには、QS を稼働させるサーバー上に承認ファイルを作成する必要があります。このファイルのパス名は、/etc/cmcluster/qs_authfile でなければなりません。このクォーラムサーバーのクラスタサービスにアクセスするすべてのクラスタノードの名前を、このファイルに追加します。次の例のように、ノードごとに 1 行で入力します。
すべてのノードからアクセスできるようにするには、プラス記号 (+) だけからなる行を入力します。 cmquerycl や cmapplyconf を使用するときには、クォーラムサーバーが稼働していなければなりません。 デフォルトでは、クォーラムサーバーのランタイムメッセージは stdout と stderr に書き込まれます。/var/adm/qs ディレクトリを作成して、stdout と stderr をこのディレクトリ内のファイル (たとえば /var/adm/qs/qs.log) にリダイレクトすることをお勧めします。 クォーラムサーバーを起動するためには、ルートのパーミッションが必要です。単独のシステムでは、インストール先のシステムが再スタートまたはリブートしたときにクォーラムサーバーが常に起動されるように構成してください。このように構成するには、次のようなエントリーを、/etc/inittab ファイルに追加します。
次のコマンドで、クォーラムサーバーを起動します。
コマンドが完了すると、プロンプトが表示されます。 qs.log ファイルをチェックして、クォーラムサーバーが実行されていることを確認してください。 cat /var/adm/qs/qs.log クォーラムサーバーが起動したことを示す次のようなエントリーが、このログファイルに記録されます。
クォーラムサーバーの動作についての詳細は、「スプリットブレインの問題を回避するクラスタ定足数」を参照してください。また、 cmquerycl コマンドを使ってクラスタ構成ファイル内にクォーラムサーバーを指定する方法については、「クォーラムサーバーの指定」の項を参照してください。 詳細は、http://docs.hp.com/ja> -> [ハイ アベイラビリティ] -> [Quorum サーバ] にある、ご使用のバージョンの Quorum Server のリリースノートを参照してください。 クラスタ内の全ノードのカーネル構成については、フェイルオーバー時のクラスタの動作と矛盾がないことを確かめておいてください。特にあるクラスタノードでカーネルパラメータを変更した場合は、同じパッケージを実行する他のクラスタノードでも、同様にパラメータを変更しておく必要があります。 クラスタ内の各ノードでは、ネットワークタイムプロトコル (NTP) サービスを使用可能にすることを強くお勧めします。各システムで NTP をデーモンプロセスとして実行しておくと、全ノードのシステム時刻が統一され、ログファイルのタイムスタンプやメッセージサービスの動作の一貫性を保つことができるので、クラスタ内で実行されるアプリケーションの同期も正しく行われます。NTP サービスデーモン xntpd は、クラスタの構成を始める前に、あらかじめすべてのノードで実行しておきます。NTP 構成ファイルは /etc/ntp.conf です。 NTP サービスの構成の詳細については、http://docs.hp.com/ja -> [I/O カードとネットワークソフトウェア] -> [インターネット サービス] にある HP-UX のマニュアル『 Internet サービス インストール/管理ガイド』を参照してください。 Serviceguard と、SGeSAP、SGeRAC、SGeFF などの拡張製品は、ndd ユーティリティと kmtune ユーティリティでサポートされる、ネットワークパラメータとカーネルパラメータのデフォルト値でテストされています。 これらのパラメータは注意深く調整してください。 問題が起きたらパラメータをデフォルト値に戻してください。また、Serviceguard とネットワークの問題に関して当社のサポートに問い合わせる際には、デフォルトから変更したすべてのパラメータについてお知らせください。 Serviceguard 環境で動作する他社のアプリケーションで、ネットワークパラメータやカーネルパラメータのチューニングが必要になる場合があります。
以下の 2 つのネットワークパラメータに関しては、Serviceguard はデフォルト値以外でもテストされています。
クラスタ稼働中に (オンラインで) ノードを追加する予定がある場合は、追加するノードが他のクラスタノードと同じハートビートサブネット、同じロックディスクに接続されるようにしなければなりません。またクラスタロックの構成を選択する際には、クラスタノードを追加することによって発生する必要条件を考慮してください。クラスタのノードが 4 つを超えるとロックディスクは使用できませんが、ノードが 2 つの場合はクラスタロックを使用しなければなりません。このため、最終的にノードが 5 つ必要になる場合、クォーラムサーバーを使う構成を最初から構築しなければなりません。 クラスタ稼働中に (オンラインで) ノードを削除する予定がある場合は、削除後のクラスタ構成が上記のクラスタロックの要件と矛盾しないように注意してください。 オンラインでノードを追加して、追加したノード上でパッケージを実行する予定がある場合は、そのパッケージの実行に必要なクラスタ内のボリュームグループが、追加したノードにもインポートされていることを確かめてください。また、MAX_CONFIGURED_PACKAGES パラメータに、使用する予定のパッケージの合計数を上回る値を設定してください。 クラスタを構成したら適切な論理ボリュームインフラストラクチャを作成して、異なるノードからデータにアクセスできるようにします。これは、次のようないくつかの方法を使って実現できます。
必要に応じて、ボリュームタイプを混在させることもできます。 LVM と VxVM は、クラスタの構成前に構成します。CVM と CFS は、クラスタの構成後に構成します。
この項では、LVM による記憶領域の構成について説明します。以下の作業について手順を説明します。
Event Monitoring Service の HA Disk Monitor を使用すると、LVM ディスクの状態を監視できます。ただしこのモニターでは、物理ボリュームグループ内に構成されているミラー化ディスクしか監視できません。詳細については、『High Availability Monitors ユーザーガイド』を参照してください。このマニュアルは、http://docs.hp.com/ja -> [ハイ アベイラビリティ] -> [Event Monitoring Service & HA Monitor] にあります。 以下の手順では、物理ボリュームグループを使って個々のディスクをミラー化し、各論理ボリュームが異なる I/O バス上のディスクにミラー化されるようにします。これは PVG 限定のミラー化と呼ばれる手法です。ミラーコピーとして使用するディスクは、一次コピーが使用するバスとは別のバスにより、各ノードに接続されているものとします。 LVM の使用の詳細については、『HP-UX システム管理者ガイド: 論理ボリュームの管理』を参照してください。 System Management Homepage を使って、ボリュームグループの作成や拡張を行ったり、論理ボリュームを作成することができます。System Management Homepage から、[Disks and File Systems] を選択します。必ず PVG 限定の割り当てを使ってミラー化された論理ボリュームを作成してください。 論理ボリュームを作成し、ボリュームグループの作成または拡張を終えたら、ボリュームグループにマウントするファイルシステムを指定し、「ボリュームグループの非アクティブ化」の項に進みます。 コマンド行からボリュームグループを構成するには、以下のようにします。 ボリュームグループがセットアップされていない場合は、以下の手順でセットアップしてください。LVM の構成をすでに行っている場合は、「クラスタの構成」の項に進んでください。 両方のノード上のディスクのリストを取得して、両方のノード上で同じディスクに対して使用されているデバイスファイルを確認します。次に、各ノードで以下のコマンドを実行して、各システムで定義されている使用可能なディスクのリストを取得します。
次の例では、/dev/rdsk/c1t2d0 と /dev/rdsk/c0t2d0 が、ftsys9 と ftsys10 のそれぞれで同じディスクに対するデバイス名として用いられています。ノードによってデバイスファイル名が異なる場合は、 デバイスファイル名の対応関係に注意してください。
構成ノード (ftsys9) 上で、pvcreate コマンドを使用して、ディスクを物理ボリュームとして定義します。この作業は、構成ノードでのみで行います。以下は、この例で使用している 2 つの物理ボリュームを作成するコマンドを示しています。
PV 限定ミラー化の使用: 以下の手順に従って、構成ノード (ftsys9) 上でボリュームグループを作成します。その後、他のノード上に同じボリュームグループを作成します。
論理ボリュームの作成: 論理ボリュームを作成するには、次のコマンドを使用します。(例では /dev/vgdatabase の論理ボリューム)
このコマンドは、lvol1 という 120MB のミラー化ボリュームを作成します。このボリューム名は、コマンドでボリューム名が省略されたときのデフォルトのボリューム名です。-s g オプションは、ミラー化が PVG 限定であること (データのミラーコピーが異なる物理ボリュームグループにあること) を示します。
ファイルシステムの作成: インスタレーションでファイルシステムを使用する場合は、ファイルシステムを作成します。次のコマンドを使用して、作成した論理ボリュームにマウントするファイルシステムを作成します。
他のノードへのボリュームグループの配布: クラスタデータ用のボリュームグループを作成した後、作成したボリュームグループをアクティブ化するクラスタノードがそのボリュームグループを使用できるように、ボリュームグループを配布します。クラスタロックボリュームグループは、すべてのノードが使える状態にする必要があります。 ボリュームグループの非アクティブ化: ボリュームグループを作成した時点で、そのボリュームグループは、構成ノード (ftsys9 など) 上でアクティブになっています。次のステップは、ファイルシステムをアンマウントし、ボリュームグループを非アクティブ化することです。ftsys9 の場合の例を示します。
ボリュームグループの配布: 同じボリュームグループを他のクラスタノード上にセットアップするには、次のコマンドを使用します。この例のコマンドでは、ftsys10 に新しいボリュームグループをセットアップして、ftsys9 で使用可能であった物理ボリュームを使用できるようにします。セットアップする手順は、そのボリュームグループのパッケージを実行する各ノードごとに個別に行います。 ftsys10 上にボリュームグループをセットアップするには、以下の手順に従います。
物理ボリュームグループのファイルの一貫性: 個々のミラー化ディスクに対して物理ボリュームグループを使用していない場合は、次項へ進んでください。 Serviceguard のクラスタでは、ノードのサブセットにより、アクティブ化するボリュームグループが異なる場合があります。また、ノードによっては同じディスクに別の物理ボリューム名を付けている場合もあります。このため、個々のノード自身のプライベートな (クラスタが認識していない) ディスクだけではなく、クラスタが認識している他ノードのディスクを含むすべてのディスクを各ノードがまったく同様に認識できるように、全ノード上の /etc/lvmpvg ファイルを正しくマージする必要があります。ファイルのマージを容易にするために、物理ボリュームグループ名は必ずボリュームグループプランニングワークシート (第4章 「HA クラスタのプランニングと文書化」参照) に詳しく記録しておいてください。 以下の手順に従って、構成ノード (ftsys9) のファイルとボリュームグループをインポートするノード (ftsys10) のファイルをマージします。
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||