セットアップ (共有ディスク構成)

以下は、共有ディスク構成で初期設定を行う場合の内容です。 データレプリケーション構成で初期設定を行う場合は、こちら をご参照ください。

コミュニケーションパスの作成

LifeKeeper for Linux でコミュニケーションパスを作成します。 設定はどのサーバから行っても構いませんが、片方のサーバから行います。

準備と確認

コミュニケーションパスの設定

  1. LifeKeeper GUI を起動します。

    # /opt/LifeKeeper/bin/lkGUIapp &
    
  2. Edit メニューから Server、次に Create Comm Path を選択します。

    設定項目は以下のとおりです。

    項目 入力・選択値
    Local Server プライマリサーバ名を選択
    Remote Server バックアップサーバ名 (IP アドレス) を入力、または選択
    Device Type TCP または TTY を選択
    Local IP Address IP アドレスを選択
    Remote IP Address IP アドレスを選択
    Priority 優先順位を設定
  3. Create を押すと設定が行われます。

    1 つだけコミュニケーションパスが設定されているとき、GUI のサーバアイコンに警告がつきます。 続けてほかのネットワークに対して、同様の操作で予備のコミュニケーションパスを作成してください。 2 経路以上のコミュニケーションパスを構成すると、下記のような表示になります。

データベースクラスタの作成

共有ディスクにデータベースクラスタと呼ばれるデータベースを格納する領域を作成します。

データベースクラスタ用ディレクトリの作成

  1. 共有ディスクをマウントします。

    # mount -t fstype -o rw device directory
    

    fstype には共有ディスクのファイルシステムタイプ、device にはデバイス、directory にはマウントするディレクトリをそれぞれ指定します。

  2. 共有ディスクがマウントされているディレクトリに、データベースクラスタディレクトリを作成します。

    # mkdir datadir
    

ディレクトリ権限の設定

  1. データベースクラスタディレクトリの所有者とアクセス権を変更します。

    データベースクラスタディレクトリの所有者を、インストール前の準備 で用意した PowerGres on Linux のスーパーユーザに変更します。

    # chown username datadir
    

    username には、PowerGres on Linux のスーパーユーザ名を指定します。

  2. データベースクラスタディレクトリのアクセス権を、所有者のみ読み取り許可、書き込み許可、実行許可 (700) に変更します。

    # chmod 700 datadir
    

    datadir にはデータベースクラスタディレクトリを指定します。

    注意

    PowerGres on Linux のスーパーユーザのユーザ ID が異なると、作成されたデータベースクラスタへアクセスできなくなります。 スーパーユーザのユーザ ID はすべてのサーバで同じにしてください。

データベースクラスタの作成

  1. PowerGres Manager からデータベースクラスタを初期化します。

    $ /opt/powergres91/bin/powergres-mgr &
    

    注意

    データベースクラスタの初期化は PowerGres on Linux のスーパーユーザで PowerGres Manager (GUI) から行う必要があります。 そのため、OS に root ユーザでログインしている場合には、PowerGres on Linux のスーパーユーザでログインしなおす必要があります。

  2. PowerGres Manager 左上の「ファイル」タブから「サーバを登録」を選択し、以下の項目を設定します。

    ラベル

    データベースサーバを PowerGres Manager で区別するために使います。 この説明では「data」と設定します。

    ポート

    ポート番号を入力します。 デフォルトでは「5432」になっています。

    データベースディレクトリ

    新しく作成し権限設定を行ったデータベースクラスタ用ディレクトリを絶対パスで入力 (あるいは選択) します。 この説明では、「/share/data」と設定します。

    新規データベースクラスタの作成

    「新規データベースクラスタを作成」にチェックチェックを入れ、次へ進んでください。

    文字エンコーディング

    お使いになる文字エンコーディングを指定してください。 デフォルトでは「UTF8」となっています。

    スーパーユーザ名

    インストール前の準備 で PowerGres on Linux 用に作成した、スーパーユーザを入力します。 この説明では「postgres」と設定します。

    パスワード、パスワード (再確認)

    PowerGres on Linux のスーパーユーザのパスワードを設定してください。

    「サーバを登録」画面、左下の「OK」ボタンを押すとデータベースクラスタの作成が行われます。

