(57)【要約】【課題】ディスクアレイ装置のデータ容量を効率よく利用して、データの二重化（ミラーリング）を行う。【解決手段】Ｎ個のＨＤＤ（１２1〜１２N）の全アドレスに対して、順に通しアドレスを付与するとともに、通しアドレスを昇順に２等分して第１、第２のディスクグループにグループ分けし、第１のディスクグループの通しアドレスと、当該第１のディスクグループの通しアドレスに第１のディスクグループの最大通しアドレスを加算してオフセットさせた第２のディスクグループの通しアドレスとを対応付けるデータアドレス制御部（２６）と、対応付けられた対をなす通しアドレスに同一のデータを記憶するセレクタ（２８）と、を備えるので、第１、第２のディスクグループの通しアドレスを簡易に対応付けることができるとともに、ＨＤＤのデータ容量を効率良く利用して、ミラーリングを行うことができる。【選択図】図２
2009282708.tif 000002
【特許請求の範囲】
【請求項１】
ディスクアレイ装置が有する、複数のディスク装置の全アドレスに対して、通しアドレスをディスク装置順に付与するアドレス付与ステップと、
前記アドレス付与ステップで付与された前記通しアドレスを昇順に２等分して、第１のディスクグループと第２のディスクグループとにグループ分けするグループ分けステップと、
前記第１のディスクグループの通しアドレスに記憶するデータを、当該第１のディスクグループの通しアドレスに前記第１のディスクグループの最大通しアドレスを加算してオフセットさせた前記第２のディスクグループの通しアドレスにも記憶する記憶ステップと、を含むディスクアレイ装置の制御方法。
【請求項２】
前記ディスクアレイ装置が、Ｎ（Ｎは２以上の自然数）個のディスク装置を有し、前記各ディスク装置の最大アドレスがＬである場合に、
前記記憶ステップでは、前記第１のディスクグループの最大通しアドレスを、Ｎを２で整数除算して得た商にＬを乗じた値と、Ｎを２で除したときの余りに（Ｌ／２）を乗じた値との和により求めることを特徴とする請求項１に記載のディスクアレイ装置の制御方法。
【請求項３】
前記ディスクアレイ装置は、奇数個のディスク装置を有することを特徴とする請求項１又は２に記載のディスクアレイ装置の制御方法。
【請求項４】
ディスクアレイ装置が有する、複数のディスク装置の全アドレスに対して通しアドレスをディスク装置順に付与するとともに、前記通しアドレスを昇順に２等分して、第１のディスクグループと第２のディスクグループとにグループ分けし、前記第１のディスクグループの通しアドレスと、当該第１のディスクグループの通しアドレスに前記第１のディスクグループの最大通しアドレスを加算してオフセットさせた前記第２のディスクグループの通しアドレスと、を対応付けるデータアドレス制御手段と、
前記データアドレス制御手段により対応付けられた対をなす通しアドレスに同一のデータを記憶する記憶手段と、を含むディスクアレイ装置の制御装置。
【請求項５】
前記ディスクアレイ装置が、Ｎ（Ｎは２以上の自然数）個のディスク装置を有し、前記各ディスク装置の最大アドレスがＬである場合に、
前記データアドレス制御手段は、前記第１のディスクグループの最大アドレスを、Ｎを２で整数除算して得た商にＬを乗じた値と、Ｎを２で除したときの余りに（Ｌ／２）を乗じた値との和により求めることを特徴とする請求項４に記載のディスクアレイ装置の制御装置。
【請求項６】
前記ディスクアレイ装置は、奇数個のディスク装置を有することを特徴とする請求項４又は５に記載のディスクアレイ装置の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置の制御方法及び制御装置に関し、特に複数のディスク装置を備えるディスクアレイ装置を制御する制御方法及び制御装置に関する。
【背景技術】
【０００２】
現在、コンピュータ等の情報処理装置では、データを二次記憶装置に格納して記憶する。二次記憶装置としては、一般に不揮発な記憶媒体を使用することができ、その代表的なものとして磁気ディスク装置（Hard Disc Drive：ＨＤＤ）が挙げられる。ＨＤＤは、回転する磁気媒体（磁気ディスク）に高密度にデータを記録するものであり、精密な機構部品や電子回路から構成されているため、故障の可能性をゼロにすることは不可能である。
【０００３】
そこで、最近では、比較的容量の小さな複数のＨＤＤを冗長化することにより故障に対応するため、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）と呼ばれる手法が採られている。このＲＡＩＤには、その冗長化の方法別に、ＲＡＩＤ１、ＲＡＩＤ５、ＲＡＩＤ６、ＲＡＩＤ１０などの種類が存在している。
【０００４】
このうちのＲＡＩＤ１は、ミラーリング（二重化）とも呼ばれ、複数台（例えば２台）のＨＤＤに同じデータを記憶しておくことにより、一のＨＤＤが故障しても、他のＨＤＤから必要なデータを読み出せるようにしておくものである。これにより、システム全体としては問題なく稼動し続けることが可能である（例えば、特許文献１等参照）。
【０００５】
このＲＡＩＤ１では、データの二重化という観点から、同じ容量のＨＤＤを２台用意するか、大容量化のためにＨＤＤを偶数台（４台、６台…）用意し、２台ずつ対応付けてミラーリングするのが一般的である。
【０００６】
【特許文献１】特開２０００−２９８５５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記のように、ＲＡＩＤ１においてデータの二重化を行う場合、偶数台のＨＤＤを用意しなければならないという制約があるため、奇数台のＨＤＤを用意した場合には、使用されないＨＤＤが存在してしまう。このことは、ＨＤＤのデータ容量を効率的に利用することができていないことを意味する。
【０００８】
これに対し、特許文献１の段落（００２７），（００２８）に記載の例では、３台のＨＤＤ（実ディスク装置）を分割して７つの仮想ディスク装置を構成し、そのうちの６つの仮想ディスク装置を用いてミラーリングする方法が開示されている。しかるに、この方法を用いても、特許文献１の図９に示すように、場合によっては、未使用の仮想ディスク装置が存在してしまうため、ＨＤＤのデータ容量の効率的な利用は不完全なものとなっている。
【０００９】
そこで本発明は上記の課題に鑑みてなされたものであり、ディスクアレイ装置のデータ容量を効率よく利用して、データの二重化（ミラーリング）を行うことが可能なディスクアレイ装置の制御方法及び制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本明細書開示のディスクアレイ装置の制御方法は、ディスクアレイ装置が有する、複数のディスク装置の全アドレスに対して、通しアドレスをディスク装置順に付与するアドレス付与ステップと、前記アドレス付与ステップで付与された前記通しアドレスを昇順に２等分して、第１のディスクグループと第２のディスクグループとにグループ分けするグループ分けステップと、前記第１のディスクグループの通しアドレスに記憶するデータを、当該第１のディスクグループの通しアドレスに前記第１のディスクグループの最大通しアドレスを加算してオフセットさせた前記第２のディスクグループの通しアドレスにも記憶する記憶ステップと、を含むことを特徴とする。
【００１１】
本明細書において、「アドレス」とは、ディスクのセクタアドレスであるＬＢＡ（Logical Block Addressing）であっても良いし、例えば従来からＲＡＩＤにおいて用いられていたチャンクサイズであっても良い。ＬＢＡは、ディスク装置内の全てのセクタに振った通し番号を意味し、チャンクサイズとは、複数のセクタを纏めた単位を意味する。
【００１２】
これによれば、全ディスク装置に付与した通しアドレスを２等分して第１のディスクグループと第２のディスクグループとにグループ分けし、各ディスクグループを用いてデータの二重化（ミラーリング）を行うので、ディスク装置のデータ容量を効率良く利用して、ミラーリングを行うことが可能となる。また、第１のディスクグループの通しアドレスと第２のディスクグループの通しアドレスとを、第１のディスクグループの最大通しアドレスのみを用いて対応付けるので、両ディスクグループの通しアドレスの対応付けを簡易に行うことが可能となる。更に、通しアドレスをディスク装置順に付与し、その通しアドレスを昇順に２等分してグループ分けするので、通しアドレスが比較的近い同一のディスク装置内のアドレス同士が対応付けられてミラーリングに用いられるような事態を回避することが可能となる。
【００１３】
また、本明細書開示のディスクアレイ装置の制御装置は、ディスクアレイ装置が有する、複数のディスク装置の全アドレスに対して通しアドレスをディスク装置順に付与するとともに、前記通しアドレスを昇順に２等分して、第１のディスクグループと第２のディスクグループとにグループ分けし、前記第１のディスクグループの通しアドレスと、当該第１のディスクグループの通しアドレスに前記第１のディスクグループの最大通しアドレスを加算してオフセットさせた前記第２のディスクグループの通しアドレスと、を対応付けるデータアドレス制御手段と、前記データアドレス制御手段により対応付けられた対をなす通しアドレスに同一のデータを記憶する記憶手段と、を含むことを特徴とする。
【００１４】
これによれば、全ディスク装置に付与した通しアドレスを２等分して第１のディスクグループと第２のディスクグループとにグループ分けし、各ディスクグループを用いてデータの二重化（ミラーリング）を行うので、ディスク装置のデータ容量を効率良く利用して、ミラーリングを行うことが可能となる。また、第１のディスクグループの通しアドレスと第２のディスクグループの通しアドレスとを、第１のディスクグループの最大アドレスのみを用いて対応付けるので、両ディスクグループの通しアドレスの対応付けを簡易に行うことが可能となる。更に、通しアドレスをディスク装置順に付与し、その通しアドレスを昇順に２等分してグループ分けするので、通しアドレスが比較的近い同一のディスク装置内のアドレス同士が対応付けられてミラーリングに用いられるような事態を回避することが可能となる。
【発明の効果】
【００１５】
本明細書に開示のディスクアレイ装置の制御方法及び制御装置は、ディスクアレイ装置のデータ容量を効率良く利用して、データの二重化（ミラーリング）を行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下、本発明のディスクアレイ装置の制御装置（ＲＡＩＤコントローラ）の一実施形態について、図１〜図６に基づいて詳細に説明する。
【００１７】
本実施形態のＲＡＩＤコントローラ１０は、図１に示す複数（Ｎ個（１番目からＮ番目まで））のＨＤＤ１２1〜１２Nを有するディスクアレイ装置１１２を用いて、データの二重化（ミラーリング：ＲＡＩＤ１）を行うためのコントローラである。このＲＡＩＤコントローラ１０は、ＰＣ本体のＰＣＩコネクタと接続可能なコネクタ部を有し、このＰＣ本体のＰＣＩコネクタに着脱可能なデバイスである。
【００１８】
ＲＡＩＤコントローラ１０は、図１に示すように、外部Ｉ／Ｆ（ＰＣインタフェース）１４と、ＣＰＵ（Central Processing Unit）１６と、メモリ１８と、ディスクコントローラ２０と、これら各部を接続する伝送路としての内部バス２２と、を備えている。
【００１９】
外部Ｉ／Ｆ１４は、ＰＣ本体側のＰＣＩ（Peripheral Components Interconnect）などのバスとの接続のためのインタフェースである。この外部Ｉ／Ｆ１４は、ＰＣ本体のＯＳからのデータの記憶（書き込み）又は再生（読み出し）の指示、及び記憶／再生対象のアドレスに関する指示を受けて、当該指示をＣＰＵ１６に送る。
【００２０】
ＣＰＵ１６は、ＲＡＩＤコントローラ１０全体の制御を行うユニットであり、内部バス２２を通じて各部の間での各種信号のやりとりや各部の動作の制御を行う。特に、ＯＳからの指示に基づいて、ディスクコントローラ２０に対して処理（データの記録／再生）の指示を出すものである。メモリ１８は、ＲＡＩＤコントローラ１０の動作を実行するために必要なファームウェアや各種パラメータなどの情報が格納されている読み出し専用のメモリや、ＣＰＵ１６の演算処理実行時の作業領域として用いられる高速な読み書きが可能なメモリ等を含んでいる。
【００２１】
ディスクコントローラ２０は、ＣＰＵ１６からの指示に基づいてＨＤＤ及びアドレスを特定し、そのアドレスにデータの記憶／再生を実行する。このディスクコントローラ２０は、具体的には、図２に示すように、ホストＩ／Ｆ２４と、データアドレス制御手段としてのデータアドレス制御部２６と、記憶手段としてのセレクタ２８と、Ｎ個のディスクＩ／Ｆ３０1〜３０Nとを有している。
【００２２】
ホストＩ／Ｆ２４は、外部Ｉ／Ｆ１４、ＣＰＵ１６及び内部バス２２を介して入力されるＯＳからの指示内容を受信して、当該指示をデータアドレス制御部２６に対して出力する。データアドレス制御部２６は、全ＨＤＤ１２1〜１２Nの全データ容量を２等分して２つのディスクグループに分け、どのＨＤＤのどのアドレスに対する処理（データの記憶／再生）を実行するかを決定する。なお、このデータアドレス制御部２６の具体的な処理については後に詳述する。
【００２３】
セレクタ２８は、データアドレス制御部２６により決定された、ＨＤＤのアドレスに対して、ディスクＩ／Ｆ３０1〜３０Nのいずれかを介してデータ処理（データの記憶／再生）を実行する。
【００２４】
次に、上述したデータアドレス制御部２６（及びセレクタ２８）の具体的な処理につき、図３〜図５に基づき詳述する。
【００２５】
まず、図３、図４を用いて、データアドレス制御部２６による、ＲＡＩＤ１を行うための２つのディスクグループの構成方法（グループ分け方法）及び２つのディスクグループへのデータの記憶方法の概要について説明する。図３には、ディスクアレイ装置１１２が、ＨＤＤを３つ（１２1〜１２3）備える場合の具体例が示され、図４には、ディスクアレイ装置１１２が、ＨＤＤを４つ（１２1〜１２4）備える場合の具体例が示されている。
【００２６】
（１）ＨＤＤを３つ備える場合（図３の具体例）
この場合、データアドレス制御部２６は、全ＨＤＤ１２1〜１２3の全アドレスａｄ（この場合の「アドレスａｄ」はチャンクサイズを意味し、ここでは、各ＨＤＤが４つのチャンクを有しているものとする）に対して、新たなアドレス１〜１２を付与する。なお、新たなアドレス１〜１２を、以下においては、「通しアドレス」と呼ぶものとする。この通しアドレスは、図３（ａ）に示すように、ＨＤＤ１２1→ＨＤＤ１２2→ＨＤＤ１２3の順に（ＨＤＤ順に）付与される。
【００２７】
次いで、データアドレス制御部２６は、図３（ｂ）に示すように、通しアドレス１〜１２を２等分して、通しアドレス（１〜６）を第１ディスクグループとし、通しアドレス（７〜１２）を第２ディスクグループとする（グループ分けする）。なお、本実施形態では、上述のように全通しアドレスを２等分して２つのディスクグループに分割するので、通しアドレスの合計が偶数になるように、チャンクサイズを決定するのが好ましい。
【００２８】
次いで、データアドレス制御部２６が、ＯＳから送信されてくる記録指示をホストＩ／Ｆ２４やＣＰＵ１６を介して受信すると、当該記録指示から第１ディスクグループの通しアドレスａ（ａ＝１〜６）を特定（抽出）する。
【００２９】
また、データアドレス制御部２６は、通しアドレスａに対応する第２ディスクグループの通しアドレスｂを特定する。ここで、通しアドレスａとこれに対応する通しアドレスｂは、図３（ｂ）において左右方向に隣接するアドレス（上下方向の位置が一致するアドレス）を意味する。すなわち、本実施形態では、図３（ｂ）に示すように、第１ディスクグループの通しアドレス「１」と第２ディスクグループの通しアドレス「７」とが対応し、通しアドレス「２」と通しアドレス「８」とが対応し、…通しアドレス「６」と通しアドレス「１２」とが対応する。したがって、通しアドレスａと通しアドレスｂとの間には、次式（１）に示す関係がある。
通しアドレスｂ＝通しアドレスａ
＋（第１ディスクグループの最大アドレス）…（１）
【００３０】
このため、データアドレス制御部２６では、ＯＳからの記憶指示に基づく第１ディスクグループの通しアドレスａに基づいて、上式（１）から、通しアドレスａに対応する第２ディスクグループの通しアドレスｂを算出する。そして、データアドレス制御部２６は、第１ディスクグループの通しアドレスａと、これに対応する（対をなす）第２ディスクグループの通しアドレスｂに同一のデータを記憶するように、セレクタ２８に指示を出す。なお、実際には、通しアドレスａ、ｂのそれぞれが、どのＨＤＤ（１２1〜１２3）のどのアドレス（１〜４）であるかを特定して、セレクタ２８に指示を出す必要があるが、この点については後述する。
【００３１】
（２）ＨＤＤを４つ備える場合（図４の具体例）
図４（ａ）に示すように、ＨＤＤが４つ（ＨＤＤ１２1〜１２4）ある場合にも、図３の場合と同様の処理を実行することができる。すなわち、データアドレス制御部２６は、まず、図４（ａ）に示すように、全ＨＤＤ（１２1〜１２4）の全アドレス（１〜４）に対し、通しアドレス（１〜１６）を付与する。この場合においても、ＨＤＤ１２1→ＨＤＤ１２2→ＨＤＤ１２3→ＨＤＤ１２4の順に（ＨＤＤ順に）通しアドレスを付与する。次いで、データアドレス制御部２６は、図４（ｂ）に示すように、通しアドレス１〜１６を２等分して、通しアドレス（１〜８）を第１ディスクグループとし、通しアドレス（９〜１６）を第２ディスクグループとする（グループ分けする）。この場合、結果として、ＨＤＤ１２1，１２2が第１ディスクグループに属し、ＨＤＤ１２3，１２4が第２ディスクグループに属すことになる。
【００３２】
なお、図４（ｂ）の例においても、第１ディスクグループの通しアドレス「１」と第２ディスクグループの通しアドレス「９」とが対応し、通しアドレス「２」と通しアドレス「１０」とが対応し、…通しアドレス「８」と通しアドレス「１６」とが対応している。すなわち、通しアドレスａと通しアドレスｂとの間には、上式（１）と同一の関係が成立していることが分かる。
【００３３】
したがって、データアドレス制御部２６は、ＯＳからの記憶指示に基づく第１ディスクグループの通しアドレスａに基づいて、上式（１）から、通しアドレスａに対応する第２ディスクグループの通しアドレスｂを算出する。そして、データアドレス制御部２６は、第１ディスクグループの通しアドレスａと、これに対応する（対をなす）第２ディスクグループの通しアドレスｂに同一のデータを記憶するように、セレクタ２８に指示を出す。
【００３４】
このように、本実施形態では、ＨＤＤが３個（奇数個）であっても、４個（偶数個）であっても、通しアドレスを２つのディスクグループに分割することができる。すなわち、２つのディスクグループのうちの一方のディスクグループをマスタ、他方のディスクグループをスレーブとすることで、データの二重化（ミラーリング）を行うことが可能である。
【００３５】
次に、図３、図４の具体例を、更に一般化した例について、図５に基づいて詳細に説明する。図５の例では、ＨＤＤがＮ個（１２1〜１２N）あり、各ＨＤＤの最大アドレスがＬであるものとする。
【００３６】
この場合においても、図５（ａ）に示すように、全アドレスａｄ（ａｄ＝１〜Ｌ）に通しアドレスを付与し、図５（ｂ）に示すように全通しアドレスを２等分して、第１ディスクグループと第２ディスクグループとにグループ分けする。ここで、第１ディスクグループの最大通しアドレスＡmax（図５（ｂ）参照）は、次式（２）により求めることができる。
Ａmax＝（Ｎ￥２）×Ｌ＋（Ｎmod２）×（Ｌ／２）  …（２）
【００３７】
なお、上式（２）における「￥２」は、２で切り捨て除算した場合の商（整数除算の商）を意味し、「mod２」は、２で除算した場合の余り（剰余演算）を意味する。
【００３８】
また、第２ディスクグループの最小通しアドレスＢminは、Ａmaxの次の通しアドレス（Ａmaxに１加算したアドレス）であるので、次式（３）にて表すことができる。
Ｂmin＝１＋（Ｎ￥２）×Ｌ＋（Ｎmod２）×（Ｌ／２）  …（３）
【００３９】
更に、第２ディスクグループの最大通しアドレス（Ｎ×Ｌ）は、次式（４）にて表すことができる。
（Ｎ×Ｌ）＝｛（Ｎ￥２）×Ｌ＋（Ｎmod２）×（Ｌ／２）｝
＋｛（Ｎ￥２）×Ｌ＋（Ｎmod２）×（Ｌ／２）｝  …（４）
【００４０】
このように、第１ディスクグループの通しアドレスａとこれに対応する第２ディスクグループの通しアドレスｂ（図５（ｂ）において左右に隣接する通しアドレス）との間には、上述した式（１）と同様の関係が成立している。具体的には、次式（５）の関係が成立している。
通しアドレスｂ＝通しアドレスａ
＋｛（Ｎ￥２）×Ｌ＋（Ｎmod２）×（Ｌ／２）｝…（５）
ただし、通しアドレスａは、｛（Ｎ￥２）×Ｌ＋（Ｎmod２）×（Ｌ／２）｝以下である。
【００４１】
したがって、データアドレス制御部２６は、ＯＳからの記憶指示に基づく第１ディスクグループの通しアドレスａに基づいて、上式（５）から、通しアドレスａに対応する第２ディスクグループの通しアドレスｂを算出する。そして、データアドレス制御部２６は、第１ディスクグループの通しアドレスａと、これに対応する（対をなす）第２ディスクグループの通しアドレスｂに同一のデータを記憶するように、セレクタ２８に指示を出す。
【００４２】
ここで、本実施形態では、式（５）から分かるように、通しアドレスｂの生成に必要な演算は、整数除算（￥２）、剰余演算（mod２）、固定値乗算（×Ｌ）である。この場合、２での整数除算は、ビットの右シフトにより行うことができ、剰余演算は最下位ビット（ＬＳＢ（least significant bit））の抽出により行うことができるので、軽微な処理により、式（５）の演算を行うことが可能である。
【００４３】
次に、図５の一般化した例を用いて、ディスクコントローラ２０によるデータ記憶処理シーケンスについて、図６のフローチャートに基づいて説明する。
【００４４】
図６の処理では、まず、ステップＳ１０において、データアドレス制御部２６が、ＣＰＵ１６からの処理指示が入力されるまで待機する。この判断が肯定されると、次のステップＳ１２に移行し、各ディスクグループにおいてデータを記憶するアドレス（通しアドレスａ，ｂ）を特定する。
【００４５】
この場合、ＯＳからのデータ記録指示において指定された第１ディスクグループの通しアドレスａが「ａ1」であったとすると、データアドレス制御部２６は、第２ディスクグループの通しアドレスｂを、上式（５）に基づいて、
ｂ＝ａ1＋｛（Ｎ￥２）×Ｌ＋（Ｎmod２）×（Ｌ／２）｝
とする。
【００４６】
次いで、ステップＳ１４では、データアドレス制御部２６が、通しアドレスａ（＝ａ1）の存在するＨＤＤ（１２n1）の特定と、通しアドレスａ（＝ａ1）のＨＤＤ（１２n1）内におけるアドレス（ａｄ1）の特定を行う。具体的には、図５の場合において、例えば、通しアドレスが（Ｌ＋２）であったときに、その通しアドレス（Ｌ＋２）がどのＨＤＤ（ここでは、ＨＤＤ１２2）のどのアドレス（ここでは、ａｄ1＝２）であるのかを特定する。また、同様に、データアドレス制御部２６は、通しアドレスｂの存在するＨＤＤ（１２n2）の特定と、通しアドレスｂのＨＤＤ（１２n2）内におけるアドレス（ａｄ2）の特定も行う。
【００４７】
この場合、ｎ1，ａｄ1，ｎ2，ａｄ2のそれぞれは、次式（６），（７），（８），（９）により求めることができる。なお、「￥Ｌ」は、Ｌで切り捨て除算した場合の商（整数除算の商）を意味し、「modＬ」は、剰余演算であり、Ｌで除算した場合の余り（ただし、余りが０の場合は、Ｌに変換する）を意味する。
ｎ1＝（（ａ1−１）￥Ｌ）＋１        …（６）
ａｄ1＝（ａ1 modＬ）                …（７）
ｎ2＝（（ｂ−１）￥Ｌ）＋１          …（８）
ａｄ2＝（ｂ modＬ）                …（９）
【００４８】
その後、ステップＳ１６では、セレクタ２８が、上式（６），（７）に基づいて特定されたＨＤＤ１２n1及びアドレスａｄ1と、上式（８），（９）に基づいて特定されたＨＤＤ１２n2及びアドレスａｄ2に、同一のデータを記憶する。このようにすることで、データの二重化（ミラーリング）を行うことが可能である。
【００４９】
本実施形態では、ＨＤＤのいずれかが故障して、当該故障したＨＤＤからデータを読み取れなくなったとしても、故障部分に対応する別のディスクグループからデータを読み取ることができるので、ディスクアレイ装置１１２を継続して稼働することができる。具体的には、読み出すべきデータが、第１ディスクグループの通しアドレスａのデータであったにもかかわらず当該データを読み取ることができなかった場合には、データアドレス制御部２６は、上式（５）から通しアドレスｂを算出して、データを読み取るようにする。
【００５０】
また、本実施形態では、第１ディスクグループと第２ディスクグループの双方からデータを読み出すようにアルゴリズムを拡張することにより、データの読み出し速度を向上することも可能である。
【００５１】
以上、詳細に説明したように、本実施形態によると、データアドレス制御部２６が、ディスクアレイ装置１１２が有する、Ｎ個のＨＤＤ（１２1〜１２N）の全アドレス（１〜Ｌ）に対して、順に、通しアドレス（１〜Ｎ×Ｌ）を付与するとともに、全ての通しアドレスを昇順に２等分して、第１のディスクグループと第２のディスクグループとにグループ分けし、セレクタ２８が第１のディスクグループの通しアドレスａに記憶するデータを、当該第１のディスクグループの通しアドレスａに第１のディスクグループの最大通しアドレスを加算してオフセットさせた第２のディスクグループの通しアドレスｂにも記憶するようにする。このようにすることで、ディスクアレイ装置１１２を構成するＨＤＤのデータ容量を効率良く利用して、データの二重化（ミラーリング）を行うことができる。
【００５２】
また、本実施形態によると、第１のディスクグループの通しアドレスと第２のディスクグループの通しアドレスとを、第１のディスクグループの最大通しアドレスのみを用いて対応付けるので、両ディスクグループの通しアドレスの対応付けを簡易に行うことができる。このように、本実施形態では、従来と比較して、通しアドレスを用いている分だけ、式（５）のような演算を行う必要が出てくるが、式（５）の演算は、２での整数除算（￥２）、剰余演算（mod２）、固定値乗算（×Ｌ）より成るので、通しアドレスｂを求めるのに必要な演算は簡易なものである。したがって、本実施形態では、通しアドレスｂを求めることによるＲＡＩＤコントローラ１０への負荷はほとんど生じない。
【００５３】
また、本実施形態では、通しアドレスを順に付与し、その通しアドレスを昇順に２等分してグループ分けするので、同一のＨＤＤ内のアドレス同士が対応付けられて、同一のＨＤＤ内に同一のデータが記憶されるようなことが無い。これにより、ミラーリング（ＲＡＩＤ１）を支障なく行うことが可能である。
【００５４】
また、本実施形態によると、ＨＤＤが奇数個であっても、偶数個であっても、全ＨＤＤのほぼ全て（余ったとしてもアドレス（ＬＢＡ又はチャンク）１つ分）のデータ容量を用いて、ミラーリングを行うことができるので、ディスクアレイ装置１１２におけるデータ容量を効率的に増加することが可能である。
【００５５】
なお、上記実施形態では、ＲＡＩＤコントローラ１０として、ハードウェア方式を採用したが、これに限らず、ソフトウェア方式（ＯＳ自身がドライブコントローラ（SCSI（Small Computer System Interface）など）を通じて複数台のディスクを管理する方式）を採用することとしても良い。
【００５６】
また、上記実施形態では、ＨＤＤのアドレスとして、複数のセクタを纏めた単位であるチャンクサイズを採用することとしたが、これに限らず、アドレスとして、ＨＤＤのセクタアドレスであるＬＢＡ（Logical Block Addressing）を採用することとしても良い。
【００５７】
なお、上記実施形態では、演算を簡易にするために、各ＨＤＤの最大アドレスを一律（Ｌ）とすることとしたが、これに限られるものではない。すなわち、通しアドレスを付与して、全通しアドレスを２等分してグループ分けするという観点からは、最大アドレスが、各ＨＤＤごとに異なっていても良い。この場合でも、第１ディスクグループの通しアドレスａと、通しアドレスａに第１グループの最大アドレスを加算してオフセットした第２ディスクグループの通しアドレスｂとに、同一のデータを記憶することで、上記実施形態と同様、ＨＤＤのデータ容量を効率良く用いてミラーリングを行うことが可能である。
【００５８】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【図面の簡単な説明】
【００５９】
【図１】一実施形態に係るＲＡＩＤコントローラを示すブロック図である。
【図２】図１のディスクコントローラを示すブロック図である。
【図３】ディスクアレイ装置が３つのＨＤＤを有する場合の、ＲＡＩＤ１の構成例を示す図である。
【図４】ディスクアレイ装置が４つのＨＤＤを有する場合の、ＲＡＩＤ１の構成例を示す図である。
【図５】ディスクアレイ装置がＮ個のＨＤＤを有する場合の、ＲＡＩＤ１の構成例を示す図である。
【図６】ディスクコントローラのデータ記録処理シーケンスを示すフローチャートである。
【符号の説明】
【００６０】
１０  ＲＡＩＤコントローラ（ディスクアレイ装置の制御装置）
１２1〜１２N  ＨＤＤ（ディスク装置）
２６  データアドレス制御部（データアドレス制御手段）
２８  セレクタ（記憶手段）
１１２  ディスクアレイ装置
【図１】
2009282708.tif 000003
【図２】
2009282708.tif 000004
【図３】
2009282708.tif 000005
【図４】
2009282708.tif 000006
【図５】
2009282708.tif 000007
【図６】
2009282708.tif 000008