Advanced Operations Guide (v11)

Linux Heartbeat

Heartbeat プログラムは Linux-HA(High-Availability Linux:ハイアベイラビリティ Linux)プロジェクトの中心的なコンポーネントの 1 つです。Heartbeat はあらゆる Linux プラットフォームで動作し、1 つのプロセスで停止ノードの検出、通信およびクラスター管理を行います。

Linux Heartbeat の主な機能には次のようなものがあります。

このセクションは、Linux Heartbeat のインストールと設定についてはよく理解しており、Pervasive PSQL v11 SP2 をクラスター構成に追加するための情報のみが必要であることを前提に説明します。


メモ

Linux Heartbeat テクノロジについて説明が必要な場合は、「The High Availability Linux プロジェクト」(http://www.linux-ha.org/ja/HomePage_ja)のドキュメントを参照してください。このドキュメントでは、Linux Heartbeat のインストール方法、動作確認、タスクの実行方法について説明されています。


作業手順

このセクションは、クラスターに Pervasive PSQL を追加する方法を手順をおって説明します。推奨される手順は以下のとおりです。

Linux Heartbeat が正常に機能しているか確認する

Pervasive PSQL をクラスターに追加する前に、Linux Heartbeat が正常に機能していることが必須です。Heartbeat のインストール、動作確認、タスクの実行方法については、「The High Availability Linux プロジェクト」(http://www.linux-ha.org/ja/HomePage_ja)ドキュメントを参照してください。


メモ

Linux Heartbeat の設定に誤りがあり適切に機能していないと、Pervasive PSQL リソースを正しく動作させることができません。


Pervasive PSQL をクラスター ノードにインストールする

Pervasive PSQL サーバーを各クラスター ノードにインストールします。各インストールで同一のオプションを選択します。Pervasive PSQL サーバーをインストールするには、root としてログインする必要があります。『Getting Started with Pervasive PSQL』の Pervasive PSQL Server および Client(Linux 版)のインストールを参照してください。

クラスター共有記憶域には Pervasive PSQL をインストールしないでください。クラスター共有記憶域は、Pervasive PSQL データベースが存在する場所です。

インストールが完了すると、オペレーティング システムの起動時にデータベース エンジンが自動的に起動するよう設定されます。ただし、クラスタリングでは、Linux Heartbeat がデータベース エンジンの起動と停止を制御します。クラスターの実稼動ノードがエンジンを起動し、それ以外のノードはエンジンを起動しません。


メモ

Pervasive PSQL サーバーをインストールしたら、"pvsw" および "pvsw-adm" 用のグループ ID と "psql" 用のユーザー ID がすべてのノードにおいて一致していることを確認してください。ID が一致していなければ、同一になるよう変更します。


共有記憶域を構成する

共有記憶域は、Pervasive PSQL データベースが存在する場所です。


メモ

Heartbeat の共有記憶域はさまざまな方法で実装できます。このマニュアルではその数多くの実装方法のすべてを説明することはできません。このため、このセクションでは NFS マウントを使用した実装方法について説明します。この章のこれ以降の説明は NFS マウントを使用することを前提としています。


データベースの場所

物理ストレージ上で Pervasive PSQL データベースを配置する場所を作成(または少なくとも特定)する必要があります。この場所は自由に選択できます。ユーザー psql がその場所に対して読み取り、書き込みおよび実行権限を持っていることを確認してください。

このセクションでは、説明のために "sles3" という名前のマシンにあるディレクトリの共有名 "/cluster/psql" に NFS マウントを使用します。

ユーザーとグループ

共有記憶域に 2 つのグループと 1 人のユーザーを作成する必要があります。これを作成するのは、クラスター内で制御がノードからノードへ渡される際に、実稼動ノードがデータベースへアクセスする正しい権限を持っている必要があるためです。このグループとユーザーは権限を確保します。

表 37 NFS マウントの共有記憶域で必要なグループとユーザー
グループ名
グループ ID
ユーザー名
UID
pvsw
クラスター ノード上の pvsw グループ ID と一致している必要があります。
psql
クラスター ノード上の pvsw ユーザー ID と一致している必要があります。
pvsw-adm
クラスター ノード上の pvsw-adm グループ ID と一致している必要があります。
 
 

グループとユーザーを作成したら、ユーザー psql をグループ pvsw に追加します。

共有記憶域マウント用のディレクトリを作成する

クラスター ノードごとに、ユーザー psql としてログインし、共有記憶域へマウントされるディレクトリを作成します(ユーザー psql にはパスワードがありません。su コマンドを使用した root アカウントによるアクセスのみを行うことができます)。たとえば、このセクションでは、/usr/local/psql/shared というディレクトリ名を使用します。ディレクトリ名は自由に選択できます。

Heartbeat サーバーを構成する

Pervasive PSQL データベース エンジンを制御するノードごとに Heartbeat サーバーを構成する必要があります(ご使用の Linux ディストリビューションが YaST をサポートしている場合は、コマンド ライン ターミナルから YaST2 heartbeat コマンドを使用して設定プログラムを実行することができます)。

次のような構成を行います。

Heartbeat の構成方法の詳細については、「The High Availability Linux プロジェクト」(http://www.linux-ha.org/ja/HomePage_ja)ドキュメントを参照してください。

Heartbeat ユーザーのパスワードを割り当てる

Linux Heartbeat ではデフォルトのユーザー名として hacluster を提供します。このユーザーは Heartbeat Management Client へログインするときに必要です。Heartbeat Management Client を実行するノードごとに、ユーザー hacluster のパスワードを割り当てる必要があります。

  1. ルートとしてログインし、Linux User and Group Administration にアクセスします(ご使用の Linux ディストリビューションが YaST をサポートしている場合は、コマンド ライン ターミナルから YaST2 users コマンドを使用することができます)。
  2. フィルターに "system users" を設定します。
  3. ユーザー hacluster を編集します。
  4. ユーザー hacluster にパスワードを割り当て、User and Group Administration を終了します。

Pervasive PSQL のリソース グループを追加する

以下の手順に従って、Pervasive PSQL のリソース グループを追加します。

  1. root としてログインし、クラスター ノードの 1 つで Heartbeat Management Client を開始します(たとえば、コマンド ライン ターミナルで hb_gui コマンドを使用)。
  2. hacluster ユーザーとしてログインします。このユーザーに割り当てるパスワードを指定します。
  3. 新しい項目を追加して、[Item Type]として "group" を選択します。
  4. ID]には、Pervasive PSQL グループとしてわかりやすい名前を入力します。たとえば、「group_psql」と入力します。
  5. Ordered]と[Collocated]には必ず "true" を設定してください。



  6. グループを追加します。

リソースをグループに追加する

以下の 3 つのリソースを Pervasive PSQL グループに追加する必要があります。

以下の手順は、ルートとしてログインし、3 つのリソースを順に追加することを前提にしています。

IPaddr(IP アドレス)

  1. Heartbeat Management Client で、新しい項目を追加し、[Item Type]として "native" を選択します。
  2. Resource ID]には、IPaddr リソースとしてわかりやすい名前を入力します。たとえば、「resource_Ipaddr」と入力します。
  3. Belong to group]には、Pervasive PSQL 用に追加したグループを選択します。
  4. Type]には "IPaddr" をクリックします。
  5. リソースを追加します。
  6. 追加したリソースで ipをダブルクリックし、クラスターの IP アドレスを入力します。
    Linux Heartbeat がインストールされ構成されたときには、(ノードではなく)クラスターに割り当てられた IP アドレスを使用します。



