LifeKeeper ARK の導入事例を紹介<SQL Server編>

こんにちは、SCSKの前田です。

私が携わった LifeKeeper の案件で導入を行った ARK について紹介をかねてお話したいと思います。
今回は、SQL Server 編と言うことで、マイクロソフト社が開発したリレーショナルデータベース管理システムを簡単に冗長化するための ARK の導入事例について、ご紹介していきます。

注意

マイクロソフト によると、SQL Server フェイルオーバークラスターインスタンス (FCI) では、クラスターノードがドメインに参加している必要があります。この制限により、Windows 版の LifeKeeper を使用し、ワークグループ環境で SQL Server フェイルオーバークラスターインスタンスを保護することはできません。

おさらい

LifeKeeperのARKについて、おさらいしたいと思います。
ARK とは、Application Recovery Kits の略で、LifeKeeper が特定のアプリケーション(オープンソースソフトウェアや商用アプリケーション)を容易にリソースとして組み込むことが可能になる製品です。

ARK による、アプリケーションのリソースへの組み込みはウィザード形式(GUI上で設定)で作業が可能となり、ARK には、アプリケーションを操作(起動・停止・監視・再起動)するための4つのスクリプトがあらかじめ準備されているため、スクリプトを設計・作成するための開発工数の削減や人的なミスを防止することが出来ます。

概要説明

SQL Server ARK では、SQL Server 本体を保護対象リソースとして登録し、下記表にまとめたオプションサービス(必要に応じ選択が可能)を含めて保護する機能を提供します。

オプションサービス名 備考
SQL Server Agent  
SQL Server Reporting Services  
Distributed Transaction Coordinator  
SQL Server Browser  
SQL Server VSS Writer  
SQL Server Integration Services SQL Server 2014 より利用可能
SQL Full-text Filter Daemon Launcher SQL Server 2016 より利用可能
SQL Server Launchpad SQL Server 2016 より利用可能
SQL Server PolyBase Data Movement SQL Server 2016 より利用可能
SQL Server PolyBase Engine SQL Server 2016 より利用可能
SQL Server CEIP service SQL Server 2016 より利用可能
注意

SQL Server ARK では、SQL Server の次の機能を利用できません
・SQLレプリケーション(スナップショット、マージ、トランザクション)
・SQL のログ配布
・SQL データベースのミラーリング
・SQL Server AlwaysOn 可用性グループ
また、分散トランザクションはサポートされません。

SQL Server ARK は、汎用アプリケーション(Generic Application)リソースの導入とは違い、起動・停止・監視・再起動を行うためのスクリプトを明示的に指定することはなく、リソースの作成に必要な項目に対するパラメータをウィザード形式で入力または、選択することでリソースを作成することが出来ます。

SQL Server ARK として SQL Server の処理内容は以下の通りとなります。

SQL Server の処理
処理名 処理内容
起動処理 ① sc query コマンドによるサービス名を取得
② ARK の内部処理($LKBIN/ScQueryState.exe)によってサービスの起動状態を取得
③ サービスの状態が RUNNING 以外の場合、sc start コマンドによりサービスの開始を実施
④ オプションサービスも保護する場合、オプションサービスに対して②と③を実施
⑤ 起動した SQL Server 本体のサービスに対し、管理ユーザで接続出来るか確認を実施
停止処理 ① オプションサービスも保護する場合、ARK の内部処理($LKBIN/ScQueryState.exe)によってオプションサービスの起動状況を取得
② オプションサービスの状態が RUNNING か PAUSED の場合、sc stop コマンドによりオプションサービスの停止を実施
③ ARK の内部処理($LKBIN/ScQueryState.exe)によって SQL Server 本体サービスの起動状況を取得
④ SQL Server 本体サービスの状態が RUNNING か PAUSED の場合、sc stop コマンドにより SQL Server 本体サービスの停止を実施
⑤ ④で SQL Server 本体サービスが停止出来なかった場合、net stop コマンドにより SQL Server 本体サービスの停止を実施
⑥ ⑤で SQL Server 本体サービスが停止出来なかった場合、もう一度④で SQL Server 本体サービスの停止を実施
監視処理 sc query コマンドにより、SQL Server 本体 及び、オプションサービスの起動状態の確認を実施
詳細監視処理 ① SQL Server 本体のサービスに対し、管理ユーザで接続出来るか確認を実施
② マスター DB にクエリーを発行し、結果が取得できるか確認を実施
再起動処理 起動処理と同一の処理を実施

