※当記事は、2016年に旧LifeKeeper Blogへ投稿された記事を、若干の修正のうえ再掲したものです。
こんにちは。相澤です。LifeKeeperの評価検証業務を担当しています。
SIOS Protection Suite for Windows v8.6(以下 SPS for Win v8.6)がリリースされ、新たにPostgreSQL Server ARKが追加されました。
※当記事は、2017年に旧LifeKeeper Blogへ投稿された記事を、若干の修正のうえ再掲したものです。
今回は、Windows Server 2012 R2 + SPS for Win v8.6 を使用した仮想環境で、PostgreSQLの導入及び
PostgreSQL Server ARKを用いたリソース作成を実施してみたので、簡単とはなりますがご紹介します。
今回作成した環境は以下のようになります。
[ システム構成 ]
項目 | ソフトウェア情報/設定内容 |
ハードウェア | vSphere上の仮想マシン |
OS | Windows Server 2012 R2 Standard |
LK/DK |
SPS for Win v 8.6(非共有ディスク構成のためDataKeeper を使用) |
DBソフトウェア | PostgreSQL v9.6 |
DBサーバホスト名 | lk063/lk064 |
コミュニケーションパス | 10.1.5.63/10.1.5.64 192.168.1.63/192.168.1.64 |
DataKeeperボリューム | Dドライブ |
レプリケーション用ネットワーク | 10.1.5.63/10.1.5.64 |
※LifeKeeper/DataKeeperのインストールの詳細については、各種マニュアルをご参照下さい。
PostgreSQLアプリケーションは両方のホストへインストールし、PostgreSQLのDBデータはDataKeeperボリュームのDドライブへ配置しています。
※SPS for Win v8.6 では、PostgreSQL 9.6のみサポートしています。PostgreSQL 9.6は、Windows Server 2016が未サポートとなっている為、今回は、Windows Server 2012 R2で検証を実施しています。
サポート状況の詳細は、以下を参照し確認して下さい。
・SIOS Protection Suite for Windows Support Matrix
・PostgreSQL:Windows installers
[ 構築の流れ ]
以下の流れで導入を実施します。
- PostgreSQLのインストール
- PostgreSQL Serverリソースの作成
- 動作検証
SPS for Win v8.6(LifeKeeper/DataKeeper for Windows)のインストール及び初期設定は 完了しているものとし、lk063がActive、lk064がStandbyとなっている事を前提とします。
1. PostgreSQLのインストール
※事前準備として、Dドライブ直下に、「pgdata」ディレクトリを作成します。
各ホストへPostgreSQLのインストールを実施します。
インストールモジュールをダブルクリックし、PostgreSQLのインストールを実施します。以下のようなWindowが表示されたら、「Next」をクリックしして下さい。
インストール場所を指定します。変更したい場合はインストールするディレクトリを指定して下さい。今回は、デフォルト設定としています。設定に問題がなければ、「Next」をクリックして下さい。
データベースなど作成されたデータを設置するディレクトリを指定して下さい。今回は、データレプリケーションにて指定するDドライブ配下へ、「pgdata」ディレクトリを作成したうえで指定しています。設定に問題がなければ、「Next」をクリックして下さい。
スーパーユーザである「postgres」アカウントのパスワードを設定して下さい。確認のため同じパスワードを二か所に入力して下さい。設定が終わりましたら「Next」をクリックして下さい。
PostgreSQLとの間で通信を行う場合のポート番号を指定して下さい。今回はデフォルト値の5432を指定します。他アプリケーション等で使用している場合などは変更して下さい。設定に問題がなければ、「Next」をクリックして下さい。
新しいデータベースクラスタを作成する場合のロケールを指定します。今回はデフォルト値である「Default locale」としています。設定に問題がなければ、「Next」をクリックして下さい。
インストール前の最終確認です。インストールを行ってよければ「Next」をクリックして下さい。
以下のように表示されればPostgreSQLのインストールは完了です。追加でインストールするドライバー、アプリケーションが不要の場合は、「Stack Builder ~」と記載された左側にあるチェックを外し、「Finish」をクリックして下さい。追加する必要がある場合は、チェックを付けたまま「Finish」をクリックして下さい。
ここまでの作業を、もう一台のホストでも同様に実施してください。
2. PostgreSQL Serverリソースの作成
DataKeeperミラージョブおよび、レプリケーションリソースを作成します。
下記マニュアルを参考に、PostgreSQLのデータ格納先であるDドライブのDataKeeper リソースを作成します。
<参考マニュアル>
SIOS Protection Suite for Windows v8.6 テクニカルドキュメンテーション
PostgreSQL Serverリソース作成のため、PostgreSQLの設定を編集します。
下記マニュアルを参照し、いずれかの方法で、レジストリの編集及びデータベースへの自動接続設定を実施して下さい。今回は、下記記載の方法で設定を実施します。
<参考マニュアル>
SIOS Protection Suite PostgreSQL Server リカバリーキット / Postmaster のポート引数設定
以下レジストリを展開し、ImagePath の値の末尾に「 -o "-p 5432"」を追記します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\postgresql-x86-9.6\ImagePath
<参考マニュアル>
SIOS Protection Suite PostgreSQL Server リカバリーキット / 自動接続設定
pg_hba.conf ファイルを編集し、管理ユーザーの認証方式を、「trust」に設定します。※本設定を実施しなければリソース作成が実施できないため、本設定は必須となります。
もう1台のホストでも同様の操作を実施して下さい。
PostgreSQL ARKを利用し、リソースを作成します。
Create Resource Hierarchy ボタンからリソース作成メニューを起動し、以下を選択します。
項目 | 入力/選択する値 |
Primary Server | LK063 |
Backup Server | LK064 |
Application to protect |
PostgreSQL Server |
PostgreSQL Serverリソース作成画面にて、以下を指定します。
項目 | 入力/選択する値 |
PostgreSQL Service Name | postgresql-x64-9.6 |
※サービス一覧より、サービス名を確認し入力します。手順1でレジストリの設定を実施していないと、本手順にてエラーとなり先の設定に進むことができません。設定が未実施の場合は、手順1を参照し、レジストリの設定を変更して下さい。 |
|
PostgreSQL Exxecutable Location | C:\Program Files\PostgreSQL\9.6\bin |
PostgreSQL Data Directory |
D:\pgdata |
PostgreSQL port |
5432 |
Enter Database Administrator User |
Postgres |
※手順1のデータベースへの自動接続設定を実施していないと、本手順にてエラーとなります。設定が未実施の場合は、手順1を参照し、データベースへの自動接続設定を実施して下さい。 |
|
PostgreSQL Database Tag |
pgsql-5432 |
リソース拡張画面にて、以下を指定しPostgreSQL Serverリソースを作成します。
項目 | 入力/選択する値 |
PostgreSQL Executable Location | LK063 |
Backup Priority | LK064 |
リソース作成後、以下のように自動でDataKeeperのVol.Dリソースと連動して動作するように依存関係が作成されます。
以上の操作で、PostgreSQL Serverリソースの作成は完了となります。
3. 動作検証
PostgreSQL Serverリソースの作成が完了したので、正常にフェイルオーバーが行われるかを確認します。
LifeKeeper GUIを起動します。
Windowsスタートメニューより、以下をクリックし、GUIを起動します。
GUI起動後、ログインユーザ、パスワードを入力し、ログインします。
手動スイッチオーバーを実施します。
in Service をクリックします。
Serverから、切替え後のサーバとして、LK064を選択し、Nextボタンをクリックします。
切替え対象リソースを選択し、Nextボタンをクリックします。
確認画面の内容を確認し、問題ないようであればin Service ボタンをクリックします。
全てのリソースが、LK064側でActiveとなっていることを確認します。
上記確認後、Done をクリックし、スイッチオーバーを完了します。
PostgreSQL Serverリソースのローカルリカバリーを無効化し、アプリケーション障害によるフェイルオーバーを発生させます。
※ローカルリカバリーが有効となっていると、サービス停止後に自動で復旧してしまう為、無効とします。
現在のローカルリカバリーの設定を、コマンド「ins_list -t pgsql-5432」で確認します。
※赤枠部分が1となっていることから、現在のローカルリカバリーの設定は有効となっていることがわかります。
コマンド ins_setlocalrecover -t pgsql-5432 -l N を実行し、ローカルリカバリーを無効化する。
変更後の設定を、コマンド「ins_list -t pgsql-5432」で確認します。
※赤枠部分が1となっていることから、現在のローカルリカバリーの設定は有効となっていることがわかります。
サービス一覧より、「postgresql-x64-9.6」を選択し、「サービスの停止」をクリックします。
リソース障害を検知し、リソースがLK064側ですべてActiveとなっていることを確認します。
※LK063側は、サービスが異常状態となっているため、 表示がFail(赤い X 印)となっています。
ins_setlocalrecover、ins_listコマンドの詳細は、以下マニュアルを参照して下さい。
<参考マニュアル>
SIOS Protection Suite for Windows v8.6 テクニカルドキュメンテーション / LCDIインスタンス
これにて、手動スイッチオーバーおよび、アプリケーション異常によるフェイルオーバー動作の確認は終了となります。
[ まとめ ]
今回は、SPS for Win v8.6 から新たに製品に同梱されたPostgreSQL Server ARKを利用して、PostgreSQLの導入からPostgreSQL Serverリソース作成までを実施してみました。
リソースを作成する上でのポイントは、手順内にも記載していますが、以下レジストリのImagePathの値に、「 -o "-p 5432"」の追記及び、データベースへの自動接続設定を忘れないことが重要となります。
<該当レジストリパス>
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\postgresql-x86-9.6\ImagePath
上記の編集を実施したうえで、GUIの内容に従い設定を進めていけば、PostgreSQL Serverリソースを簡単に作成することが可能です。
尚、データベースの保存先、ポートの設定等は環境によって異なりますので、別途設定値の変更を行う必要があるので、ご注意下さい。