高可用性(PMPビルド 6301以前用)

(この機能は、Enterprise Editionでのみサポートされています。 また、本手順は、ビルド6301以前を対象としています。 ビルド6301より新しいバージョンの場合、こちらをクリックしてください。

ミッション クリティカルな環境において、パスワードへの継続的なアクセスを提供するということは必要不可欠な要素です。PMPの高可用性の機能により、サーバー障害などの不慮の事態においてもパスワードにアクセスできる環境を提供することができます。

高可用性の仕組み

  • リダンダントPMPサーバーとデータベースインスタンスがあります。
  • 通常使用されるインスタンス(プライマリ)は、ユーザーに対して読み取り/書き込みアクセスを提供します。すべてのユーザーはプライマリに接続します。
  • もうひとつのインスタンスは、セカンダリ として機能します。
  • プライマリとセカンダリのデータは常に相互同期されています。PMPはMySQLのデータベース複製機能を使用してデータの同期を行います。データのレプリケーションは、安全な、暗号化されたチャネルを通じて行われます。
  • プライマリ サーバーがダウンすると、セカンダリ サーバーはユーザーへの"読み取りのみ"のアクセスを提供します。これは、プライマリ サーバーが完全復旧し、サービスを再開するまで継続されます。プライマリ サーバーのダウン中に行われたデータベースへの変更は、プライマリとセカンダリの接続が回復すると自動的に同期されます。

シナリオ例;

シナリオ 1 - 地理的に別の場所に配置されたプライマリとセカンダリを繋ぐWANリンク上で不具合が発生した場合

プライマリ サーバーが場所"A"に配置され、セカンダリ サーバーが場所"B"に配置されているとします。通常は、"A"、"B"いずれのユーザーもプライマリ サーバーにアクセスしてパスワード管理操作を行います。プライマリとセカンダリのデータは常に相互同期されています。ここで、場所"A"と"B"の間を繋ぐネットワーク接続が失われたと仮定します。この場合、場所"A"にいるユーザーはプライマリ サーバーへの接続を継続し、すべての操作を実行し続けることができます。場所"B"にいるユーザーは、セカンダリ サーバーにアクセスすることで、読み取りのみのパスワード管理操作を継続することができます。場所"A"と"B"を繋ぐネットワーク接続が回復すると、プライマリ サーバーとセカンダリ サーバーのデータは再び同期されます。

シナリオ 2 - 同一ネットワーク上にプライマリとセカンダリが配置された環境で、プライマリがダウンした場合

プライマリ サーバーがダウンすると、場所"A"と"B"のユーザーは、セカンダリサーバーのパスワード非常時読み取りアクセスを活用することができます。

監査証跡への影響について

上記の高可用性のシナリオでは、通常通りに監査証跡が記録されます。シナリオ1では、2つの場所を繋ぐネットワークが有効である場合、監査証跡はプライマリに記録されます。ユーザーがセカンダリに接続すると、"パスワード取得"、"ログイン"、"ログアウト"などの操作が記録されます。2つの場所のネットワーク接続が回復すると、監査データが同期されます。シナリオ2では、プライマリがクラッシュした場合、ユーザーによるセカンダリ上での"パスワード取得"、"ログイン"、"ログアウト"などの操作が記録されます。他の監査記録はスタンバイに同期されます。

高可用性の設定方法

PMPでの高可用性の設定には、次の4つの簡単なステップを実行します;

    1. プライマリとセカンダリのセットアップ(使用中のPMPサーバーがある場合、それをプライマリ サーバーに設定することができます。この場合、セカンダリ サーバーとして、新たにもうひとつのPMPを別のサーバーにインストールします。)
    2. プライマリの設定
    3. セカンダリの設定
    4. データベース レプリケーションの設定

    詳細な手順は次の通りです。

ステップ 1:プライマリとセカンダリのセットアップ

  • 高可用性の設定を行う前に、PMPのプライマリ サーバーとスタンバイサーバーのインストールが必要です。プライマリを新規インストールするか、既存のPMPをプライマリとして使用します。別のマシンに、セカンダリ サーバーとしてPMPの新規インスタンスをインストールします。セカンダリサーバーとしてPMPをインストールするには、インストール処理中に、オプション[このサーバーを高可用性のセカンダリサーバーとして設定する(読み取り専用)]を選択する必要があります。

重要メモ:

  • インストールの完了後、PMPのプライマリとセカンダリの両方をいったん起動し、停止する必要があります。
  • 高可用性の接続を行う前に、プライマリとセカンダリから次のファイル以外すべてのファイルを削除することを推奨します:(フォルダ [PMP_Home]/mysql/data 下にある)passtrixフォルダ、 mysqlフォルダ、 test、 PasstrixTemp、ibdata1、 ca-cert.pem、 server-cert.pem、 server-key.pem

次のファイルは削除しないよう注意してください:

  • フォルダ "passtrix"
  • フォルダ "mysql"
  • フォルダ "test"
  • "PasstrixTemp"
  • "ibdata1"
  • "ca-cert.pem"
  • "server-cert.pem"
  • "server-key.pem"

これらのフォルダ/ファイルを削除してしまうと、既存のデータがすべて失われます。

ステップ 2:プライマリの設定

必要条件

    1. プライマリ サーバーが稼働している場合、停止します。
    2. プライマリ サーバーとセカンダリ サーバー間の通信が可能であることを確認します。(pingコマンドを使用します)
    3. PMPプライマリフォルダに移動し、次の手順を行います:
      • フォルダ [PMP_Installation_Folder]/mysql/data を開きます。次のファイルとフォルダは重要です:
        • フォルダ "passtrix"
        • フォルダ "mysql"
        • フォルダ "test"
        • "PasstrixTemp"
        • "ibdata1"
        • "ca-cert.pem"
        • "server-cert.pem"
        • "server-key.pem"

    これらのフォルダを残し、それ以外のファイルはすべて削除します。

手順

    1. コマンドプロンプトを開き、[PMP_Installation_Folder]/binディレクトリに移動して次のスクリプトを実行します:replicationPack.bat(Windows) / replicationPack.sh(Linux)
    2. フォルダ [PMP_Home]/replication に複製パッケージのファイル[Replication.zip]が作成されます。このzipファイルにはスタンバイサーバー用のデータベース パッケージが含まれます。
    3. [PMP_Installation_Folder]/binディレクトリを開きます。既存のファイル[HAPrimary.conf]のファイル名が[HASecondary.conf]に変更されていることが確認できます。重要メモ:次のステップに進む前に、[HAPrimary.conf][PMP_Installation_Folder]/mysql/binフォルダにないことを確認してください。HASecondary.conf だけがあるべきです。
    4. HASecondary.conf をテキストエディタで開き、次の変更を行います:
    5. セカンダリサーバーが稼働しているホスト名を入力してください。

      master_host=[セカンダリサーバーのホスト名]

      例えば、[test_workstation]は、セカンダリPMPサーバーが稼働しているマシンで、次の情報を入力します;

      master_host=test_workstation

      セカンダリサーバーのホスト名、DNS名、そしてIPアドレスを入力してください。

      slave_hosts=[セカンダリサーバーのホスト名]、[セカンダリサーバーのDNS名]、[セカンダリサーバーのIP]

      例えば、[test_workstation]は、セカンダリPMPサーバーが稼働しているマシンで、[test_workstation.test.com]はDNS名、 [192.168.10.1]はIPです。次の情報を入力してください。(空白スペースを使用せず、コンマで区切ってください。)

      slave_hosts=test_workstation,test_workstation.test.com,192.168.10.1

    6. コマンドプロンプトを開き、[PMP_Installation_Folder]/bin に移動します。そして次のスクリプトを実行します。startDB.bat [MySQL Port] (Windows)/startDB.sh [MySQL Port](Linux);スクリプト実行時にはMySQLのポート番号を指定する必要があります。既定では、PMPのMySQLポート番号は、2345です。
    7. startDB.bat [MySQL Port] (Windowsシステム用)

      startDB.sh [MySQL Port] (Linuxシステム用)

      例えば、既定のMySQLポート番号2345で、次のスクリプトを実行してください;

      startDB.bat 2345(Windowsシステム用)

      startDB.sh 2345(Linuxシステム用)

      プライマリのデータベースが起動します。(既定では、MySQLポートは2345です。)

    8. [PMP_Installation_Folder]/replicationディレクトリにあるReplication.zipをコピーします。コピーしたファイルを、次のステップ3で説明する通り、セカンダリ サーバのホストに配置します。

ステップ 3:セカンダリの設定

必要条件

    1. セカンダリ サーバーが稼働している場合、停止します。
    2. プライマリ サーバーとセカンダリ サーバー間の通信が可能であることを確認します。(pingコマンドを使用します)
    3. PMPセカンダリフォルダで次の手順を行います:
    • フォルダ [PMP_Installation_Folder]/mysql/data を開きます。次のファイルとフォルダは重要です:
      • フォルダ "passtrix"
      • フォルダ "mysql"
      • フォルダ "test"
      • "PasstrixTemp"
      • "ibdata1"
      • "ca-cert.pem"
      • "server-cert.pem"
      • "server-key.pem"
    • これらのフォルダを残し、それ以外のファイルはすべて削除します。

手順

    1. プライマリ サーバーからコピーした Replication.zip をセカンダリ サーバーの [PMP_Installation_Folder] にコピーし、解凍します。ファイルの解凍先は、[PMP_Installation_Folder]直下にするよう、ご注意ください。 解凍すると、既存のファイルが上書きされます。
    2. セカンダリインストールの [PMP_Installation_Folder]/mysql/bin/database_params.conf]ファイルを、セカンダリインストールの [PMP_Installation_Folder]/confディレクトリに上書きコピーします。
    3. [PMP_Installation_Folder]/mysql/binディレクトリを開きます。ファイル[HAPrimary.conf]を検索します。重要メモ:次のステップに進む前に、[HASecondary.conf] が[PMP_Installation_Folder]/mysql/binフォルダにないことを確認してください。配置されるべきファイルは、HAPrimary.confのみとなります。
    4. HAPrimary.conf をテキストエディタで開き、次の変更を行います:
    5. プライマリサーバーが動作しているホスト名を入力してください。

      master_host=[プライマリサーバーのホスト名]

      例えば、[test_workstation]は、プライマリPMPサーバーが稼働しているマシンで、次の情報を入力します;

      master_host=test_workstation

      プライマリサーバーのホスト名、DNS名、そしてIPアドレスを入力してください。

      slave_hosts=[プライマリサーバーのホスト名]、[プライマリサーバーのDNS名]、[プライマリサーバーのIP]

      例えば、[test_workstation]は、プライマリPMPサーバーが稼働しているマシンであり、[test_workstation.test.com]はDNS名、 [192.168.10.1]はIPです。次の情報を入力してください。:

      slave_hosts=test_workstation,test_workstation.test.com,192.168.10.1

    6. セカンダリインストールの[PMP_Installation_Folder]/mysql/binに配置されている startDB.bat(Windows) / startDB.sh(Linux) をセカンダリインストールの[PMP_Installation_Folder]/binディレクトリに上書きコピーします。
    7. セカンダリインストールの[PMP_Installation_Folder]/binに移動し、startDB.bat [MySQL Port] (Windows) / startDB.sh [MySQL Port] (Linux)を実行します。すると、セカンダリデータベースが起動します。(既定のMySQLポートは、2345です。)
    8. 例えば、既定のMySQLポート番号2345で、次のスクリプトを実行してください;

      startDB.bat 2345(Windows)

      startDB.sh 2345(Linux)

    9. セカンダリのデータベースがポート 2345 で起動します。

