JP6818654B2 - 試験自動化装置、試験方法、及びプログラム - Google Patents

試験自動化装置、試験方法、及びプログラム Download PDF

Info

Publication number
JP6818654B2
JP6818654B2 JP2017158807A JP2017158807A JP6818654B2 JP 6818654 B2 JP6818654 B2 JP 6818654B2 JP 2017158807 A JP2017158807 A JP 2017158807A JP 2017158807 A JP2017158807 A JP 2017158807A JP 6818654 B2 JP6818654 B2 JP 6818654B2
Authority
JP
Japan
Prior art keywords
test
failure
connection information
components
configuration management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017158807A
Other languages
English (en)
Other versions
JP2019036252A (ja
Inventor
晋作 沼田
晋作 沼田
橋本 昭二
昭二 橋本
法正 神谷
法正 神谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Communications Corp
Original Assignee
NTT Communications Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Communications Corp filed Critical NTT Communications Corp
Priority to JP2017158807A priority Critical patent/JP6818654B2/ja
Publication of JP2019036252A publication Critical patent/JP2019036252A/ja
Application granted granted Critical
Publication of JP6818654B2 publication Critical patent/JP6818654B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、複数の仮想サーバ、及び仮想ネットワークで構成されるシステムに対する障害試験を実施する技術に関連するものである。
クラウドサービスやアプリケーションサービスを提供するシステムは、障害耐久性を持たせて構築されている。従来、障害耐久性の確認は、手動にて障害を疑似的に発生させ、システムが正常に動作することを確認することで試験合格としていた。
障害耐久性の確認において、障害を発生させる障害ポイントは過去の経験からエンジニアが意図的に抽出し、レビューなどによって網羅性を確認してきた。
従来技術として、障害試験の自動化は、負荷の発生を自動的に行うツールや、限定されたアプリケーションサービスの切り替わりテストツールなどによって実現されてきた。また、特定のアプリケーションについては障害ポイントと、期待される結果が用意されているが、汎用性は無く特定のアプリケーションにのみ適用されるものである。
また、近年ではランダムに構成されているサーバをダウンさせ、それでもサービスが継続提供できることを確認するなどの手法がとられているが、これは誤りを見つけることよりも誤ってもシステムが動作することを確認する最後の手法であり、誤りを見つけた際には再度設計を行わなければならない。
また、近年はLinage Driven Fault Injectionという手法により、あえてシステムに誤った設定を入れ込み、システムの動作を確認するという手法がとられることもあるが、網羅性や期待される結果などは用意されておらず、誤った設定を入れる箇所やその際の挙動はエンジニアが頭の中で構成するものである。
自動構築スクリプトを用いたCMDB による障害原因自動特定・復旧機能の実装と評価、沼田晋作・神谷法正・橋本昭二・柏 大、2017年1月19日、信学技報
従来技術では、障害発生による影響を容易に把握することができないため、障害試験による結果が期待される結果かどうかの判断が難しい。また、従来技術において、障害試験箇所は、エンジニアが手動で考えなければならないものであるため、障害試験箇所を網羅的に洗い出すことは難しい。
特に、近年普及している仮想サーバ及び仮想ネットワーク等からなる仮想化環境では、従来のベアメタル環境に比べて障害箇所が増加していることから、上記の点に対する解決策が求められる。
本発明は上記の点に鑑みてなされたものであり、複数の仮想サーバ、及び仮想ネットワークで構成されるシステムに対する障害試験の実施の際に、障害試験箇所を網羅的に洗い出すことができるとともに、障害試験による影響を容易に把握することを可能とする技術を提供することを目的とする。
開示の技術によれば、複数の仮想サーバ及び仮想ネットワークで構成されるシステムの障害試験箇所を洗い出す試験自動化装置であって、
前記システムの構築に使用される自動構築スクリプトから、前記システムの構成要素の集合を抽出するとともに、所定構成要素をノードとして抽出し、ノード間の依存関係に基づいて、ノード間のリンクを作成して有向グラフを作成する構成管理情報取得手段と、
前記有向グラフにより示される所定構成要素間の依存関係に基づいて、前記構成要素の集合から、構成要素間の接続関係を示す要素間接続情報を作成する要素間接続情報作成手段と、
前記要素間接続情報に基づいて障害試験箇所を洗い出し、当該障害試験箇所に対する障害試験を実行する試験実行手段と
を備えることを特徴とする試験自動化装置が提供される。
開示の技術によれば、複数の仮想サーバ、及び仮想ネットワークで構成されるシステムに対する障害試験の実施の際に、障害試験箇所を網羅的に洗い出すことができるとともに、障害試験による影響を容易に把握することを可能とする技術が提供される。
本発明の実施の形態におけるシステムの全体構成図である。 自動構築スクリプトと構成管理情報を説明するための図である。 試験自動化装置100の機能構成図である。 試験自動化装置100のハードウェア構成図である。 処理の流れを示すフローチャートである。 対象システムの例を示す図である。 要素間接続情報の例を示す図である。 障害試験ポイントの例を示す図である。 障害試験ポイントの例を示す図である。 構成管理情報取得処理を説明するための図である。 構成管理情報の例を示す図である。 アプリケーションに関する自動構築スクリプトの例を示す図である。 自動構築スクリプトを実行する工事手順書の例を示す図である。 依存関係を示す有向グラフデータの作成を示す図である。 有向グラフデータの作成手順を示すフローチャートである。 依存関係を示す有向グラフデータの他の例を示す図である。 要素間接続情報を作成方法を説明するための図である。 試験方法の例を説明するための図である。
以下、図面を参照して本発明の実施の形態(本実施の形態)を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
本実施の形態は、複数の仮想サーバ、及び1つ又は複数の仮想ネットワーク、ネットワークや情報システムの実機、物理ネットワーク等からなる仮想・実機混在環境を前提とする。本明細書における「仮想環境」は、その意味として、実機を含まない仮想的な環境のみならず、仮想・実機混在環境を含むものである。
(システムの全体構成)
図1に、本実施の形態におけるシステムの全体構成を示す。図1に示すように、本実施の形態におけるシステムは、複数のサーバ10と、試験自動化装置100とを有する。複数のサーバ10は、各種のネットワークサービスをユーザに提供するサービスシステムを構成する。サーバ10はそれぞれ、1つ又は複数のアプリケーションが動作する仮想サーバ(仮想マシンと称してもよい)である。サーバ10はそれぞれ、1つの物理マシン(コンピュータ)上で構築されたものであってもよいし、複数のサーバ10が、1つの物理マシン上で構築されていてもよい。サーバ10間はネットワーク接続されている。当該ネットワークは、1つ又は複数の物理マシン(コンピュータ)上の仮想マシンにより構築された1つ又は複数の仮想ネットワークである。
なお、各サーバ10は、そこで動作させるアプリケーション(ソフトウェア)に応じて、各種のAP(アプリケーション)サーバ(Web、DB、LB(ロードバランス)等)、ルータ、スイッチ等になり得る。
サーバ10がネットワーク接続するにあたっては、IPアドレス、NIC(Network Interface Card)等が使用される。IPアドレス、NICについても、仮想環境においては、仮想的に割り当てられるものであってよい。
試験自動化装置100は、サービスシステムにおける障害試験を自動化する装置である。試験自動化装置100は、後述するように、構成管理情報から、要素間接続情報を作成し、障害試験箇所を網羅的に抽出して、予め定めた方法で障害試験箇所に対する障害試験を実行することができる。
(構成管理情報の概要)
ここで、本実施の形態における要素間接続情報のベースとなる構成管理情報の概要について説明する。
本実施の形態では、各サーバへのアプリケーションのインストール/設定/起動等を自動構築スクリプトを使用して行っている。更に、本実施の形態では、仮想マシン(以降、VMと記する)の設定(構築)、及び、OSのインストール/設定についても、自動構築スクリプトを使用して行っている。OSのインストール/設定にはネットワークの設定も含まれている。
自動構築スクリプトを使用した「VMの設定」、「OSのインストール/設定」、「APのインストール/設定」については、試験自動化装置100が実行してもよいし、試験自動化装置100以外の装置が実行してもよいが、試験自動化装置100は、各サーバについて、「VMの設定」、「OSのインストール/設定」、「APのインストール/設定」に用いた自動構築スクリプトを保持するか、各サーバ等から取得することが可能である。
試験自動化装置100は、サーバ毎に、上記の各設定に使用した自動構築スクリプトから、ハードウェア(以下、HW)、OS、及びAPの構成管理情報(構成要素の集合)を取得し、これら構成管理情報を保持する。ここで、HWは、仮想マシン上でエミュレートされたHWであり、HWの構成管理情報としては、例えば、ディスクサイズ、メモリサイズ、CPU数、NIC数等がある。OSの構成管理情報としては、例えば、パーティション情報、ホスト名、OS名、OSバージョン、NICに割り当てられたIPアドレス等がある。
自動構築スクリプトは、基本的に「コマンド:パラメータ」の羅列であり、試験自動化装置100は、自動構築スクリプトから当該パラメータを抽出することで、構成管理情報を取得できる。
また、APの構成管理情報については、システム構築装置100は、例えば非特許文献1に記載されているように、APの依存関係を示すノードとリンクからなる有向グラフの情報として構成管理情報を取得できる。
図2は、自動構築スクリプトと構成管理情報を説明するための図である。図2において、14は、HWの自動構築スクリプトを示し、15は、OSの自動構築スクリプトを示し、16は、APの自動構築スクリプトを示す。ただし、図2上では、自動構築スクリプトそのものではなく、自動構築スクリプトに含まれる情報が示されている。また、変換ロジック17、及び構成管理情報DB18は試験自動化装置100内に存在する機能である。具体的には、変換ロジック17は、後述する構成管理情報取得部110の中の機能であり、構成管理情報DB18は、データ格納部140の一部である。
図2に示すように、HWの自動構築スクリプト14によりVMのHWが構築され、OSの自動構築スクリプト15によりOSが構築され、APの自動構築スクリプト16によりOS上で実行されるAP等が構築される。また、変換ロジック17により、各自動構築スクリプトから構成管理情報が作成され、構成管理情報DB18に格納される。
また、変換ロジック17は、構成管理情報DB18に格納してある構成管理情報を使用して、当該構成管理情報の抽出元の自動構築スクリプトに相当する自動構築スクリプトを作成して、VM、OS、AP等の設定を行うことも可能である。これは、例えば、障害試験により落とした構成の復旧に利用することができる。
(試験自動化装置100の構成例)
図3は、試験自動化装置100の機能構成の例を示す図である。図3に示すように、試験自動化装置100は、構成管理情報取得部110、要素間接続情報作成部120、試験実行部130、データ格納部140を有する。
構成管理情報取得部110は、自動構築スクリプトから構成管理情報を取得する。要素間接続情報作成部120は、構成管理情報に基づいて要素間接続情報を作成する。試験実行部130は、要素間接続情報に基づいて障害試験箇所を洗い出し(抽出し)、洗い出した障害試験箇所に対して、予め定められた方法で障害試験を実施する。データ格納部150は、自動構築スクリプト、構成管理情報、要素間接続情報、障害試験方法等を含む各種のデータを格納する。
試験自動化装置100は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、試験自動化装置100が有する機能は、当該コンピュータに内蔵されるCPUやメモリ、ハードディスクなどのハードウェア資源を用いて、当該試験自動化装置100で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
図4は、試験自動化装置100をコンピュータで実現する場合におけるハードウェア構成例を示す図である。図4に示す試験自動化装置100は、それぞれバスBで相互に接続されているドライブ装置200、補助記憶装置202、メモリ装置203、CPU204、インタフェース装置205、表示装置206、及び入力装置207等を有する。
試験自動化装置100での処理を実現するプログラムは、例えば、CD−ROM又はメモリカード等の記録媒体201によって提供される。プログラムを記憶した記録媒体201がドライブ装置200にセットされると、プログラムが記録媒体201からドライブ装置200を介して補助記憶装置202にインストールされる。但し、プログラムのインストールは必ずしも記録媒体201より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置202は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置203は、プログラムの起動指示があった場合に、補助記憶装置202からプログラムを読み出して格納する。CPU204(プロセッサ)は、メモリ装置203に格納されたプログラムに従って試験自動化装置100に係る機能を実現する。インタフェース装置205は、ネットワークに接続するためのインタフェースとして用いられる。表示装置206はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置207はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。
(全体の処理の流れ)
図5は、試験自動化装置100が実行する処理の全体の流れを示すフローチャートである。まず、試験自動化装置100における構成管理情報取得部110が、自動構築スクリプトから構成管理情報を取得する(S101)。
次に、要素間接続情報作成部120が、構成管理情報から要素間接続情報を作成する(S102)。続いて、試験実行部130が、要素間接続情報から障害試験箇所を洗い出し、洗い出した障害試験箇所に対して、予め定められた手順で障害試験を実行する(S103)。
上記のS101〜S103の各ステップの処理の詳細は後述する。
(要素間接続情報について)
ここで、本実施に形態において障害試験箇所の洗い出し、障害による影響の把握等に使用される要素間接続情報の概要を説明する。
対象システムとして、図6に示す構成のシステムを想定する。図6に示すように、当該システムは、LBサーバ、APサーバ1〜3、ルータ、DBサーバ1、2が図示のとおりに接続された構成になっている。また、LBサーバにはAAAAで示されるアプリケーションが動作し、DBサーバ1、2にはCCCCで示されるアプリケーションが動作し、APサーバ1〜3にはBBBBで示されるアプリケーションが動作する。ここに図示するシステムの構成は、例えば、システムの設計書等により把握されるものである。
図7に、図6のシステムに対応する要素間接続情報をグラフィカルに表示した例を示す。当該要素間接続情報は、図6に示すシステムの構築に使用された自動構築スクリプトから得られた構成管理情報から作成されたものである。例えば、図中のLBサーバに対応する構成要素は、AP(start_AAAA)、IPアドレス(10.3.130.21)、NIC(eth0)、NETWORK(DMZ)である。他のサーバについても同様である。
AP(start_AAAA)、IPアドレス(10.3.130.21)、NIC(eth0)等の情報は、構成要素の集合である構成管理情報に含まれている。具体的には、あるサーバに関して、AP、IP、NIC、及びネットワーク名(例:DMZ)が紐付けられた情報として構成管理情報に含まれているため、図7に示すように、サーバ毎に、AP、IP、NIC、NETWORKを接続した情報を作成することができる。
また、AP間については、構成管理情報において依存関係が記述されている。この依存関係は、図7では、太線で示されている。図7の例では、LBサーバのCCCCが起動するにはAPサーバ1〜3のBBBBが起動していなければならず、APサーバ1〜3のBBBBが起動するには、DBサーバ1、2のCCCCが起動していなければならないことが依存関係として示されている。なお、クラスタ(ap_cluster等)内部は依存関係はなく、並列の関係にある。
そして、上記依存関係と、各サーバにおける構成要素とに基づき、後述する手法を用いることで、図7に示す要素間接続情報を得ることができる。
この要素間接続情報を用いることで、障害試験を行うべき箇所を網羅的に洗い出せるとともに、当該箇所において障害を起こさせたときに、どこが影響を受けるのか(あるいはどこが影響を受けないのか)を容易に把握することができる。
例えば、図8に示すように、ルータにおけるNETWORK(DMZ)に接続する側のNICに障害を発生させることを想定する。なお、障害を発生させるとは、例えば、NICを削除する等である。この場合、DBサーバ1、2のCCCCに依存しているAPサーバ1〜3のBBBB、及びLBサーバのAAAAは影響を受けることがわかる。例えば、実際のシステムで、当該NICに障害を発生させる試験を行った結果、上記の予測のとおりにならない場合、例えば、システムが誤って構築されたことなどが考えられ、それに対する対処を実施できる。
また、ルータのNIC(eth0)が構成管理情報と不一致となっている状態となる事が予測され、その他の構成管理情報には何も影響が及ぼされないことが予測できる。
障害試験箇所の洗い出しについては、例えば、試験実行部130が、図7に示した要素間接続情報を構成する全構成要素を障害試験箇所として抽出することで網羅的な洗い出しを行うことができるとともに、各障害試験箇所に対する影響を容易に把握できる。
このような洗い出しを行うことで、ノード(ルータやホスト等)単体、ノード間の障害試験箇所、多レイヤに渡った網羅的な障害試験箇所(NIC,ケーブル、リンク、リンクダウンを伴わないL3以上の経路障害等)等のあらゆる障害試験箇所を抽出できる。
図9は、要素間接続情報の他の例を示す。図9は、AP1はAP2に依存し、AP2は、AP3、4に依存する例を示す。AP3、4は並列関係にある。この場合、図9の×で示すポイントで障害を発生させたとしても、×の障害で影響を受けるのはAP4であり、AP4と並列関係にあるAP3は影響を受けない。よって、AP1−>AP2−>AP3の依存関係は崩れないので、サービスは継続されると予測できる。
なお、図7等で示した要素間接続情報は一例に過ぎない。自動構築スクリプトから得られる情報であれば、どのような構成要素でも要素間接続情報に含めることができる。例えば、図7では、アプリケーションの構成要素として、start_識別名のみを示しているが、install_識別名、setting_識別名が構成要素として含まれてもよい。また、OS、ミドルウェア等も構成要素として含まれてもよい。
以下、試験自動化装置100の各機能部による処理内容をより具体的に説明する。
(構成管理情報取得部110による構成管理情報取得処理)
まず、図10〜16を参照して、構成管理情報取得部110による構成管理情報取得処理の例について説明する。
図10に示すように、構成管理情報取得部110は、HWの自動構築スクリプト21、及びOSの自動構築スクリプト22から、24に示す構成管理情報を取得し、データ格納部140に格納する。一例として、構成管理情報取得部110は、HW/OSの自動構築スクリプト21、22において下線で示したパラメータを構成管理情報24として抽出する。取得されたHW/OSの構成管理情報については、例えば図11に示すように表示することも可能である。図11に示す例では、サーバ1とサーバ2が同じネットワークに属し、サーバ3とサーバ4が同じネットワークに属することが示されている。
また、構成管理情報取得部110は、図10に示すように、APの自動構築スクリプト23から、構成管理情報25を取得し、データ格納部140に格納する。本実施の形態では、APの自動構築スクリプト23から取得される構成管理情報25は、APの依存関係を示す有向グラフの情報として生成されるものである。この依存関係と、各サーバの構成要素の情報に基づき、試験自動化装置100の要素間接続情報作成部110は、要素間接続情報を作成する。
図12に、構成管理情報取得部110への入力となるAPの自動構築スクリプトの一例を示す。本実施の形態で使用する自動構築スクリプトは、図12に示すように、再利用を意識して複数のブロックに分けて作成される。また、ブロックの中で使用する値(パラメータ)は変数化され、変数の値はブロックの外にまとめて記述される。また、各ブロックには、他のブロックとの依存関係を設定することもできる。
より具体的に、例えばAPサーバ(例:Webサーバ)を構築するためのアプリケーション(ソフトウェア)に関しては、自動構築スクリプトは、通常、ソフトウェアのインストールを行う「install_[識別名]」、インストールしたソフトウェアの設定を行う「setting_[識別名]」、設定したソフトウェアをスタートさせる「start_[識別名]」の3のブロックを有する。図12は、識別名=AAAAというソフトウェアの例について、当該3つのブロックを有することが示されている。また、図12の例では、各ブロックはroleと呼ばれる。
なお、図12は、install/setting/startの3つ全てが揃っている例を示しているが、OSのネットワーク設定のようにsetting/start(reset/stop)しかないもの、OSのユーザ設定のようにsetting(reset)しかないものなどもある。
図13は、図12に示すようなブロックを適用して、ソフトウェアAAAAのインストールや設定等を行うことでWebサーバ構築を行う場合のイメージを示す図である。図13に示すように、ブロックの実行手順を記載した工事手順書(これも、構成管理情報取得部110に入力される自動構築スクリプトに含まれる)が準備され、当該工事手順書に従って、各ブロックがロードされ、実行(install/setting/start)される。工事手順書には、対象のサーバ(図13の例では"Web")と当該サーバに対して実行するブロックが、実行される順番で記述されている。このような順番により、ブロック間、サーバ間の依存関係を把握できる。また、各ブロックに記述されている依存関係や、パラメータ等によっても依存関係を把握できる。
図14に示すように、上記のような自動構築スクリプトが構成管理情報取得部110に入力され、構成管理情報取得部110は、ブロック間やAP間の依存関係を示す有向グラフデータを作成する。
依存関係について説明すると、例えば、[install_AAAA]と[setting_AAAA]に関して、ソフトウェアAAAAはインストールされないと設定できないから、[setting_AAAA]は[install_AAAA]に依存する、という依存関係がある。この場合、本実施の形態では、依存されるほうに矢印が向くように、[install_AAAA]←[setting_AAAA]と有向グラフとして記述する。同様に、ソフトウェアAAAAは設定されないと正常に動作しないためスタートできないから、[start_AAAA]は[setting_AAAA]に依存する、つまり、[setting_AAAA]←[start_AAAA]と記述する。
すなわち、「あるブロックの実行のために前もって実行しておくべきブロック」の2つのブロック間に「依存関係」があるとする。上記の3つのブロックの例では、有向グラフとして、[install_AAAA]←[setting_AAAA]←[start_AAAA]と記述する。構成管理情報取得部110は、このような有向グラフに相当する有向グラフデータを作成する。
依存関係は、単一のソフトウェアモジュール(アプリケーションと称しても良い)内のみでなく、前述したように、ソフトウェアモジュール間にも存在する。例えば、WebサーバソフトウェアモジュールがDBサーバソフトウェアモジュールを使用し、WebサーバソフトウェアモジュールはDBサーバソフトウェアモジュールがスタートしていないとサービスの提供ができないとする。この場合には、以下の有向グラフで示す依存関係が存在する。
[install_database]←[setting_database]←[start_database]

[install_webserver]←[setting_webserver]←[start_webserver]
自動構築スクリプトの入力がされた構成管理情報取得部110は、図15のフローチャートの手順で有向グラフデータを作成する。
S201)まず、構成管理情報取得部110は、一連のブロックを適用する対象となるサーバ情報を取得する。例えば、構成管理情報取得部110は、工事手順書に記載されている、一連のブロックの適用対象となるホストの情報を当該サーバ情報として取得することができる。
S202)次に、構成管理情報取得部110は、対象のサーバ毎に、自動構築スクリプトにおける複数ブロックをinstall/setting/startの3つのグループに分けノード化する。なお、前述したように、スクリプトの適用対象によっては、installのみ、settingのみ等の場合もある。
S202では、例えば、ソフトウェアAに関するスクリプトのブロックとしてinstall/setting/startの3つがあり、ネットワーク設定に関するスクリプトのブロックとしてsettingがある場合、構成管理情報取得部110は、ソフトウェアAについてのinstallのノード、settingのノード、startのノードを作成し、ネットワーク設定についてのsettingのノードを作成する。
S203)次に、構成管理情報取得部110は、各ブロックに関連する変数(パラメータ)をnetwork/filepath/id/device等のグループに分けて関連付ける。すなわち、ファイルパス、ネットワーク、ユーザ、log、conf、serviceなど、システムを構成する内容によってグルーピングし、一致、不一致、関係性(例:包含関係)を抽出し、その情報をデータ格納部140に格納する。一例として、ソフトウェアAのsettingにおける設定アドレスがアドレス1であり、ソフトウェアBのsettingにおける設定アドレスがアドレス1である場合、両者は一致の関係があるとして、そのことを示す情報が格納される。
S204)構成管理情報取得部110は、依存関係のあるノード間について、ノード間を結びつけるリンク情報を作成する。依存関係は、例えば、工事手順書におけるブロックの実行手順から判断することができる。また、ブロック内に依存関係の記述がある場合には、その記述から判断することもできる。
S205)構成管理情報取得部110は、上記の処理により得られたノード情報及びリンク情報、パラメータの関連情報等をサーバ情報に紐付けてデータ格納部140に格納する。
図14の左側には、データ格納部140に格納されるデータのイメージが示されている。当該イメージは、右側に示す入力情報に対応するものである。図14の例では、install_AAAA、setting_AAAA、start_AAAAのノード情報と、これらの間に「install_AAAA←setting_AAAA←start_AAAA」で示される依存関係が存在することを示すリンク情報がデータ格納部140に格納される。つまり、当該依存関係を示す有向グラフが格納される。また、図示するように、各ノードにパラメータが関連付けられている。
なお、上記の例では、1つのAPに関する有向グラフを示している。図16に他の例として、複数のAP(アプリケーション)の有向グラフを結び付けて依存関係が表される例を示す。図16は、AP1(例:Web)とAP2(例:LB(ロードバランシング))との間に依存関係がある場合の例を示している。
なお、構成管理情報取得部110が、構成管理情報に基づき、サーバの復旧のための構築を行う際には、このようなAP間の依存関係に基づいて、特定のAPを目的にインストールする場合において、当該特定のAPが依存するAP、及び当該特定のAPに依存されるAPもともにインストールし、特定のAPを正しく動作させることができる。
(要素間接続情報作成部120による要素間接続情報作成処理)
次に、要素間接続情報作成部120による要素間接続情報作成処理について説明する。要素間接続情報作成に使用される情報は、構成管理情報取得部110により取得された構成管理情報である。構成管理情報は、前述したAP間の依存関係を示す有向グラフの情報と、各サーバにおける構成要素の集合がある。各サーバにおける構成要素の集合として、自動構築スクリプトに含まれる情報であれば、いかなる情報でも取得可能であるが、一例として以下に示すような情報が取得される。以下は、例として、サーバ1とサーバ2がある場合を示している。
(1)サーバ1の構成要素
・NIC{NIC名:eth0、IPアドレス:10.160.128.104/26、ネットワーク名:MZ}
・AP{start_AAAA}
・NIC{NIC名:eth1、IPアドレス:10.160.128.105/26、ネットワーク名:MZ}
・AP{start_BBBB}
(2)サーバ2の構成要素
・NIC{NIC名:eth0、IPアドレス:10.166.128.199/26、ネットワーク名:DMZ}
・AP{start_CCCC}
上記の例において、例えばサーバ1に関し、サーバ1には、AAAAに紐付けられたNICとしてeth0があり、そのIPアドレスが10.160.128.104/26であり、接続されるネットワークがMZであることが示され、また、BBBBに紐付けられたNICとしてeth1があり、そのIPアドレスが10.160.128.105/26であり、接続されるネットワークがMZであることが示されている。
また、サーバ2には、CCCCに紐付けられたNICとしてeth0があり、そのIPアドレスが10.160.128.199/26であり、接続されるネットワークがDMZであることが示されている。
上記は、実際に取得される構成要素の情報から抜粋して示したものであるが、実際には、例えばjsonファイルの形式で情報が得られる。また、自動構築スクリプトで構築した全てのサーバについて構成要素の情報が得られる。
要素間接続情報作成部120は、上述したAP間の依存関係の情報と、各サーバの構成要素の情報とから、図7に示したような要素間接続情報を作成する。なお、要素間接続情報作成部120は、作成した要素間接続情報を図7のようにグラフィカルに表示してもよいし、表示はせずにデータとして保持しておいてもよい。
図17を参照して要素間接続情報を作成する方法の例を説明する。ここでは、依存関係として、AP1がAP2とAP3に依存しているものとする。図17ではその関係が点線で示されている。
最初、要素間接続情報作成部120は、図17に示す依存関係(点線の関係)しか把握していない。ここではAP1を起点として、AP2、AP3の順で処理を実行するものとする。
まず、要素間接続情報作成部120は、AP1が依存しているAP2が、AP1と同じサーバ1内にあるか否かを構成要素情報を検索することにより判断する。ここでは、サーバ1内にAP2は存在しない。次に、要素間接続情報作成部120は、AP1が存在するサーバ1が接続しているネットワークと同じネットワークに接続された各サーバを探索し、当該サーバにAP2が存在するかどうかを構成要素情報を検索することにより判断する。2つのサーバが同じネットワークに所属しているかどうかは、NICが接続するネットワーク名で判断することもできるし、NICのIPアドレスのネットワーク部で判断することもできる。
ここでは、要素間接続情報作成部120は、サーバ1が接続するNETWORK1に接続しているサーバ2においてAP2を検出する。これにより、要素間接続情報作成部120は、構成要素情報に基づき、「AP1−IP1−NIC1−NETWORK1−NIC2−IP2−AP2」の要素間接続情報を作成する。
なお、要素間接続情報作成部120は、要素間接続情報として、「AP1−IP1−NIC1−NETWORK1−NIC2−IP2−AP2」のように、構成要素情報の中の要素を抽出し、これらを接続した情報を作成することとしてもよいし、構成要素情報の中の要素へのポインタを接続した情報を作成することしてもよいし、他の形式の情報を作成することしてもよい。
次に、要素間接続情報作成部120は、AP1が依存しているAP3が、AP1と同じサーバ1内にあるか否かを構成要素情報を検索することにより判断する。ここでは、サーバ1内にAP3は存在しない。次に、要素間接続情報作成部120は、AP1が存在するサーバ1が接続しているネットワークと同じネットワークに接続された各サーバにAP3が存在するかどうかを構成要素情報を検索することにより判断する。ここでは、サーバ1が接続しているネットワークと同じネットワークに接続されたサーバとしてサーバ2のみが存在するが、そこにはAP3は存在しない。
次に、要素間接続情報作成部120は、サーバ1が接続しているネットワーク(NETWORK1)におけるデフォルトゲートウェイとなっている、NETWORK1に接続されているルータに接続されているネットワーク上のサーバにAP3があるかどうかを構成要素情報を検索することにより判断する。この動作は、パケットをデフォルトルートに転送するネットワークルーチングの動作に類似している。なお、ルータの構成要素の情報は、サーバの情報と同様に構成要素情報として構成管理情報に含まれる。
ここでは、要素間接続情報作成部120は、サーバ3においてAP3が存在することを検出する。これにより、要素間接続情報作成部120は、構成要素情報に基づき、「AP1−IP1−NIC1−NETWORK1−NIC4−IP4−ルータ−IP5−NIC5−NETWORK2−NIC3−IP3−AP3」の要素間接続情報を作成する。
以上の処理により作成された要素間接続情報をグラフィカルに表示することで図17に示す表示情報が得られる。なお、図17に示す太線は、依存関係に基づく要素間接続を示すものである。この太線を表示することで、AP間の依存関係を明確に把握でき、障害試験での影響を目視で把握し易くなる。
要素間接続情報作成部120により作成された要素間接続情報はデータ格納部140に格納される。
(試験実行部130による試験実行処理)
次に、試験実行部130による試験実行処理を説明する。本実施の形態では、障害試験の障害試験箇所となり得る構成要素に対応した障害発生手順(障害発生方法)を予め定めておき、定めた障害発生手順の情報がデータ格納部140に格納されている。ある障害試験箇所に対して障害を発生させる手順は複数種類存在する。しかし、障害試験箇所に対して障害を発生させる手順が定まらない場合(エンジニア判断に委ねる場合)、実際の障害発生時において、過去の試験時の障害発生箇所での手順を確定できず、試験結果があまり参考にならない可能性がある。そこで、本実施の形態では、障害試験箇所となり得る構成要素に対応した障害発生手順を予め定めておくこととしている。
図18に構成要素毎の障害発生手順の例を示す。図18に示すとおり、構成要素start_[name]については、nameで識別されるAPをstopさせる。構成要素install_[name]については、nameで識別されるAPをuninstallする。構成要素setting_[name]については、nameで識別されるAPについての設定を初期化する。これら3つの手順は自動的(automatically)に生成することができる。
node(サーバ、スイッチ等)、net_dev_self(NIC)、net_ip_self(IPアドレス)に関しては、いずれも該当の仮想環境に応じたコマンドで障害を発生させる。また、name_network(ネットワーク)については、当該ネットワーク上のスイッチにおいてフィルタリング(通信遮断)を発生させる。これら3つの手順については、テンプレートから生成することができる。
一例として、要素間接続情報作成部120により、図17に示す要素間接続情報が得られた場合において、試験実行部130は、図17に示す全要素(AP1、IP1、NIC1、NETWORK1、NIC2、IP2、AP2、NIC4、IP4、ルータ、IP5、NIC5、NETWORK2、NIC3、IP3、AP3)を抽出(洗い出す)する。そして、各要素に対し、図18の手順に従って、対象システムに対する障害試験を行う。
障害試験を行うために、例えば、サーバを落とすような場合があるが、その場合、元の状態に戻す必要がある。そのような場合において、構成管理情報を保持する本実施の形態では、容易に構築を実行できる。この構築処理は、試験自動化装置100が実施してもよいし、試験自動化装置100から構成管理情報を取得した他の装置が実行してもよい。
(実施の形態の効果について)
本実施の形態に係る技術により、複数の仮想サーバ、及び仮想ネットワークで構成されるシステムに対する障害試験の実施の際に、障害試験箇所を網羅的に洗い出すことができるとともに、障害試験による影響を容易に把握することが可能となる。より詳細には、例えば、下記の効果が得られる。
(1)障害発生による影響を事前に自動的に確認できる
依存性を含んだ構成管理情報を用いることで、障害による影響をシステムの系として確認することができる。すなわち、障害が発生したポイントによってシステムの各構成管理情報の状態がどう変化するかを確認できる。これにより、実際のシステムに障害が発生した場合に期待される状態の変化を事前に洗い出すことができ、この期待される結果と、実際の障害試験の結果とを比較することで、想定している障害耐久性を実際のシステムが備えているか、想定外の挙動を取らないかを確認することができる。よって、実際のシステムにおいて想定外の挙動によってサービス断を引き起こす等の状況を避けることができる。
(2)障害試験箇所の網羅性が担保できる
構成管理情報はHW/NW/OS/APの情報を網羅しており、これら全てを障害試験箇所として指定することで網羅性の担保が可能である。
(3)障害を発生させる手法を定義できる
従来は「ネットワーク障害」というような障害の概要しか記述できず、記述による障害試験箇所が曖昧であった。一方、本実施の形態の技術であれば、例えば、図8に示したようなルータにおけるNIC(eth0)のように障害試験箇所を明確に指定することができる。そして構成要素の種別に応じた障害発生コマンドを定義することで、障害発生手法を明確に定義できる。
(4)影響範囲が確定されており、また、試験が自動的に実行され自動的に復旧される
従来はまるごと仮想環境のSnapshotを取って、試験の都度、元に戻すなどの手法がとられているが、そもそも障害試験による影響範囲が正しく把握できていない状況であるため、正しく全ての環境を戻すには全てのサーバのSnapshotを取らねばならない。一方、本実施の形態の技術は、影響範囲が明確であり、かつ、依存関係を用いてシステムの復旧が可能であるため、時間も短時間ですむ。
(5)仮想環境のメリットを最大限に活用できる
本実施の形態では、仮想環境上にシステムを完全自動構築するスクリプトを用いた構成管理情報を使用する。このため、障害試験箇所の網羅だけで無く、この仮想環境上に構築するシステムの構築スクリプトから、網羅的、自動的に手順と結果を作成できる。
すなわち、本実施の形態に係る技術により、曖昧なまま行われてきた障害試験を、明確な「期待する試験結果」を備えて実行でき、試験稼働を削減できる。また、実際の障害発生時に、過去に発生させた障害新券の箇所と、その際の障害発生手順を高い再現性で短時間で確認できる。
(実施の形態のまとめ)
以上、説明したように、本実施の形態により、複数の仮想サーバ及び仮想ネットワークで構成されるシステムの障害試験箇所を洗い出す試験自動化装置であって、前記システムの構築に使用される自動構築スクリプトから、前記システムの構成要素の集合を抽出するとともに、所定構成要素をノードとして抽出し、ノード間の依存関係に基づいて、ノード間のリンクを作成して有向グラフを作成する構成管理情報取得手段と、前記有向グラフにより示される所定構成要素間の依存関係に基づいて、前記構成要素の集合から、構成要素間の接続関係を示す要素間接続情報を作成する要素間接続情報作成手段と、前記要素間接続情報に基づいて障害試験箇所を洗い出し、当該障害試験箇所に対する障害試験を実行する試験実行手段とを備えることを特徴とする試験自動化装置が提供される。
前記試験実行手段は、例えば、障害試験箇所に対応する構成要素毎に予め定められた方法で前記障害試験を実行する。
前記要素間接続情報作成手段は、前記構成要素の集合の中で、あるサーバに存在する所定構成要素が依存している別の所定構成要素を、同一サーバ内、同一ネットワーク内、別ネットワーク内の順番で探索することにより前記要素間接続情報を作成することとしてもよい。
前記要素間接続情報は、前記所定構成要素としてのアプリケーション、当該アプリケーションに関連するネットワークインタフェース、IPアドレス、及びネットワークを含むこととしてもよい。
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 サーバ
100 試験自動化装置
110 構成管理情報取得部
120 要素間接続情報作成部
130 試験実行部
140 データ格納部
200 ドライブ装置
201 記録媒体
202 補助記憶装置
203 メモリ装置
204 CPU
205 インタフェース装置
206 表示装置
207 入力装置

