(57)【特許請求の範囲】
【請求項１】
サーバに搭載されたＨＢＡ（Host  Bus  Adapter）が有する複数のアドレスのいずれか１つのアドレスが前記ＨＢＡと接続する複数の接続ポートに割り当てられるワイドリンクを搭載したストレージ装置であって、
前記複数の接続ポートのうち、いずれかの接続ポートの状態に変化があったことを検出する検出部と、
前記検出部によって変化が検出されたとき、前記複数の接続ポートに割り当てられているアドレスを取得するアドレス取得部と、
前記アドレス取得部によって取得されたアドレスおよび前記複数の接続ポートの識別情報に基づいて、前記複数の接続ポートと接続する前記ＨＢＡが有する可能性のあるアドレスを管理するアドレス管理部と
を有することを特徴とするストレージ装置。
【請求項２】
前記ＨＢＡと接続する複数の接続ポートに割り当てられる可能性のあるアドレスを、接続ポートの識別子とともに記憶する記憶部をさらに有し、
前記アドレス管理部は、
前記アドレス取得部によって取得されたアドレスが、未使用の接続ポートに割り当てられていた場合、当該アドレスに基づいて、同一のＨＢＡであれば取り得る可能性のある連続するアドレスを予測し、予測したアドレスを前記記憶部に格納するアドレス予測部
を有することを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記アドレス管理部は、
前記アドレス取得部によって取得されたアドレスが、既に使用中の接続ポートに予測外のアドレスとして割り当てられていた場合、前記ＨＢＡと接続する接続ポート毎に前記ＨＢＡによって物理的に割り振られたアドレスを取得し、取得した接続ポート毎のアドレスを前記記憶部に格納する物理アドレス取得部
を有することを特徴とする請求項２に記載のストレージ装置。
【請求項４】
サーバに搭載されたＨＢＡ（Host  Bus  Adapter）が有する複数のアドレスのいずれか１つのアドレスが割り当てられる複数の接続ポートのうち、いずれかの接続ポートの状態に変化があったことを検出する検出部と、
前記検出部によって変化が検出されたとき、前記複数の接続ポートに割り当てられているアドレスを取得するアドレス取得部と、
前記アドレス取得部によって取得されたアドレスおよび前記複数の接続ポートの識別情報に基づいて、前記複数の接続ポートと接続する前記ＨＢＡが有する可能性のあるアドレスを管理するアドレス管理部と
を有することを特徴とするコントローラ。
【請求項５】
サーバに搭載されたＨＢＡ（Host  Bus  Adapter）が有する複数のアドレスを前記サーバと接続するストレージ装置が管理するアドレス管理方法であって、
前記ＨＢＡが有する複数のアドレスのいずれか１つのアドレスが割り当てられる複数の接続ポートのうち、いずれかの接続ポートの状態に変化があったことを検出し、
該検出処理によって変化が検出されたとき、前記複数の接続ポートに割り当てられているアドレスを取得し、
該取得処理によって取得されたアドレスが、未使用の接続ポートに割り当てられていた場合、当該アドレスに基づいて、同一のＨＢＡであれば取り得る可能性のある連続するアドレスを予測し、予測したアドレスを接続ポートの識別子とともに記憶部に格納し、
該取得処理によって取得されたアドレスが、既に使用中の接続ポートに予測外のアドレスとして割り当てられていた場合、前記ＨＢＡと接続する接続ポート毎に前記ＨＢＡによって物理的に割り振られたアドレスを取得し、取得した接続ポート毎のアドレスを接続ポートの識別子とともに前記記憶部に格納する
処理を含むことを特徴とするアドレス管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置等に関する。
【背景技術】
【０００２】
ホストのＨＢＡ（Host  Bus  Adapter）とストレージとを接続する入出力インタフェースとしてＳＡＳ（Serial  Attached  SCSI）のワイドリンクがある。ＳＡＳのワイドリンクとは、複数本のＳＡＳを１本の論理ポートとして使用する規格であり、複数本のＳＡＳを同一のＳＡＳアドレスとして使用する。ＳＡＳのワイドリンクには、ＨＢＡがＳＡＳアドレスを固定的に割り振る固定割付タイプと、ＨＢＡがＳＡＳアドレスをナローリンクとしても共用可能とするワイド／ナロー共用タイプとがある。
【０００３】
図９Ａは、固定割付タイプのＨＢＡを説明する図である。図９Ａに示すように、ホストに搭載されたＨＢＡは、４本のＳＡＳを備えるワイドリンクに、固定のＳＡＳアドレスＡ０を割り付ける。そして、ホストは、ストレージに対して入出力要求を行う際、ＨＢＡによって割り付けられたＳＡＳアドレスＡ０を、ホストを識別するアドレスとして、ＳＡＳのスイッチ（Expander）へ出力する。
【０００４】
また、図９Ｂは、ワイド／ナロー共用タイプのＨＢＡを説明する図である。図９Ｂに示すように、ナローリンクとして使用する場合には、ホストに搭載されたＨＢＡは、４本のＳＡＳに、予め割り振られたそれぞれのＳＡＳアドレスＡ１〜Ａ４を割り付ける。一方、ワイドリンクとして使用する場合には、ホストに搭載されたＨＢＡは、ナローリンクとして予め割り振られた４個のＳＡＳアドレスＡ１〜Ａ４のうちいずれか１つを、ワイドリンクのＳＡＳアドレスとして割り付ける。そして、ホストは、ストレージに対して入出力要求を行う際、ＨＢＡによって割り付けられたＳＡＳアドレスを、ホストを識別するアドレスとして、ＳＡＳのスイッチへ出力する。ここで、ＨＢＡによって割り付けられるＳＡＳアドレスは、ＨＢＡによってはケーブルの抜き差し等によって変化する場合がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１９７７８０号公報
【特許文献２】特開２００５−３１００４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ケーブルの抜き差し等によってＨＢＡのＳＡＳアドレスが変化すると、ストレージ側が、変化のあったＳＡＳアドレスに対応できないという問題があった。すなわち、ホストが、変化した後のＳＡＳアドレスを、ホストを識別するアドレスとして、ストレージに対して入出力要求を行っても、ストレージ側では当該ＳＡＳアドレスを認識できない。
【０００７】
開示の技術は、上記に鑑みてなされたものであって、ケーブルの抜き差し等によってＨＢＡのＳＡＳアドレスが変化しても、ストレージ側が、変化のあったＳＡＳアドレスに対応できるストレージ装置等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示するストレージ装置は、一つの態様において、サーバが有する複数のアドレスのいずれか１つのアドレスが前記サーバと接続する複数の接続ポートに割り当てられるワイドリンクを搭載したストレージ装置であって、前記複数の接続ポートのうち、いずれかの接続ポートの状態に変化があったことを検出する検出部と、前記検出部によって変化が検出されたとき、前記複数の接続ポートに割り当てられているアドレスを取得するアドレス取得部と、前記取得部によって取得されたアドレスおよび前記複数の接続ポートの識別情報に基づいて、前記複数の接続ポートと接続するサーバが有する可能性のあるアドレスを管理するアドレス管理部とを有する。
【発明の効果】
【０００９】
本願の開示するストレージ装置の一つの態様によれば、ケーブルの抜き差し等によってＨＢＡのアドレスが変化しても、ストレージ側が、変化のあったアドレスに対応できるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例に係るストレージ装置の構成を示す機能ブロック図である。
【図２】図２は、実施例に係るアドレス管理テーブルのデータ構造を示す図である。
【図３】図３は、アドレス予測の具体例を説明する図である。
【図４】図４は、物理アドレス取得の具体例を説明する図である。
【図５】図５は、実施例に係るアドレス管理の手順を示すフローチャートである。
【図６】図６は、実施例に係るアドレス予測の手順を示すフローチャートである。
【図７】図７は、実施例に係る物理アドレス取得の手順を示すフローチャートである。
【図８】図８は、実施例に係るＲＡＩＤコントローラのハードウェア構成の一例を示す図である。
【図９Ａ】図９Ａは、固定割付タイプのＨＢＡを説明する図である。
【図９Ｂ】図９Ｂは、ワイド／ナロー共用タイプのＨＢＡを説明する図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示するストレージ装置、コントローラおよびアドレス管理方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例では、ストレージ装置にナローリンクも共用可能なＳＡＳ（Serial  Attached  SCSI）のワイドリンクを適用する場合を示す。しかし、本実施例によりこの発明が限定されるものではない。
【実施例】
【００１２】
［実施例に係るストレージ装置の構成］
図１は、実施例に係るストレージ装置の構成を示す機能ブロック図である。図１に示すように、ストレージ装置１は、ＳＡＳスイッチ１０とＲＡＩＤコントローラ２０とストレージディスク５０−１〜５０−ｎとを有する。ストレージ装置１は、上位装置であるホスト２が有する複数のＳＡＳアドレスのいずれか１つがＳＡＳスイッチ１０の複数の物理的なポート（ＰＨＹ：physical  layer）に割り当てられるＳＡＳのワイドリンクを搭載する。
【００１３】
ＳＡＳスイッチ１０は、エクスパンダ（Expander）を示し、上位装置であるホスト２およびＲＡＩＤコントローラ２０間の入出力データを中継する。ＳＡＳスイッチ１０は、ホスト２およびＲＡＩＤコントローラ２０それぞれとＳＡＳのワイドリンクを用いて接続する。さらに、ＳＡＳスイッチ１０は、複数のポートｐ（ｐ−１〜ｐ−ｎ）（ｎ＞１）を有する。すなわち、ホスト２のＨＢＡ（Host  Bus  Adapter）２１が、予め割り振る複数のＳＡＳアドレスのうちいずれか１つのＳＡＳアドレスを、ワイドリンクのＳＡＳアドレスとして割り付ける。この割り付けたＳＡＳアドレスがＳＡＳスイッチ１０の複数のポートｐ（ｐ−１〜ｐ−ｎ）に割り当てられる。例えば、ホスト２のＨＢＡ２１によって割り付けられたＳＡＳアドレスがＳＡＳスイッチ１０のポートｐ−１〜ポートｐ−ｋ（１＜ｋ＜ｎ）それぞれに割り当てられる。
【００１４】
また、ＳＡＳスイッチ１０は、ＨＢＡ２１によって割り付けられたＳＡＳアドレスを含む入出力要求をホスト２から取得すると、取得した入出力要求をＲＡＩＤコントローラ２０に出力する。ＲＡＩＤコントローラ２０は、入出力要求に含まれたＳＡＳアドレスによって、入出力要求の要求元のホスト２を識別する。
【００１５】
また、ＳＡＳスイッチ１０は、ポートｐの状態に変化があった場合、ＲＡＩＤコントローラ２０にブロードキャストを配信する。例えば、ＳＡＳスイッチ１０は、ポートｐの状態に変化があった場合に配信するブロードキャストのchangeプリミティブをＲＡＩＤコントローラ２０に配信する。ここで、ポートｐの状態に変化があった場合とは、例えば、未使用のポートｐに新たなケーブルが差し込まれた場合、すなわち新たなＨＢＡがＳＡＳトポロジ上に追加された場合がある。また、別の例では、既に使用中のポートｐでケーブルが抜き差しされた場合、すなわちＨＢＡ２１がＳＡＳアドレスを再割り付けした場合がある。そして、ＳＡＳスイッチ１０がブロードキャストをＲＡＩＤコントローラ２０に配信すると、ＲＡＩＤコントローラ２０が、後述するアドレス管理処理を行う。
【００１６】
ＲＡＩＤコントローラ２０は、制御部３０と、記憶部４０とを有する。制御部３０は、ＳＡＳ制御部３１と、ＨＤＤ制御部３２と、キャッシュ制御部３３と、保守／設定制御部３４とを有する。なお、制御部３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路またはＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路である。
【００１７】
記憶部４０は、アドレス管理テーブル４１を有する。記憶部４０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（flash  memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置である。アドレス管理テーブル４１は、ホスト２と接続するポートｐ（ＰＨＹ）に割り当てられる可能性のあるＳＡＳアドレスを、ポートｐの識別子とともに記憶する。かかるアドレス管理テーブル４１の構成については、後述するものとする。
【００１８】
ＳＡＳ制御部３１は、ＳＡＳスイッチ１０を介してＳＡＳのワイドリンクを制御しながら、ホスト２を識別するＳＡＳアドレスを管理する。さらに、ＳＡＳ制御部３１は、変化検出部３１１と、アドレス取得部３１２と、アドレス予測部３１３と、物理アドレス取得部３１４とを有する。
【００１９】
変化検出部３１１は、ＳＡＳスイッチ１０の複数のポートｐのうち、いずれかのポートｐの状態に変化があったことを検出する。例えば、変化検出部３１１は、未使用のポートｐに新たなケーブルが差し込まれた場合や既に使用中のポートｐでケーブルが抜き差しされた場合に、ＳＡＳスイッチ１０から配信されたブロードキャストのchangeプリミティブを検出する。
【００２０】
アドレス取得部３１２は、変化検出部３１１によってポートｐの状態に変化があったことが検出されたとき、複数のポートｐに割り当てられているＳＡＳアドレスを取得する。例えば、アドレス取得部３１２は、変化検出部３１１によってブロードキャストが検出されたとき、ＳＡＳスイッチ１０に対してディスカバー（Discover）プロセスを実行する。そして、アドレス取得部３１２は、ＳＡＳトポロジ上の全てのＳＡＳデバイスであるＨＢＡ２１（ホスト２）のＳＡＳアドレスを取得する。なお、Discoverプロセスの機能は、ポートｐに何が接続されているかの情報を集めるための機能として、ＳＡＳ−１．１の仕様書で規定される。ここでは、例えば、アドレス取得部３１２は、ポートｐ毎に、ポートｐに接続されているＨＢＡ２１の識別子、ポートｐの識別子およびポートｐに割り当てられているＳＡＳアドレスを取得する。
【００２１】
アドレス予測部３１３および物理アドレス取得部３１４は、アドレス取得部３１２によって取得されたＳＡＳアドレスおよび複数のポートｐの識別子に基づいて、複数のポートｐと接続するホスト２が有する可能性のあるＳＡＳアドレスを管理する。
【００２２】
アドレス予測部３１３は、アドレス取得部３１２によって取得されたＳＡＳアドレスが未使用のポートｐに割り当てられていた場合、当該ＳＡＳアドレスに基づいて、ホスト２が有する可能性のある連続するＳＡＳアドレスを予測する。言い換えると、アドレス予測部３１３は、未使用のポートｐで新たなＨＢＡ２１を検出した場合、ポートｐに割り当てられていたＳＡＳアドレスに基づいて、ホスト２が有する可能性のある連続するＳＡＳアドレスを予測する。
【００２３】
例えば、アドレス予測部３１３は、記憶部４０に記憶されているアドレス管理テーブル４１を用いて、ＳＡＳアドレスが割り当てられていたポートｐの識別子が未だ記憶されていないかを判定する。そして、アドレス予測部３１３は、ＳＡＳアドレスが割り当てられていたポートｐの識別子が未だ記憶されていないと判定する場合には、ポートｐに接続されているＨＢＡ２１（対象ＨＢＡ）を新規であると判断する。そして、アドレス予測部３１３は、同一のＨＢＡ２１であれば取り得ることが可能なＳＡＳアドレスの連続値を算出する。一例として、アドレス予測部３１３は、ＳＡＳアドレスの下位４ビット分の１６個の連続値（００００〜１１１１）をＨＢＡ２１のグループとして、アドレス管理テーブル４１で管理する。なお、アドレス予測部３１３は、ＳＡＳアドレスの下位４ビット分の１６個の連続値を算出するものとしたが、これに限定されず、ＨＢＡ２１のベンダや種類毎に連続値の数を変化させても良い。また、アドレス予測部３１３は、この連続値の数を、例えばユーザによって設定させるようにしても良い。
【００２４】
物理アドレス取得部３１４は、アドレス取得部３１２によって取得されたＳＡＳアドレスが既に使用中のポートｐに予測外のＳＡＳアドレスとして割り当てられていた場合、ＨＢＡ２１によって物理的に割り振られた複数のＳＡＳアドレスを、ＳＡＳスイッチ１０を介して取得する。そして、物理アドレス取得部３１４は、取得した複数のＳＡＳアドレスをアドレス管理テーブル４１で管理する。なお、予測外のＳＡＳアドレスとは、先行してアドレス予測部３１３によって予測されたＳＡＳアドレスの範囲外のＳＡＳアドレスをいう。すなわち、アドレス予測部３１３によって予測されたＳＡＳアドレスは、ホスト２が有する可能性のある連続するアドレスであった。これらアドレスの範囲外、つまり連続外のアドレスが、予測外のＳＡＳアドレスとなる。
【００２５】
例えば、物理アドレス取得部３１４は、アドレス予測部３１３によってＳＡＳアドレスが割り当てられていたポートｐの識別子が既に記憶されていると判定された場合には、ポートｐに接続されているＨＢＡ２１（対象ＨＢＡ）を新規でないと判断する。すなわち、物理アドレス取得部３１４は、ポートｐと接続するＨＢＡ２１がＳＡＳアドレスを再割り付けしたと判断する。そして、物理アドレス取得部３１４は、対象ＨＢＡ２１のＳＡＳアドレスが割り当てられていた全てのポートｐについて、擬似的にナローリンク状態にしたうえで順次Discoverプロセスを実行する。そして、物理アドレス取得部３１４は、各ポートｐに割り当てられた全てのＳＡＳアドレスを取得する。さらに、物理アドレス取得部３１４は、取得した全てのＳＡＳアドレスをＨＢＡ２１のグループとして、アドレス管理テーブル４１で管理する。
【００２６】
ＨＤＤ制御部３２は、ハードディスク（ＨＤＤ：Hard  Disk）５０−１〜５０−ｎへのアクセスを制御する。キャッシュ制御部３３は、ＨＤＤ制御部３２によってＨＤＤ５０−１〜５０−ｎへアクセスする際に用いられるキャッシュを制御する。
【００２７】
保守／設定制御部３４は、ホスト２を識別するためのＳＡＳアドレスを保守するために、アドレス管理テーブル４１に記憶された情報を保守する。例えば、保守／設定制御部３４は、モニタに表示される設定画面を介して、ホスト２と接続するポートｐに割り当てられる可能性のあるＳＡＳアドレスと、ポートｐの識別子との対応関係を取得し、取得した対応関係に応じてアドレス管理テーブル４１に設定する。
【００２８】
次に、アドレス管理テーブル４１のデータ構造について、図２を参照して説明する。図２は、実施例に係るアドレス管理テーブルのデータ構造を示す図である。図２に示すように、アドレス管理テーブル４１は、ＨＢＡ番号（インデックス）４１ａ毎に、Ｐｈｙ数４１ｂ、Ｐｈｙ番号４１ｃおよびＳＡＳアドレス４１ｄを対応付けて記憶する。ＨＢＡ番号（インデックス）４１ａには、ＨＢＡ２１（ホスト）を識別するＨＢＡ２１の識別子が記憶される。Ｐｈｙ数４１ｂには、ＨＢＡ２１のポート（Ｐｈｙ）の数が記憶される。Ｐｈｙ番号４１ｃには、Ｐｈｙ数４１ｂで示されたＰｈｙ数分のＰｈｙの識別子が記憶される。ＳＡＳアドレス４１ｄには、最大Ｎ個分のＳＡＳアドレスが記憶される。Ｎは、例えば、１６であっても良く、３２であっても良く、ＳＡＳアドレスを予測可能な数の最大数であれば良い。
【００２９】
図２について、一例として、アドレス予測部３１３がＨＢＡ＃０によって割り当てられたＳＡＳアドレスＡ１から予測したアドレスをアドレス管理テーブル４１に格納した場合の格納情報を示す。ＨＢＡ番号４１ａが「０」と記憶され、Ｐｈｙ数４１ｂが「４」と記憶され、Ｐｈｙ番号４１ｃが「０  １  ２  ３」と記憶され、ＳＡＳアドレス４１ｄが１６個の連続値「Ａ０  Ａ１  ・・・  Ａｆ」と記憶される。さらに、物理アドレス取得部３１４がＨＢＡ＃０によって物理的に割り振られた複数のＳＡＳアドレスをアドレス管理テーブル４１に格納した場合の格納情報を示す。ＳＡＳアドレス４１ｄが「Ａ１  Ｂ２  Ｃ３  Ｄ４」と記憶される。ＨＢＡ番号４１ａ、Ｐｈｙ数４１ｂおよびＰｈｙ番号４１ｃについては、アドレス予測部３１３による格納情報と同様であるので、説明を省略する。
【００３０】
［アドレス予測の具体例］
次に、アドレス予測部３１３によるアドレス予測の具体例について、図３を参照しながら説明する。図３は、アドレス予測の具体例を説明する図である。なお、ＨＢＡ＃Ａは、ＳＡＳスイッチ１０のＰｈｙ＃０〜＃３と４本のケーブルによりワイドリンクで接続されるものとする。また、ＨＢＡ＃Ｂは、ＳＡＳスイッチ１０のＰｈｙ＃４〜＃７と４本のケーブルによりワイドリンクで既に接続されているものとする。
【００３１】
図３に示すように、ＳＡＳスイッチ１０のＰｈｙ＃０〜＃３に新たなホストのＨＢＡ＃Ａが接続される。すると、ＲＡＩＤコントローラ２０は、ＳＡＳスイッチ１０からのブロードキャストを検出し、ＳＡＳスイッチ１０の複数のＰｈｙのうち、いずれかのＰｈｙの状態に変化があったことを検出する。そして、ＲＡＩＤコントローラ２０は、ＳＡＳスイッチ１０に対し、Discoverプロセスを実行し、ＳＡＳトポロジ上の全てのＨＢＡのＳＡＳアドレスを取得する。ここでは、ＲＡＩＤコントローラ２０は、ＨＢＡ＃Ａについて、Ｐｈｙ＃０〜Ｐｈｙ＃３に割り当てられているＳＡＳアドレスＡ１およびＨＢＡ＃Ｂについて、Ｐｈｙ＃４〜Ｐｈｙ＃７に割り当てられているＳＡＳアドレスＢ１を取得する。
【００３２】
そして、ＲＡＩＤコントローラ２０のアドレス予測部３１３は、ＳＡＳアドレスＡ１が未使用であったＰｈｙ＃０〜Ｐｈｙ＃３に割り当てられているので、Ｐｈｙ＃０〜Ｐｈｙ＃３に接続されているＨＢＡ＃Ａを新規であると判断する。そして、アドレス予測部３１３は、ＳＡＳアドレスＡ１に基づいて、ＨＢＡ＃Ａが有する可能性のある連続するＳＡＳアドレスを予測する。ここでは、アドレス予測部３１３は、ＳＡＳアドレスＡ１の下位４ビット分の１６個の連続値Ａ０〜Ａｆを予測する。そして、アドレス予測部３１３は、ＳＡＳアドレスＡ１から予測した連続値Ａ０〜Ａｆをアドレス管理テーブル４１に格納する。これにより、その後、ケーブルの抜き差し等によってＨＢＡ＃ＡのＳＡＳアドレスがＡ１から連続値のいずれかに変化しても、ストレージ装置１Ａ側は、アドレス管理テーブル４１に管理されたＳＡＳアドレスによって、変化のあったＳＡＳアドレスに対応できる。
【００３３】
なお、アドレス予測部３１３は、ＳＡＳアドレスＢ１について、ＳＡＳアドレスＢ１が使用中であるＰｈｙ＃４〜Ｐｈｙ＃７に割り当てられ、且つ変化がないので何も実行しない。
【００３４】
［物理アドレス取得の具体例］
次に、物理アドレス取得部３１４による物理アドレス取得の具体例について、図４を参照しながら説明する。図４は、物理アドレス取得の具体例を説明する図である。なお、図４の例では、ケーブルの抜き差し等によりＨＢＡ＃ＡがＳＡＳアドレスを再割り付けし、使用中のＰｈｙのＳＡＳアドレスが予測外のＳＡＳアドレスに変化した場合について説明する。
【００３５】
かかる場合に、ＲＡＩＤコントローラ２０は、ＨＢＡ＃ＡのＳＡＳアドレスが割り当てられた全てのＰｈｙについて、ワイドリンクを擬似的にナローリンク状態にしたうえで、順次Discoverプロセスを実行する。ワイドリンクを擬似的にナローリンク状態にするのは、ＳＡＳスイッチ１０の各Ｐｈｙに実際に割り当てられているＳＡＳアドレスを１つずつ取得するためである。具体的には、物理アドレス取得部３１４は、ＨＢＡ＃ＡのＳＡＳアドレスが割り当てられた全てのＰｈｙ＃０〜Ｐｈｙ＃３を無効（Disable）にする（ｓ１）。
【００３６】
続いて、物理アドレス取得部３１４は、１本目のＰｈｙ＃０を有効（Enable）にする（ｓ２）。そして、物理アドレス取得部３１４は、有効にしたＰｈｙ＃０に対してDiscoverプロセスを実行し、Ｐｈｙ＃０に割り当てられたＳＡＳアドレスを取得する（ｓ３）。そして、物理アドレス取得部３１４は、残りのＰｈｙ（＃１〜＃３）について、Ｐｈｙに割り当てられたＳＡＳアドレスを取得する処理を繰り返す。ここでは、物理アドレス取得部３１４は、Ｐｈｙ＃０〜Ｐｈｙ＃３に割り当てられたＳＡＳアドレスを、それぞれＡ１、Ｂ２、Ｃ３、Ｄ４として取得する。
【００３７】
そして、物理アドレス取得部３１４は、全てのＰｈｙ（＃０〜＃３）分ＳＡＳアドレスを取得すると、取得した全てのＳＡＳアドレスをＨＢＡ＃Ａのグループとして管理すべく、アドレス管理テーブル４１を再作成する（ｓ４）。ここでは、物理アドレス取得部３１４は、アドレス管理テーブル４１のＨＢＡ＃Ａに関するＳＡＳアドレスを、予測された連続値のＳＡＳアドレスＡ０〜ＡｆからＡ１、Ｂ２、Ｃ３、Ｄ４に再作成する。これにより、その後、ケーブルの抜き差し等によってＨＢＡ＃ＡのＳＡＳアドレスがＡ１からＢ２、Ｃ３、Ｄ４のいずれに変化しても、ストレージ装置１Ｂ側は、アドレス管理テーブル４１によって、変化のあったＳＡＳアドレスに対応できる。
【００３８】
［実施例に係るアドレス管理の手順］
次に、実施例に係るアドレス管理の手順を、図５を参照して説明する。図５は、実施例に係るアドレス管理の手順を示すフローチャートである。
【００３９】
まず、変化検出部３１１は、ＳＡＳスイッチ１０の複数のＰｈｙのうち、いずれかのＰｈｙの状態が変化したか否かを判定する（ステップＳ１１）。いずれのＰｈｙの状態も変化していなかったと判定した場合（ステップＳ１１；Ｎｏ）、変化検出部３１１は、判定処理を繰り返す。
【００４０】
一方、いずれかのＰｈｙの状態が変化したと判定した場合（ステップＳ１１；Ｙｅｓ）、アドレス取得部３１２は、ＳＡＳスイッチ１０に対してDiscoverプロセスを実行する(ステップＳ１２)。この結果、アドレス取得部３１２は、ＳＡＳトポロジ上の全てのＨＢＡ２１のＳＡＳアドレスを取得する。
【００４１】
さらに、アドレス予測部３１３は、アドレス取得部３１２によって取得されたＳＡＳアドレスが未使用のＰｈｙに割り当てられていたか否かを判定する（ステップＳ１３）。すなわち、アドレス予測部３１３は、未使用のＰｈｙで新たなＨＢＡ２１を検出したか否かを判定する。例えば、アドレス予測部３１３は、アドレス管理テーブル４１を用いて、ＳＡＳアドレスが割り当てられていたＰｈｙの識別子が未だ記憶されていないか否かを判定する。
【００４２】
そして、ＳＡＳアドレスが未使用のＰｈｙに割り当てられていたと判定した場合（ステップＳ１３；Ｙｅｓ）、アドレス予測部３１３は、Ｐｈｙに接続されているＨＢＡ２１を新規であると判断する。そして、アドレス予測部３１３は、アドレス取得部３１２によって取得された対象ＨＢＡ２１のＳＡＳアドレスからＳＡＳアドレスの予測処理を実行する（ステップＳ１４）。
【００４３】
一方、ＳＡＳアドレスが未使用のＰｈｙに割り当てられていないと判定した場合（ステップＳ１３；Ｎｏ）、物理アドレス取得部３１４は、（使用中のＰｈｙに割り当てられていた）ＳＡＳアドレスが予測外に変化したか否かを判定する（ステップＳ１５）。すなわち、物理アドレス取得部３１４は、アドレス予測部３１３によって予測されたＳＡＳアドレスの予測の範囲外のＳＡＳアドレスに変化したか否かを判定する。
【００４４】
ＳＡＳアドレスが予測外に変化したと判定した場合（ステップＳ１５；Ｙｅｓ）、物理アドレス取得部３１４は、対象ＨＢＡ２１の物理アドレスの取得処理を実行する（ステップＳ１６）。一方、ＳＡＳアドレスが予測外に変化しなかったと判定した場合（ステップＳ１５；Ｎｏ）、すなわち予測の範囲内に変化したと判定した場合、物理アドレス取得部３１４は、処理を終了する。
【００４５】
［実施例に係るアドレス予測の手順］
次に、図５に示すＳ１４の処理手順について、図６を参照しながら説明する。図６は、実施例に係るアドレス予測の手順を示すフローチャートである。
【００４６】
まず、アドレス予測部３１３は、対象ＨＢＡ２１のＳＡＳアドレスから、同一のＨＢＡであれば割り当てられる可能性のある連続値を算出する（ステップＳ２１）。一例として、アドレス予測部３１３は、対象ＨＢＡ２１のＳＡＳアドレスの下位４ビット分の１６個の連続値（００００〜１１１１）を算出する。
【００４７】
そして、アドレス予測部３１３は、算出したＳＡＳアドレスと対象ＨＢＡ２１の全Ｐｈｙの識別子とを対応付けてアドレス管理テーブル４１に追加する（ステップＳ２２）。
【００４８】
［実施例に係る物理アドレス取得の手順］
次に、図５に示すＳ１６の処理手順について、図７を参照しながら説明する。図７は、実施例に係る物理アドレス取得の手順を示すフローチャートである。
【００４９】
まず、物理アドレス取得部３１４は、アドレス管理テーブル４１の対象ＨＢＡ２１に関する情報を削除する（ステップＳ３１）。そして、物理アドレス取得部３１４は、対象ＨＢＡ２１のＳＡＳアドレスが割り当てられていた全Ｐｈｙを無効（Disable）にする（ステップＳ３２）。一例として、物理アドレス取得部３１４は、ＳＭＰ（SAS  Management  Protocol）のＰｈｙ制御コマンドを用いて、Ｐｈｙを無効（Disable）にしたり、有効（Enable）にしたりする。
【００５０】
続いて、物理アドレス取得部３１４は、１本のＰｈｙを有効（Enable）にする（ステップＳ３３）。すなわち、物理アドレス取得部３１４は、擬似的にナローリンク状態にして、Ｐｈｙを１本ずつ接続する。そして、物理アドレス取得部３１４は、有効にしたＰｈｙに対してDiscoverプロセスを実行し、Ｐｈｙに割り当てられたＳＡＳアドレスを取得する（ステップＳ３４）。そして、物理アドレス取得部３１４は、取得したＳＡＳアドレスとＰｈｙの識別子とをアドレス管理テーブル４１に追加する（ステップＳ３５）。
【００５１】
続いて、物理アドレス取得部３１４は、対象ＨＢＡ２１のＳＡＳアドレスが割り当てられていた全Ｐｈｙの選択が完了したか否かを判定する（ステップＳ３６）。全Ｐｈｙの選択が完了していないと判定した場合（ステップＳ３６；Ｎｏ）、物理アドレス取得部３１４は、未だ選択されていないＰｈｙを選択すべく、ステップＳ３２に移行する。
【００５２】
一方、全Ｐｈｙの選択が完了したと判定した場合（ステップＳ３６；Ｙｅｓ）、物理アドレス取得部３１４は、対象ＨＢＡの全Ｐｈｙを有効（Enable）にする（ステップＳ３７）。すなわち、物理アドレス取得部３１４は、擬似的なナローリンク状態からワイドリンク状態に戻す。
【００５３】
［実施例に係るＲＡＩＤコントローラのハードウェア構成の一例］
ここで、実施例に係るストレージ装置１におけるＲＡＩＤコントローラ１００のハードウェア構成の一例について、図８を参照して説明する。図８は、実施例に係るＲＡＩＤコントローラ１００のハードウェア構成の一例を示す。
【００５４】
図８に示すように、ＲＡＩＤコントローラ１００は、プロセッサ１０１と、主記憶メモリ１０２と、ＳＡＳ制御チップ１０３と、ＨＤＤ制御チップ１０４とを有する。プロセッサ１０１、主記憶メモリ１０２、ＳＡＳ制御チップ１０３およびＨＤＤ制御チップ１０４は、それぞれシステムバス１０５で接続されている。ＳＡＳ制御チップ１０３は、ＳＡＳスイッチ１０と接続される。ＨＤＤ制御チップ１０４は、ＨＤＤ５０−１〜５０−ｎと接続される。
【００５５】
そして、主記憶メモリ１０２には、図１に示した制御部３０と同様の機能を有する制御プロセスが記憶される。また、主記憶メモリ１０２には、図１に示したアドレス管理テーブル４１に対応する管理情報が記憶される。そして、プロセッサ１０１は、管理情報を用いて、制御プロセスを実行する。
【００５６】
［実施例の効果］
上記実施例によれば、ストレージ装置１は、ホスト２が有する複数のＳＡＳアドレスのいずれか１つのＳＡＳアドレスがホスト２と接続する複数のポート（Ｐｈｙ）に割り当てられるワイドリンクを搭載する。そして、ストレージ装置１は、複数のＰｈｙのうち、いずれかのＰｈｙの状態に変化があったことを検出する。そして、ストレージ装置１は、変化が検出されたとき、複数のＰｈｙに割り当てられているＳＡＳアドレスを取得する。さらに、ストレージ装置１は、取得したＳＡＳアドレスおよび複数のＰｈｙの識別情報に基づいて、複数のＰｈｙと接続するホスト２が有する可能性のあるＳＡＳアドレスを管理する。かかる構成によれば、ストレージ装置１は、ワイドリンクのＳＡＳアドレスが変化しても、変化のあったＳＡＳアドレスに対応することができる。すなわち、ストレージ装置１は、ケーブルの抜き差し等によってワイドリンクのＳＡＳアドレスが変化しても、ホスト２が有する可能性のあるＳＡＳアドレスを管理しているので、変化後のホスト２からの入出力要求に対応することが可能となる。
【００５７】
また、上記実施例によれば、ストレージ装置１は、ホスト２と接続するＰｈｙに割り当てられる可能性のあるＳＡＳアドレスを、Ｐｈｙの識別子とともに記憶するアドレス管理テーブル４１を有する。そして、ストレージ装置１は、変化が検出されたとき取得したＳＡＳアドレスが、未使用のＰｈｙに割り当てられていた場合、当該ＳＡＳアドレスに基づいて、ホスト２が有する可能性のある連続するＳＡＳアドレスを予測する。そして、ストレージ装置１は、予測したＳＡＳアドレスをアドレス管理テーブル４１に格納する。かかる構成によれば、ストレージ装置１は、例えばホスト２が（未使用のＰｈｙと）新たに接続された場合に、ホスト２が有する可能性のある連続値のＳＡＳアドレスをＳＡＳアドレスのデフォルトとして管理できる。この結果、ストレージ装置１は、ケーブルの抜き差し等によってワイドリンクのＳＡＳアドレスが連続値のいずれかに変化しても、管理されたＳＡＳアドレスによって、変化のあったＳＡＳアドレスに対応することが可能となる。
【００５８】
また、上記実施例によれば、ストレージ装置１は、変化が検出されたとき取得したＳＡＳアドレスが、既に使用中のＰｈｙに予測外のＳＡＳアドレスとして割り当てられていた場合、ホスト２と接続するＰｈｙ毎にホスト２によって物理的に割り振られたＳＡＳアドレスを取得する。そして、ストレージ装置１は、取得したＰｈｙ毎のＳＡＳアドレスをアドレス管理テーブル４１に格納する。かかる構成によれば、ストレージ装置１は、ケーブルの抜き差し等によってワイドリンクのＳＡＳアドレスがいずれに変化しても、変化する可能性のあるＳＡＳアドレスを管理しているので、変化のあったＳＡＳアドレスに対応することが可能となる。
【００５９】
［その他］
なお、本実施例では、物理アドレス取得部３１４は、既に使用中のＰｈｙにＳＡＳアドレスが予測外のＳＡＳアドレスとして割り当てられていた場合に、ＨＢＡ２１によって物理的に割り振られた複数のＳＡＳアドレスを取得するものとして説明した。しかしながら、これに限定されるものではなく、物理アドレス取得部３１４は、既に使用中のＰｈｙにＳＡＳアドレスが変化して割り当てられていた場合に、ＨＢＡ２１によって物理的に割り振られた複数のＳＡＳアドレスを取得しても良い。
【００６０】
また、図示したストレージ装置１の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、ストレージ装置１の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、変化検出部３１１とアドレス取得部３１２とを１つの部として統合しても良い。また、アドレス予測部３１３と物理アドレス取得部３１４とをアドレス管理部として１つの部に統合しても良い。また、記憶部４０をＲＡＩＤコントローラ２０の外部装置としてネットワーク経由で接続するようにしても良い。
【００６１】
また、図示したストレージ装置１は、ＳＡＳスイッチ１０を含む構成としたが、ＳＡＳスイッチ１０を含まない構成であっても良い。ストレージ装置１がＳＡＳスイッチ１０を含まない構成の場合には、ストレージ装置１は、ＲＡＩＤコントローラ２０およびＨＤＤ５０−１〜５０−ｎを備え、ＳＡＳスイッチ１０とＳＡＳのワイドリンクを用いて接続する。
【００６２】
また、ＲＡＩＤコントローラ２０にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）などのマイクロ・コンピュータ）あるいは、ワイヤードロジックによるハードウェアとして実現されても良い。また、ＲＡＩＤコントローラ２０にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵ（またはＭＰＵ、ＭＣＵなどのマイクロ・コンピュータ）にて解析実行されるプログラムにて実現されても良い。
【符号の説明】
【００６３】
１  ストレージ装置
２  ホスト
２１  ＨＢＡ
１０  ＳＡＳスイッチ
ｐ−１〜ｐ−ｎ  ポート
２０  ＲＡＩＤコントローラ
３０  制御部
３１  ＳＡＳ制御部
３１１  変化検出部
３１２  アドレス取得部
３１３  アドレス予測部
３１４  物理アドレス取得部
３２  ＨＤＤ制御部
３３  キャッシュ制御部
３４  保守／設定制御部
４０  記憶部
４１  アドレス管理テーブル
５０−１〜５０−ｎ  ＨＤＤ
【図１】
0005736870.tif 000002
【図２】
0005736870.tif 000003
【図３】
0005736870.tif 000004
【図４】
0005736870.tif 000005
【図５】
0005736870.tif 000006
【図６】
0005736870.tif 000007
【図７】
0005736870.tif 000008
【図８】
0005736870.tif 000009
【図９Ａ】
0005736870.tif 000010
【図９Ｂ】
0005736870.tif 000011