ステップ 4:データベース レプリケーションの有効化 - この手順はプライマリ、セカンダリの両方で実行します

  • [PMP_Installation_Folder]/mysql/binの enableReplication.bat(Windows) / enableReplication.sh(Linux)をプライマリ、セカンダリの両方で実行します。

ステップ4−1:プライマリとセカンダリの開始

  • プライマリ サーバで mysqld プロセスが動作している場合は、プロセスを停止します。その後、PMPサービスを起動します。
  • 同様に、セカンダリ サーバーで mysqld プロセスが動作している場合は、プロセスを停止します。その後、PMPサービスを起動します。
  • 高可用性のセットアップが完了しました。

高可用性セットアップの検証

上記手順の完了後、高可用性の設定が正しく動作しているかどうかを確認するには、プライマリ サーバーの[管理] >> [一般] >> [高可用性]を選択します。正しくセットアップされている場合、次のように表示されます:

高可用性の状態: 活動

レプリケーションの状態: 活動

上記のメッセージどちらも"活動"の場合、高可用性が問題なく動作していることを示します。状態が "失敗" と表示されている場合、高可用性の設定は失敗していることを示します。

高可用性の状態について

高可用性とは、プライマリ/スタンバイ サーバー間の継続的なレプリケーションを示します。"活動"は、完全なデータ複製とデータ同期が実行されていることを示します。プライマリ/セカンダリ間のネットワークの問題などが発生すると、状態は"失敗"になります。

