Quick Service Protection(以下 QSP)を利用して、SQL Server 2017 on Linux リソースを作成してみた。

    こんにちは。
    相澤です。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>

    今回作成した環境は以下のようになります。

    システム構成 

    image1

     

     

    項目設定値
    ハードウェアvSphere上の仮想マシン
    OSRed 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

    クライアント接続用仮想IP10.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となっている事を前提とします。

    image2

    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 リソース階層の作成

    image3

     

    4. QSP を用いて、SQL Server リソースを作成する。

    Craate Resource Hierarchy を選択し、リソースの作成メニューを起動し以下を選択します。

    111

     

    項目入力/選択する値
    Please Select Recovery KitQuick Service protection
    Switchback TypeIntelligent
    ServerLK091
    Service Namemssql-server
    Enable or Disable monitoring Enable
    ※serviceコマンドにて、statusの確認が可能なサービスとなるため、enableを選択する。
    Resource TagQSP-mssql-server

    ※項目は選択式となり、手入力は不要です。

     

    5. リソース拡張を行い、SQL Serverリソースを作成する。

    リソース拡張メニューより、以下を選択し、SQL Server リソースの作成を実施します。

    image5

     

    項目入力/選択する値
    Target ServerLK092
    Switchback Typeintelligent
    Templete Priority1
    Target Priority10
    Resource TagQSP-mssql-server

    その他項目に関しては、Wizard に従い操作を進めてもらえれば、SQL Serverリソースの作成は完了となります。

     

    6. 作成したSQL Server リソースと、他リソースとの依存関係を作成する。

    下記URLを参考し、SQL Server リソースと、他リソースとの依存関係を作成します。

    【 SIOS Protection Suite for Linux 9.2 テクニカルドキュメンテーション 】
     -リソース依存関係の作成

    image6

    これで、QSPによる、SQL Server 2017 on Linuxの保護は完了となります。

     

    動作検証

    QSPによる、SQL Serverリソースの作成が完了したので、正常にフェイルオーバーが行われるかを確認します。

    1. LifeKeeper GUIを起動します。

    以下コマンドを実行し、LifeKeeper GUIを起動します。

    # /opt/LifeKeeper/bin/lkGUIapp

    2. 手動スイッチオーバーを実施します。

    In Service をクリックします。

    222

    Server から切替え先である、lk092を選択し、Next をクリックします。

    333

     

    切替え対象リソースを選択し、Nextをクリックします。
    ※リソース階層の親リソースを選択することで、全てのリソースが移動します。

    444

     

    確認画面の内容を確認し、問題ないようであれば In Service をクリックします。

    555

     

    Done をクリックし、スイッチオーバーを完了します。

    666

     

    全てのリソースが、lk092側でActiveとなっていることを確認します。

    777

     

    3. SQL Serverリソースのローカルリカバリーを無効化し、アプリケーション障害によるフェイルオーバーを発生させます。

    ※ローカルリカバリーが有効となっていると、サービス停止後に自動で復旧してしまう為、無効とします。

    以下コマンドを実行し、ローカルリカバリーの設定を確認します。

    # /opt/LifeKeeper/bin/lkpolicy -g –v

    888

    ※LocalRecovery が On となっていることが確認できます。

     

    以下コマンドを実行し、ローカルリカバリーを無効化します。

    # /opt/LifeKeeper/bin/lkpolicy -s LocalRecovery -E tag=”QSP-mssql-server”

     

    121

    以下コマンドを実行し、変更後の設定を確認します。

    /opt/LifeKeeper/bin/lkpolicy -g –v

    122

    ※LocalRecovery が Off となっていることが確認できます。

    以下コマンドを実行し、mssql-server.service を停止します。

    # systemctl stop mssql-server.service

    123

    以下コマンドを実行し、mssql-server.service の状態を確認します。

    # systemctl status mssql-server.service

    124

     

    リソース障害を検知し、lk092側にリソースが切替わったことを確認します。

    125

    lkpolicy コマンドの詳細は、以下マニュアルを参照して下さい。

    【 SIOS Protection Suite for Linux 9.2 テクニカルドキュメンテーション 】
     -リソースポリシー管理

    これにて、手動スイッチオーバーおよび、アプリケーション異常によるフェイルオーバー動作の確認は終了となります。

    まとめ

    今回は、QSPを用いてSQL Server 2017 on Linuxのリソース作成を実施させて頂きました。
    Generic ARKを用いることで保護を行うことも可能ですが、利用者側で別途スクリプトを作成する必要があり、難易度は高いものとなります。

    今回のように、QSPを用いることでリリース間もないソフトウェアでも、簡単に保護することが可能となりますので、今回の記事が参考になれば良いと思います。

    >>QSPやLifeKeeper/DataKeeperについてのお問合せはこちら