Filesystem(ファイルシステム)

  1. 新しい項目を追加して、[Item Type]として "native" を選択します。
  2. Resource ID]には、Filesystem リソースとしてわかりやすい名前を入力します。たとえば、"resource_Filesystem" です。
  3. Belong to group]には、Pervasive PSQL 用に追加したグループを選択します。
  4. Type]には "Filesystem" をクリックします。
  5. "fstype" というパラメーターをクリックしそれを削除します。このパラメーターは必要ありません。
  6. 新規パラメーターを追加します。[Name]には "device" を選択します。
  7. Value]には、共有記憶域のデバイス名、コロン、共有マウントのロケーションを入力します。パラメーターを設定します。
    たとえば、"sles3:/cluster/psql" です。データベースの場所を参照してください。



  8. 新規パラメーターを追加します。[Name]には "directory" を選択します。
  9. Value]には、NFS マウントで使用するディレクトリを入力します。パラメーターを設定します。
    たとえば、"usr/local/psql/shared" です。共有記憶域を構成するを参照してください。



    Add Native Resource]ダイアログは、共有記憶域に NFS マウントを使用していた場合は、次のように見えます。



  10. リソースを追加します。

Psql(OCF リソース エージェント)

  1. 新しい項目を追加して、[Item Type]として "native" を選択します。
  2. Resource ID]には、psql リソースとしてわかりやすい名前を入力します。たとえば、"resource_psql" です。
  3. Belong to group]には、Pervasive PSQL 用に追加したグループを選択します。
  4. Type]では、[Description]フィールドに "PSQL OCF Resource Agent" の記載がある "psql" エントリをクリックします。



  5. リソースを追加します。このほかにパラメーターは必要ありません。

マウントされた共有記憶域上にサブディレクトリを作成する

Filesystem リソースを追加できた場合は、クラスター サーバーと共有記憶域間にマウントが存在するようになります。

クラスター ノードの 1 つに、ユーザー psql としてログインします。共有記憶域マウントで "log" と "etc" という名前のディレクトリを作成します。

たとえば、このセクションでは "/usr/local/psql/shared" というマウント ディレクトリ名を使用します。このディレクトリ内に、"log" と "etc" という名前のディレクトリを作成します。

PCC でクラスター サーバーを構成する