"失敗"は、プライマリ/スタンバイサーバーのデータベース間の通信/接続ができない場合に発生する可能性があります。接続が回復すると、データベース間のデータ同期が再開します。プライマリ/スタンバイ間の接続ができない間でも、いずれかのサーバーに接続しているユーザーは、サービスに不具合を生じることはありません。

つまり、状態の表示はデータベース間の接続/通信の状態を示すものであり、何かのトラブルシューティングを示しているものではありません。

レプリケーションの状態について

上述した通り、高可用性はMySQLのレプリケーション機能を利用して実現しています。プライマリ サーバーのデータベースはマスターデータベースとして動作し、セカンダリ サーバーのデータベースはスレーブデータベースとして動作します。データが正しく複製された場合、状態は"活動"となります。データの更新や、クエリで失敗などが発生すると、レプリケーションの状態が"失敗"となります。

状態が"失敗"になると、PMPの高可用性設定も使用できません。この場合、高可用性の設定を再度行う必要があります。

高可用性を再度設定しても状態が"失敗"のままである場合、次のログファイルをPMPサポートセンターまでお送りください;

Windows:[PMP Installation Folder]/mysql/data/.errファイル

Linux:[PMP Installation Folder]/mysql/data/tmp/.outファイル

"失敗"状態時のアラート通知のメカニズム

