(57)【特許請求の範囲】
【請求項１】
自装置で発生するエラーの種別と、自装置の状態に応じて変更可能な処理設定を示す第１の情報及び前記エラーの種別毎に予め定められた処理設定を示す第２の情報とを対応付けたテーブルを記憶するエラー処理情報テーブル記憶部と、
前記第２の情報の変更があった場合、前記エラー処理情報テーブル記憶部に記憶されている第２の情報に変更情報を付加する変更情報管理部と、
自装置で発生したエラーの種別を判別する判別部と、
前記判別部によって判別されたエラーの種別と対応付けて記憶されている第１の情報を前記エラー処理情報テーブル記憶部から取得する取得部と、
前記判別部によって判別されたエラーの種別と対応付けて記憶されている第２の情報における変更情報の有無を判定し、第２の情報に変更情報が有ると判定された場合、第２の情報が変更されたことを示すように前記取得部によって取得された第１の情報を変換する情報変換部と、
前記情報変換部により第２の情報に変更情報が無いと判定された場合、前記取得部によって取得された第１の情報を自装置を制御する制御装置へ送信し、前記情報変換部により第２の情報に変更情報が有ると判定された場合、前記情報変換部により変換された第１の情報を前記制御装置へ送信する送信部と、
前記制御装置から前記第２の情報の送信要求を受けて、該送信要求に対応する第２の情報の内容を該制御装置へ送信する情報送信部と
を備えたことを特徴とする記憶装置。
【請求項２】
前記情報変換部は、前記第１の情報を可逆的に変換することを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記情報変換部は、前記第１の情報に含まれる所定の情報の値の符号を反転させ、符号が反転していることにより第２の情報が変更されたことを示すことを特徴とする請求項１又は請求項２に記載の記憶装置。
【請求項４】
情報を記憶する記憶装置と該記憶装置を制御する制御装置とを有するストレージシステムにおいて、
前記記憶装置は、
自装置で発生するエラーの種別と、自装置の状態に応じて変更可能な処理設定を示す第１の情報及び前記エラーの種別ごとに予め定められた処理設定を示す第２の情報とを対応付けたテーブルを記憶するエラー処理情報テーブル記憶部と、
前記第２の情報の変更があった場合、前記エラー処理情報テーブル記憶部に記憶されている第２の情報に変更情報を付加する変更情報管理部と、
自装置で発生したエラーを検出し、該エラーの種別を判別する判別部と、
前記判別部によって判別されたエラーの種別と対応付けて記憶されている第１の情報を前記エラー処理情報テーブル記憶部から取得する取得部と、
前記判別部によって判別されたエラーの種別と対応付けて記憶されている第２の情報における変更情報の有無を判定し、第２の情報に変更情報が有ると判定した場合、前記取得部によって取得された第１の情報を第２の情報が変更されたことを示すように変換する情報変換部と、
前記情報変換部により第２の情報に変更情報が無いと判定された場合、前記取得部によって取得された第１の情報を前記制御装置へ送信し、前記情報変換部により第２の情報に変更情報が有ると判定された場合、前記情報変換部により変換された第１の情報を前記制御装置へ送信する送信部と、
前記制御装置から第２の情報の送信要求を受けて、該送信要求に対応する第２の情報の内容を該制御装置へ送信する情報送信部とを備え、
前記制御装置は、
前記第２の情報を記憶するメッセージテーブル記憶部と、
前記送信部から受信した第１の情報において第２の情報が変更されたことが示されている場合、前記情報送信部に第２の情報の送信要求を送信する情報要求部と、
前記情報送信部から第２の情報を受けて、前記メッセージテーブル記憶部が記憶している該第２の情報に対応する第２の情報を、受信した第２の情報に更新する更新部と、
前記送信部から受信した第１の情報に基づいて処理を実行するように前記記憶装置を制御し、且つ前記メッセージテーブル記憶部が記憶している該第１の情報に対応する第２の情報に基づいて処理を行う制御部とを備えた
ことを特徴とするストレージシステム。
【請求項５】
自装置で発生するエラーの種別と、自装置の状態に応じて変更可能な処理設定を示す第１の情報及び前記エラーの種別毎にあらかじめ定められた処理設定を示す第２の情報とを対応付けたテーブルを記憶するエラー処理情報テーブル記憶装置に記憶されている第２の情報に変更があった場合、該第２の情報に変更情報を付加し、
自装置で発生したエラーを検出し、該エラーの種別を判別し、
判別したエラーの種別と対応付けて記憶されている第１の情報を前記エラー処理情報テーブル記憶装置から取得し、
判別されたエラーの種別と対応付けて記憶されている第２の情報における変更情報の有無を判定し、
第２の情報に変更情報が無い場合、取得した第１の情報を自装置を制御する制御装置へ送信し、
第２の情報に変更情報が有る場合、取得した第１の情報を第２の情報が変更されたことを示すように変換し、変換した第１の情報を前記制御装置へ送信し、
前記制御装置から前記第２の情報の送信要求を受けて、該送信要求に対応する第２の情報の内容を該制御装置へ送信する
ことを特徴とする記憶装置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置、ストレージシステム及び記憶装置制御方法に関する。
【背景技術】
【０００２】
従来、複数の記憶装置（例えば、ディスクアレイ装置）とディスクアレイ装置に対してデータの読み出しや書き込みといったデータに対するアクセス指示などを出す情報処理装置とをネットワークを用いて接続したストレージシステムが知られている。アクセス指示を出す情報処理装置とは、例えば、ディスクアレイ装置の制御を行うサーバ装置などである。このようなストレージシステムにおける記憶装置と情報処理装置との間においては、Ｉ／Ｏ（Input  Output）の高負荷、構成モジュールの故障通知、インフォメーションレベルの情報通知等の様々なエラーが発生する場合がある。このようなエラーが発生した場合には、記憶装置は、発生したエラーの種別を一意に示すエラー情報を生成し、生成したエラー情報を制御装置へ送信する。
【０００３】
また、情報処理装置は、エラー情報と対応付けて、エラーが発生した際に実行する処理の内容を記憶するテーブルを有している。例えば、制御装置は、エラーが発生した際に実行する処理の内容として、エラーメッセージの内容、リトライの回数、フェイルオーバの回数等をエラー情報に対応付けて記憶する。
【０００４】
そして、情報処理装置は、記憶装置からエラー情報を受信した場合には、受信したエラー情報と対応付けられた処理の内容をテーブルから取得し、取得した処理の内容を実行する。例えば、情報処理装置は、エラー情報を受信した場合には、受信したエラー情報と対応付けられたエラーメッセージをクライアントに対して表示する処理、所定回数のリトライ、所定回数のフェイルオーバ等を実行する。つまり、情報処理装置が実行するプログラムには、エラー情報と処理の内容との関係がハードコーディングされている。
【０００５】
また、このようなストレージシステムでは、新たなエラー情報を追加する場合や、実行する処理の内容を変更する場合には、情報処理装置のエラー情報に対応するプログラム全てに対して修正が行われる。そして、修正されたプログラムを実行するために、情報処理装置の再起動が行われる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００６−５２４８６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述したサーバ装置を初めとする情報処理装置がエラーに対応する処理を記憶する技術では、ストレージ装置を初めとする記憶装置のエラーに対応する処理の内容を情報処理装置側が決定する。このため、記憶装置のエラーに対して適切な処理を情報処理装置が決定できないという問題があった。つまり、情報処理装置は、記憶装置の状態に関係なく、情報処理装置独自のアルゴリズムにより決定したエラーに対応する処理を決定するので、記憶装置のエラーに対して適切な処理を実行することができない。
【０００８】
また、上述したエラーに対応する処理を情報処理装置が記憶する技術では、エラーが発生した際に実行する処理内容を修正する場合には、プログラムの修正および情報処理装置の再起動を行うので、処理内容の追加や修正を効率的に行えないという問題があった。
【０００９】
さらに、エラーの検出の都度、自装置の状態に応じて変更可能な処理設定を示す動的情報だけではなく、エラーの種別ごとに予め定められた処理設定を示す静的情報についても内容が変更される場合がある。ここで、処理設定とは、ある処理を行うに際して用いる設定であり、例えば、処理に用いる値や処理の繰返し回数などである。そして、記憶装置のファームウェアのアップデートが行われることにより、特定のセンスに対する出力メッセージが変更される場合がある。そこで、よりきめ細やかなエラーハンドリングを実現するためには、静的情報であっても内容の変更があった場合に、情報処理装置がその変更を把握することが求められる。しかし、記憶装置側でエラーハンドリング情報を一元管理した場合、静的情報の変更を情報処理装置が把握することができず、サーバは古いメッセージを出力し続けてしまうおそれがあった。そのため、動的情報の変化に対応するだけでは、静的情報の変更に対応することができず、適切なエラーハンドリングを行うことが困難であった。
【００１０】
開示の発明は、上述した問題に鑑みてなされたものであって、記憶装置のエラーに対する適切な処理を実行することができ、かつ、新たな処理内容の追加や処理内容の修正を効率的に行うことができる記憶装置、ストレージシステム及び記憶装置制御方法を提供する。
【課題を解決するための手段】
【００１１】
本願の開示する記憶装置、ストレージシステム及び記憶装置制御方法は、一つの態様において、エラー処理情報テーブル記憶部は、自装置で発生するエラーの種別と、自装置の状態に応じて変更可能な処理設定を示す第１の情報及び前記エラーの種別毎に予め定められた処理設定を示す第２の情報とを対応付けたテーブルを記憶する。変更情報管理部は、前記第２の情報の変更があった場合、前記エラー処理情報テーブル記憶部に記憶されている第２の情報に変更情報を付加する。判別部は、自装置で発生したエラーの種別を判別する。取得部は、前記判別部によって判別されたエラーの種別と対応付けて記憶されている第１の情報を前記エラー処理情報テーブル記憶部から取得する。情報変換部は、前記判別部によって判別されたエラーの種別と対応付けて記憶されている第２の情報における変更情報の有無を判定し、第２の情報に変更情報が有ると判定された場合、第２の情報が変更されたことを示すように前記取得部によって取得された第１の情報を変換する。送信部は、前記情報変換部により第２の情報に変更情報が無いと判定された場合、前記取得部によって取得された第１の情報を自装置を制御する制御装置へ送信し、前記情報変換部により第２の情報に変更情報が有ると判定された場合、前記情報変換部により変換された第１の情報を前記制御装置へ送信する。情報送信部は、前記制御装置から前記第２の情報の送信要求を受けて、該送信要求に対応する第２の情報の内容を該制御装置へ送信する。
【発明の効果】
【００１２】
本願の開示する記憶装置、ストレージシステム及び記憶装置制御方法の一つの態様によれば、記憶装置のエラーに対する適切な処理を実行することができ、かつ、新たな処理内容の追加や処理内容の修正を効率的に行うことができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例に係るストレージシステムを説明するためのブロック図である。
【図２】図２は、動的情報および静的情報の一例を説明するための図である。
【図３】図３は、動的情報を格納する処理を説明するための図である。
【図４】図４は、静的情報の変更の一例を説明するための図である。
【図５】図５は、静的情報の送信処理を説明するためのフローチャートである。
【図６】図６は、ディスクアレイ装置のハードウェア構成図である。
【図７】図７は、サーバのハードウェア構成図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する記憶装置、ストレージシステム及び記憶装置制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する記憶装置、ストレージシステム及び記憶装置制御方法が限定されるものではない。
【実施例】
【００１５】
図１は、実施例に係るストレージシステムを説明するためのブロック図である。図１に示すように、ストレージシステム１００は、ディスクアレイ装置１０、ディスクアレイ装置１０Ａ、サーバ２０を有する。また、ストレージシステム１００は、クライアント３０と接続される。ここで、ディスクアレイ装置１０、１０Ａ及びサーバ２０との間は、ＳＡＮ（Storage  Area  Network）等のネットワークによって接続されるものとする。
【００１６】
また、図１に示すように、ディスクアレイ装置１０は、エラー管理情報テーブル部１１、判別部１２、動的情報計算部１３、動的情報設定部１４、情報変換部１５、動的情報送信部１６、静的情報取得コマンド受信部１７、静的情報返却部１８及び更新情報管理部１９を有する。
【００１７】
なお、図１では省略したが、以下の説明において、ディスクアレイ装置１０、１０Ａは、情報を記憶するためのＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）等の記憶装置を有するものとする。また、ディスクアレイ装置１０Ａは、ディスクアレイ装置１０と同様の構成を有し、ディスクアレイ装置１０と同様の処理を実行するものとし、以下の説明を省略する。
【００１８】
まず、ディスクアレイ装置１０が有する各部１１〜１９について説明する。エラー管理情報テーブル部１１は、ディスクアレイ装置１０において発生するエラーの種別とエラーが発生した際にサーバ２０が実行する処理の内容とを対応付けて記憶する。エラー管理情報テーブル部１１は、処理の内容として、エラーが検出されるたびに自装置の状態に応じて変更可能な動的処理の内容とともに、エラーの種別ごとにあらかじめ定められた静的処理の内容をエラーの種別と対応付けて記憶する。
【００１９】
具体的には、エラー管理情報テーブル部１１は、エラーの種別を示す情報であるセンス情報とエラーが発生した際にサーバ２０が実行する処理の内容を示すエラーハンドリング情報とを対応付けて記憶する。ここで、エラー管理情報テーブル部１１は、エラーハンドリング情報として、エラーが検出されるたびに自装置の状態に応じて変更可能な処理設定を示す動的情報を記憶する。この動的情報が、「第１の情報」の一例に当たる。また、エラー管理情報テーブル部１１は、エラーの種別ごとにあらかじめ定められた処理設定を示す静的情報を記憶する。この静的情報が、「第２の情報」の一例に当たる。また、センス情報には、センスコードとサブセンスコードが含まれる。
【００２０】
図２は、動的情報および静的情報の一例を説明するための図である。例えば、図２に示す例では、エラー管理情報テーブル部１１は、エラーハンドリング情報のうち、リトライ回数及びフェイルオーバ回数を動的情報として記憶する。また、エラー管理情報テーブル部１１は、エラーハンドリング情報のうち、リトライメッセージ、リトライアウトメッセージ、出力可否フラグ及び変更フラグを静的情報として記憶する。
【００２１】
ここで、リトライ回数とは、エラーが発生した際に実行されるリトライの回数である。また、フェイルオーバ回数とは、エラーが発生した際にエラーが発生したＨＤＤから他のＨＤＤへデータを移行するフェイルオーバ処理を試行する上限回数である。
【００２２】
また、リトライメッセージとは、リトライを行うたびにクライアント３０に対して表示されるメッセージである。また、リトライアウトメッセージとは、所定回数のリトライを同一パスに対して実行した後に、他のパスを用いてリトライを継続する場合に、クライアント３０に対して表示されるメッセージである。また、出力可否フラグとは、リトライを実行するたびに、リトライメッセージをクライアント３０に対して表示するか否かを示す情報である。例えば、後述するエラーメッセージ出力部２６は、出力可否フラグが「ＯＮ」の場合には、リトライメッセージを表示せず、リトライアウトメッセージのみを表示する。
【００２３】
さらに、変更フラグとは、静的情報が変更されたか否かを表す情報である。例えば、後述する動的情報送信部１６は、変更フラグが「ＯＮ」の場合には、サーバ２０に対して静的情報が変更された旨の通知を行う。
【００２４】
例えば、エラー管理情報テーブル部１１は、センス情報として、センスコード「４」およびサブセンスコード「２／３」と同パスリトライ回数「５０」とフェイルオーバ回数「１０」とを対応付けて記憶する。また、エラー管理情報テーブル部１１は、センスコード「４」およびサブセンスコード「２／３」と出力メッセージとしてのリトライメッセージ「Ｎｏｔｉｃｅ  ｄｉｓｋ  Ｅｒｒｏｒｓ」とを対応付けて記憶する。
【００２５】
また、エラー管理情報テーブル部１１は、センスコード「４」およびサブセンスコード「２／３」と出力メッセージとしてのリトライアウトメッセージ「ＷＡＲＮ  ｄｉｓｋ  ｎｏｔ  ｅｍｐｔｙ」とを対応付けて記憶する。また、エラー管理情報テーブル部１１は、センスコード「４」およびサブセンスコード「２／３」と出力可否フラグ「ＯＮ」とを対応付けて記憶する。さらに、エラー管理情報テーブル部１１は、センスコード「４」及びサブセンスコード「２／３」と変更フラグ「ＯＮ」とを対応付けて記憶する。
【００２６】
図１に戻って、判別部１２は、ストレージシステム１００において発生するエラーを検出する。そして、判別部１２は、エラーを検出した場合には、検出したエラーの種別を判別する。
【００２７】
動的情報計算部１３は、判別部１２によりエラーが検出された場合、そのエラーの種別を示すセンス情報を生成する。ここで、動的情報計算部１３は、センス情報を生成するにあたり２Ｂｙｔｅの追加領域をセンス情報に設定する。そして、動的情報計算部１３は、生成したセンス情報を動的情報設定部１４へ送信する。
【００２８】
動的情報計算部１３は、判別部１２により判別されたエラーの種別と対応付けられた動的情報をエラー管理情報テーブル部１１から取得する。そして、動的情報計算部１３は、取得した動的情報をディスクアレイ装置１０の状態に応じて変更する。
【００２９】
本実施例では、動的情報計算部１３は、生成したセンス情報と対応付けられたエラーハンドリング情報をエラー管理情報テーブル部１１から検索する。そして、動的情報計算部１３は、検索されたエラーハンドリング情報のうち、動的情報であるリトライ回数及びフェイルオーバ回数を取得する。そして、動的情報計算部１３は、ディスクアレイ装置１０およびサーバ２０において他のエラーが発生しているか否かを判定する。そして、動的情報計算部１３は、他のエラーが発生していないと判定した場合には、取得したリトライ回数及びフェイルオーバ回数を動的情報設定部１４へ通知する。
【００３０】
また、動的情報計算部１３は、他のエラーが発生していると判定した場合には、発生している他のエラーの種別を判別する。また、動的情報計算部１３は、発生している他のエラーの種別を示すセンス情報を生成する。この場合も、動的情報計算部１３は、２Ｂｙｔｅの追加領域をセンス情報に設定する。そして、動的情報計算部１３は、生成したセンス情報を動的情報設定部１４へ送信する。
【００３１】
さらに、動的情報計算部１３は、生成したセンス情報と対応付けられたエラーハンドリング情報をエラー管理情報テーブル部１１から検索する。そして、動的情報計算部１３は、動的情報であるリトライ回数及びフェイルオーバ回数を検索したエラーハンドリング情報から取得する。つまり、動的情報計算部１３は、新たに発生したエラーに係るリトライ回数やフェイルオーバ回数だけではなく、既に発生している他のエラーに係るリトライ回数やフェイルオーバ回数も取得する。
【００３２】
そして、動的情報計算部１３は、取得した各リトライ回数を加算する。また、動的情報計算部１３は、取得した各フェイルオーバ回数を加算する。そして、動的情報計算部１３は、加算したリトライ回数及び加算したフェイルオーバ回数を動的情報設定部１４へ通知する。つまり、動的情報計算部１３は、ストレージシステム１００のエラー発生状況に応じて変更されるリトライ回数及びフェイルオーバ回数を取得し、動的情報設定部１４へ通知する。
【００３３】
動的情報設定部１４は、エラーの種別を含むセンス情報並びに動的情報であるリトライ回数及びフェイルオーバ回数を動的情報計算部１３から取得する。そして、動的情報設定部１４は、取得したセンス情報の追加領域に動的情報計算部１３から通知された動的情報を格納する。
【００３４】
図３は、動的情報を格納する処理を説明するための図である。図３に例示するように、動的情報設定部１４は、センス情報に設定された追加領域にエラーハンドリング情報を格納する。ここで、２Ｂｙｔｅの追加領域では、エラーハンドリング情報を全て格納することができない。このため、動的情報設定部１４は、センス情報の追加領域に格納するエラーハンドリング情報として動的情報であるリトライ回数及びフェイルオーバ回数を格納する。
【００３５】
その後、動的情報設定部１４は、動的情報を格納したセンス情報を情報変換部１５へ送信する。
【００３６】
情報変換部１５は、動的情報を格納したセンス情報を動的情報設定部１４から受信する。さらに、情報変換部１５は、エラー管理情報テーブル部１１を参照し、受信したセンス情報の静的情報の変更フラグが「ＯＮ」になっているか否かを判定する。変更フラグが「ＯＮ」の場合、情報変換部１５は、センス情報の追加領域に記載された動的情報の値を静的情報が変更されたことを示すように変更する。本実施例では、情報変換部１５は、図３に示すフェイルオーバ回数の値に−１を乗算してマイナスに変更する。例えば、情報変換部１５は、図３に示すフェイルオーバ回数の値「１０」を「−１０」に変更する。ここで、情報変換部１５による値の変更はフェイルオーバ回数ではなく、リトライ回数の値を変更しても良い。また、本実施例では、分かり易いように、フェイルオーバ回数の値をマイナスの値にすることで静的情報の変更が有ることを示したが、静的情報を表す値はフェイルオーバ回数を表す値と区別できれば他の値でもよい。例えば、情報変換部１５は、特定の値をフェイルオーバ回数に書き込んでも良い。また、情報変換部１５は、適当な関数ｆ（ｘ）を用いてフェイルオーバ回数と区別ができる値に変更してもよい。
【００３７】
情報変換部１５は、静的情報の変更フラグが「ＯＮ」であった場合、動的情報の値を静的情報が変更されたことを示すように変更したセンス情報を動的情報送信部１６へ送信する。また、静的情報の変更フラグが「ＯＦＦ」であった場合、動的情報設定部１４から受信したセンス情報をそのまま動的情報送信部１６へ送信する。
【００３８】
動的情報送信部１６は、センス情報を情報変換部１５から受信する。そして、動的情報送信部１６は、受信したセンス情報をサーバ２０へ送信する。
【００３９】
静的情報取得コマンド受信部１７は、後述するサーバ２０の静的情報取得部２４から静的処理の内容を通知する処理を要求された場合には、要求された静的処理の内容をエラー管理情報テーブル部１１から取得する。具体的には、静的情報取得コマンド受信部１７は、後述するサーバ２０の静的情報取得部２４から、センスコードとサブセンスコードとが格納された静的情報取得コマンドを受信する。
【００４０】
そして、静的情報取得コマンド受信部１７は、受信した静的情報取得コマンドを解析し、静的情報取得コマンドに格納されたセンスコード及びサブセンスコードを取得する。また、静的情報取得コマンド受信部１７は、取得されたセンスコード及びサブセンスコードに対応付けられた出力メッセージ等をエラー管理情報テーブル部１１から取得する。その後、静的情報取得コマンド受信部１７は、取得した出力メッセージ等を静的情報返却部１８へ送信する。
【００４１】
例えば、静的情報取得コマンド受信部１７は、センスコード「４」およびサブセンスコード「２／３」が格納された静的情報取得コマンドをサーバ２０から受信する。このような場合には、静的情報取得コマンド受信部１７は、センスコード「４」およびサブセンスコード「２／３」と対応付けられた出力メッセージをエラー管理情報テーブル部１１から取得する。
【００４２】
この結果、静的情報取得コマンド受信部１７は、エラー管理情報テーブル部１１からリトライメッセージ「Ｎｏｔｉｃｅ  ｄｉｓｋ  Ｅｒｒｏｒｓ」とエラーメッセージ「ＷＡＲＮ  ｄｉｓｋ  ｎｏｔ  ｅｍｐｔｙ」とを取得する。また、静的情報取得コマンド受信部１７は、エラー管理情報テーブル部１１から出力可否フラグ「ＯＮ」を取得する。その後、静的情報取得コマンド受信部１７は、取得された静的情報を静的情報返却部１８へ送信する。
【００４３】
静的情報返却部１８は、静的情報取得コマンド受信部１７によって取得された静的処理の内容をサーバ２０に対して送信する。具体的には、静的情報返却部１８は、静的情報取得コマンド受信部１７によって取得された静的情報を受信する。そして、静的情報返却部１８は、受信した静的情報をサーバ２０へ送信する。そして、静的情報返却部１８は、サーバ２０へ静的情報を送信した旨を更新情報管理部１９へ通知する。
【００４４】
更新情報管理部１９は、ディスクアレイ装置１０のファームウェアアップグレードなどにより特定のセンス情報に対応する静的情報が変更された場合、そのセンス情報のエラー管理情報テーブル部１１が記憶している静的情報の変更フラグを「ＯＮ」にする。この他にも、例えば、ユーザが管理装置を用いてエラーメッセージを出すか出さないかの設定を変更した場合には、静的情報における「出力可否フラグ」が変更される。この場合も、静的情報が変更されたので、更新情報管理部１９は、静的情報の変更フラグを「ＯＮ」にする。
【００４５】
そして、更新情報管理部１９は、静的情報返却部１８がサーバ２０へ静的情報を送信した旨の通知を受信すると、その静的情報に対応するセンス情報の変更フラグを確認する。そして、更新情報管理部１９は、変更フラグが「ＯＮ」であれば、その変更フラグを「ＯＦＦ」に変更する。
【００４６】
図４は、静的情報の変更の一例を説明するための図である。静的情報１０１は、エラー管理情報テーブル部１１に記憶されている変更前の静的情報である。また、静的情報１０２は、エラー管理情報テーブル部１１に記憶されている変更後の静的情報である。
【００４７】
変更前は、静的情報１０１に示すように、変更フラグ１１２は「ＯＦＦ」になっている。
【００４８】
ここで、静的情報１０１に示すように、変更前はリトライアウトメッセージ１１１のように「ＢＢＢＢ」というメッセージ内容だったものが、静的情報１０２のリトライアウトメッセージ１２１のように「ＢＢＢＢＣＣ」と変更される。
【００４９】
そこで、更新情報管理部１９は、この静的情報の変更を受けて、静的情報の変更があったセンス情報に対応する変更フラグを「ＯＮ」に変更する。これにより、静的情報１０２の変更フラグ１２２に示すように変更フラグが「ＯＮ」になる。
【００５０】
次に、サーバ２０について説明する。サーバ２０は、メッセージテーブル部２１、動的情報解析部２２、エラーハンドリング実行部２３、静的情報取得部２４、静的情報受信部２５、エラーメッセージ出力部２６を有する。
【００５１】
メッセージテーブル部２１は、エラーの種別と静的処理の内容とを対応付けて記憶する。具体的には、メッセージテーブル部２１は、センス情報と出力メッセージとしてのリトライメッセージとリトライアウトメッセージと出力可否フラグとを対応付けて記憶する。
【００５２】
例えば、メッセージテーブル部２１は、センス情報であるセンスコード「４」およびサブセンスコード「２／３」とリトライメッセージ「Ｎｏｔｉｃｅ  ｄｉｓｋ  Ｅｒｒｏｒｓ」とを対応付けて記憶する。また、メッセージテーブル部２１は、センスコード「４」およびサブセンスコード「２／３」と出力メッセージとしてのエラーメッセージ「ＷＡＲＮ  ｄｉｓｋ  ｎｏｔ  ｅｍｐｔｙ」とを対応付けて記憶する。また、メッセージテーブル部２１は、センスコード「４」およびサブセンスコード「２／３」と出力可否フラグ「ＯＮ」とを対応付けて記憶する。
【００５３】
動的情報解析部２２は、ディスクアレイ装置１０から動的処理の内容が格納されたセンス情報を受信した場合には、受信したセンス情報を解析し、センス情報に格納された動的処理の内容を取得する。具体的には、動的情報解析部２２は、センス情報を受信した場合には、受信したセンス情報を解析し、センス情報の追加領域に格納されたリトライ回数およびフェイルオーバ回数とセンスコードおよびサブセンスコードとを取得する。
【００５４】
そして、動的情報解析部２２は、受信した動的情報が静的情報の変更を示す値を有しているか否かを判定する。本実施例では、動的情報解析部２２は、フェイルオーバ回数が負の値となっているか否かにより静的情報の変更があったか否かを判定する。そして、動的情報解析部２２は、静的情報が変更されたと判定した場合、静的情報が変更された旨をエラーハンドリング実行部２３に通知する。
【００５５】
そして、動的情報解析部２２は、動的情報が静的情報の変更を示す値を有している場合、動的情報を元の値、すなわち本実施例では正の値に戻す。そして、リトライ回数及びフェイルオーバ回数をエラーハンドリング実行部２３へ通知する。また、動的情報解析部２２は、取得したセンスコードおよびサブセンスコードをエラーハンドリング実行部２３へ通知する。
【００５６】
ここで、本実施例では、フェイルオーバ回数を負の値にすることで静的情報の変更を通知したため、動的情報解析部２２は、フェイルオーバ回数の符号を変えることで元の値を取得したが、この動作は静的情報の変更を伝える方法によって異なる。例えば、関数を用いて値を変更し静的情報の通知を行った場合、動的情報解析部２２は、逆関数を用いて元の値を取得する。また、特定の値を用いて静的情報の通知を行った場合、動的情報解析部２２は、例えば、動的情報の元の値の送信をディスクアレイ装置１０に要求する。
【００５７】
エラーハンドリング実行部２３は、動的情報解析部２２からリトライ回数とフェイルオーバ回数とを取得する。そして、エラーハンドリング実行部２３は、取得したリトライ回数の分だけリトライを実行する。また、エラーハンドリング実行部２３は、取得したフェイルオーバ回数の分だけフェイルオーバを実行する。
【００５８】
また、エラーハンドリング実行部２３は、動的情報解析部２２からセンス情報であるセンスコードおよびサブセンスコードを取得する。そして、エラーハンドリング実行部２３は、静的情報が変更された旨の通知を動的情報解析部２２から受けた場合、受信したセンスコード及びサブセンスコードを静的情報取得部２４へ送信する。
【００５９】
これに対して、エラーハンドリング実行部２３は、静的情報が変更された旨の通知を動的情報解析部２２から受けない場合、取得したセンスコードおよびサブセンスコードと対応付けられた静的情報がメッセージテーブル部２１に記憶されているか否かを判定する。
【００６０】
その後、エラーハンドリング実行部２３は、受信したセンス情報と対応する静的情報がメッセージテーブル部２１に記憶されていると判定した場合には、取得したセンスコード及びサブセンスコードをエラーメッセージ出力部２６に送信する。一方、エラーハンドリング実行部２３は、受信した動的情報と対応する静的情報がメッセージテーブル部２１に記憶されていないと判定した場合には、取得されたセンスコード及びサブセンスコードを静的情報取得部２４へ送信する。
【００６１】
静的情報取得部２４は、静的情報の変更があった場合、受信したセンス情報が示すエラーの種別と対応付けられた静的処理の内容の通知をディスクアレイ装置１０に要求する。また、エラーハンドリング実行部２３によって静的処理の内容がメッセージテーブル部２１に記憶されていないと判定された場合も、静的情報取得部２４は、受信したセンス情報が示すエラーの種別と対応付けられた静的処理の内容の通知をディスクアレイ装置１０に要求する。なお、サーバ２０は、この時点では、クライアント３０にエラーメッセージを出力しない。
【００６２】
具体的には、静的情報取得部２４は、エラーハンドリング実行部２３からセンスコード及びサブセンスコードを受信した場合、受信したセンスコード及びサブセンスコードを格納した静的情報取得コマンドを生成する。つまり、静的情報取得部２４は、静的情報に変更があった又は受信されたセンス情報と対応付けられた静的処理の内容がメッセージテーブル部２１に記憶されていないと判定された場合があった場合には、静的情報取得コマンドを生成する。
【００６３】
そして、静的情報取得部２４は、生成した静的情報取得コマンドをディスクアレイ装置１０の静的情報取得コマンド受信部１７へ送信することで、静的情報の送信を要求する。また、静的情報取得部２４は、エラーハンドリング実行部２３から受信したセンスコード及びサブセンスコードを静的情報受信部２５へ送信する。なお、サーバ２０は、静的情報取得部２４が静的情報取得コマンドを静的情報取得コマンド受信部１７へ送信した場合には、Ｉ／Ｏのキューイングを実行し、上位プログラムにエラーを返却しない。
【００６４】
静的情報受信部２５は、静的情報取得部２４によって要求された静的処理の内容を受信する。そして、静的情報受信部２５は、受信した静的処理の内容をエラーの種別と対応付けてメッセージテーブル部２１に記憶させる。
【００６５】
具体的には、静的情報受信部２５は、静的情報返却部１８から受信したリトライメッセージ、リトライアウトメッセージ及び出力可否フラグとを受信する。また、静的情報受信部２５は、静的情報取得部２４からセンスコード及びサブセンスコードを受信する。
【００６６】
そして、静的情報受信部２５は、受信したリトライメッセージとリトライアウトメッセージと出力可否フラグとを受信したセンスコード及びサブセンスコードと対応付けてメッセージテーブル部２１に記憶させる。その後、静的情報受信部２５は、静的情報取得部２４から受信したセンスコード及びサブセンスコードをエラーメッセージ出力部２６へ送信する。
【００６７】
例えば、静的情報受信部２５は、リトライメッセージ「Ｎｏｔｉｃｅ  ｄｉｓｋ  Ｅｒｒｏｒｓ」、リトライアウトメッセージ「ＷＡＲＮ  ｄｉｓｋ  ｎｏｔ  ｅｍｐｔｙ」及び出力可否フラグ「ＯＮ」を受信する。また、静的情報受信部２５は、センスコード「４」及びサブセンスコード「２／３」を受信する。そして、静的情報受信部２５は、センスコード「４」及びサブセンスコード「２／３」と、受信したリトライメッセージ、リトライアウトメッセージ及び出力可否フラグとを対応付けて、メッセージテーブル部２１に記憶させる。
【００６８】
エラーメッセージ出力部２６は、静的情報がメッセージテーブル部２１に記憶されていないとエラーハンドリング実行部２３によって判定された場合、静的情報受信部２５が受信した静的処理の内容を実行する。また、エラーメッセージ出力部２６は、エラーハンドリング実行部２３によって、静的情報がメッセージテーブル部２１に記憶されていると判定された場合、メッセージテーブル部２１に記憶されている静的処理の内容を実行する。
【００６９】
具体的には、エラーメッセージ出力部２６は、静的情報受信部２５からセンスコード及びサブセンスコードを受信した場合には、受信したセンスコード及びサブセンスコードと対応付けられた静的情報をメッセージテーブル部２１から取得する。そして、エラーメッセージ出力部２６は、メッセージテーブル部２１から取得した静的情報を出力する。
【００７０】
また、エラーメッセージ出力部２６は、エラーハンドリング実行部２３からセンスコード及びサブセンスコードを受信した場合には、受信したセンスコード及びサブセンスコードに対応付けられた静的情報をメッセージテーブル部２１から取得する。そして、エラーメッセージ出力部２６は、取得した静的情報であるメッセージ可否フラグに応じて、リトライメッセージ又はリトライアウトメッセージのいずれか一方もしくは双方をクライアント３０へ出力する。
【００７１】
次に、図５を参照して、ストレージシステム１００が実行する静的情報の送信処理の流れについて説明する。図５は、静的情報の送信処理を説明するためのフローチャートである。
【００７２】
更新情報管理部１９は、ファームウェアのアップグレードなどによる静的情報の変更が行われたか否かを判定する（ステップＳ１０１）。静的情報の変更があった場合（ステップＳ１０１肯定）、更新情報管理部１９は、対応するセンス情報の静的情報の変更フラグを「ＯＮ」にする（ステップＳ１０２）。これに対して、更新情報管理部１９は、静的情報の変更が無いと判定した場合（ステップＳ１０１否定）、ステップＳ１０３へ進む。
【００７３】
判別部１２がエラーの発生を検出した場合には（ステップＳ１０３）、動的情報計算部１３は、リトライ回数及びフェイルオーバ回数を求める。そして、動的情報設定部１４は、動的情報計算部１３が求めたリトライ回数及びフェイルオーバ回数を含む発生したエラーの種別を示すセンス情報を生成する（ステップＳ１０４）。
【００７４】
次に、情報変換部１５は、発生したエラーに対応する静的情報の変更フラグを確認し、静的情報に変更が有るか否かを判定する（ステップＳ１０５）。変更がある場合（ステップＳ１０５肯定）、情報変換部１５は、動的情報の値を静的情報の変更があったことを示すように変換する（ステップＳ１０６）。これに対して、情報変換部１５は、変更が無いと判定した場合（ステップＳ１０５否定）、ステップＳ１０７へ進む。
【００７５】
その後、動的情報送信部１６は、生成したセンス情報をサーバ２０の動的情報解析部２２へ送信する（ステップＳ１０７）。
【００７６】
また、動的情報解析部２２は、センス情報を受信した場合には（ステップＳ１０８）、受信したセンス情報に静的情報の変更を示す値が含まれているか否かを判定する（ステップＳ１０９）。
【００７７】
静的情報の変更を示す値が含まれていない場合（ステップＳ１０９否定）、動的情報解析部２２は、センス情報に対応付けられた静的情報がメッセージテーブル部２１に記憶されているか否かを判定する（ステップＳ１１０）。
【００７８】
そして、センス情報に対応付けられた静的情報がメッセージテーブル部２１に記憶されている場合（ステップＳ１１０肯定）、エラーメッセージ出力部２６は、メッセージテーブル部２１に記憶されている静的情報を出力する（ステップＳ１１５）。つまり、エラーメッセージ出力部２６は、記憶されている出力可否フラグに応じて、記憶されているリトライメッセージ、およびリトライアウトメッセージを出力する。
【００７９】
一方、動的情報解析部２２によってセンス情報に静的情報の変更を示す値が含まれていると判定された場合（ステップＳ１０９肯定）、静的情報取得部２４は、静的情報取得コマンドをディスクアレイ装置１０に対して発行する（ステップＳ１１１）。また、センス情報に対応付けられた静的情報がメッセージテーブル部２１に記憶されていない場合（ステップＳ１１０否定）も、静的情報取得部２４は、静的情報取得コマンドをディスクアレイ装置１０に対して発行する（ステップＳ１１１）。
【００８０】
すると、ディスクアレイ装置１０の静的情報取得コマンド受信部１７は、静的情報取得コマンドによってサーバ２０が要求した静的情報をエラー管理情報テーブル部１１から取得する（ステップＳ１１２）。
【００８１】
そして、静的情報返却部１８は、静的情報取得コマンド受信部１７によって取得された静的情報を静的情報受信部２５に対して送信する（ステップＳ１１３）。
【００８２】
その後、サーバ２０の静的情報受信部２５は、ディスクアレイ装置１０の静的情報返却部１８から静的情報を受信する（ステップＳ１１４）。
【００８３】
そして、エラーメッセージ出力部２６は、受信した静的情報をメッセージテーブル部２１に記憶させるとともに、受信した静的情報をクライアント３０へ出力する（ステップＳ１１５）。
【００８４】
ここで、本実施例では、ステップＳ１０９とステップＳ１１０で示すように、サーバ２０は、動的情報を受け取った場合、静的情報の変更の有無を確認し、その後に対応する静的情報がメッセージテーブル部２１に記憶されているか否かを確認している。ただし、この順序は逆でもよい。すなわち、サーバ２０は、動的情報を受け取った場合、対応する静的情報がメッセージテーブル部２１に記憶されているか否かを確認した後に、静的情報の変更の有無を確認してもよい。この場合、例えば、動的情報解析部２２は、静的情報の変更の有無の確認は行わず、エラーハンドリング実行部２３が、静的情報がメッセージテーブル部２１に記憶されているか否かの確認及び静的情報の変更の有無の確認を順次行うとしてもよい。
【００８５】
図６は、ディスクアレイ装置のハードウェア構成図である。ディスクアレイ装置１０は、ＲＡＭ（Random  Access  Memory）１２０、ＲＯＭ（Read  Only  Memory）１３０、ＨＤＤ（Hard  Disk  Drive）１５０がバス１７０で接続される。また、ＣＰＵ（Central  Processing  Unit）１４０がバス１７０で接続される。さらにバス１７０には、サーバ２０に対して処理情報を送信するためのＩ／Ｏ（Input  Output）１６０が接続される。
【００８６】
ＨＤＤ１５０には、処理情報を記憶するエラー管理情報テーブル１５１が予め保存される。エラー管理情報テーブル１５１は、実施例に係るエラー管理情報テーブル部１１と同様の情報を有している。ＲＯＭ１３０には、検出プログラム１３１、取得プログラム１３２、送信プログラム１３３があらかじめ保持される。ＣＰＵ１４０が各プログラム１３１〜１３３をＲＯＭ１３０から読み出して実行することによって、図６に示す例では、各プログラム１３１〜１３３は、検出プロセス１４１、取得プロセス１４２、送信プロセス１４３として機能するようになる。なお、各プロセス１４１〜１４３は、図１に示した各部１２〜１９と同様の機能を発揮する。
【００８７】
また、図７は、サーバのハードウェア構成図である。サーバ２０は、ＲＡＭ２２０、ＲＯＭ２３０、ＨＤＤ２５０がバス２７０で接続される。また、ＣＰＵ２４０がバス２７０で接続される。さらにバス２７０には、ディスクアレイ装置１０に対して処理情報を送信するためのＩ／Ｏ２６０が接続される。
【００８８】
ＨＤＤ２５０には、処理情報を記憶するメッセージテーブル２５１が予め保存される。メッセージテーブル２５１は、実施例に係るメッセージテーブル部２１と同様の情報を有している。ＲＯＭ２３０には、検出プログラム２３１、取得プログラム２３２、送信プログラム２３３があらかじめ保持される。ＣＰＵ２４０が各プログラム２３１〜１３３をＲＯＭ２３０から読み出して実行することによって、図７に示す例では、各プログラム２３１〜２３３は、検出プロセス２４１、取得プロセス２４２、送信プロセス２４３として機能するようになる。なお、各プロセス２４１〜２４３は、図１に示した各部２２〜２６と同様の機能を発揮する。
【００８９】
なお、各種処理プログラムは、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact  Disc  Read  Only  Memory）、ＭＯ（Magneto  Optical  Disc）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【００９０】
以上に説明したように、本実施例に係るストレージシステムにおいて、ディスクアレイ装置は、エラーメッセージなどの静的情報に変更があった場合、エラーの発生を通知するセンス情報を用いてそのセンス情報の静的情報が変更されていることを通知する。そして、サーバは、静的情報の変更の通知を受けて、変更された最新の静的情報を取得することができる。これにより、サーバは、ストレージシステムにおいて静的情報に変更があったことを迅速に把握することができ、変更が行われた静的情報にあわせた処理を行うことができる。すなわち、ディスクアレイ装置側でエラーハンドリング情報を一元管理する場合でも、サーバは静的情報の変更を確実に把握できる。例えば、サーバは、リトライメッセージ又はリトライアウトメッセージに変更が有った場合に、変更前のメッセージを出力することなく、新しいメッセージを出力することができる。
【符号の説明】
【００９１】
１０、１０Ａ  ディスクアレイ装置
１１  エラー管理情報テーブル部
１２  判別部
１３  動的情報計算部
１４  動的情報設定部
１５  情報変換部
１６  動的情報送信部
１７  静的情報取得コマンド受信部
１８  静的情報返却部
１９  更新情報管理部
２０  サーバ
２１  メッセージテーブル部
２２  動的情報解析部
２３  エラーハンドリング実行部
２４  静的情報取得部
２５  静的情報受信部
２６  エラーメッセージ出力部
３０  クライアント
１００  ストレージシステム
【図１】
0005652333.tif 000002
【図２】
0005652333.tif 000003
【図３】
0005652333.tif 000004
【図４】
0005652333.tif 000005
【図５】
0005652333.tif 000006
【図６】
0005652333.tif 000007
【図７】
0005652333.tif 000008