Claims (6)

  1. 複数の仮想サーバ及び仮想ネットワークで構成されるシステムの障害試験箇所を洗い出す試験自動化装置であって、
    前記システムの構築に使用される自動構築スクリプトから、前記システムの構成要素の集合を抽出するとともに、所定構成要素をノードとして抽出し、ノード間の依存関係に基づいて、ノード間のリンクを作成して有向グラフを作成する構成管理情報取得手段と、
    前記有向グラフにより示される所定構成要素間の依存関係に基づいて、前記構成要素の集合から、構成要素間の接続関係を示す要素間接続情報を作成する要素間接続情報作成手段と、
    前記要素間接続情報に基づいて障害試験箇所を洗い出し、当該障害試験箇所に対する障害試験を実行する試験実行手段と
    を備えることを特徴とする試験自動化装置。
  2. 前記試験実行手段は、障害試験箇所に対応する構成要素毎に予め定められた方法で前記障害試験を実行する
    ことを特徴とする請求項1に記載の試験自動化装置。
  3. 前記要素間接続情報作成手段は、前記構成要素の集合の中で、あるサーバに存在する所定構成要素が依存している別の所定構成要素を、同一サーバ内、同一ネットワーク内、別ネットワーク内の順番で探索することにより前記要素間接続情報を作成する
    ことを特徴とする請求項1又は2に記載の試験自動化装置。
  4. 前記要素間接続情報は、前記所定構成要素としてのアプリケーション、当該アプリケーションに関連するネットワークインタフェース、IPアドレス、及びネットワークを含む
    ことを特徴とする請求項1ないし3のうちいずれか1項に記載の試験自動化装置。
  5. 複数の仮想サーバ及び仮想ネットワークで構成されるシステムの障害試験箇所を洗い出す試験自動化装置が実行する試験方法であって、
    前記システムの構築に使用される自動構築スクリプトから、前記システムの構成要素の集合を抽出するとともに、所定構成要素をノードとして抽出し、ノード間の依存関係に基づいて、ノード間のリンクを作成して有向グラフを作成する構成管理情報取得ステップと、
    前記有向グラフにより示される所定構成要素間の依存関係に基づいて、前記構成要素の集合から、構成要素間の接続関係を示す要素間接続情報を作成する要素間接続情報作成ステップと、
    前記要素間接続情報に基づいて障害試験箇所を洗い出し、当該障害試験箇所に対する障害試験を実行する試験実行ステップと
    を備えることを特徴とする試験方法。
  6. コンピュータを、請求項1ないし4のうちいずれか1項に記載の試験自動化装置における各手段として機能させるためのプログラム。