上記2つの状態は高可用性の設定にとって重要です。そのため、ステータスが"失敗"になった場合、あるいは"活動"になった場合にはリアルタイムで通知を受け取ることが必要です。通知を設定するには、[監査] >> [リソース監査] >> [監査アクション] >> [監査を設定] >> [一般操作] を開き、[高可用性の活動]と[高可用性の失敗]の通知方法で、[メール送信]/[SNMPトラップを送信]/[Syslogの生成]を選択します。

メモ 1:障害復旧の実行中にプライマリ サーバーがクラッシュした場合、次の事項を確認をしてください;

  • セカンダリサーバー[PMP_Home]/mysql/data を開き、ファイル ibdata1 と passtrix をコピーします。
  • PMPを新規インストールします(上記ファイルをコピーしたPMPセカンダリと同じバージョンのもの)。
  • 新規にインストールしたPMPの [PMP_Home]/mysql/data を開き、ibdata1 と passtrix を上書きします。
  • 新規にインストールしたPMPを起動します。

メモ 2:

  • 高可用性の設定後にプライマリ サーバーのポート番号を変更すると、高可用性は機能しなくなります。この場合、設定を再度行う必要があります。

メモ 3:

2段階認証が設定されている場合

  • 2段階認証が有効化された、もしくは2段階認証のタイプ(PhoneFactor/RSA SecurID/ワンタイム パスワード)が変更されたシステム で、かつ高可用性が設定されている場合、PMPのセカンダリ サーバーを再起動する必要があります。

トラブルシューティングの秘訣

高可用性チュートリアルの "トラブルシューティングの秘訣" を参照してください。