高可用性(PostgreSQLデータベースの場合)
(この機能は、Enterprise Editionでのみサポートされています。 また、本手順は、ビルド6800以降を対象としています。)
ミッション クリティカルな環境において、パスワードへの継続的なアクセスを提供するということは必要不可欠な要素です。PMPの高可用性の機能により、サーバー障害などの不慮の事態においてもパスワードにアクセスできる環境を提供することができます。
高可用性の仕組み
- リダンダントPMPサーバーとデータベースインスタンスがあります。
- 通常使用されるインスタンス(プライマリ)は、ユーザーに対して読み取り/書き込みアクセスを提供します。すべてのユーザーはプライマリに接続します。
- もうひとつのインスタンスは、セカンダリ(スタンバイ サーバー)として機能します。
- プライマリとセカンダリのデータは常に相互同期されています。データのレプリケーションは、安全な、暗号化されたチャネルを通じて行われます。
- プライマリ サーバーがダウンすると、セカンダリ サーバーはユーザーへの"読み取りのみ"のアクセスを提供します。これは、プライマリ サーバーが完全復旧し、サービスを再開するまで継続されます。プライマリ サーバーのダウン中に行われたデータベースへの変更は、プライマリとセカンダリの接続が回復すると自動的に同期されます。
シナリオ例;
シナリオ 1 - 地理的に別の場所に配置されたプライマリとセカンダリを繋ぐWANリンク上で不具合が発生した場合
プライマリ サーバーが場所"A"に配置され、セカンダリ サーバーが場所"B"に配置されているとします。通常は、"A"、"B"、いずれのユーザーもプライマリ サーバーにアクセスしてパスワード管理操作を行います。プライマリとセカンダリのデータは常に相互同期されています。ここで、場所"A"と"B"の間を繋ぐネットワーク接続が失われたと仮定します。この場合、場所"A"にいるユーザーはプライマリ サーバーへの接続を継続し、すべての操作を実行し続けることができます。場所"B"にいるユーザーは、応急的にセカンダリ サーバーにアクセスすることで、パスワード管理操作を継続することができます。場所"A"と"B"を繋ぐネットワーク接続が回復すると、プライマリ サーバーとセカンダリ サーバーのデータは再び同期されます。
シナリオ 2 - 同一ネットワーク上にプライマリとセカンダリが配置された環境で、プライマリがダウンした場合
プライマリ サーバーがダウンすると、場所"A"と"B"のユーザーは、応急的にセカンダリ サーバーへアクセスし、パスワード管理操作を継続します。
高可用性の設定方法
PMPでの高可用性の設定には、次の4つの簡単なステップを実行します;
ステップ1:プライマリとセカンダリのセットアップ
使用中のPMPサーバーがある場合、それをプライマリ サーバーにすることができます。この場合、セカンダリ サーバーとして、新たにもうひとつのPMPを別のサーバーに インストール します。セカンダリサーバーとしてPMPをインストールするには、インストール処理中にオプション [このサーバーを高可用性のセカンダリ サーバーとして設定する]を選択する必要があります。インストール後に、セカンダリサーバーは起動させないでください。
ステップ2:プライマリ上でデータ複製パックを作成する
- プライマリ、セカンダリ両方のサーバーが稼働している場合、停止します。この際、PMPのpostgresプロセス(PostgreSQLのプロセス)が停止していることを確認してください。
- コマンド プロンプトを開き、[PMP_Primary_Installation_Folder]/bin ディレクトリに移動します。
- 次のスクリプトを実行します。HASetup.bat [PMPプライマリサーバーのFQDN] [PMPセカンダリサーバーのFQDN ] (Windows) / HASetup.sh[PMPプライマリサーバーのFQDN] [PMPセカンダリサーバーのFQDN ](Linux)</(Linux)
- フォルダ [PMP_Primary_Installation_Folder]/replicationフォルダに複製パッケージのファイルHAPack.zip が作成されます。このzipファイルにはセカンダリ サーバー用のデータベース パッケージが含まれます。
- HAPack.zip をコピーします。コピーしたファイルを、次のステップ 3で説明するように、セカンダリ サーバーのホストに配置します。
- PMPのプライマリ サーバーを開始します。
このスクリプトを実行するために、コマンドライン引数として、(1)PMPプライマリサーバーと、(2)PMPセカンダリサーバー、がインストールされているホストの完全修飾ドメイン名を取得する必要があります。例:プライマリ サーバーがドメイン zoho.com 上のホスト名 primary-server で、セカンダリ サーバーがドメイン zoho.com 上のホスト名 secondary-serverで稼働している場合、実行するスクリプトは次のようになります。
Windowsシステムにおいて;HASetup.bat primary-server.zoho.com secondary-server.zoho.com
Linuxシステムにおいて: sh HASetup.sh primary-server.zoho.com secondary-server.zoho.com
ステップ3:高可用性データ複製パックをセカンダリ サーバーに配置する
プライマリ サーバーからコピーした HAPack.zip をセカンダリ サーバーの [PMP_Secondary_Installation_Folder] にコピーし、解凍します。ファイルの解凍先は [PMP_Secondary_Intallation_Folder] 直下にするよう、ご注意ください。 解凍すると、既存のファイルが上書きされます。
ステップ4:暗号化マスター鍵の場所を指定する
PMPセカンダリサーバーで[HAPack.zip]を解凍した後、 [PMP_Installation_Folder]/confフォルダを開きます。そして、manage_key.conf をテキストエディタで開き、pmp_key.key ( 暗号化されたマスター鍵 )の場所を指定します。PMPを起動させるためには、PMPからアクセス可能な場所に配置された pmp_key.key ファイルのフルパス情報が必要です。起動に成功すると、マスター鍵はもう必要ありませんので、鍵を格納したデバイスまたはネットワーク ドライブを切り離すことができます。
これで高可用性設定の準備は完了です。動作を開始するには、PMPセカンダリ サーバーを起動します。
- プライマリ サーバーが稼働している場合、停止します。
- コマンド プロンプトを開き、[PMP_Primary_Installation_Folder]/bin ディレクトリに移動します。
- セカンダリサーバーの証明書をコピーし、プライマリサーバーの [PMP_Primary_Installation_Folder]/binディレクトリに配置します。
- コマンドプロンプトを開き、フォルダ [PMP_Primary_Installation_Folder]/binディレクトリに移動し、次のコマンドを実行します:
- 証明書がPMPの証明書ストアに追加されます。
importCert.bat [サーバー証明書の名前]
PMPプライマリ サーバーを起動します。
高可用性セットアップの検証
上記手順の完了後、高可用性の設定が正しく動作しているかどうかを確認します。プライマリ、もしくはセカンダリサーバーの [管理] >> [一般] >> [高可用性] を選択してください。正しくセットアップされている場合、次のように表示されます:
高可用性の状態:活動
上記は、高可用性が正しく動作していることを示します。状態が "失敗" と表示されている場合、高可用性の設定が失敗したことを示します。
2段階認証が設定されている場合
- 2段階認証が有効化された、もしくは2段階認証のタイプ(PhoneFactor/RSA SecurID/ワンタイム パスワード)が変更されたシステムで、かつ高可用性が設定されている場合、PMPのセカンダリ サーバーを再起動する必要があります。