注意

LifeKeeper からサービスの起動を行いますので、PowerGres Manager からはサービスの開始は行わないでください。

PowerGres Manager の操作については、「PowerGres on Linux」の CD-ROM に含まれる「PowerGres Manager マニュアル」を参照ください。

オンラインバックアップの設定

オンラインバックアップを利用しない場合はこの設定の必要はありません。 スタンバイサーバの設定 へ進んでください。 オンラインバックアップの概念についての詳細は、「PowerGres Manager マニュアル」および以下の URL を参照してください。

PostgreSQL 9.1 文書: 24.3. 継続的アーカイブとポイントインタイムリカバリ (PITR)

http://www.postgresql.jp/document/9.1/html/continuous-archiving.html

  1. オンラインバックアップを格納するディレクトリを共有ディスク上に作成します。

    この説明では「/share/pitr」というディレクトリを作成しています。 ディレクトリの所有者とアクセス権は以下の例のように変更しておいてください。

    # mkdir /share/pitr
    # chown username /share/pitr
    # chmod 700 /share/pitr
    

    username には、PowerGres on Linux 用に作成したスーパーユーザを入力します。

  2. PowerGres Manager を起動し「オンラインバックアップ」メニューより、「アーカイブモードを有効にする」にチェックを入れます。

    ベースバックアップとアーカイブログの格納ディレクトリ

    上記で作成したディレクトリパスを入力します。

    指定世代以前のバックアップを自動的に削除

    チェックを入れ、世代数を指定すると、新たにベースバックアップを取得するタイミングで古いベースバックアップとアーカイブログを自動的に削除するようになります。

  3. 続いて「適用」ボタンを押してください。 以下のような確認ダイアログが出てきます。 確認ダイアログ内の「OK」ボタンを押してください。

    以上で、オンラインバックアップの設定は完了です。 まだ、postmaster を起動していませんので再起動は必要ありません。

スタンバイサーバの設定

ここでは、スタンバイサーバの PowerGres Manager の設定を行います。

  1. スタンバイサーバの設定を行う前に、データベースクラスタの作成 でマウントした共有ディスクを root ユーザでアンマウントします。

    # umount directory
    

    directory には共有ディスクをマウントしているディレクトリを指定します。

  2. 次にスタンバイサーバにて、共有ディスクを root ユーザでマウントします。

    # mount -t fdtype -o rw device directory
    

    fstype には共有ディスクのファイルシステムタイプ、device にはデバイス、directory にはマウントするディレクトリパスをそれぞれ指定します。

    注意

    マウントするディレクトリパスは、すべてのクラスタで統一してください。

  3. スタンバイサーバで PowerGres Manager を起動してデータベースクラスタを登録します。

    なお、PowerGres Manager の起動は PowerGres on Linux のスーパーユーザにて OS にログインしている必要があります。

    $ /opt/powergres91/bin/powergres-mgr &
    
  4. PowerGres Manager 左上の「ファイル」タブから「サーバを登録」を選択します。

    データベースクラスタの作成 にて指定したラベル名、ポート番号をそれぞれ入力します。

    データベースクラスタの作成 にて指定した共有ディスク上のディレクトリパスを指定し、「既存のデータベースクラスタを使用」を選択します。

  5. 以上でスタンバイサーバの PowerGres Manager の設定が完了しました。 「閉じる」ボタンを押して PowerGres Manager を終了してください。

    注意

    オンラインバックアップの設定 を行っている場合には、同様の設定をスタンバイサーバでも行ってください。

パスワードファイルの作成

PowerGres on Linux リカバリキットでは PowerGres on Linux が起動していることを確認するため、PowerGres on Linux のスーパーユーザがローカルホスト (127.0.0.1) から template1 データベースに対して接続を行います。

