(57)【要約】      （修正有）【課題】情報処理システムにおいて、必要性に応じて適切にログデータを取得できるようにするログデータの出力方法を提供する。【解決手段】情報処理装置を含んで構成される情報処理システムにおける前記情報処理装置に、前記情報処理システムを制御するための少なくとも２種以上のコマンドのそれぞれの実行に際し、共通に実行される少なくとも１つ以上の処理ブロックを実行するステップと、前記コマンドの種類毎に設定される、前記処理ブロックの実行により出力されるログデータの出力要否の判定に用いられる判定値を記憶するステップと、前記ログデータを出力するアルゴリズムを含む前記処理ブロックを実行する際に、前記判定値が当該処理ブロックに設定されているログデータ出力条件を満たすかどうかを判定した結果を記憶するステップとを実行させる。【選択図】      図３
2004264970.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置を含んで構成される情報処理システムにおける前記情報処理装置に、
前記情報処理システムを制御するための少なくとも２種以上のコマンドのそれぞれの実行に際し、共通に実行される少なくとも１つ以上の処理ブロックを実行するステップと、
前記コマンドの種類毎に設定される、前記処理ブロックの実行により出力されるログデータの出力要否の判定に用いられる判定値を記憶するステップと、
前記ログデータを出力するアルゴリズムを含む前記処理ブロックを実行する際に、前記判定値が当該処理ブロックに設定されているログデータ出力条件を満たすかどうかを判定した結果を記憶するステップと
を実行させるためのプログラム。
【請求項２】
請求項１に記載の前記プログラムにおいて、
前記判定の結果が、前記判定値が前記ログデータ出力条件を満たすものであった場合には、当該ログデータを前記情報処理装置が備える記憶装置に出力するステップ
を実行させるためのプログラム。
【請求項３】
請求項１に記載の前記プログラムにおいて、
前記判定の結果が、前記判定値が前記ログデータ出力条件を満たさないものであった場合には、当該ログデータを前記情報処理装置が備えるメモリに記憶しておき、
前記処理ブロックの実行により前記情報処理システムに異常が発生したことを検知した場合に、前記メモリに記憶された前記ログデータを前記記憶装置に出力するステップ
を実行させるためのプログラム。
【請求項４】
請求項２に記載の前記プログラムにおいて、
当該ログデータを前記記憶装置に出力する際に実行される前記処理ブロックの処理負荷を測定し、
前記測定した結果が当該ログデータの前記記憶装置への出力条件を満たす場合には、当該ログデータの前記記憶装置への出力を第１のプロセスに実行させ、
前記測定した結果が前記条件を満たさない場合には、当該ログデータの前記記憶装置への出力を、前記第１のプロセスとは異なる第２のプロセスに実行させること
を特徴とするプログラム。
【請求項５】
請求項４に記載の前記プログラムにおいて行われる、当該ログデータを前記記憶装置に出力する際に実行される前記処理ブロックの処理負荷の測定は、
前記記憶装置に対するデータの書き込み命令に対する応答速度を測定することにより行われ、
前記記憶装置への出力条件は、前記応答速度が規定値よりも早いことであること
を特徴とするプログラム。
【請求項６】
請求項２に記載の前記プログラムにおいて、
当該ログデータを前記記憶装置に出力するアルゴリズムを含む複数の前記処理ブロックの処理負荷を測定し、
前記処理負荷を測定した前記処理ブロックのうち、前記処理負荷が最も少ない前記処理ブロックにより、当該ログデータの前記記憶装置への出力を実行すること
を特徴とするプログラム。
【請求項７】
情報処理装置を含んで構成される情報処理システムにおける前記情報処理装置であって、
前記情報処理システムを制御するための少なくとも２種以上のコマンドのそれぞれの実行に際し、共通に実行される少なくとも１つ以上の処理ブロックを実行する手段と、
前記コマンドの種類毎に設定される、前記処理ブロックの実行により出力されるログデータの出力要否の判定に用いられる判定値を記憶する手段と、
前記ログデータを出力するアルゴリズムを含む前記処理ブロックを実行する際に、前記判定値が当該処理ブロックに設定されているログデータ出力条件を満たすかどうかを判定した結果を記憶する手段と
を備えることを特徴とする情報処理装置。
【請求項８】
請求項７に記載の情報処理装置において、
前記判定の結果が、前記判定値が前記ログデータ出力条件を満たすものであった場合には、当該ログデータを前記情報処理装置が備える記憶装置に出力する手段と
を備えることを特徴とする情報処理装置。
【請求項９】
請求項７に記載の情報処理装置において、
前記判定の結果が、前記判定値が前記ログデータ出力条件を満たさないものであった場合には、当該ログデータを前記情報処理装置が備えるメモリに記憶しておき、
前記処理ブロックの実行により前記情報処理システムに異常が発生したことを検知した場合に、前記メモリに記憶された前記ログデータを前記記憶装置に出力する手段
を備えることを特徴とする情報処理装置。
【請求項１０】
請求項８に記載の情報処理装置において、
当該ログデータを前記記憶装置に出力する際に実行される前記処理ブロックの処理負荷を測定し、
前記測定した結果が当該ログデータの前記記憶装置への出力条件を満たす場合には、当該ログデータの前記記憶装置への出力を第１のプロセスに実行させ、
前記測定した結果が前記条件を満たさない場合には、当該ログデータの前記記憶装置への出力を、前記第１のプロセスとは異なる第２のプロセスに実行させること
を特徴とする情報処理装置。
【請求項１１】
請求項１０に記載の情報処理装置において、当該ログデータを前記記憶装置に出力する際に実行される前記処理ブロックの処理負荷の測定は、
前記記憶装置に対するデータの書き込み命令に対する応答速度を測定することにより行われ、
前記記憶装置への出力条件は、前記応答速度が規定値よりも早いことであること
を特徴とする情報処理装置。
【請求項１２】
請求項８に記載の情報処理装置において、
当該ログデータを前記記憶装置に出力するアルゴリズムを含む複数の前記処理ブロックの処理負荷を測定し、
前記処理負荷を測定した前記処理ブロックのうち、前記処理負荷が最も少ない前記処理ブロックにより、当該ログデータの前記記憶装置への出力を実行すること
を特徴とする情報処理装置。
【請求項１３】
情報処理装置を含んで構成される情報処理システムにおける、前記情報処理装置におけるログデータの出力方法であって、
前記情報処理システムを制御するための少なくとも２種以上のコマンドのそれぞれの実行に際し、共通に実行される少なくとも１つ以上の処理ブロックを実行するステップと、
前記コマンドの種類毎に設定される、前記処理ブロックの実行により出力されるログデータの出力要否の判定に用いられる判定値を記憶するステップと、
前記ログデータを出力するアルゴリズムを含む前記処理ブロックを実行する際に、前記判定値が当該処理ブロックに設定されているログデータ出力条件を満たすかどうかを判定した結果を記憶するステップと
を備えることを特徴とするログデータの出力方法。
【請求項１４】
請求項１３に記載のログデータの出力方法において、
前記判定の結果が、前記判定値が前記ログデータ出力条件を満たすものであった場合には、当該ログデータを前記情報処理装置が備える記憶装置に出力するステップ
を備えることを特徴とするログデータの出力方法。
【請求項１５】
請求項１３に記載のログデータの出力方法において、
前記判定の結果が、前記判定値が前記ログデータ出力条件を満たさないものであった場合には、当該ログデータを前記情報処理装置が備えるメモリに記憶しておき、
前記処理ブロックの実行により前記情報処理システムに異常が発生したことを検知した場合に、前記メモリに記憶された前記ログデータを前記記憶装置に出力するステップ
を備えることを特徴とするログデータの出力方法。
【請求項１６】
請求項１４に記載のログデータの出力方法において、
当該ログデータを前記記憶装置に出力する際に実行される前記処理ブロックの処理負荷を測定し、
前記測定した結果が当該ログデータの前記記憶装置への出力条件を満たす場合には、当該ログデータの前記記憶装置への出力を第１のプロセスに実行させ、
前記測定した結果が前記条件を満たさない場合には、当該ログデータの前記記憶装置への出力を、前記第１のプロセスとは異なる第２のプロセスに実行させること
を特徴とするログデータの出力方法。
【請求項１７】
請求項１６に記載のログデータの出力方法において行われる、当該ログデータを前記記憶装置に出力する際に実行される前記処理ブロックの処理負荷の測定は、
前記記憶装置に対するデータの書き込み命令に対する応答速度を測定することにより行われ、
前記記憶装置への出力条件は、前記応答速度が規定値よりも早いことであること
を特徴とするログデータの出力方法。
【請求項１８】
請求項１４に記載のログデータの出力方法において、
当該ログデータを前記記憶装置に出力するアルゴリズムを含む複数の前記処理ブロックの処理負荷を測定し、
前記処理負荷を測定した前記処理ブロックのうち、前記処理負荷が最も少ない前記処理ブロックにより、当該ログデータの前記記憶装置への出力を実行すること
を特徴とするログデータの出力方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラム、情報処理装置、及び情報処理装置におけるログデータの出力方法に関する。
【０００２】
【従来の技術】
近年の情報技術の進歩に伴い、情報処理システムは大規模化及び複雑化している。それに伴い、情報処理システム実行時の履歴情報として出力されるログデータの量も増大している。
【０００３】
【特許文献１】
特開平１１−２９６４１５号公報
【０００４】
【発明が解決しようとする課題】
しかしながら出力されるログデータは全てが一律に必要とされる訳ではない。そのため、ログデータを必要性に応じて適切に取得できるようにすることが重要である。
本発明は上記課題を鑑みてなされたものであり、プログラム、情報処理装置、及び情報処理装置におけるログデータの出力方法を提供することを主たる目的とする。
【０００５】
【課題を解決するための手段】
上記課題を解決するために、本発明に係るプログラムは、情報処理装置を含んで構成される情報処理システムにおける前記情報処理装置に、前記情報処理システムを制御するための少なくとも２種以上のコマンドのそれぞれの実行に際し、共通に実行される少なくとも１つ以上の処理ブロックを実行するステップと、前記コマンドの種類毎に設定される、前記処理ブロックの実行により出力されるログデータの出力要否の判定に用いられる判定値を記憶するステップと、前記ログデータを出力するアルゴリズムを含む前記処理ブロックを実行する際に、前記判定値が当該処理ブロックに設定されているログデータ出力条件を満たすかどうかを判定した結果を記憶するステップとを実行させる。
【０００６】
ここで、コマンドとは情報処理装置において行われる処理を指定するための情報をいう。コマンドは情報処理装置に外部から入力される場合もあるし、情報処理装置の内部で生成される場合もある。また処理ブロックとはコマンド実行時に実行される処理単位である。コマンドにより指定される処理は少なくとも１つ以上の処理ブロックが実行されることにより実現される。
その他、本願が開示する課題、及びその解決方法は、発明の実施の形態の欄、及び図面により明らかにされる。
【０００７】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
まず、本実施の形態に係る情報処理システムの全体構成を示すブロック図を図１に示す。
ホスト１００はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリ、入出力装置等を備えたコンピュータであり、各種の情報処理サービスを提供する。ホスト１００により提供される情報処理サービスは、例えば銀行の自動預金預け払いサービスやインターネットのホームページ閲覧サービスのようなオンラインサービスを始め、科学技術分野における実験シミュレーションを行うバッチ処理サービス等である。
【０００８】
ホスト１００はＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）５００を介してストレージシステム（ストレージ装置Ａ乃至Ｃ）６００に接続されている。ストレージシステム６００は、ホスト１００が情報処理サービスを提供する際に必要とする記憶リソースを提供する。記憶リソースはストレージシステム６００が備えるディスクドライブにより提供される物理的な記憶領域上に論理的に設定される記憶領域である論理ボリューム（以下ボリュームとも記す）に記憶されている。ディスクドライブとしては、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等様々なものを用いることができる。
【０００９】
管理サーバ（情報処理装置）２００は、ＬＡＮ４００を介してホスト１００及びストレージシステム６００に接続されており、ストレージシステム６００やホスト１００と共に情報処理システムを構成する。管理サーバ２００は情報処理システムの保守・管理を行うためのコンピュータである。例えば、ストレージシステム６００に対する論理ボリュームの作成や削除、容量の変更、あるいはストレージシステム６００をホスト１００から使用できるようにするための各種設定等を行うために使用される。これらの保守・管理は、オペレータにより管理サーバ２００に入力されたコマンドが実行されることにより行われる。
【００１０】
ストレージ管理情報データベース２１０は、ストレージシステム６００に関する各種管理情報を記憶したデータベースであり、上記コマンドが実行される際に適宜参照・更新される。ストレージ管理情報データベース２１０は、管理サーバ２００を構成する記憶装置２０８上に構築されるようにすることもできるし、管理サーバ２００とは別のデータ記憶装置、例えばストレージシステム６００上に構築されるようにすることもできる。
【００１１】
ＬＡＮ４００はインターネットのような公共的なネットワークとすることもできるし、プライベートなネットワークとすることもできる。また管理サーバ２００の機能をホスト１００に備えるようにすることにより、ホスト１００から情報処理システムの保守・管理等を行えるようにした形態とすることもできる。
【００１２】
次に、本実施の形態に係る管理サーバ２００の構成を示すブロック図を図２に示す。
管理サーバ２００は、ＣＰＵ２０１、メモリ２０２、ポート２０３、記録媒体読取装置２０４、入力装置２０５、出力装置２０６、記憶装置２０８を備える。
【００１３】
ＣＰＵ２０１は管理サーバ２００の全体の制御を司るもので、記憶装置２０８に格納されたストレージ管理プログラム３００を適宜メモリ２０２に読み出して実行することにより本実施の形態に係る各種機能を実現する。記録媒体読取装置２０４は、記録媒体２０７に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ２０２や記憶装置２０８に格納される。従って、例えば記録媒体２０７に記録されたストレージ管理プログラム３００を、記録媒体読取装置２０４を用いて上記記録媒体２０７から読み取って、メモリ２０２や記憶装置２０８に格納するようにすることができる。記録媒体２０７としてはフレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等を用いることができる。記録媒体読取装置２０４は管理サーバ２００に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。記憶装置２０８にはストレージ管理プログラム３００、ストレージ管理情報データベース２１０が記憶されている。記憶装置２０８は、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等である。入力装置２０５はオペレータ等による管理サーバ２００へのコマンド入力等のために用いられる。入力装置２０５としては例えばキーボードやマウス等が用いられる。出力装置２０６は情報を外部に出力するための装置である。出力装置２０６としては例えばディスプレイやプリンタ等が用いられる。ポート２０３はホスト１００やストレージシステム６００と通信を行うための装置である。また図示されていない他のコンピュータとの間で通信を行うために使用することもできる。この場合、例えばストレージ管理プログラム３００をポート２０３を介して他のコンピュータから受信して、メモリ２０２や記憶装置２０８に格納するようにすることもできる。
【００１４】
ストレージ管理プログラム３００は、情報処理システムの保守・管理を行うためのプログラムである。オペレータからコマンドの入力を受け付けて、例えばストレージシステム６００に対する論理ボリュームの作成や削除、ストレージシステム６００に対するホスト１００からのアクセス制御などを行う。ストレージ管理プログラム３００は複数の処理ブロックを備えて構成されている。処理ブロックはコマンドの実行時に実行される処理単位である。例えば所定の機能を実現するための関数や手続きとすることができる。これらの処理ブロックはコマンドに応じて実行される。処理ブロックの中にはログデータを出力するものも含まれる。
【００１５】
ログデータは、エラー発生時の原因究明等様々な目的の為に利用され、大量に出力されるが、必ずしも全てのログデータが必要な訳ではない。ログデータの要否は、実行されるコマンドの重要度や実行される処理ブロックによっても異なる。例えば情報処理システムの保守・管理を行う上で重要なコマンドを実行する場合や情報処理システムに異常が発生した場合等、できるだけ多くのログデータを出力させたい場合もあるし、重要でないコマンドを実行する場合にはログデータを出力させたくない場合もある。また、大規模な情報処理システムの場合には取得されるログデータが大量になるため、ログデータを記録しておくための記憶領域の確保や、ログデータ取得のための処理負荷により、本来の保守・管理業務のための処理能力不足等が問題となる場合がある。
【００１６】
そのため本実施の形態に係るストレージ管理プログラム３００は、管理サーバ２００に入力されるコマンドの種類と、そのコマンドに応じて行われる処理ブロックに応じてログデータの出力要否を判定する。
【００１７】
図３に、本実施の形態に係るログデータを出力する処理を説明するための図を示す。
コマンド１及びコマンド２は管理サーバ２００に入力されるコマンドを示す。コマンド１は重要性の高いコマンドであり、コマンド２は重要性の低いコマンドである。重要性の高いコマンドの例としては、ストレージシステム６００に新たに論理ボリュームの設定を行うためのコマンドなどを挙げることができる。このような重要性の高いコマンドが実行される場合にはログデータの必要性が高い。論理ボリュームの設定に失敗した場合等に、原因究明等のためにログデータが必要になる場合があるからである。一方重要性の低いコマンドとしては、例えばストレージシステム６００の論理ボリュームの構成を参照するためのコマンドなどを挙げることができる。このような重要性の低いコマンドの実行に対してはログデータの必要性は少ない。
【００１８】
図３に示すように、管理サーバ２００に入力されたコマンド１は、ストレージ管理プログラム３００により、複数の処理ブロックが順次実行される。図３の例では処理ブロックＡ、処理ブロックＢ、処理ブロックＤ、処理ブロックＥである。またコマンド２の実行に際しては、処理ブロックＡ、処理ブロックＣ、処理ブロックＤ、処理ブロックＦの各処理ブロックが実行される。
【００１９】
本実施の形態に係るストレージ管理プログラム３００においては、コマンドの種類毎に設定される、処理ブロックの実行により出力されるログデータの出力要否の判定に用いられる判定値が、当該処理ブロックに設定されているログデータ出力条件を満たすかどうかを判定した結果を記憶し、その結果に応じてログデータの出力要否を切り替える。すなわち、あるコマンドの実行に際し、ある処理ブロックが実行される場合に、図６に示したコマンド別出力閾値定義テーブル３６０に記憶されたコマンドの種類毎の閾値レベル（判定値）が、図５に示したログレベル定義テーブル３５０に記憶された処理ブロック毎のレベル以下（ログデータ出力条件）の場合にログデータが出力される。ログデータ出力条件を満たすかどうかを判定した結果はメモリ２０２に記憶するようにすることもできるし、ＣＰＵ２０１内のレジスタに記憶するようにすることもできる。
【００２０】
図５に示すログレベル定義テーブル３５０は、”処理名”欄と、”レベル”欄と、”種別”欄と、”ログメッセージ”欄とを有する。”処理名”欄は処理ブロック毎に付けられた名称を表す。例えば処理ブロックが関数の場合には当該関数名とすることができる。”レベル”欄は、処理ブロック毎に設定される、ログデータ出力のための条件が記載される。本実施の形態においては”レベル”欄に記載された数値が、コマンドの種類毎に設定される閾値（判定値）以上の場合には、ログデータが出力される。”種別”欄は、処理ブロックの種類を示すための欄である。「エラー」の場合は当該処理ブロックがエラー発生時（情報処理システムに異常が発生したことを検知した場合）に実行される処理ブロックであることを示す。「トレース」の場合は当該処理ブロックが通常の処理ブロックであることを示す。”ログメッセージ”欄は、出力されるログデータを記録するための欄である。
【００２１】
図６に示すコマンド別出力閾値定義テーブル３６０は、”コマンド名”欄と、”閾値レベル”欄とを有する。”コマンド名”欄は、管理サーバ２００に実行されるコマンドの名称が種類毎に記載される。図６に例示されている”ｍａｋｅＬＤＥＶ”はストレージシステム６００に論理ボリュームを設定するためのコマンドである。また”ｄｅｌｅｔｅＬＤＥＶ”はストレージシステム６００に設定されている論理ボリュームを削除するためのコマンドである。また”ｍａｋｅＰａｔｈ”は論理ボリュームとホスト１００とを対応付け、ホスト１００からアクセス可能な論理ボリュームを設定するためのコマンドである。閾値レベル”欄は、コマンド毎に設定される閾値（判定値）を記載するための欄である。
【００２２】
これらのログレベル定義テーブル３５０やコマンド別出力閾値定義テーブル３６０は管理サーバ２００が備えるメモリ２０２に記録されるようにすることもできる。またストレージ管理情報データベース２１０に記憶されるようにすることもできる。なおコマンド別出力閾値定義テーブル３６０は、図７に示すスレッド情報テーブル３７０とすることもできる。スレッド情報テーブル３７０は、コマンドの実行時に当該コマンドに対してオペレーティングシステムにより付与されるスレッド番号と、当該コマンドの閾値レベルとを対応させたテーブルである。スレッド番号はコマンドが実行される毎に付けられるため、例えば同一のコマンドが複数回実行された場合でも、それぞれの実行時に異なるスレッド番号が付けられる。スレッド情報テーブル３７０には、スレッド番号により特定されるコマンドに対応した閾値レベルが、当該スレッド番号に対して記載される。
【００２３】
このように本実施の形態においては、ログレベル定義テーブル３５０に記載されたログデータ出力条件を、コマンド別出力閾値定義テーブル３６０あるいはスレッド情報テーブル３７０に記載された判定値が満足するかどうかを判定する。これにより図３に示した例では、例えばコマンド１及びコマンド２のどちらも処理Ａを実行するが、コマンド１により処理Ａが実行された場合にはログデータを出力し、コマンド２により処理Ａが実行された場合にはログデータを出力しないように制御することが可能となる。
【００２４】
次に、本実施の形態に係る管理サーバの機能ブロックを示す図を図４に示す。管理サーバ２００は、ストレージ管理プログラム３００、ログ出力プログラム３８０、メモリ２０２、記憶装置２０８を有する。ストレージ管理プログラム３００及びログ出力プログラム３８０は記憶装置２０８に記憶されており、適宜メモリ２０２に読み出されてＣＰＵ２０１により実行される。これらのプログラムは、ＣＰＵ２０１により実行される際にはオペレーティングシステムによりそれぞれ異なるプロセスとして実行される。すなわち、ストレージ管理プログラム３００は第１のプロセスとして実行され、ログ出力プログラム３８０は第２のプロセスとして実行される。ここでプロセスとはプログラムが実行される際に生成される、オペレーティングシステムの制御単位をいう。各プロセスは仮想的にそれぞれＣＰＵ２０１が割り当てられているように実行される。
【００２５】
ストレージ管理プログラム３００は、コマンド処理部３１０、処理部３２０、ログ出力機能部３３０、スレッド別ログメッセージ保持部３４０、ログレベル定義テーブル３５０、コマンド別出力閾値定義テーブル３６０、スレッド情報テーブル３７０を有する。
【００２６】
コマンド処理部３１０は、管理サーバ２００の入力装置２０５等からオペレータにより入力されたコマンドを受け付ける。コマンド処理部３１０は、コマンド入力部３１２、コマンド解析部３１１、処理実行部３１３、コマンド情報登録部３１４を有する。コマンド入力部３１２は、管理サーバ２００の入力装置２０５等からオペレータにより入力されたコマンドを受け付ける。コマンド解析部３１１は受け付けたコマンドの内容を特定する。処理実行部３１３はコマンドの内容に従って処理部３２０に処理の実行を指示する。コマンド情報登録部３１４は、オペレーティングシステム等によりコマンド毎に付与されるスレッド番号の取得しスレッド情報テーブル３７０へ登録する。
【００２７】
処理部３２０はコマンドの実行を行う部分である。処理部３２０は、処理の内容により処理部Ａ、処理部Ｂ等の複数の処理ブロックを有している。各処理ブロックは、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）発行部３２１と、ログ出力要求部３２２と、その他の処理部３２３とを有している。ＡＰＩ発行部３２１は処理の内容に応じたＡＰＩを発行するための機能を有する。またＡＰＩはそれぞれのストレージシステム６００に対応したものが発行される。ログ出力要求部３２２は、当該処理ブロックが実行された際に、ログ出力機能部３３０に対してログデータの出力を指示する機能を有する。その他の処理部３２３は、上記以外の各種制御を行う機能を有する。
【００２８】
ログ出力機能部３３０は、処理部３２０からのログデータ出力要求を受け付けてログデータの出力を行う。ログ出力機能部３３０は、ログ情報入力部３３１、スレッド情報取得部３３２、Ｉ／Ｏ状態取得部３３３、出力先判定部３３４、出力モジュール１（３３５）、出力モジュール２（３３６）、出力モジュール３（３３７）、出力要求トリガ３３８を有する。ログ情報入力部３３１は、ログレベル定義テーブル３５０を参照し、ログデータ出力要求を行った処理ブロックに対応したレベル、種別、ログメッセージを取得する。スレッド情報取得部３３２は、オペレーティングシステムからスレッドＩＤを取得し、当該スレッドＩＤに対応する閾値レベルをスレッド情報テーブル３７０から取得する。
【００２９】
Ｉ／Ｏ状態取得部３３３は、ログデータを記憶装置２０８に出力する際に実行される処理ブロックである出力モジュール１（３３５）内のモジュールＡ乃至Ｃの各処理負荷を測定する。処理モジュールＡ乃至Ｃはそれぞれ記憶装置２０８へのデータ出力を制御する機能を有している。例えば各処理モジュールはデータの出力のためのキューを管理しており、処理負荷が多い場合には出力待ちのデータがキュー内に蓄積されることになる。処理負荷の測定は各処理モジュール毎に記憶装置２０８に対するデータの書き込み命令に対する応答速度を測定することにより行われる。キュー内に蓄積されている出力待ちのデータが多いほど、データ書き込み命令に対する応答速度は一般に低下する。そのため本実施の形態においては、各処理モジュールから記憶装置２０８に対してデータの書き込み命令を送信してから、書き込み命令に対する応答を受信するまでの応答時間を測定することにより応答速度の測定が行われる。データの書き込み命令を送信する際に、書き込み命令のみではなく実際に書き込まれるデータを送信するようにすることもできる。
【００３０】
出力先判定部３３４は、ログデータの記憶装置２０８への出力をストレージ管理プログラム３００が自ら行うかログ出力プログラム３８０に行わせるかを判定する。判定は、Ｉ／Ｏ状態取得部３３３により測定された結果が当該ログデータの記憶装置２０８への出力条件を満たすかどうかにより行われる。例えばＩ／Ｏ状態取得部３３３により測定された応答時間が規定時間よりも短い場合（応答速度が規定値よりも早い場合）には出力条件を満たすものと判定し、ログデータの記憶装置２０８への出力をストレージ管理プログラム３００が自ら行う。Ｉ／Ｏ状態取得部３３３により測定された応答時間が規定時間よりも長い場合には出力条件を満たさないものと判定し、ログデータの記憶装置２０８への出力をログ出力プログラム３８０に行わせる。このように、記憶装置２０８へのログデータ出力に時間がかかることが見込まれる場合には、ログ出力プログラム３８０にログデータの出力を実行させるようにすることにより、ストレージ管理プログラム３００は、本来の保守・管理業務のための処理を実行することが可能となる。またログデータの出力を自ら行う場合には、モジュールＡ乃至Ｃのいずれかにより行うかも判定する。モジュールＡ乃至Ｃのいずれにより行うかは、Ｉ／Ｏ状態取得部３３３により測定されたそれぞれの処理負荷が最も少ないモジュールを選択することにより決定することができる。例えば、Ｉ／Ｏ状態取得部３３３により測定された応答時間が規定時間よりも短く、かつ最短のものを選択するようにする。このようにすることにより、記憶装置２０８へのログデータの出力を最も早く行うことができると見込まれるモジュールにより、ログデータの出力を行うことができる。これによりログデータの迅速な出力が可能となる。
【００３１】
出力モジュール１（３３５）、出力モジュール２（３３６）、出力モジュール３（３３７）はそれぞれログデータの出力を行う際に実行される処理ブロックである。各処理モジュールによりログデータの出力が行われる様子を示す図を図８に示す。出力モジュール１（３３５）又は出力モジュール２（３３６）によりログデータが出力される場合は、ログデータは記憶装置２０８に出力される。出力モジュール１（３３５）により出力される場合は、ストレージ管理プログラム３００が自ら記憶装置２０８への出力を行う。出力モジュール２（３３６）により出力される場合は、ログ出力プログラム３８０の実行により記憶装置２０８への出力が行われる。出力モジュール１（３３５）により出力される場合は、ストレージ管理プログラム３００が直接ログデータの出力を行うので、ログデータのサイズの制約がなく、データサイズの大きなログデータであっても出力が可能である。またストレージ管理プログラム３００が自ら出力するので確実に記憶装置２０８にログデータを書き込むことができる。出力モジュール２（３３６）により出力される場合は、ログ出力プログラム３８０によりログデータの出力が行われている間、ストレージ管理プログラム３００は本来の保守・管理業務を実行することができる。
【００３２】
出力モジュール３（３３７）により出力される場合は、ログデータは記憶装置２０８へは出力されずにメモリ２０２へ出力される。例えば、あるコマンドの実行に際し、ある処理ブロックが実行される場合に、図６に示したコマンド別出力閾値定義テーブル３６０に記憶されたコマンド毎の閾値レベル（判定値）が、図５に示したログレベル定義テーブル３５０に記憶された処理ブロック毎のレベル以下でなかった場合（ログデータ出力条件を満たさないものであった場合）には、ログデータは記憶装置２０８へは出力されずにメモリ２０２へ記憶される。そして情報処理システムに異常が発生したことを検知した場合に、メモリ２０２に記憶された当該ログデータを記憶装置２０８に出力するようにする。
【００３３】
これらの制御の様子を示す図を図９乃至図１０に示す。図９においてはある処理ブロックの実行により、ログデータである「メッセージＺ」が出力される場合が示される。「メッセージＺ」は上記ログデータ出力条件を満たさないものであるため、記憶装置２０８には出力されずにメモリ２０２に記憶される。メモリ２０２上には、ログデータを記憶するための記憶領域であるスレッド別ログメッセージ保持部３４０が設けられている。スレッド別ログメッセージ保持部３４０には、「メッセージＡ」乃至「メッセージＸ」がすでに記憶されている。メモリ２０２上のスレッド別ログメッセージ保持部３４０にログデータを記憶するための空き領域がある場合には、スレッド別ログメッセージ保持部３４０の空き領域に「メッセージＺ」が書き込まれるが、空き領域がない場合には図９に示すように「メッセージＺ」を新たに記憶する代わりに「メッセージＡ」が破棄される。「メッセージＡ」は「メッセージＡ」乃至「メッセージＸ」のなかで最も古くメモリ２０２上のスレッド別ログメッセージ保持部３４０に書き込まれたログデータである。なおスレッド別ログメッセージ保持部３４０はコマンド毎あるいはスレッド毎に設けられている。そのため他のコマンドあるいはスレッドの実行により出力されたログデータを記憶するためのスレッド別ログメッセージ保持部３４０の記憶領域に空きがあっても、当該コマンドあるいはスレッドの実行により出力されたログデータを記憶するためのスレッド別ログメッセージ保持部３４０の記憶領域に空きが無い場合には、メッセージの破棄が行われる。このようにすることにより、現在から過去のある時点までのログデータをコマンドあるいはスレッド別に記憶しておくことができる。そして情報処理システムに異常が発生したことを検知した場合には、上記メモリ２０２上のスレッド別ログメッセージ保持部３４０に記憶されているログデータが記憶装置２０８に出力される。その様子を図１０に示す。情報処理システムに異常が発生したことを検知した場合には、後述する出力トリガ３３８がＯＮとなる。これによりメモリ２０２上のスレッド別ログメッセージ保持部３４０に記憶されているログデータが記憶装置２０８に出力される。出力されるログデータは、異常を発生させたコマンドあるいはスレッドの実行により出力されたログデータを記憶するためのスレッド別ログメッセージ保持部３４０に記憶されているログデータとすることもできるし、全てのスレッド別ログメッセージ保持部３４０に記憶されているログデータとすることもできる。これにより、情報処理システムに異常が発生した場合、異常発生から過去のある時点までのログデータが出力されるようにすることができるので、異常発生の原因究明に役立たせることができる。また異常が発生しない場合には、古くなったログデータは順次廃棄されるので、不要なログデータが記憶されることはない。
【００３４】
次に、本実施の形態に係る処理の流れを示すフローチャートを図１１に示す。なお以下の処理は、本実施の形態に係る各種の動作を行うためのコードから構成されるストレージ管理プログラム３００を、ＣＰＵ２０１が実行することにより実現される。
【００３５】
まずコマンド入力部３１２によりコマンドが受け付けられる（Ｓ１０００）。コマンドは管理サーバ２００を操作するオペレータが入力装置２０５を用いて入力するようにすることもできるし、管理サーバ２００の内部処理により発生したものを受け付けるようにすることもできる。続いてコマンド解析部３１１によりコマンドの解析が行われる（Ｓ１００１）。続いてコマンド情報登録部３１４により、受け付けたコマンドの閾値（判定値）が取得される（Ｓ１００２）。閾値の取得はコマンド別出力閾値定義テーブル３６０を参照することにより行われる。次にスレッドＩＤの取得が行われる（Ｓ１００３）。スレッドＩＤはオペレーティングシステムに対して問い合わせを行うことにより取得することができる。そしてＳ１００２において取得したコマンドの閾値とＳ１００３において取得したスレッドＩＤとをスレッド情報テーブル３７０に登録する（Ｓ１００４）。
【００３６】
次に、処理実行部３１３が処理部３２０に対してコマンドに対する処理の実行を指示することにより、処理の実行が開始される（Ｓ１００５）。コマンドに対する処理の実行は、処理ブロックの実行により行われる。ログデータを出力する処理ブロックが実行されると（Ｓ１００６）、ログ出力要求部３２２は、ログ出力機能部３３０に対してログデータの出力を指示する。ログ情報入力部３３１は、ログレベル定義テーブル３５０を参照することによりログ情報を読み込む（Ｓ１００７）。ログ情報とは、当該ログデータのレベル、種別、ログメッセージである。そしてスレッド情報取得部３３２は、当該ログデータを出力する処理ブロックを実行したスレッドのスレッドＩＤを取得し（Ｓ１００８）、スレッド情報テーブル３７０を参照することにより、当該スレッドに設定されている閾値レベルを取得する（Ｓ１００９）。
【００３７】
出力先判定部３３４は、Ｓ１００７において取得したログデータのレベルと、Ｓ１００９において取得したスレッドに設定されている閾値レベルとを比較する（Ｓ１０１０）。前者の方が小さい場合には”Ｎｏ”に進み、出力モジュール３（３３７）にログデータの出力を指示する（Ｓ１０１１）。出力モジュール３（３３７）は、当該ログデータをメモリ２０２上に設定されたスレッド別ログメッセージ保持部３４０に記憶する。
【００３８】
一方、Ｓ１０１０において前者の方が大きい場合には”Ｙｅｓ”に進み、ログデータを記憶装置２０８に出力するための処理を行う。まずＩ／Ｏ状態取得部３３３は、ログデータを記憶装置２０８に出力する際に実行される処理ブロックである出力モジュール１（３３５）内のモジュールＡ乃至Ｃの各処理負荷を測定する（Ｓ１０１２）。処理負荷の測定は、例えば各処理モジュールから記憶装置２０８に対してデータの書き込み命令を送信してから、書き込み命令に対する応答を受信するまでの応答時間を測定することにより行われる。続いて出力先判定部３３４は、ログデータの種別を判定する（Ｓ１０１３）。ログデータの種別はＳ１００７において取得したログ情報により知ることができる。ログデータの種別が「エラー」の場合には”Ｎｏ”に進み、ログ出力モジュール１（３３５）にログデータの出力を指示する（Ｓ１０１４）。ログ出力モジュール１（３３５）は、Ｓ１０１２においてＩ／Ｏ状態取得部３３３によって測定されたモジュールＡ乃至Ｃの各処理負荷に基づいて、最も処理負荷の少ないモジュールにログデータの出力を実行させる。ログデータの種別が「エラー」の場合は情報処理システムに異常が発生している状態であるので、ログ出力モジュール１（３３５）によりストレージ管理プログラム３００がログデータを出力することで、確実に記憶装置２０８にログデータを出力することができる。またログデータの出力をなるべく早急に行うため、モジュールＡ乃至Ｃのうち最も処理負荷の少ないモジュールにログデータの出力を実行させる。これによりログデータの出力を迅速に行うことができる。続いて出力先判定部３３４は、出力要求トリガ３３８をＯＮにする（Ｓ１０１５）。出力モジュール３（３３７）は、出力要求トリガ３３８がＯＮになったことを検知すると、メモリ２０２上に設定されたスレッド別ログメッセージ保持部３４０に記憶されているログデータを記憶装置２０８に出力する。これにより、情報処理システムに異常が発生した場合、異常発生から過去のある時点までの全てのログデータが出力されるようにすることができるので、異常発生の原因究明に役立たせることができる。
【００３９】
Ｓ１０１３においてログデータの種別が「トレース」であった場合には、”Ｙｅｓ”に進む。そしてＳ１０１２においてＩ／Ｏ状態取得部３３３によって測定されたモジュールＡ乃至Ｃの各処理負荷に基づいて、出力先判定部３３４は、ログデータを出力モジュール１（３３５）に出力させるか、出力モジュール２（３３６）に出力させるかを判定する（Ｓ１０１６）。モジュールＡ乃至Ｃのそれぞれの記憶装置２０８からの応答時間のうち、最短の応答時間が規定時間よりも長い場合には、”Ｎｏ”に進み、ログ出力モジュール２（３３６）にログデータを出力させる（Ｓ１０１７）。モジュールＡ乃至Ｃのいずれの記憶装置２０８からの応答時間も規定時間より長い場合には、モジュールＡ乃至Ｃのいずれもが処理負荷が高い状態であると推測できることから、いずれにログデータの送信を実行させても長時間要することが予想される。ストレージ管理プログラム３００が直接ログデータの送信を行うと、その間本来の保守・管理業務が行えないことになる。そのためストレージ管理プログラム３００はログデータの出力をログデータ出力プログラム３８０に実行させることにしている。ログ出力プログラム３８０はストレージ管理プログラム３００とは別のプロセスとしてＣＰＵ２０１により実行されているので、ログ出力プログラム３８０によりログデータの出力が行われている間、ストレージ管理プログラム３００は本来の保守・管理業務を実行することができる。一方、モジュールＡ乃至Ｃのそれぞれの記憶装置２０８からの応答時間のうち、最短の応答時間が規定時間よりも短い場合には、”Ｙｅｓ”に進み、ログ出力モジュール１（３３５）にログデータの出力を指示する（Ｓ１０１８）。ログ出力モジュール１（３３５）は、Ｓ１０１２においてＩ／Ｏ状態取得部３３３によって測定されたモジュールＡ乃至Ｃの各処理負荷に基づいて、最も処理負荷の少ないモジュールにログデータの出力を実行させる。これにより、記憶装置２０８へのログデータの出力を最も早く行うことができると見込まれるモジュールにより、ログデータの出力を行うことができる。またストレージ管理プログラム３００が直接ログデータの出力を行うので、ログデータのサイズの制約がなく、大きなログデータであっても出力が可能である。またストレージ管理プログラム３００が自ら出力するので確実に記憶装置２０８にログデータを出力することができる。
【００４０】
以上の処理により、ログレベル定義テーブル３５０に登録された処理ブロック毎のログデータ出力レベルと、コマンド別出力閾値定義テーブル３６０あるいはスレッド情報テーブル３７０に登録されたコマンド毎の閾値とを比較することにより、ログデータを出力するアルゴリズムを含む処理ブロックを実行する際に、コマンドの種類毎に設定される、処理ブロックの実行により出力されるログデータの出力要否の判定に用いられる判定値が当該処理ブロックに設定されているログデータ出力条件を満たすかどうかを判定し、コマンドの種類と、そのコマンドに応じて行われる処理ブロックに応じたログデータの出力が可能となる。
【００４１】
また、記憶装置２０８へのログデータ出力に時間がかかることが見込まれる場合には、ログ出力プログラム３８０にログデータの出力を実行させるようにすることにより、ストレージ管理プログラム３００は、本来の保守・管理業務のための処理を実行することが可能となる。
【００４２】
また、ログデータが出力モジュール１（３３５）により出力される場合は、ストレージ管理プログラム３００が直接ログデータの出力を行うので、ログデータのサイズの制約がなく、大きなログデータであっても出力が可能である。またストレージ管理プログラム３００が自ら出力するので確実に記憶装置２０８にログデータを出力することができる。出力モジュール２（３３６）により出力される場合は、ログ出力プログラム３８０によりログデータの出力が行われている間、ストレージ管理プログラム３００は本来の保守・管理業務を実行することができるので、保守・管理業務の処理性能を低下させることをなくすことができる。
【００４３】
またモジュールＡ乃至Ｃのうち、最も処理負荷の少ないモジュールにログデータの出力を実行させるので、記憶装置２０８へのログデータの出力を最も早く行うことができると見込まれるモジュールにより、ログデータの出力を行うことができる。これによりログデータの迅速な出力が可能となる。
【００４４】
また重要度の低いログデータは一旦メモリ２０２に記憶しておき、情報処理システムに異常が発生したことを検知した場合に、記憶装置２０８に出力するようにすることにより、情報処理システムに異常が発生した場合、異常発生から過去のある時点までの全てのログデータが出力されるようにすることができるので、異常発生の原因究明に役立たせることができる。また異常が発生しない場合には、メモリ２０２上に記憶されたログデータは古いものから順次廃棄されるので、不要なログデータが記憶されることがない。
【００４５】
以上本実施の形態について説明したが、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【００４６】
【発明の効果】
プログラム、情報処理装置、及び情報処理装置におけるログデータの出力方法を提供することができる。
【図面の簡単な説明】
【図１】本実施の形態に係る情報処理システムの全体構成を示すブロック図である。
【図２】本実施の形態に係る管理サーバの構成を示すブロック図である。
【図３】本実施の形態に係るコマンドの処理の流れを示す図である。
【図４】本実施の形態に係る管理サーバの機能ブロックを示す図である。
【図５】本実施の形態に係るログレベル定義テーブルを示す図である。
【図６】本実施の形態に係るコマンド別出力閾値定義テーブルを示す図である。
【図７】本実施の形態に係るスレッド情報テーブルを示す図である。
【図８】本実施の形態に係るログデータ出力方法を説明するための図である。
【図９】本実施の形態に係るログデータのメモリへの記憶を説明するための図である。
【図１０】本実施の形態に係るメモリへ記憶されたログデータの出力を説明するための図である。
【図１１】本実施の形態に係る処理の流れを示すフローチャートである。
【符号の説明】
１００    ホスト
２００    管理サーバ
２０１    ＣＰＵ
２０２    メモリ
２０４    記録媒体読取装置
２０７    記録媒体
２０８    記憶装置
２１０    ストレージ管理情報データベース
３００    ストレージ管理プログラム
３１０    コマンド処理部
３２０    処理部
３３０    ログ出力機能部
３３１    ログ情報入力部
３３２    スレッド情報取得部
３３３    Ｉ／Ｏ状態取得部
３３４    出力先判定部
３３５    出力モジュール１
３３６    出力モジュール２
３３７    出力モジュール３
３３８    出力要求トリガ
３４０    スレッド別ログメッセージ保持部
３５０    ログレベル定義テーブル
３６０    コマンド別出力閾値定義テーブル
３７０    スレッド情報テーブル
３８０    ログ出力プログラム
４００    ＬＡＮ
５００    ＳＡＮ
６００    ストレージシステム
【図１】
2004264970.tif 000003
【図２】
2004264970.tif 000004
【図３】
2004264970.tif 000005
【図４】
2004264970.tif 000006
【図５】
2004264970.tif 000007
【図６】
2004264970.tif 000008
【図７】
2004264970.tif 000009
【図８】
2004264970.tif 000010
【図９】
2004264970.tif 000011
【図１０】
2004264970.tif 000012
【図１１】
2004264970.tif 000013