それぞれのクラスター ノードで、Pervasive PSQL Control Center(PCC)を使ったクラスター サーバーを構成する必要があります。

  1. PCC を実行するノード以外のすべてのクラスター ノードを代替モードにします。
  2. "psql" ユーザーとして、1 つのアクティブ ノードで、あるいはアクティブ ノードにアクセスできるクライアントから PCC を実行します。『Pervasive PSQL User's Guide』の Linux での PCC の起動を参照してください。
  3. Pervasive PSQL エクスプローラー で、[エンジン]ノードを右クリックし、[新規作成サーバー]をクリックします。



  4. サーバー名]フィールドには クラスター の名前(または IP アドレス)を入力します。
    この例では、クラスターの名前は "cluster" です。
  5. 終了]をクリックします。
    Pervasive PSQL エクスプローラー ウィンドウの[エンジン]ノードの下にそのクラスター サーバーが表示されます。



  6. 今追加したサーバー名(この例では "cluster")を右クリックし、[プロパティー]をクリックします。
  7. ログインを指示された場合は、"admin" ユーザーとしてログインします。パスワードは空のままにします。
  8. プロパティ]パネルで "ディレクトリ" をクリックします。
  9. トランザクション ログのディレクトリ]には、"log" ロケーションに指定したディレクトリを入力します。[DBNames 設定ファイルのディレクトリ]には、"etc" ロケーションに指定したディレクトリを入力します。共有記憶域を構成するを参照してください。
    この例では、それぞれ "/usr/local/psql/shared/log" と "/usr/local/psql/shared/etc" を使用します。



  10. OK]をクリックして、ディレクトリのプロパティを設定します。
  11. ほかのノードについてもそれぞれ手順 1 から 10 を繰り返します。

共有記憶域上にデータベースを作成する

共有記憶域に Pervasive PSQL データベースを作成することができるようになっています。

  1. クラスター ノードのうち 1 つのノードのオペレーティング システムから、ユーザー psql としてログオンし、データベースを置くファイル システム共有下にディレクトリを作成します(ユーザー root としてディレクトリを作成する場合、ユーザー psql はそのディレクトリに対して読み取り、書き込みおよび実行権限を持っていることを確認してください)。
    ディレクトリ名は自由に選択できます。この例では、"/usr/local/psql/shared/data/clustertest" を使用します。
    たとえば、ファイル システム共有のディレクトリとして "/usr/local/psql/shared" が指定されていることを思い出してください。Filesystem(ファイルシステム)の手順を実行します。
  2. PCC を実行するノード以外のすべてのクラスター ノードを代替モードにします
  3. "psql" ユーザーとして、1 つのアクティブ ノードで、あるいはアクティブ ノードにアクセスできるクライアントから PCC を実行します。『Pervasive PSQL User's Guide』の Linux での PCC の起動を参照してください。
  4. Pervasive PSQL エクスプローラー でツリーの[エンジン]ノードを展開します。
  5. クラスターのサーバー名を右クリックします。(この例の場合、サーバー名は "cluster" です)。
  6. 新規作成データベース]をクリックします。『Pervasive PSQL User's Guide』の新規データベースを作成するにはも参照してください。
  7. データベース名]には、任意の名前を入力します。
    この例では、データベースの名前は "clustertest" です。
  8. 場所]には、手順 1 で作成したディレクトリの名前を入力します。



  9. 必要に応じてその他のオプションを指定します。『Pervasive PSQL User's Guide』のデータベースの新規作成 GUI リファレンスを参照してください。
  10. 終了]をクリックします。
    Pervasive PSQL エクスプローラー ウィンドウの[データベース]ノードの下にそのデータベースが表示されます。



  11. 新しいデータベースの場合、必要であればテーブルを作成します。『Pervasive PSQL User's Guide』の新規テーブルのために Table Editor を起動するにはを参照してください。
    PCC では、次のように表示されます。



各ノードからのデータベースへのアクセスを確認する

各クラスター ノードは共有記憶域上の Pervasive PSQL データベースにアクセスできる必要があります。

  1. データベースを作成したクラスター ノードを代替モードにします。
    この例では、データベースはノード "sles2" から作成されます。"sles2" は代替モードにする前には "psql" リソース(データベース エンジン)を実行していることにに注意してください。



  2. クラスターの次のノードへフェイル オーバーします。
    これによって、制御を受け取る次のノードは必ず "psql" リソースを実行します。
    この例では、クラスターはノード "sles1" にフェイル オーバーし、"sles1" はデータベース エンジンを実行しています。



  3. 実稼動ノードを代替モードにして次のクラスター ノードにフェイル オーバーすると、次のノードは必ず "psql" リソースを実行します。クラスター内の各ノードに対してこの手順を繰り返し、アクセスの確認を開始したノードまで戻ったら終了します。
    メモ:PCC を使用して各ノードからのデータベース アクセスを確認する場合は、サーバー名("cluster" など)を右クリックしてログアウトします。[エンジン]ノード、サーバー名、[データベース]ノードの順に展開します。[データベース]ノードの下にはデータベースがリストされます。

Windows Server 2003 用の Microsoft Cluster Service

ワークグループ エンジンの詳細