その際のパスワード入力を自動化するため、あらかじめパスワードファイルを PowerGres on Linux スーパーユーザのホームディレクトリに作成しておきます。 パスワードファイルは、構成するすべてのサーバで作成してください。

  1. PowerGres on Linux スーパーユーザで OS にログインしてホームディレクトリに移動します。

  2. .pgpass というファイルを作成します。

    $ touch ~/.pgpass
    
  3. エディタで .pgpass を以下の書式で編集を行います。

    hostname:port:database:username:password
    

    各項目には以下の設定を行います。

    hostname

    localhost」を記述してください。

    port

    PowerGres Manager で設定した ポート番号 を記述します。

    database

    template1」を記述してください。

    username

    PowerGres Manager で設定した PowerGres on Linux の スーパーユーザ名 を記述します。

    password

    PowerGres Manager で設定した PowerGres on Linux スーパーユーザの パスワード を記述します。

    例: パスワードが powergres の場合

    localhost:5432:tempalte1:postgres:powergres
    
  4. ファイルのアクセス権限を設定します。

    $ chmod 0600 ~/.pgpass
    

なお、.pgpass ファイルの詳細は 以下の URL を参照してください。

PostgreSQL 9.1 文書: 31.14. パスワードファイル

http://www.postgresql.jp/document/9.1/html/libpq-pgpass.html

PowerGres リソースの作成

LifeKeeper for Linux でリソースを作成します。 リソースの作成により PowerGres on Linux が LifeKeeper for Linux の保護下に置かれます。 なお、リソース作成は root ユーザで行います。

準備

  1. アクティブサーバにて共有ディスクをマウントします。

    # mount -t fstype -o rw device directory
    

    fstype には共有ディスクのファイルシステムタイプ、device にはデバイス、directory にはマウントするディレクトリをそれぞれ指定します。

    注意

    ほかのマシンではマウントしていないことを確認してください。 リソースの作成は root ユーザで行う必要があります。

リソース作成

  1. LifeKeeper GUI を起動します。

    # /opt/LifeKeeper/bin/lkGUIapp &
    
  2. Edit メニューから Server、次に Create Resource Hierarchy を選択します。

  3. Select Recovery Kit リストから PowerGres Database を選択します。

  4. Switchback Type として intelligent または automatic を選択します。

    Switchback Type では、スイッチバックを手動 (intelligent) で行うか、自動 (automatic) で行うかを指定します。 スイッチバックとは、フェイルオーバ後に障害の原因が解消された際、リソースを優先度の高いサーバに戻すことです。 デフォルトでは intelligent です。

  5. 共有ディスクがマウントされているサーバを選択します。

  6. PowerGres data Directory を選択します。

    LifeKeeper によって保護される データベースクラスタの位置 を指定します。

  7. Location of PowerGres Executables を入力します。

    デフォルトで PowerGres の実行ファイルのパス (/opt/powergres91/bin) が入力されています。

  8. Port number for PowerGres service を入力します。

    PowerGres がクライアントからの接続を監視する TCP ポート番号 を指定します。 デフォルトでは「5432」が入力されています。

  9. Quick check user for PowerGres service を入力します。

    PowerGres on Linux リカバリキットでは PowerGres on Linux が起動していることを確認するため、PowerGres on Linux スーパーユーザ がローカルホスト (127.0.0.1) から template1 データベースに対して接続を行っています。

    ここでは、PowerGres on Linux スーパーユーザ名を入力してください。 また パスワードファイル を作成していない場合には、先に作成してください。

  10. Root Tag を入力します

    Root Tag には LifeKeeper GUI でリソースの状態を表示するためのタグを指定します。

  11. Create をクリックします。

    ウィンドウにはリソースを作成している状況が表示されます。 リソースの作成に成功したというメッセージが表示されたことを確認し、Next をクリックします。

  12. Target Server を選択します。

    Target Server にはクラスタを構成するスタンバイサーバを指定します。

  13. Accept Defaults または Next をクリックします。

    Accept Defaults をクリックした場合は、最初にリソースを作成したときと同じ設定でリソースが自動的に作成されます。

    Next をクリックした場合は最初に作成したときと同じ手順でリソースを作成してください。 ただし、Template Priority とTarget Priority を設定する点が異なります。

    Template Priority、Target Priority にはサーバの優先度を指定します。 優先度は数字の小さいほうが優先されます。 デフォルトではプライマリ側が 1、バックアップ側が 10 になります。

  14. Next Server または Finish をクリックします。

    クラスタを構成するサーバがさらにあれば Next Server、そうでなければ Finish をクリックします。 Next Server をクリックしたときはこれまでと同じ手順でリソースを拡張します。

    Finish をクリックするとウィンドウにはリソースの拡張に成功したというメッセージが表示されます。

  15. Done をクリックします。

    ダイアログボックスが閉じられます。

