(57)【要約】【課題】記憶装置が交換された場合に、新たな記憶装置における複数のパーティション領域に適切にアクセスする。【解決手段】ＨＣ２００と、ＨＣ２００からの要求に応じてＨＤＤ３００，３０１へのアクセスを制御するディスクアレイ装置１００とを有するコンピュータシステムは、ＨＣの複数のパーティション領域の開始アドレスを示す情報として、複数種類の記憶容量の各々に対応する複数のフォーマット情報を管理し、ＨＤＤ３００，３０１の何れかが新たなＨＤＤに交換された場合に、前記新たなＨＤＤの記憶容量に対応するフォーマット情報を前記管理される複数のフォーマット情報の中から選択し、前記新たな記憶装置の複数のパーティションへアクセスする際のアドレスを、前記選択されたフォーマット情報に基づいてアドレス算出部１０４が算出し、前記算出されたアドレスに基づいて前記新たなＨＤＤへのアクセスをＲＡＩＤ制御部１０２が制御する。【選択図】図１
2011081683.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置及び複数の記憶装置と接続可能であり、前記情報処理装置からの要求に応じて前記複数の記憶装置へのアクセスを制御する制御装置であって、
前記制御装置に接続される前記記憶装置における複数のパーティション領域の開始アドレスを示す情報として、複数種類の記憶容量の各々に対応する複数のフォーマット情報を管理する管理手段と、
前記複数の記憶装置に含まれる何れかの記憶装置が新たな記憶装置に交換された場合に、前記新たな記憶装置の記憶容量に対応するフォーマット情報を前記管理手段により管理される複数のフォーマット情報の中から選択する選択手段と、
前記新たな記憶装置の複数のパーティションへアクセスする際のアドレスを、前記選択手段により選択されたフォーマット情報に基づいて算出するアドレス算出手段と、
前記アドレス算出手段により算出されたアドレスに基づいて前記新たな記憶装置へのアクセスを制御する制御手段と、
を有することを特徴とする制御装置。
【請求項２】
前記アドレス算出手段は、前記複数の記憶装置のいずれかの記憶装置のアドレスから、該いずれかの記憶装置のアドレスに対応する前記新たな記憶装置のアドレスを、前記いずれかの記憶装置のアドレスが属する前記いずれかの記憶装置のパーティションに対応する前記新たな記憶装置のパーティションに属するアドレスとして算出するものであり、
前記制御手段は、前記情報処理装置から受信したアクセス要求に含まれる前記いずれかの記憶装置のアドレスと、前記いずれかの記憶装置のアドレスから前記アドレス算出手段で算出される前記新たな記憶装置のアドレスとを用いて、前記新たな記憶装置へのアクセスを制御することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記制御手段は、接続される記憶装置のうちマスターとなる記憶装置の全パーティションに記憶される全データを順次読み出して前記新たな記憶装置の対応するパーティションに順次書き込むリビルド処理の実行が可能であり、
前記リビルド処理は、前記マスターとなる記憶装置からデータを読み出し、該読み出したデータを、前記データを読み出した前記マスターとなる記憶装置のアドレスから前記アドレス算出手段で算出される前記新たな記憶装置のアドレスに書き込む処理であることを特徴とする請求項１又は２に記載の制御装置。
【請求項４】
情報処理装置及び複数の記憶装置と接続可能であり、前記複数の記憶装置における複数のパーティション領域の開始アドレスを示す情報として、複数種類の記憶容量の各々に対応する複数のフォーマット情報を管理する管理手段を備える制御装置の制御方法であって、
選択手段が、前記複数の記憶装置に含まれる何れかの記憶装置が新たな記憶装置に交換された場合に、前記新たな記憶装置の記憶容量に対応するフォーマット情報を前記管理手段により管理される複数のフォーマット情報の中から選択する選択ステップと、
アドレス算出手段が、前記新たな記憶装置の複数のパーティションへアクセスする際のアドレスを、前記選択ステップにて選択されたフォーマット情報に基づいて算出するアドレス算出ステップと、
制御手段が、前記アドレス算出ステップにより算出されたアドレスに基づいて前記新たな記憶装置へのアクセスを制御する制御ステップと、
を有することを特徴とする制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置及び制御装置の制御方法に関する。
【背景技術】
【０００２】
ハードディスク（以下、ＨＤＤ（Hard Disk Drive））等の記録装置の信頼性向上、高速化を実現する技術としてＲＡＩＤ（Redundant Arrays of Inexpensive Disks）がある。このＲＡＩＤは、ストライピング、パリティチェック、ＥＣＣ（Error Check and Correct）、データとパリティ、ＥＣＣの分散書き込み等の機能を含む。また、採用している機能やその組み合わせの違いにより、ＲＡＩＤ０〜ＲＡＩＤ６等の様々な種類が存在する。
【０００３】
例えば、ＲＡＩＤ１は、ミラーリングとも呼ばれ、複数のＨＤＤに同じデータを書き込む技術であり、一つのＨＤＤに障害が起こっても、他のＨＤＤに障害が無ければデータの消失を防ぐことができる。
【０００４】
ここで、複数の同容量のＨＤＤでＲＡＩＤ１を構築している状態を考える。一つのＨＤＤに障害が起きた場合、この障害が起きたＨＤＤを、障害発生前の容量よりも大きな容量のＨＤＤに交換し、交換されなかったＨＤＤのデータを複製するリビルド処理を実行したとする。しかし、交換した大きな容量のＨＤＤのＲＡＩＤ１としての使用領域は、障害発生前と同様の容量のみであった。また、リビルド処理の後に、例えもう一方の小さい容量のＨＤＤを大きな容量のＨＤＤと交換して、リビルド処理を実行したとしても、上記と同様にＲＡＩＤ１としての使用領域は小さな容量のＨＤＤと同様の領域のみとなる。即ち、ＲＡＩＤの再構築及びオペレーティングシステム（ＯＳ）の再インストールを伴わない限り、リビルドのみでのＲＡＩＤ１の使用領域は変わらないという問題があった。
【０００５】
特許文献１には、上記のような、いわゆる余ったＨＤＤの容量を有効に利用する提案がなされている。また、特許文献２には、アレイを構成する全てのＨＤＤの容量が拡張された場合において、ＲＡＩＤの再構築及びＯＳの再インストールを行わなくてもＲＡＩＤアレイの容量拡張を実現する提案がなされている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−１２６１３７号公報
【特許文献２】特開２００６−１７８８２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１の技術を用いたとしても、ＲＡＩＤアレイ装置自体の容量は最初にＲＡＩＤアレイを組んだときの容量で動作してしまうため、リビルド処理の対象となるＨＤＤの領域は、最初にＲＡＩＤアレイを組んだときの容量しかＲＡＩＤ１としての使用領域とならない。
【０００８】
また、特許文献２では、ＨＤＤに保持されている連続するパーティション領域を拡張する構成が含まれていないため、拡張可能なパーティションは限定され、連続する全てのパーティション領域を自由に拡張することはできない。
【０００９】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、複数の記憶装置に含まれるいずれかの記憶装置が新たな記憶装置に交換された場合に、新たな記憶装置の記憶容量に対応するフォーマット情報に従って、新たな記憶装置における複数のパーティション領域にアクセスする制御装置及びその制御方法を提供することである。
【課題を解決するための手段】
【００１０】
本発明は、情報処理装置及び複数の記憶装置と接続可能であり、前記情報処理装置からの要求に応じて前記複数の記憶装置へのアクセスを制御する制御装置であって、前記制御装置に接続される前記記憶装置における複数のパーティション領域の開始アドレスを示す情報として、複数種類の記憶容量の各々に対応する複数のフォーマット情報を管理する管理手段と、前記複数の記憶装置に含まれる何れかの記憶装置が新たな記憶装置に交換された場合に、前記新たな記憶装置の記憶容量に対応するフォーマット情報を前記管理手段により管理される複数のフォーマット情報の中から選択する選択手段と、前記新たな記憶装置の複数のパーティションへアクセスする際のアドレスを、前記選択手段により選択されたフォーマット情報に基づいて算出するアドレス算出手段と、前記アドレス算出手段により算出されたアドレスに基づいて前記新たな記憶装置へのアクセスを制御する制御手段とを有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、複数の記憶装置に含まれるいずれかの記憶装置が新たな記憶装置に交換された場合に、新たな記憶装置の記憶容量に対応するフォーマット情報に従って、新たな記憶装置における複数のパーティション領域にアクセスする制御装置及びその制御方法を提供することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】ディスクアレイ装置を含むコンピュータシステムの構成図である。
【図２】ホストコンピュータ２００の処理を示すフローチャートである。
【図３】ディスクアレイ装置１００の基本処理を示すフローチャートである。
【図４】新ＨＤＤ接続処理を示すフローチャートである。
【図５】制御コマンドのフォーマットを示す図である。
【図６】ディスクアレイ装置１００のフォーマット情報の構成を示す図である。
【図７】フォーマット管理テーブルの構成を示す図である。
【図８】ＲＡＩＤ１ディスクアレイ状態１を示す図である。
【図９】ＲＡＩＤ１ディスクアレイ状態２を示す図である。
【図１０】ＲＡＩＤ１ディスクアレイ状態３を示す図である。
【図１１】ＲＡＩＤ５ディスクアレイ状態を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００１４】
図１は、本発明の実施例１に係る制御装置を適用したディスクアレイ装置を含むコンピュータシステムの構成を示す図である。図１において、１００はディスクアレイ装置、２００は情報処理装置としてのホストコンピュータ（以下、ＨＣ）、３００及び３０１は記憶装置であるハードディスク（ＨＤＤ）である。ＨＣ２００は、ディスクアレイ装置１００の上位装置で、具体的には、パーソナルコンピュータ等の本体や、複合機（ＭＦＰ）等の画像処理装置のコントローラ部等に対応し、ＣＰＵ、ＲＯＭ、ＲＡＭ、各種インタフェース等を有する。
【００１５】
ＨＣ２００は、ＨＤＤ３００，３０１に対して、ディスクアレイ装置１００を介して書き込み及び読み出しを行う。このように、ディスクアレイ装置１００は、上位装置であるＨＣ２００及び複数の記憶装置（ＨＤＤ，３０１）と接続可能である。なお、本発明は、記憶装置をＨＤＤに限定するものではなく、他の記憶装置、例えば、フラッシュメモリ等の半導体を使用した記憶装置等でも同様の結果を得ることが出来る。また、ディスクアレイ装置１００に接続される記憶装置の台数も２台に限定されるものではなく、３台以上接続されていてもよい。
【００１６】
ＨＣ２００とディスクアレイ装置１００、ディスクアレイ装置１００とＨＤＤ３００，３０１は、それぞれシリアルＡＴＡインタフェース（ＳＡＴＡ Ｉ／Ｆ）４００により接続されている。なお、本実施例では、ＨＣ２００、ディスクアレイ装置１００、及び、ＨＤＤ３００，３０１の接続をシリアルＡＴＡインタフェースに限定するものではない。他のインタフェース、例えば、ＳＡＳ（Serial Attached SCSI）インタフェース等でも同様の結果を得ることが出来る。
【００１７】
ディスクアレイ装置１００において、デバイス制御部１０１は、ＨＣ２００からシリアルＡＴＡインタフェース９００を介して受信する書き込み要求及び読み出し要求に従い、ＲＡＩＤ制御部１０２に対して指示を行う。
【００１８】
ＲＡＩＤ制御部１０２は、デバイス制御部１０１からの指示を受けて、ＲＡＩＤと呼ばれる制御（ＲＡＩＤ制御）を行う。このＲＡＩＤ制御とは、背景技術で示したように、１台のＨＤＤが故障した場合でも故障したＨＤＤに記憶されていたデータを復元可能な技術である。ＲＡＩＤ制御部１０２は、ＲＡＩＤ制御を実行する際、マスターとなるＨＤＤ（マスターＨＤＤ）のＩＤ及びマスターＨＤＤのアクセスＬＢＡを、フォーマット管理部１０３に送信する。なお、フォーマット管理部１０３は、ＨＤＤ３００内及びＨＤＤ３０１内の連続するパーティション領域の管理情報を示すフォーマット情報（後述する図６に示す）を記憶管理している。また、ＬＢＡは、論理ブロックアドレス（Logical Block Addressing）を示す。さらに、マスターＨＤＤのアクセスＬＢＡは、ＨＣ２００からのアクセス要求（例えば、書込要求、読出要求）等から抽出される。
【００１９】
フォーマット管理部１０３は、ＲＡＩＤ制御部１０２から受信した情報からマスターＨＤＤ及びバックアップとなるＨＤＤ（バックアップＨＤＤ）におけるアクセスの対象となるパーティションの開始ＬＢＡ（アクセスパーティション開始ＬＢＡ）を算出する。次に、フォーマット管理部１０３は、マスターＨＤＤのアクセスＬＢＡ、マスターＨＤＤ及びバックアップＨＤＤのアクセスパーティション開始ＬＢＡをアドレス算出部１０４に送信する。
【００２０】
アドレス算出部１０４は、フォーマット管理部１０３から受信した情報からバックアップＨＤＤのアクセスすべきアドレス（アクセスＬＢＡ）を算出し、ＲＡＩＤ制御部１０２に送信する。なお、ここでは、フォーマット管理部１０３が、マスターＨＤＤ及びバックアップＨＤＤにおけるアクセスパーティション開始ＬＢＡを算出し、アドレス算出部１０４が、バックアップＨＤＤのアクセスＬＢＡを算出する構成を説明した。しかし、フォーマット管理部１０３は、フォーマット情報を記憶管理するのみとしてもよい。そして、アドレス算出部１０４が、フォーマット管理部１０３で管理されるフォーマット情報に基づきマスターＨＤＤ及びバックアップＨＤＤにおけるアクセスパーティション開始ＬＢＡを算出し、バックアップＨＤＤのアクセスＬＢＡを算出してもよい。
【００２１】
次に、ＲＡＩＤ制御部１０２は、マスターＨＤＤのアクセスＬＢＡと、アドレス算出部１０４から得たバックアップＨＤＤのアクセスＬＢＡを用いて、デバイス制御部１０１からの指示に対応する処理をホスト制御部１０５に指示する。ホスト制御部１０５は、ＲＡＩＤ制御部１０２からの指示に従い、シリアルＡＴＡインタフェース９００を介してＨＤＤ３００，３０１に書き込み要求及び読み出し要求を行う。
【００２２】
ＨＤＤ３００，３０１は、ホスト制御部１０５からの書き込み要求及び読み出し要求に従い、受信したデータの磁気ディスク（図示せず）への書込み及び磁気ディスクからのデータの読み出しを行う。なお、ＲＡＩＤ制御部１０２は、ホスト制御部１０５のいずれのチャネルに接続されたＨＤＤがマスターであるかの情報等を保持する。
【００２３】
状態保持部１０６は、ディスクアレイ装置１００の電源停止前の状態を保持する。状態保持部１０６が保持する状態には、接続されているＨＤＤの種類、個数、内部ブロックであるデバイス制御部１０１、ＲＡＩＤ制御部１０２、フォーマット管理部１０３、アドレス算出部１０４、ホスト制御部１０５の初期設定値等が含まれる。また、状態保持部１０６は、ＲＡＩＤ制御状態（ＲＡＩＤ制御の有効／無効の設定状態）も保持する。なお、ＲＡＩＤ制御状態は、ユーザの指示によりＨＣ２００から設定されるものである。また、リビルド処理中に電源が停止された場合、状態保持部１０６は、リビルド処理の処理状態（何％終了）等の情報も保持する。なお、状態保持部１０６は、ＦＬＡＳＨ ＲＯＭやボタン型電池でデータが保持されるＳＲＡＭ等が使用される。
【００２４】
図２は、本発明の実施例１に係るＨＣ２００の処理を示すフローチャートである。このフローチャートに示す処理は、ＨＣ２００のＣＰＵがＲＯＭ又はＨＤＤ３００，３０１に記録されたプログラムをＲＡＭにロードして実行することにより実現されるものである。
【００２５】
ＨＣ２００は、電源が投入されるとＨＣ２００自身の初期化処理を実行する（Ｓ１００）。Ｓ１００の初期化処理には、ＨＣ内に実装されるメモリインタフェースの初期化、シリアルＡＴＡインタフェースの初期化、ＣＰＵの初期化、ＨＣの起動処理等が含まれる。なお、ＨＣの起動処理には、マスターＨＤＤ（例えばＨＤＤ３００）からＯＳをメモリにロードして、ＯＳを起動する動作も含まれる。また、以下のＳ１０１〜Ｓ１０７は、ＯＳ上で動作する、ディスクアレイ装置１００のデバイスドライバの動作に対応する。
【００２６】
次に、ＨＣ２００のＣＰＵは、ＨＤＤフォーマットテーブルを用意する（ＲＡＭ内に読み込む）（Ｓ１０１）。なお、ＨＤＤフォーマットテーブルは、ディスクアレイ装置１００のデバイスドライバに含まれるものとする。即ち、ＨＤＤフォーマットテーブルはＨＤＤに保持されるが、マスター／バックアップＨＤＤという区別はない。ＨＤＤフォーマットテーブルは、例えば、ディスクアレイ装置１００にマスターＨＤＤのみ接続されている場合はマスターＨＤＤに保持され、マスターＨＤＤ／バックアップＨＤＤ共に接続されている場合はマスター／バックアップＨＤＤの両方に保持されている。
【００２７】
また、ここで読み出すＨＤＤフォーマットテーブルには、ディスクアレイ装置１００に接続されるＨＤＤにおける複数のパーティション領域の開始アドレスを示す情報として、予め、想定されているＨＤＤの複数種類の記憶容量毎に用意された複数のフォーマット情報が記述管理されている。例えば、８０，１６０，２５０，５００，１０００［ＧＢｙｔｅ］の記憶容量を持つＨＤＤの存在が想定されるとすると、それぞれに対するパーティションの管理情報（例えば、それぞれ図６に示すような情報）が記述されている。即ち、実際に接続されていない容量のＨＤＤについてもフォーマットテーブル内にパーティションの管理情報が存在することになる。なお、ＨＤＤフォーマットテーブルは、ディスクアレイ装置１００のデバイスドライバをバージョンアップすること等により更新可能である。
【００２８】
次に、ＨＣ２００のＣＰＵは、一連の初期化処理が終了すると割り込み受信待ち状態となる（Ｓ１０２でＮｏ）。そして、ＨＣ２００のＣＰＵは、割り込みを受信したと判定すると（Ｓ１０２でＹｅｓ）、その割り込みが新ＨＤＤ接続割り込みであるか判定する（Ｓ１０３）。
【００２９】
そして、新ＨＤＤ接続割り込みであると判定した場合（Ｓ１０３でＹｅｓ）、ＨＣ２００のＣＰＵは、ディスクアレイ装置１００から新ＨＤＤ情報（容量等）を取得する（Ｓ１０４）。
【００３０】
ＨＣ２００のＣＰＵは、得られた新ＨＤＤ情報（容量等）を元に上記Ｓ１０１で用意したＨＤＤフォーマットテーブルを参照し、該ＨＤＤフォーマットテーブルから新ＨＤＤ用のフォーマット情報を選択する（Ｓ１０５）。例えば、８０，１６０，２５０，５００，１０００［ＧＢｙｔｅ］のＨＤＤに対するフォーマット情報の中から、新たに接続されたＨＤＤの容量に対応するフォーマット情報を自動選択する。これにより、新たなＨＤＤが接続されても、ユーザが手動でパーティション情報等を指定する手間を省くことができる。例えば、ミラーリングを行うためにはマスター／バックアップＨＤＤのミラーリングされている個所の容量が等しく（正確にはマスターＨＤＤの容量以上）なければならず、これを満たさない場合、ミラーリングの不具合が発生するが、これを防止できる。
【００３１】
次に、ＨＣ２００のＣＰＵは、上記Ｓ１０５で選択した新ＨＤＤ用フォーマット情報をディスクアレイ装置１００に送信し（Ｓ１０６）、再び割り込み受信待ちとなる（Ｓ１０２）。
【００３２】
一方、ＨＣ２００が受信した割り込みが新ＨＤＤ接続割り込み以外であった場合（Ｓ１０３でＮｏ）、ＨＣ２００のＣＰＵは、受信した割り込みに応じた処理を実施し（Ｓ１０７）、再び割り込み受信待ち（Ｓ１０２）となる。例えば、フォーマット管理情報更新完了の割り込みを受信した場合、ＨＣ２００のＣＰＵは、Ｓ１０７において、リビルド処理を実行するコマンドをディスクアレイ装置１００に送信するようにしてもよい。そして、リビルド処理の実行中は、リビルド処理の状態（何％終了）等の情報を図示しない表示部に表示してもよい。また、この場合、リビルド処理を実行するか否かを指示する画面を図示しない表示部に表示してもよい。その場合、この画面からユーザがリビルド処理の実行を指示した場合、ＨＣ２００のＣＰＵは、ディスクアレイ装置１００にリビルド処理を実行するコマンドを送信するものとする。
【００３３】
なお、上記Ｓ１０５では、ＨＣ２００のＣＰＵが、ＨＤＤフォーマットテーブルから新ＨＤＤ用のフォーマット情報を自動選択する構成を説明した。しかし、ＨＣ２００のＣＰＵが、図示しない表示部に新ＨＤＤが接続された旨と新ＨＤＤの情報（新ＨＤＤの容量等）を表示し、ユーザに新ＨＤＤのフォーマット情報を入力させるようにしてもよい。この場合、ＨＣ２００は、入力される新ＨＤＤの各パーティションの容量がマスターＨＤＤの対応する各パーティションの容量より小さい場合、エラーとなるように制御する。また、ＨＣ２００は、入力される新ＨＤＤのパーティション数がマスターＨＤＤのパーティション数より少ない場合も、エラーとなるように制御する。
【００３４】
図３は、実施例１のディスクアレイ装置１００の基本処理を示すフローチャートである。このフローチャートに示す処理においてディスクアレイ装置１００を構成する各部が実行する各ステップは、ハードウェアにより実現されるものであってもよいし、ソフトウェアにより実現されるものであってもよい。ソフトウェアにより実現される場合、コンピュータ（プロセッサ）読み取り可能な記録媒体に格納されたプログラムをコンピュータ（プロセッサ）が読み出して実行する等により実現される。
【００３５】
ディスクアレイ装置１００は、電源が投入されると、ディスクアレイ装置１００自身の初期化処理を実行する（Ｓ２００）。この初期化処理（Ｓ２００）には、デバイス制御部１０１の初期化、ＲＡＩＤ制御部１０２の初期化、フォーマット管理部１０３の初期化、アドレス算出部１０４の初期化、ホスト制御部１０５の初期化が含まれる。また、この初期化処理には、一部、状態保持部１０６に保持された情報が使用される。
【００３６】
次に、ディスクアレイ装置１００は、ディスクアレイ装置１００に接続されているＨＤＤの情報を取得する（Ｓ２０１）。ＲＡＩＤ制御部１０２は、状態保持部１０６に保持されているＲＡＩＤ制御状態（ＲＡＩＤ制御の有効／無効の設定状態）を確認し、ＲＡＩＤ制御が有効であるか否かを判定する（Ｓ２０２）。
【００３７】
そして、ＲＡＩＤ制御が有効であると判定した場合（Ｓ２０２でＹｅｓ）、ＲＡＩＤ制御部１０２は、上記Ｓ２０１で取得されたＨＤＤ情報が状態保持部１０６に未登録か登録されているか確認する（Ｓ２０３）。
【００３８】
そして、上記Ｓ２０１で取得されたＨＤＤ情報が状態保持部１０６に未登録であると判定した場合（Ｓ２０３でＹｅｓ）、ＲＡＩＤ制御部１０２は、デバイス制御部１０１を介してＨＣ２００に対してエラーを通知するように制御する（Ｓ２０４）。そして、本フローチャートの処理を終了する。
【００３９】
一方、上記Ｓ２０１で取得されたＨＤＤ情報が状態保持部１０６に登録されていると判定した場合（Ｓ２０３でＮｏ）、ＲＡＩＤ制御部１０２は、ＲＡＩＤ制御を実行する（Ｓ２０５）。そして、本フローチャートの処理を終了する。
【００４０】
また、状態保持部１０６の登録内容からＲＡＩＤ制御が無効であると判定した場合（Ｓ２０２でＮｏ）、ＲＡＩＤ制御部１０２は、状態保持部１０６に保持された有効なチャネルにＨＤＤが接続されている（ＨＤＤ接続ＯＫ）かを確認する（Ｓ２０６）。
【００４１】
そして、状態保持部１０６に保持された有効なチャネルにＨＤＤが接続されていないと判定した場合（Ｓ２０６でＮｏ）、ＲＡＩＤ制御部１０２は、デバイス制御部１０１を介してＨＣ２００にエラーを通知する（Ｓ２０４）。そして、本フローチャートの処理を終了する。
【００４２】
一方、状態保持部１０６に保持された有効なチャネルにＨＤＤが接続されていると判定した場合（Ｓ２０６でＹｅｓ）、ＲＡＩＤ制御部１０２は、該当するＨＤＤに対する制御を実行する（１ＨＤＤ制御実行）（Ｓ２０７）。そして、本フローチャートの処理を終了する。
【００４３】
図４は、実施例１のディスクアレイ装置１００の新ＨＤＤ接続処理を示すフローチャートである。このフローチャートにおける処理は、コンピュータ読み取り可能な記録媒体に格納されたプログラムをコンピュータ（プロセッサ）が読み出して実行する等により実現される。
【００４４】
ＲＡＩＤ制御が無効化された状態のディスクアレイ装置１００において、無効なチャネルに新ＨＤＤが接続されると、ＲＡＩＤ制御部１０２は、ホスト制御部を介して新ＨＤＤの接続を検出する（Ｓ３００）。なお、新ＨＤＤの接続を検出した場合、ＲＡＩＤ制御部１０２は、デバイス制御部１０１を介して、新ＨＤＤ接続割り込みを、ＨＣ２００に送信する。これにより、ＨＣ２００では、新ＨＤＤ接続割り込みが受信される（図２のＳ１０２，Ｓ１０３）。
【００４５】
次に、ＲＡＩＤ制御部１０２は、ホスト制御部を介して新ＨＤＤの情報を取得する（容量取得等を行う）（Ｓ３０１）。さらに、ＲＡＩＤ制御部１０２は、上記Ｓ３０１で取得した新ＨＤＤの情報をデバイス制御部１０１を介してＨＣ２００に対して送信する（Ｓ３０２）。これにより、ＨＣ２００では、新ＨＤＤの情報が受信され、新ＨＤＤフォーマット情報が選択され、ディスクアレイ装置１００に新ＨＤＤ用フォーマット情報が送信される（図２のＳ１０４〜Ｓ１０６）。
【００４６】
この後、ＲＡＩＤ制御部１０２は、デバイス制御部１０１を介してＨＣ２００から新ＨＤＤのフォーマット情報を受信する（フォーマット情報取得を行う）（Ｓ３０３）。さらに、ＲＡＩＤ制御部１０２は、上記Ｓ３０３で受信したフォーマット情報を元にフォーマット管理部１０３の情報を更新（Ｓ３０４）する。そして、本フローチャートの処理を終了する。なお、Ｓ３０４の処理が完了した際に、ＲＡＩＤ制御部１０２は、デバイス制御部１０１を介して、新ＨＤＤに基づくフォーマット管理情報更新完了の割り込みを、ＨＣ２００に送信するようにしてもよい。また、Ｓ３０４の処理が完了した際に、ＲＡＩＤ制御部１０２が自発的にリビルド処理を開始するように構成してもよい。
【００４７】
なお、Ｓ３０１で取得された新ＨＤＤの容量が、マスターＨＤＤの容量より小さい場合には、エラーとなり、その旨がＨＣ２００に通知され、処理が終了される。なお、ＨＣ２００側では、上記エラーが通知されると、新たに接続されたＨＤＤの容量がマスターＨＤＤの容量より小さい旨のエラーメッセージを図示しない表示部に表示してもよい。
【００４８】
なお、本実施例では、Ｓ３０２で新ＨＤＤの情報をＨＣ２００に送信し、ＨＣ２００が、該新ＨＤＤの情報（容量）に対応するフォーマット情報（図２のＳ１０１で用意済み）をＨＣ２００内のＲＡＭに読み込み済みのＨＤＤフォーマットテーブルから選択してディスクアレイ装置１００に送信し（図２のＳ１０３〜１０６）、Ｓ３０３でＨＣ２００から新ＨＤＤのフォーマット情報を受信する構成を説明した。しかし、ディスクアレイ装置１００内にフォーマットテーブル記憶部を設け、ＲＡＩＤ制御部１０２が上記ＨＤＤフォーマットテーブルから新ＨＤＤの容量に対応するフォーマット情報を選択する構成にしてもよい。例えば、ディスクアレイ装置１００内の不図示のＲＯＭやディスクアレイ装置１００に接続されるいずれかのＨＤＤにＨＤＤフォーマットテーブルを記憶させておき、ＲＡＩＤ制御部１０２が、上記ＨＤＤフォーマットテーブルから新ＨＤＤの容量に対応するフォーマット情報を選択するようにしてもよい。なお、上記ＨＤＤフォーマットテーブルは、ディスクアレイ装置１００内の図示しないＲＯＭに記録されるファームウェアをバージョンアップすること等により更新可能である。
【００４９】
また、本実施例では、Ｓ３０２で新ＨＤＤの情報をＨＣ２００に送信し、Ｓ３０３でＨＣ２００から新ＨＤＤのフォーマット情報を受信する構成を説明した。しかし、Ｓ３０２で接続されている全てのＨＤＤの情報をＨＣ２００に送信し、Ｓ３０３でＨＣ２００から接続されている全てのＨＤＤのフォーマット情報を受信するようにしてもよい。
【００５０】
図５は、実施例１のディスクアレイ装置１００の制御コマンドのフォーマットを示す図である。図５において、４００はディスクアレイ装置１００の制御コマンドである。実施例１のディスクアレイ装置１００では、制御コマンド４００としてＡＴＡで規定されているコマンドフォーマットを使用する。
【００５１】
制御コマンド４００において、Ｆｅａｔｕｒｅｓフィールド４０１は、対応する制御ＩＤが挿入される。実施例１のディスクアレイ装置１００では、「0x00」にＲＡＩＤ機能のＯＮ／ＯＦＦを指示するＲＡＩＤ制御、「0x01」にフォーマット情報制御を割り当てる。
【００５２】
Ｃｏｍｍａｎｄフィールド４０２は、ＡＴＡで規定されているコマンドが挿入される。実施例１のディスクアレイ装置１００では、ベンダ定義コマンドとして規定されている「0xFF」を使用する。Ｃ／Ｉ／Ｄフィールド４０３は、ソフトリセット制御、等の指示に使用される。
【００５３】
ＦＩＳ Ｔｙｐｅフィールド４０４は、Frame Information Structureと呼ばれるフレーム構造を指定する。実施例１のディスクアレイ装置１００では、Host-to-Device Registerタイプとして規定されている「0x27」を使用する。
【００５４】
Ｄｅｖ／Ｈｅａｄフィールド４０５は、ＨＤＤヘッド番号、マスター／スレーブデバイス、ＬＢＡ／ＣＨＳ切り替え指示等の情報が挿入される。Ｃｙｌ Ｈｉｇｈフィールド４０６は、上位ＨＤＤシリンダ番号、等が挿入される。Ｃｙｌ Ｌｏｗフィールド４０７は、下位ＨＤＤシリンダ番号、等が挿入される。
【００５５】
Ｓｅｃ Ｎｕｍフィールド４０８は、ＨＤＤセクタ番号が挿入される。Ｆｅａｔｕｒｅｓ（ｅｘｐ）フィールド４０９は、拡張されたＦｅａｔｕｒｅｓフィールド４０１として使用される。Ｃｙｌ Ｈｉｇｈ（ｅｘｐ）フィールド４１０は、１３７ＧＢｙｔｅ容量を越えるＨＤＤに対する上位ＬＢＡが割り当てられる。Ｃｙｌ Ｌｏｗ（ｅｘｐ）フィールド４１１は、１３７ＧＢｙｔｅ容量を越えるＨＤＤに対する下位ＬＢＡが割り当てられる。Ｓｅｃ Ｎｕｍ（ｅｘｐ）フィールド４１２は、１３７ＧＢｙｔｅ容量を越えるＨＤＤセクタ番号が挿入される。Ｃｏｎｔｒｏｌフィールド４１３は、ＨＤＤ制御に使用される。
【００５６】
Ｓｅｃ Ｃｎｔ（ｅｘｐ）フィールド４１４は、１３７ＧＢｙｔｅ容量を越えるＨＤＤに対する連続的に処理されるセクタ数が挿入される。Ｓｅｃ Ｃｎｔフィールド４１５は、連続的に処理されるセクタ数が挿入される。Ｒｅｓｅｒｖｅｄフィールド４１６は、今後の機能拡張用に確保され、現在は未使用となっている。
【００５７】
図６は、実施例１のディスクアレイ装置１００のフォーマット情報の構成を示す図である。図６において、５００はフォーマット情報である。フォーマット情報５００は、５１２Ｂｙｔｅ領域を４Ｂｙｔｅ単位で区切り、先頭からアドレス５０１を割り振る。各４Ｂｙｔｅのフィールドにおいて有効サイズ５０２と内容５０３を示す。
【００５８】
例えば、第１フィールド５１０には、ホスト制御部１０５のチャネルＡに接続されるＨＤＤ３００内のパーティション１に対する開始ＬＢＡ（Ｌｏｗ）が挿入される。第２フィールド５１１には、チャネルＡに接続されるＨＤＤ３００内のパーティション１に対する開始ＬＢＡ（Ｈｉｇｈ）が挿入される。
【００５９】
第３フィールド５１２には、チャネルＡに接続されるＨＤＤ３００内のパーティション２に対する開始ＬＢＡ（Ｌｏｗ）が挿入される。第４フィールド５１３には、チャネルＡに接続されるＨＤＤ３００内のパーティション２に対する開始ＬＢＡ（Ｈｉｇｈ）が挿入される。
【００６０】
第５フィールド５２０には、チャネルＢに接続されるＨＤＤ３０１内のパーティション１に対する開始ＬＢＡ（Ｌｏｗ）が挿入される。第６フィールド５２１には、チャネルＢに接続されるＨＤＤ３０１内のパーティション１に対する開始ＬＢＡ（Ｈｉｇｈ）が挿入される。
【００６１】
第７フィールド５２２には、チャネルＢに接続されるＨＤＤ３０１内のパーティション２に対する開始ＬＢＡ（Ｌｏｗ）が挿入される。第８フィールド５２３には、チャネルＢに接続されるＨＤＤ３０１内のパーティション２に対する開始ＬＢＡ（Ｈｉｇｈ）が挿入される。
【００６２】
実施例１のディスクアレイ装置１００では、フォーマット情報５００をＡＴＡで規定されているＤａｔａ ＦＩＳ内のデータ領域に５１２Ｂｙｔｅデータとして挿入する。フォーマット情報５００の送信は、ＡＴＡの規定に従い、Ｆｅａｔｕｒｅｓフィールド４０１に「0x01」が挿入された制御コマンドに続いて送信される。
【００６３】
図７は、本発明の実施例１に係るフォーマット管理部１０３で記憶管理されるフォーマット管理テーブルの構成を示す図である。図７において、６００はフォーマット管理テーブルである。フォーマット管理テーブル６００には、ディスクアレイ装置１００に接続されるＨＤＤのＩＤ６０１、ＨＤＤ内パーティション番号６０２、及び各パーティションが開始されるＬＢＡ６０３が保持される。
【００６４】
ここで、フォーマット管理テーブル６００の更新方法について述べる。
ＨＣ２００から送信されたフォーマット情報制御コマンド４００及びフォーマット情報５００をデバイス制御部１０１が受信し、デバイス制御部１０１は、受信したフォーマット情報５００をＲＡＩＤ制御部１０２に内部バスを介して送信する。ＲＡＩＤ制御部１０２は、受信したフォーマット情報をフォーマット管理部１０３に送信する。フォーマット管理部１０３は、受信した情報を元にフォーマット管理テーブルを作成する。なお、フォーマット管理テーブル６００の更新は、ＨＤＤ毎に個別に更新することも可能である。ＨＤＤ毎に個別にフォーマット管理テーブル６００内の情報を更新する場合は、或るＨＤＤのフォーマット情報のみがＨＣ２００からディスクアレイ装置１００に送信される。そして、ＲＡＩＤ制御部１０２は、受信した前記ＨＤＤのフォーマット情報をフォーマット管理部１０３に送信する。そして、フォーマット管理部１０３が、前記ＨＤＤのフォーマット情報を元にフォーマット管理テーブル内の前記ＨＤＤに対応する部分を更新する。
【００６５】
以下、図８〜図１０に示すＲＡＩＤ１ディスクアレイ状態例を用いて、ディスクアレイ装置１００によるＨＤＤアクセス処理を具体的に説明する。図８は、実施例１のディスクアレイ装置１００のＲＡＩＤ１ディスクアレイ状態１を示す図である。
図８に示すように、ホスト制御部１０５のチャネルＡに接続されたＨＤＤ３００及びチャネルＢに接続されたＨＤＤ３０１の容量を共に８０ＧＢｙｔｅとする。チャネルＡに接続されたＨＤＤ３００のパーティション構造は、パーティション１を「0x0000_0000」から「0x04FF_FFFF」までの４０ＧＢｙｔｅとする。また、ＨＤＤ３００のパーティション２を「0x0500_0000」から「0x09FF_FFFF」までの４０ＧＢｙｔｅとする。また、チャネルＢに接続されたＨＤＤ３０１のパーティション構造も同様とする。これらパーティション情報は、フォーマット管理部１０３により管理される。また、チャネルＡに接続されたＨＤＤ３００をマスターＨＤＤ、チャネルＢに接続されたＨＤＤ３０１をバックアップＨＤＤとする。
【００６６】
ここで図８を例にして、ＨＣ２００からの書き込み要求に対するディスクアレイ装置１００によるＨＤＤアクセス処理を具体的に説明する。
ＨＣ２００からＡＴＡの規定に従って送信された書き込み要求をデバイス制御部１０１が受信すると、デバイス制御部１０１は、受信した書き込み要求の内容を、内部バスを介してＲＡＩＤ制御部１０２に送信する。ＲＡＩＤ制御部１０２は、デバイス制御部１０１から受信した上記書き込み要求の内容からマスターＨＤＤ３００のＬＢＡ（要求の対象となるＬＢＡ）を抽出し、該抽出されたＬＢＡ及びマスターＨＤＤのＩＤをフォーマット管理部１０３に送信する。
【００６７】
書き込み要求の対象となるＬＢＡが「0x0100_0000」である場合、マスターＨＤＤのＩＤである「ＨＤＤＡ」及び「0x0100_0000」がＲＡＩＤ制御部１０２からフォーマット管理部１０３に送信される。
【００６８】
フォーマット管理部１０３は、受信したＬＢＡとＨＤＤのＩＤを用いてフォーマット管理テーブル６００にアクセスし、書き込み要求の対象となるパーティション番号を抽出する。
【００６９】
図８の例では、パーティション番号は「１」となる。フォーマット管理部１０３は、抽出されたマスターＨＤＤのパーティション番号から該当するマスターＨＤＤのパーティション開始ＬＢＡ、バックアップＨＤＤのパーティション開始ＬＢＡを抽出する。図８の例では、マスターＨＤＤのパーティション番号「１」のパーティション開始ＬＢＡは「0x0000_0000」となり、バックアップＨＤＤのパーティション番号「１」のパーティション開始ＬＢＡは「0x0000_0000」となる。
【００７０】
フォーマット管理部１０３は、ＲＡＩＤ制御部１０２から受信したマスターＨＤＤのＬＢＡ、マスターＨＤＤのパーティション開始ＬＢＡ及びバックアップＨＤＤのパーティション開始ＬＢＡをアドレス算出部１０４に送信する。図８の例では、マスターＨＤＤのＬＢＡは「0x0100_0000」となり、マスターＨＤＤのパーティション開始ＬＢＡは「0x0000_0000」となり、バックアップＨＤＤのパーティション開始ＬＢＡは「0x0000_0000」となる。
【００７１】
アドレス算出部１０４は、マスターＨＤＤのアクセスＬＢＡ、マスターＨＤＤのアクセスパーティション開始ＬＢＡ、及び、バックアップＨＤＤのアクセスパーティション開始ＬＢＡから、以下の（式１）に従い、バックアップＨＤＤのアクセスＬＢＡを算出する。なお、マスターＨＤＤのアクセスＬＢＡを「ＬＢＡ_Ｍ」とする。また、マスターＨＤＤのアクセスパーティション開始ＬＢＡを「Ｐ_ＬＢＡ_Ｍ」とする。また、バックアップＨＤＤのアクセスパーティション開始ＬＢＡを「Ｐ_ＬＢＡ_Ｂ」とする。また、バックアップＨＤＤのアクセスＬＢＡを「ＬＢＡ_Ｂ」とする。
【００７２】
ＬＢＡ_Ｂ＝Ｐ_ＬＢＡ_Ｂ＋（ＬＢＡ_Ｍ−Ｐ_ＬＢＡ_Ｍ）  ・・・（式１）
図８の例では、ＬＢＡ_Ｂは「0x0100_0000」となる。アドレス算出部１０４は、算出したバックアップＨＤＤのアクセスＬＢＡをＲＡＩＤ制御部１０２に送信する。ＲＡＩＤ制御部１０２は、デバイス制御部１０１から受信したマスターＨＤＤのＬＢＡ及びアドレス算出部１０４から受信したバックアップＨＤＤのＬＢＡを用いてＲＡＩＤ制御し、それぞれのＨＤＤに対する書き込み要求を生成し、ホスト制御部１０５に送信する。ホスト制御部１０５は、ＲＡＩＤ制御部１０２から受信したマスターＨＤＤ及びバックアップＨＤＤに対する書き込み要求をＡＴＡの規定に沿ったコマンドに変換する。ホスト制御部１０５は、変換した書き込み要求をそれぞれチャネルＡ及びチャネルＢのシリアルＡＴＡインタフェース９００を介してＨＤＤ３００，３０１に送信する。
【００７３】
ここで図８を例にして、ディスクアレイ装置１００におけるリビルド処理によるＨＤＤアクセス処理を説明する。
実施例１のディスクアレイ装置１００におけるリビルド処理実行は、ＨＣ２００からのリビルド実行指示、ＨＤＤに対する書き込み処理エラーの検出、ＨＤＤに対する読み込み処理エラーの検出等で開始される。しかし、リビルド処理の開始条件（リビルド条件）は、これらに限定されるものではない。
【００７４】
ＲＡＩＤ制御部１０２は、リビルド条件が検出されるとリビルド処理を開始する。リビルド処理では、ＲＡＩＤ制御部１０２は、マスターＨＤＤの全パーティションに保持される全データを順次読み出してバックアップＨＤＤの対応するパーティションに順次書き込む処理を行う。まず、ＲＡＩＤ制御部１０２は、マスターＨＤＤからデータを読み出し、該データを読み出したマスターＨＤＤのアクセスＬＢＡとマスターＨＤＤのＩＤをフォーマット管理部１０３に送信する。これにより、アドレス算出部１０４により、バックアップＨＤＤのアクセスＬＢＡが算出され、ＲＡＩＤ制御部１０２に送信される。そして、ＲＡＩＤ制御部１０２は、上記マスターＨＤＤから読み出したデータを、上記バックアップＨＤＤのアクセスＬＢＡに書き込む指示をホスト制御部１０５に送信する。以下、上述した書き込み要求における処理と同様に実行される。また、リビルド処理中に実行される読み込み処理においても、ＬＢＡ算出手順は書き込み処理と同様である。
【００７５】
以上のようなリビルド処理の実行により、マスターＨＤＤのパーティション１に保持されるデータＡ３１０は、バックアップＨＤＤのパーティション１に保持されるデータＡ３２０としてコピーされる。また、マスターＨＤＤのパーティション２に保持されるデータＢ３１１は、バックアップＨＤＤのパーティション２に保持されるデータＢ３２１としてコピーされる。
【００７６】
図９は、実施例１のディスクアレイ装置１００のＲＡＩＤ１ディスクアレイ状態２を示す図である。
図９に示すように、ホスト制御部１０５のチャネルＡに接続されたＨＤＤ３００の容量を８０ＧＢｙｔｅ、チャネルＢに接続されたＨＤＤ３０１の容量を１６０ＧＢｙｔｅとする。チャネルＡに接続されたＨＤＤ３００のパーティション構造は、パーティション１を「0x0000_0000」から「0x04FF_FFFF」までの４０ＧＢｙｔｅとする。さらに、ＨＤＤ３００のパーティション２を「0x0500_0000」から「0x09FF_FFFF」までの４０ＧＢｙｔｅとする。また、チャネルＢに接続されたＨＤＤ３０１のパーティション構造は、パーティション１を「0x0000_0000」から「0x09FF_FFFF」までの８０ＧＢｙｔｅとする。さらに、ＨＤＤ３０１のパーティション２を「0x0A00_0000」から「0x14FF_FFFF」までの８０ＧＢｙｔｅとする。これらパーティション情報は、フォーマット管理部１０３により管理される。また、チャネルＡに接続されたＨＤＤ３００をマスターＨＤＤ、チャネルＢに接続されたＨＤＤ３０１をバックアップＨＤＤとする。なお、ＨＣ２００からの書き込み要求及びリビルドに対する処理は図８に示した状態の場合と同様である。
【００７７】
ここで図９において、書き込み要求の対象となるマスターＨＤＤのＬＢＡが「0x0500_0100」である場合について、バックアップＨＤＤのＬＢＡの算出処理を説明する。
フォーマット管理部１０３のフォーマット管理テーブル６００から、マスターＨＤＤのアクセスパーティション開始ＬＢＡは「0x0500_0000」、バックアップＨＤＤのアクセスパーティション開始ＬＢＡは「0x0A00_000」となる。このため、上記（式１）からバックアップＨＤＤにおけるアクセスすべきＬＢＡは「0x0A00_0100」となる。
【００７８】
図９に示す例では、リビルド処理の実行により、マスターＨＤＤのパーティション１に保持されるデータＡ３１０は、バックアップＨＤＤのパーティション１に保持されるデータＡ３３０としてコピーされる。また、マスターＨＤＤのパーティション２に保持されるデータＢ３１１はバックアップＨＤＤのパーティション２に保持されるデータＢ３３１としてコピーされる。
【００７９】
図１０は、実施例１のディスクアレイ装置１００のＲＡＩＤ１ディスクアレイ状態３を示す図である。
図１０に示すように、ホスト制御部１０５のチャネルＡに接続されたＨＤＤ３００及びチャネルＢに接続されたＨＤＤ３０１の容量を共に１６０ＧＢｙｔｅとする。チャネルＡに接続されたＨＤＤ３００のパーティション構造は、パーティション１を「0x0000_0000」から「0x09FF_FFFF」までの８０ＧＢｙｔｅとする。さらに、ＨＤＤ３００のパーティション２を「0x0A00_0000」から「0x14FF_FFFF」までの８０ＧＢｙｔｅとする。また、チャネルＢに接続されたＨＤＤ３０１のパーティション構造も同様とする。これらパーティション情報はフォーマット管理部１０３により管理される。
【００８０】
図１０に示す例では、マスターＨＤＤへのアクセスエラーによりマスターＨＤＤとバックアップＨＤＤが入れ替わった状態を想定し、チャネルＢに接続されたＨＤＤ３０１をマスターＨＤＤ、チャネルＡに接続されたＨＤＤ３００をバックアップＨＤＤとする。なお、ＨＣ２００からの書き込み要求及びリビルドに対する処理フローは図８に示す状態の場合と同様である。
【００８１】
ここで図１０において、書き込み要求の対象となるマスターＨＤＤのＬＢＡが「0x0A00_0100」である場合について、バックアップＨＤＤのＬＢＡの算出処理を説明する。フォーマット管理部１０３のフォーマット管理テーブル６００から、マスターＨＤＤのアクセスパーティション開始ＬＢＡは「0x0A00_0000」、バックアップＨＤＤのアクセスパーティション開始ＬＢＡは「0x0A00_000」となる。このため、上記（式１）より、バックアップＨＤＤにおけるアクセスすべきＬＢＡは「0x0A00_0100」となる。
【００８２】
図１０に示す例では、リビルド処理の実行によりマスターＨＤＤのパーティション１に保持されるデータＡ３３０は、バックアップＨＤＤのパーティション１に保持されるデータＡ３４０としてコピーされる。また、マスターＨＤＤのパーティション２に保持されるデータＢ３３１は、バックアップＨＤＤのパーティション２に保持されるデータＢ３４１としてコピーされる。
【００８３】
実施例１のディスクアレイ装置１００は、図８、図９、図１０に記載した状態を順次経ることで、ＲＡＩＤの再構築とＯＳの再インストール無しで、ＨＤＤ内の連続するパーティション領域の拡張が可能となる。実際、図８〜図１０で示した例では、ＨＤＤ内の連続するパーティション領域が４０ＧＢｙｔｅから８０ＧＢｙｔｅに拡張されている。
【００８４】
なお、図８に示した状態から図９の状態への移行は、ＨＤＤ３０１を１６０ＧＢｙｔｅのＨＤＤに交換してリビルド処理を行うことにより可能である。また、図９の状態から図１０の状態への移行は、ＨＤＤ３００を１６０ＧＢｙｔｅのＨＤＤに交換してリビルド処理を行うことにより可能である。
【００８５】
以上示したように、実施例１では、ＲＡＩＤ１制御において、パーティション管理情報からアクセスすべきＨＤＤのアドレスを算出する構成を有する。このような構成により、ＲＡＩＤの再構築とＯＳの再インストール無しにＨＤＤ内の連続するパーティション領域の変更を実現することができる。
【実施例２】
【００８６】
以下、実施例１の変形例（実施例２）について説明する。
上述した実施例１は、本発明をＲＡＩＤ１について適用する実施例であるが、本発明はこれに限らず、変形例として以下に示すようなＲＡＩＤ５に対しても適用することができる。なお、実施例２のディスクアレイ装置１００の構成は、図１と同様であるので省略する。
【００８７】
図１１は、実施例２のディスクアレイ装置１００のＲＡＩＤ５ディスクアレイ状態を示す図である。
図１１に示すように、ホスト制御部１０５のチャネルＡに接続されたＨＤＤ３００及びチャネルＣに接続されたＨＤＤ３０２の容量を８０ＧＢｙｔｅ、チャネルＢに接続されたＨＤＤ３０１の容量を１６０ＧＢｙｔｅとする。チャネルＡに接続されたＨＤＤ３００のパーティション構造は、パーティション１を「0x0000_0000」から「0x04FF_FFFF」までの４０ＧＢｙｔｅとする。さらに、ＨＤＤ３００のパーティション２を「0x0500_0000」から「0x09FF_FFFF」までの４０ＧＢｙｔｅとする。また、チャネルＢに接続されたＨＤＤ３０１のパーティション構造は、パーティション１を「0x0000_0000」から「0x09FF_FFFF」までの８０ＧＢｙｔｅとする。さらに、ＨＤＤ３０１のパーティション２を「0x0A00_0000」から「0x14FF_FFFF」までの８０ＧＢｙｔｅとする。また、チャネルＣに接続されたＨＤＤ３０２のパーティション構造は、パーティション１を「0x0000_0000」から「0x04FF_FFFF」までの４０ＧＢｙｔｅとする。さらに、ＨＤＤ３０２のパーティション２を「0x0500_0000」から「0x09FF_FFFF」までの４０ＧＢｙｔｅとする。これらパーティション情報はフォーマット管理部１０３により管理される。
【００８８】
ＲＡＩＤ５では、ディスクアレイ装置１００がＨＣ２００からの書き込み要求を受信すると、ＲＡＩＤ制御部１０２は、例えばＨＤＤ３００にデータを書き込む。さらに、ＲＡＩＤ制御部１０２は、ＨＤＤ３００、及び、ＨＤＤ３０１又はＨＤＤ３０１に書き込まれているデータからパリティを算出し、該算出したパリティをＨＤＤ３０１又はＨＤＤ３０２に書き込む処理を実行する。
【００８９】
例えば、ディスクアレイ装置１００がＨＣ２００からのデータＡの書き込み要求を受信すると、ＲＡＩＤ制御部１０２は、例えばＨＤＤ３００にデータＡ３５０を書き込む。さらに、ＲＡＩＤ制御部１０２は、ＨＤＤ３００、及び、ＨＤＤ３０１に書き込まれているデータＡからパリティＡを算出し、該算出したパリティＡをＨＤＤ３０２に書き込む。一方、ディスクアレイ装置１００がＨＣ２００からのデータＢの書き込み要求を受信すると、ＲＡＩＤ制御部１０２は、例えばＨＤＤ３００にデータＢ３５１を書き込む。さらに、ＲＡＩＤ制御部１０２は、ＨＤＤ３００、及び、ＨＤＤ３０２に書き込まれているデータＢからパリティＢを算出し、該算出したパリティＢをＨＤＤ３０１に書き込む。
【００９０】
このため、ＲＡＩＤ制御部１０２は、ＨＣ２００からの書き込み要求からＨＤＤ３００のＬＢＡを抽出し、抽出されたＬＢＡ及びＨＤＤ３００のＩＤをフォーマット管理部１０３に送信する。フォーマット管理部１０３は、受信したＬＢＡとＨＤＤのＩＤを用いてデータの書き込み要求の対象となるＨＤＤ３００、データの読み込み要求やパリティの書き込み要求の対象となるＨＤＤ３０１及びＨＤＤ３０２のパーティション開始ＬＢＡを抽出する。
【００９１】
図１１に示した例では、書き込み要求の対象となるＨＤＤ３００のＬＢＡが「0x0500_0100」である場合、各ＨＤＤのパーティション開始アドレスは次のようになる。ＨＤＤ３０１のパーティション開始ＬＢＡが「0x0500_0000」、ＨＤＤ３０１のパーティション開始ＬＢＡが「0x0A00_0000」、ＨＤＤ３０２のパーティション開始ＬＢＡが「0x0500_0000」となる。
【００９２】
アドレス算出部１０４は、フォーマット管理部１０３から各ＨＤＤのパーティション開始ＬＢＡとＨＤＤ３００に対する書き込み要求の対象となるＬＢＡ（ＬＡＢ_Ａ）を受信する。そして、アドレス算出部１０４は、ＨＤＤ３０１及びＨＤＤ３０２に対するアクセスすべきＬＢＡ（それぞれ、ＬＡＢ_Ｂ及びＬＡＢ_Ｃ）を算出する。
【００９３】
算出式は、ＨＤＤ３００のアクセスＬＢＡ（ＬＢＡ_Ａ）、ＨＤＤ３０１のアクセスパーティション開始ＬＢＡ（Ｐ_ＬＢＡ_Ｂ）、及びＨＤＤ３０２のアクセスパーティション開始ＬＢＡ（Ｐ_ＰＢＡ_Ｃ）から以下の（式２），（式３）となる。
【００９４】
ＬＢＡ_Ｂ＝Ｐ_ＬＢＡ_Ｂ＋（ＬＢＡ_Ａ−Ｐ_ＬＢＡ_Ａ）  ・・・（式２）
ＬＢＡ_Ｃ＝Ｐ_ＬＢＡ_Ｃ＋（ＬＢＡ_Ａ−Ｐ_ＬＢＡ_Ａ）  ・・・（式３）
図１１に示した例では、ＬＢＡ_Ｂは「0x0A00_0100」、ＬＢＡ_Ｃは「0x0500_0100」となる。
【００９５】
アドレス算出部１０４は、算出したＨＤＤ３０１及びＨＤＤ３０２に対するアクセスＬＢＡをＲＡＩＤ制御部１０２に送信する。ＲＡＩＤ制御部１０２は、ＨＤＤ３００に対する書き込み要求及びＨＤＤ３０２に対する読み込み要求をホスト制御部１０５に送信する。
【００９６】
ホスト制御部１０５は、ＲＡＩＤ制御部１０２から受信した書き込み要求及び読み込み要求をＡＴＡの規定に沿ったコマンドに変換し、それぞれＨＤＤ３００及びＨＤＤ３０２に送信する。ホスト制御部１０５は、ＨＤＤ３０２に対する読み込み要求を実行した後、ＨＤＤ３０２から受信したデータをＲＡＩＤ制御部１０２に送信する。
【００９７】
ＲＡＩＤ制御部１０２は、ＨＤＤ３００に書き込まれたデータとＨＤＤ３０２から読み込まれたデータを元にパリティを算出し、ＨＤＤ３０１に対する書き込み要求をホスト制御部１０５に送信する。ホスト制御部１０５は、ＲＡＩＤ制御部１０２から受信したＨＤＤ３０１に対する書き込み要求をＡＴＡの規定に沿ったコマンドに変換し、ＨＤＤ３０１に送信する。
【００９８】
次に、書き込み要求の対象となるＨＤＤ３００のＬＢＡが「0x0000_0100」である場合、について説明する。
書き込み要求の対象となるＨＤＤ３００のＬＢＡが「0x0000_0100」である場合、図１１に示した例では、各ＨＤＤのパーティション開始アドレスは次のようになる。ＨＤＤ３０１のパーティション開始ＬＢＡが「0x0000_0000」、ＨＤＤ３０２のパーティション開始ＬＢＡが「0x0000_0000」となる。
【００９９】
アドレス算出部１０４は、フォーマット管理部１０３から各ＨＤＤのパーティション開始ＬＢＡとＨＤＤ３００に対する書き込み要求の対象となるＬＢＡ（ＬＡＢ_Ａ）を受信する。そして、アドレス算出部１０４は、ＨＤＤ３０１及びＨＤＤ３０２に対するアクセスすべきＬＢＡ（それぞれ、ＬＡＢ_Ｂ及びＬＡＢ_Ｃ）を算出する。図１１に示した例では、ＬＢＡ_Ｂは「0x0000_0100」、ＬＢＡ_Ｃは「0x0000_0100」となる。
【０１００】
アドレス算出部１０４は、算出したＨＤＤ３０１及びＨＤＤ３０２に対するアクセスＬＢＡをＲＡＩＤ制御部１０２に送信する。ＲＡＩＤ制御部１０２は、ＨＤＤ３００に対する書き込み要求及びＨＤＤ３０１に対する読み込み要求をホスト制御部１０５に送信する。
【０１０１】
ホスト制御部１０５は、ＲＡＩＤ制御部１０２から受信した書き込み要求及び読み込み要求をＡＴＡの規定に沿ったコマンドに変換し、それぞれＨＤＤ３００及びＨＤＤ３０１に送信する。ホスト制御部１０５は、ＨＤＤ３０１に対する読み込み要求を実行した後、ＨＤＤ３０１から受信したデータをＲＡＩＤ制御部１０２に送信する。
【０１０２】
ＲＡＩＤ制御部１０２は、ＨＤＤ３００に書き込まれるデータとＨＤＤ３０１から読み込まれたデータを元にパリティを算出し、ＨＤＤ３０２に対する書き込み要求をホスト制御部１０５に送信する。ホスト制御部１０５は、ＲＡＩＤ制御部１０２から受信したＨＤＤ３０２に対する書き込み要求をＡＴＡの規定に沿ったコマンドに変換し、ＨＤＤ３０２に送信する。
【０１０３】
以上示したように、実施例２では、ＲＡＩＤ５制御において、各ＨＤＤのパーティション管理を行い、パーティション管理情報（フォーマット情報）を自由に変更可能とする。さらに、パーティション管理情報からアクセスすべきＨＤＤのアドレスを算出する構成を有する。このような構成により、ＲＡＩＤの再構築とＯＳの再インストール無しにＨＤＤ内の連続するパーティション領域の変更を実現することができる。
【０１０４】
なお、上記実施例１ではＲＡＩＤ１、上記実施例２ではＲＡＩＤ５に本発明を適用する場合について説明したが、他のＲＡＩＤレベルについても同様に本発明を適用可能なものがあり、このような構成も本発明に含まれるものである。
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【産業上の利用可能性】
【０１０５】
ホストコンピュータ２００を複合機（ＭＦＰ）のコントローラ部とすることによって、本発明を複合機等の画像形成装置にも適用できる。そして、上記コントローラ部に接続されるディスクアレイ装置は、該ディスクアレイ装置に接続される複数の記憶装置のいずれかが新たな記憶装置に交換された場合に、新たな記憶装置の記憶容量に対応するフォーマット情報に従って、新たな記憶装置における複数のパーティション領域にアクセスする。
【符号の説明】
【０１０６】
１００    ディスクアレイ装置
１０１    デバイス制御部
１０２    ＲＡＩＤ制御部
１０３    フォーマット制御部
１０４    アドレス算出部
１０５    ホスト制御部
１０６    状態保持部
２００    ホストコンピュータ
３００，３０１    ＨＤＤ
【図１】
2011081683.tif 000003
【図２】
2011081683.tif 000004
【図３】
2011081683.tif 000005
【図４】
2011081683.tif 000006
【図５】
2011081683.tif 000007
【図６】
2011081683.tif 000008
【図７】
2011081683.tif 000009
【図８】
2011081683.tif 000010
【図９】
2011081683.tif 000011
【図１０】
2011081683.tif 000012
【図１１】
2011081683.tif 000013