説明

記憶装置接続装置,ストレージ装置,情報管理方法及び情報管理プログラム

【課題】情報取得要求を行なった結果、他の記憶装置接続装置から応答がない場合においても、その上位の記憶装置接続装置において情報収集を継続して行なうことができるようにする。
【解決手段】他の記憶装置接続装置12に対して情報収集処理にかかる情報取得要求を出力する情報取得要求出力部2と、情報取得要求出力部2が情報取得要求を出力してからの経過時間を測定するタイマ3と、情報取得要求に対する他の記憶装置接続装置12からの応答に基づいて、他の記憶装置接続装置12に関する接続状態を管理する接続状態管理部4とをそなえ、接続状態管理部4が、タイマ3による測定の結果、情報取得要求の出力から所定時間経過しても情報収集処理が完了していない場合に、情報取得要求を行なった他の記憶装置接続装置12に関して正常状態である旨の設定を行なう。

【発明の詳細な説明】
【技術分野】
【0001】
本件は、ストレージシステムにおける構成情報の管理を行なう技術に関する。
【背景技術】
【0002】
図29はストレージシステムの構成を模式的に示す図である。
この図29に示すストレージシステム900は、例えば、複数の記憶装置がアレイ状に配列されたRAID(Redundant Arrays of Inexpensive Disks)システムであり、上位装置であるホストコンピュータ901に接続されている。
ストレージシステム900は、ホストコンピュータ901からの入出力要求(例えば、リードコマンドやライトコマンド)に応じて、記憶装置(図示省略)に対して、データの読み出しや書き込み等の処理を行なう。
【0003】
このストレージシステム900は、図29に示すように、コントローラエンクロージャ(CE)#000と複数(図29に示す例では2つ)のディスクエンクロージャ(DE)#001,#002とをそなえて構成されている。又、CE#000にはDE#001,#002が直列にカスケード接続(多段接続)されている。すなわち図29に示すように、CE#000にDE#001が接続され、DE#001にDE#002が接続されている。
【0004】
CE#000は、1以上(図29に示す例では2つ)のコントローラモジュール(CM)#00,#01を格納するものである。CM#00,#01は、ストレージシステム900における種々の制御を行なうものであり、ホストコンピュータ901から送信されたI/Oコマンドに基づいて、各SASエクスパンダ802a,802b,803a,803b,804a,804bにそなえられた各記憶装置に対するアクセス制御を行なう。
【0005】
CM#00はコントローラ801aおよびSAS(Serial Attached SCSI)エクスパンダ(EXP)802aをそなえており、CM#01は、コントローラ801bおよびSASエクスパンダ802bをそなえている。
コントローラ801a,801bは、それぞれCM#00,#00における各種制御を行なうものである。又、CM#00において、コントローラ801aは、データバス811aを介してSASエクスパンダ802aに接続されるとともに、データバス812aを介してCM#01のSASエクスパンダ802bに接続されている。
【0006】
同様に、CM#01において、コントローラ801bは、データバス811bを介してSASエクスパンダ802bに接続されるとともに、データバス812bを介してCM#00のSASエクスパンダ802aに接続されている。
SASエクスパンダ802a,802bには、共通の1以上の記憶装置(図示省略)が接続され、コントローラ801a,802bから送信されるディスクアクセスコマンドに基づき、この記憶装置に対するアクセス制御を行なう。そして、この1以上の記憶装置に対して、SASエクスパンダ802a,802bのそれぞれが接続されることにより、記憶装置へのアクセス経路が二重化されている。
【0007】
DE#001は、図示しない1以上の記憶装置をそなえるとともにSASエクスパンダ803a,803bをそなえて構成され、この1以上の記憶装置に対して、SASエクスパンダ803a,803bのそれぞれが接続されることにより、記憶装置へのアクセス経路が二重化されている。
また、DE#002は、同じく図示しない1以上の記憶装置をそなえるとともにSASエクスパンダ804a,804bをそなえて構成され、この1以上の記憶装置に対して、SASエクスパンダ804a,804bのそれぞれが接続されることにより、記憶装置へのアクセス経路が二重化されている。
【0008】
SASエクスパンダ803a,803b,804a,804bは、それぞれコントローラ801a,801bから送信されるディスクアクセスコマンドに基づき、この記憶装置に対するアクセス制御を行なうものである。
そして、CE#000のSASエクスパンダ802aにDE#001のSASエクスパンダ803aがデータパス813a−1を介して接続されている。又、DE#002のSASエクスパンダ804aは、DE#001のSASエクスパンダ803aにデータパス813a−2を介して接続されている。
【0009】
同様に、CE#000のSASエクスパンダ802bにDE#001のSASエクスパンダ803bがデータパス813b−1を介して接続されている。又、DE#002のSASエクスパンダ804bは、DE#001のSASエクスパンダ803bにデータパス813b−2を介して接続されている。
すなわち、コントローラ801aには、SASエクスパンダ802a,803a,804aが直列にカスケード接続されている。つまり、図29に示すように、コントローラ801aにSASエクスパンダ802aが接続され、このSASエクスパンダ802aにSASエクスパンダ803aが接続されている。更に、SASエクスパンダ803aにSASエクスパンダ804aが接続されている。同様に、コントローラ801bにSASエクスパンダ802b,803b,804bが直列にカスケード接続されている。すなわち、コントローラ801bにSASエクスパンダ802bが接続され、このSASエクスパンダ802bにSASエクスパンダ803bが接続されている。更に、SASエクスパンダ803bにSASエクスパンダ804bが接続されている。
【0010】
また、図中、a,bの文字を有する各符号は、同じ文字を有する各符号どうしの間に、それぞれ対応関係があることを示している。例えば、上述の構成においては、SASエクスパンダ802aにはSASエクスパンダ803a及びSASエクスパンダ804aがカスケード接続されるようになっている。同様に、SASエクスパンダ802bにはSASエクスパンダ803b及びSASエクスパンダ804bがカスケード接続されている。以下、a,bの文字を有する符号どうしは、互いに対応関係にある部分であることを示す。
【0011】
さらに、上記のa,bの符号を有する部品において、a,bの符号を有した各部品どうしの間に構成上および機能上の差異がないものに関しては、以下、便宜上a,bの各符号を省略して表記する場合がある。例えば、SASエクスパンダ802a,802bはそれぞれ同一の構成を有しているとともに同一の機能を有するものであり、以下、SASエクスパンダ802というときは、符号802a,802bで示すSASエクスパンダを表記するものとする。同様に、SASエクスパンダ803というときは、符号803a,803bで示すSASエクスパンダを表記するものとし、又、SASエクスパンダ804というときは、符号804a,804bで示すSASエクスパンダを表記するものとする。
【0012】
また、以下、コントローラ801からSASエクスパンダ804までのデータ経路において、ホストコンピュータ901側、すなわち、コントローラ801側を上流側もしくは上位という場合がある。
さて、上述の如くバックエンド接続にSASエクスパンダを使用したストレージシステムにおける構成管理方法として、エクスパンダが、コンフィギュレーション変化検知時にブロードキャストチェンジ(BROADCAST(CHANGE):以下BC(CHG))と呼ばれる情報フレームを発行する手法が知られている。
【0013】
このような従来のストレージシステム900においては、SASエクスパンダ802〜804が、それぞれコンフィギュレーション変化検知時にBC(CHG)を発行して上流側のコントローラ801に通知を行なうことにより、コンフィギュレーション変化時の上位通知およびコンフィギュレーション再構築を行なう。
また、コントローラ801やSASエクスパンダ802〜804は、配下のデバイスの接続状態をディスカバリ処理にて知ることができる(例えば、下記特許文献1参照)。
【0014】
このディスカバリ処理は、いずれかのSASエクスパンダにおいて状態変化が検出された場合に、コントローラ801等が配下のデバイスの接続状態を知るために行なわれる。具体的には、ディスカバリ処理は、上位のSASエクスパンダ802〜804から下位側のSASエクスパンダ803〜804に対してREPORT GENERALやREPORT ROUTE INFORMATION等のコマンドを送信することにより行なわれる。下位側のSASエクスパンダ803〜804は、これらのコマンドに対する応答として、自らが有しているPhy(物理リンク)の数やこれらのPhyに接続されたデバイスの情報を送信する。
【0015】
コントローラ801においては、下流側のSASエクスパンダから送信された情報を用いて、配下のデバイスの情報を管理する。
【先行技術文献】
【特許文献】
【0016】
【特許文献1】特開2008−197780号公報
【発明の概要】
【発明が解決しようとする課題】
【0017】
しかしながら、このようなストレージシステムにおいては、カスケード接続された複数のSASエクスパンダにおいて、あるSASエクスパンダがディスカバリ処理中の場合に、その上位のSASエクスパンダやコントローラはディスカバリ処理を進めることができない。なお、以下、SASエクスパンダがディスカバリ処理中であることをSelf-Configuring(自己設定)中という場合がある。
【0018】
図30〜図34は従来のストレージシステムにおけるディスカバリ処理中に異常が発生した際の処理を説明するための図である。なお、これらの図30〜図34においては、便宜上、一つのコントローラ801と、このコントローラ801にカスケード接続されるSASエクスパンダ802〜804とを示している。又、これらの図30〜図34においては、ストレージシステム900にそなえられた複数の記憶装置のうち、SASエクスパンダ804に接続された一の記憶装置810だけを図示している。
【0019】
ストレージシステム900において、例えば、図30に示すように、SASエクスパンダ804は、その管理するトポロジに変化(状態変化)を検知すると、ディスカバリ処理を行なわずに、BC(CHG)をその上位のSASエクスパンダ803に対して送信(発行)する。
また、SASエクスパンダ804からBC(CHG)を受信したSASエクスパンダ803は、更にその上位のSASエクスパンダ802に対してBC(CHG)を転送し、SASエクスパンダ802は、更に、その上位のコントローラ801に対してBC(CHG)を転送する。
【0020】
BC(CHG)を受信したコントローラ801やSASエクスパンダ802,803は、図31に示すように、それぞれディスカバリ処理を開始する。これに伴い、SASエクスパンダ802,803はSelf-Configuring中となる。
また、コントローラ801やSASエクスパンダ802,803においては、配下のSASエクスパンダ804,804がディスカバリ処理中(Discovery中)の状態(Self-Configuring中)においては、ディスカバリ処理を進めることができず、待機中(Discovery待機中,Self-Configuring中)となる(図32参照)。
【0021】
すなわち、例えば、SASエクスパンダ802,803は、配下のSASエクスパンダ803,804がディスカバリ処理(Self-Configuring)を完了し、これらのSASエクスパンダ803,804からBC(CHG)が送信されるとディスカバリ処理を開始する。
ところが、図33に示すように、例えば、SASエクスパンダ803に何らかの異常がありディスカバリ処理が完了しない場合がある。このように、SASエクスパンダ803においてディスカバリ処理が完了しない場合には、SASエクスパンダ803からBC(CHG)が発行されない。従って、その上位のSASエクスパンダ802はBC(CHG)を受信することができず、ディスカバリ待機中のままディスカバリ処理を完了することができない。
【0022】
また、SASエクスパンダ803においてディスカバリ処理が完了した場合であっても、図33に示すように、伝送路813−1において伝送路異常が生じSASエクスパンダ802がBC(CHG)を受信できない場合がある。又、同じくSASエクスパンダ803においてディスカバリ処理が完了した場合であっても、図34に示すように、SASエクスパンダ803もしくはSASエクスパンダ802に何らかの異常が生じた場合にも、SASエクスパンダ802はBC(CHG)を受信できない。これらのように、SASエクスパンダ802が、BC(CHG)を受信しない場合には、SASエクスパンダ802やコントローラ801はディスカバリ待機中のままとなり、ディスカバリ処理は完了されない。
【0023】
すなわち、SASエクスパンダ802やコントローラ801は、Self-Configuring中のままの状態となり、その配下のデバイスの接続状態を把握することができなくなるという課題がある。なお、このような場合には、SASエクスパンダ802やコントローラ801がSelf-Configuring中のままストレージシステム900の運用が続けられ、最終的には、例えば、CMがデグレード(縮退)することになる。
【0024】
本件の目的の一つは、このような課題に鑑み創案されたもので、情報取得要求を行なった結果、他の記憶装置接続装置から応答がない場合においても、その上位の記憶装置接続装置において情報収集を継続して行なうことができるようにすることである。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的の1つとして位置付けることができる。
【課題を解決するための手段】
【0025】
このため、この記憶装置接続装置は、1以上の記憶装置が接続されるとともに、他の記憶装置接続装置を接続可能な記憶装置接続装置であって、該他の記憶装置接続装置に対して情報収集処理にかかる情報取得要求を出力する情報取得要求出力部と、該情報取得要求出力部が該情報取得要求を出力してからの経過時間を測定するタイマと、該情報取得要求に対する該他の記憶装置接続装置からの応答に基づいて、該他の記憶装置接続装置に関する接続状態を管理する接続状態管理部とをそなえ、該接続状態管理部が、該タイマによる測定の結果、情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない場合に、該情報取得要求を行なった該他の記憶装置接続装置に関して正常状態である旨の設定を行なう。
【0026】
また、このストレージ装置は、1以上の記憶装置と複数の記憶装置接続部とをそなえたストレージ装置であって、該複数の記憶装置接続部のうち一の該記憶装置接続部が、該複数の記憶装置接続部のうち他の記憶装置接続部に対して情報収集処理にかかる情報取得要求を出力する情報取得要求出力部と、該情報取得要求出力部が該情報取得要求を出力してからの経過時間を測定するタイマと、該情報取得要求に対する該他の記憶装置接続部からの応答に基づいて、該他の記憶装置接続部に関する接続状態を管理する接続状態管理部とをそなえ、該接続状態管理部が、該タイマによる測定の結果、情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない場合に、該情報収集処理が完了していない該他の記憶装置接続部に関して正常状態である旨の設定を行なう。
【0027】
さらに、この情報管理方法は、1以上の記憶装置と複数の記憶装置接続部とをそなえたストレージ装置における情報管理方法であって、該複数の記憶装置接続部のうち一の記憶装置接続部において、該複数の記憶装置接続部のうち他の記憶装置接続部に対して情報収集処理にかかる情報取得要求を出力する情報取得要求出力ステップと、該情報取得要求出力部が該情報取得要求を出力してからの経過時間を測定する計時ステップと、該情報取得要求に対する該他の記憶装置接続部からの応答に基づいて、該他の記憶装置接続部に関する接続状態を管理する接続状態管理ステップとをそなえ、該接続状態管理ステップにおいて、該計時ステップにおける測定の結果、情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない場合に、該情報収集処理が完了していない該他の記憶装置接続部に関して正常状態である旨の設定を行なう。
【0028】
また、この情報管理プログラムは、1以上の記憶装置が接続されるとともに他の記憶装置接続装置を接続可能な記憶装置接続装置において、該他の記憶装置接続装置にかかる情報を管理する情報管理機能をコンピュータに実行させるための情報管理プログラムであって、該他の記憶装置接続装置に対して情報収集処理にかかる情報取得要求を出力する情報取得要求出力部と、該情報取得要求出力部が該情報取得要求を出力してからの経過時間を測定するタイマと、該情報取得要求に対する該他の記憶装置接続装置からの応答に基づいて、該他の記憶装置接続装置に関する接続状態を管理する接続状態管理部として、該コンピュータを機能させるとともに、該接続状態管理部が、該タイマによる測定の結果、情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない場合に、該情報収集処理が完了していない該他の記憶装置接続装置に関して正常状態である旨の設定を行なう。
【発明の効果】
【0029】
開示の記憶装置接続装置,ストレージ装置,情報管理方法及び情報管理プログラムによれば、以下の少なくともいずれか1つの効果ないし利点が得られる。
(1)情報収集処理の完了待ちの状態が解消され、情報収集処理を完了させることができる。これにより、その上位のデバイスにおいても情報収集処理を実行することができる。
【0030】
(2)情報収集処理が完了していない他の記憶装置接続装置を再起動させることにより、情報収集処理異常の状態から復旧させ、記憶装置接続装置およびこの記憶装置接続装置に接続されているデバイスを安定して動作させることができる。
【図面の簡単な説明】
【0031】
【図1】実施形態の一例としてのストレージシステムの機能構成を模式的に示す図である。
【図2】実施形態の一例としてのSASエクスパンダのハードウェア構成の例を示す図である。
【図3】実施形態の一例としての状態管理テーブルの例を示す図である。
【図4】実施形態の一例としてのストレージシステムにおける状態監視部によるPhyの監視手法を説明するためのフローチャートである。
【図5】実施例の一例としてのストレージシステムにおけるSASエクスパンダのPhyの状態遷移を示す図である。
【図6】図5に示した状態遷移図における各状態での処理を説明するためのフローチャートである。
【図7】図5に示した状態遷移図における各状態での処理を説明するためのフローチャートである。
【図8】図5に示した状態遷移図における各状態での処理を説明するためのフローチャートである。
【図9】図5に示した状態遷移図における各状態での処理を説明するためのフローチャートである。
【図10】図5に示した状態遷移図における各状態での処理を説明するためのフローチャートである。
【図11】実施形態の一例としてのストレージシステムにおける、ディスカバリ処理中に異常が発生した際の処理を説明するための図である。
【図12】実施形態の一例としてのストレージシステムにおける、ディスカバリ処理中に異常が発生した際の処理を説明するための図である。
【図13】実施形態の一例としてのストレージシステムにおける、ディスカバリ処理中に異常が発生した際の処理を説明するための図である。
【図14】実施形態の一例としてのストレージシステムにおける、ディスカバリ処理中に異常が発生した際の処理を説明するための図である。
【図15】実施形態の一例としてのストレージシステムにおける、ディスカバリ処理中に異常が発生した際の処理を説明するための図である。
【図16】実施形態の一例としてのストレージシステムにおける、ディスカバリ処理中に異常が発生した際の処理を説明するための図である。
【図17】(a)〜(d)は実施形態の一例としてのストレージシステムにおけるSESコマンドを用いたSASエクスパンダの復旧手法を説明するための図である。
【図18】実施形態の一例としてのストレージシステムにおける復旧処理部によるSESコマンドによる復旧手法を説明するためのフローチャートである。
【図19】(a)〜(d)は実施形態の一例としてのストレージシステムにおけるリンクダウン機能を用いたSASエクスパンダの復旧手法を説明するための図である。
【図20】実施形態の一例としてのストレージシステムに関して、外部経路を用いた復旧手法を実現可能な構成を模式的に例示する図である。
【図21】実施形態の一例としてのストレージシステムに関して、そのSASエクスパンダのハードウェア構成を模式的に示す図である。
【図22】(a)〜(d)は実施形態の一例としてのストレージシステムにおける外部経路を用いたSASエクスパンダの復旧手法を説明するための図である。
【図23】実施形態の一例としての状態管理テーブルの他の例を示す図である。
【図24】実施形態の一例としてのストレージシステムにおけるSASエクスパンダにおける、DISCOVERコマンドへの応答手法を説明するためのフローチャートである。
【図25】実施形態の一例としてのストレージシステム説明するためのフローチャートである。
【図26】実施形態の一例としてのストレージシステムにおけるSASエクスパンダAによるSASエクスパンダBのリカバリ処理を説明するためのフローチャートである。
【図27】実施形態の一例としてのストレージシステムにおけるリカバリ処理を実装した場合のExpander Phyの状態遷移を示す図である。
【図28】実施形態の一例としてのストレージシステムにおける異常状態にあるPhyの状態遷移を示す図である。
【図29】ストレージシステムの構成を模式的に示す図である。
【図30】従来のストレージシステムにおけるディスカバリ処理中に異常が発生した際の処理を説明するための図である。
【図31】従来のストレージシステムにおけるディスカバリ処理中に異常が発生した際の処理を説明するための図である。
【図32】従来のストレージシステムにおけるディスカバリ処理中に異常が発生した際の処理を説明するための図である。
【図33】従来のストレージシステムにおけるディスカバリ処理中に異常が発生した際の処理を説明するための図である。
【図34】従来のストレージシステムにおけるディスカバリ処理中に異常が発生した際の処理を説明するための図である。
【発明を実施するための形態】
【0032】
以下、図面を参照して実施の形態を説明する。
図1は実施形態の一例としてのストレージシステム1の機能構成を模式的に示す図、図2はそのSASエクスパンダ12のハードウェア構成の例を示す図である。
本ストレージシステム(ストレージ装置)1は、例えば、複数の記憶装置20がアレイ状に配列されたRAIDシステムであり、図1に示すように、上位装置であるホストコンピュータ200に接続されている。
【0033】
ストレージシステム1は、このホストコンピュータ200からの入出力要求(例えば、リードコマンドやライトコマンド)に応じて、記憶装置20に対して、データの読み出しや書き込み等の処理を行なう。なお、ホストコンピュータ200からの入出力要求のことをホストI/Oコマンドという場合がある。
本ストレージシステム1は、図1に示すように、コントローラエンクロージャ(Controller Enclosure:CE)140及び複数(図1に示す例では3つ)のデバイスエンクロージャ(Device Enclosure:DE)30−1,30−2,30−3をそなえている。
【0034】
なお、DE30−1,30−2,30−3は互いにほぼ同様の構成をそなえている。以下、DEを示す符号としては、複数のDEのうち1つを特定する必要があるときには30−1,30−2,30−3を用いるが、任意のDEを指すときには符号30を用いる。
CE140及び各DE30は、それぞれ1以上(図1および図2に示す例では3つ)の記憶装置20をそなえ、これらの記憶装置20の記憶領域を、本ストレージシステム1に対して提供する。
【0035】
記憶装置20は、種々のデータやプログラム等を読み出し可能に格納するものであり、例えばHDD(Hard Disk Drive)である。本ストレージシステム1においては、複数の記憶装置20をアレイ状に配列することにより、RAIDが形成されている。
なお、記憶装置20としては、種々の記憶装置を用いることができるが、本実施形態においては、これらの記憶装置20として、SAS(Serial Attached SCSI)の規格に基づいて接続されたSASディスクを用いた例について説明する。
【0036】
CE140は、図1に示すように、複数(図1に示す例では2つ)のCM141a,141bと、1以上(図1および図2に示す例では3つ)の記憶装置20とをそなえている。
CM141a,141bは、本ストレージシステム1における各種制御を行なうものである。CM141aは、コントローラ10a及びSASエクスパンダ(SAS-EXP)12aをそなえている。又、CM141bは、コントローラ10b及びSASエクスパンダ12bをそなえている。
【0037】
なお、コントローラ10aとコントローラ10bとは互いにほぼ同様の構成をそなえており、又、SASエクスパンダ12aとSASエクスパンダ12bとも互いにほぼ同様の構成をそなえている。
すなわち、CM141aとCM141bとは、互いにほぼ同様の機能・構成をそなえている。以下、CMを示す符号としては、複数のCMのうち1つを特定する必要があるときには141a,141bを用いるが、任意のCMを指すときには符号141を用いる。同様に、以下、SASエクスパンダを示す符号としては、複数のSASエクスパンダのうち1つを特定する必要があるときには12a,12bを用いるが、任意のSASエクスパンダを指すときには符号12を用いる。又、以下、コントローラを示す符号としては、複数のコントローラのうち1つを特定する必要があるときには10a,10bを用いるが、任意のコントローラを指すときには符号10を用いる。
【0038】
コントローラ10は、CM141a,141bにおける各種制御を行なうものであり、複数の記憶装置20に対するアクセス制御を行なうアクセス制御部として機能する。
このコントローラ10は、ホストコンピュータ200から送信されるホストI/Oコマンドに基づき、本ストレージシステム1にそなえられた各記憶装置20に対するディスクアクセスコマンドを生成する。
【0039】
そして、コントローラ10は、このディスクアクセスコマンドを、対象の記憶装置20にかかるSASエクスパンダ12a,12bに送信する。
また、コントローラ10aは、データパス18aを介してSASエクスパンダ12aに接続されるとともに、データパス16aを介してCM141bのSASエクスパンダ12bに接続されている。
【0040】
同様に、コントローラ10bはデータパス18bを介してSASエクスパンダ12bに接続されるとともに、データパス16bを介してCM141aのSASエクスパンダ12aに接続されている。
すなわち、CE140においては、コントローラ10a,10bは、それぞれ他のCM141b,141aのSASエクスパンダ12b,12aとも接続されている(クロス接続)。
【0041】
これにより、コントローラ10aは、このコントローラ10aと同一のCM141aにそなえられたSASエクスパンダ12aと、他のCM141bにそなえられたSASエクスパンダ12bとに接続されている。同様に、コントローラ10bは、このコントローラ10bと同一のCM141bにそなえられたSASエクスパンダ12bと、他のCM141aにそなえられたSASエクスパンダ12aとに接続されている。
【0042】
なお、以下、コントローラ10からデータパス18aもしくはデータパス18bを介してSASエクスパンダ12aおよびSASエクスパンダ12bへかけて接続される経路をストレートラインという場合がある。
また、コントローラ10aとコントローラ10bとは、データパス15を介して通信可能に接続されている。このデータパス15は、例えば、PCI Expressの規格に基づくものである。又、データバス18a,18b,19a−1,19b−1,19a−2,19b−2,19a−3,19b−3は、例えば、SASインタフェースの規格に基づくものである。
【0043】
DE30は、複数(図1に示す例では3つ)の記憶装置20をそなえ、これらの記憶装置20の記憶領域を利用可能に提供するものである。このDE30は、図1に示すように、SASエクスパンダ12a,12b及び記憶装置20をそなえている。
SASエクスパンダ12a,12bは、共通の1以上の記憶装置20が接続され、コントローラ10から送信されるディスクアクセスコマンドに基づき、これらの記憶装置20に対するアクセス制御を行なうものである。すなわち、SASエクスパンダ12は、複数の記憶装置20が接続される記憶装置接続部(記憶装置接続装置)として機能する。
【0044】
SASエクスパンダ12aとSASエクスパンダ12bとには、共通の1以上(図1に示す例においては3つ)の記憶装置20が接続されており、これらの記憶装置20には、SASエクスパンダ12aとSASエクスパンダ12bのいずれからもデータの書き込みや読み出しを行なうことができる。
図1に示す例においては、SASエクスパンダ12aは、データバス191aを介して記憶装置20に接続されており、SASエクスパンダ12bは、データバス191bを介して記憶装置20に接続されている。
【0045】
すなわち、これらの1以上の記憶装置20に対して、SASエクスパンダ12a,12bのそれぞれが接続されることにより、記憶装置20へのアクセス経路が二重化されている。
なお、以下、コントローラ10aをコントローラ0と、又、コントローラ10bをコントローラ1と表現する場合がある。又、以下、CE140に格納されたSASエクスパンダ12aをSASエクスパンダ0−0と、又、CE140に格納されたSASエクスパンダ12bをSASエクスパンダ0−1と表現する場合がある。
【0046】
同様に、以下、DE30−1に格納されたSASエクスパンダ12aをSASエクスパンダ1−0と、DE30−1に格納されたSASエクスパンダ12bをSASエクスパンダ1−1と表現する場合がある。又、以下、DE30−2に格納されたSASエクスパンダ12aをSASエクスパンダ2−0と、DE30−2に格納されたSASエクスパンダ12bをSASエクスパンダ2−1と表現する場合がある。更に、以下、DE30−3に格納されたSASエクスパンダ12aをSASエクスパンダ3−0と、DE30−3に格納されたSASエクスパンダ12bをSASエクスパンダ3−1と表現する場合がある。
【0047】
なお、以下、便宜上、本ストレージシステム1において、ホストI/Oコマンドの送信元であるホストコンピュータ200側を上流側もしくは上位といい、ディスクアクセスコマンドに基づいて作成されるディスクアクセスコマンドの送信先側を下流側もしくは下位という。又、以下、下位に接続されたデバイスのことを配下のデバイスという場合もある。
【0048】
また、図1に示す例において、コントローラ10aを上流側として、SASエクスパンダ0−0,SASエクスパンダ1−0,SASエクスパンダ2−0,SASエクスパンダ3−0と接続される一連のストレートラインの経路を0系と表現する場合がある。同様に、コントローラ10bを上流側として、SASエクスパンダ0−1,SASエクスパンダ1−1,SASエクスパンダ2−1,SASエクスパンダ3−1と接続される一連のストレートラインの経路を1系と表現する場合がある。
【0049】
SASエクスパンダ12は、図2に示すように、エクスパンダチップ120,PLD(Programmable Logic Device)130,電源131,スイッチ132及びリピータ133をそなえている。
エクスパンダチップ120は、SASエクスパンダ12の各種機能を実現するものであり、電源131から供給される非常駐電力で動作する。このエクスパンダチップ120は、図2に示すように、プロセッサ121,メモリ124及びPhy(PHYsical)をそなえている。
【0050】
Phyは、物理リンクポートであり、図2に示す例においては、Phy0〜23の24個のPhyがそなえられている。又、この図2に示す例においては、Phy0〜3が上位のSASエクスパンダ12やコントローラ10との接続に用いられ、リピータ133を介して上位のSASエクスパンダ12やコントローラ10に接続される。又、Phy4〜7は下位側のSASエクスパンダ12との接続に用いられ、Phy8〜10,15〜13が記憶装置20との接続に用いられる。
【0051】
リピータ133は、SASエクスパンダ12のIN/OUT インタフェースに接続され、ユニット入出力部(図示省略)での信号増幅を行なう。又、このリピータ133は、Phy(図2に示す例においては、Phy0〜3)のリンクアップを検出すると、PLD130にその旨を通知する機能をそなえている。
電源131は、SASエクスパンダ12の各部へ電力を供給する。又、電源131はPLD130に対して常駐電力を供給するとともに(常駐電源)、スイッチ132を介してエクスパンダチップ120に非常駐電力を供給する(非常駐電源)。
【0052】
スイッチ132は、電源131からエクスパンダチップ120への電力供給のON/OFFを切り替えるものである。このスイッチ132は、PLD130からの制御に基づいて、電源131からエクスパンダチップ120への電力供給のON/OFFを選択的に切り替える。
PLD130は、常駐電源で動作するデバイスであって、SASエクスパンダ12の電源制御等を行なう。このPLD130は、例えば、リピータ133がリンクアップ(Link Up:詳細は後述)を検出した場合に、スイッチ132への電源制御信号を送信して、スイッチ132(非常駐電源)をONにし、エクスパンダチップ120を動作させる。
【0053】
メモリ124は、各種データやプログラムを格納するものであり、プロセッサ121が各種演算や制御を行なう際に、一時的にデータやプログラムを格納(展開)する。又、このメモリ124には、図3に示す状態管理テーブルT1が格納される。
図3は実施形態の一例としての状態管理テーブルT1の例を示す図である。状態管理テーブルT1は、そのエクスパンダチップ120がそなえられたSASエクスパンダ12の状態と、このSASエクスパンダ12に接続されているデバイスの状態(Phyの状態)を示すものであり、後述する状態監視部7によって更新される。この状態管理テーブルT1は、図3に示すように、Phyの状態テーブル部T1−1と、Self-Configuring Flag部T1−2とをそなえている。
【0054】
Phyの状態テーブル部T1−1は、各Phyの状態(Phy状態)を格納するものであり、Phyを特定するためのPhy IDに対応させてPhy状態が登録(格納)される。Phy状態は、そのPhyに接続されているデバイスの状態を示す状態情報であって、例えば、“通常状態”,“ディスカバリ(Discovery)待ち”,“異常状態(リカバリ中)”等のデバイスの状態を示す情報が格納される。すなわち、メモリ124が、他のSASエクスパンダ12に対して、そのSASエクスパンダ12の状態を表わす状態情報を関連付けて記録する状態情報格納部として機能する。
【0055】
Self-Configuring Flag部T1−2には、そのSASエクスパンダ12がディスカバリ処理中(Self-Configuring中,自己設定中)であるか否かの状態(Self-Configuring状態)を示す情報が格納される。例えば、そのSASエクスパンダ12がSelf-Configuring中である場合には、“1”が格納される。
プロセッサ121はプログラムを実行することにより種々の演算および制御を行なう演算装置であり、メモリ124や図示しないROM(Read Only Memory)に格納されたプログラムを実行することにより各種機能を実現する。このプロセッサ121は、図2に示すように、SMP122及びSSP123をそなえている。なお、SMP122は、SMP(Serial Management Protocol)に基づく論理デバイスであり、SSP123は、SSP(Serial SCSI Protocol)に基づく論理デバイス123である。
【0056】
そして、このプロセッサ121が、図示しないROM(Read Only Memory)や記憶装置に格納された情報管理プログラムを実行することにより、後述する、情報取得要求出力部2,タイマ3,接続状態管理部4,リトライカウンタ制御部5,復旧処理部6及び状態監視部7として機能する。
なお、情報取得要求出力部2,タイマ3,接続状態管理部4,リトライカウンタ制御部5,復旧処理部6及び状態監視部7としての機能を実現するためのプログラム(情報管理プログラム)は、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【0057】
情報取得要求出力部2,タイマ3,接続状態管理部4,リトライカウンタ制御部5,復旧処理部6及び状態監視部7としての機能を実現する際には、内部記憶装置(本実施形態では図示しないROMや記憶装置)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではプロセッサ121)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【0058】
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、SASエクスパンダ12がコンピュータとしての機能を有しているのである。
【0059】
情報取得要求出力部(ディスカバリ処理実行部)2は、当該SASエクスパンダ12に接続された下位側のSASエクスパンダ12に対してディスカバリコマンド(情報取得要求)を出力することによりディスカバリ処理(情報収集処理)を行なう。
具体的には、情報取得要求出力部2は、下位のSASエクスパンダ12のSMP122に対して、例えば、REPORT GENERAL(RPT_GENERAL),DISCOVER, REPORT ROUTE INFORMATION(RPT_RT_INFO)等のコマンドを送信する。
【0060】
ここで、REPORT GENERALは、SASエクスパンダ12に対してSelf-Configuring中かどうかや、そのSASエクスパンダ12が有するPhyの数を問い合わせるためのコマンドである。例えば、下位のSASエクスパンダ12がSelf-Configuring中である場合には、下位のSASエクスパンダ12はCONFIGURING=1を上位のSASエクスパンダ12に対して応答する。
【0061】
また、REPORT GENERALに対する下位のSASエクスパンダ12からの応答には、Phyの数も含まれる。
DISCOVERは、Phyの接続状態を知りたいSASエクスパンダ12に向けて発行されるコマンドである。このDISCOVERを受信したSASエクスパンダ12は、このコマンドを受けたSASエクスパンダ12のPhyに直接接続されるデバイス情報(例えば、接続されるデバイスが記憶装置20かSASエクスパンダ12であるか等)を応答として送信する。
【0062】
REPORT ROUTE INFORMATIONは、配下のSASエクスパンダ12に接続されるデバイスの接続状態を取得するためのコマンドである。このREPORT ROUTE INFORMATIONを受信したSASエクスパンダ12は、このコマンドを受けたSASエクスパンダ12のPhyに直接接続されるデバイスの情報ではなく、そのSASエクスパンダ12の先に接続された全てのデバイスの接続情報を応答として送信する。
【0063】
また、情報取得要求出力部2は、後述するタイマ3による測定の結果、情報取得要求を出力してから所定時間経過しても情報収集処理が完了していない場合、すなわち、下位のSASエクスパンダ12から応答がない場合に、再度、情報取得要求を出力する。
タイマ3は、情報取得要求出力部2が情報取得要求を出力してからの経過時間を測定する。プロセッサ(ディスカバリ状態確認部)120は、ディスカバリ処理の開始とともに、ディスカバリ状態の監視を開始し、タイマ3により経過時間を計測する。そして、プロセッサ120は、ディスカバリ処理を開始してから所定時間が経過するたびに、対象のSASエクスパンダ12が接続されたPhyの状態を確認する。なお、このタイマ3としての機能は、既知の種々の手法を用いて実現することができ、その詳細な説明は省略する。
【0064】
リトライカウンタ制御部5は、情報取得要求出力部2による情報取得要求の出力回数を計数するものであり、同一のSASエクスパンダ12に対して行なった情報取得要求の回数(リトライ数)を計数する。すなわち、リトライカウンタ制御部5はディスカバリ処理のリトライ数を計数する。又、このリトライカウンタ制御部5による計数結果は、リトライカウンタ(カウンタ)51にカウンタ値として格納される。又、このリトライカウンタ51は、例えばメモリ124の所定の領域に格納される。
【0065】
接続状態管理部4は、情報取得要求に対する他のSASエクスパンダ12からの応答に基づいて、これらの他のSASエクスパンダ12に関する接続状態を管理する。具体的には、この接続状態管理部4は、前述した状態管理テーブルT1(状態情報)により各Phyの状態、すなわち各Phyに接続されたSASエクスパンダ12の状態を管理する。
また、接続状態管理部4は、上述したタイマ3による測定の結果、情報取得要求の出力から所定時間経過してもその情報収集処理が完了していない場合に、その情報取得要求を行なった他のSASエクスパンダ12に関して、状態管理テーブルT1のPhy状態を“通常状態”と設定する。つまり、接続状態管理部4は、タイマ3による測定の結果、情報取得要求の出力から所定時間経過してもその情報収集処理が完了していない場合に、その情報取得要求を行なった他のSASエクスパンダ12に関して正常状態である旨の設定(みなし正常設定)を行なう。
【0066】
さらに、接続状態管理部4は、リトライカウンタ51の値を所定の閾値と比較し、リトライカウンタ51の値が閾値を超えたことを検知した場合に、情報取得要求を行なった他のSASエクスパンダ12に対して、状態管理テーブルT1のPhy状態を“通常状態”と設定する。
このように状態管理テーブルT1のPhy状態を“通常状態”と設定することにより、そのSASエクスパンダ12のディスカバリ処理を完了させることができる。そして、これにより、その上位のSASエクスパンダ12やコントローラ10においても、ディスカバリ処理を行なうことが可能となる。 復旧処理部6は、ディスカバリ異常となったPhy配下のSASエクスパンダ12をディスカバリ異常の状態から復旧させるものである。この復旧処理部6は、接続状態管理部4によってみなし正常設定を行なったSASエクスパンダ12を再起動(リブート)させることにより、このSASエクスパンダ12を復旧させる。
【0067】
なお、復旧処理部6は、メモリ124等に格納されたリカバリ対象情報(詳細は後述)を参照することにより、再起動させるPhy(SASエクスパンダ12)を判断する。
すなわち、復旧処理部6は、情報取得要求の出力から所定時間経過してもその情報収集処理が完了していない他のSASエクスパンダ12を再起動させることにより、その復旧を図る。なお、この復旧処理部6によるSASエクスパンダ12の復旧処理の詳細については後述する。
【0068】
状態監視部7は、そのSASエクスパンダ12に接続されているデバイスの状態を監視するものであり、そのSASエクスパンダ12におけるPhy0〜23の状態監視を行なう。そして、状態監視部7は、その監視結果に基づいて、上述した状態管理テーブルT1を更新する。
ここで、実施形態の一例としてのストレージシステム1における状態監視部7によるPhyの監視手法を図4に示すフローチャート(ステップA10〜A40)に従って説明する。
【0069】
状態監視部7は、情報取得要求出力部2が行なった情報取得要求に対して、各デバイスから行なわれた応答に基づいて、全てのPhy0〜23について、1つずつPhyの状態監視と状態管理テーブルT1の更新を行なう(ステップA10)。
そして、状態監視部7は、全てのPhyの状態が、「ディスカバリ待ち」もしくは「ディスカバリ処理中」のいずれかの状態であるかを確認する(ステップA20)。全てのPhy0〜23が「ディスカバリ待ち)と「ディスカバリ処理中」とのいずれの状態でもない場合には(ステップA20のYESルート参照)、状態監視部7は、状態管理テーブルT1のSelf-Configuring Flag部T1−2に“0”を設定する(ステップA40)。すなわち、全てのPhy0〜23は、通常状態もしくは接続待ちの状態である。
【0070】
一方、Phy0〜23において、「ディスカバリ待ち」もしくは「ディスカバリ処理中」のものが1つでもある場合には(ステップA20のNOルート参照)、状態監視部7は、状態管理テーブルT1のSelf-Configuring Flag部T1−2に“1”を設定する(ステップA30)。すなわち、全てのPhy0〜23はSelf-Configuring中の状態である。
図5は実施例の一例としてのストレージシステム1におけるSASエクスパンダ12のPhy(以下、Expander Phyという場合がある)の状態遷移を示す図である。
【0071】
ストレージシステム1の通常状態において(図5中のS1参照)、デバイスの接続切断が検出されると、そのデバイスの接続待ちに移行する(図5中のS2参照)。デバイスの接続が確立した場合や、通常状態においてBC(CHG)を受信した場合には、ディスカバリ処理に移行する(図5中のS3参照)。
このディスカバリ処理において、情報取得要求出力部2からの情報取得要求におけるREPORT GENERALへの応答がSelf-Configuring中を示す(CONFIGURING=1)場合には、ディスカバリ待ち(Discovery待ち)に移行する(図5中のS4参照)。ディスカバリ待ち状態においてBC(CHG)を受信した場合には、ディスカバリ処理(Discovery処理)状態に移行する(図5中のS3参照)。そして、このディスカバリ処理状態において、ディスカバリが完了した場合には、通常状態に移行する。
【0072】
また、ディスカバリ処理状態においては、ディスカバリ処理開始時に、状態監視部7によるディスカバリ状態監視を開始し、ディスカバリ状態監視(Discovery状態監視)状態に移行する(図5中のS5参照)。なお、このディスカバリ状態監視状態は、ディスカバリ処理完了時に停止する。
そして、このディスカバリ状態監視状態において、Phyの状態がディスカバリ処理中のまま一定時間変化がなかった場合、ディスカバリ処理を再開する。情報取得要求出力部2による情報取得要求のリトライ数が所定値以上となった場合(ディスカバリ・リトライアウト)には、異常状態に移行する(図5中のS6参照)。
【0073】
すなわち、ディスカバリ処理再開後にPhyの状態がディスカバリ処理中から変化がない状態が一定回数連続で発生した場合は、そのPhyか、そのPhyに接続されるSASエクスパンダ12、又はその経路が異常であると判断し、そのPhyのディスカバリ処理を中断する。そして、そのPhy配下のデバイス接続状態が取得できない状態のままディスカバリ処理完了とする。
【0074】
また、ディスカバリ処理を行なった結果、配下のSASエクスパンダ12がSelf-Configuring中のためにBC(CHG)受信待ちになった後、一定時間BC(CHG)を受信しなかった場合は、BC(CHG)の消失を疑い、配下のSASエクスパンダ12にディスカバリ処理のリトライを行なう。
このディスカバリ処理のリトライを行なっても配下のSASエクスパンダ12がConfiguring中であった場合には、再びBC(CHG)受信待ち状態となる。このリトライを一定回数行なっても配下のSASエクスパンダ12がConfiguring中であった場合は、そのPhyか、そのPhyに接続されるSASエクスパンダ12、又はその経路が異常であると判断する。そして、ディスカバリ処理を中断し、配下のデバイス接続状態が取得できない状態でディスカバリ処理完了とする。
【0075】
このようにすることで、ディスカバリ処理が終わらないような状況が発生したとしても、その異常が発生しているPhy配下のデバイス接続状態のみが取得できないだけで済み、それより上位の正常な部分については接続状態を取得することが可能となる。
また、異常状態において、接続切断が検出された場合には、接続待ち状態に移行し(図5中のS2参照)、一方、BC(CHG)を受信した場合には、ディスカバリ処理に移行する(図5中のS3参照)。
【0076】
本ストレージシステム1においては、状態監視部7および接続状態管理部4によりExpander Phyの状態を把握するとともに、タイマ3によりディスカバリ処理をタイマー監視する。これにより、ディスカバリ処理中の処理停滞やBC(CHG)消失によるディスカバリ処理の未完了状態を防ぐ。
次に、図5に示した状態遷移図における各状態での処理を、図6〜図10に示すフローチャートに従って説明する。
【0077】
先ず、実施形態の一例としてのストレージシステム1における通常状態(図5のS1参照)の処理を図6に示すフローチャート(ステップB10,B20)に従って説明する。
ディスカバリ処理が完了し、通常監視を開始する。この状態においては、情報取得要求出力部2からの情報取得要求(REPORT GENERAL)に対する応答がCONFIGURING=0である。
【0078】
状態監視部7は、接続切断が発生したかを確認する(ステップB10)。ここで、接続切断が発生した場合には(ステップB10のYESルート参照)、接続待ち状態(図5中のS2参照)へ移行する。
一方、接続切断が発生していない場合には(ステップB10のNOルート参照)、次に、BC(CHG)を受信したかを確認する(ステップB20)。BC(CHG)を受信していない場合には(ステップB20のNOルート参照)、ステップB10に戻る。又、BC(CHG)を受信した場合には(ステップB20のYESルート参照)、ディスカバリ処理(図5中のS3参照)に移行する。
【0079】
次に、実施形態の一例としてのストレージシステム1における接続待ち状態(図5のS2参照)の処理を図7に示すフローチャート(ステップC10)に従って説明する。
接続待ち監視を開始する。この状態においては、情報取得要求出力部2からの情報取得要求(PEPORT GENERAL)に対する応答がCONFIGURING=0である。
そして、接続が完了したかを繰り返し確認し(ステップS10,ステップC10のNOルート参照)、接続が完了した場合に(ステップC10のYESルート参照)、接続されるデバイスがSASエクスパンダであった場合は、ディスカバリ処理(図5中のS3参照)に移行する。
【0080】
次に、実施形態の一例としてのストレージシステム1におけるディスカバリ待ち状態(図5のS4参照)の処理を図8に示すフローチャート(ステップD10,D20)に従って説明する。
ディスカバリ待ち状態においては、情報取得要求出力部2からの情報取得要求(PEPORT GENERAL)に対する応答がCONFIGURING=1である。
【0081】
状態監視部7は、接続切断が発生したかを確認する(ステップD10)。ここで、接続切断が発生した場合には(ステップD10のYESルート参照)、接続待ち状態(図5中のS2参照)へ移行する。
一方、接続切断が発生していない場合には(ステップD10のNOルート参照)、次に、BC(CHG)を受信したかを確認する(ステップD20)。BC(CHG)を受信していない場合には(ステップD20のNOルート参照)、ステップD10に戻る。又、BC(CHG)を受信した場合には(ステップD20のYESルート参照)、ディスカバリ処理(図5中のS3参照)に移行する。
【0082】
次に、実施形態の一例としてのストレージシステム1におけるディスカバリ処理状態(図5のS3参照)における処理を図9に示すフローチャート(ステップE10〜E50,F10〜F40)に従って説明する。
ディスカバリ処理状態においては、情報取得要求出力部2からの情報取得要求(PEPORT GENERAL)に対する応答がCONFIGURING=1である。
【0083】
ディスカバリ処理においては、上位のSASエクスパンダ12の情報取得要求出力部2が、下位のSASエクスパンダ12に対してPEPORT GENERALやREPORT ROUTE INFORMATIONを発行する(ステップE10,E20)。下位のSASエクスパンダ12は、これらの情報取得要求に対して応答を行なう(ステップF10,F20)。なお、PEPORT GENERALに対して下位のSASエクスパンダ12から行なわれる応答には、そのSASエクスパンダ12が有するPhyの数(NUMBER OF PHYS)が含まれる。
【0084】
上位のSASエクスパンダ12においては、PEPORT GENERALに対する下位のSASエクスパンダ12からの応答がCONFIGURING=1であるか、すなわち、Self-Configuring中であるかを確認する(ステップE30)。この確認の結果CONFIGURING=1である場合には(ステップE30のYESルート参照)、ディスカバリ待ちに移行する(図5中のS4参照)。
【0085】
一方、下位のSASエクスパンダ12からの応答がCONFIGURING=1でない場合には、情報取得要求出力部2は、その下位のSASエクスパンダ12に対して、PEPORT GENERALに対して下位のSASエクスパンダ12から行なわれた応答に含まれるNUMBER OF PHYS に相当する数分のDISCOVERを発行する(ステップE40)。
下位のSASエクスパンダ12は、発行された全てのDISCOVERに対して応答を行なう(ステップF30)。
【0086】
また、上位のSASエクスパンダ12は、必要に応じてREPORT ROUTE INFORMATIONを下位のSASエクスパンダ12に対して発行する(ステップE50)。下位のSASエクスパンダ12は、このREPORT ROUTE INFORMATIONに対する応答を行なう(ステップF40)。その後、上位のSASエクスパンダ12は通常監視状態に移行する。
次に、実施形態の一例としてのストレージシステム1におけるディスカバリ状態監視状態(図5のS5参照)における処理を図10に示すフローチャート(ステップG10〜G70)に従って説明する。
【0087】
ディスカバリ処理が開始されると、これに伴いディスカバリ状態監視も開始される。先ず、リトライカウンタ制御部5がリトライカウンタ51をリセット(0クリア)した後(ステップG10)、タイマ3により一定時間後に状態監視部7による監視が起動するよう設定が行なわれる(ステップG20:計時ステップ)。この設定は、例えば、「○秒後に関数xxを起動する」等のような設定を行なうことにより実現できる。
【0088】
そして、状態監視部7は、そのSASエクスパンダ12におけるPhy0〜23の状態を見て、「ディスカバリ待ち」もしくは「ディスカバリ処理」の状態のものがあるかを確認する(ステップG30)。ここでPhy0〜23において「ディスカバリ待ち」も「ディスカバリ処理」もない場合には(ステップG30のNOルート参照)、状態監視処理を終了する。
【0089】
一方、Phy0〜23において「ディスカバリ待ち」もしくは「ディスカバリ処理」の状態のものがある場合には(ステップG30のYESルート参照)、リトライカウンタ制御部5がリトライカウンタ51をインクリメントする(ステップG40)。そして、接続状態監視部4は、リトライカウンタ51の値を所定の閾値と比較する(ステップG50)。リトライカウンタ51の値が閾値を超えていない場合には(ステップG50のNOルート参照)、ディスカバリ処理のリトライを行なった後(ステップG70:情報取得要求出力ステップ)、ステップG20に戻る。
【0090】
また、リトライカウンタ51の値を所定の閾値と比較した結果、リトライカウンタ51の値が閾値を超えた場合には(ステップG50のYESルート参照)、状態管理テーブルT1における、そのPhyのPhy状態を強制的に“通常状態”に設定し(ステップG60:接続状態管理ステップ)、状態監視処理を終了する。
所定時間経過毎にディスカバリ処理をリトライした結果、予め設定した閾値以上ディスカバリ処理を繰り返し行なっても、下位のSASエクスパンダ12のディスカバリ処理が完了しない場合には、そのPhyもしくはその配下で何らかの異常が発生していると判断することができる。本ストレージシステム1においては、状態管理テーブルT1における当該PhyのPhy値を“通常状態”に設定することにより、その下位のSASエクスパンダ12についてのディスカバリ処理が完了したと同様の状態にする。すなわち、そのPhyのディスカバリ処理を強制的に完了状態に設定する。これにより、その上位のSASエクスパンダ12においてもディスカバリ処理を完了させることが可能となる。
【0091】
なお、ディスカバリ処理完了時には、上述したステップG20における一定時間毎の状態監視部7による監視処理の実行を抑止する。すなわち、定期監視のタイマ3を停止させる。
次に、上述の如く構成された実施形態の一例としてのストレージシステム1における、ディスカバリ処理中に異常が発生した際の処理を、図11〜図16を参照しながら説明する。なお、これらの図11〜図16においては、便宜上、説明に用いるコントローラ(Controller)0を上流側とする0系のSASエクスパンダ(SAS Expander)12a及び一部の記憶装置20についてのみ図示し、他の部の図示を省略している。又、以下、0系を構成するコントローラ10a及びSASエクスパンダ12aを例示して説明するが、コントローラ1を上流側とする1系についても同様の処理が行なわれることは言うまでもない。
【0092】
ストレージシステム1において、図11に示すように、例えば、SASエクスパンダ2−0が、その管理するトポロジに変化(状態変化)を検知すると、このSASエクスパンダ2−0は、BC(CHG)をその上位のSASエクスパンダ1−0に対して発行する。なお、この場合、SASエクスパンダ2−0においてはディスカバリ処理は行なわれない。
SASエクスパンダ2−0からBC(CHG)を受信したSASエクスパンダ1−0は、更にその上位のSASエクスパンダ0−0にBC(CHG)を転送し、SASエクスパンダ0−0は、更に、その上位のコントローラ0にBC(CHG)を転送する。
【0093】
BC(CHG)を受信したコントローラ0やSASエクスパンダ0−0,1−0は、図12に示すように、それぞれディスカバリ処理を開始する。これに伴い、SASエクスパンダ0−0,1−0はSelf-Configuring中となる。
また、コントローラ0やSASエクスパンダ0−0,1−0においては、図13に示すように、その配下のSASエクスパンダ1−0がディスカバリ処理中の状態においては、ディスカバリ処理を進めることができず、待機中(Discovery待機中,Self-Configuring中)となる。すなわち、コントローラ0とSASエクスパンダ0−0は、配下のSASエクスパンダ1−0がSelf-Configuring中のため、ディスカバリ中のまま待機する。
【0094】
ここで、SASエクスパンダ1−0のディスカバリ処理が完了した場合には、このSASエクスパンダ1−0から上位のSASエクスパンダ0−0に対してBC(CHG)が発行される。
ところが、図14に示すように、何らかの理由により、SASエクスパンダ1−0においてBC(CHG)が発行されない、もしくは発行されたBC(CHG)がSASエクスパンダ0−0で受信できない場合には、SASエクスパンダ0−0はディスカバリ待機中のままとなり、ディスカバリ処理を完了できない。又、これに伴い、コントローラ0においても、BC(CHG)を受信することができず、ディスカバリ待機中のままディスカバリ処理を完了することができない。
【0095】
本ストレージシステム1においては、SASエクスパンダ0−0において、ディスカバリ処理を開始してから所定時間経過してもディスカバリ処理が完了しない場合には、接続状態管理部4が、ディスカバリが完了しないPhyのディスカバリを中断し、ディスカバリ処理を強制的に完了させる。具体的には、ディスカバリが完了しないPhyについて、状態管理テーブルT1における、そのPhy情報に、実際にはディスカバリ処理が完了していないにもかかわらず“通常状態”を示す情報を設定する(みなし正常設定)。
【0096】
これにより、図15に示すように、SASエクスパンダ0−0のディスカバリ処理が開始され、SASエクスパンダ0−0がDiscovery中もしくはSelf-Configuring中の状態になる。なお、この状態においても、コントローラ0は、配下のSASエクスパンダ0−0がSelf-Configuring中であるのでディスカバリ待機中のままである。
その後、図16に示すように、SASエクスパンダ0−0のSelf-Configuringが完了すると、ディスカバリが完了し、ディスカバリ処理が部分的に完了する。すなわち、SASエクスパンダ1−0のディスカバリ処理は実際には完了していないので、SASエクスパンダ0−0においては、SASエクスパンダ1−0の配下の情報がない状態で、形式上にディスカバリ処理が完了した状態となる。
【0097】
コントローラ0においては、ディスカバリを中断した部分以外のディスカバリ接続情報を取得して、ディスカバリ処理を完了させる。この場合、SASエクスパンダ1−0以下のデバイスがデバイスマップには登録されないことになる。
このように、ディスカバリ処理中においてディスカバリ処理が完了しないSASエクスパンダ12がある場合であっても、CM縮退等になることがなく、SASエクスパンダ1−0以下のデバイスがデバイスマップから消えるだけで、ディスカバリ処理を完了することができる。
【0098】
次に、上述の如くディスカバリ異常となったPhy配下のSASエクスパンダ12を、復旧処理部6がディスカバリ異常の状態から復旧させる手法について説明する。
復旧処理部6は、ディスカバリ異常となったPhy配下のSASエクスパンダ12を再起動することにより復旧(リカバリ)させる。
本ストレージシステム1においては、復旧処理部6は、(1)SES(SCSI Enclosure Service)コマンドを用いた復旧手法、(2)SASのリンクダウン(Link Down)機能を利用した復旧手法、及び、(3)外部経路を使用した復旧手法の少なくともいずれか1つの手法をそなえている。
【0099】
(1)SESコマンドによる復旧手法
図17(a)〜(d)は実施形態の一例としてのストレージシステム1におけるSESコマンドを用いたSASエクスパンダの復旧手法を説明するための図である。
なお、これらの図17(a)〜(d)においては、便宜上、1つのコントローラ10と、このコントローラ10にカスケード接続された2つのSASエクスパンダ12についてのみ図示し、他の部の図示を省略している。なお、これらの図17(a)〜(d)中においては、2つのSASエクスパンダ12のうち、コントローラ10に接続されたSASエクスパンダ12をSASエクスパンダAといい、このSASエクスパンダAの下位に接続されたSASエクスパンダ12をSASエクスパンダBという。
【0100】
図17(a)に示すように、SASエクスパンダAにおいて、SASエクスパンダBからのBC(CHG)が不達である、もしくは、SASエクスパンダBがCONFIGURING=1となり続けている例について説明する。
このような場合には、図17(b)に示すように、SASエクスパンダAにおいては、接続状態管理部4はSASエクスパンダBが接続されるPhyのディスカバリを中断する。又、コントローラ10は、SASエクスパンダAの接続状態のみ取得して、ディスカバリ処理を終了する。
【0101】
ここで、ディスカバリが滞ったPhyのディスカバリ処理を中断したSASエクスパンダAは、図17(c)に示すように、ディスカバリが滞ったPhyに接続されるSASエクスパンダBに対して、通常のディスカバリとは異なるシーケンスでDiscoverコマンドを送信する。SASエクスパンダAは、このDiscoverコマンドに対するSASエクスパンダBからの応答に基づき、このSASエクスパンダBに直結されているデバイスのデバイス情報を取得する。
【0102】
ここで、SASエクスパンダBに直結されているデバイスの中にSSP (Serial SCSI Protocol)デバイスが存在する場合に、SASエクスパンダAは、そのSSPデバイスに対してリブートコマンド(リセットコマンド)を送信することにより、SASエクスパンダBをリブートさせ復旧を試みる。なお、SSPデバイスは、例えば、DISCOVERに対する応答に含まれるバーチャルPhyであるか否かを示す情報(フラグ)や、SCSIコマンドのInquiryにSESデバイスか否かを示す情報が含まれているか否かを確認することにより判断することができる。なお、SSPデバイスの確認は、既知の種々の手法を用いて行なってもよい。
【0103】
この結果、SASエクスパンダBが再起動して、図17(d)に示すように、SASエクスパンダBのSelf-Configuringが完了し、SASエクスパンダBからSASエクスパンダAに対してBC(CHG)が届けば、システム全体の接続状態を取得することができる。すなわち、SASエクスパンダBが再起動し、Phyの再接続後に処理されるSASエクスパンダAからのディスカバリ処理が完了すれば、SASエクスパンダBの復旧は完了し、コントローラ10はシステム全体の接続状態を取得することができる。
【0104】
ここで、実施形態の一例としてのストレージシステム1における復旧処理部6によるSESコマンドによる復旧手法を、図18に示すフローチャート(ステップH10〜H40,J10〜J40)に従って説明する。
リカバリ処理においては、上位のSASエクスパンダ12の情報取得要求出力部2が、下位のSASエクスパンダ12に対してPEPORT GENERALやREPORT ROUTE INFORMATIONを発行する(ステップH10,H20)。下位のSASエクスパンダ12は、これらの情報取得要求に対して応答を行なう(ステップJ10,J20)。
【0105】
上位のSASエクスパンダ12においては、PEPORT GENERALに対する下位のSASエクスパンダ12からの応答のConfiguration値に関係なく、PEPORT GENERALに対して下位のSASエクスパンダ12から行なわれた応答に含まれるNUMBER OF PHYS の数分のDISCOVERを発行する(ステップH30)。
下位のSASエクスパンダ12は、発行された全てのDISCOVERに対して応答を行なう(ステップJ30)。
【0106】
そして、これらのDISCOVERに対する応答においてSSPデバイスが存在する場合には、そのSSPデバイスに対してリブートコマンドを発行する(ステップH40)。SSPにリブートコマンド受信したSASエクスパンダBにおいては、リブート処理を開始する(ステップJ40)。
この結果、SASエクスパンダBが再起動し、Phyの再接続後に処理されるSASエクスパンダAからのディスカバリ処理が完了すれば、SASエクスパンダBの復旧は完了し、通常監視状態(図5のS1参照)に移行する。
【0107】
(2)SASのリンクダウン(Link Down)機能を利用した復旧手法
本ストレージシステム1においては、SASエクスパンダ12は、リピータ133がSASのリンクダウン(Link Down)やリンクアップ(Link Up)を検出する機能をそなえている。又、PLD130は、このリピータ133によるリンクダウン/リンクアップの検出に応じて、スイッチ132の切り替え制御を行ない、エクスパンダチップ120への電力供給を制御可能に構成されている。
【0108】
具体的には、上述の如き、SASのリンクダウン検出によるエクスパンダチップ120の電源OFF処理は、例えば、SASエクスパンダ12内のプロセッサ121を動作させるエクスパンダ・ファームウェアにより実現することができる。
また、上述の如き、SASのリンクアップ検出によるエクスパンダチップ120の電源ON処理は、例えば、SASエクスパンダ12のPLDが有する機能により実現することができる。
【0109】
このように、ディスカバリが停滞したSASエクスパンダ12が、SASのリンクダウン/リンクアップの検出結果に応じて、エクスパンダチップ120への電力供給を制御するリンクダウン機能をそなえている場合には、このリンクダウン機能を用いたリカバリ制御を実現することができる。
図19(a)〜(d)は実施形態の一例としてのストレージシステム1におけるリンクダウン機能を用いたSASエクスパンダの復旧手法を説明するための図である。
【0110】
なお、これらの図19(a)〜(d)においては、便宜上、1つのコントローラ10と、このコントローラ10にカスケード接続された2つのSASエクスパンダ12についてのみ図示し、他の部の図示を省略している。なお、これらの図19(a)〜(d)中においては、2つのSASエクスパンダ12のうち、コントローラ10に接続されたSASエクスパンダ12をSASエクスパンダAといい、このSASエクスパンダAの下位に接続されたSASエクスパンダ12をSASエクスパンダBという。
【0111】
図19(a)に示すように、SASエクスパンダAにおいて、SASエクスパンダBからのBC(CHG)が不達である、もしくは、SASエクスパンダBがCONFIGURING=1となり続けている例について説明する。
このような場合には、図19(b)に示すように、SASエクスパンダAにおいては、接続状態管理部4がSASエクスパンダBが接続されるPhyのディスカバリを中断する。又、コントローラ10は、SASエクスパンダAの接続状態のみ取得して、ディスカバリ処理を終了する。
【0112】
ここで、ディスカバリが滞ったPhyのディスカバリ処理を中断したSASエクスパンダAは、図19(c)に示すように、ディスカバリが滞ったPhyを一定期間ディスエーブル(disable)にし、その後、同Phyをイネーブル(Enable)にする。これにより、復旧処理部6は、接続されるSASエクスパンダBの電源をOFF/ON(リブート)させ、このSASエクスパンダBの復旧を試みる。
【0113】
この結果、SASエクスパンダBが再起動して、図19(d)に示すように、SASエクスパンダBのSelf-Configuringが完了し、SASエクスパンダBからSASエクスパンダAに対してBC(CHG)が届けば、システム全体の接続状態を取得することができる。すなわち、SASエクスパンダBが再起動し、Phyの再接続後に処理されるSASエクスパンダAからのディスカバリ処理が完了すれば、SASエクスパンダBの復旧は完了し、コントローラ10はシステム全体の接続状態を取得することができる。
【0114】
(3)外部経路を使用した復旧手法
図20は実施形態の一例としてのストレージシステム1に関して、外部経路を用いた復旧手法を実現可能な構成を模式的に例示する図、図21はそのSASエクスパンダのハードウェア構成を模式的に示す図である。
本外部経路を使用した復旧手法を実現するには、ストレージシステム1が、例えば、図20,図21に示すようなハードウェア構成をそなえることが望ましい。
【0115】
すなわち、図20に示すように、コントローラ10とSASエクスパンダ12とを、データバス18a,18b,19a−1,19b−1,19a−2,19b−2,19a−3,19b−3とは異なる通信回線(外部経路)201を介して通信可能に接続する。この通信回線201は、例えば、イーサネット(登録商標)やシリアルの規格に基づくものである。
【0116】
このため、図21に示すように、各SASエクスパンダ12においては、エクスパンダチップ120に、シリアル(Serial)ポート210やイーサ(Ether)ポート220をそなえる。
なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その説明は省略する。
【0117】
図22(a)〜(d)は実施形態の一例としてのストレージシステム1における外部経路を用いたSASエクスパンダの復旧手法を説明するための図である。
なお、これらの図22(a)〜(d)においては、便宜上、1つのコントローラ10と、このコントローラ10にカスケード接続された2つのSASエクスパンダ12についてのみ図示し、他の部の図示を省略している。なお、これらの図22(a)〜(d)中においては、2つのSASエクスパンダ12のうち、コントローラ10に接続されたSASエクスパンダ12をSASエクスパンダ(SAS Expander)Aといい、このSASエクスパンダAの下位に接続されたSASエクスパンダ12をSASエクスパンダBという。
【0118】
図22(a)に示すように、SASエクスパンダAにおいて、SASエクスパンダBからのBC(CHG)が不達である、もしくは、SASエクスパンダBがCONFIGURING=1となり続けている例について説明する。
このような場合には、図22(b)に示すように、SASエクスパンダAにおいては、接続状態管理部4がSASエクスパンダBが接続されるPhyのディスカバリを中断する。又、コントローラ10は、SASエクスパンダAの接続状態のみ取得して、ディスカバリ処理を終了する。
【0119】
ここで、ディスカバリが滞ったPhyのディスカバリ処理を中断したSASエクスパンダAは、図22(c)に示すように、ディスカバリが滞ったPhyに接続されるSASエクスパンダBに対し、SASインタフェースではない通信回線201を介してリブートコマンドを送信し、このSASエクスパンダBをリブートさせ復旧を試みる。
この結果、SASエクスパンダBが再起動して、図22(d)に示すように、SASエクスパンダBのSelf-Configuringが完了し、SASエクスパンダBからSASエクスパンダAに対してBC(CHG)が届けば、システム全体の接続状態を取得することができる。すなわち、SASエクスパンダBが再起動し、Phyの再接続後に処理されるSASエクスパンダAからのディスカバリ処理が完了すれば、SASエクスパンダBの復旧は完了し、コントローラ10はシステム全体の接続状態を取得することができる。
【0120】
なお、SASエクスパンダAがSASエクスパンダBの不調を、データバス18aや通信回線201等を介してコントローラ10に通知し、コントローラ10が通信回線10を介してSASエクスパンダBに対してリブートコマンドを送信することにより、SASエクスパンダBの復旧を行なってもよい。
さて、復旧処理部6が、ディスカバリ異常となったPhy配下のSASエクスパンダ12を再起動することにより復旧(リカバリ)させるに際して、再起動処理中のSASエクスパンダ12配下のデバイスに対して、ホストコンピュータ200等からディスクアクセスが行なわれるおそれがある。
【0121】
本ストレージシステム1においては、このような復旧処理部6によるリカバリ処理中には、ディスカバリ異常が生じたPhyにデバイスが実装されていないように偽装する機能をそなえることが望ましい。
図23は実施形態の一例としての状態管理テーブルT1の他の例を示す図である。この図23に示す状態管理テーブルT1においては、Phy ID=2に対して、Phy状態として “異常状態(リカバリ中)”が設定されている。
【0122】
実施形態の一例としてのストレージシステム1のSASエクスパンダ12における、DISCOVERコマンドへの応答手法を、図24に示すフローチャート(ステップL10〜L50)に従って説明する。
上位のSASエクスパンダ12から下位のSASエクスパンダ12に対して、Phy IDの指定とともにDISCOVERコマンドが送信され、下位のSASエクスパンダはこのDISCOVERコマンドを受信する(ステップL10)。下位のSASエクスパンダ12においては、状態管理テーブルT1を参照して、指定されたPhyの状態が異常状態であるか否かを確認する(ステップL20)。
【0123】
指定されたPhyの状態が異常状態でない場合には(ステップL20のNOルート参照)、SASエクスパンダ12は、そのDISCOVERコマンドに対する応答として、実際の情報を格納して作成する(ステップL30)。そして、SASエクスパンダ12は、この作成したDISCOVERコマンドの応答を、上位のSASエクスパンダ12に対して送信して(ステップL40)、処理を終了する。
【0124】
一方、指定されたPhyの状態が異常状態である場合には(ステップL20のYESルート参照)、DISCOVERの応答をデバイスが実装されていない状態にして(ステップL50)、ステップL40に移行する。
ここで、DISCOVERの応答をデバイスが実装されていない状態にする方法としては、例えば、DISCOVERの応答の“ATTACHED DEVICE TYPE field”に“ No device attached (000b)”を、又、“NEGOTIATED PHYSICAL LINK RATE field”に“UNKNOWN (0h)”を、更に、“ATTACHED SATA PORT SELECTOR and ATTACHED SATA DEVICE bits”に“00b”をそれぞれ設定することにより実現することができる。なお、これらのfield,bitはSAS規約にて定義されており、その詳細な説明は省略する。
【0125】
そして、DISCOVERの応答をデバイスが実装されていない状態にする方法は、これに限定されるものではなく、他の種々の手法を用いて実現してもよい。
また、復旧処理部6が、ディスカバリ異常となったPhy配下のSASエクスパンダ12を再起動することにより復旧(リカバリ)させるに際して、SASエクスパンダ12の再起動によりBC(CHG)が上位のSASエクスパンダ12に送信され、これによりディスカバリ処理が生じ、ストレージシステム1の処理に影響が生じる。このような影響を阻止するために、本ストレージシステム1においては、復旧処理部6によるリカバリ処理に関しては、BC(CHG)の発行を抑止する機能をそなえている。
【0126】
実施形態の一例としてのストレージシステム1のSASエクスパンダ12によるBC(CHG)の発行手法を、図25に示すフローチャート(ステップM10〜M50)に従って説明する。
SASエクスパンダ12において、状態監視部7がPhyの状態変化を検出した場合や(ステップM10)、Phyに接続された下位のSASエクスパンダ12からBC(CHG)を受信した場合に(ステップM20)、接続状態管理部4は、状態変化が検出されたPhyもしくはBC(CHG)を受信したPhyの状態が異常状態であるか否かを確認する。(ステップM30)。なお、Phyの異常状態としては、“リカバリ中のディスカバリ待ち”や“ディスカバリ処理状態”も含むものとする。
【0127】
そして、状態変化が検出されたPhyもしくはBC(CHG)を受信したPhyの状態が異常状態ではない場合には(ステップM30のNOルート参照)、プロセッサ120はBC(CHG)を発行する。一方、状態変化が検出されたPhyもしくはBC(CHG)を受信したPhyの状態が異常状態である場合には(ステップM30のYESルート参照)、プロセッサ120はBC(CHG)の発行を抑止する。
【0128】
次に、実施形態の一例としてのストレージシステム1におけるSASエクスパンダAによるSASエクスパンダBのリカバリ処理を、図26に示すフローチャート(ステップK10〜K110)に従って説明する。
ディスカバリ異常が発生すると、SASエクスパンダAの状態監視部7は、状態管理テーブルT1において、ディスカバリ異常が発生したPhy(対象Phyという場合がある)について、対象Phyの状態を異常状態(リカバリ対象)に移行(設定)する(ステップK10)。
【0129】
また、SASエクスパンダAは、DISCOVERには、対象Phyにデバイスが接続していないように見えるよう応答する(ステップK20)。又、SASエクスパンダAは、対象Phyの変化を検出してもBC(CHG)を発行しないよう設定する(ステップK30)。
その後、SASエクスパンダAの復旧処理部6は、対象Phy配下のSASエクスパンダBをリブートする(ステップK40)。なお、このリカバリ処理においては、復旧処理部6は、上述した(1)、SESコマンドを用いた復旧手法、(2)SASのリンクダウン(Link Down)機能を利用した復旧手法、及び、(3)外部経路を使用した復旧手法のいずの手法を用いてもよい。
【0130】
対象Phyにて接続確立かBC(CHG)を受けると、SASエクスパンダAはディスカバリ処理を実施する(ステップK50)。そして、このディスカバリ処理が成功したか否かの確認を行ない(ステップK60)、ディスカバリ処理が失敗した場合には(ステップK60のNOルート参照)、状態管理テーブルT1において、対象Phyの状態を異常状態(確定)に設定(移行)して(ステップK70)、処理を終了する。
【0131】
一方、ディスカバリ処理が成功した場合には(ステップK60のYESルート参照)、接続状態管理部4は、対象PhyにかかるPhy状態を通常状態に移行する(ステップK80)。
そして、DISCOVERの対象Phyの応答として、実際の情報を応答する(ステップK90)。又、プロセッサ120は、対象Phyの変化を検出した場合にBC(CHG)を発行するように設定する(ステップK100)。
【0132】
その後、配下のSASエクスパンダ12をデバイスマップから見えるようにしたためBC(CHG)を発行して(ステップK110)、処理を終了する。
図27は実施形態の一例としてのストレージシステム1におけるリカバリ処理を実装した場合のExpander Phyの状態遷移を示す図である。なお、図中、既述の記載と同一の箇所は同一もしくは略同一の処理を示しているので、その説明は省略する。
【0133】
この図27に示す状態遷移図は、図5に示した状態遷移図に対して、主に異常状態(図27のS6′参照)に関する処理が異なる。すなわち、情報取得要求出力部2による情報取得要求のリトライ数が所定値以上となった場合(ディスカバリ・リトライアウト)には、異常状態(リカバリ対象)に移行する(図5中のS6参照)。この異常状態(リカバリ対象)においては、接続状態管理部4は、異常状態が検出されたPhyに対して、リカバリ対象である旨を示す情報(リカバリ対象情報)を設定する。
【0134】
このリカバリ対象情報は、例えば、Phy IDに対してリカバリ対象である旨を示す識別情報(フラグ等)を対応付けることにより構成され、例えば、メモリ124等の所定の領域に格納される。復旧処理部6は、このリカバリ対象情報を参照して、復旧処理の対象のPhyを判断しする。すなわち、復旧処理部6は、このリカバリ対象である旨の識別情報が設定されたPhyに接続されたSASエクスパンダ12をリブート(リカバリ)対象とする。又、上述の図26のフローチャートのステップK80に示したように、異常状態(リカバリ対象)においてリカバリが成功した場合には、通常状態(図27のS1参照)に遷移する。
【0135】
図28は実施形態の一例としてのストレージシステム1における異常状態にあるPhyの状態遷移を示す図である。なお、リカバリ処理中にリカバリ対象のSASエクスパンダ12が交換されることも考慮して、リカバリ処理全体の時間監視は行なわない。
異常状態(リカバリ対象)のPhyに関して、復旧処理部6が対象Phyに接続されるSASエクスパンダ12をリブートする(図28のS01参照)。これにより対象Phyの状態は異常状態(リカバリ中)になる(図28のS02参照)。
【0136】
ここで、異常状態(リカバリ中)において、下位のSASエクスパンダ12からBC(CHG)を受信した場合には、対象Phyの状態はディスカバリ処理(リカバリ中)となる(図28のS03参照)。又、異常状態(リカバリ中)(図28のS02参照)において、接続切断が生じた場合には、接続待ちの状態に移行する(図28のS04参照)。
そして、この接続待ちの状態において接続が確立すると、ディスカバリ処理(リカバリ中)に移行する(図28のS03参照)。
【0137】
また、ディスカバリ処理(リカバリ中)においてPEPORT GENERALの応答がCONFIGURAING=1となった場合には、対象Phyの状態はディスカバリ待ち(リカバリ中)に移行する(図28のS05参照)。又、このディスカバリ待ち(リカバリ中)においてBC(CHG)を受信した場合においても、対象Phyの状態はディスカバリ処理(リカバリ中)となる(図28のS03参照)。更に、ディスカバリ処理(リカバリ中)において、ディスカバリが完了した場合には、通常状態に移行する(図28のS06参照)。
【0138】
また、ディスカバリ処理(リカバリ中)においては(図28のS03参照)、ディスカバリ処理開始時に状態監視が開始される(図28のS07参照)。なお、この状態監視は、ディスカバリ処理の完了時に停止する。
また、この状態監視においてディスカバリのリトライアウトが生じた場合には、対象Phyの状態は異常状態(確定)となる(図28のS08参照)。そして、異常状態(確定)の状態において接続切断が生じた場合には接続待ちの状態に移行する(図28のS04参照)。リカバリ処理後にリカバリ対象のSASエクスパンダ12が交換されることを考慮して、接続切断状態だけは監視されるのである。
【0139】
このように、実施形態の一例としてのストレージシステム1においては、接続状態管理部4が、タイマ3による測定の結果、ディスカバリ要求の出力、すなわち、ディスカバリ処理を開始してから所定時間経過してもディスカバリ処理が完了していない場合には、状態情報テーブルT1において、そのディスカバリ異常のPhyに対して正常状態である旨(通常状態)の設定(みなし正常設定)を行なう。これにより、ディスカバリ処理の完了待ちの状態が解消され、ディスカバリ処理を完了させることができ、その上位のSASエクスパンダ12やコントローラ10においてもディスカバリ処理を実行することができる。すなわち、本ストレージシステム1において縮退等を行なうことなく安定して運用することができる。
【0140】
従って、ディスカバリ処理が終わらないような状況が発生したとしても、その異常が発生しているPhy配下のデバイスの接続状態のみが取得できないだけで済み、それよりも上位の正常な部分については接続状態を取得することができる。
また、タイマ3による測定の結果、ディスカバリ処理の開始から所定時間経過してもディスカバリ処理が完了していない場合にリトライを行ない、リトライカウンタ51の計数値が所定の閾値とを比較する。そして、リトライカウンタ51の値が閾値を超えたことを検知した場合に、接続状態管理部4が、ディスカバリ異常のPhyに対して正常状態である旨(通常状態)の設定を行なう。このような閾値を適宜設定することにより、本ストレージシステム1の動作を、安定性重視や継続動作重視等の目的に併せて運用することができる。
【0141】
さらに、復旧処理部6が、ディスカバリ異常となったPhy配下のSASエクスパンダ12を再起動させることによりディスカバリ異常の状態から復旧させるので、このSASエクスパンダ12及びこのSASエクスパンダ12に接続されているデバイスを安定して動作させることができる。従って、本ストレージシステム1を安定して運用することができ、信頼性を向上することができる
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【0142】
例えば、復旧処理部6による、ディスカバリ異常となったPhy配下のSASエクスパンダ12を再起動する方法は、上述した実施形態に限定されるものではなく種々変形して実施することができる。又,この復旧処理部6によるSASエクスパンダ12の復旧方法も、そのSASエクスパンダ12を再起動させることに限定されるものではない。例えば、特定のコマンドをSASエクスパンダ12に送信することにより、SASエクスパンダ12を復旧させてもよい。
【0143】
また、上述した実施形態においては、ストレージシステム1が3つのDE30−1,30−2,30−3をそなえているが、これに限定されるものではなく、2つ以下もしくは4つ以上のDE30をそなえてもよい。
同様に、上述した実施形態においては、CE140や各DE30に3つの記憶装置20をそなえているが、これに限定されるものではなく、2つ以下もしくは4つ以上の記憶装置20をそなえてもよい。
【0144】
また、SASエクスパンダ12のハードウェア構成は上述した実施形態に限定されるものではなく、例えば、エクスパンダチップ120にそなえられるPhyの数等、適宜変更して実施することができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【0145】
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
1以上の記憶装置が接続されるとともに、他の記憶装置接続装置を接続可能な記憶装置接続装置であって、
該他の記憶装置接続装置に対して情報収集処理にかかる情報取得要求を出力する情報取得要求出力部と、
該情報取得要求出力部が該情報取得要求を出力してからの経過時間を測定するタイマと、
該情報取得要求に対する該他の記憶装置接続装置からの応答に基づいて、該他の記憶装置接続装置に関する接続状態を管理する接続状態管理部とをそなえ、
該接続状態管理部が、
該タイマによる測定の結果、情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない場合に、該情報取得要求を行なった該他の記憶装置接続装置に関して正常状態である旨の設定を行なうことを特徴とする、記憶装置接続装置。
【0146】
(付記2)
該タイマによる測定の結果、情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない場合に、該情報取得要求出力部が、該情報取得要求を再度出力することを特徴とする、付記1記載の記憶装置接続装置。
(付記3)
該情報取得要求出力部による該情報取得要求の出力回数を計数するカウンタをそなえ、
該接続状態管理部が、
該カウンタの計数値が所定の閾値を超えたことを検知した場合に、該情報取得要求を行なった該他の記憶装置接続装置に関して該正常状態である旨の設定を行なうことを特徴とする、付記2記載の記憶装置接続装置。
【0147】
(付記4)
該他の記憶装置接続装置に対して、当該他の記憶装置接続装置の状態を表わす状態情報を関連付けて記録する状態情報格納部をそなえ、
該接続状態管理部が、該状態情報格納部に格納された該状態情報に基づいて、該他の記憶装置接続装置に関する接続状態を管理することを特徴とする、付記1〜付記3のいずれか1項に記載の記憶装置接続装置。
【0148】
(付記5)
該情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない該他の記憶装置接続装置を再起動させることにより、当該他の記憶装置接続装置の復旧を行なう復旧処理部をそなえることを特徴とする、付記1〜付記4のいずれか1項に記載の記憶装置接続装置。
【0149】
(付記6)
該復旧処理部が、該他の記憶装置接続装置に対して、物理リンクポートを介して再起動コマンドを送信することにより、当該他の記憶装置接続装置を再起動させることを特徴とする、付記5記載の記憶装置接続装置。
(付記7)
該復旧処理部が、該他の記憶装置接続装置に対して、物理リンクポートとは異なる外部経路を介して再起動コマンドを送信することにより、当該他の記憶装置接続装置を再起動させることを特徴とする、付記5記載の記憶装置接続装置。
【0150】
(付記8)
該復旧処理部が、当該他の記憶装置接続装置の電源断後に電源再投入を行なう電源制御を行なうことにより、当該他の記憶装置接続装置を再起動させることを特徴とする、付記5記載の記憶装置接続装置。
(付記9)
1以上の記憶装置と複数の記憶装置接続部とをそなえたストレージ装置であって、
該複数の記憶装置接続部のうち一の該記憶装置接続部が、
該複数の記憶装置接続部のうち他の記憶装置接続部に対して情報収集処理にかかる情報取得要求を出力する情報取得要求出力部と、
該情報取得要求出力部が該情報取得要求を出力してからの経過時間を測定するタイマと、
該情報取得要求に対する該他の記憶装置接続部からの応答に基づいて、該他の記憶装置接続部に関する接続状態を管理する接続状態管理部とをそなえ、
該接続状態管理部が、
該タイマによる測定の結果、情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない場合に、該情報収集処理が完了していない該他の記憶装置接続部に関して正常状態である旨の設定を行なうことを特徴とする、ストレージ装置。
【0151】
(付記10)
該タイマによる測定の結果、情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない場合に、該情報取得要求出力部が、該情報取得要求を再度出力することを特徴とする、付記9記載のストレージ装置。
(付記11)
該情報取得要求出力部による該情報取得要求の出力回数を計数するカウンタをそなえ、
該接続状態管理部が、
該カウンタの計数値が所定の閾値を超えたことを検知した場合に、該情報取得要求を行なった該他の記憶装置接続部に関して該正常状態である旨の設定を行なうことを特徴とする、付記10記載のストレージ装置。
【0152】
(付記12)
該他の記憶装置接続部に対して、当該他の記憶装置接続部の状態を表わす状態情報を関連付けて記録する状態情報格納部をそなえ、
該接続状態管理部が、該状態情報格納部に格納された該状態情報に基づいて、該他の記憶装置接続部に関する接続状態を管理することを特徴とする、付記9〜付記1のいずれか1項に記載のストレージ装置。
【0153】
(付記13)
該情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない該他の記憶装置接続部を再起動させることにより、当該他の記憶装置接続部の復旧を行なう復旧処理部をそなえることを特徴とする、付記9〜付記12のいずれか1項に記載のストレージ装置。
【0154】
(付記14)
該復旧処理部が、該他の記憶装置接続部に対して、物理リンクポートを介して再起動コマンドを送信することにより、当該他の記憶装置接続部を再起動させることを特徴とする、付記13記載のストレージ装置。
(付記15)
該復旧処理部が、該他の記憶装置接続部に対して、物理リンクポートとは異なる外部経路を介して再起動コマンドを送信することにより、当該他の記憶装置接続部を再起動させることを特徴とする、付記13記載のストレージ装置。
【0155】
(付記16)
該復旧処理部が、当該他の記憶装置接続部の電源断後に電源再投入を行なう電源制御を行なうことにより、当該他の記憶装置接続部を再起動させることを特徴とする、付記13記載のストレージ装置。
(付記17)
1以上の記憶装置と複数の記憶装置接続部とをそなえたストレージ装置における情報管理方法であって、
該複数の記憶装置接続部のうち一の記憶装置接続部において、
該複数の記憶装置接続部のうち他の記憶装置接続部に対して情報収集処理にかかる情報取得要求を出力する情報取得要求出力ステップと、
該情報取得要求出力部が該情報取得要求を出力してからの経過時間を測定する計時ステップと、
該情報取得要求に対する該他の記憶装置接続部からの応答に基づいて、該他の記憶装置接続部に関する接続状態を管理する接続状態管理ステップとをそなえ、
該接続状態管理ステップにおいて、
該計時ステップにおける測定の結果、情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない場合に、該情報収集処理が完了していない該他の記憶装置接続部に関して正常状態である旨の設定を行なうことを特徴とする、情報管理方法。
【0156】
(付記18)
該情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない該他の記憶装置接続部を再起動させることにより、当該他の記憶装置接続部の復旧を行なう復旧処理ステップをそなえることを特徴とする、付記17記載の情報管理方法。
(付記19)
1以上の記憶装置が接続されるとともに他の記憶装置接続装置を接続可能な記憶装置接続装置において、該他の記憶装置接続装置にかかる情報を管理する情報管理機能をコンピュータに実行させるための情報管理プログラムであって、
該他の記憶装置接続装置に対して情報収集処理にかかる情報取得要求を出力する情報取得要求出力部と、
該情報取得要求出力部が該情報取得要求を出力してからの経過時間を測定するタイマと、
該情報取得要求に対する該他の記憶装置接続装置からの応答に基づいて、該他の記憶装置接続装置に関する接続状態を管理する接続状態管理部として、該コンピュータを機能させるとともに、
該接続状態管理部が、
該タイマによる測定の結果、情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない場合に、該情報収集処理が完了していない該他の記憶装置接続装置に関して正常状態である旨の設定を行なうことを特徴とする、情報管理プログラム。
【0157】
(付記20)
該情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない該他の記憶装置接続装置を再起動させることにより、当該他の記憶装置接続装置の復旧を行なう復旧処理部として、該コンピュータ機能させることを特徴とする、付記19記載の情報管理プログラム。
【符号の説明】
【0158】
1 ストレージシステム(ストレージ装置)
2 情報取得要求出力部
3 タイマ
4 接続状態管理部
5 リトライカウンタ制御部
6 復旧処理部
7 状態監視部
10,10a,10b コントローラ
12,12a,12b SASエクスパンダ(記憶装置接続装置,記憶装置接続部)
17a,
15,16a,16b,18a,18b,19a−1,19b−1,19a−2,19b−2,19a−3,19b−3,191a,191b データパス
20 記憶装置
30,30−1,30−2,30−3 DE
51 リトライカウンタ(カウンタ)
120 エクスパンダチップ
121 プロセッサ
122 SMP
123 SSP
124 メモリ
130 PLD
131 電源
132 スイッチ
133 リピータ
140 CE
T1 状態管理テーブル(状態情報)
T1−1 Phyの状態テーブル部
t1−2 Self-Configuring Flag部
200 ホストコンピュータ