JP2017158807A 2017-08-21 2017-08-21 試験自動化装置、試験方法、及びプログラム Active JP6818654B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017158807A JP6818654B2 (ja) 2017-08-21 2017-08-21 試験自動化装置、試験方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017158807A JP6818654B2 (ja) 2017-08-21 2017-08-21 試験自動化装置、試験方法、及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020218354A Division JP7047054B2 (ja) 2020-12-28 2020-12-28 試験自動化装置、試験方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2019036252A JP2019036252A (ja) 2019-03-07
JP6818654B2 true JP6818654B2 (ja) 2021-01-20

Family

ID=65637712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017158807A Active JP6818654B2 (ja) 2017-08-21 2017-08-21 試験自動化装置、試験方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6818654B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115987859B (zh) * 2022-11-30 2024-07-26 中国铁道科学研究院集团有限公司通信信号研究所 基于应答器报文的atp车载设备仿真测试脚本自动生成方法

Also Published As

Publication number Publication date
JP2019036252A (ja) 2019-03-07

Similar Documents

Publication Publication Date Title
CN104410672B (zh) 网络功能虚拟化应用升级的方法、转发业务的方法及装置
US8910172B2 (en) Application resource switchover systems and methods
JP5941542B2 (ja) あらかじめ構築された環境を瞬時に利用可能にすることによるテスト用の環境の展開
US9021294B2 (en) Discovering boot order sequence of servers belonging to an application
JP5657475B2 (ja) 運用管理装置、及び方法
CN107506295B (zh) 虚拟机备份的测试方法、设备及计算机可读存储介质
CN111813495B (zh) 节点测试方法和装置、存储介质和电子装置
US9645874B2 (en) Analyzing OpenManage integration for troubleshooting log to determine root cause
CN106598594B (zh) 一种快速恢复测试程序的测试系统及方法
EP3230865B1 (en) Recovery execution system using programatic generation of actionable workflows
US9183092B1 (en) Avoidance of dependency issues in network-based service startup workflows
JP2017135653A (ja) 試験装置、ネットワークシステム、及び試験方法
JP6904364B2 (ja) システム構築支援装置、方法およびプログラム
US20220318129A1 (en) Automated code checking
JP6818654B2 (ja) 試験自動化装置、試験方法、及びプログラム
CN105849699B (zh) 控制数据中心架构设备的方法
JP6555721B2 (ja) 障害復旧システム及び方法
JP7047054B2 (ja) 試験自動化装置、試験方法、及びプログラム
Du et al. High availability verification framework for OpenStack based on fault injection
CN114996955A (zh) 一种云原生混沌工程实验的靶场环境构建方法及装置
JP6734689B2 (ja) システム管理支援装置、システム管理支援方法、及びプログラム
US9405605B1 (en) Correction of dependency issues in network-based service remedial workflows
Zhou et al. Delta execution for software reliability
JP6840573B2 (ja) システム構築装置、システム構築方法、及びプログラム
US11570260B1 (en) Data collection configuration file generation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201228

R150 Certificate of patent or registration of utility model

Ref document number: 6818654

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250