SQL Server ARK の構築例

それでは、実際に SQL Server ARK の構築についてお話していきたいと思います。

SQL Server ARK のパラメータ項目

SQL Server のリソース作成時に設定する特有のパラメータを一覧表にまとめました。

項目 説明
Microsoft SQL Server のインスタンスの選択 LifeKeeper for Windows で保護する Microsoft SQL Server のインスタンスを選択
Microsoft SQL 管理ユーザ名の入力 このサーバで Microsoft SQL の管理権限を持つユーザの名前を入力。(マスタデータベースに対する SA 権限が必要)
パスワードの入力 入力したユーザアカウントの管理パスワードを入力
保護対象のオプショナルサービスの選択 この階層で保護されるオプションの SQL サービスを選択(リストには LifeKeeper の保護に適したサービスのみが表示される)
保護された IP アドレス インスタンスで保護する IP アドレスを選択(名前付きパイプだけを使用する場合、IP アドレスは不要)
名前付きパイプのエイリアス 名前付きパイプの別名を入力

SQL Server リソースの作成

SQL Server リソースを LifeKeeper の GUI によって作成する流れを例として紹介します。

注意

SQL Server で使用する共有ディスクリソースと、 IP リソース、及び、別のリソース等、それぞれの依存関係がある状態で SQL Server リソースを作成した場合、SQL Server リソース作成時の自動による依存関係の作成が失敗する可能性があるため、必要に応じて依存関係を削除する必要があります。
以降の例では、共有ディスクリソースと IP リソースの依存関係がない状態で SQL Server リソースの作成を実施しています。

処理内容 GUI画面例
リソース作成前のツリー構造
冗長化対象ノードの選択
保護アプリケーションの選択(MS SQL Server)
Microsoft SQL Server のインスタンスの選択
Microsoft SQL 管理ユーザ名の入力
管理ユーザのパスワードの入力
データベースの設定の確認
保護対象のオプショナルサービスの選択
保護する IP アドレスの選択(例では「なし」を選択)
名前付きパイプのエイリアスの選択(例では「なし」を選択)
Microsoft SQL Server リソースのタグ名の入力
稼働系ノードのリソース作成結果
待機系ノードのリソース作成準備の確認結果
待機系ノードの優先順位の設定
※デフォルト:10
待機系ノードのリソース作成結果
リソース作成後のツリー構造

これで、LifeKeeper による SQL Server のリソースが完成です。

依存関係の作成

SQL Server リソースを作成した後、全リソースの起動(停止)する順序を定義するため、必要に応じてリソース間の依存関係(リソースツリーの下から起動され、上から停止される)を作成する必要があります。
例として、別で作成していた仮想 IP リソースを始めに起動させるようリソースツリーの下部に配置させ、その後に共有ディスクリソースと SQL Server が起動されるように依存関係を作成します。

処理内容 GUI画面例
依存関係作成前のツリー構造
SQL Server リソースの依存関係作成後

これで、SQL Server に関連する LifeKeeper によるリソース構成ツリーの完成です。

まとめ

今回は LifeKeeper ARK の導入事例と言うことで、SQL Server のリソース作成について紹介してみました。

SQL Server ARK は、汎用アプリケーション(Generic Application)リソースとは違い、起動・停止・監視・再起動を行うためのスクリプトを準備する必要がなく、リソースを作成することで意識することなく自動でスクリプトが導入されます。
また、SQL Server ARK では、SQL Server 本体を保護サービスとしてリソースに登録すると共に、必要なオプションサービスを保護する機能も提供しています。システムの要件に合わせ、保護対象のサービスを選択することが可能になっています。

SQL Server ARK を導入するための手順を纏めます。

・SQL Server として保護対象とするオプションサービスを決定する
・SQL Server のリソース固有のパラメータの設定値を検討する
・LifeKeeper GUI を用いて、SQL Server のリソースを作成する
・仮想 IP リソース含め、リソースの起動順序を定義するため依存関係を作成する
LifeKeeper では SQL Server 以外にも多数の ARK が用意されていますので、また次の機会に別の ARK について紹介していきたいと思います。
詳しい内容をお知りになりたいかたは、以下のバナーからSCSK LifeKeeper公式サイトまで
タイトルとURLをコピーしました