こんにちは。
相澤です。LifeKeeperの評価検証業務を担当しております。
Microsoftより、2017年10月2日にSQL Server 2017 がリリースされ、「Linux OS」や「Dockerコンテナ」等の機能が、サポート対象として追加されました。
今回は、QSPを用いて、SQL Server 2017 on Linux のリソース作成を実施してみたので、簡単とはなりますがご紹介します。
QSP の詳細は以下リンクを参照してください。
<http://jpdocs.us.sios.com/Linux/9.2/LK4L/TechDoc/index.htm#administration/administrator_tasks/creating_resource_hierarchies/qsp_resource_hierarchy.htm>
今回作成した環境は以下のようになります。
システム構成
項目 | 設定値 |
ハードウェア | vSphere上の仮想マシン |
OS | Red Hat Enterprise Linux 7.4 |
LK/DK | SIOS Protection Suite for Linux v9.2 (非共有ディスク構成のためDataKeeper を使用) |
DBソフトウェア | SQL Server 2017 on Linux (評価版) |
DBサーバホスト名 | lk091/lk092 |
コミュニケーションパス | 10.1.5.91/10.1.5.92 192.168.1.91/192.168.1.92 |
クライアント接続用仮想IP | 10.1.5.96 |
データミラー領域 | /dev/sdb |
マウントポイント | /sqldb |
レプリケーション用ネットワーク | 192.168.1.91/192.168.1.92 |
※LifeKeeper/DataKeeperのインストールの詳細については、各種マニュアルをご参照ください。
SQL Serverは、両方のホストへインストールし、SQL Serverで使用するデータは、データミラー領域へ格納しております。
構築の流れ
以下の流れで導入を実施します。
■SQL Server 2017 on Linuxのインストール
■QSP(SQL Server)リソースの作成
■動作検証
LifeKeeperおよびDataKeeperのインストールおよび初期設定は完了しているものとし、lk091がActive、lk092がStandbyとなっている事を前提とします。
1.SQL Server をインストールする。
下記URLの手順を参考に、SQL Serverのインストールを実施します。
※両方のサーバでインストールを実施して下さい。
【 該当URL 】
<https://docs.microsoft.com/ja-jp/sql/linux/quickstart-install-connect-red-hat>
2. SQL Server の設定ファイルを編集し、データ格納場所を設定する。
下記URLの手順を参考に、SQL Server のデータ、ログなどの格納場所の設定を実施します。
※本設定は、両方のサーバで実施して下さい。
【 該当URL 】
<https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-configure-mssql-conf>
3. IP リソース、DataKeeper リソースを作成する。
下記参照し、IPリソース、DataKeeperリソースの作成を実施します。
【 IP Recovery Kit 管理ガイド 】
-IP リソース階層の作成
【 SIOS Protection Suite for Linux 9.2 テクニカルドキュメンテーション 】
-DataKeeper リソース階層の作成
4. QSP を用いて、SQL Server リソースを作成する。
Craate Resource Hierarchy を選択し、リソースの作成メニューを起動し以下を選択します。
項目 | 入力/選択する値 |
Please Select Recovery Kit | Quick Service protection |
Switchback Type | Intelligent |
Server | LK091 |
Service Name | mssql-server |
Enable or Disable monitoring | Enable |
※serviceコマンドにて、statusの確認が可能なサービスとなるため、enableを選択する。 | |
Resource Tag | QSP-mssql-server |
※項目は選択式となり、手入力は不要です。
5. リソース拡張を行い、SQL Serverリソースを作成する。
リソース拡張メニューより、以下を選択し、SQL Server リソースの作成を実施します。
項目 | 入力/選択する値 |
Target Server | LK092 |
Switchback Type | intelligent |
Templete Priority | 1 |
Target Priority | 10 |
Resource Tag | QSP-mssql-server |
その他項目に関しては、Wizard に従い操作を進めてもらえれば、SQL Serverリソースの作成は完了となります。
6. 作成したSQL Server リソースと、他リソースとの依存関係を作成する。
下記URLを参考し、SQL Server リソースと、他リソースとの依存関係を作成します。
【 SIOS Protection Suite for Linux 9.2 テクニカルドキュメンテーション 】
-リソース依存関係の作成
これで、QSPによる、SQL Server 2017 on Linuxの保護は完了となります。
動作検証
QSPによる、SQL Serverリソースの作成が完了したので、正常にフェイルオーバーが行われるかを確認します。
1. LifeKeeper GUIを起動します。
以下コマンドを実行し、LifeKeeper GUIを起動します。
# /opt/LifeKeeper/bin/lkGUIapp
2. 手動スイッチオーバーを実施します。
In Service をクリックします。
Server から切替え先である、lk092を選択し、Next をクリックします。
切替え対象リソースを選択し、Nextをクリックします。
※リソース階層の親リソースを選択することで、全てのリソースが移動します。
確認画面の内容を確認し、問題ないようであれば In Service をクリックします。
Done をクリックし、スイッチオーバーを完了します。
全てのリソースが、lk092側でActiveとなっていることを確認します。
3. SQL Serverリソースのローカルリカバリーを無効化し、アプリケーション障害によるフェイルオーバーを発生させます。
※ローカルリカバリーが有効となっていると、サービス停止後に自動で復旧してしまう為、無効とします。
以下コマンドを実行し、ローカルリカバリーの設定を確認します。
# /opt/LifeKeeper/bin/lkpolicy -g –v
※LocalRecovery が On となっていることが確認できます。
以下コマンドを実行し、ローカルリカバリーを無効化します。
# /opt/LifeKeeper/bin/lkpolicy -s LocalRecovery -E tag=”QSP-mssql-server”
以下コマンドを実行し、変更後の設定を確認します。
/opt/LifeKeeper/bin/lkpolicy -g –v
※LocalRecovery が Off となっていることが確認できます。
以下コマンドを実行し、mssql-server.service を停止します。
# systemctl stop mssql-server.service
以下コマンドを実行し、mssql-server.service の状態を確認します。
# systemctl status mssql-server.service
リソース障害を検知し、lk092側にリソースが切替わったことを確認します。
lkpolicy コマンドの詳細は、以下マニュアルを参照して下さい。
【 SIOS Protection Suite for Linux 9.2 テクニカルドキュメンテーション 】
-リソースポリシー管理
これにて、手動スイッチオーバーおよび、アプリケーション異常によるフェイルオーバー動作の確認は終了となります。
まとめ
今回は、QSPを用いてSQL Server 2017 on Linuxのリソース作成を実施させて頂きました。
Generic ARKを用いることで保護を行うことも可能ですが、利用者側で別途スクリプトを作成する必要があり、難易度は高いものとなります。
今回のように、QSPを用いることでリリース間もないソフトウェアでも、簡単に保護することが可能となりますので、今回の記事が参考になれば良いと思います。