(57)【特許請求の範囲】
【請求項１】
複数の記憶装置と、
１または２以上の記憶装置で構成されるグループが割り当てられると、該グループを使用する端末装置を該グループに接続し、該グループを指定したデータを該端末装置から受信すると、該データを、該グループに属する記憶装置に冗長化して格納するように、データ格納を制御する複数の制御装置と、
データの冗長性が失われたグループが検出されると、検出された該グループが割り当てられた制御装置には、検出された該グループ以外のグループが割り当てられないように、検出された該グループ以外のグループの制御装置への割り当て関係を変更し、変更後に検出された該グループが割り当てられた制御装置に、検出された該グループのデータの冗長性の回復処理を実行させる情報処理装置と、
を有するシステム。
【請求項２】
前記情報処理装置は、データの冗長性が失われたグループが検出されると、前記複数の制御装置のなかから、グループが割り当てられていない制御装置を特定し、検出された該グループの割り当て先を、該特定した制御装置に変更する、
請求項１記載のシステム。
【請求項３】
前記情報処理装置は、データの冗長性が失われたグループが検出されると、前記複数の制御装置のうち、稼働していない制御装置を起動し、検出された該グループの割り当て先を、該起動した制御装置に変更する、
請求項１記載のシステム。
【請求項４】
前記情報処理装置は、前記起動した制御装置による検出された前記グループのデータの冗長性の回復処理が完了すると、検出された前記グループの割り当て先を、前記起動した制御装置以外の制御装置に変更し、前記起動した制御装置の稼働を停止させる、
請求項３記載のシステム。
【請求項５】
前記情報処理装置は、データの冗長性が失われたグループが検出されると、検出された該グループと同じ制御装置に割り当てられている他のグループの割り当て先を、該制御装置以外の制御装置に変更する、
請求項１記載のシステム。
【請求項６】
前記情報処理装置は、検出された前記グループのデータの冗長性の回復処理が完了すると、前記他のグループの割り当て先を、検出された前記グループと同じ制御装置に戻す、
請求項５記載のシステム。
【請求項７】
複数の制御装置それぞれが、
１または２以上の記憶装置で構成されるグループが割り当てられると、該グループを使用する端末装置を該グループに接続し、該グループを指定したデータを該端末装置から受信すると、該データを、該グループに属する記憶装置に冗長化して格納するように、データ格納を制御し、
情報処理装置が、
データの冗長性が失われたグループが検出されると、検出された該グループが割り当てられた制御装置には、検出された該グループ以外のグループが割り当てられないように、グループの制御装置への割り当て関係を変更し、
変更後に検出された該グループが割り当てられた制御装置に、検出された該グループのデータの冗長性の回復処理を実行させる、
ストレージ管理方法。
【請求項８】
１または２以上の記憶装置で構成されるグループが割り当てられると、該グループを使用する端末装置を該グループに接続し、該グループを指定したデータを該端末装置から受信すると、該データを、該グループに属する記憶装置に冗長化して格納するように、データ格納を制御する複数の制御装置それぞれに接続された情報処理装置に、
データの冗長性が失われたグループが検出されると、検出された該グループが割り当てられた制御装置には、検出された該グループ以外のグループが割り当てられないように、グループの制御装置への割り当て関係を変更し、
変更後に検出された該グループが割り当てられた制御装置に、検出された該グループのデータの冗長性の回復処理を実行させる、
処理を実行させるプログラム。
【請求項９】
複数の記憶装置と、
前記複数の記憶装置のうち１または複数の記憶装置を含む第１の記憶装置群に含まれる各記憶装置を用いて、第１の端末装置から受信した第１のデータを冗長化して格納する制御を行うと共に、前記複数の記憶装置のうち１または複数の記憶装置を含む第２の記憶装置群に含まれる各記憶装置を用いて、第２の端末装置から受信した第２のデータを冗長化して格納する制御を行う制御装置と、
前記第１の記憶装置群における前記第１のデータの冗長化した格納状態が失われたことを検出すると、前記第２のデータを冗長して格納する前記第２の記憶装置群に含まれる各記憶装置の管理を他の制御装置に変更する処理を実行し、該変更する処理の後に、前記第１の記憶装置群に含まれる各記憶装置を用いた前記第１のデータの冗長化した格納状態を再構築する処理を実行する情報処理装置と、
を備えたシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを冗長化して管理するストレージ管理方法、システム、およびプログラムに関する。
【背景技術】
【０００２】
コンピュータシステムで管理するデータの信頼性を向上させる技術として、例えばＲＡＩＤ（Redundant Array of Inexpensive Disks）がある。ＲＡＩＤでは、複数台のハードディスクを組み合わせて、冗長化された１台の論理的なボリュームとして管理することができる。ＲＡＩＤには、データ配置やデータの冗長化方法の異なる複数のレベルが定義されている。例えば、ＲＡＩＤには、同一のデータを複数のディスクに書き込むミラーリング技術（ＲＡＩＤ１）や、複数のデータからパリティデータを生成し、失ったデータを、パリティデータを用いて復元可能とする技術（ＲＡＩＤ５など）が定義されている。
【０００３】
データを冗長化させて管理していても、ディスクの故障などにより、データの冗長性が損なわれる場合がある。その場合、残ったデータを用いて冗長性を回復させる処理が行われる。データの冗長性を回復させる処理は、リビルド（Rebuild）処理と呼ばれる。
【０００４】
リビルド処理を行う技術として、例えばホットスペアディスクを使用する柔軟性のある磁気ディスク装置のディスクの共有方法が考えられている。この方法では、同一論理ボリューム内の１台の磁気ディスク装置が故障した場合、同一論理ボリューム内の残りの磁気ディスク装置にあるデータを使用して、磁気ディスク装置のオンライン状態で故障した磁気ディスク装置のデータをリビルド機能により復元する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−０９９９９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＲＡＩＤコントローラは、複数のＲＡＩＤグループを制御することができる。制御対象の１つのＲＡＩＤグループに属するディスクが故障した場合、そのＲＡＩＤグループに対するリビルド処理が実行される。
【０００７】
しかし、ＲＡＩＤコントローラが制御する複数のＲＡＩＤグループの１つに対してリビルド処理が実行されると、ＲＡＩＤコントローラの負荷が増大し、結果として、そのＲＡＩＤコントローラに属する他のＲＡＩＤグループが悪影響を受ける。例えば、リビルドを行う必要がない正常なＲＡＩＤグループへのアクセスが阻害され、アクセス遅延が生じる。
【０００８】
このような問題は、ＲＡＩＤグループに限らず、データを冗長化して管理し、冗長性が損なわれた場合に、冗長性の回復処理を行うシステム全般に発生する。
１つの側面では、本発明は、冗長性の回復処理の影響が他の処理に波及することを抑止するシステム、ストレージ管理方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、複数の記憶装置と、１または２以上の記憶装置で構成されるグループが割り当てられると、割り当てられたグループを指定したデータを、該グループに属する記憶装置に冗長化して格納するように、データ格納を制御する複数の制御装置と、データの冗長性が失われたグループが検出されると、検出された該グループが割り当てられた制御装置には、検出された該グループ以外のグループが割り当てられないように、検出された該グループ以外のグループの制御装置への割り当て関係を変更し、変更後に検出された該グループが割り当てられた制御装置に、検出された該グループのデータの冗長性の回復処理を実行させる情報処理装置と、を有するシステムが提供される。
【発明の効果】
【００１０】
１態様によれば、冗長性の回復処理の影響が他の処理に波及することが抑止される。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係るシステムの機能の構成例を示す図である。
【図２】第１の実施の形態における割り当て変更とリビルド処理の一例を示す図である。
【図３】第２の実施の形態のシステム構成例を示す図である。
【図４】サーバのハードウェア構成の一例を示す図である。
【図５】管理ユニットとＣＰＵユニットとの内部構造の一例を示す図である。
【図６】サーバで実現されるＲＡＩＤ機能の一例を示すブロック図である。
【図７】ＲＡＩＤシステムの第１の状態遷移例における第１の状態を示す図である。
【図８】ＲＡＩＤシステムの第１の状態遷移例における第２の状態を示す図である。
【図９】ＲＡＩＤコントローラとＲＡＩＤシステム管理部との内部機能の一例を示すブロック図である。
【図１０】「ＲＣ−Ａ」のＲＡＩＤコントローラが有するＲＡＩＤグループ管理テーブルの一例を示す図である。
【図１１】「ＲＣ−Ｂ」のＲＡＩＤコントローラが有するＲＡＩＤグループ管理テーブルの一例を示す図である。
【図１２】ＲＡＩＤシステム管理部が有するＣＰＵ管理テーブルの一例を示す図である。
【図１３】ＲＡＩＤシステム管理部が有するディスク管理テーブルの一例を示す図である。
【図１４】ＲＡＩＤシステム管理部が有するＲＡＩＤグループ管理テーブルの一例を示す図である。
【図１５】ＲＡＩＤコントローラへのディスク群の接続手順を示すシーケンス図である。
【図１６】故障検出時のＲＡＩＤコントローラの切り替えおよびリビルド処理の手順の一例を示すシーケンス図である。
【図１７】ＲＡＩＤシステムの第２の状態遷移例における第１の状態を示す図である。
【図１８】ＲＡＩＤシステムの第２の状態遷移例における第２の状態を示す図である。
【図１９】ＲＡＩＤシステムの第２の状態遷移例における第３の状態を示す図である。
【図２０】ＲＡＩＤシステムの第２の状態遷移例における第４の状態を示す図である。
【図２１】ＲＡＩＤシステムの第３の状態遷移例における第１の状態を示す図である。
【図２２】ＲＡＩＤシステムの第３の状態遷移例における第２の状態を示す図である。
【図２３】ＲＡＩＤシステムの第３の状態遷移例における第３の状態を示す図である。
【図２４】ＲＡＩＤコントローラとディスク群との接続の切り替え制御処理の手順の一例を示すフローチャートである。
【図２５】縮退ＲＡＩＤグループ接続切り替え処理の手順の一例を示すフローチャートである。
【図２６】正常ＲＡＩＤグループ接続切り替え処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るシステムの機能の構成例を示す図である。第１の実施の形態に係るシステムは、複数の記憶装置１ａ，１ｂ，１ｃ，１ｄ，１ｅと、複数の制御装置２ａ，２ｂ、および情報処理装置３を有する。
【００１３】
記憶装置１ａ，１ｂ，１ｃ，１ｄ，１ｅは、データを格納する。
制御装置２ａ，２ｂは、１または２以上の記憶装置で構成されるグループ（記憶装置群）が割り当てられると、割り当てられたグループを指定したデータを、そのグループに属する記憶装置に冗長化して格納するように、データ格納を制御する。制御装置２ａ，２ｂそれぞれは、記憶装置１ａ，１ｂ，１ｃ，１ｄ，１ｅそれぞれとの通信経路を有している。なお、制御装置２ａ，２ｂと記憶装置１ａ，１ｂ，１ｃ，１ｄ，１ｅとの間の通信経路は、常時接続された経路であってもよいし、スイッチ装置を介して、通信を接続する際に適宜接続される経路であってもよい。１つの制御装置には、例えば０以上のグループを割り当て可能である。換言すると、複数のグループを制御装置に割り当てることが可能であると共に、グループを割り当てない制御装置も存在可能である。
【００１４】
例えば、データの冗長化技術としてＲＡＩＤを適用した場合、制御装置２ａ，２ｂは、ＲＡＩＤコントローラに相当する。なお、ＲＡＩＤコントローラには、ＲＡＩＤコントローラのロジック回路はもちろん、ＲＡＩＤコントローラ相当の機能を実現するコンピュータも含む。
【００１５】
情報処理装置３は、データの冗長性が失われたグループが検出されると、検出されたグループが割り当てられた制御装置には、検出されたグループ以外のグループが割り当てられないように、グループの制御装置への割り当て関係を変更する。そして情報処理装置３は、変更後に検出されたグループが割り当てられた制御装置に、検出されたグループのデータの冗長性の回復処理を実行させる。
【００１６】
このように、制御装置２ａ，２ｂとは別に管理機構として機能する情報処理装置３が設けられている。情報処理装置３は、制御装置２ａ，２ｂと記憶装置１ａ，１ｂ，１ｃ，１ｄ，１ｅとの割り当て変更することが可能である。
【００１７】
このようなシステムでは、グループの冗長性が失われると、情報処理装置３の指示に従って、グループの制御装置の割り当てが変更され、その後、リビルド処理が行われる。
図２は、第１の実施の形態における割り当て変更とリビルド処理の一例を示す図である。第１の状態は、正常動作中を示している。図２の例では、記憶装置１ａ，１ｂが属するグループ４ａと、記憶装置１ｃ，１ｄが属するグループ４ｂとが設けられている。２つのグループ４ａ，４ｂは、共に制御装置２ａに割り当てられている。従って、各グループ４ａ，４ｂに格納するデータは、制御装置２ａによって冗長化して格納される。
【００１８】
第２の状態は、データの冗長性が失われた状態である。図２の例では、記憶装置１ｄの故障により、グループ４ｂのデータの冗長性が失われている。この場合、例えば情報処理装置３により、グループ４ｂの割り当て先が、制御装置２ｂに変更される。また、グループ４ｂから故障した記憶装置１ｄが除外され、代わりに記憶装置１ｅがグループ４ｂに追加される。
【００１９】
第３の状態は、冗長性回復処理（リビルド処理）中を示している。図２の例では、制御装置２ｂが、記憶装置１ｃからデータを読み出し、読み出したデータを記憶装置１ｅに書き込んでいる。このように記憶装置１ｃから記憶装置１ｅへデータをコピーすることで、データの冗長性を回復させることができる。
【００２０】
なお図２に示した処理は、以下のように言い換えることができる。
第１の状態では、制御装置２ａが、グループ４ａ（第１の記憶装置群）に含まれる各記憶装置を用いて第１のデータを冗長化して格納する制御を行っている。また制御装置２ａが、グループ４ｂ（第２の記憶装置群）に含まれる各記憶装置を用いて第２のデータを冗長化して格納する制御を行っている。第２の状態では、情報処理装置３が、第２の記憶装置群における第２のデータの冗長化した格納状態が失われたことを検出している。そして情報処理装置３が、第２のデータを冗長して格納する前記第２の記憶装置群に含まれる各記憶装置の管理を他の制御装置に変更する処理を実行している。そして第３の状態では、情報処理装置が、制御装置２ｂを制御することで、第２の記憶装置群に含まれる各記憶装置を用いた第２のデータの冗長化した格納状態を再構築する処理を実行している。
【００２１】
このように、第１の実施の形態では、冗長性が損なわれたグループが発生した場合には、グループが割り当てられていない制御装置２ｂに、冗長性が損なわれたグループが割り当てられ、その制御装置２ｂでリビルド処理が行われる。このときグループ４ａについては制御装置２ａに割り当てられているため、リビルド処理が行われても、正常なグループ４ａへのデータアクセスが阻害されない。すなわち、グループ４ｂの冗長性の回復処理の影響が、グループ４ａに波及することが抑止されている。
【００２２】
なお、図１に示す情報処理装置３は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）などを有するハードウェアにより実現することができる。
【００２３】
また、図１に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、データの信頼性保証技術としてＲＡＩＤを用いるものである。第２の実施の形態では、サーバ内に実装された複数のＣＰＵ（ＣＰＵプール）のなかから選択したＣＰＵを、ＲＡＩＤコントローラとして機能させる。また第２の実施の形態では、サーバ内に実装された複数のＨＤＤ（ストレージドライブプール）のなかの数台のＨＤＤを組み合わせて、ＲＡＩＤグループが構成される。
【００２４】
図３は、第２の実施の形態のシステム構成例を示す図である。サーバ１００は、複数のＣＰＵと複数のハードディスクドライブ（ＨＤＤ）とを内蔵している。サーバ１００には、管理用の端末装置２１が接続されている。またサーバ１００には、ネットワークスイッチ２２を介して、ユーザが使用する複数の端末装置３１，３２，３３，３４，・・・が接続されている。
【００２５】
図４は、サーバのハードウェア構成の一例を示す図である。サーバ１００には、複数のＣＰＵユニット１２０−１，１２０−２，１２０−３，１２０−４，・・・と複数のＨＤＤ１３１〜１４２，・・・とが実装されている。複数のＣＰＵユニット１２０−１，１２０−２，１２０−３，１２０−４，・・・は、ＣＰＵプール１０２に属している。複数のＨＤＤ１３１〜１４２，・・・は、ストレージドライブプール１０３に属している。
【００２６】
ＣＰＵユニット１２０−１，１２０−２，１２０−３，１２０−４，・・・は、ネットワークスイッチ２２に接続されている。またＣＰＵユニット１２０−１，１２０−２，１２０−３，１２０−４，・・・は、ＤＡＮ（Disk Area Network）を介して、複数のＨＤＤ１３１〜１４２，・・・に接続されている。
【００２７】
ＤＡＮ１０１は、ＣＰＵユニット１２０−１，１２０−２，１２０−３，１２０−４，・・・とＨＤＤ１３１〜１４２，・・・とをインターコネクトする。
ＤＡＮ１０１には、管理ユニット１１０が接続されている。管理ユニット１１０は、ＤＡＮ１０１におけるＣＰＵユニットとＨＤＤとの接続・切断を管理する。また管理ユニット１１０は、ＣＰＵユニットに実行させる機能を管理する。例えば管理ユニット１１０は、複数のＣＰＵユニット１２０−１，１２０−２，１２０−３，１２０−４，・・・のなかから、ＲＡＩＤコントローラとして機能させるＣＰＵユニットを選択する。そして管理ユニット１１０は、選択したＣＰＵユニットに対してＲＡＩＤコントローラとしての動作を指示する。また管理ユニット１１０には、端末装置２１が接続されている。管理ユニット１１０は、端末装置２１を介して、管理者からの指示を受け付ける。
【００２８】
図５は、管理ユニットとＣＰＵユニットとの内部構造の一例を示す図である。管理ユニット１１０は、ＣＰＵ１１１によって装置全体が制御されている。ＣＰＵ１１１には、バス１１７を介してＲＡＭ１１２と複数の周辺機器が接続されている。なお管理ユニット１１０が有するＣＰＵ数は１つに限定されず、複数であってもよい。管理ユニット１１０が複数のＣＰＵを有する場合、複数のＣＰＵが連係動作し、管理ユニット１１０を制御する。
【００２９】
ＲＡＭ１１２は、管理ユニット１１０の主記憶装置として使用される。ＲＡＭ１１２には、ＣＰＵ１１１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１１２には、ＣＰＵ１１１による処理に必要な各種データが格納される。
【００３０】
バス１１７に接続されている周辺機器としては、フラッシュメモリ１１３、機器接続インタフェース１１４、通信インタフェース１１５、およびＤＡＮ制御インタフェース１１６がある。
【００３１】
フラッシュメモリ１１３は、不揮発性の半導体記憶装置である。フラッシュメモリ１１３は、管理ユニット１１０の補助記憶装置として使用される。フラッシュメモリ１１３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお補助記憶装置としては、フラッシュメモリ１１３に代えて、ＨＤＤなどの磁気記憶装置を使用することもできる。また管理ユニット１１０内にフラッシュメモリ１１３などの補助記憶装置を設けずに、ＤＡＮ１０１経由で接続されたＨＤＤの１つを、管理ユニット１１０の補助記憶装置として使用することも可能である。
【００３２】
機器接続インタフェース１１４は、管理ユニット１１０に周辺機器を接続するためのインタフェースである。例えば機器接続インタフェース１１４には、メモリ装置１５やメモリリーダライタ１６を接続することができる。メモリ装置１５は、機器接続インタフェース１１４との通信機能を搭載した記録媒体である。メモリリーダライタ１６は、メモリカード１７へのデータの書き込み、またはメモリカード１７からのデータの読み出しを行う装置である。メモリカード１７は、カード型の記録媒体である。
【００３３】
通信インタフェース１１５は、端末装置２１との間で通信を行う。通信インタフェース１１５は、端末装置２１から入力されたデータをＣＰＵ１１１に送信する。また通信インタフェース１１５は、ＣＰＵ１１１から送られたデータを、端末装置２１に送信する。
【００３４】
ＤＡＮ制御インタフェース１１６は、ＤＡＮ１０１のスイッチ回路の切り替え指示、およびＣＰＵユニットとの通信を行うインタフェースである。
ＣＰＵユニット１２０−１は、ＣＰＵ１２１によって装置全体が制御されている。ＣＰＵ１２１には、バス１２６を介してＲＡＭ１２２と複数の周辺機器が接続されている。なおＣＰＵユニット１２０−１が有するＣＰＵ数は１つに限定されず、複数であってもよい。ＣＰＵユニット１２０−１が複数のＣＰＵを有する場合、複数のＣＰＵが連係動作し、ＣＰＵユニット１２０−１を制御する。
【００３５】
ＲＡＭ１２２は、ＣＰＵユニット１２０−１の主記憶装置として使用される。ＲＡＭ１２２には、ＣＰＵ１２１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１２２には、ＣＰＵ１２１による処理に必要な各種データが格納される。
【００３６】
バス１２６に接続されている周辺機器としては、フラッシュメモリ１２３、通信インタフェース１２４、およびホストバスアダプタ（ＨＢＡ）１２５がある。
フラッシュメモリ１２３は、不揮発性の半導体記憶装置である。フラッシュメモリ１２３は、ＣＰＵユニット１２０−１の補助記憶装置として使用される。フラッシュメモリ１２３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお補助記憶装置としては、フラッシュメモリ１２３に代えて、ＨＤＤなどの磁気記憶装置を使用することもできる。またＣＰＵユニット１２０−１内にフラッシュメモリ１２３などの補助記憶装置を設けずに、ＤＡＮ１０１経由で接続されたＨＤＤの１つを、ＣＰＵユニット１２０−１の補助記憶装置として使用することも可能である。
【００３７】
通信インタフェース１２４は、ネットワークスイッチ２２を介して、端末装置３１，３２，３３，３４，・・・と通信を行う。
ＨＢＡ１２５は、ＤＡＮ１０１を介して、ＨＤＤ１３１，１３２，１３３，・・・にアクセスする。例えばＨＢＡ１２５は、ＣＰＵ１２１からの指示に従って、ＨＤＤ１３１，１３２，１３３，・・・へのデータの書き込み、またはＨＤＤ１３１，１３２，１３３，・・・からのデータの読み出しを行う。
【００３８】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお図５には、ＣＰＵユニット１２０−１の内部ハードウェア構成を示したが、他のＣＰＵユニット１２０−２，１２０−３，１２０−４，・・・も同様のハードウェア構成で実現できる。また第１の実施の形態に示した情報処理装置３も、図５に示した管理ユニット１１０と同様のハードウェアにより実現することができる。
【００３９】
管理ユニット１１０は、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。管理ユニット１１０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理ユニット１１０に実行させるプログラムをフラッシュメモリ１１３に格納しておくことができる。ＣＰＵ１１１は、フラッシュメモリ１１３内のプログラムの少なくとも一部をＲＡＭ１１２にロードし、プログラムを実行する。また管理ユニット１１０に実行させるプログラムを、メモリ装置１５、メモリカード１７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体としては、光ディスクがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。可搬型記録媒体に格納されたプログラムは、例えばＣＰＵ１１１からの制御により、フラッシュメモリ１１３にインストールされた後、実行可能となる。またＣＰＵ１１１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。なおプログラムを記録する記録媒体には、一時的な伝搬信号自体は含まれない。
【００４０】
プログラムを流通させる場合には、例えば、そのプログラムが記録された可搬型記録媒体が販売される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワークを介して、他のサーバコンピュータから管理ユニット１１０にそのプログラムを転送することもできる。管理ユニット１１０は、ネットワークを介してプログラムを取得する場合、例えば取得したプログラムをフラッシュメモリ１１３に格納する。そして管理ユニット１１０のＣＰＵ１１１がフラッシュメモリ１１３内のプログラムを実行する。また管理ユニット１１０は、サーバコンピュータからプログラムの一部が転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００４１】
図４、図５に示したハードウェア構成のサーバ１００により、サーバ１００をＲＡＩＤ装置として機能させることができる。
図６は、サーバで実現されるＲＡＩＤ機能の一例を示すブロック図である。図６の例では、２つのＣＰＵユニット１２０−１，１２０−２が、ＲＡＩＤコントローラ１２７，１２８として機能している。ＲＡＩＤコントローラ１２７の識別子は「ＲＣ−Ａ」、ＲＡＩＤコントローラ１２８の識別子は「ＲＣ−Ｂ」である。
【００４２】
ストレージドライブプール１０３内のＨＤＤにより、複数のＲＡＩＤグループ１７１〜１７４が構成されている。ＲＡＩＤグループ１７１は、ＨＤＤ１３１〜１３４で構成されている。ＲＡＩＤグループ１７２は、ＨＤＤ１３５〜１３８で構成されている。ＲＡＩＤグループ１７３は、ＨＤＤ１３９〜１４２で構成されている。ＲＡＩＤグループ１７４は、ＨＤＤ１４３〜１４６で構成されている。
【００４３】
ＨＤＤ１４７〜１５０は、未使用状態であり、いずれのＲＡＩＤグループにも属していない。
管理ユニット１１０は、ＲＡＩＤシステム管理部１１８として機能する。ＲＡＩＤシステム管理部１１８は、ＣＰＵユニットを複数のＨＤＤと組み合わせて、ＲＡＩＤシステムとして動作させ、そのＲＡＩＤシステムの運用を管理する。例えばＲＡＩＤシステム管理部１１８は、１つのＣＰＵユニットをＲＡＩＤコントローラとして機能させ、複数のＨＤＤを、そのＲＡＩＤコントローラで制御されるＲＡＩＤグループとして機能させる。またＲＡＩＤシステム管理部１１８は、例えばＲＡＩＤグループに含まれるＨＤＤのいずれかで障害が発生した際に、そのＨＤＤが属するＲＡＩＤグループのリビルド処理を実行するＲＡＩＤコントローラを選択する。そしてＲＡＩＤシステム管理部１１８は、選択したＲＡＩＤコントローラへのリビルド処理の実行指示を行う。
【００４４】
なおＲＡＩＤコントローラ１２７，１２８とＲＡＩＤグループ１７１〜１７４との間の通信は、ＲＡＩＤシステム管理部１１８からの制御によって接続・切断される。例えば障害が発生したＲＡＩＤグループのリビルド処理を行う際には、管理ユニット１１０のＲＡＩＤシステム管理部１１８からの制御によって、リビルド処理対象のＲＡＩＤグループを制御するＲＡＩＤコントローラの切り替えが行われる。
【００４５】
以下、図７、図８を参照し、リビルド処理対象のＲＡＩＤグループを制御するＲＡＩＤコントローラの切り替え例について説明する。
図７は、ＲＡＩＤシステムの第１の状態遷移例における第１の状態を示す図である。図７の例では、４つのＲＡＩＤグループ１７１〜１７４が、ＲＡＩＤコントローラ１２７で制御されている。
【００４６】
端末装置３１はＲＡＩＤグループ１７１を使用し、端末装置３２はＲＡＩＤグループ１７２を使用し、端末装置３３はＲＡＩＤグループ１７３を使用し、端末装置３４はＲＡＩＤグループ１７４を使用するものとする。そのため、端末装置３１〜３４は、ＲＡＩＤコントローラ１２７を介して、ＲＡＩＤグループにアクセスする。
【００４７】
このような状況下で、ＲＡＩＤグループ１７４に属するＨＤＤ１４６に障害が発生したものとする。障害の発生は、ＲＡＩＤコントローラ１２７で検知される。ＲＡＩＤコントローラ１２７は、ＨＤＤ１４６での障害の発生を検知すると、障害が発生したＨＤＤの識別番号をＲＡＩＤシステム管理部１１８に通知する。すると、ＲＡＩＤシステム管理部１１８の制御により、ＲＡＩＤグループ１７４を制御するＲＡＩＤコントローラが、ＲＡＩＤコントローラ１２７からＲＡＩＤコントローラ１２８に切り替えられる。
【００４８】
図８は、ＲＡＩＤシステムの第１の状態遷移例における第２の状態を示す図である。故障したＨＤＤ１４６が属していたＲＡＩＤグループ１７４は、ＲＡＩＤコントローラ１２８で制御されている。またＲＡＩＤグループ１７４から故障したＨＤＤ１４６が除外され、別のＨＤＤ１４７が追加されている。
【００４９】
ＨＤＤ１４７をＲＡＩＤグループ１７４に追加した直後は、ＲＡＩＤグループ１７４は、縮退状態（データの冗長性が損なわれている状態）である。そこで、ＲＡＩＤコントローラ１２８は、ＲＡＩＤグループ１７４のリビルド処理を実行する。リビルド処理では、ＲＡＩＤコントローラ１２８は、ＲＡＩＤグループ１７４内の既存のＨＤＤ１４３〜１４５のデータに基づいて、故障したＨＤＤ１４６に格納されていたデータが再現する。そしてＲＡＩＤコントローラ１２８は、再現したデータを、ＨＤＤ１４７に書き込む。これにより、ＲＡＩＤグループ１７４におけるデータの冗長性が回復する。
【００５０】
このように、リビルドを実行するＲＡＩＤコントローラ１２８は、リビルド対象のＲＡＩＤグループ１７４のみを制御している。また、ＲＡＩＤグループ１７４以外のＲＡＩＤグループ１７１〜１７３は、リビルド処理を実行するＲＡＩＤコントローラ１２８とは別のＲＡＩＤコントローラ１２７で制御されている。これによりＲＡＩＤコントローラ１２８がリビルド処理を実行しても、ＲＡＩＤコントローラ１２７を介したＲＡＩＤグループ１７１〜１７３へのアクセスを、リビルド処理実行前と同等以上の処理効率で実行できる。すなわち、リビルド処理を実行することによる、リビルド対象外のＲＡＩＤグループへの悪影響が抑止される。
【００５１】
次に、図７、図８に示すような処理を実現するためのＲＡＩＤコントローラ１２７，１２８とＲＡＩＤシステム管理部１１８との機能について、詳細に説明する。
図９は、ＲＡＩＤコントローラとＲＡＩＤシステム管理部との内部機能の一例を示すブロック図である。なお図９には、ＲＡＩＤグループ１７１をＲＡＩＤコントローラ１２７が制御し、ＲＡＩＤグループ１７４をＲＡＩＤコントローラ１２８が制御している状況下での接続関係が示されている。
【００５２】
ＲＡＩＤコントローラ１２７は、端末装置３１からの要求に応じて、ＲＡＩＤグループ１７１にアクセスする。ＲＡＩＤコントローラ１２７は、ＲＡＩＤグループ１７１を制御するために、データアクセス部１２７ａ、管理情報通信部１２７ｂ、ＲＡＩＤグループ制御部１２７ｃ、および記憶部１２７ｄを有する。
【００５３】
データアクセス部１２７ａは、ＲＡＩＤグループ１７１へのデータアクセスを行う。例えばデータアクセス部１２７ａは、ＲＡＩＤグループ１７１を構成するＨＤＤ内の物理アドレスを指定したデータの書き込み、またはデータの読み出しを行う。
【００５４】
管理情報通信部１２７ｂは、ＲＡＩＤシステム管理部１１８との間の管理情報の通信を行う。管理情報としては、例えばＨＤＤの故障を検知した場合に、ＲＡＩＤコントローラ１２７からＲＡＩＤシステム管理部１１８に送信する異常通知がある。また別の管理情報としては、例えばＲＡＩＤシステム管理部１１８からＲＡＩＤコントローラ１２７に送信される、ＲＡＩＤグループの接続指示がある。
【００５５】
ＲＡＩＤグループ制御部１２７ｃは、制御対象のＲＡＩＤグループ１７１を制御する。例えばＲＡＩＤグループ制御部１２７ｃは、端末装置３１からの要求に応じて、ＲＡＩＤグループ１７１に対して、ＲＡＩＤグループ１７１のＲＡＩＤレベルに応じたアクセス制御を行う。例えばＲＡＩＤグループ制御部１２７ｃは、ＲＡＩＤグループ１７１のＲＡＩＤレベルがＲＡＩＤ５であれば、データ書き込みの際には、パリティデータを含むデータのストライピングによるデータの書き込み指示を、データアクセス部１２７ａに行う。ストライピングとは、複数のＨＤＤにデータを分散させて格納する技術である。パリティデータは、データの誤り訂正符号である。複数のＨＤＤのうちの１台のＨＤＤの故障によりデータが消失しても、パリティデータと、故障していないＨＤＤ内のデータとに基づいて、消失したデータを再生できる。またＲＡＩＤグループ制御部１２７ｃは、例えばＲＡＩＤグループ１７１のＲＡＩＤレベルがＲＡＩＤ１であれば、データ書き込みの際には、データをミラーリング（二重化）した複数のＨＤＤへの書き込み指示を、データアクセス部１２７ａに行う。
【００５６】
またＲＡＩＤグループ制御部１２７ｃは、制御対象のＲＡＩＤグループを構成するＨＤＤの故障を検出する。例えばＲＡＩＤグループ制御部１２７ｃは、ＲＡＩＤグループへのデータアクセスがエラーとなった場合、エラーとなったアクセス先のＨＤＤが故障したと判断する。ＲＡＩＤグループ制御部１２７ｃは、ＨＤＤの故障を検出した場合、異常通知を、管理情報通信部１２７ｂを介してＲＡＩＤシステム管理部１１８に送信する。
【００５７】
さらにＲＡＩＤグループ制御部１２７ｃは、制御対象のＲＡＩＤグループが縮退状態となると、そのＲＡＩＤグループに対して、冗長性を回復するためのリビルド処理を実行する。例えばＲＡＩＤグループ制御部１２７ｃは、ＲＡＩＤシステム管理部１１８からのリビルド開始指示に応じて、リビルド処理を開始する。
【００５８】
記憶部１２７ｄは、ＲＡＩＤコントローラ１２７で制御するＲＡＩＤグループの情報を記憶する。例えば記憶部１２７ｄには、ＲＡＩＤグループ管理テーブル１２７ｅが格納されている。ＲＡＩＤグループ管理テーブル１２７ｅには、ＲＡＩＤグループを制御するために使用される各種の情報が登録される。ＲＡＩＤグループ管理テーブル１２７ｅの詳細は後述する（図１０参照）。記憶部１２７ｄとしては、例えば、ＣＰＵユニット１２０−１のＲＡＭ１２２またはフラッシュメモリ１２３の記憶領域の一部が使用される。
【００５９】
ＲＡＩＤコントローラ１２８は、端末装置３４からの要求に応じて、ＲＡＩＤグループ１７４にアクセスする。ＲＡＩＤコントローラ１２８は、ＲＡＩＤグループ１７４を制御するために、データアクセス部１２８ａ、管理情報通信部１２８ｂ、ＲＡＩＤグループ制御部１２８ｃ、および記憶部１２８ｄを有する。データアクセス部１２８ａ、管理情報通信部１２８ｂ、ＲＡＩＤグループ制御部１２８ｃ、および記憶部１２８ｄは、それぞれＲＡＩＤコントローラ１２７内の同名の要素と同じ機能を有する。
【００６０】
ＲＡＩＤシステム管理部１１８は、ＲＡＩＤコントローラ１２７，１２８に対するリビルド処理の実行指示を行う。なおリビルド処理の実行指示には、リビルドを実行するＲＡＩＤコントローラへの、リビルド対象のＲＡＩＤグループの接続指示も含まれる。ＲＡＩＤシステム管理部１１８は、リビルド処理の実行指示を行うために、管理情報通信部１１８ａ、外部通信部１１８ｂ、コントローラ−ディスク管理部１１８ｃ、ＲＡＩＤグループ管理部１１８ｄ、および記憶部１１８ｅを有する。
【００６１】
管理情報通信部１１８ａは、ＲＡＩＤコントローラ１２７，１２８との間で管理情報を通信する。
外部通信部１１８ｂは、管理用の端末装置２１との間で通信する。例えば外部通信部１１８ｂは、端末装置２１から、ＲＡＩＤコントローラとＲＡＩＤグループとの接続指示を受信する。外部通信部１１８ｂは、受信した接続指示を、コントローラ−ディスク管理部１１８ｃに転送する。
【００６２】
コントローラ−ディスク管理部１１８ｃは、ＲＡＩＤコントローラと、そのＲＡＩＤコントローラが制御するＲＡＩＤグループを構成するＨＤＤとの接続関係を管理する。例えば、コントローラ−ディスク管理部１１８ｃは、ＤＡＮ１０１を制御し、ＲＡＩＤコントローラとＨＤＤとの間の通信を接続する。
【００６３】
ＲＡＩＤグループ管理部１１８ｄは、ＲＡＩＤグループを管理すると共に、ＲＡＩＤコントローラに対してＲＡＩＤグループの制御指示を行う。例えばＲＡＩＤグループ管理部１１８ｄは、各ＲＡＩＤグループに適用されているＲＡＩＤレベルや、ＲＡＩＤグループの状態（ステータス）を管理する。ＲＡＩＤグループのステータスには、例えばそのＲＡＩＤグループの冗長性が保たれている状態（正常）や、冗長性が損なわれている状態（縮退）がある。またＲＡＩＤグループ管理部１１８ｄは、例えば縮退状態のＲＡＩＤグループを制御しているＲＡＩＤコントローラに対して、リビルド開始指示を行う。
【００６４】
記憶部１１８ｅは、ＲＡＩＤシステム管理部１１８がＲＡＩＤシステムを管理するのに使用する情報を記憶する。例えば記憶部１１８ｅには、ＣＰＵ管理テーブル１１８ｆ、ディスク管理テーブル１１８ｇ、およびＲＡＩＤグループ管理テーブル１１８ｈが格納される。記憶部１１８ｅに格納される情報の詳細は後述する（図１２〜図１４参照）。
【００６５】
なお、図９に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
次に、各記憶部１２７ｄ，１２８ｄ，１１８ｅに格納される情報について詳細に説明する。
【００６６】
図１０は、「ＲＣ−Ａ」のＲＡＩＤコントローラが有するＲＡＩＤグループ管理テーブルの一例を示す図である。識別子が「ＲＣ−Ａ」のＲＡＩＤコントローラ１２７の記憶部１２７ｄには、例えば図１０に示すようなＲＡＩＤグループ管理テーブル１２７ｅが格納される。ＲＡＩＤグループ管理テーブル１２７ｅには、ＲＡＩＤ−ＩＤ、レベル、ステータス、属性、およびディスクリストの欄が設けられている。
【００６７】
ＲＡＩＤ−ＩＤの欄には、識別子が「ＲＣ−Ａ」のＲＡＩＤコントローラ１２７が制御するＲＡＩＤグループの識別子（ＲＡＩＤ−ＩＤ）が設定される。レベルの欄には、対応するＲＡＩＤグループのＲＡＩＤレベルが設定される。ステータスの欄には、対応するＲＡＩＤグループのステータス（状態）が設定される。ステータスの欄には、例えば正常・縮退・リビルド中・故障のいずれかの状態が設定される。正常の状態とは、冗長性が維持された状態である。縮退の状態とは、冗長性が損なわれており、まだリビルド処理が実施されていない状態である。リビルド中の状態とは、冗長性を回復するためのリビルド処理を実行中の状態である。故障の状態とは、冗長性が損なわれており、かつリビルドが不可能な状態である。例えばＲＡＩＤ５のＲＡＩＤグループにおいて複数のＨＤＤが同時に故障すると、リビルド不可能な状態となる場合がある。属性の欄には、対応するＲＡＩＤグループの管理に用いられる情報が設定される。例えば、ＲＡＩＤグループにアクセスするためのＩＰアドレスが、属性の欄に設定される。ディスクリストの欄には、対応するＲＡＩＤグループに属している１以上のＨＤＤの識別子（ＨＤＤ−ＩＤ）が設定される。
【００６８】
図１０の例では、ＲＡＩＤコントローラ１２７は、ＲＡＩＤ−ＩＤが「ＲＡＩＤ−ａ」のＲＡＩＤグループを制御している。そのＲＡＩＤグループは、ＨＤＤ−ＩＤが「ＤＩＳＫ−Ａ，ＤＩＳＫ−Ｂ，ＤＩＳＫ−Ｃ，ＤＩＳＫ−Ｄ」のＨＤＤを用いて、ＲＡＩＤレベル「ＲＡＩＤ５」で正常に動作している。
【００６９】
図１１は、「ＲＣ−Ｂ」のＲＡＩＤコントローラが有するＲＡＩＤグループ管理テーブルの一例を示す図である。識別子が「ＲＣ−Ｂ」のＲＡＩＤコントローラ１２８の記憶部１２８ｄには、例えば図１１に示すようなＲＡＩＤグループ管理テーブル１２８ｅが格納される。ＲＡＩＤグループ管理テーブル１２８ｅには、ＲＡＩＤ−ＩＤ、レベル、ステータス、属性、およびディスクリストの欄が設けられている。ＲＡＩＤグループ管理テーブル１２８ｅの各欄には、図１０に示したＲＡＩＤグループ管理テーブル１２７ｅの同名の欄と同種の情報が設定される。
【００７０】
図１１の例では、ＲＡＩＤコントローラ１２８は、ＲＡＩＤ−ＩＤが「ＲＡＩＤ−ｂ」のＲＡＩＤグループを制御している。そのＲＡＩＤグループは、ＲＡＩＤレベル「ＲＡＩＤ１」で運用されているが、現在そのＲＡＩＤグループに属しているＨＤＤは、ＨＤＤ−ＩＤが「ＤＩＳＫ−Ｅ，ＤＩＳＫ−Ｆ」のＨＤＤであるが、一方のＨＤＤの故障によりステータスは縮退となっている。
【００７１】
図１２は、ＲＡＩＤシステム管理部が有するＣＰＵ管理テーブルの一例を示す図である。ＣＰＵ管理テーブル１１８ｆには、ＣＰＵ−ＩＤ、ステータス、属性、および接続ディスクリストの欄が設けられている。ＣＰＵ−ＩＤの欄には、サーバ１００に搭載されているＣＰＵユニットの識別子（ＣＰＵ−ＩＤ）が設定される。ステータスの欄には、対応するＣＰＵユニットのステータス（状態）が設定される。ＣＰＵユニットの状態としては、例えば割当済・未割当・故障などがある。割当済の状態は、ＣＰＵユニットに対して、ＲＡＩＤコントローラとしての機能が割り当てられている状態である。未割当の状態は、ＣＰＵユニットに対して、ＲＡＩＤコントローラとしての機能が割り当てられていない状態である。故障の状態は、ＣＰＵユニットが故障中であることを示す状態である。属性の欄には、対応するＣＰＵユニットの管理に用いる情報が設定される。接続ディスクリストの欄には、対応するＣＰＵユニットに接続されている１以上のＨＤＤの識別子（ＨＤＤ−ＩＤ）が設定される。
【００７２】
図１２の例では、識別子が「ＣＰＵ−０１」と「ＣＰＵ−０２」とのＣＰＵユニットがＲＡＩＤコントローラとして機能しており、それぞれのＣＰＵユニットにＨＤＤが接続されている。
【００７３】
図１３は、ＲＡＩＤシステム管理部が有するディスク管理テーブルの一例を示す図である。ディスク管理テーブル１１８ｇは、ＤＩＳＫ−ＩＤ、ステータス、属性、および接続ＣＰＵ−ＩＤの欄が設けられている。ＤＩＳＫ−ＩＤの欄には、サーバ１００に搭載されているＨＤＤの識別子（ＤＩＳＫ−ＩＤ）が設定される。ステータスの欄には、対応するＨＤＤのステータス（状態）が設定される。ＨＤＤの状態としては、例えば割当済・未割当・故障などがある。割当済の状態は、ＨＤＤがＲＡＩＤグループに割り当てられている状態である。未割当の状態は、ＨＤＤがいずれのＲＡＩＤグループにも割り当てられていない状態である。故障の状態は、ＨＤＤが故障中であることを示す状態である。属性の欄には、対応するＨＤＤの管理に用いる情報が設定される。接続ＣＰＵ−ＩＤの欄には、対応するＨＤＤが接続されているＣＰＵユニットの識別子（ＣＰＵ−ＩＤ）が設定される。
【００７４】
図１３の例では、識別子が「ＤＩＳＫ−Ａ，ＤＩＳＫ−Ｂ，ＤＩＳＫ−Ｃ，ＤＩＳＫ−Ｄ，ＤＩＳＫ−Ｅ，ＤＩＳＫ−Ｆ」の各ＨＤＤは、ＲＡＩＤグループに割り当てられている。また識別子が「ＤＩＳＫ−Ｇ」のＨＤＤは、いずれのＲＡＩＤグループにも割り当てられていない。識別子が「ＤＩＳＫ−Ｈ」のＨＤＤは、故障中である。
【００７５】
図１４は、ＲＡＩＤシステム管理部が有するＲＡＩＤグループ管理テーブルの一例を示す図である。ＲＡＩＤグループ管理テーブル１１８ｈには、ＲＡＩＤ−ＩＤ、レベル、ステータス、属性、接続先ＣＰＵ、およびディスクリストの欄が設けられている。ＲＡＩＤグループ管理テーブル１１８ｈの接続先ＣＰＵを除く各欄には、図１０に示したＲＡＩＤグループ管理テーブル１２７ｅの同名の欄と同種の情報が設定される。ただしＲＡＩＤシステム管理部１１８が有するＲＡＩＤグループ管理テーブル１１８ｈには、サーバ１００内に構築されたすべてのＲＡＩＤグループの情報が設定される。接続先ＣＰＵの欄には、ＲＡＩＤ−ＩＤで示されるＲＡＩＤグループを制御しているＲＡＩＤコントローラを有するＣＰＵユニットの識別子（ＣＰＵ−ＩＤ）が設定される。
【００７６】
図１０〜図１４に示した各テーブルに登録された情報を用いて、サーバ１００内にＲＡＩＤシステムが構築され、そのＲＡＩＤシステムが管理される。ＲＡＩＤシステムの構築では、ＲＡＩＤコントローラへの複数のＨＤＤ（ディスク群）の接続処理が行われる。そして、ＲＡＩＤコントローラは、接続されたディスク群をＲＡＩＤグループとして制御し、そのＲＡＩＤグループへのアクセス環境を、端末装置に提供する。
【００７７】
図１５は、ＲＡＩＤコントローラへのディスク群の接続手順を示すシーケンス図である。図１５は、ＲＡＩＤコントローラ１２７に、端末装置３１で使用するＲＡＩＤグループ１７１を接続する場合の処理手順を示している。以下、図１５に示す処理をステップ番号に沿って説明する。
【００７８】
［ステップＳ１０１］ＲＡＩＤシステム管理部１１８は、識別子「ＲＣ−Ａ」のＲＡＩＤコントローラ１２７とディスク群とを接続する。例えば管理者が端末装置３１に、ＲＡＩＤコントローラ１２７へのディスク群の接続指示を入力する。すると端末装置３１からＲＡＩＤシステム管理部１１８に、ＲＡＩＤコントローラ１２７へのディスク群の接続指示が送信される。ＲＡＩＤシステム管理部１１８の外部通信部１１８ｂが、接続指示を受信し、受信した接続指示をコントローラ−ディスク管理部１１８ｃに転送する。コントローラ−ディスク管理部１１８ｃは、ＤＡＮ１０１を制御して、ＲＡＩＤコントローラ１２７にＨＤＤ１３１〜１３４を接続する。
【００７９】
コントローラ−ディスク管理部１１８ｃは、接続が完了すると、ＣＰＵ管理テーブル１１８ｆとディスク管理テーブル１１８ｇとを更新する。例えばコントローラ−ディスク管理部１１８ｃは、ＣＰＵ管理テーブル１１８ｆのＣＰＵユニット１２０−１のＣＰＵ−ＩＤに対応するエントリのステータスを「割当済」とし、接続ディスクリストにＨＤＤ１３１〜１３４のＤＩＳＫ−ＩＤを設定する。またコントローラ−ディスク管理部１１８ｃは、ディスク管理テーブル１１８ｇのＨＤＤ１３１〜１３４それぞれに対応するエントリのステータスを「割当済」とし、接続ＣＰＵ−ＩＤとしてＣＰＵユニット１２０−１のＣＰＵ−ＩＤを設定する。
【００８０】
［ステップＳ１０２］ＲＡＩＤシステム管理部１１８は、ＲＡＩＤコントローラ１２７に対して、ＨＤＤ１３１〜１３４の接続指示を送信する。例えばＲＡＩＤシステム管理部１１８のコントローラ−ディスク管理部１１８ｃは、管理情報通信部１１８ａを介して、ＲＡＩＤコントローラ１２７へＨＤＤ１３１〜１３４の接続指示を送信する。
【００８１】
［ステップＳ１０３］ＲＡＩＤコントローラ１２７は、ディスク群をＯＳで認識し、ソフトウェア的にディスク群の接続処理を行う。この接続処理は、ＤＡＮ１０１を介した通信が可能なように、論理的な接続状態を確立する処理である。例えばＲＡＩＤコントローラ１２７のＲＡＩＤグループ制御部１２７ｃは、管理情報通信部１２７ｂを介して、ＲＡＩＤシステム管理部１１８からのＨＤＤ１３１〜１３４の接続指示を受信する。ＲＡＩＤグループ制御部１２７ｃは、例えばプラグアンドプレイと呼ばれる機能を用いて、ＤＡＮ経由で接続されたＨＤＤ１３１〜１３４をＯＳ上で認識する。さらにＲＡＩＤグループ制御部１２７ｃは、例えば、ＨＤＤ１３１〜１３４との間で通信用のコネクションを確立する。なおＲＡＩＤグループ制御部１２７ｃは、ＨＤＤ１３１〜１３４の接続指示を待たずに、ＤＡＮ１０１経由でＨＤＤ１３１〜１３４が接続されたことを検出し、ＯＳ上でＨＤＤ１３１〜１３４を認識することもできる。ＲＡＩＤグループ制御部１２７ｃは、ディスク群を接続した場合、ＲＡＩＤグループ管理テーブル１２７ｅに、接続したディスク群を示すエントリを登録する。登録されるエントリには、例えばＲＡＩＤグループ１７１のＲＡＩＤ−ＩＤ、ＲＡＩＤグループ１７１のＲＡＩＤレベル、ステータス「正常」、およびＲＡＩＤグループ１７１を構成するＨＤＤ１３１〜１３４のＤＩＳＫ−ＩＤのリストが含まれる。
【００８２】
［ステップＳ１０４］ＲＡＩＤコントローラ１２７は、ＲＡＩＤグループ１７１用のエイリアスＩＰアドレスをＯＳに設定する。エイリアスＩＰアドレスとは、ＲＡＩＤコントローラ１２７の本来のＩＰアドレス以外に、ネットワークスイッチ２２を介した通信でパケットを受信するためのＩＰアドレスである。エイリアスＩＰアドレスを設定することで、ＲＡＩＤコントローラ１２７は、ＲＡＩＤグループ１７１に一意に対応付けられたＩＰアドレスを宛先とするパケットを受信することが可能となる。エイリアスＩＰアドレスをＯＳに設定後、例えばＲＡＩＤコントローラ１２７は、エイリアスＩＰアドレスとして設定したＩＰアドレスを、ＲＡＩＤグループ管理テーブル１２７ｅにおけるステップＳ１０３で登録したエントリの属性の欄に設定する。
【００８３】
［ステップＳ１０５］ＲＡＩＤコントローラ１２７のＲＡＩＤグループ制御部１２７ｃは、接続されたＲＡＩＤグループ１７１を、ｉＳＣＳＩターゲットディスクとして公開する。ＲＡＩＤグループ１７１がｉＳＣＳＩターゲットディスクとして公開されることで、端末装置からＲＡＩＤグループ１７１への接続が可能となる。
【００８４】
［ステップＳ１０６］ＲＡＩＤコントローラ１２７のＲＡＩＤグループ制御部１２７ｃは、ＡＲＰ（Address Resolution Protocol）テーブルの更新要求を、ネットワークスイッチ２２経由でブロードキャスト送信する。ＡＲＰテーブルの更新要求には、ＲＡＩＤグループ１７１用のＩＰアドレスが含まれる。
【００８５】
［ステップＳ１０７］ブロードキャスト送信されたＡＲＰテーブルの更新要求を、端末装置３１が受信する。
［ステップＳ１０８］ＲＡＩＤコントローラ１２７のＲＡＩＤグループ制御部１２７ｃは、ＲＡＩＤシステム管理部１１８に、ディスク群の接続指示に対するレスポンスを送信する。ＲＡＩＤシステム管理部１１８では、レスポンスに応じてＲＡＩＤグループ管理部１１８ｄが、ＲＡＩＤグループ管理テーブル１１８ｈに、ＲＡＩＤグループ１７１の情報を含むエントリを登録する。登録されるエントリには、例えばＲＡＩＤグループ１７１のＲＡＩＤ−ＩＤ、ＲＡＩＤグループ１７１のＲＡＩＤレベル、ステータス「正常」、およびＲＡＩＤグループ１７１を構成するＨＤＤ１３１〜１３４のＤＩＳＫ−ＩＤのリストが含まれる。また登録されるエントリには、接続先のＣＰＵとして、ＣＰＵユニット１２０−１のＣＰＵ−ＩＤ「ＣＰＵ−０１」が含まれる。さらに、登録されるエントリの属性には、ＲＡＩＤグループ１７１用のＩＰアドレスが設定される。
【００８６】
［ステップＳ１０９］端末装置３１は、ＲＡＩＤグループ１７１用のＩＰアドレスを指定して、ｉＳＣＳＩターゲットディスク接続要求を送信する。
［ステップＳ１１０］ＲＡＩＤコントローラ１２７のＲＡＩＤグループ制御部１２７ｃは、端末装置３１から送信されたｉＳＣＳＩターゲットディスク接続要求を受信する。そしてＲＡＩＤグループ制御部１２７ｃは、端末装置３１に対するｉＳＣＳＩターゲットディスクの接続処理を行う。
【００８７】
［ステップＳ１１１］ＲＡＩＤコントローラ１２７のＲＡＩＤグループ制御部１２７ｃは、ｉＳＣＳＩターゲットディスク接続処理の結果を、端末装置３１に応答する。
これにより、端末装置３１は、ＲＡＩＤグループ１７１のＩＰアドレスを指定したアクセス要求を送信することで、ＲＡＩＤグループ１７１へのアクセスが可能となる。
【００８８】
図１５にはＲＡＩＤグループ１７１のＲＡＩＤコントローラ１２７への接続処理を示したが、他のＲＡＩＤグループ１７２〜１７４も同様にしてＲＡＩＤコントローラ１２７に接続できる。４つのＲＡＩＤグループ１７１〜１７４がＲＡＩＤコントローラ１２７に接続されると、図７に示した状態となり、４つのＲＡＩＤグループ１７１〜１７４を用いたＲＡＩＤシステムが運用される。そして、いずれかのＲＡＩＤグループ内のＨＤＤが故障すると、故障したＨＤＤが属するＲＡＩＤグループを制御するＲＡＩＤコントローラの切り替えと、リビルド処理とが行われる。
【００８９】
図１６は、故障検出時のＲＡＩＤコントローラの切り替えおよびリビルド処理の手順の一例を示すシーケンス図である。以下、ＲＡＩＤグループ１７４のＨＤＤ１４６（図７参照）が故障した場合を想定し、図１６に示す処理をステップ番号に沿って説明する。
【００９０】
［ステップＳ１２１］ＲＡＩＤコントローラ１２７は、ＨＤＤ１４６の故障を検出する。例えばＲＡＩＤコントローラ１２７のＲＡＩＤグループ制御部１２７ｃは、ＨＤＤ１４６へのデータの書き込み、またはＨＤＤ１４６からのデータの読み出しに失敗したときに、ＨＤＤ１４６が故障していると判断する。
【００９１】
［ステップＳ１２２］ＲＡＩＤコントローラ１２７のＲＡＩＤグループ制御部１２７ｃは、ＲＡＩＤシステム管理部１１８に対して、ＨＤＤ１４６の故障を示す異常通知を送信する。
【００９２】
［ステップＳ１２３］ＲＡＩＤシステム管理部１１８のＲＡＩＤグループ管理部１１８ｄは、ＲＡＩＤコントローラ１２７からの異常通知を受信する。そしてＲＡＩＤグループ管理部１１８ｄは、ＲＡＩＤコントローラ１２７に対して、ＲＡＩＤグループ１７４の接続解除指示を送信する。
【００９３】
［ステップＳ１２４］ＲＡＩＤコントローラ１２７のＲＡＩＤグループ制御部１２７ｃは、ＲＡＩＤグループ１７４を制御対象から解除する。さらにＲＡＩＤグループ制御部１２７ｃは、ＲＡＩＤグループのＩＰアドレスの、エイリアスＩＰアドレスとしての設定を解除する。この際、ＲＡＩＤグループ制御部１２７ｃは、例えばＲＡＩＤグループ管理テーブル１２７ｅから、ＲＡＩＤグループ１７４に対応するエントリを削除する。
【００９４】
［ステップＳ１２５］ＲＡＩＤコントローラ１２７のＲＡＩＤグループ制御部１２７ｃは、ＲＡＩＤシステム管理部１１８に、接続解除が終了したことを示すレスポンスを送信する。
【００９５】
［ステップＳ１２６］ＲＡＩＤシステム管理部１１８のＲＡＩＤグループ管理部１１８ｄは、ＲＡＩＤコントローラ１２７からのレスポンスを受信する。そしてＲＡＩＤグループ管理部１１８ｄは、コントローラ−ディスク管理部１１８ｃに、ＲＡＩＤグループ１７４の異常ディスクの正常ディスクへの入れ替えと、ＲＡＩＤグループ１７４の接続先のＲＡＩＤコントローラの切り替えとを指示する。するとコントローラ−ディスク管理部１１８ｃは、ＤＡＮ１０１を制御し、ＲＡＩＤコントローラ１２７と、ＲＡＩＤグループ１７４を構成するディスク群（ＨＤＤ１４３〜１４６）の接続を解除する。このときコントローラ−ディスク管理部１１８ｃは、ＣＰＵ管理テーブル１１８ｆとディスク管理テーブル１１８ｇとを更新する。例えばコントローラ−ディスク管理部１１８ｃは、ＣＰＵ管理テーブル１１８ｆのＣＰＵユニット１２０−１のＣＰＵ−ＩＤに対応するエントリの接続ディスクリストから、ＨＤＤ１４３〜１４６のＤＩＳＫ−ＩＤを削除する。またコントローラ−ディスク管理部１１８ｃは、ディスク管理テーブル１１８ｇのＨＤＤ１４３〜１４６に対応するエントリのステータスを「未割当」に変更し、接続ＣＰＵ−ＩＤに設定されているＣＰＵ−ＩＤを削除する。
【００９６】
［ステップＳ１２７］ＲＡＩＤシステム管理部１１８は、ＲＡＩＤグループ１７４を構成するディスク群から、ＨＤＤ１４６を除外し、ＨＤＤ１４７を加える。そしてＲＡＩＤシステム管理部１１８は、ＤＡＮ１０１を制御し、ＲＡＩＤグループ１７４を構成するディスク群（ＨＤＤ１４３〜１４５，１４７）を、識別子「ＲＣ−Ｂ」のＲＡＩＤコントローラ１２８に接続する。このときコントローラ−ディスク管理部１１８ｃは、ＣＰＵ管理テーブル１１８ｆとディスク管理テーブル１１８ｇとを更新する。例えばコントローラ−ディスク管理部１１８ｃは、ＣＰＵ管理テーブル１１８ｆのＣＰＵユニット１２０−２のＣＰＵ−ＩＤに対応するエントリの接続ディスクリストに、ＨＤＤ１４３〜１４５，１４７のＤＩＳＫ−ＩＤを登録する。またコントローラ−ディスク管理部１１８ｃは、ディスク管理テーブル１１８ｇのＨＤＤ１４３〜１４５，１４７に対応するエントリのステータスを「割当済」に変更し、接続ＣＰＵ−ＩＤにＣＰＵユニット１２０−２のＣＰＵ−ＩＤを設定する。
【００９７】
［ステップＳ１２８］ＲＡＩＤコントローラ１２７がＲＡＩＤグループ１７４の接続を解除すると、ＲＡＩＤグループ１７４を使用する端末装置３４は、ＲＡＩＤグループ１７４との間のコネクションの遮断を認識する。
【００９８】
［ステップＳ１２９］端末装置４３は、ＲＡＩＤコントローラ１２７に対して、ＲＡＩＤグループ１７４との再接続を試みるが、失敗する。
［ステップＳ１３０］一方、識別子「ＲＣ−Ｂ」のＲＡＩＤコントローラ１２８にディスク群を接続したＲＡＩＤシステム管理部１１８は、ＲＡＩＤグループ１７４用のＩＰアドレスを含む接続指示を、ＲＡＩＤコントローラ１２８に送信する。
【００９９】
［ステップＳ１３１］ＲＡＩＤコントローラ１２８は、ディスク群（ＨＤＤ１４３〜１４５，１４７）をＯＳで認識し、ソフトウェア的にディスク群の接続処理を行う。この処理の詳細は、図１５のステップＳ１０３の処理と同様である。
【０１００】
［ステップＳ１３２］ＲＡＩＤコントローラ１２８は、接続指示に含まれるＩＰアドレスを、ＲＡＩＤグループ１７４用のエイリアスＩＰアドレスとしてＯＳに設定する。この処理の詳細は、図１５のステップＳ１０４の処理と同様である。
【０１０１】
［ステップＳ１３３］ＲＡＩＤコントローラ１２８のＲＡＩＤグループ制御部１２８ｃは、接続されたＲＡＩＤグループ１７４を、ｉＳＣＳＩターゲットディスクとして公開する。
【０１０２】
［ステップＳ１３４］ＲＡＩＤコントローラ１２８のＲＡＩＤグループ制御部１２８ｃは、ＡＲＰテーブルの更新要求を、ネットワークスイッチ２２経由でブロードキャスト送信する。
【０１０３】
［ステップＳ１３５］ブロードキャスト送信されたＡＲＰテーブルの更新要求を、端末装置３４が受信する。
［ステップＳ１３６］端末装置３４は、ＡＲＰテーブルの更新要求に応じて、自身のＡＲＰテーブルを更新する。そして端末装置３４は、ＲＡＩＤコントローラ１２８を介して、ＲＡＩＤグループ１７４との接続処理を行う。この処理の詳細は、図１５のステップＳ１０９〜Ｓ１１１の処理と同様である。
【０１０４】
［ステップＳ１３７］ＲＡＩＤコントローラ１２８のＲＡＩＤグループ制御部１２８ｃは、ＲＡＩＤシステム管理部１１８に、ディスク群の接続指示に対するレスポンスを送信する。
【０１０５】
［ステップＳ１３８］ＲＡＩＤシステム管理部１１８のＲＡＩＤグループ管理部１１８ｄは、ＲＡＩＤコントローラ１２８に対して、ＲＡＩＤグループ１７４のリビルド開始指示を送信する。
【０１０６】
［ステップＳ１３９］ＲＡＩＤコントローラ１２８のＲＡＩＤグループ制御部１２８ｃは、リビルド開始指示を受信する。
［ステップＳ１４０］ＲＡＩＤコントローラ１２８のＲＡＩＤグループ制御部１２８ｃは、ＲＡＩＤグループ１７４のリビルド処理を開始する。例えばＲＡＩＤグループ１７４のＲＡＩＤレベルがＲＡＩＤ５であれば、ＲＡＩＤグループ制御部１２８ｃは、ＨＤＤ１４３〜１４５のデータおよびパリティデータを用いて、故障したＨＤＤ１４６に格納されていたデータまたはパリティデータを再現する。そしてＲＡＩＤグループ制御部１２８ｃは、再現したデータまたはパリティデータを、ＨＤＤ１４７に格納する。またＲＡＩＤグループ制御部１２８ｃは、ＲＡＩＤグループ１７４のＲＡＩＤレベルがＲＡＩＤ１であれば、ＨＤＤ１４６と同じデータを格納していたＨＤＤ内のデータを、ＨＤＤ１４７にコピーする。
【０１０７】
以上のようにして、故障したＨＤＤが属するＲＡＩＤグループ１７４をＲＡＩＤコントローラ１２８に接続し、ＲＡＩＤコントローラ１２８に、ＲＡＩＤグループ１７４のリビルド処理を実行させることができる。
【０１０８】
なお図７、図８に示したＲＡＩＤコントローラの切り替え例では、ＨＤＤ１４６が故障したとき、ディスク群が接続されていないＲＡＩＤコントローラ１２８が存在している。一方、ＨＤＤ１４６が故障したとき、ディスク群が接続されていないＲＡＩＤコントローラが存在していない場合も考えられる。このような場合、例えば、いずれかのＣＰＵユニットでＲＡＩＤコントローラを起動させ、そのＲＡＩＤコントローラに縮退ＲＡＩＤグループが接続される。以下、図１７〜図２０を参照して、ＲＡＩＤグループ縮退時に新たなＲＡＩＤコントローラを起動する場合の、ＲＡＩＤシステムの状態遷移について説明する。
【０１０９】
図１７は、ＲＡＩＤシステムの第２の状態遷移例における第１の状態を示す図である。第１の状態は、正常運用中の状態である。この状態では、ＲＡＩＤコントローラ１２７が、４つのＲＡＩＤグループ１７１〜１７４を制御している。
【０１１０】
図１８は、ＲＡＩＤシステムの第２の状態遷移例における第２の状態を示す図である。第２の状態は、ＨＤＤ１４６に異常が発生した状態である。ＨＤＤ１４６に異常が発生することで、ＨＤＤ１４６が属するＲＡＩＤグループ１７４は縮退状態となる。そこで、ＲＡＩＤシステム管理部１１８の制御により、いずれかのＣＰＵユニットを用いて、ＲＡＩＤコントローラ１２８が起動される。
【０１１１】
図１９は、ＲＡＩＤシステムの第２の状態遷移例における第３の状態を示す図である。第３の状態は、縮退したＲＡＩＤグループ１７４の接続先を、新たに起動したＲＡＩＤコントローラ１２８に切り替えた後の状態である。ＲＡＩＤコントローラ１２８には、ＲＡＩＤグループ１７４のみが接続されている。そこで、ＲＡＩＤコントローラ１２８は、ＲＡＩＤグループ１７４のリビルド処理を実行する。その間、他のＲＡＩＤグループ１７１〜１７３は、ＲＡＩＤコントローラ１２７によって平常通り運用される。なお、ＲＡＩＤグループ１７４を使用する端末装置３４は、ＲＡＩＤコントローラ１２８を介して、ＲＡＩＤグループ１７４内のデータにアクセス可能である。
【０１１２】
図２０は、ＲＡＩＤシステムの第２の状態遷移例における第４の状態を示す図である。第４の状態は、リビルド処理終了後の状態である。リビルド処理が終了したＲＡＩＤグループ１７４は、ＲＡＩＤコントローラ１２７に再接続されている。そして、リビルド処理を実行するために起動されたＲＡＩＤコントローラ１２８は、動作が停止している。端末装置３４は、ＲＡＩＤコントローラ１２７を介して、ＲＡＩＤグループ１７４内のデータにアクセス可能となっている。
【０１１３】
図１７〜図２０に示したように、リビルド処理を実行する間だけ新たなＲＡＩＤコントローラ１２８を稼働させることで、リビルド用のＲＡＩＤコントローラを予め用意しておく必要がなくなる。しかも、リビルド処理の終了後には、リビルド処理を実行したＲＡＩＤコントローラを停止させることで、サーバ１００の省電力化を図ることができる。なお図１７〜図２０に示した動作は、ＲＡＩＤシステム管理部１１８の制御によって実行される。
【０１１４】
ＲＡＩＤグループの縮退時に、ＲＡＩＤグループが接続されていないＲＡＩＤコントローラが存在しておらず、かつ新たなＲＡＩＤコントローラを起動することもできない場合も考えられる。このような場合、縮退したＲＡＩＤグループが接続されているＲＡＩＤコントローラから、縮退したＲＡＩＤグループ以外のＲＡＩＤグループを切り離すことで、リビルド処理を実行することができる。これにより、縮退したＲＡＩＤグループ以外のＲＡＩＤグループへの悪影響を抑止できる。以下、図２１〜図２３を参照して、縮退したＲＡＩＤグループ以外のＲＡＩＤグループを、ＲＡＩＤコントローラから切り離す場合の、ＲＡＩＤシステムの状態遷移について説明する。
【０１１５】
図２１は、ＲＡＩＤシステムの第３の状態遷移例における第１の状態を示す図である。第１の状態は、正常運用中の状態である。この状態では、ＲＡＩＤコントローラ１２７に２つのＲＡＩＤグループ１７１，１７２が接続され、ＲＡＩＤコントローラ１２８にも２つのＲＡＩＤグループ１７３，１７４が接続されている。ＲＡＩＤグループ１７１，１７２それぞれを使用する端末装置３１，３２は、ＲＡＩＤコントローラ１２７を介してＲＡＩＤグループ１７１，１７２内のデータにアクセスする。ＲＡＩＤグループ１７３，１７４それぞれを使用する端末装置３３，３４は、ＲＡＩＤコントローラ１２８を介してＲＡＩＤグループ１７３，１７４内のデータにアクセスする。
【０１１６】
図２２は、ＲＡＩＤシステムの第３の状態遷移例における第２の状態を示す図である。第２の状態は、ＨＤＤ１４６に異常が発生した状態である。ＨＤＤ１４６に異常が発生することで、ＨＤＤ１４６が属するＲＡＩＤグループ１７４は縮退状態となる。そしてＲＡＩＤコントローラ１２８からＲＡＩＤグループ１７４が切り離されている。ＲＡＩＤグループ１７３は、新たにＲＡＩＤコントローラ１２７に接続されている。この状態で、ＲＡＩＤコントローラ１２８は、ＲＡＩＤグループ１７３のリビルド処理を実行する。なお、ＲＡＩＤグループ１７３を使用する端末装置３３は、ＲＡＩＤコントローラ１２７を介して、ＲＡＩＤグループ１７３内のデータにアクセス可能である。
【０１１７】
図２３は、ＲＡＩＤシステムの第３の状態遷移例における第３の状態を示す図である。第３の状態は、リビルド処理終了後の状態である。リビルド処理が終了すると、ＲＡＩＤグループ１７３は、再度、ＲＡＩＤコントローラ１２８に接続される。これにより、運用状態が、異常発生前と同様となる。
【０１１８】
このように図２１〜図２３の例では、縮退したＲＡＩＤグループが接続されているＲＡＩＤコントローラから、縮退したＲＡＩＤグループ以外のＲＡＩＤグループを切り離す。これにより、ＲＡＩＤグループが接続されていないＲＡＩＤコントローラが存在しなくても、リビルド処理の影響を、正常に動作しているＲＡＩＤグループに波及させずにすむ。なお図２１〜図２３に示した動作は、ＲＡＩＤシステム管理部１１８の制御によって実行される。
【０１１９】
次に、ＲＡＩＤシステム管理部１１８における、ＲＡＩＤコントローラとディスク群との接続の切り替え制御処理について詳細に説明する。
図２４は、ＲＡＩＤコントローラとディスク群との接続の切り替え制御処理の手順の一例を示すフローチャートである。以下、図２４に示す処理をステップ番号に沿って説明する。
【０１２０】
［ステップＳ１５１］ＲＡＩＤグループ管理部１１８ｄは、いずれかのＲＡＩＤコントローラから異常通知を受信したか否かを判断する。異常通知を受信した場合、ＲＡＩＤグループ管理部１１８ｄは、処理をステップＳ１５２に進める。また異常通知を受信していなければ、ＲＡＩＤグループ管理部１１８ｄは、ステップＳ１５１の処理を繰り返す。
【０１２１】
［ステップＳ１５２］ＲＡＩＤグループ管理部１１８ｄは、異常ディスクが属するＲＡＩＤグループ（縮退ＲＡＩＤグループ）を判断する。例えばＲＡＩＤグループ管理部１１８ｄは、異常が発生したＨＤＤのＤＩＳＫ−ＩＤを異常通知から抽出する。次にＲＡＩＤグループ管理部１１８ｄは、抽出したＤＩＳＫ−ＩＤを検索キーとして、ＲＡＩＤグループ管理テーブル１１８ｈを検索する。ＲＡＩＤグループ管理部１１８ｄは、検索で該当したエントリのＲＡＩＤ−ＩＤで示されるＲＡＩＤグループを、縮退ＲＡＩＤグループと判断する。ＲＡＩＤグループ管理部１１８ｄは、検索で該当したエントリの接続先ＣＰＵに設定されているＣＰＵ−ＩＤのＣＰＵユニットで動作しているＲＡＩＤコントローラが、縮退ＲＡＩＤグループを制御していると判断する。
【０１２２】
［ステップＳ１５３］ＲＡＩＤグループ管理部１１８ｄは、ＲＡＩＤグループ管理テーブル１１８ｈを参照し、縮退ＲＡＩＤグループとＲＡＩＤコントローラ（接続先ＣＰＵ）が共通の正常のＲＡＩＤグループがあるか否かを判断する。ＲＡＩＤグループ管理部１１８ｄは、該当するＲＡＩＤグループがあれば、処理をステップＳ１５４に進める。ＲＡＩＤグループ管理部１１８ｄは、該当するＲＡＩＤグループがなければ、処理をステップＳ１５８に進める。
【０１２３】
［ステップＳ１５４］ＲＡＩＤグループ管理部１１８ｄは、ＲＡＩＤグループが未割当のＲＡＩＤコントローラを検索する。例えばＲＡＩＤグループ管理部１１８ｄは、ＣＰＵ管理テーブル１１８ｆを参照し、ステータスが「未割当」のＣＰＵユニットの１つを選択し、縮退ＲＡＩＤグループの新たな接続先とする。
【０１２４】
なおＲＡＩＤグループ管理部１１８ｄは、選択したＣＰＵユニットと通信し、ＲＡＩＤコントローラが起動されているか否かを確認することもできる。ＲＡＩＤグループ管理部１１８ｄは、ＲＡＩＤコントローラが稼働していなければ、選択したＣＰＵユニットに対して、ＲＡＩＤコントローラの起動を指示することもできる。
【０１２５】
［ステップＳ１５５］ＲＡＩＤグループ管理部１１８ｄは、ＲＡＩＤグループが未割当のＲＡＩＤコントローラが検出できたか否かを判断する。ＲＡＩＤグループ管理部１１８ｄは、検出できた場合、処理をステップＳ１５６に進める。またＲＡＩＤグループ管理部１１８ｄは、検出できなかった場合、処理をステップＳ１５７に進める。
【０１２６】
［ステップＳ１５６］ＲＡＩＤグループ管理部１１８ｄは、縮退ＲＡＩＤグループの接続切り替え処理を行う。この処理の詳細は後述する（図２５参照）。その後、ＲＡＩＤグループ管理部１１８ｄは、処理をステップＳ１６１に進める。
【０１２７】
［ステップＳ１５７］ＲＡＩＤグループ管理部１１８ｄは、正常ＲＡＩＤグループの接続切り替え処理を行う。この処理の詳細は後述する（図２６参照）。
［ステップＳ１５８］ＲＡＩＤグループ管理部１１８ｄは、縮退ＲＡＩＤグループ内の異常ディスクのＲＡＩＤコントローラからの切り離しを、コントローラ−ディスク管理部１１８ｃに指示する。またＲＡＩＤグループ管理部１１８ｄは、代替ディスクと、縮退ＲＡＩＤグループが接続されているＲＡＩＤコントローラとの接続を、コントローラ−ディスク管理部１１８ｃに指示する。コントローラ−ディスク管理部１１８ｃは、指示に従って、異常ディスクの切り離しと、代替ディスクの接続とを行う。
【０１２８】
［ステップＳ１５９］ＲＡＩＤグループ管理部１１８ｄは、縮退ＲＡＩＤグループが接続されているＲＡＩＤコントローラに、代替ディスクの接続を指示する。
［ステップＳ１６０］ＲＡＩＤグループ管理部１１８ｄは、代替ディスクを接続したことを示すレスポンスを受信したか否かを判断する。ＲＡＩＤグループ管理部１１８ｄは、レスポンスを受信した場合、処理をステップＳ１６１に進める。またＲＡＩＤグループ管理部１１８ｄは、レスポンスを受信していなければ、ステップＳ１６０の処理を繰り返すことで、レスポンスを待つ。
【０１２９】
［ステップＳ１６１］ＲＡＩＤグループ管理部１１８ｄは、縮退ＲＡＩＤグループが接続されているＲＡＩＤコントローラに、リビルド処理の開始を指示する。
［ステップＳ１６２］ＲＡＩＤグループ管理部１１８ｄは、リビルド処理が終了したか否かを判断する。例えばＲＡＩＤグループ管理部１１８ｄは、リビルド処理を実行しているＲＡＩＤコントローラから、リビルド終了の通知を受け取ると、リビルド処理が終了したと判断する。ＲＡＩＤグループ管理部１１８ｄは、リビルド処理が終了した場合、処理をステップＳ１６３に進める。またＲＡＩＤグループ管理部１１８ｄは、リビルド処理が終了しなければ、ステップＳ１６２の処理を繰り返すことで、リビルド処理の終了を待つ。
【０１３０】
［ステップＳ１６３］ＲＡＩＤグループ管理部１１８ｄは、ＲＡＩＤグループとＲＡＩＤコントローラとの接続関係を、異常通知前の状態に戻す。例えばＲＡＩＤグループ管理部１１８ｄは、縮退ＲＡＩＤグループの接続切り替えを行った場合、以前のＲＡＩＤコントローラに接続されるように、リビルドを実施したＲＡＩＤグループの接続切り替えを行う。またＲＡＩＤグループ管理部１１８ｄは、正常なＲＡＩＤグループの接続切り替えを行った場合、正常ＲＡＩＤグループを、リビルドを実施したＲＡＩＤグループと同じＲＡＩＤコントローラに接続するように、接続切り替えを行う。またＲＡＩＤグループ管理部１１８ｄは、ステップＳ１５４において、ＣＰＵユニット上に新たなＲＡＩＤコントローラを起動させていた場合、そのＲＡＩＤコントローラを停止させる。
【０１３１】
次に、縮退ＲＡＩＤグループ接続切り替え処理の詳細について説明する。
図２５は、縮退ＲＡＩＤグループ接続切り替え処理の手順の一例を示すフローチャートである。以下、図２５に示す処理をステップ番号に沿って説明する。
【０１３２】
［ステップＳ１７１］ＲＡＩＤグループ管理部１１８ｄは、縮退ＲＡＩＤグループを制御しているＲＡＩＤコントローラに対して、縮退ＲＡＩＤグループの接続解除指示を送信する。例えば接続解除指示には、縮退ＲＡＩＤグループのＲＡＩＤ−ＩＤが含まれる。
【０１３３】
［ステップＳ１７２］ＲＡＩＤグループ管理部１１８ｄは、接続解除指示に対する、接続解除が終了したことを示すレスポンスの有無を判断する。ＲＡＩＤグループ管理部１１８ｄは、接続解除が終了したことを示すレスポンスがあった場合、処理をステップＳ１７３に進める。またＲＡＩＤグループ管理部１１８ｄは、接続解除が終了したことを示すレスポンスがなければ、ステップＳ１７２の処理を繰り返す。
【０１３４】
［ステップＳ１７３］ＲＡＩＤグループ管理部１１８ｄは、接続解除が終了したことを示すレスポンスを受信すると、まず、コントローラ−ディスク管理部１１８ｃに、縮退ＲＡＩＤグループに属するディスク群のＲＡＩＤコントローラからの切断を指示する。この指示に応じて、コントローラ−ディスク管理部１１８ｃは、縮退ＲＡＩＤグループに属するディスク群と、縮退ＲＡＩＤグループを制御しているＲＡＩＤコントローラとの、ＤＡＮ１０１上での接続を切断する。
【０１３５】
［ステップＳ１７４］ＲＡＩＤグループ管理部１１８ｄは、コントローラ−ディスク管理部１１８ｃに、縮退ＲＡＩＤグループの正常ディスク（異常ディスク以外のＨＤＤ）と新たな接続先のＲＡＩＤコントローラとの接続を指示する。コントローラ−ディスク管理部１１８ｃは、接続指示に応じて、ＤＡＮ１０１を制御し、正常ディスクを、ステップＳ１５５で接続先に特定されたＲＡＩＤコントローラに接続する。
【０１３６】
［ステップＳ１７５］ＲＡＩＤグループ管理部１１８ｄは、代替ディスクと、新たに接続先となったＲＡＩＤコントローラとの接続を、コントローラ−ディスク管理部１１８ｃに指示する。例えばＲＡＩＤグループ管理部１１８ｄは、ディスク管理テーブル１１８ｇを参照し、ステータスが「未割当」のＨＤＤを、代替ディスクとして選択する。そしてＲＡＩＤグループ管理部１１８ｄは、縮退グループを制御するＲＡＩＤコントローラへの代替ディスクの接続を、コントローラ−ディスク管理部１１８ｃに指示する。するとコントローラ−ディスク管理部１１８ｃが、ＤＡＮ１０１を制御し、縮退グループを制御するＲＡＩＤコントローラに代替ディスクを接続する。
【０１３７】
［ステップＳ１７６］ＲＡＩＤグループ管理部１１８ｄは、縮退ＲＡＩＤグループに属するＨＤＤが接続されたＲＡＩＤコントローラに、縮退ＲＡＩＤグループとの接続（通信可能状態の確立）を指示する。
【０１３８】
［ステップＳ１７７］ＲＡＩＤグループ管理部１１８ｄは、接続の指示に対するレスポンスを受信したか否かを判断する。ＲＡＩＤグループ管理部１１８ｄは、レスポンスを受信した場合、縮退ＲＡＩＤグループ接続切り替え処理を終了する。またＲＡＩＤグループ管理部１１８ｄは、レスポンスを受信していなければ、ステップＳ１７７の処理を繰り返すことで、レスポンスを待つ。
【０１３９】
次に、正常ＲＡＩＤグループ接続切り替え処理の詳細について説明する。
図２６は、正常ＲＡＩＤグループ接続切り替え処理の手順の一例を示すフローチャートである。以下、図２６に示す処理をステップ番号に沿って説明する。
【０１４０】
［ステップＳ１８１］ＲＡＩＤグループ管理部１１８ｄは、縮退ＲＡＩＤグループを制御しているＲＡＩＤコントローラに対して、そのＲＡＩＤコントローラに接続されている正常なＲＡＩＤグループ（単に、正常ＲＡＩＤグループと呼ぶ）の接続解除指示を送信する。
【０１４１】
［ステップＳ１８２］ＲＡＩＤグループ管理部１１８ｄは、接続解除指示に対する、接続解除が終了したことを示すレスポンスの有無を判断する。ＲＡＩＤグループ管理部１１８ｄは、接続解除が終了したことを示すレスポンスがあった場合、処理をステップＳ１８３に進める。またＲＡＩＤグループ管理部１１８ｄは、接続解除が終了したことを示すレスポンスがなければ、ステップＳ１８２の処理を繰り返す。
【０１４２】
［ステップＳ１８３］ＲＡＩＤグループ管理部１１８ｄは、接続解除が終了したこと示すレスポンスを受信すると、まず、コントローラ−ディスク管理部１１８ｃに、正常ＲＡＩＤグループに属するディスク群のＲＡＩＤコントローラからの切断を指示する。この指示に応じて、コントローラ−ディスク管理部１１８ｃは、まず正常ＲＡＩＤグループに属するディスク群とＲＡＩＤコントローラとの、ＤＡＮ１０１上での接続を切断する。
【０１４３】
［ステップＳ１８４］ＲＡＩＤグループ管理部１１８ｄは、コントローラ−ディスク管理部１１８ｃに、正常ＲＡＩＤグループのディスク群と、既に運用されているＲＡＩＤコントローラとの接続を指示する。このＲＡＩＤコントローラは、縮退ＲＡＩＤグループが接続されているＲＡＩＤコントローラ以外のＲＡＩＤコントローラである。コントローラ−ディスク管理部１１８ｃは、接続指示に応じて、ＤＡＮ１０１を制御し、ディスク群を、ＲＡＩＤコントローラに接続する。
【０１４４】
［ステップＳ１８５］ＲＡＩＤグループ管理部１１８ｄは、正常ＲＡＩＤグループを接続したＲＡＩＤコントローラに、正常ＲＡＩＤグループとの接続（通信可能状態の確立）を指示する。
【０１４５】
［ステップＳ１８６］ＲＡＩＤグループ管理部１１８ｄは、接続の指示に対するレスポンスを受信したか否かを判断する。ＲＡＩＤグループ管理部１１８ｄは、レスポンスを受信した場合、正常ＲＡＩＤグループ接続切り替え処理を終了する。またＲＡＩＤグループ管理部１１８ｄは、レスポンスを受信していなければ、ステップＳ１８６の処理を繰り返すことで、レスポンスを待つ。
【０１４６】
このような処理により、異常ディスクが属するＲＡＩＤグループに対し、運用中の他のＲＡＩＤグループとは別のＲＡＩＤコントローラでリビルド処理を行うことができる。これにより、リビルド処理を実行しても、リビルド処理対象外のＲＡＩＤグループに影響が及ぶことを抑止できる。
【０１４７】
以上説明したように、第２の実施の形態では、ＲＡＩＤグループに属するＨＤＤが故障した場合、縮退したＲＡＩＤグループのみが接続されたＲＡＩＤコントローラによってリビルド処理が実行される。その結果、リビルド処理を行うことによる、正常なＲＡＩＤグループへの悪影響が抑止される。
【０１４８】
〔その他の実施の形態〕
第２の実施の形態では、管理ユニットのＣＰＵがプログラムを実行することによってＲＡＩＤシステム管理部の機能を実現するものとしたが、プログラムで記述された処理の一部を、電子回路に置き換えることが可能である。例えば、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【０１４９】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１５０】
１ａ，１ｂ，１ｃ，１ｄ，１ｅ  記憶装置
２ａ，２ｂ  制御装置
３  情報処理装置
４ａ，４ｂ  グループ
２１，３１，３２，３３，３４  端末装置
２２  ネットワークスイッチ
１００  サーバ
１０１  ＤＡＮ
１０２  ＣＰＵプール
１０３  ストレージドライブプール
１１０  管理ユニット
１２０−１，１２０−２，１２０−３，１２０−４，・・・  ＣＰＵユニット
１３１〜１４２，・・・  ＨＤＤ
【図１】
0005884606.tif 000002
【図２】
0005884606.tif 000003
【図３】
0005884606.tif 000004
【図４】
0005884606.tif 000005
【図５】
0005884606.tif 000006
【図６】
0005884606.tif 000007
【図７】
0005884606.tif 000008
【図８】
0005884606.tif 000009
【図９】
0005884606.tif 000010
【図１０】
0005884606.tif 000011
【図１１】
0005884606.tif 000012
【図１２】
0005884606.tif 000013
【図１３】
0005884606.tif 000014
【図１４】
0005884606.tif 000015
【図１５】
0005884606.tif 000016
【図１６】
0005884606.tif 000017
【図１７】
0005884606.tif 000018
【図１８】
0005884606.tif 000019
【図１９】
0005884606.tif 000020
【図２０】
0005884606.tif 000021
【図２１】
0005884606.tif 000022
【図２２】
0005884606.tif 000023
【図２３】
0005884606.tif 000024
【図２４】
0005884606.tif 000025
【図２５】
0005884606.tif 000026
【図２６】
0005884606.tif 000027