(57)【要約】【課題】装置の構成に応じた異常箇所の運用継続の判断を行う。【解決手段】ストレージ装置１は、記憶装置１ａ、中継モジュール１ｂおよび制御部１ｃを含む。中継モジュール１ｂは、制御部１ｃによる記憶装置１ａへのアクセスを中継する。制御部１ｃは、中継モジュール１ｂの異常監視を行って異常を検出した場合、中継モジュール１ｂを介した記憶装置１ａへのアクセス診断を行う。また、制御部１ｃは、記憶装置１ａへのアクセスの失敗を検出した場合に、アクセスの失敗を検出してから切り離しを実行するまでの閾値時間を記憶装置１ａへの冗長パスの有無に応じて変更する。【選択図】図１
2020038512.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置と、
前記記憶装置へのアクセスを中継する中継モジュールと、
前記中継モジュールの異常監視を行って異常を検出した場合、前記中継モジュールを介した前記記憶装置へのアクセス診断を行い、アクセスの失敗を検出した場合に、前記アクセスの失敗を検出してから前記切り離しを実行するまでの閾値時間を前記記憶装置への冗長パスの有無に応じて変更する制御部と、
を有するストレージ装置。
【請求項２】
前記制御部は、
前記記憶装置への前記冗長パスが有る場合に第１の閾値時間を選択し、前記冗長パスが無い場合に前記第１の閾値時間よりも長い第２の閾値時間を選択する請求項１記載のストレージ装置。
【請求項３】
前記制御部は、前記アクセス診断を行う場合、前記記憶装置からデータを読み出すための読み出しコマンドを発行し、前記記憶装置からデータが正常に読み出し可能か否かによりアクセス成否を判定する請求項１記載のストレージ装置。
【請求項４】
前記制御部は、前記記憶装置へ入出力アクセスする際に用いられる第１のインタフェースよりも高速な、前記中継モジュールに接続されている第２のインタフェースを用いて、前記中継モジュールの異常監視を行う請求項１記載のストレージ装置。
【請求項５】
記憶装置へのアクセスを中継する中継モジュールの異常監視を行い、
前記中継モジュールの異常監視を行って異常を検出した場合、前記中継モジュールを介した前記記憶装置へのアクセス診断を行い、
アクセスの失敗を検出した場合に、前記アクセスの失敗を検出してから前記切り離しを実行するまでの閾値時間を前記記憶装置への冗長パスの有無に応じて変更する、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置およびプログラムに関する。
【背景技術】
【０００２】
ストレージシステムは、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の記憶装置、記憶装置を制御するためのコントローラ、およびコントローラと記憶装置とを接続する中継モジュールを有して、情報処理で扱う大量のデータを記録管理する。
【０００３】
また、ストレージシステムでは、信頼性の確保のため冗長構成が組まれており、例えば、コントローラと記憶装置とを多数接続するために、中継モジュールを介して、コントローラと記憶装置間のパスがマルチパスで形成されている。
【０００４】
このような冗長構成のストレージシステムに対して、障害発生時には異常箇所を検出して運用を継続する技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】実開平４−４７７４８号公報
【特許文献２】特開平３−１４４７２２号公報
【特許文献３】特開２００２−１４９５００号公報
【特許文献４】特開２００６−３１８２４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ストレージシステム内の中継モジュールに異常が検出された場合、コントローラと中継モジュールとの通信の切り離しが行われる。
ここで、異常が検出された中継モジュールの配下の記憶装置への冗長パスが有る場合、一方のパスに接続される中継モジュールに異常が検出されても、他方のパスに接続される中継モジュールを介して記憶装置へアクセスできる。よって、冗長パスが有る場合は、中継モジュールに異常が検出された際に、該中継モジュールの通信をコントローラから即時に切り離してもよい。
【０００７】
一方、異常が検出された中継モジュールの配下の記憶装置への冗長パスが無い場合、中継モジュールに異常が検出された際に該中継モジュールの通信をコントローラから切り離すと、システム運用が直ちに停止してしまう。
【０００８】
中継モジュールに異常が検出されても、その異常はシステム運用に直接影響を及ぼすものでない可能性もある。よって、冗長パスが無い場合には、中継モジュールに異常が検出されても、該中継モジュールの通信をコントローラから即時に切り離さず、システムの運用を一定の期間継続させる方が好ましい。
【０００９】
しかし、従来のストレージシステムでは、冗長パスの有無にかかわらず、中継モジュールの異常が検出されると、一律にコントローラと中継モジュールとの通信の切り離しが実施されてしまい、運用性および信頼性の低下が生じている。
【００１０】
１つの側面では、本発明は、装置の構成に応じた異常箇所の運用継続の判断を可能にするストレージ装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、ストレージ装置が提供される。ストレージ装置は、記憶装置と、記憶装置へのアクセスを中継する中継モジュールと、中継モジュールの異常監視を行って異常を検出した場合、中継モジュールを介した記憶装置へのアクセス診断を行い、アクセスの失敗を検出した場合に、アクセスの失敗を検出してから切り離しを実行するまでの閾値時間を記憶装置への冗長パスの有無に応じて変更する制御部とを有する。
【００１２】
上記課題を解決するために、コンピュータに上記ストレージ装置と同様の制御を実行させるプログラムが提供される。
【発明の効果】
【００１３】
１側面によれば、装置の構成に応じた異常箇所の運用継続の判断を可能にする。
【図面の簡単な説明】
【００１４】
【図１】ストレージ装置の構成の一例を示す図である。
【図２】ストレージシステムの構成の一例を示す図である。
【図３】ＣＭのハードウェア構成の一例を示す図である。
【図４】ＣＭの機能ブロックの一例を示す図である。
【図５】平均応答時間管理テーブルの一例を示す図である。
【図６】冗長パス情報管理テーブルの一例を示す図である。
【図７】データパスの冗長数の一例を示す図である。
【図８】データパスの冗長数の一例を示す図である。
【図９】制御部の全体動作を示すフローチャートである。
【図１０】平均応答時間の取得動作を示すフローチャートである。
【図１１】ディスク読み出しコマンド発行処理の動作を示すフローチャートである。
【図１２】ＩＯＭ運用継続判定処理の動作を示すフローチャートである。
【図１３】ＩＯＭ運用継続判定処理の動作を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態について図１を用いて説明する。図１はストレージ装置の構成の一例を示す図である。ストレージ装置１は、記憶装置１ａ、中継モジュール１ｂおよび制御部１ｃを含む。
【００１６】
中継モジュール１ｂは、制御部１ｃによる記憶装置１ａへのアクセスを中継する。制御部１ｃは、中継モジュール１ｂの異常監視を行って異常を検出した場合、中継モジュール１ｂを介した記憶装置１ａへのアクセス診断を行う。また、制御部１ｃは、記憶装置１ａへのアクセスの失敗を検出した場合に、アクセスの失敗を検出してから切り離しを実行するまでの閾値時間を記憶装置１ａへの冗長パスの有無に応じて変更する。
【００１７】
図１に示す例を用いて動作について説明する。
〔ステップＳ１〕制御部１ｃは、中継モジュールの異常監視を行い、中継モジュールに発生している異常を検出したとする（以下、異常が検出された中継モジュールを異常中継モジュールと呼ぶ場合がある）。
【００１８】
〔ステップＳ２〕制御部１ｃは、異常中継モジュールの配下の記憶装置１ａへの冗長パスの有無を判定する。冗長パスが有る場合、ステップＳ３ａへ処理が進み、冗長パスが無い場合、ステップＳ３ｂへ処理が進む。
【００１９】
〔ステップＳ３ａ〕制御部１ｃは、異常中継モジュール１ｂ１を介した記憶装置１ａへのアクセス診断を行う。なお、制御部１ｃと記憶装置１ａの間には、中継モジュール１ｂ２を介した冗長パスが存在している。
【００２０】
〔ステップＳ４ａ〕制御部１ｃは、異常中継モジュール１ｂ１を介した記憶装置１ａへのアクセス診断の結果、アクセスが失敗したことを検出する。
〔ステップＳ５ａ〕制御部１ｃは、異常中継モジュールとの通信の切り離しを行う際の閾値時間を変更し、閾値時間のタイムカウントを開始する。
【００２１】
ここで、閾値時間は、異常中継モジュールを介した記憶装置１ａへのアクセス診断時にアクセスが失敗した場合、アクセスの失敗を検出してから切り離しを実行するまでの時間である。
【００２２】
また、閾値時間は、冗長パスの有無に応じて時間長が異なり、予め用意する複数の選択肢のうちから選択される。例えば、閾値時間ｔ１、ｔ２をｔ１＜ｔ２とした場合、冗長パスが有る場合には閾値時間ｔ１が選択され、冗長パスが無い場合には閾値時間ｔ２が選択される。ステップＳ５ａでは冗長パスが有る場合なので、制御部１ｃは、閾値時間ｔ１を選択してカウントを開始する。
【００２３】
〔ステップＳ６ａ〕制御部１ｃは、アクセス失敗の検出時から閾値時間ｔ１が経過した後に異常中継モジュール１ｂ１との通信の切り離しを行う。
〔ステップＳ３ｂ〕制御部１ｃは、異常中継モジュール１ｂ１を介した記憶装置１ａへのアクセス診断を行う。なお、制御部１ｃと記憶装置１ａの間には、異常中継モジュール１ｂ１のみで接続されており、冗長パスは存在していない。
【００２４】
〔ステップＳ４ｂ〕制御部１ｃは、異常中継モジュール１ｂ１を介した記憶装置１ａへのアクセス診断の結果、アクセスが失敗したことを検出する。
〔ステップＳ５ｂ〕制御部１ｃは、異常中継モジュールとの通信の切り離しを行う際の閾値時間を変更し、閾値時間のタイムカウントを開始する。ステップＳ５ｂでは冗長パスが無い場合なので、制御部１ｃは、閾値時間ｔ２（＞ｔ１）を選択してカウントを開始する。
【００２５】
〔ステップＳ６ｂ〕制御部１ｃは、アクセス失敗の検出時から閾値時間ｔ２が経過した後に異常中継モジュール１ｂ１との通信の切り離しを行う。
このように、制御部１ｃは、記憶装置１ａへの冗長パスが無い場合の閾値時間ｔ２を、冗長パスが有る場合の閾値時間ｔ１よりも長くして、冗長パスが無い場合のアクセス失敗時における異常中継モジュールとの通信の切り離しを、冗長パスが有る場合のアクセス失敗時における切り離しよりも遅く実行する。
【００２６】
これにより、冗長パスが有る場合、異常箇所に対する切り離しがアクセス失敗から短時間で行われて冗長パスを介してのシステム運用が継続される。また、冗長パスが無い場合、異常箇所に対する切り離し時間が先延ばしされるため、システム運用が即時に停止されることがなく、システム運用が一定の期間継続される。
【００２７】
したがって、ストレージ装置１によって、装置の構成に応じた異常箇所の運用継続の判断が可能になり、また運用性および信頼性の向上を図ることが可能になる。
［第２の実施の形態］
次に第２の実施の形態について説明する。まず、システム構成について説明する。図２はストレージシステムの構成の一例を示す図である。ストレージシステム２は、記憶装置を多重化したＲＡＩＤ（Redundant Array of Inexpensive Disks）を有する構成のシステムである。ストレージシステム２は、ＣＥ（Controller Enclosure）２０およびＤＥ（Disc Enclosure）３１、３２、３３を備える。
【００２８】
ＣＥ２０は、ＣＭ（Controller Module）２０ａ、２０ｂを有する。ＣＭ２０ａ、２０ｂは、ホスト（図示せず）からの指令にもとづき、ＤＥ３１、３２、３３へのＩ／Ｏ（入出力）制御を行うモジュールである（ストレージ装置１の制御部１ｃに対応する）。
【００２９】
ＣＭ２０ａは、ＩＯＣ（Input Output Controller）２１ａ、２２ａとＥＸＰ（エキスパンダ）２３ａを含み、ＣＭ２０ｂは、ＩＯＣ２１ｂ、２２ｂとＥＸＰ２３ｂを含む。
ＤＥ３１は、ＩＯＭ（Input Output Module）３１ａ、３１ｂ、記憶装置（ディスク）３１ｃおよびＣＰＬＤ（Complex Programmable Logic Device）３１ｄを含む。ＤＥ３２は、ＩＯＭ３２ａ、３２ｂ、記憶装置３２ｃおよびＣＰＬＤ３２ｄを含み、ＤＥ３３は、ＩＯＭ３３ａ、３３ｂ、記憶装置３３ｃおよびＣＰＬＤ３３ｄを含む。
【００３０】
ＩＯＣ２１ａ、２２ａは、ＣＭ２０ａとＤＥ３１、３２、３３とに対する入出力インタフェース制御を行い、ＩＯＣ２１ｂ、２２ｂは、ＣＭ２０ｂとＤＥ３１、３２、３３とに対する入出力インタフェース制御を行う。ＥＸＰ２３ａ、２３ｂは、ＣＭ２０ａ、２０ｂとＤＥ３１、３２、３３との接続を行う拡張デバイスである。
【００３１】
一方、ＩＯＭは中継モジュールである。ＩＯＭ３１ａ、３１ｂは、ＣＭ２０ａ、２０ｂと、記憶装置３１ｃとの中継を行う。ＩＯＭ３２ａ、３２ｂは、ＣＭ２０ａ、２０ｂと、記憶装置３２ｃとの中継を行い、ＩＯＭ３３ａ、３３ｂは、ＣＭ２０ａ、２０ｂと、記憶装置３３ｃとの中継を行う。また、ＣＰＬＤ３１ｄ、３２ｄ、３３ｄは、ＩＯＭおよび記憶装置の管理制御を行う（Ｉ／Ｏ拡張、インタフェースブリッジ、電源管理等の制御も行うことができる）。
【００３２】
各構成要素の接続関係を示すと、ＣＭ２０ａ内でＩＯＣ２１ａ、２２ａとＥＸＰ２３ａは接続され、ＣＭ２０ｂ内でＩＯＣ２１ｂ、２２ｂとＥＸＰ２３ｂは接続される。また、ＣＭ２０ａ内のＩＯＣ２１ａ、２２ａは、ＣＭ２０ｂ内のＥＸＰ２３ｂに接続され、ＣＭ２０ｂ内のＩＯＣ２１ｂ、２２ｂは、ＣＭ２０ａ内のＥＸＰ２３ａに接続される。
【００３３】
一方、ＤＥ３１内で記憶装置３１ｃは、ＩＯＭ３１ａ、３１ｂに接続され、ＣＰＬＤ３１ｄは、ＩＯＭ３１ａ、３１ｂに接続される。ＤＥ３２内で記憶装置３２ｃは、ＩＯＭ３２ａ、３２ｂに接続され、ＣＰＬＤ３２ｄは、ＩＯＭ３２ａ、３２ｂに接続される。ＤＥ３３内で記憶装置３３ｃは、ＩＯＭ３３ａ、３３ｂに接続され、ＣＰＬＤ３３ｄは、ＩＯＭ３３ａ、３３ｂに接続される。
【００３４】
なお、ＩＯＭとＣＰＬＤの接続インタフェースには例えば、Ｉ２Ｃ（Inter Integrated Circuit）／ＧＰＩＯ（General purpose input／output）が使用される（以下、Ｉ２Ｃインタフェースと呼ぶ）。
【００３５】
ＥＸＰとＩＯＭはシリアルに接続されている。図２の例では、ＣＭ２０ａ内のＥＸＰ２３ａは、ＤＥ３１内のＩＯＭ３１ａに接続され、ＩＯＭ３１ａはＤＥ３２内のＩＯＭ３２ａに接続され、ＩＯＭ３２ａはＤＥ３３内のＩＯＭ３３ａに接続される。
【００３６】
また、ＣＭ２０ｂ内のＥＸＰ２３ｂは、ＤＥ３３内のＩＯＭ３３ｂに接続され、ＩＯＭ３３ｂはＤＥ３２内のＩＯＭ３２ｂに接続され、ＩＯＭ３２ｂはＤＥ３１内のＩＯＭ３１ｂに接続される（ＥＸＰ２３ｂはＩＯＭ３１ｂに接続される構成でもよい）。
【００３７】
なお、ＥＸＰとＩＯＭの接続インタフェースには、例えば、ＳＡＳ（Serial Attached Small Computer System Interface）／ＳＥＳ（SCSI Enclosure Service）が使用される。また、ＩＯＭと記憶装置の接続インタフェースには、例えば、ＳＡＳインタフェース（第１のインタフェース）が使用される。
【００３８】
ここで、ストレージシステム２では、ＣＭによる監視処理によって、ＤＥの異常監視が行われる。また、ストレージシステム２は、ＣＭとＤＥ間の通常のＩ／Ｏアクセス用のＳＡＳインタフェースとは別に、ＤＥはＩ２Ｃインタフェース（第２のインタフェース）を有しており、Ｉ２Ｃインタフェースを用いてＤＥ内のＩＯＭの異常監視を行っている。
【００３９】
さらに、ＩＯＭに異常が検出された場合、所定時間内にＣＭとＩＯＭとの通信の切り離しが行われ、正常な機器同士でシステム運用（ホストからのＩ／Ｏアクセス等）が継続される。
【００４０】
ＣＭがＩ２Ｃインタフェースにもとづいて監視するＩＯＭの監視内容としては、例えば、ＩＯＭの電源状態や、ＩＯＭの部品マウント状態（保守点検時における部品のマウント／アンマウント状態）等がある。また、ＩＯＭの異常モード（故障モード）には、システム運用の継続に影響を与える異常と、システム運用の継続に影響を与えない異常との２種類がある。
【００４１】
システム運用の継続に影響を与える異常には、例えば、ＩＯＭの電源ダウン等の異常がある。ＩＯＭの電源ダウンの異常は、システム運用に直ちに影響を与えるものなので運用上重度の異常である。
【００４２】
一方、システム運用の継続に影響を与えない異常には、例えば、監視対象のＩＯＭからマウント信号（ＩＯＭ部品の正常マウント時にＩＯＭから出力される信号）が取得できない等の異常がある。マウント信号取得不可の異常は、ＩＯＭの保守交換時に影響はあっても、システム運用に直ちに影響を与えるものではなく運用上軽微な異常である。
【００４３】
これら２種類の異常は、Ｉ２Ｃインタフェースにもとづく異常監視では切り分けが困難なため、従来では、システム運用の継続に影響を与えない異常が発生した場合でも、ＣＭとＩＯＭとの通信の切り離しが実施されている。このため、システム運用における運用性および信頼性が低下している。
【００４４】
また、上述したように、従来では、冗長パスの有無にかかわらず、ＩＯＭの異常が検出されると、ＣＭとＩＯＭとの通信の切り離しが実施されてしまい、運用性および信頼性の低下が生じている。
【００４５】
本発明はこのような点に鑑みてなされたものであり、異常ＩＯＭを運用継続させる時間を装置の冗長構成に応じて可変に変更し、さらにはシステム運用の継続に影響を与える異常であるか否かの切り分けを行って、装置の構成に応じた異常箇所の運用継続の判断を可能にするものである。
【００４６】
＜ハードウェア構成＞
以降、第２の実施の形態について詳しく説明する。図３はＣＭのハードウェア構成の一例を示す図である。ＣＭ１０は、プロセッサ１００によって装置全体が制御されている。すなわち、プロセッサ１００は、ＣＭ１０の制御部として機能し、さらにＩＯＣの機能を実現する。
【００４７】
プロセッサ１００には、バス１０３を介して、メモリ１０１および複数の周辺機器が接続されている。プロセッサ１００は、マルチプロセッサであってもよい。プロセッサ１００は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１００は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００４８】
メモリ１０１は、ＣＭ１０の主記憶装置として使用される。メモリ１０１には、プロセッサ１００に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０１には、プロセッサ１００による処理に要する各種データが格納される。
【００４９】
また、メモリ１０１は、ＣＭ１０の補助記憶装置としても使用され、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。メモリ１０１は、補助記憶装置として、フラッシュメモリやＳＳＤ等の半導体記憶装置やＨＤＤ等の磁気記録媒体を含んでもよい。
【００５０】
バス１０３に接続されている周辺機器としては、入出力インタフェース１０２およびネットワークインタフェース１０４がある。入出力インタフェース１０２は、プロセッサ１００からの命令にしたがってＣＭ１０の状態を表示する表示装置として機能するモニタ（例えば、ＬＥＤ（Light Emitting Diode）やＬＣＤ（Liquid Crystal Display）等）が接続されている。
【００５１】
また、入出力インタフェース１０２は、キーボードやマウス等の情報入力装置を接続可能であって、情報入力装置から送られてくる信号をプロセッサ１００に送信する。
さらにまた、入出力インタフェース１０２は、周辺機器を接続するための通信インタフェースとしても機能する。例えば、入出力インタフェース１０２は、レーザ光等を利用して、光ディスクに記録されたデータの読み取りを行う光学ドライブ装置を接続することができる。光ディスクには、Ｂｌｕ−ｒａｙＤｉｓｃ（登録商標）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）等がある。
【００５２】
また、入出力インタフェース１０２は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース１０２との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
【００５３】
ネットワークインタフェース１０４は、ＥＸＰの機能を有し、ＤＥとのインタフェース制御を行う。また、ネットワークインタフェース１０４は、外部ネットワークとのインタフェース制御も有し、例えば、ＮＩＣ（Network Interface Card）、無線ＬＡＮ（Local Area Network）カード等が使用できる。ネットワークインタフェース１０４で受信されたデータは、メモリ１０１やプロセッサ１００に出力される。
【００５４】
以上のようなハードウェア構成によって、ＣＭ１０の処理機能を実現することができる。例えば、ＣＭ１０は、プロセッサ１００がそれぞれ所定のプログラムを実行することで本発明の制御を行うことができる。
【００５５】
ＣＭ１０は、例えば、コンピュータで読み取り可能な記録媒体に記録されたプログラムを実行することにより、本発明の処理機能を実現する。ＣＭ１０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
【００５６】
例えば、ＣＭ１０に実行させるプログラムを補助記憶装置に格納しておくことができる。プロセッサ１００は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。
【００５７】
また、光ディスク、メモリ装置、メモリカード等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ１００からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ１００が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００５８】
＜機能ブロック＞
図４はＣＭの機能ブロックの一例を示す図である。ＣＭ１０は、インタフェース部１１、制御部１２および記憶部１３を備える。インタフェース部１１は、ＤＥや他装置とのインタフェース制御を行う。
【００５９】
制御部１２は、ＩＯＭ異常監視処理部１２ａ、コマンド発行部１２ｂ、平均応答時間算出部１２ｃ、タイマ管理部１２ｄおよびＩＯＭ運用継続判定処理部１２ｅを含む。
ＩＯＭ異常監視処理部１２ａは、ＤＥ内のＩＯＭの異常監視をＩ２Ｃインタフェースにもとづいて監視する。コマンド発行部１２ｂは、ＩＯＭ異常監視処理部１２ａによってＩＯＭの異常が検出された場合、異常が検出されたＩＯＭ（異常ＩＯＭ）を介して、異常ＩＯＭの配下の記憶装置にアクセス診断をするためのコマンドを発行する。コマンドとしては、例えば、記憶装置からデータを読み出す際のディスク読み出し（Disk Read）コマンドが使用される。
【００６０】
平均応答時間算出部１２ｃは、アクセス診断時において、コマンド発行部１２ｂから発行されたコマンドに対して応答が返信されるまでの平均応答時間を算出する。
タイマ管理部１２ｄは、タイマ１２ｄ１（冗長パス有りで使用）と、タイマ１２ｄ２（冗長パス無しで使用）の２つのタイマ機能を有し、タイマの時間設定（閾値時間の設定）およびタイマ駆動等の制御を行う。
【００６１】
タイマ１２ｄ１は、異常ＩＯＭの配下の記憶装置に冗長パスが有る場合に、異常ＩＯＭとの通信をＣＭ１０から切り離す際に使用されるタイマである。タイマ１２ｄ２は、異常ＩＯＭの配下の記憶装置に冗長パスが無い場合に、異常ＩＯＭとの通信をＣＭ１０から切り離す際に使用されるタイマである。
【００６２】
タイマ１２ｄ２でカウントされる閾値時間ｔ２は、タイマ１２ｄ１でカウントされる閾値時間ｔ１よりも長く設定される。
ＩＯＭ運用継続判定処理部１２ｅは、アクセス診断時にアクセスが失敗した場合、冗長パスの有無に応じて異なる閾値時間を用いて、異常ＩＯＭとの通信の切り離しを行う。
【００６３】
この場合、ＩＯＭ運用継続判定処理部１２ｅは、異常ＩＯＭの配下の記憶装置に冗長パスが有る場合、タイマ１２ｄ１を駆動させ、タイマ１２ｄ１がタイムアウトしたときに、異常ＩＯＭとの通信の切り離しを行う。
【００６４】
また、ＩＯＭ運用継続判定処理部１２ｅは、異常ＩＯＭの配下の記憶装置に冗長パスが無い場合、タイマ１２ｄ２を駆動させ、タイマ１２ｄ２がタイムアウトしたときに、異常ＩＯＭとの通信の切り離しを行う。
【００６５】
記憶部１３は、平均応答時間管理テーブル１３ａの構造を有するデータと、冗長パス情報管理テーブル１３ｂの構造を有するデータとを格納する（テーブル詳細は図５、図６で後述）。
【００６６】
なお、インタフェース部１１は、図３のネットワークインタフェース１０４によって実現され、制御部１２は、図３のプロセッサ１００によって実現され、記憶部１３は、図３のメモリ１０１によって実現される。
【００６７】
＜平均応答時間管理テーブルおよび冗長パス情報管理テーブル＞
図５は平均応答時間管理テーブルの一例を示す図である。平均応答時間管理テーブル１３ａは、項目として、診断箇所（被疑箇所）、平均応答時間、タイムアウト時間および規定時間を有する。
【００６８】
診断箇所は、例えば、ＤＥ内のＩＯＭが登録される。平均応答時間は、平均応答時間算出部１２ｃで算出された平均応答時間であり、診断箇所に示されたＩＯＭを介して記憶装置から返信されたコマンド応答の平均時間である。
【００６９】
制御部１２は、記憶装置に対する読み出しコマンドを定期的に発行して、読み出しコマンドの平均応答時間を算出し、平均応答時間管理テーブル１３ａに登録する。制御部１２は、平均応答時間を例えば、（ディスク読み出しに要した総時間）÷（ディスク読み出し回数）で算出する。
【００７０】
なお、アクセス診断時に使用するコマンドとしては、ディスク読み出しコマンドを使用するが、ディスク書込み（DISK Write）コマンドや書込みベリファイ（Write Verify）コマンド、またはTest Unit Readyコマンドを使用することも考えられる。
【００７１】
ただし、ディスク書込みコマンドや書込みベリファイコマンドは、ディスク読み出しコマンドよりも時間がかかり、また、Test Unit Readyコマンドはディスクへの疎通確認が困難である。このため、制御部１２では、書き込みコマンドよりも速く、疎通確認が可能なディスク読み出しコマンドを使用することが望ましい。
【００７２】
タイムアウト時間は、異常ＩＯＭの検出に用いられ、タイムアウト時間を経過しても応答がない場合には診断箇所に示されたＩＯＭは異常と判定される。規定時間は、Ｉ２Ｃインタフェースを用いてＩＯＭの異常状態監視を行う処理において、被疑箇所の切り離しを実施するまでの時間である（例えば、数十ｍｓｅｃオーダ）。規定時間は、異常と判定されたＩＯＭとＣＭとの切り離しを実施するまでの時間である。
【００７３】
なお、タイマ１２ｄ１でカウントされる閾値時間ｔ１は、例えば、平均応答時間管理テーブル１３ａに登録されている平均応答時間が使用される。また、タイマ１２ｄ２でカウントされる閾値時間ｔ２は、例えば、平均応答時間管理テーブル１３ａに登録されている規定時間（または規定時間以下の値）が使用される。
【００７４】
図６は冗長パス情報管理テーブルの一例を示す図である。冗長パス情報管理テーブル１３ｂは、記憶装置名、冗長パス有無、本数およびＩＯＭ名の項目を有する。記憶装置名は、記憶装置の識別情報である。冗長パス有無は、ＣＭと該当記憶装置との間の冗長パスの有無が登録され、本数は、冗長パスの本数が登録される。ＩＯＭ名は、冗長パスに接続される冗長パス毎のＩＯＭの識別情報である。
【００７５】
図６の例では、記憶装置３１ｃに対して、ＣＭと記憶装置３１ｃ間には冗長パスが有り、冗長パス本数は２になっている。また、冗長パス毎のＩＯＭの識別情報から、２本の冗長パスのうち、一方の冗長パスにはＩＯＭ３１ａを経由して記憶装置３１ｃにアクセスできること、他方の冗長パスにはＩＯＭ３１ｂを経由して記憶装置３１ｃにアクセスできることが認識される。
【００７６】
また、記憶部Ａに対して、ＣＭと記憶装置Ａ間には冗長パスは無く、冗長パス本数は０である。また、１本のパスのうち、ＩＯＭａａを経由して記憶装置Ａにアクセスできることが認識される。
【００７７】
なお、平均応答時間管理テーブル１３ａおよび冗長パス情報管理テーブル１３ｂは、初期運用時において、制御部１２により各項目の情報が登録される。また、制御部１２は、システムの運用中に、構成変化や冗長性変化等を定期的に監視しており、故障時や復旧時等に変化を検出した場合、該変化に応じた所定の情報を登録する。
【００７８】
＜データパスの冗長数＞
図７、図８はデータパスの冗長数の一例を示す図である。ストレージシステムが冗長化構成をとる場合、ディスクの実装方法によって、データパスは例えば、２重化または４重化のいずれかの冗長数となる。
【００７９】
ストレージシステム２−１、２−２は、ＣＥ２０−１、２０−２、ＤＥ３１−１、３１−２およびＦＲＴ（Front end Router）４を備える。ＣＥ２０−１は、ＣＭ２０ａ、２０ｂを含み、ＣＥ２０−２は、ＣＭ２０ｃ、２０ｄを含む（ＥＸＰ、ＣＰＬＤ等の図示は省略している）。
【００８０】
ＤＥ３１−１は、ＩＯＭ３１ａ−１、３１ｂ−１および記憶装置ｓａ１、ｓａ２、・・・、ｓａｎを含み、ＤＥ３１−２は、ＩＯＭ３１ａ−２、３１ｂ−２および記憶装置ｓｂ１、ｓｂ２、・・・、ｓｂｎを含む。
【００８１】
ＣＭ２０ａは、ＦＲＴ４、ＣＭ２０ｂおよびＩＯＭ３１ａ−１に接続され、ＣＭ２０ｂは、ＦＲＴ４、ＣＭ２０ａおよびＩＯＭ３１ｂ−１に接続される。ＣＭ２０ｃは、ＦＲＴ４、ＣＭ２０ｄおよびＩＯＭ３１ａ−２に接続され、ＣＭ２０ｄは、ＦＲＴ４、ＣＭ２０ｃおよびＩＯＭ３１ｂ−２に接続される。
【００８２】
ここで、ＤＥ内の記憶装置のうち、ＲＡＩＤ１で構築された記憶装置があるとする。図７に示すストレージシステム２−１では、ＤＥ３１−１内にＲＡＩＤ１で構築された２本の記憶装置ｓａ１、ｓａ２と、ＤＥ３１−２内にＲＡＩＤ１で構築された２本の記憶装置ｓｂ１、ｓｂ２とが含まれる。このように、ＲＡＩＤ１で構築された記憶装置が同じＤＥに格納されれば、ＲＡＩＤ１の記憶装置にアクセスするＩＯＭは２本になるので、データパスは２重化になる。
【００８３】
図８に示すストレージシステム２−２では、ＤＥ３１−１内にＲＡＩＤ１で構築された１本の記憶装置ｓａ１と、ＤＥ３１−２内にＲＡＩＤ１で構築された１本の記憶装置ｓｂ１とが含まれる。
【００８４】
このように、ＲＡＩＤ１で構築された記憶装置が異なるカスケードのＤＥに格納されれば、ＲＡＩＤ１の記憶装置にアクセスするＩＯＭは４本になるので、データパスは４重化になる。いずれのシステム構成の場合も、ＲＡＩＤ１におけるデータアクセスには、１つのパスが生存すれば可能である。
【００８５】
一方、ＤＥ内に複数のＲＡＩＤが存在する場合、データパスの冗長数は、そのＲＡＩＤのうち最も少ない冗長数になる。上述のように、ＲＡＩＤ１を構成する２本の記憶装置が異なるカスケードのＤＥ内に格納されればデータパスは４重化となる。
【００８６】
これに対し、同一のＤＥにＲＡＩＤ１を構成する２本の記憶装置が格納されればデータパスは２重化である。一方のＲＡＩＤ１は４重化、もう一方のＲＡＩＤ１は２重化となり、この場合、データパスの冗長数は最も少ないものになるので、データパスは２重化されているとみなし冗長パス数は２となる。
【００８７】
＜フローチャート＞
図９は制御部の全体動作を示すフローチャートである。
〔ステップＳ１１〕制御部１２は、Ｉ２Ｃインタフェースを介したＩＯＭ異常監視処理を行う。ＩＯＭの異常が検出されない場合は、ステップＳ１２へ処理が進み、ＩＯＭの異常が検出された場合は、ステップＳ１３へ処理が進む。
【００８８】
〔ステップＳ１２〕制御部１２は、ＩＯＭに接続されている記憶装置に対するディスク読み出しコマンドを発行して、ディスク読み出しコマンドの平均応答時間を取得する（図１０で後述）。ステップＳ１１へ処理が戻る。
【００８９】
〔ステップＳ１３〕制御部１２は、異常が検出されたＩＯＭに対して、ＩＯＭ運用継続判定処理を行う（図１２、図１３で後述）。ステップＳ１１へ処理が戻る。
図１０は平均応答時間の取得動作を示すフローチャートである。
【００９０】
〔ステップＳ１２ａ〕制御部１２は、ＩＯＭ異常監視処理を行う規定時間に達したか否かを判定する。規定時間に達した場合はステップＳ１２ｂへ処理が進み、達しない場合はステップＳ１２ａの処理を繰り返す。
【００９１】
〔ステップＳ１２ｂ〕制御部１２は、ディスク読み出しコマンドを発行する（図１１で後述）。
〔ステップＳ１２ｃ〕制御部１２は、ディスク読み出しコマンドの平均応答時間を、上述の計算式を用いて算出する。
【００９２】
〔ステップＳ１２ｄ〕制御部１２は、算出した平均応答時間を平均応答時間管理テーブル１３ａに登録する。
図１１はディスク読み出しコマンド発行処理の動作を示すフローチャートである。
【００９３】
〔ステップＳ１２ｂ−１〕制御部１２は、読み出しＩ／Ｏ処理を行う場合、記憶装置に対する通常の読み出しＩ／Ｏ処理であるか、またはＩＯＭ運用継続判定処理を実施する場合の読み出しＩ／Ｏ処理であるかを判定する。
【００９４】
通常の読み出しＩ／Ｏ処理の場合はステップＳ１２ｂ−２へ処理が進み、ＩＯＭ運用継続判定処理による読み出しＩ／Ｏ処理の場合はステップＳ１２ｂ−３へ処理が進む。
〔ステップＳ１２ｂ−２〕制御部１２は、記憶装置に対する通常の読み出しＩ／Ｏ処理を行う。
【００９５】
〔ステップＳ１２ｂ−３〕制御部１２は、ディスク読み出しコマンドが実行待ちキューにキューイングされているか否かを判定する。ディスク読み出しコマンドがキューイングされている場合、ステップＳ１２ｂ−４へ処理が進む。キューイングされていない場合、ステップＳ１２ｂ−５へ処理が進む。
【００９６】
〔ステップＳ１２ｂ−４〕制御部１２は、ディスク読み出しコマンドを実行待ちキューの先頭に配置して、ディスク読み出しコマンドを発行する。
〔ステップＳ１２ｂ−５〕制御部１２は、ディスク読み出しコマンドのキューイングはせずに（実行待ちなし）、ディスク読み出しコマンドを発行する。
【００９７】
図１２、図１３はＩＯＭ運用継続判定処理の動作を示すフローチャートである。ＩＯＭに異常有りと検出された以降に実行されるＩＯＭ運用継続判定処理の動作フローを示している。
【００９８】
〔ステップＳ１３−０〕制御部１２は、記憶部１３で管理されている冗長パス情報管理テーブル１３ｂを参照して、ＣＭと記憶装置間を接続するデータパスに冗長パスが有るか否かを判定する。データパスに冗長パスが有る場合はステップＳ１３ａ−１へ処理が進み、データパスに冗長パスが無い場合はステップＳ１３ｂ−１へ処理が進む。
【００９９】
〔ステップＳ１３ａ−１〕制御部１２は、ディスク読み出しコマンドを発行する。
〔ステップＳ１３ａ−２〕制御部１２は、被疑対象のＩＯＭに接続されている記憶装置から、ディスク読み出しコマンドによるデータ読み出しが正常に実行できたか否かを判定する。
【０１００】
異常が検出されたＩＯＭであっても該ＩＯＭを通じて正常にデータの読み出しが実行できた場合はステップＳ１３ａ−３へ処理が進み、データの読み出しが実行できない場合はステップＳ１３ａ−４へ処理が進む。
【０１０１】
〔ステップＳ１３ａ−３〕制御部１２は、被疑対象のＩＯＭの運用を継続する（ＩＯＭとＣＭとの通信の切り離しは実行されない）。また、制御部１２は、被疑対象のＩＯＭは予防保守の対象とするために警告状態（ＩＯＭＷａｒｎｉｎｇ）にする。
【０１０２】
〔ステップＳ１３ａ−４〕制御部１２は、冗長パス有りのときに使用するタイマ１２ｄ１を駆動する。
〔ステップＳ１３ａ−５〕制御部１２は、タイマ１２ｄ１がタイムアウトしたか否かを判定する。タイムアウトした場合はステップＳ１３ａ−６へ処理が進み、タイムアウトしない場合はタイムカウントを続ける。
【０１０３】
〔ステップＳ１３ａ−６〕制御部１２は、タイマ１２ｄ１に設定されている閾値時間ｔ１の経過後に、被疑対象のＩＯＭとＣＭとの通信の切り離しを行う。
〔ステップＳ１３ｂ−１〕制御部１２は、ディスク読み出しコマンドを発行する。
【０１０４】
〔ステップＳ１３ｂ−２〕制御部１２は、被疑対象のＩＯＭに接続されている記憶装置から、ディスク読み出しコマンドによるデータ読み出しが正常に実行できたか否かを判定する。
【０１０５】
異常が検出されたＩＯＭであっても該ＩＯＭを通じて正常にデータの読み出しが実行できた場合はステップＳ１３ｂ−３へ処理が進み、データの読み出しが実行できない場合はステップＳ１３ｂ−４へ処理が進む。
【０１０６】
〔ステップＳ１３ｂ−３〕制御部１２は、被疑対象のＩＯＭの運用を継続する（ＩＯＭとＣＭとの通信の切り離しは実行されない）。また、制御部１２は、被疑対象のＩＯＭは予防保守の対象とするために警告状態（ＩＯＭＷａｒｎｉｎｇ）にする。
【０１０７】
〔ステップＳ１３ｂ−４〕制御部１２は、冗長パス無しのときに使用するタイマ１２ｄ２を駆動する。
〔ステップＳ１３ｂ−５〕制御部１２は、タイマ１２ｄ２がタイムアウトしたか否かを判定する。タイムアウトした場合はステップＳ１３ｂ−６へ処理が進み、タイムアウトしない場合はタイムカウントを続ける。
【０１０８】
〔ステップＳ１３ｂ−６〕制御部１２は、タイマ１２ｄ２に設定されている閾値時間ｔ２の経過後に、被疑対象のＩＯＭとＣＭとの通信の切り離しを行う。
以上説明したように、本発明によれば、異常が検出されたＩＯＭの配下の記憶装置にアクセス診断を行い、アクセスが失敗した場合、記憶装置への冗長パスの有無に応じて時間長の異なる閾値時間を変更し、変更した閾値時間の経過後にＩＯＭの通信を切り離す。
【０１０９】
すなわち、冗長パスが有る場合は短い閾値時間ｔ１の経過後に異常個所を切り離し、冗長パスが無い場合は即時の切り離しはせず、長い閾値時間ｔ２の経過後に異常個所を切り離して一定期間運用を継続させる。このような制御によって、異常箇所を運用継続させる時間を装置の冗長構成に応じて可変でき、装置の構成に応じた異常箇所の運用継続の判断が可能になる。
【０１１０】
また、ＩＯＭの生存性を可能な限り高めることができ、かつホストアクセスの影響を軽微にとどめることが可能となる。さらに、データパスの冗長性を加味した運用継続判定処理が行われるので、データパスロストになりづらい。
【０１１１】
さらに、制御部１２では、タイマ１２ｄ２がカウントする閾値時間ｔ２を例えば、規定時間以下とし、タイマ１２ｄ１がカウントする閾値時間ｔ１を閾値時間ｔ２よりも小さく設定する。
【０１１２】
これにより、冗長パスの有無にかかわらず、どちらも規定時間以内に異常ＩＯＭの切り離しを行うことができ、運用性および信頼性の向上を図ることができる。
上記で説明した本発明のストレージ装置１およびＣＭ１０の処理機能は、コンピュータによって実現することができる。この場合、ストレージ装置１およびＣＭ１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【０１１３】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等がある。光ディスクには、ＣＤ−ＲＯＭ／ＲＷ等がある。光磁気記録媒体には、ＭＯ（Magneto Optical disk）等がある。
【０１１４】
プログラムを流通させる場合、例えば、そのプログラムが記録されたＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１１５】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【０１１６】
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤ等の電子回路で実現することもできる。
【０１１７】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１１８】
１  ストレージ装置
１ａ  記憶装置
１ｂ、１ｂ２  中継モジュール
１ｂ１  異常中継モジュール
１ｃ  制御部
ｔ１  冗長パスが有る場合の閾値時間
ｔ２  冗長パスが無い場合の閾値時間
【図１】
2020038512.tif 000003
【図２】
2020038512.tif 000004
【図３】
2020038512.tif 000005
【図４】
2020038512.tif 000006
【図５】
2020038512.tif 000007
【図６】
2020038512.tif 000008
【図７】
2020038512.tif 000009
【図８】
2020038512.tif 000010
【図９】
2020038512.tif 000011
【図１０】
2020038512.tif 000012
【図１１】
2020038512.tif 000013
【図１２】
2020038512.tif 000014
【図１３】
2020038512.tif 000015