【特許請求の範囲】
【請求項1】
1以上の記憶装置が接続されるとともに、他の記憶装置接続装置を接続可能な記憶装置接続装置であって、
該他の記憶装置接続装置に対して情報収集処理にかかる情報取得要求を出力する情報取得要求出力部と、
該情報取得要求出力部が該情報取得要求を出力してからの経過時間を測定するタイマと、
該情報取得要求に対する該他の記憶装置接続装置からの応答に基づいて、該他の記憶装置接続装置に関する接続状態を管理する接続状態管理部とをそなえ、
該接続状態管理部が、
該タイマによる測定の結果、情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない場合に、該情報取得要求を行なった該他の記憶装置接続装置に関して正常状態である旨の設定を行なうことを特徴とする、記憶装置接続装置。
【請求項2】
該タイマによる測定の結果、情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない場合に、該情報取得要求出力部が、該情報取得要求を再度出力することを特徴とする、請求項1記載の記憶装置接続装置。
【請求項3】
該情報取得要求出力部による該情報取得要求の出力回数を計数するカウンタをそなえ、
該接続状態管理部が、
該カウンタの計数値が所定の閾値を超えたことを検知した場合に、該情報取得要求を行なった該他の記憶装置接続装置に関して該正常状態である旨の設定を行なうことを特徴とする、請求項2記載の記憶装置接続装置。
【請求項4】
該他の記憶装置接続装置に対して、当該他の記憶装置接続装置の状態を表わす状態情報を関連付けて記録する状態情報格納部をそなえ、
該接続状態管理部が、該状態情報格納部に格納された該状態情報に基づいて、該他の記憶装置接続装置に関する接続状態を管理することを特徴とする、請求項1〜請求項3のいずれか1項に記載の記憶装置接続装置。
【請求項5】
該情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない該他の記憶装置接続装置を再起動させることにより、当該他の記憶装置接続装置の復旧を行なう復旧処理部をそなえることを特徴とする、請求項1〜請求項4のいずれか1項に記載の記憶装置接続装置。
【請求項6】
1以上の記憶装置と複数の記憶装置接続部とをそなえたストレージ装置であって、
該複数の記憶装置接続部のうち一の該記憶装置接続部が、
該複数の記憶装置接続部のうち他の記憶装置接続部に対して情報収集処理にかかる情報取得要求を出力する情報取得要求出力部と、
該情報取得要求出力部が該情報取得要求を出力してからの経過時間を測定するタイマと、
該情報取得要求に対する該他の記憶装置接続部からの応答に基づいて、該他の記憶装置接続部に関する接続状態を管理する接続状態管理部とをそなえ、
該接続状態管理部が、
該タイマによる測定の結果、情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない場合に、該情報収集処理が完了していない該他の記憶装置接続部に関して正常状態である旨の設定を行なうことを特徴とする、ストレージ装置。
【請求項7】
1以上の記憶装置と複数の記憶装置接続部とをそなえたストレージ装置における情報管理方法であって、
該複数の記憶装置接続部のうち一の記憶装置接続部において、
該複数の記憶装置接続部のうち他の記憶装置接続部に対して情報収集処理にかかる情報取得要求を出力する情報取得要求出力ステップと、
該情報取得要求出力部が該情報取得要求を出力してからの経過時間を測定する計時ステップと、
該情報取得要求に対する該他の記憶装置接続部からの応答に基づいて、該他の記憶装置接続部に関する接続状態を管理する接続状態管理ステップとをそなえ、
該接続状態管理ステップにおいて、
該計時ステップにおける測定の結果、情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない場合に、該情報収集処理が完了していない該他の記憶装置接続部に関して正常状態である旨の設定を行なうことを特徴とする、情報管理方法。
【請求項8】
1以上の記憶装置が接続されるとともに他の記憶装置接続装置を接続可能な記憶装置接続装置において、該他の記憶装置接続装置にかかる情報を管理する情報管理機能をコンピュータに実行させるための情報管理プログラムであって、
該他の記憶装置接続装置に対して情報収集処理にかかる情報取得要求を出力する情報取得要求出力部と、
該情報取得要求出力部が該情報取得要求を出力してからの経過時間を測定するタイマと、
該情報取得要求に対する該他の記憶装置接続装置からの応答に基づいて、該他の記憶装置接続装置に関する接続状態を管理する接続状態管理部として、該コンピュータを機能させるとともに、
該接続状態管理部が、
該タイマによる測定の結果、情報取得要求の出力から所定時間経過しても当該情報収集処理が完了していない場合に、該情報収集処理が完了していない該他の記憶装置接続装置に関して正常状態である旨の設定を行なうことを特徴とする、情報管理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate


【公開番号】特開2011−129052(P2011−129052A)
【公開日】平成23年6月30日(2011.6.30)
【国際特許分類】
【出願番号】特願2009−289521(P2009−289521)
【出願日】平成21年12月21日(2009.12.21)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】