(57)【特許請求の範囲】
【請求項１】
１つのストレージアレイを構成する複数の記憶装置を複数の着脱可能なストレージデバイスコントローラにおいて、
前記複数の記憶装置を接続可能な複数の物理的なスロットを備え、
現実に前記複数のスロットに接続されている前記複数の記憶装置のそれぞれにおける所定の管理領域から装着順序データを取得するとともに、現実に前記複数のスロットに接続されている前記複数の記憶装置から識別情報を取得し、
前記装着順序データは、前記スロットの順序で、前記スロットに接続されるべき前記記憶装置の識別情報を配列させて前記複数の記憶装置の装着順序を示し、
前記複数のスロットのそれぞれに対して接続されるべき記憶装置の識別情報を前記装着順序データから特定し、各スロットについて前記装着順序データから特定した識別情報と、現実に前記スロットに接続されている記憶装置から取得した識別情報とを比較して、前記装着順序データどおりに前記複数の記憶装置が接続されるか否かを判定すること、
を特徴とするストレージデバイスコントローラ。
【請求項２】
前記装着順序データどおりに前記複数の記憶装置が接続されていない場合には、前記装着順序データどおりの接続状態となるように、前記複数の記憶装置を論理的に組み替えることを特徴とする請求項１記載のストレージデバイスコントローラ。
【請求項３】
前記所定の管理領域自体が存在しないか前記管理領域に前記装着順序データが存在しない記憶装置が接続されている場合、その時点で接続されている前記複数の記憶装置の識別情報で前記装着順序データを生成し、前記複数の記憶装置のそれぞれにおける前記管理領域に、生成した前記装着順序データを書き込むことを特徴とする請求項１記載のストレージデバイスコントローラ。
【請求項４】
前記装着順序データに登録されている前記識別情報をそれぞれ有する記憶装置がすべて接続されている場合のみ、前記ストレージアレイを１つのストレージとして認識することを特徴とする請求項１または請求項２記載のストレージデバイスコントローラ。
【請求項５】
前記管理領域は、ファイルシステムで認識される領域以外の領域に設けられることを特徴とする請求項１記載のストレージデバイスコントローラ。
【請求項６】
前記ストレージアレイは、ＲＡＩＤまたはＪＢＯＤのアレイであることを特徴とする請求項１から請求項５のうちのいずれか１項記載のストレージデバイスコントローラ。
【請求項７】
前記記憶装置は、ハードディスクドライブまたはソリッドステートドライブであることを特徴とする請求項１から請求項６のうちのいずれか１項記載のストレージデバイスコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージデバイスコントローラに関するものである。
【背景技術】
【０００２】
複数のハードディスクドライブ（ＨＤＤ）等を使用して１つのディスクアレイを構成するストレージシステムにおいて、ＨＤＤ等を、メンテナンス等でコントローラチップやコントローラ基板から外した場合、元々装着されていた位置（スロット）に再度装着する。このとき、元々装着されていた位置（スロット）とは異なる位置にＨＤＤが装着されると、コントローラがディスクアレイの構成を正しく認識できないことがある。
【０００３】
そのような問題を解決する技術として、ＨＤＤとコントローラとの間に、ＲＦＩＤを有する接続基板を設けるとともに、コントローラ側にＲＦＩＤリーダライタを設け、ＨＤＤの正しい装着順序を示す装着順序データをそのＲＦＩＤに書き込んでおき、その装着順序データをＲＦＩＤから読み出して、ＨＤＤの誤装着を検出する技術がある（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２４１８４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の技術では、ＨＤＤごとに、ＲＦＩＤ、ＲＦＩＤリーダライタおよび接続基板が必要となり、システムのコストが高くなってしまうとともに、ＲＦＩＤ、ＲＦＩＤリーダライタおよび接続基板を配置するスペースが必要になってしまう。
【０００６】
さらに、上述の技術では、メンテナンス時に接続基板がＨＤＤから外されてしまうと、接続基板とＨＤＤとが誤接続される可能性があり、接続基板とＨＤＤとが誤接続された場合には、依然として、コントローラへのＨＤＤの誤装着が発生してしまう。
【０００７】
本発明は、上記の問題に鑑みてなされたものであり、コスト増加を抑えつつ、記憶装置とコントローラとの間に追加の部品を設置する必要なく、コントローラへの、記憶装置の誤装着を検出することができるストレージデバイスコントローラを得ることを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明では以下のようにした。
【０００９】
本発明に係るストレージデバイスコントローラは、１つのストレージアレイを構成する複数の記憶装置を複数の着脱可能なストレージデバイスコントローラであって、前記複数の記憶装置を接続可能な複数の物理的なスロットを備え、現実に前記複数のスロットに接続されている前記複数の記憶装置のそれぞれにおける所定の管理領域から装着順序データを取得するとともに、現実に前記複数のスロットに接続されている前記複数の記憶装置から識別情報を取得する。前記装着順序データは、前記スロットの順序で、前記スロットに接続されるべき前記記憶装置の識別情報を配列させて前記複数の記憶装置の装着順序を示している。そして、前記複数のスロットのそれぞれに対して接続されるべき記憶装置の識別情報を前記装着順序データから特定し、各スロットについて前記装着順序データから特定した識別情報と、現実に前記スロットに接続されている記憶装置から取得した識別情報とを比較して、前記装着順序データどおりに前記複数の記憶装置が接続されるか否かを判定する。
【００１０】
これにより、コスト増加を抑えつつ、記憶装置とコントローラとの間に追加の部品を設置する必要なく、コントローラへの、記憶装置の誤装着を検出することができる。
【００１１】
また、本発明に係るストレージデバイスコントローラは、上記のストレージデバイスコントローラに加え、次のようにしてもよい。この場合、ストレージデバイスコントローラは、装着順序データどおりに複数の記憶装置が接続されていない場合には、装着順序データどおりの接続状態となるように、複数の記憶装置を論理的に組み替える。
【００１２】
これにより、記憶装置を誤装着した場合でも、装着し直すことなく、そのまま正しくストレージアレイを認識することができる。
【００１３】
また、本発明に係るストレージデバイスコントローラは、上記のストレージデバイスコントローラのいずれかに加え、次のようにしてもよい。この場合、ストレージデバイスコントローラは、所定の管理領域自体が存在しないか管理領域に装着順序データが存在しない記憶装置が接続されている場合、その時点で接続されている複数の記憶装置の識別情報で装着順序データを生成し、複数の記憶装置のそれぞれにおける管理領域に、生成した装着順序データを書き込む。
【００１４】
これにより、ストレージアレイを構成する１または複数の新規の記憶装置が接続された場合には、自動的に、新規の記憶装置に装着順序データが書き込まれるとともに、既存の記憶装置の装着順序データが更新される。
【００１５】
また、本発明に係るストレージデバイスコントローラは、上記のストレージデバイスコントローラのいずれかに加え、次のようにしてもよい。この場合、ストレージデバイスコントローラは、装着順序データに登録されている識別情報をそれぞれ有する記憶装置がすべて接続されている場合のみ、ストレージアレイを１つのストレージとして認識する。
【００１６】
これにより、装着順序データに登録されている識別情報をそれぞれ有する記憶装置のうちの１つでも接続されていない場合には、ストレージアレイを１つのストレージとして認識しないため、ストレージアレイの誤動作を防止することができる。
【００１８】
また、本発明に係るストレージデバイスコントローラは、上記のストレージデバイスコントローラのいずれかに加え、次のようにしてもよい。この場合、管理領域は、ファイルシステムで認識される領域以外の領域に設けられる。
【００１９】
これにより、ストレージアレイの正常動作中に、管理領域内の装着順序データが誤って削除されずに済む。
【００２０】
また、本発明に係るストレージデバイスコントローラは、上記のストレージデバイスコントローラのいずれかに加え、次のようにしてもよい。この場合、ストレージアレイは、ＲＡＩＤまたはＪＢＯＤのアレイである。
【００２１】
また、本発明に係るストレージデバイスコントローラは、上記のストレージデバイスコントローラのいずれかに加え、次のようにしてもよい。この場合、記憶装置は、ハードディスクドライブ（ＨＤＤ）またはソリッドステートドライブ（ＳＳＤ）である。
【発明の効果】
【００２２】
本発明によれば、ストレージデバイスコントローラにおいて、コスト増加を抑えつつ、ストレージとコントローラとの間に追加の部品を設置する必要なく、コントローラへの、ストレージの誤装着を検出することができる。
【図面の簡単な説明】
【００２３】
【図１】図１は、本発明の実施の形態に係るストレージデバイスコントローラを含むストレージシステムの構成を示すブロック図である。
【図２】図２は、図１に示す管理領域に記憶される装着順序データの一例を示す図である。
【図３】図３は、図２に示す装着順序データにより示されるスロットと、それらのスロットのそれぞれに接続されるべき記憶装置のシリアル番号との対応関係を示す図である。
【図４】図４は、図１に示すコントローラの動作を説明するフローチャートである。
【図５】図５は、図１に示すシステムにおける記憶装置の誤装着の例を示す図である。
【図６】図６は、図５に示す記憶装置の誤装着時のコントローラによるスロットの論理的な組み換えを示す図である。
【発明を実施するための形態】
【００２４】
以下、図に基づいて本発明の実施の形態を説明する。
【００２５】
図１は、本発明の実施の形態に係るストレージデバイスコントローラを含むストレージシステムの構成を示すブロック図である。
【００２６】
コントローラ１は、１つのストレージアレイ２を構成する複数の記憶装置１１〜１４を着脱可能なストレージデバイスコントローラである。コントローラ１は、コントローラチップであってもよいし、コントローラ基板であってもよい。なお、図１では、記憶装置１１〜１４の数が４であるが、必要に応じて他の数としてもよい。
【００２７】
この実施の形態では、ストレージアレイは、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）またはＪＢＯＤ（Just a Bunch Of Disks）のアレイである。ＲＡＩＤには、ＲＡＩＤ０、ＲＡＩＤ１、ＲＡＩＤ０＋１、ＲＡＩＤ１＋０、ＲＡＩＤ２、ＲＡＩＤ３、ＲＡＩＤ４、ＲＡＩＤ５、ＲＡＩＤ６、ＲＡＩＤＺなどがある。
【００２８】
コントローラ１は、複数の物理的なスロット１ａ〜１ｄを有し、それらのスロット１ａ〜１ｄに記憶装置１１〜１４を接続される。コントローラ１は、接続された記憶装置１１〜１４に対してデータの読み書きを行う。スロット１ａ〜１ｄと記憶装置１１〜１４とは電気的に直接接続されたり、ケーブルを介して接続されたりする。
【００２９】
また、記憶装置１１〜１４は、ハードディスクドライブ（ＨＤＤ）またはソリッドステートドライブ（ＳＳＤ）である。アレイを構成する複数の記憶装置１１〜１４には、必要に応じて同一種類（つまり、同一型番）の装置が使用されるが、構成されるアレイの種別において異なる種類の装置を使用してもよい場合には、異なる種類の装置を使用してもよい。
【００３０】
記憶装置１１〜１４は、それぞれに固有な識別情報（ここではシリアル番号）１１ａ〜１４ａを、装置内のＲＯＭ（Read Only Memory）などに有する。また、記憶装置１１〜１４には、装置内の書き換え可能な記憶領域において所定のアドレスに管理領域１１ｂ〜１４ｂがそれぞれ設けられている。管理領域１１ｂ〜１４ｂは、ファイルシステムでアクセス可能な領域以外の記憶領域に設けられている。管理領域１１ｂ〜１４ｂには、装着順序データが記憶される。装着順序データは、記憶装置１１〜１４の識別情報を配列させて記憶装置１１〜１４の装着順序を示すデータである。図２は、図１に示す管理領域１１ｂ〜１４ｂに記憶される装着順序データの一例を示す図である。図２に示す装着順序データ２１では、スロット１ａ、スロット１ｂ、スロット１ｃ、スロット１ｄの順序で、それらのスロット１ａ〜１ｄに接続されている記憶装置１１〜１４のシリアル番号が配列されている。図３は、図２に示す装着順序データ２１により示されるスロット１ａ〜１ｄと、スロット１ａ〜１ｄのそれぞれに接続されるべき記憶装置のシリアル番号との対応関係を示す図である。なお、シリアル番号１１ａ〜１４ａは、装着順序データ２１とともに管理領域１１ｂ〜１４ｂに記憶されるようにしてもよい。
【００３１】
コントローラ１は、記憶装置１１〜１４のそれぞれからシリアル番号１１ａ〜１４ａを取得するとともに、装着順序データ２１を管理領域１１ｂ〜１４ｂから取得し、取得したシリアル番号１１ａ〜１４ａと装着順序データ２１とに基づいて装着順序データ２１どおりに記憶装置１１〜１４が接続されるか否かを判定する。
【００３２】
このとき、コントローラ１は、スロット１ａ〜１ｄのそれぞれに対して接続されるべき記憶装置１１〜１４のシリアル番号を装着順序データ２１から特定し、各スロット１ａ〜１ｄについて、特定したシリアル番号と、現実に接続されている記憶装置１１〜１４のシリアル番号１１ａ〜１４ａとを比較して、装着順序データ２１どおりに記憶装置１１〜１４が接続されるか否かを判定する。
【００３３】
そして、コントローラ１は、装着順序データ２１どおりに記憶装置１１〜１４が接続されていない場合には、装着順序データ２１どおりの接続状態となるように、記憶装置１１〜１４を論理的に組み替える。
【００３４】
管理領域１１ｂ〜１４ｂ自体が存在しないか管理領域１１ｂ〜１４ｂに装着順序データ２１が存在しない記憶装置が接続されている場合、コントローラ１は、その時点で接続されている記憶装置１１〜１４のシリアル番号で装着順序データ２１を生成し、記憶装置１１〜１４のそれぞれにおける管理領域１１ｂ〜１４ｂに、生成した装着順序データ２１を書き込む。
【００３５】
また、装着順序データ２１に登録されているシリアル番号をそれぞれ有する記憶装置がすべて接続されている場合のみ、コントローラ１は、それらの記憶装置によるストレージアレイを１つのストレージとして認識する。
【００３６】
例えばソフトウェアＲＡＩＤのようにストレージアレイがソフトウェアで１つのストレージとして認識される場合には、コントローラ１に接続されるＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）などのプロセッサにおいて、ストレージアレイを構成する複数の記憶装置１１〜１４がそれぞれプロセッサにより認識され、ソフトウェアで、それらの記憶装置１１〜１４を１つのストレージとして取り扱うための処理が行われる。一方、例えばハードウェアＲＡＩＤのようにストレージアレイがハードウェアで１つのストレージとして認識される場合には、コントローラ１において、複数の記憶装置１１〜１４を１つのストレージとして取り扱うための処理が行われる。このため、コントローラ１に接続されるＣＰＵ、ＤＳＰなどのプロセッサからは、ストレージアレイが１つのストレージとして認識される。
【００３７】
次に、上記コントローラ１の動作について説明する。
【００３８】
図４は、図１に示すコントローラ１の動作を説明するフローチャートである。
【００３９】
ストレージシステムの起動時（つまり、コントローラ１の起動時）に、コントローラ１は、その時点でスロット１ａ〜１ｄに接続されている記憶装置から、装着順序データおよびシリアル番号を読み出す（ステップＳ１）。
【００４０】
コントローラ１は、ステップＳ１において装着順序データを読み出すことができなかった記憶装置があるか否かを判定する（ステップＳ２）。
【００４１】
ステップＳ１において装着順序データを読み出すことができなかった記憶装置がある場合、コントローラ１は、１または複数の新規の記憶装置が接続されていると判断して、読み出したシリアル番号から、新たに装着順序データを生成し、各記憶装置の管理領域に書き込む（ステップＳ３）。その後、コントローラ１は、それらの記憶装置で構成されるストレージアレイを１つのストレージとしてマウントする（ステップＳ４）。
【００４２】
一方、ステップＳ１において装着順序データを読み出すことができなかった記憶装置がない場合、コントローラ１は、読み出した装着順序データに登録されているシリアル番号を有する記憶装置がすべて接続されているか否かを判定する（ステップＳ５）。
【００４３】
コントローラ１は、読み出した装着順序データに登録されているシリアル番号を有する記憶装置がすべて接続されていると判定した場合、装着順序データどおりに記憶装置がスロット１ａ〜１ｄに接続されているか否かを判定する（ステップＳ６）。
【００４４】
装着順序データどおりに記憶装置がスロット１ａ〜１ｄに接続されている場合には、コントローラ１は、そのまま、それらの記憶装置で構成されるストレージアレイを１つのストレージとしてマウントする（ステップＳ４）。
【００４５】
一方、装着順序データどおりに記憶装置がスロット１ａ〜１ｄに接続されていない場合には、コントローラ１は、装着順序データどおりに記憶装置がコントローラ１に接続されるように、論理的にスロット１ａ〜１ｄを組み替え（ステップＳ７）、その後、それらの記憶装置で構成されるストレージアレイを１つのストレージとしてマウントする（ステップＳ４）。
【００４６】
図５は、記憶装置１１〜１４の誤装着の例を示す図である。図１に示す接続状態が正しい接続状態とすると、図５に示すように記憶装置１１〜１４を接続した場合、誤装着となる。図１に示す接続状態が正しい接続状態である場合、装着順序データ２１は、図２および図３に示すものとなる。
【００４７】
図６は、図５に示す記憶装置１１〜１４の誤装着時のコントローラ１によるスロット１ａ〜１ｄの論理的な組み換えを示す図である。図６に示すように、コントローラ１は、論理的なスロット１ａ〜１ｄと、物理的なスロット１ａ〜１ｄとの対応関係を、装着順序データどおりに論理的なスロット１ａ〜１ｄと記憶装置１１〜１４とが接続されるように設定する。
【００４８】
これにより、例えば、シリアル番号ｂｂｂの記憶装置１２へのデータ読み書き命令は、スロット１ｂに対して発行されるが、その命令は、論理スロット１ｂに対応する物理的なスロット１ｄを介して記憶装置１２へ正しく供給される。
【００４９】
したがって、記憶装置を誤装着した場合でも、装着し直すことなく、そのまま正しくストレージアレイを認識することができ、使用できる。
【００５０】
また、ステップＳ５において、読み出した装着順序データに登録されているシリアル番号を有する記憶装置のうちの少なくとも１つが接続されていないと判定した場合、コントローラ１は、ユーザに対して、警告（警告音、警告メッセージなど）を発する（ステップＳ８）。この場合、ストレージアレイは、ストレージとして認識されず、マウントされない。
【００５１】
以上のように、上記実施の形態によれば、コントローラ１は、（ａ）１つのストレージアレイ２を構成する複数の記憶装置１１〜１４のそれぞれから識別情報１１ａ〜１４ａを取得するとともに、装着順序データ２１を管理領域１１ｂ〜１４ｂから取得し、（ｂ）識別情報１１ａ〜１４ａと装着順序データ２１とに基づいて装着順序データどおりに複数の記憶装置１１〜１４が接続されるか否かを判定する。
【００５２】
これにより、コスト増加を抑えつつ、記憶装置１１〜１４とコントローラ１との間に追加の部品を設置する必要なく、コントローラ１への、記憶装置１１〜１４の誤装着を検出することができる。
【００５３】
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【００５４】
例えば、上記実施の形態において、装着順序データどおりに記憶装置が接続されていない場合に、コントローラ１は、警告（警告音、警告メッセージなど）を発するようにしてもよい。
【産業上の利用可能性】
【００５５】
本発明は、例えば、コンピュータシステムや電子機器などのストレージシステムに適用可能である。
【符号の説明】
【００５６】
１  コントローラ（ストレージデバイスコントローラの一例）
１ａ〜１ｄ  スロット
２  ストレージアレイ
１１〜１４  記憶装置
１１ａ〜１４ａ  シリアル番号（識別情報の一例）
１１ｂ〜１４ｂ  管理領域
２１  装着順序データ
【図１】
0005380315.tif 000002
【図２】
0005380315.tif 000003
【図３】
0005380315.tif 000004
【図４】
0005380315.tif 000005
【図５】
0005380315.tif 000006
【図６】
0005380315.tif 000007