(57)【要約】  コンピュータと記憶装置とを含むシステムにおいて、専用のソフトウェアからなる複数の第１モジュール及び汎用のソフトウェアまたはハードウェアからなる複数の第２モジュールの動作状態を表示する。第１および第２のモジュールの動作状態を示すテーブルを準備するステップと、第１モジュール中から選択されたモジュールから、モジュール自身の動作状態を取得する第１取得ステップＳ３３と、選択されたモジュールの動作に伴って動作する他の第１モジュールおよび／または第２モジュールから、各モジュールの動作状態を取得する第２取得ステップＳ３５と、第１取得ステップおよび／または第２取得ステップによって取得された各モジュールの動作状態を用いてテーブル中の対応する各モジュールの動作状態を更新するステップＳ３４およびＳ３７と、更新後のテーブルに基づき第１及び第２のモジュールの動作状態を表示させるステップと、を含む。
2014083905.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つ以上のコンピュータと、前記コンピュータと通信可能な少なくとも１つ以上の記憶装置とを含むシステムにおいて、専用のソフトウェアからなる複数の第１モジュール及び汎用のソフトウェアまたはハードウェアからなる複数の第２モジュールの動作状態を表示手段に表示させるための方法であって、
前記記憶装置または前記コンピュータ内のメモリに、前記複数の第１モジュール及び前記複数の第２モジュールの動作状態を示すテーブルを準備するステップと、
前記複数の第１モジュールの中から選択されたモジュールから、モジュール自身の動作状態を取得する第１取得ステップと、
前記選択されたモジュールの動作に伴って動作する他の第１モジュールおよび／または前記第２モジュールから、各モジュールの動作状態を取得する第２取得ステップと、
前記第１取得ステップおよび／または前記第２取得ステップによって取得された各モジュールの動作状態を用いて前記テーブル中の対応する各モジュールの動作状態を更新するステップと、
前記更新後の前記テーブルに基づき前記第１モジュール及び前記第２モジュールの動作状態を前記表示手段に表示させるステップと、を含む方法。
【請求項２】
前記第１取得ステップにおいて選択されなかった前記第１モジュールおよび／または前記第２取得ステップによって動作状態が取得されなかった前記第２モジュールに対して、動作状態を確認する信号を送るステップと、
前記動作状態を確認する信号を送った前記第１モジュールおよび／または前記第２モジュールから各モジュールの動作状態を取得する第３取得ステップと、
前記第３取得ステップによって取得された各モジュールの動作状態を用いて前記テーブル中の対応する各モジュールの動作状態を更新するステップと、をさらに含む、請求項１の方法。
【請求項３】
前記テーブル中の各モジュールの前記動作状態は、正常、異常、及びこれらの間の状態を意味する警告のいずれかを含む、請求項１の方法。
【請求項４】
前記テーブルの各モジュールの動作状態を更新するステップは、更新前の各モジュールの動作状態に対して、前記正常、前記警告、および前記異常の順番で動作状態が悪くなる場合に、取得した動作状態によって対応するモジュールの動作状態を更新するステップを含む、請求項３の方法。
【請求項５】
前記表示手段に表示させるステップは、各モジュールを示すアイコン毎に、前記正常、前記警告、または前記異常の状態を示す視覚効果を表示させるステップを含む、請求項３の方法。
【請求項６】
前記第１取得ステップは、前記複数の第１モジュールの中から、ユーザーによって選択された、またはユーザーにとって必要となる予め選択されたモジュールから、モジュール自身の動作状態を取得するステップを含む、請求項１の方法。
【請求項７】
請求項１〜６のいずれか１項の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・システム中のモジュールの動作状態の表示方法に関し、より具体的には、コンピュータと記憶装置とを含むシステムにおいて、専用のソフトウェアからなるモジュール及び汎用のソフトウェアまたはハードウェアからなるモジュールの動作状態を表示させるための方法に関する。
【背景技術】
【０００２】
コンピュータ・システムが大規模化してくると、複数のシステム専用のモジュール及び複数の汎用的なモジュールを組み合わせてシステムを構成することがある。このような大規模なシステムでは、エンドユーザーと専門技術員とで異なる観点でシステム管理を行う場合がある。すなわち、エンドユーザーはシステムが全体として正しく動作しているかに注目し管理を行い、専門技術員はさらに細かく各モジュールの状態が正常であるかどうかについても管理を行う。ここで、モジュールとは、HDDやHBAなどのハードウェア（H/W）モジュールだけでなく、システムを動作させるためのプロセスなどのソフトウェア（S/W）モジュールも含むものとする。【０００３】
この２つの観点での管理を実現するために、大規模化したシステムでは、一般的に管理ツールを別々に用意する。つまり、エンドユーザー向けの管理ツールと、専門技術員向けの管理ツールとの２つが別々に存在する。例えば、仮想テープサーバ（VTS）を用いた一従来例では、エンドユーザーは、管理ツールとしてWebブラウザを使ったGUIを用いて、システム全体が動作しているか等を調べる。一方、専門技術員は、管理ツールとしてコマンドラインの専用ツールを用いて、HDD等の各モジュールが故障していないか等を調べる。【０００４】
このような従来のシステムにおいて、エンドユーザー向けのシステム管理ツールは、各モジュールの状態を個別に問い合わせ、その結果をまとめることでその管理を実現している。一従来例では、管理対象システム上のWebサーバーが管理対象システム内の各モジュールに問い合わせて、その結果を取得してGUIとして表示するという構成があり、例えばVTSの管理インターフェースなどで用いられている。【０００５】
ここで、エンドユーザー向けの管理ツールが各モジュールの状態を問い合わせて表示する方法には次の２つの方法がある。
（ａ） ユーザーのリクエストに応じてリアルタイムにモジュールの状態を問い合わせてその情報（状態）を表示する。
（ｂ） ユーザーのリクエストとは非同期にモジュールの状態を問い合わせて、その情報（状態）を一時保管（キャッシュ）しておき、管理ツールはキャッシュの情報を後から呼び出して表示する。【０００６】
（ａ）の方法では、各モジュールの状態の問い合わせを逐次行うと、そのモジュールの負荷が一時的に高くなり、結果としてシステムに対する負荷が一時的に高くなってしまい、システムの本来の動作（例えば、ホストからのI/O処理など）に悪い影響を与えてしまう、という問題がある。また、（ｂ）の方法では、システム本来の動作があまりない時間にキャッシュを更新することで、システム本来の動作には影響を与えずにキャッシュを更新することができるが、システムの動作が連続しているときには情報がなかなか更新されない、という問題がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開2001-057568号公報
【特許文献２】特開2003-015972号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、上述した従来のエンドユーザー向けの管理ツールを用いた場合の問題を解決／軽減することであって、具体的には、エンドユーザー向けの管理ツールにおいて、システム本来の動作へ悪い影響を与えることなく、システム中の各モジュールの最新の動作状態を取得して表示することである。
【課題を解決するための手段】
【０００９】
本発明は、少なくとも１つ以上のコンピュータと、コンピュータと通信可能な少なくとも１つ以上の記憶装置とを含むシステムにおいて、専用のソフトウェアからなる複数の第１モジュール及び汎用のソフトウェアまたはハードウェアからなる複数の第２モジュールの動作状態を表示手段に表示させるための方法を提供する。その方法は、（ａ）記憶装置またはコンピュータ内のメモリに、複数の第１モジュール及び複数の第２モジュールの動作状態を示すテーブルを準備するステップと、（ｂ）複数の第１モジュールの中から選択されたモジュールから、モジュール自身の動作状態を取得する第１取得ステップと、（ｃ）選択されたモジュールの動作に伴って動作する他の第１モジュールおよび／または第２モジュールから、各モジュールの動作状態を取得する第２取得ステップと、（ｄ）第１取得ステップおよび／または第２取得ステップによって取得された各モジュールの動作状態を用いて前記テーブル中の対応する各モジュールの動作状態を更新するステップと、（ｅ）更新後のテーブルに基づき第１モジュール及び第２モジュールの動作状態を表示手段に表示させるステップと、を含む。【００１０】
本発明の方法によれば、動作中のモジュールおよびそのモジュールの動作に伴って動作するモジュールの動作状態を、各モジュールへの問い合わせをおこなうことなく取得して、テーブル中の対応するモジュールの動作状態を最新の状態に更新するので、モジュールへの余計な負荷を加えることなく、すなわちシステム本来の動作へ悪い影響を与えることなく、システム中の各モジュールの最新の動作状態を表示することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の方法が実施されるコンピュータ・システムの構成例を示すブロック図である。
【図２】本発明の方法を実行するコンピュータの構成例を示す図である。
【図３】本発明で使用するモジュールの動作状態を示すテーブルの一実施形態を示す図である。
【図４】本発明の方法で表示されるGUIの一実施形態を示す図である。
【図５】本発明の方法の一実施形態のフローを示す図である。
【図６】本発明の方法の一実施形態のフローを示す図である。
【発明を実施するための形態】
【００１２】
図面を参照しながら本発明の実施の形態を説明する。図１は、本発明の方法が実施されるコンピュータ・システムの構成例を示す図である。システム100は、イーサネット（登録商標）・スイッチ（LANスイッチ）40を介して相互に通信可能に接続されたホスト（サーバー）10、PC（端末）20、ネットワーク・ドライブ30を含む。ネットワーク・ドライブ30は、HDDやテープ・ドライブ等の記憶手段を含む。これらの各装置は、本発明で使用する「モジュール」の１つとなり、また各装置に付随するモジュールやデバイスもここで言う「モジュール」の１つとなり得る。「モジュール」にはH/Wのみならずシステムで利用されS/Wも含まれる。さらに、「モジュール」にはシステム専用のS/W、および汎用のH/WおよびS/Wが含まれる。図１では、ホスト（サーバー）10およびネットワーク・ドライブ30はそれぞれ１つ、PC（端末）20は２つ描かれているが、これはあくまで例示であって、各装置がそれぞれ任意の台数（１つまたは２以上）を含むことができることは言うまでもない。
【００１３】
本発明の方法は、図１の構成において、例えばPC20が、サーバー10やネットワーク・ドライブ30からダウンロードしたソフトウェア、あるいは自己の内蔵する記憶手段（HDD等）内に保管されたソフトウェアを呼び出して実行することにより実施される。
【００１４】
図２は、本発明の方法を実行するコンピュータの構成例を示すブロック図である。図２では、図１のPC20の構成例を例示している。PC20は、バス230を介して相互に接続された演算処理装置（CPU）200、記憶手段210、各種I/F220を含む。各種I/F220は、入力I/F、出力I/F、外部記憶I/F、外部通信I/F等を含む総称として用いられ、各I/Fが、それぞれ対応するキーボード、マウス等の入力手段240、CRT、LCD等の表示手段250、USB接続の半導体メモリやHDD等の外部記憶手段260等に接続する。記憶手段210は、RAM、ROM等の半導体メモリ、HDD等を含むことができる。詳細は後述する本発明のGUIは、表示手段250において表示される。
【００１５】
ここで、本発明の方法において使用する各用語について説明する。各モジュールに1、2、3、4、....という要領でID をつけ、IDがiのモジュールをMiと表記する。システムを構成するモジュールには、システム本来の動作を処理するために、そのシステム専用に開発されたS/Wと、そのようなS/Wによって利用される汎用的なS/WまたはH/Wとに分類できる。ここで、
・システム専用に開発されたS/Wの集合をMM＝{M1、....Mj)
・汎用的なS/WまたはH/Wの集合をLM＝{Mj+1、...Mn}
と記述することとする。
【００１６】
本発明では、エンドユーザー向けの管理ツールに必要な情報のために、各モジュールの動作状態を表すテーブルをシステムに追加する。テーブルは、記憶手段２１０等に保管される。今、このテーブルをTとする。各モジュールの状態は、システム本来の動作を行う際に問題が起きているかどうか、という観点での状態を表す。図３にテーブルTの一例を示す。各モジュールに1、2、3、4、...nという要領でID をつけ、IDがiのモジュールをMiと表記する。
【００１７】
図３の例では、モジュールの動作状態として、正常状態を示す“OK”、動作していない異常状態を示す“Fail”、および両者の中間の意味合いである警告状態を示す“Warning”の３つが例示されている。なお、この３つはあくまで一例であって、２つあるいは４以上の状態を示すようにしてもよい。図３では、例えば、モジュール１（M1）は正常（OK）であり、モジュール３（M3）は異常（Fail）となっている。
【００１８】
本発明では、MMに含まれる各モジュールに、そのモジュール自身が正常に動作しているかどうかという情報に加え、現在そのモジュールが使用しているモジュールの状態を返すインターフェースを追加する。例えば、MMに含まれるモジュールM1がM2を呼び出していて、M2が正常に動作しているなら、M1とM2はともにOKである、という情報を入手できる。そのM2がエラーを返してきている場合は、M1とM2がともに異常（Fail）である、という情報を入手できる。
【００１９】
また、MMに含まれるモジュールM1がM2及びM3を呼び出していて、M2は正常に動作しているがM3がエラーを返してきている場合は、M1、M2、およびM3の全てが警告（Warning）である、という情報を入手できる。この場合、M1とM2がともにOKであり、M3が異常（Fail）である、という情報として入手できるようにしてもよい。このように、本発明のインターフェースは、MMに含まれるモジュールがそのとき使っているモジュールがエラーを返しているかどうかをチェックするだけなので、システム本来の動作に対して新たな負荷を生むものではない。
【００２０】
図４は、図３に例示されるテーブルの状態に基づき表示画面に表示されるGUI200の一例を示す図である。実際には、後述する本発明の方法のフローの実行により更新された後のテーブルＴの状態に基づきGUI200は表示される。図４では、コンピュータ（Computer）、ハード・ディスク・ドライブ（HDD）、テープ・ドライブ（Tape Drive）、及びホスト・バス・アダプタ（HBA）がそれぞれアイコンを意味するブロックとして図形表示され、各アイコン（ブロック）に上述した正常（OK）、異常（Fail）、及び警告（Warning）を意味する視覚効果（◎等の図形）が付記されている。
【００２１】
こうしたGUI表示により、エンドユーザーは各モジュールの動作状態を視覚的に容易に把握することが可能となる。なお、図４のモジュールの構成はあくまで一例であって、エンドユーザーが望む任意の構成について表示させることができることは言うまでもない。また、各動作状態を示す視覚効果も◎等の図形に限定されず、他の形状の図形や色、あるいは点滅表示等を含む構成によって表示させることができる。また、モジュールのアイコン自体の色をその動作状態に応じて変化させたり、点滅表示させるようにしてもよい。
【００２２】
さらに、本発明では、上述したMMとLMに加えて、MMに含まれるモジュールMiがある一時点で使用しているモジュールの集合をS（Mi）と表記する。このS（Mi）はMiの動作状態に応じて動的に変化する集合である。例えば、仮想テープサーバ（VTS）を用いた一従来例では、階層ディスク記憶管理（HSM）を行うプロセス（S/W）をM1とし、HDDであるM2との接続に使われているHBAをM3とし、テープ・ドライブをM4とし、M4との接続に使われているHBAをM5とした場合、
MM＝{M1}
LM＝{M2, M3, M4, M5}
となる。M1がHDDであるM2からのデータの読み出し動作を行っているときにはM2とM3を使用しているので、
S（M1）＝{M2, M3}
となる。また、M1がテープ・ドライブのM4への書き込み動作を行っているときには、M4とM5を使用しているので、
S（M1）＝{M4, M5}
となる。
【００２３】
次に、図５と図６を参照しながら、本発明の方法の一実施形態のフローについて説明する。なお、両図の方法のフローは、図２に例示したコンピュータ（PC20）が対応するソフトウェアを実行することにより実施される。
【００２４】
最初に図５を参照する。ステップＳ１において、エンドユーザーからのモジュールの動作状態の確認（取得）要求を受信する。具体的には、例えばコンピュータ20の入力手段240により所定のコマンドが入力される等によりその要求が受信される。この時、エンドユーザーは、同時に動作状態を確認したいモジュール群（MM）を選択（指定）することもできる。ステップＳ２において、動作状態を取得してGUIに表示すべきモジュールを選択する。具体的には、エンドユーザーが選択した、あるいは自動的に設定されるモジュール群に関するGUI表示画面が選択（設定）される。例えば、上述した図４のGUI200のような構成からなる表示画面が選択される。
【００２５】
ステップＳ３において、図３に例示されるようなテーブルTの更新プロセスが実行される。この更新プロセスの詳細については後述する。ステップＳ４において、更新されたテーブルTに基づき、ステップＳ２において選択されたGUI表示画面に各モジュールの動作状態を表示する。例えば、上述した図４のGUI200における視覚効果が表示される。このGUI表示により、エンドユーザーは、システム中のモジュールの最新の動作状態を視覚的に素早く把握することが可能となる。
【００２６】
図６を参照しながら、図５のステップＳ３のテーブルTの更新プロセス（フロー）について説明する。図６では、n個のモジュール（MM＝{M1、....Mn}）が選択された場合の例を示している。ステップＳ３１において、Miのi＝1とする初期化がおこなわれる。ステップＳ３２において、iがn以下であるか否かを判定する。判定結果がＹｅｓの場合、ステップＳ３３において、MM中のi番目のモジュールMiの動作状態を取得する。具体的には、上述した予め設定されている各モジュールの動作状態を返信するインターフェースからの信号（情報）を受け取る。ステップＳ３４において、取得したモジュールMiの動作状態を用いてテーブルTを更新する。
【００２７】
ステップＳ３５において、Miの動作に伴って使用される（動作する）S（Mi）中のMjの動作状態をステップＳ３２の場合と同様に所定のインターフェースを介して取得する。ステップＳ３６において、テーブルＴ中のMjの動作状態が既に更新済みであるか否かを判定する。この判定結果がＮｏの場合、すなわち更新がされていない場合、ステップＳ３７において、取得したMjの動作状態を用いてテーブルTを更新する。
【００２８】
ステップＳ３６の判定結果がＹｅｓの場合、ステップＳ３８において、テーブルＴ中のMjの動作状態は、取得したMjの動作状態より深刻か否かを判定する。具体的には、例えば図３に例示した３つの動作状態を用いた場合では、正常（OK）―＞警告（Warning）―＞異常（Fail）の順で動作状態の深刻度が高くなるとして、より深刻度が高くなるか否かを判定する。例えば、テーブルT中のMjの動作状態が正常（OK）であり、取得したMjの動作状態が警告（Warning）である場合は、その判定結果はＮｏとなる。逆に、例えば、テーブルT中のMjの動作状態が異常（Fail）であり、取得したMjの動作状態が警告（Warning）である場合は、その判定結果はＹｅｓとなる。
【００２９】
ステップＳ３８の判定結果がＮｏの場合、すなわち取得したMjの動作状態の深刻度が高い場合、ステップＳ３７において、取得したMjの動作状態を用いてテーブルTを更新する。このようにするのは、エンドユーザーにとって最新のより深刻な状態を知らしめることが重要であるからである。ステップＳ３８の判定結果がＹｅｓの場合、すなわち取得したMjの動作状態が高くない場合、ステップＳ３９において、Miのi＝i+1として、ステップＳ３２に戻り、ステップＳ３２〜Ｓ３７までをi＝nになるまで繰り返して、テーブルTのモジュールM1〜Mnまでの動作状態を更新する。なお、ステップＳ３５のS（Mi）中のMjが複数ある場合（S（Mi）＝{Mj1、Mj2、.... Mjm}）、そのMjの数mだけステップＳ３５〜Ｓ３７を繰り返して、全てのMjについての動作状態の取得および更新をおこなう。
【００３０】
ステップＳ３２の判定結果がＮｏの場合、すなわちiがnより大きい場合、ステップＳ４０において、汎用的なS/WまたはH/Wの集合であるLM中のモジュールであって、テーブルＴ中の動作状態が更新されていないものがあれば、そのモジュールMkの動作状態を取得する。その際、該当するモジュールMkに対して動作状態を確認するための信号を送信し、その返信として動作状態の情報を取得する。そして、次のステップＳ４１でその取得したMkの動作状態を用いて、ステップＳ３４の場合と同様にテーブルTを更新する。この場合、それらのモジュールMkはシステム本来の動作では使用されていないモジュールなので、個別に信号を送って動作状態を取得してもシステム本来の動作に影響を与えることなくテーブルTを更新することができる。
【００３１】
本発明の実施形態について、図を参照しながら説明をした。しかし、本発明はこれらの実施形態に限られるものではない。本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正、変形を加えた態様で実施できるものである。
【符号の説明】
【００３２】
１０  サーバー（ホスト）
２０  コンピュータ（PC）
３０  ネットワーク・ドライブ
４０  イーサネット（登録商標）・スイッチ（LANスイッチ）
１００  コンピュータ・システム
２００  GUI
【図１】
2014083905.tif 000003
【図２】
2014083905.tif 000004
【図３】
2014083905.tif 000005
【図４】
2014083905.tif 000006
【図５】
2014083905.tif 000007
【図６】
2014083905.tif 000008
【国際調査報告】
2014083905.tif 000009
2014083905.tif 000010