IP リソースの作成

IP リソースは IP アドレスを LifeKeeper for Linux の保護下に置くためのリソースです。 ここで IP Resorce として設定した IP アドレスは PowerGres on Linux に接続するための仮想 IP アドレスとして使用されます。

IP リソースの作成

設定はどのサーバからでも可能ですが、リソースを作成したサーバに上位のプライオリティが与えられるため、通常時にプライマリとなる側から作成します。

  1. 準備と確認

    • 重複しない仮想 IP アドレスの確保
    • クラスタシステム以外のノードの確保

    LifeKeeper では仮想 IP アドレスの監視に Broadcast または Unicast の ping を発行し応答を確認します。 そのため、ping に応答可能な他ノード (ネットワーク機器や他のサーバなど) が同一セグメント上に配置されていなければなりません。

  2. LifeKeeper GUI を起動します。

    # /opt/LifeKeeper/bin/lkGUIapp &
    
  3. Edit メニューから Server、次に Create Resource Hierarchy を選択します。

    Select Recovery Kit では IP を選択します。

  4. Next をクリックして、設定値を入力します。

    設定項目は以下のとおりです。

    項目 入力・選択値
    Switchback Type Intelligent
    Server プライマリサーバの選択
    IP Resource 仮想 IP アドレスの指定
    Netmask 仮想 IP アドレスのネットマスク
    Network Interface 仮想 IP アドレスを割り当てるインタフェース
    IP Resource Tag LifeKeeper 管理上のリソース名
  5. Create を押すと設定が行われます。

  6. Next をクリックし、バックアップサーバ側への設定ウィザードに遷移します。

    設定項目は以下のとおりです。

    項目 入力・選択値
    Target Server バックアップサーバの選択
    Switchback Type Intelligent
    Template Priority プライマリサーバの優先度
    Target Priority バックアップサーバの優先度
    IP Resource 仮想 IP アドレスの確認のみ
    Netmask 仮想 IP アドレスのネットマスクの確認のみ
    Network Interface 仮想 IP アドレスを割り当てるインタフェースを選択
    IP Resource Tag LifeKeeper 管理上のリソース名

    Template Priority、Target Priority の優先度は、数字の小さいほうが優先度として高くなります。 2 ノードクラスタであるときのデフォルトではプライマリ側を 1、バックアップ側を 10 に設定します。

  7. Extend を押すと設定が行われます。

  8. Finish を押すと設定が終了し、その次のウィザードで Done を押して、ウィザードを終了します。 管理画面上で、IP リソースが設定でき状態が表示されます。

PowerGres リソースと IP リソースの関連づけ

