(57)【特許請求の範囲】
【請求項１】
情報処理機能を発揮する単位でハードウェアを割り当てた複数のパーティションそれぞれに対応付けたログ領域で、前記複数のパーティションそれぞれで発生したエラーのログデータを記憶するエラーログ記憶部と、
前記複数のパーティションそれぞれに対応するログ領域に格納されるログデータの上限数を記憶する上限数記憶部と、
前記複数のパーティションのいずれかのパーティションでエラーが発生した際に、前記エラーログ記憶部に未使用の領域がある場合には、エラーが発生したパーティションのログ領域に当該未使用の領域を割り当てて、発生したエラーのログデータを格納する第１の格納部と、
前記複数のパーティションのいずれかのパーティションでエラーが発生した際に、前記エラーログ記憶部に未使用の領域がなく、エラーが発生したパーティションに対応するログ領域に登録されている登録数が前記上限数を超えない場合には、前記上限数記憶部に記憶される上限数以上のログデータが格納されているログ領域において最も古いログデータが格納される領域を、エラーが発生したパーティションのログ領域に割り当てて、発生したエラーのログデータを格納する第２の格納部と、
を有することを特徴とするシステム制御装置。
【請求項２】
新たなパーティションが生成された場合に、当該新たなパーティションに対応付けたログ領域を前記エラーログ記憶部に生成するログ領域生成部と、
前記ログ領域生成部によって新たなログ領域が生成された場合に、新たなパーティションを含む複数のパーティションそれぞれに対して前記上限数を所定の条件に基づいて算出して、前記上限数記憶部に格納する上限数算出部と、を有することを特徴とする請求項１に記載のシステム制御装置。
【請求項３】
既存のパーティションが削除された場合に、前記エラーログ記憶部に記憶される当該削除されたパーティションのログ領域を未使用の領域として解放するログ領域削除部と、
前記ログ領域削除部によって使用可能な領域が解放された場合に、前記解放された未使用の領域を用いた所定の条件に基づいて、当該削除されたパーティションを除く複数のパーティションそれぞれに対して前記上限数を算出し、前記上限数記憶部に格納する上限数算出部と、を有することを特徴とする請求項１に記載のシステム制御装置。
【請求項４】
前記ログ領域削除部は、既存のパーティションが削除された場合に、当該削除されたパーティションのログ領域のうち所定数のログデータを残した残りのログデータの領域を未使用の領域として解放し、
前記上限数算出部は、前記ログ領域削除部によって解放された未使用の領域を用いた所定の条件に基づいて、前記削除されたパーティションを除く複数のパーティションそれぞれに対して前記上限数を算出し、前記上限数記憶部に格納することを特徴とする請求項３に記載のシステム制御装置。
【請求項５】
前記第２の格納部は、前記上限数記憶部に記憶される上限数以上のログデータが格納されているログ領域において最も古いログデータか前記削除されたパーティションのログ領域において最も古いログデータかのいずれか古いログデータが格納される領域を、前記エラーが発生したパーティションのログ領域に割り当てて、発生したエラーのログデータを格納することを特徴とする請求項３に記載のシステム制御装置。
【請求項６】
前記上限数算出部は、前記エラーログ記憶部全体で記憶可能なログデータのエントリ数を存在するパーティションの数で除算した値を、前記複数のパーティションのログ領域それぞれにおける前記上限数として前記上限数記憶部に格納することを特徴とする請求項２または３に記載のシステム制御装置。
【請求項７】
前記上限数算出部は、前記複数のパーティションそれぞれについて、当該パーティションに割り当てられているハードウェア数を全パーティションのハードウェア数で除算し、さらに、前記エラーログ記憶部全体で記憶可能なログデータのエントリ数と前記除算した値とを乗算した値を前記上限数として前記上限数記憶部に格納することを特徴とする請求項２または３に記載のシステム制御装置。
【請求項８】
前記上限数算出部は、前記パーティションに割り当てられるハードウェアについて重要度を示す点数を予め設定し、前記複数のパーティションそれぞれについて、現に割り当てられているハードウェアから総点数を算出し、当該総点数に基づいて算出した前記上限数を前記上限数記憶部に格納することを特徴とする請求項２または３に記載のシステム制御装置。
【請求項９】
前記エラーログ記憶部は、前記パーティションに割り当てられるハードウェアごとに対応付けたログ領域で、前記ハードウェアそれぞれで発生したエラーのログデータを記憶することを特徴とする請求項１に記載のシステム制御装置。
【請求項１０】
複数のパーティションのいずれかのパーティションでエラーが発生した際に、情報処理機能を発揮する単位でハードウェアを割り当てた複数のパーティションそれぞれに対応付けたログ領域で前記複数のパーティションそれぞれで発生したエラーのログデータを記憶するエラーログ記憶部に未使用の領域がある場合には、エラーが発生したパーティションのログ領域に当該未使用の領域を割り当てて、発生したエラーのログデータを格納する第１の格納ステップと、
前記複数のパーティションのいずれかのパーティションでエラーが発生した際に、前記エラーログ記憶部に未使用の領域がなく、エラーが発生したパーティションに対応するログ領域に登録されている登録数が当該ログ領域におけるログデータの上限数を超えない場合には、前記上限数を記憶する上限数記憶部に記憶される上限数以上のログデータが格納されているログ領域において最も古いログデータが格納される領域を、エラーが発生したパーティションのログ領域に割り当てて、発生したエラーのログデータを格納する第２の格納ステップと、
を含んだことを特徴とするログ制御方法。
【請求項１１】
情報処理機能を発揮する単位でハードウェアを割り当てた複数のパーティションそれぞれに対応付けたログ領域で、前記複数のパーティションそれぞれで発生したエラーのログデータを記憶するエラーログ記憶部と、
前記複数のパーティションそれぞれに対応するログ領域に格納されるログデータの上限数を記憶する上限数記憶部と、
前記複数のパーティションのいずれかのパーティションでエラーが発生した際に、前記エラーログ記憶部に未使用の領域がある場合には、エラーが発生したパーティションのログ領域に当該未使用の領域を割り当てて、発生したエラーのログデータを格納する第１の格納部と、
前記複数のパーティションのいずれかのパーティションでエラーが発生した際に、前記エラーログ記憶部に未使用の領域がなく、エラーが発生したパーティションに対応するログ領域に登録されている登録数が前記上限数を超えない場合には、前記上限数記憶部に記憶される上限数以上のログデータが格納されているログ領域において最も古いログデータが格納される領域を、エラーが発生したパーティションのログ領域に割り当てて、発生したエラーのログデータを格納する第２の格納部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム制御装置、ログ制御方法および情報処理装置に関する。
【背景技術】
【０００２】
従来、大規模サーバでは、ＯＳ（Operating  System）が動作できる単位にハードウェアを分割した複数のパーティションを装置内に生成し、複数のＯＳを同時に運用することが行われている。１つのパーティションは、ＯＳが動作できる最小限のハードウェアで構成されている場合もあり、運用シーンにあわせて複数のハードウェアで構成されている場合もある。【０００３】
そして、パーティションを構成するハードウェアでエラーが発生した場合、エラーの波及範囲はパーティション内に閉じている。つまり、パーティションＡのハードウェアで発生したエラーが、パーティションＢにまで影響を及ぼすことは少ない。そのため、サーバは、エラーログを管理するシステム制御ファームウェアを有するシステム制御部によって、パーティションごとにエラーログを管理している。【０００４】
例えば、サーバのシステム制御部は、サーバ内で定義できる最大のパーティション数分のログ領域を設け、各パーティションにログ領域を割り当てる。そして、システム制御部は、サーバ内でエラーが発生した場合、エラーが発生したパーティションに対応するログ領域にエラーログを登録する。また、システム制御部は、ログ領域が一杯になった場合に、最も古いエラーログを上書きするラップ処理でエラーログを登録する。【０００５】
上記最大のパーティション数分のログ領域を設けて、パーティションごとにエラーログを登録する手法は、仮想マシン（ＶＭ：Virtual  Machine）にも利用されている。具体的には、システム制御部は、ＶＭごとにログ領域を設け、エラーが発生したＶＭのログ領域にエラーログを登録する。【０００６】
また、エラーログを記憶する複数のログ記憶部を有し、空き領域にエラーログを記録するサーバも開示されている。例えば、当該サーバは、エラーが発生した場合に、登録対象となっているログ記憶部Ａに空き領域があるか否かを判定する。そして、サーバは、空き領域がある場合には、発生したエラーのログをログ記憶部Ａに登録する。また、サーバは、空き領域がない場合には、ログ記憶部Ａに記憶されるエラーログのうち、保存期間切れのログが存在するか否かを判定する。【０００７】
そして、サーバは、ログ記憶部Ａに空き領域がなく、かつ、保存期間切れのログが存在する場合には、保存期間切れのログを上書きして、発生したエラーのログをログ記憶部Ａに登録する。一方、サーバは、ログ記憶部Ａに空き領域がなく、かつ、保存期間切れのログが存在しない場合には、別の記憶部であるログ記憶部Ｂを生成し、発生したエラーのログを登録する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平４−２５７０３５号公報
【特許文献２】特開平１０−１１３３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来の技術では、エラー情報を記憶する領域を有効的に利用することができないという課題があった。【００１０】
具体的には、従来の技術では、５つのパーティションが構成可能なサーバにおいて、３つのパーティションでＯＳが稼動している場合であっても、５つのパーティション分のログ領域を確保する。そのため、ＯＳが稼動していない２つのパーティションのログ領域が使用されない領域となり、有限なリソースを無駄に使用することとなる。【００１１】
また、上記ログ記憶部Ａの空き領域がない場合には、古いエラーログを上書きするか他の記憶部であるログ記憶部Ｂを作成する場合であっても、ログ記憶部Ａの古いエラーログが上書きされる間は、他のログ記憶部は使用されない。すなわち、使用されないログ領域が存在し、有限なリソースを無駄に使用することとなる。【００１２】
開示の技術は、上記に鑑みてなされたものであって、エラー情報を記憶する領域を有効的に利用することが可能であるシステム制御装置、ログ制御方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本願の開示するシステム制御装置、ログ制御方法および情報処理装置は、一つの態様において、情報処理機能を発揮する単位でハードウェアを割り当てた複数のパーティションそれぞれに対応付けたログ領域で、前記複数のパーティションそれぞれで発生したエラーのログを記憶するエラーログ記憶部と、前記複数のパーティションに対応するログ領域におけるログの上限数を記憶する上限数記憶部と、前記複数のパーティションでエラーが発生した際に、前記エラー情報記憶部に未使用の領域がある場合には、エラーが発生したパーティションのログ領域に当該未使用の領域を割り当てて、発生したエラーのログを格納する第１の格納部と、前記複数のパーティションでエラーが発生した際に、前記エラー情報記憶部に未使用の領域がなく、エラーが発生したパーティションに対応するログ領域に登録されている登録数が前記上限数を超える場合には、前記上限数記憶部に記憶される上限数以上のエラーログが格納されているログ領域における最も古いエントリを、エラーが発生したパーティションのログ領域に割り当てて、発生したエラーのログを格納する第２の格納部とを有する。
【発明の効果】
【００１４】
本願の開示するシステム制御装置、ログ制御方法および情報処理装置の一つの態様によれば、エラー情報を記憶する領域を有効的に利用することが可能であるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施例１に係る情報処理装置の構成を示すブロック図である。
【図２】図２は、図１に示したシステム制御部の構成を示すブロック図である。
【図３】図３は、ログ管理情報ＤＢが記憶する情報の例を示す図である。
【図４】図４は、プール管理情報ＤＢに記憶される情報の例を示す図である。
【図５】図５は、第１エラー格納部によるエラー格納を説明する図である。
【図６】図６は、ログ登録可能数上限を超えるログ領域からエントリを割り振って平準化する例を示す図である。
【図７】図７は、新たなパーティションが生成された状態で平準化する例を示す図である。
【図８】図８は、既存パーティションが削除された状態で平準化する例を示す図である。
【図９】図９は、情報処理装置が実行するエラーログ登録処理の全体的な流れを示すフローチャートである。
【図１０】図１０は、エラーログ登録処理におけるプール使用処理の流れを示すフローチャートである。
【図１１】図１１は、エラーログ登録処理における平準化処理の流れを示すフローチャートである。
【図１２】図１２は、実施例２におけるログ管理情報ＤＢが記憶する情報の例を示す図である。
【図１３】図１３は、ＰＩＤのハードウェア構成を示す図である。
【図１４】図１４は、ＰＩＤを構成する部品数に基づいて算出したログ登録可能数上限の例を示す図である。
【図１５】図１５は、ＰＩＤのハードウェア構成およびハードウェアの点数を示す図である。
【図１６】図１６は、ＰＩＤを点数に換算した上で算出したログ登録可能数上限の例を示す図である。
【図１７】図１７は、最低ログ確保数設けた際のログ登録可能数上限を決定するフローチャートである。
【発明を実施するための形態】
【００１６】
以下に、開示するシステム制御装置、ログ制御方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例により限定されるものではない。
【実施例１】
【００１７】
図１は、実施例１に係る情報処理装置の構成を示すブロック図である。この情報処理装置１０は、アプリケーションを実行または提供するアプリケーションサーバ、Ｗｅｂサービスを提供するＷｅｂサーバ、データを記憶するデータベースサーバなどの各種サーバである。また、情報処理装置１０は、各種サーバだけでなく、パーソナルコンピュータにも適用することができる。【００１８】
［情報処理装置の構成］
図１に示すように、情報処理装置１０は、通信制御Ｉ／Ｆ部１１とＰＩＤ＃０とＰＩＤ＃１とＰＩＤ＃２とシステム制御部２０とを有する。通信制御Ｉ／Ｆ部１１は、他の装置との通信を制御する通信インタフェースである。【００１９】
ＰＩＤ＃０、ＰＩＤ＃１、ＰＩＤ＃２は、ＯＳが動作する単位、言い換えると、情報処理機能を発揮する単位でハードウェアを割り当てたパーティションである。すなわち、この情報処理装置１０は、現状で、３台のパーティションが割り当てられていることを示す。このパーティションは、管理者等によって増減される。【００２０】
ＰＩＤ＃０は、ＳＢ（システムボード）１２とＣＰＵ（Central  Processing  Unit）１２ａとメモリ１２ｂとＩＯＳＢ（入出力システムボード）１３とを有する。ＰＩＤ＃１は、ＳＢ１４とＣＰＵ１４ａとメモリ１４ｂとＩＯＳＢ１５とを有し、さらにＳＢ１６とＣＰＵ１６ａとメモリ１６ｂとＩＯＳＢ１７とを有する。ＰＩＤ＃２は、ＳＢ１８とＣＰＵ１８ａとメモリ１８ｂとＩＯＳＢ１９とを有する。なお、各ＰＩＤが有するハードウェアは、同様なので、ここではＰＩＤ＃０についてのみ説明する。【００２１】
ＳＢ１２は、電子機器を構成する電子回路基板であり、ＣＰＵ１２ａとメモリ１２ｂとを搭載する。ＣＰＵ１２ａは、数値計算、情報処理、機器制御などの各種制御を実施するプロセッサである。メモリ１２ｂは、ＣＰＵ１２ａが各種処理に用いるデータ等を記憶する記憶装置である。なお、ＳＢ１２に搭載されるＣＰＵ１２ａとメモリ１２ｂはあくまで例示であり、これらに限定されるものではない。【００２２】
ＩＯＳＢ１３は、ＳＣＳＩ（Small  Computer  System  Interface）、ＦＣ（Fibre  Channel）、イーサネット（登録商標）などを介して入出力デバイスと接続され、データ転送などの処理を制御する。【００２３】
システム制御部２０は、ＰＩＤ＃０、ＰＩＤ＃１、ＰＩＤ＃２で発生したエラーのエラーログ等を管理する制御部であり、図２を用いて具体的に説明する。【００２４】
［システム制御部の構成］
図２は、図１に示したシステム制御部の構成を示すブロック図である。図２に示すように、システム制御部２０は、記憶領域２１とエラー検出部２５と構成管理部２６と第１エラー格納部２７と第２エラー格納部２８とログ領域制御部２９と上限値算出部３０とを有する。記憶領域２１は、エラーログや管理情報等を記憶する記憶部であり、ログ領域２２とログ管理情報ＤＢ２３とプール管理情報ＤＢ２４とを有する。【００２５】
ログ領域２２は、情報処理機能を発揮する単位でハードウェアを割り当てた複数のパーティションそれぞれに対応付けたログ領域で、複数のパーティションそれぞれで発生したエラーのログを記憶する記憶部である。ログ領域２２は、情報処理装置１０が有するパーティションごとにログ領域を有し、図１の例では、ＰＩＤ＃０用ログＤＢ２２ａとＰＩＤ＃１用ログＤＢ２２ｂとＰＩＤ＃２用ログＤＢ２２ｃとプール領域２２ｄとを有する。なお、ログ領域２２が有する領域は、ログ領域制御部２９が実行するパーティションの生成や削除によって、情報処理装置１０内で動作するパーティション数の増減に応じて動的に変化する。【００２６】
ＰＩＤ＃０用ログＤＢ２２ａは、ＰＩＤ＃０内で発生したエラーのエラーログをエントリとして記憶する記憶部であり、例えば、ＳＢ１２やＩＯＳＢ１３で発生したエラーのエラーログを記憶する。ＰＩＤ＃１用ログＤＢ２２ｂは、ＰＩＤ＃１内で発生したエラーのエラーログをエントリとして記憶する記憶部であり、例えば、ＳＢ１４やＩＯＳＢ１５、ＳＢ１６やＩＯＳＢ１７で発生したエラーのエラーログを記憶する。ＰＩＤ＃２用ログＤＢ２２ｃは、ＰＩＤ＃２内で発生したエラーのエラーログをエントリとして記憶する記憶部であり、例えば、ＳＢ１８やＩＯＳＢ１９で発生したエラーのエラーログを記憶する。プール領域２２ｄは、各ＰＩＤに割り当て可能な共有ログ領域である。【００２７】
ログ管理情報ＤＢ２３は、情報処理装置１０で動作する複数のパーティションに対応するログ領域それぞれが記憶するログの上限数を記憶する。本実施例では、ログ管理情報ＤＢ２３は、情報処理装置１０で動作可能な最大のパーティション数ごとに情報を記憶する。図３は、ログ管理情報ＤＢが記憶する情報の例を示す図である。図３に示すように、ログ管理情報ＤＢ２３は、「ＰＩＤ＃０用ログＤＢ、ＰＩＤ＃１用ログＤＢ、ＰＩＤ＃２用ログＤＢ、ＰＩＤ＃３用ログＤＢ」それぞれに対応付けて、「ログ登録可能数上限、ログ登録数、最古のログ日時」を記憶する。【００２８】
「ＰＩＤ＃０用ログＤＢ」は、情報処理装置１０で動作するＰＩＤ＃０に対応するものであり、「ＰＩＤ＃１用ログＤＢ」は、情報処理装置１０で動作するＰＩＤ＃１に対応するものであり、「ＰＩＤ＃２用ログＤＢ」は、情報処理装置１０で動作するＰＩＤ＃２に対応するものである。また、「ＰＩＤ＃３用ログＤＢ」は、情報処理装置１０では現在動作していないが、動作可能なＰＩＤに対応するものである。【００２９】
「ログ登録可能数上限」は、各ＰＩＤに割り当て可能な共有ログ領域であるプール領域がなくなった後、各ＰＩＤに割り当てられるべきエラーログのエントリ数である。「ログ登録数」は、現在登録されているエントリ数である。「最古のログ日時」は、現在登録されているエントリのうち、最古のエントリの日時を示す情報である。【００３０】
すなわち、図３の場合、ＰＩＤ＃０用としてのＰＩＤ＃０用ログＤＢ２２ａには、「ログ登録可能数上限＝５」が割り当てられており、現在、「最古のログ日時＝2009/2/3」とする「４エントリ」登録されていることを示す。また、ＰＩＤ＃１用としてのＰＩＤ＃１用ログＤＢ２２ｂには、「ログ登録可能数上限＝５」が割り当てられており、現在、「最古のログ日時＝2009/8/8」とする「３エントリ」登録されていることを示す。ＰＩＤ＃２用としてのＰＩＤ＃２用ログＤＢ２２ｃには、「ログ登録可能数上限＝５」が割り当てられており、現在、「最古のログ日時＝2010/5/1」とする「２エントリ」登録されていることを示す。また、現在動作していないＰＩＤ＃３に対応する「ＰＩＤ＃３用ログＤＢ」には、いずれの情報も登録されていない。【００３１】
図２に戻り、プール管理情報ＤＢ２４は、ログ領域として未使用な領域であり、各ＰＩＤに割り当て可能な共有ログ領域としてのエントリ数を記憶する。図４は、プール管理情報ＤＢに記憶される情報の例を示す図である。図４に示すように、プール管理情報ＤＢ２４は、共有ログ領域を示す「プールログエントリ数」として「６」を記憶する。すなわち、各ＰＩＤ用のログＤＢに割り当て可能なエントリ数が「６」であることを記憶する。【００３２】
エラー検出部２５は、情報処理装置１０内の各ＰＩＤで発生したエラーを検出し、検出したエラーのエラーログの登録依頼を実施する。例えば、エラー検出部２５は、ＰＩＤ＃１のＳＢ１６でエラーが発生した場合に、当該エラーに関する情報として、どこでどのようなエラーが発生したかなどエラー内容を特定するエラーログを生成する。そして、エラー検出部２５は、生成したエラーログをＰＩＤ＃１用ログＤＢ２２ｂに登録する登録依頼を第１エラー格納部２７に出力する。【００３３】
構成管理部２６は、情報処理装置１０全体のパーティション構成を管理する。例えば、構成管理部２６は、新たなパーティションであるＰＩＤ＃３の生成指示を管理者から受信した場合には、当該指示にしたがってハードウェアを割り当ててＰＩＤ＃３を情報処理装置１０内に生成し、生成が完了したことをログ領域制御部２９に通知する。また、構成管理部２６は、既存パーティションであるＰＩＤ＃１の削除指示を管理者から受信した場合には、当該指示にしたがってハードウェアを解放してＰＩＤ＃１を削除し、削除が完了したことをログ領域制御部２９に通知する。【００３４】
第１エラー格納部２７は、複数のパーティションでエラーが発生した際に、未使用の領域がある場合には、エラーが発生したパーティションのログ領域に当該未使用の領域を割り当てて、発生したエラーのエラーログを格納する。図５は、第１エラー格納部によるエラー格納を説明する図である。例えば、図５に示すように、第１エラー格納部２７は、プール領域２２ｄに使用可能な領域が存在する状態で、ＰＩＤ＃０用ログＤＢ２２ａにエラーログを登録する場合、プール領域２２ｄからＰＩＤ＃０用ログＤＢ２２ａにエントリを割り当ててエラーログを登録する。また、第１エラー格納部２７は、プール領域２２ｄに使用可能な領域が存在する状態で、ＰＩＤ＃２用ログＤＢ２２ｃにエラーログを登録する場合、プール領域２２ｄからＰＩＤ＃２用ログＤＢ２２ｃにエントリを割り当ててエラーログを登録する。【００３５】
例えば、第１エラー格納部２７は、エラー検出部２５からＰＩＤ＃１用ログＤＢ２２ｂへのエラーログ登録依頼を受信した場合、プール管理情報ＤＢ２４を参照し、「プールログエントリ数」が「１」以上であるか否かを判定する。そして、第１エラー格納部２７は、「プールログエントリ数」が「１」以上である場合、プール領域２２ｄから１エントリを取得してＰＩＤ＃１用ログＤＢ２２ｂに割り当て、割り当てたエントリにエラーログを登録する。そして、第１エラー格納部２７は、ログ管理情報ＤＢ２３の「ＰＩＤ＃１用ログＤＢ」に対応する「ログ登録数」をインクリメントし、プール管理情報ＤＢ２４の「プールログエントリ数」をデクリメントする。なお、第１エラー格納部２７は、「プールログエントリ数」が「０」である場合には、エラー検出部２５から受信したエラーログ登録依頼を第２エラー格納部２８に転送する。【００３６】
また、第１エラー格納部２７は、プール領域２２ｄに使用可能な領域が存在する場合には、各ＰＩＤ用ログＤＢが「ログ登録可能数上限」を超えているか否かに関わらず、プール領域２２ｄのエントリを割り当ててエラーログを登録する。一例としては、第１エラー格納部２７は、ＰＩＤ＃０用ログＤＢ２２ａの「ログ登録数」が「７」であり「ログ登録可能数上限＝５」を超えているとともに、「プールログエントリ数」が「３」であったとする。このような状態において、ＰＩＤ＃０でエラーが発生した場合であっても、第１エラー格納部２７は、プール領域２２ｄに使用可能な領域が存在するので、プール領域２２ｄからＰＩＤ＃０用ログＤＢ２２ａに新たなエントリを割り当てて、エラーログを登録する。【００３７】
第２エラー格納部２８は、複数のパーティションでエラーが発生した際に、ログ領域２２に未使用の領域がない場合には、ログ管理情報ＤＢ２３を参照し、登録対象となっているログＤＢの「ログ登録数」が「ログ登録可能数上限」を超えているか否かを判定する。そして、第２エラー格納部２８は、登録対象となっているログＤＢの「ログ登録数」が「ログ登録可能数上限」を超えている場合には、登録対象となっているログＤＢのエントリのうち最古のエントリに上書きするラップ処理で、エラーログを登録する。【００３８】
また、第２エラー格納部２８は、「ログ登録可能数上限」を超えていない場合には、登録対象となっているログＤＢ以外で、ログ管理情報ＤＢ２３に記憶される上限数以上のエラーログが格納されているログＤＢを特定する。そして、第２エラー格納部２８は、特定したログＤＢにおける最も古いエントリを、エラーが発生したパーティションのログ領域に割り当てて、発生したエラーのログを格納する。つまり、第２エラー格納部２８は、プール領域２２ｄに利用可能な領域がない状態でエラーログ登録依頼を受信した場合に、プール領域２２ｄに利用可能な領域がある際に各ＰＩＤ用ログＤＢに割り振られたエントリ数を平準化する。言い換えると、第２エラー格納部２８は、ログ領域を均等化する。【００３９】
図６〜図８を用いて平準化の具体例を説明する。図６は、ログ登録可能数上限を超えるログ領域からエントリを割り振って平準化する例を示す図である。図７は、新たなパーティションが生成された状態で平準化する例を示す図であり、図８は、既存パーティションが削除された状態で平準化する例を示す図である。【００４０】
例えば、第２エラー格納部２８は、ＰＩＤ＃２用ログＤＢ２２ｃへのエラーログ登録依頼を第１エラー格納部２７から受信した場合、ログ管理情報ＤＢ２３の「ログ登録数」が「ログ登録可能数上限」を超えているＤＢを特定する。ここでは、第２エラー格納部２８は、ＰＩＤ＃０用ログＤＢ２２ａの「ログ登録数」が「ログ登録可能数上限」を超えていると特定したとする。続いて、第２エラー格納部２８は、図６に示すように、特定したＰＩＤ＃０用ログＤＢ２２ａのエントリのうち最古のエントリをＰＩＤ＃２用ログＤＢ２２ｃに割り当て、割り当てたエントリに依頼を受けたエラーログを登録する。また、第２エラー格納部２８は、ログ管理情報ＤＢ２３におけるＰＩＤ＃０用ログＤＢ２２ａの「ログ登録数」をデクリメントするとともに、「最古のログ日時」を更新する。また、第２エラー格納部２８は、ログ管理情報ＤＢ２３におけるＰＩＤ＃２用ログＤＢ２２ｃの「ログ登録数」をインクリメントする。【００４１】
次に、図６の状態から、情報処理装置１０内にＰＩＤ＃３が新たに生成され、ＰＩＤ＃３でエラーが発生した例を説明する。この例の場合、後述するログ領域制御部２９によって、ログ領域にＰＩＤ＃３用ログＤＢ２２ｅが生成され、上限値算出部３０によってログ管理情報ＤＢ２３における各ＤＢの「ログ登録可能数上限」が更新される。例えば、図７に示すように、ＰＩＤ＃３用ログＤＢ２２ｅが新たに生成されると、各ＤＢに割り当てられる「ログ登録可能数上限」が更新されて減ることとなる。【００４２】
このような状態において、新たに生成されたＰＩＤ＃３用のＰＩＤ＃３用ログＤＢ２２ｅへのエラーログ登録が発生したとする。この例の場合、図７に示すように、第２エラー格納部２８は、ログ管理情報ＤＢ２３の「ログ登録数」が「ログ登録可能数上限」を超えているＤＢとしてＰＩＤ＃０用ログＤＢ２２ａを特定する。続いて、第２エラー格納部２８は、図７に示すように、特定したＰＩＤ＃０用ログＤＢ２２ａのエントリのうち最古のエントリである「2005/05/05」のエントリをＰＩＤ＃３用ログＤＢ２２ｅに割り当て、割り当てたエントリに依頼を受けたエラーログを登録する。また、第２エラー格納部２８は、ログ管理情報ＤＢ２３におけるＰＩＤ＃０用ログＤＢ２２ａの「ログ登録数」をデクリメントするとともに、「最古のログ日時」を更新する。また、第２エラー格納部２８は、ログ管理情報ＤＢ２３におけるＰＩＤ＃３用ログＤＢ２２ｅの「ログ登録数」をインクリメントする。【００４３】
次に、図７の状態から、情報処理装置１０内にＰＩＤ＃１が削除され、ＰＩＤ＃１が使用していたエントリが解放された例を説明する。この例の場合、後述するログ領域制御部２９によって、ログ領域にＰＩＤ＃１用ログＤＢ２２ｂが削除され、上限値算出部３０によってログ管理情報ＤＢ２３における各ＤＢの「ログ登録可能数上限」が更新される。例えば、図８に示すように、ＰＩＤ＃１用ログＤＢ２２ｂが削除されると、各ＤＢに割り当てられる「ログ登録可能数上限」が更新されて増えることとなる。【００４４】
このような状態において、ＰＩＤ＃３用のＰＩＤ＃３用ログＤＢ２２ｅへのエラーログ登録が発生したとする。この例の場合、図８に示すように、第２エラー格納部２８は、ログ管理情報ＤＢ２３の「ログ登録数」が「ログ登録可能数上限」を超えているＤＢとしてＰＩＤ＃０用ログＤＢ２２ａを特定する。続いて、図８に示すように、第２エラー格納部２８は、ログ管理情報ＤＢ２３を参照し、特定したＰＩＤ＃０用ログＤＢ２２ａの最古のエントリ「2005/05/07」と、削除されたＰＩＤ＃１用ログＤＢ２２ｂの最古のエントリ「2005/05/11」のいずれが古いかを判定する。ここでは、第２エラー格納部２８は、ＰＩＤ＃０用ログＤＢ２２ａの最古のエントリの方が古いので、ＰＩＤ＃０用ログＤＢ２２ａの最古エントリ「2005/05/07」をＰＩＤ＃３用ログＤＢ２２ｅに割り当て、割り当てたエントリに依頼を受けたエラーログを登録する。また、第２エラー格納部２８は、ログ管理情報ＤＢ２３におけるＰＩＤ＃０用ログＤＢ２２ａの「ログ登録数」をデクリメントするとともに、「最古のログ日時」を更新する。また、第２エラー格納部２８は、ログ管理情報ＤＢ２３におけるＰＩＤ＃３用ログＤＢ２２ｅの「ログ登録数」をインクリメントする。【００４５】
さらに続いて、ＰＩＤ＃３用のＰＩＤ＃３用ログＤＢ２２ｅへのエラーログ登録が発生した場合を図８の例を用いて説明する。第２エラー格納部２８は、ログ管理情報ＤＢ２３の「ログ登録数」が「ログ登録可能数上限」を超えているＤＢが存在するか否かを判定する。そして、第２エラー格納部２８は、ＰＩＤ＃０用ログＤＢ２２ａの「ログ登録数」が「ログ登録可能数上限」を超えている場合には、上記例と同様、最古のエントリに比較を行う。すなわち、第２エラー格納部２８は、特定したＰＩＤ＃０用ログＤＢ２２ａの最古のエントリ「2005/05/12」と、削除されたＰＩＤ＃１用ログＤＢ２２ｂの最古のエントリ「2005/05/11」とのいずれが古いかを判定する。ここでは、第２エラー格納部２８は、ＰＩＤ＃１用ログＤＢ２２ｂの最古のエントリの方が古いので、ＰＩＤ＃１用ログＤＢ２２ｂのエントリ「2005/05/11」をＰＩＤ＃３用ログＤＢ２２ｅに割り当て、割り当てたエントリに依頼を受けたエラーログを登録する。【００４６】
また、第２エラー格納部２８は、上述した場合と同様、ログ管理情報ＤＢ２３における各情報を更新する。具体的には、第２エラー格納部２８は、ＰＩＤ＃１用ログＤＢ２２ｂの「ログ登録数」をデクリメントするとともに「最古のログ日時」を更新する。また、第２エラー格納部２８は、ログ管理情報ＤＢ２３におけるＰＩＤ＃３用ログＤＢ２２ｅの「ログ登録数」をインクリメントする。【００４７】
一方、第２エラー格納部２８は、ログ管理情報ＤＢ２３の「ログ登録数」が「ログ登録可能数上限」を超えているＤＢが存在しないと判定した場合には、削除されたＰＩＤ＃１用ログＤＢ２２ｂの最古のエントリ「2005/05/11」をＰＩＤ＃３用ログＤＢ２２ｅに割り当てる。そして、第２エラー格納部２８は、割り当てたエントリに依頼を受けたエラーログを登録する。【００４８】
図２に戻り、ログ領域制御部２９は、ログ領域２２にＰＩＤ用のログＤＢを生成し、また削除されたＰＩＤのログＤＢを削除する。例えば、ログ領域制御部２９は、情報処理装置１０内にＰＩＤ＃３が新たに生成されたことを構成管理部２６から通知されると、当該ＰＩＤ＃３用のログＤＢであるＰＩＤ＃３用ログＤＢ２２ｅをログ領域２２に生成し、生成したことを上限値算出部３０に通知する。また、ログ領域制御部２９は、情報処理装置１０内で動作するＰＩＤ＃１が削除されたことを構成管理部２６から通知されると、当該ＰＩＤ＃１用のログＤＢであるＰＩＤ＃１用ログＤＢ２２ａをログ領域２２から削除し、削除したことを上限値算出部３０に通知する。【００４９】
上限値算出部３０は、ログ管理情報ＤＢ２３に記憶されるログＤＢごとに、「ログ登録可能数上限」を算出して格納する。具体的には、上限値算出部３０は、ＰＩＤが新たに生成された場合やＰＩＤが削除された場合に、式（１）を用いて「ログ登録可能数上限」を算出してログ管理情報ＤＢ２３に格納する。例えば、情報処理装置内に３つの有効なＰＩＤが存在し、ログ領域全体で３０エントリが登録可能だったとする。この例の場合、上限値算出部３０は、「ログ領域全体のエントリ数（３０）／有効なパーティション数（３）」＝「ログ登録可能数上限（１０）」を算出する。そして、上限値算出部３０は、３つのＰＩＤそれぞれの「ログ登録可能数上限」を「１０」としてログ管理情報ＤＢ２３に格納する。【００５０】
【数１】
0005585655.tif 000002
【００５１】
例えば、上限値算出部３０は、ログ領域制御部２９からＰＩＤ＃３が新たに生成されたことが通知された場合に、式（１）を用いて、現在動作するＰＩＤそれぞれの「ログ登録可能数上限」を算出する。また、上限値算出部３０は、ログ領域制御部２９からＰＩＤ＃１が削除されたことが通知された場合に、式（１）を用いて、現在動作するＰＩＤそれぞれの「ログ登録可能数上限」を算出する。【００５２】
［処理の流れ］
次に、図９〜図１１を用いて、情報処理装置１０が実行するエラーログ登録処理の流れを説明する。図９は、情報処理装置が実行するエラーログ登録処理の全体的な流れを示すフローチャートである。図１０は、エラーログ登録処理におけるプール使用処理の流れを示すフローチャートである。図１１は、エラーログ登録処理における平準化処理の流れを示すフローチャートである。【００５３】
（エラーログ登録処理の全体的な流れ）
図９に示すように、情報処理装置１０のエラー検出部２５がエラーを検出すると（ステップＳ１０１ＹＥＳ）、第１エラー格納部２７は、プール領域２２ｄに空きエントリがあるか否かを判定する（ステップＳ１０２）。【００５４】
続いて、第１エラー格納部２７は、プール領域２２ｄに空きエントリがある場合には（ステップＳ１０２ＹＥＳ）、プール使用処理を実行する（ステップＳ１０３）。一方、第１エラー格納部２７によってプール領域２２ｄに空きエントリがないと判定された場合（ステップＳ１０２Ｎｏ）、第２エラー格納部２８は、エラーログ登録対象のログＤＢのログ登録数がログ登録可能数上限以上か否かを判定する（ステップＳ１０４）。【００５５】
そして、第２エラー格納部２８は、エラーログ登録対象のログＤＢのログ登録数がログ登録可能数上限以上である場合には（ステップＳ１０４Ｙｅｓ）、ラップ処理で新たなエラーログを登録する（ステップＳ１０５）。一方、第２エラー格納部２８は、エラーログ登録対象のログＤＢのログ登録数がログ登録可能数上限未満である場合には（ステップＳ１０４Ｎｏ）、平準化処理を実行する（ステップＳ１０６）。【００５６】
（プール使用処理の流れ）
次に、図９のステップＳ１０３で実行するプール使用処理を説明する。図１０に示すように、第１エラー格納部２７は、プール情報管理ＤＢ２４からエントリ数を減算する（ステップＳ２０１）。続いて、第１エラー格納部２７は、ログ登録対象のログＤＢにプール領域２２ｄからエントリを割り当てる（ステップＳ２０２）。【００５７】
そして、第１エラー格納部２７は、ログ管理情報ＤＢ２３において、ログ登録対象のログＤＢの「ログ登録数」を１増やす（ステップＳ２０３）。その後、第１エラー格納部２７は、プール領域２２ｄから割り当てたエントリに新たなエラーログを登録する（ステップＳ２０４）。【００５８】
続いて、第１エラー格納部２７は、ログ管理情報ＤＢ２３を参照し、新たなエラーログを登録したログＤＢの「ログ登録数」が「１」であるか否かを判定する（ステップＳ２０５）。そして、第１エラー格納部２７は、「ログ登録数」が「１」である場合（ステップＳ２０５Ｙｅｓ）、ログ管理情報ＤＢ２３の「最古のログ日時」に上記登録したエラーログの日時を登録する（ステップＳ２０６）。一方、第１エラー格納部２７は、「ログ登録数」が「１」でない場合（ステップＳ２０５Ｎｏ）、処理を終了する。【００５９】
（平準化処理の流れ）
次に、図９のステップＳ１０６で実行する平準化処理を説明する。図１１に示すように、第２エラー格納部２８は、ログ管理情報ＤＢ２３を参照し、ステップＳ３０１を実行する。すなわち、第２エラー格納部２８は、ログ登録対象でないログＤＢのうち、「最古のログ日時」が最も古いログＤＢを検索する。【００６０】
続いて、第２エラー格納部２８は、検索したログＤＢの「ログ登録数」が「ログ登録可能数上限」を超えているか否かを判定する（ステップＳ３０２）。そして、第２エラー格納部２８は、検索したログＤＢの「ログ登録数」が「ログ登録可能数上限」を超えている場合（ステップＳ３０２Ｙｅｓ）、当該ログＤＢをエントリ削除対象に決定する（ステップＳ３０３）。【００６１】
続いて、第２エラー格納部２８は、エントリ削除対象に決定したログＤＢにおいて最も古いエントリを新たにエラーログ登録するログＤＢに割り当てる（ステップＳ３０４）。そして、第２エラー格納部２８は、ログ管理情報ＤＢ２３において、エントリ削除対象に決定したログＤＢにおける「最古のログ日時」を次に古い日時に更新する（ステップＳ３０５）。【００６２】
さらに、第２エラー格納部２８は、ログ管理情報ＤＢ２３において、エントリ削除対象に決定したログＤＢの「ログ登録数」を割り当てたエントリ数分減算する（ステップＳ３０６）。【００６３】
その後、第２エラー格納部２８は、ログ管理情報ＤＢ２３において、登録対象のログＤＢの「ログ登録数」を割り当てたエントリ数分加算する（ステップＳ３０７）。そして、第２エラー格納部２８は、登録対象のログＤＢに割り当てたエントリに、新たなエラーのエラーログを登録する（ステップＳ３０８）。【００６４】
続いて、第２エラー格納部２８は、ログ管理情報ＤＢ２３を参照し、登録対象のログＤＢの「ログ登録数」が「１」であるか否かを判定する（ステップＳ３１０）。そして、第２エラー格納部２８は、「ログ登録数」が「１」である場合（ステップＳ３１０Ｙｅｓ）、ログ管理情報ＤＢ２３の「最古のログ日時」に上記登録したエラーログの日時を登録する（ステップＳ３１１）。一方、第２エラー格納部２８は、「ログ登録数」が「１」でない場合（ステップＳ３１０Ｎｏ）、処理を終了する。【００６５】
一方、ステップＳ３０２において、第２エラー格納部２８は、検索したログＤＢの「ログ登録数」が「ログ登録可能数上限」を超えていない場合（ステップＳ３０２Ｎｏ）、ステップＳ３０９を実行した後、ステップＳ３０２以降を実行する。すなわち、第２エラー格納部２８は、ログ登録対象でないログＤＢのうち、「最古のログ日時」が次に古いＤＢを検索して、ステップＳ３０２以降を実行する。【００６６】
［実施例１による効果］
実施例１によれば、ハードウェアを分割した構成ごとにログ領域を設け、構成の数に応じて１構成あたりのログの領域サイズが動的に変更できる。また、ＰＩＤの構成が変更され、１構成あたりのログの領域サイズが増減した場合、ログが登録されるタイミングで登録済みのログを操作し、徐々に構成間で平準化できる。したがって、必要な箇所に必要な領域を割り当ててエラーログを登録することができ、ＰＩＤ各々エラーログが登録できるように平準化できるので、エラー情報を記憶する領域を有効的に利用することが可能である。【００６７】
また、実施例１によれば、リソースが限られたファームウェアにおいて、ログ格納領域を無駄なく効率的に使えるようになる。動的なパーティションの構成変更に追従し、ログ領域を割り当てることができる。また、削除後のパーティションのログは即消失せず、他パーティションのログ登録時に徐々に削除されるため、削除されるまでは参照できる。
【実施例２】
【００６８】
ところで、実施例１ではＰＩＤごとにログ領域を設ける場合について説明したが、これに限定されるものではない。例えば、「ＰＩＤ内に閉じるエラー」と「情報処理装置全体に影響があるエラー」のそれぞれについて、ログＤＢを設けてエラーログを登録することができる。つまり、情報処理装置１０は、ログ領域２２に、各ＰＩＤ用のログＤＢと装置全体用のログＤＢとを設けて、エラーログを管理することができる。図１２は、実施例２におけるログ管理情報ＤＢが記憶する情報の例を示す図である。【００６９】
例えば、ログ管理情報ＤＢ２３は、図１２の（ａ）に示すように、「装置用ログＤＢ、ＰＩＤ＃０用ログＤＢ、ＰＩＤ＃１用ログＤＢ、ＰＩＤ＃２用ログＤＢ、ＰＩＤ＃３用ログＤＢ」各々に対応付けて「ログ登録可能数上限、ログ登録数、最古のログ日時」を記憶する。図１２の（ａ）の例では、ＰＩＤ＃１とＰＩＤ＃２が動作しており、「装置用ログＤＢ、ＰＩＤ＃０用ログＤＢ、ＰＩＤ＃１用ログＤＢ、ＰＩＤ＃２用ログＤＢ」各々には、「ログ登録可能数上限＝５」が割り当てられている。また、「装置用ログＤＢ」には、現在２エントリ登録されており、最古ログは「2009/7/8」である。「ＰＩＤ＃０用ログＤＢ」には、現在４エントリ登録されており、最古ログは「2009/2/3」である。「ＰＩＤ＃１用ログＤＢ」には、現在３エントリ登録されており、最古ログは「2009/8/8」である。【００７０】
このような状態において、ＰＩＤ＃２が新たに生成されると、上限値算出部３０は、式（２）に示した計算式を用いて、ログ管理情報ＤＢ２３に記憶されるＤＢごとに、「ログ登録可能数上限」を算出して格納する。【００７１】
【数２】
0005585655.tif 000003
【００７２】
具体的には、上限値算出部３０は、余りは切り捨てることとして、「ログ領域全体のエントリ数（１５）／（有効なパーティション数（３）＋装置用ログ（１））」＝「ログ登録可能数上限（３）」を算出する。そして、上限値算出部３０は、図１２の（ｂ）に示すように、３つのＰＩＤおよび装置用ログＤＢそれぞれの「ログ登録可能数上限」を「３」としてログ管理情報ＤＢ２３に格納する。
【実施例３】
【００７３】
ところで、開示する情報処理装置は、ＰＩＤを構成するハードウェアの数（部品数）によって「ログ登録可能数上限」を算出することもできる。具体的には、各ＰＩＤのハードウェア数を式（３）に代入することで、ＰＩＤごとに「ログ登録可能数上限」を算出することができる。【００７４】
【数３】
0005585655.tif 000004
【００７５】
例えば、各ＰＩＤが図１３に示したハードウェア構成である場合に、ＰＩＤごとに「ログ登録可能数上限」を算出する例で説明する。図１３は、ＰＩＤのハードウェア構成を示す図である。図１３に示すように、装置影響があるハードウェアは存在しておらず、ＰＩＤ＃０は、ＳＢが１つ、ＩＯＳＢが１つ、ＣＰＵが２つ、メモリが２つで構成されている。また、ＰＩＤ＃１は、ＳＢが２つ、ＩＯＳＢが２つ、ＣＰＵが２つ、メモリが３つで構成されている。ＰＩＤ＃２は、ＳＢが１つ、ＩＯＳＢが１つ、ＣＰＵが２つ、メモリが１つで構成されている。ＰＩＤ＃３は、ＳＢが０、ＩＯＳＢが０、ＣＰＵが０、メモリが０、すなわち未構成である。また、ログ領域最大では１５エントリが登録可能である。【００７６】
このような状態において、上限値算出部３０は、装置用ログＤＢについては「ログ登録可能数上限＝０」と算出する。また、上限値算出部３０は、ＰＩＤ＃０用ログＤＢ２２ａについては、式（３）を用いて「ログ登録可能数上限＝ログ領域全体のエントリ数（１５）×ＰＩＤ＃０の部品数（６）／全ＰＩＤの部品数（２０）＝４．５０」と算出する。【００７７】
また、上限値算出部３０は、ＰＩＤ＃１用ログＤＢ２２ｂについては、式（３）を用いて、「ログ登録可能数上限＝ログ領域全体のエントリ数（１５）×ＰＩＤ＃１の部品数（９）／全ＰＩＤの部品数（２０）＝６．７５」と算出する。また、上限値算出部３０は、ＰＩＤ＃２用ログＤＢ２２ｃについては、式（３）を用いて、「ログ登録可能数上限＝ログ領域全体のエントリ数（１５）×ＰＩＤ＃２の部品数（５）／全ＰＩＤの部品数（２０）＝３．７５」と算出する。【００７８】
したがって、上限値算出部３０は、図１４に示すように、ＰＩＤ＃０用ログＤＢ２２ａについては「ログ登録可能数上限＝４」、ＰＩＤ＃１用ログＤＢ２２ｂについては「ログ登録可能数上限＝６」をログ管理情報ＤＢ２３に格納する。さらに、上限値算出部３０は、図１４に示すように、ＰＩＤ＃２用ログＤＢ２２ｃについては「ログ登録可能数上限＝３」をログ管理情報ＤＢ２３に格納する。図１４は、ＰＩＤを構成する部品数に基づいて算出したログ登録可能数上限の例を示す図である。
【実施例４】
【００７９】
ところで、開示する情報処理装置は、ＰＩＤを構成するハードウェア（部品）の種別等によって予め決められた点数に基づいて「ログ登録可能数上限」を算出することもできる。具体的には、各ＰＩＤを構成するハードウェアからＰＩＤの総点数を算出して式（４）に代入することで、ＰＩＤごとに「ログ登録可能数上限」を算出することができる。【００８０】
【数４】
0005585655.tif 000005
【００８１】
例えば、各ＰＩＤが図１５に示したハードウェア構成であり、各ハードウェアに点数が決められている場合に、ＰＩＤごとに「ログ登録可能数上限」を算出する例で説明する。図１５は、ＰＩＤのハードウェア構成およびハードウェアの点数を示す図である。図１５に示すように、ＳＢには３点、ＩＯＳＢには２点、ＣＰＵには５点、メモリには１点が設定されている。この点数は、管理者等によって任意に設定変更することができる。【００８２】
そして、装置影響があるハードウェアは存在しておらず合計０点であり、ＰＩＤ＃０は、ＳＢが１つ、ＩＯＳＢが１つ、ＣＰＵが２つ、メモリが２つで構成されている。すなわち、ＰＩＤ＃０は、ＳＢが計３点、ＩＯＳＢが計２点、ＣＰＵが計１０点、メモリが計２点の合計１７点である。また、ＰＩＤ＃１は、ＳＢが２つ、ＩＯＳＢが２つ、ＣＰＵが２つ、メモリが３つで構成されている。すなわち、ＰＩＤ＃１は、ＳＢが計６点、ＩＯＳＢが計４点、ＣＰＵが計１０点、メモリが計３点の合計２３点である。また、ＰＩＤ＃２は、ＳＢが１つ、ＩＯＳＢが１つ、ＣＰＵが２つ、メモリが１つで構成されている。すなわち、ＰＩＤ＃２は、ＳＢが計３点、ＩＯＳＢが計２点、ＣＰＵが計１０点、メモリが計１点の合計１６点である。ＰＩＤ＃３は、ＳＢが０、ＩＯＳＢが０、ＣＰＵが０、メモリが０、すなわち未構成である。また、ログ領域最大では１５エントリが登録可能である。【００８３】
このような状態において、上限値算出部３０は、装置用ログＤＢについては「ログ登録可能数上限＝０」と算出する。また、上限値算出部３０は、ＰＩＤ＃０用ログＤＢ２２ａについては、式（４）を用いて「ログ登録可能数上限＝ログ領域全体のエントリ数（１５）×ＰＩＤ＃０の点数（１７）／全ＰＩＤの総点数（５６）＝４．５５」と算出する。【００８４】
また、上限値算出部３０は、ＰＩＤ＃１用ログＤＢ２２ｂについては、式（４）を用いて「ログ登録可能数上限＝ログ領域全体のエントリ数（１５）×ＰＩＤ＃１の点数（２３）／全ＰＩＤの総点数（５６）＝６．１６」と算出する。また、上限値算出部３０は、ＰＩＤ＃２用ログＤＢ２２ｃについては、式（４）を用いて「ログ登録可能数上限＝ログ領域全体のエントリ数（１５）×ＰＩＤ＃２の点数（１６）／全ＰＩＤの総点数（５６）＝４．２９」と算出する。【００８５】
したがって、上限値算出部３０は、図１６に示すように、ＰＩＤ＃０用ログＤＢ２２ａについては「ログ登録可能数上限＝４」、ＰＩＤ＃１用ログＤＢ２２ｂについては「ログ登録可能数上限＝６」をログ管理情報ＤＢ２３に格納する。さらに、上限値算出部３０は、図１６に示すように、ＰＩＤ＃２用ログＤＢ２２ｃについては「ログ登録可能数上限＝４」をログ管理情報ＤＢ２３に格納する。図１６は、ＰＩＤを点数に換算した上で算出したログ登録可能数上限の例を示す図である。
【実施例５】
【００８６】
ところで、構成変更により削除したＰＩＤのログ領域は、他ＰＩＤのログ登録時に徐々に移動してしまうため、構成変更後に削除したＰＩＤのログを調査したい場合にすでに消失している可能性がある。そこで、削除ＰＩＤのログ領域に関して最低限のログを確保する数である「最低ログ確保数」を設けることもできる。なお、「最低ログ確保数」は管理者が任意に変更できる。【００８７】
図１７は、最低ログ確保数設けた際のログ登録可能数上限を決定するフローチャートである。図１７に示すように、上限値算出部３０は、まず「ログ領域全体で使用可能なエントリ数」を「α」とする（ステップＳ４０１）。続いて、上限値算出部３０は、ログ領域２２や情報処理装置１０内を参照して、未定義パーティションが存在するか否かを判定する（ステップＳ４０２）。すなわち、上限値算出部３０は、削除されたＰＩＤが存在するか否かを判定する。【００８８】
そして、上限値算出部３０は、未定義パーティションが存在する場合（ステップＳ４０２Ｙｅｓ）、ログ管理情報ＤＢ２３を参照して、未定義パーティションのログＤＢの情報をチェックする（ステップＳ４０３）。続いて、上限値算出部３０は、ログ管理情報ＤＢ２３の「ログ登録数」が予め設定された「最低ログ確保数」よりも小さいか否かを判定する（ステップＳ４０４）。なお、上限値算出部３０は、未定義パーティションが存在しない場合（ステップＳ４０２Ｎｏ）、ステップＳ４０８を実行する。【００８９】
そして、上限値算出部３０は、未定義パーティションの「ログ登録数」が「最低ログ確保数」よりも大きい場合（ステップＳ４０４Ｎｏ）、未定義パーティションに設定された「最低ログ確保数」を「ログ登録可能数上限」とする（ステップＳ４０５）。続いて、上限値算出部３０は、「α−ログ登録可能数上限」を新たな「α」として算出する（ステップＳ４０６）。【００９０】
一方、上限値算出部３０は、未定義パーティションの「ログ登録数」が「最低ログ確保数」よりも小さい場合（ステップＳ４０４Ｙｅｓ）、未定義パーティションに現在登録されている「ログ登録数」を「ログ登録可能数上限」とする（ステップＳ４０７）。その後、上限値算出部３０は、ステップＳ４０６を実行する。なお、上限値算出部３０は、ステップＳ４０３〜ステップＳ４０６の処理を未定義パーティションの数だけ実行する。【００９１】
その後、上限値算出部３０は、「１構成あたりのログ登録可能数上限」＝「α／構成の数」として算出する（ステップＳ４０８）。すなわち、上限値算出部３０は、ステップＳ４０８で、現在利用可能なエントリ数（α）と現在動作しているＰＩＤ数とから「１ＰＩＤあたりのログ登録可能数上限」を算出する。【００９２】
続いて、上限値算出部３０は、算出した「１構成あたりのログ登録可能数上限」を各ＰＩＤの「ログ登録可能数上限」として、ログ管理情報ＤＢ２３に新たに格納する（ステップＳ４０９）。【００９３】
そして、上限値算出部３０は、ログ管理情報ＤＢ２３を参照し、エラーログが登録されていない、言い換えると、全ログＤＢの「ログ登録数」が「０」であるか否かを判定する（ステップＳ４１０）。つまり、上限値算出部３０は、ログ管理情報ＤＢ２３を参照し、「ログ登録数」が「１以上」であるログＤＢが存在するか否かを判定する。【００９４】
続いて、上限値算出部３０は、全ログＤＢについてエラーログが登録されていない場合（ステップＳ４１０Ｙｅｓ）、「ログ領域全体のエントリ数」を「プールログエントリ数」として決定する（ステップＳ４１１）。つまり、上限値算出部３０は、ステップＳ４０６で算出した「α」分のエントリが未使用状態であると判定し、「プールログエントリ数」を「α」と決定する。【００９５】
一方、上限値算出部３０は、いずれかのログＤＢについてエラーログが登録されている場合（ステップＳ４１０Ｎｏ）、ステップＳ４１２を実行する。すなわち、上限値算出部３０は、「ログ領域全体のエントリ数」から既に登録されているログ数を示す「各構成のログ登録数の合計」を減算した値を「プールログエントリ数」として決定する。つまり、上限値算出部３０は、既に登録されているログの合計数が３である場合には、ステップＳ４０６で算出した「α」から３を減算したエントリ数が未使用状態であると判定し、「α−３」を「プールのエントリ数」と決定する。【００９６】
その後、上限値算出部３０は、ステップＳ４１１またはステップＳ４１２で決定した「プールログエントリ数」をプール管理情報ＤＢ２４に格納する（ステップＳ４１３）。【００９７】
実施例５によれば、削除されたパーティション用のログＤＢに設定された「最低ログ確保数」が「ログ登録数」よりも小さい場合には、削除されたパーティション用のログＤＢの「ログ登録可能数上限」を「最低ログ確保数」とする。例えば、削除されたパーティション用の「最低ログ確保数」が「３」で、「ログ登録数」が「５」であった場合には、「３」を新たな「ログ登録可能数上限」と決定する。【００９８】
また、削除されたパーティション用のログＤＢに設定された「最低ログ確保数」が「ログ登録数」よりも大きい場合には、削除されたパーティション用のログＤＢに現に登録される「ログ登録数」を「ログ登録可能数上限」とする。例えば、削除されたパーティション用の「最低ログ確保数」が「３」で、「ログ登録可能数上限」が「２」であり、既にエラーログが「１」登録されている場合、「１」を新たな「ログ登録可能数上限」と決定する。【００９９】
以上より、削除後のパーティションのログも最低数は解放することなく、ログとして保存しておくことができるので、構成変更後に削除したＰＩＤのログを調査したい場合にすでに消失していることを防止できる。また、削除後のパーティションにおいても、重要なログを任意の期間保存することができる。
【実施例６】
【０１００】
さて、これまで開示する情報処理装置の実施例について説明したが、本願は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。【０１０１】
（ログ登録可能数上限算出例）
例えば、情報処理装置１０は、部品数や点数で「ログ登録可能数上限」を算出した場合、状況により１未満となることを防止するために、「最低限のログ登録可能数」を予め定めた上で、部品数や点数を用いて「ログ登録可能数上限」を算出することもできる。例えば、「最低限のログ登録可能数」を「１」とした上で、図１５に示したＰＩＤ＃０の「ログ登録可能数上限」の算出例を説明する。情報処理装置１０は、「最低限のログ登録可能数」に「１」、「ログ領域全体のエントリ数」に「１５」、有効なパーティション数に「３」、対象パーティションの点数に「１７」、全パーティションの合計点数に「５６」を式（５）に代入する。【０１０２】
【数５】
0005585655.tif 000006
【０１０３】
具体的には、情報処理装置１０は、「ログ登録可能数上限＝１＋（１５−１×３）×１７／５６＝３．９４・・・」と算出する。したがって、情報処理装置１０は、ＰＩＤ＃０の「ログ登録可能数上限」を「３」と算出することができる。なお、式（５）は、点数ではなく、部品数でもよい。【０１０４】
また、別の手法としては、ログを管理する構成ごとにログの発生頻度の統計を取り、「ログ登録可能数上限」決定時にログの発生頻度が高い構成に対して、上限値を多く割り当てることも可能である。さらに、重要度別の発生頻度の統計を取り、「ログ登録可能数上限」に反映させることで、重要なログが発生しやすい構成のログを多くとることができる。「ログ登録可能数上限」の変更タイミングは定期的に自動で実施しても、構成変更のタイミングで実施してもよい。【０１０５】
また、実施例１〜５では、ＰＩＤごとにログ領域を設ける例について説明したが、これに限定されるものではなく、例えば、リソースが十二分にある場合、部品（ハードウェア）単位にログ領域を管理するようにしてもよい。この場合、上述したＰＩＤごとに実施する各処理を、部品単位に置き換えて各処理を実行するようにすればよい。【０１０６】
（ログの有効期間）
実施例５で削除したパーティションの未定義状態が続くと、そのパーティションのログ領域が使用中のままとなってしまい、リソースが有効に活用できない場合もある。そこで、未定義パーティションのログに対して有効期間を設け、有効期間を経過したログを格納しているログエントリを「プール」に割り当てることもできる。割り当てる際は、「ログ登録可能数上限」と「ログ登録数」から「プール領域」に割り当てたエントリの数を引く。また、「プールログエントリ数」にプールに割り当てた「エントリ」の数を加える。【０１０７】
また、有効期間をチェックするタイミングは、定期的に実施しても、ログが登録されるタイミングで実施してもよい。エラーログが登録されるタイミングで実施する場合は、有効期間が過ぎたログを格納している「エントリ」をそのままでエラーログを登録する構成に割り当ててもよい。期限切れのエラーログの「エントリ」がプールになると、装置全体としての「ログ登録可能数上限」の合計数が減るため、全パーティションの「ログ登録可能数上限」の更新を実施してもよい。また、存在するパーティションのエラーログについても、同様の処理を行うことで年月が経過したログの削除ができる。【０１０８】
（ログの取り扱い）
例えば、故障部品を交換した際には、部品が交換されたら、交換タイミングで交換した部品のエラーログを削除するようにしてもよい。また、故障部品を交換した際には、交換前の部品のログに有効期間を持たせ、部品交換後に有効期間を経過したらログを削除するようにしてもよい。【０１０９】
（平準化手法）
他のパーティションからログ領域を移動する方法として、ログの内容に重要度を持たせ、重要度とログ発生日時からの経過時間で得点をつけ、得点を元に移動させていくことも可能である。重要度が高く、エラーログ発生日時からの経過時間が短いエラーログの得点が最も高いものとし、重要度が低く、エラーログ発生からの経過時間が長いエラーログは得点が低くなるものとする。他構成のログ領域から領域を移動する際は、得点が低いエラーログが登録されている領域を優先して移動することで、直近の重要なログの消失を防止することができる。【０１１０】
（システム）
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。例えば、各装置の分散・統合の具体的形態は図示のものに限られない。その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵなどのプロセッサおよび当該プロセッサにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【符号の説明】
【０１１１】
１０  情報処理装置
１１  通信制御Ｉ／Ｆ部
１２、１４、１６、１８  ＳＢ
１２ａ、１４ａ、１６ａ、１８ａ  ＣＰＵ
１２ｂ、１４ｂ、１６ｂ、１８ｂ  メモリ
１３、１５、１７、１９  ＩＯＳＢ
２０  システム制御部
２１  記憶領域
２２  ログ領域
２２ａ  ＰＩＤ＃０用ログＤＢ
２２ｂ  ＰＩＤ＃１用ログＤＢ
２２ｃ  ＰＩＤ＃２用ログＤＢ
２２ｄ  プール領域
２２ｅ  ＰＩＤ＃３用ログＤＢ
２３  ログ管理情報ＤＢ
２４  プール管理情報ＤＢ
２５  エラー検出部
２６  構成管理部
２７  第１エラー格納部
２８  第２エラー格納部
２９  ログ領域制御部
３０  上限値算出部
【図１】
0005585655.tif 000007
【図２】
0005585655.tif 000008
【図３】
0005585655.tif 000009
【図４】
0005585655.tif 000010
【図５】
0005585655.tif 000011
【図６】
0005585655.tif 000012
【図７】
0005585655.tif 000013
【図８】
0005585655.tif 000014
【図９】
0005585655.tif 000015
【図１０】
0005585655.tif 000016
【図１１】
0005585655.tif 000017
【図１２】
0005585655.tif 000018
【図１３】
0005585655.tif 000019
【図１４】
0005585655.tif 000020
【図１５】
0005585655.tif 000021
【図１６】
0005585655.tif 000022
【図１７】
0005585655.tif 000023