PowerGres リソースと IP リソースを関連づけることで、仮想 IP アドレスで PowerGres に接続することができるようになり、クライアントは PowerGres が起動しているサーバを意識する必要がなくなります。

  1. Edit メニューから Resource、次に Create Dependency を選択します。

  2. Server を選択します。

  3. Parent Resource Tag を選択します。

    Parent Resource Tag にはリソースを関連づけるときに親になるリソースのタグを指定します。 ここでは PowerGres リソースのタグ を指定します。

    注意

    データレプリケーション構成の場合は データレプリケーションの設定 で作成した Data Replication リソースを指定してください。

  4. Child Resource Tag を選択します。

    Child Resource Tag にはリソースを関連づけるときに子になるリソースのタグを指定します。 ここでは IP リソースの設定 で指定したタグを指定します。

  5. Create Dependency をクリックします。

    ダイアログボックスには Parent Resource Tag と Child Resource Tag にそれぞれ指定したタグを確認するメッセージが表示されます。

  6. Done をクリックします。

    PowerGres on Linux が LifeKeeper for Linux の保護下に置かれます。 IP リソースが PowerGres リソースに関連づけられたことを確認してください。

動作確認

初期設定が完了したことによって PowerGres on Linux が実際に LifeKeeper for Linux の保護下に置かれていることを確認します。

スイッチオーバの確認

  1. PowerGres on Linux が起動していることを確認します。

    PowerGres on Linux が起動しているサーバでデータベースデーモン (postgres) が起動していることを確認します。 以下のようにプロセスが存在することを確認してください。

    # ps -C postgres
    PID TTY TIME CMD
    1246 ? 00:00:00 postgres
    1249 ? 00:00:00 postgres
    1251 ? 00:00:00 postgres
    
  2. PowerGres on Linux をスイッチオーバします。

    LifeKeeper GUI を起動して StandBy 側の PowerGres リソースにて右クリックを行い「In Service」を実行すると PowerGres on Linux がスイッチオーバします。

  3. スイッチオーバされたことを確認します。

    先ほどまで Active だったサーバではデータベースデーモンがなくなっていることを確認します。 以下のようにプロセスがなくなっていることを確認してください。

    # ps -C postgres
    PID TTY TIME CMD
    

    また、スイッチオーバされたサーバにてデータベースデーモンが起動していることを確認します。 以下のようにプロセスが存在することを確認してください。

    # ps -C postgres
    PID TTY TIME CMD
    1246 ? 00:00:00 postgres
    1249 ? 00:00:00 postgres
    1251 ? 00:00:00 postgres
    

フェイルオーバの確認

  1. Active サーバの PowerGres on Linux が実際に起動していることを確認します。

    # ps -C postgres
    PID TTY TIME CMD
    1312 ? 00:00:00 postgres
    1313 ? 00:00:00 postgres
    1315 ? 00:00:00 postgres
    
  2. PowerGres on Linux をフェイルオーバします。

    PowerGres on Linux が起動しているサーバでデータベースデーモンを強制的に停止します。 なお、pid にはデータベースデーモンのプロセス ID を指定します。

    # kill pid
    # ps -C postgres
    PID TTY TIME CMD
    

    データベースデーモンを強制的に停止しても、データベースデーモンがローカルリカバリされ、しばらくすると自動的に復帰することが確認できます。

    # ps -C postgres
    PID TTY TIME CMD
    1346 ? 00:00:00 postgres
    1347 ? 00:00:00 postgres
    1349 ? 00:00:00 postgres
    

    そこで、ローカルリカバリできないようデータベースデーモンのファイル名を一時的に変更します。

    # mv /opt/powergres91/bin/postgres /opt/powergres91/bin/postgres~
    # kill pid
    

    しばらくすると PowerGres on Linux が優先度が高いサーバへフェイルオーバします。

  3. フェイルオーバされたことを確認します。

    LifeKeeper GUI にて Active サーバのリソースが StandBy へ変更され、StandBy サーバのリソースが Active に移り変わることが確認できます。 また、Active に移り変わったサーバではデータベースデーモンの起動が確認できます。

    # ps -C postgres
    PID TTY TIME CMD
    1278 ? 00:00:00 postgres
    1280 ? 00:00:00 postgres
    1282 ? 00:00:00 postgres
    

    なお、フェイルオーバ確認のために変更したファイル名は必ず元に戻してください。

    # mv /opt/powergres91/bin/postgres~ /opt/powergres91/bin/postgres