JP2005107839A - アレイコントローラ及びディスクアレイ再構築方法 - Google Patents
アレイコントローラ及びディスクアレイ再構築方法 Download PDFInfo
- Publication number
- JP2005107839A JP2005107839A JP2003339981A JP2003339981A JP2005107839A JP 2005107839 A JP2005107839 A JP 2005107839A JP 2003339981 A JP2003339981 A JP 2003339981A JP 2003339981 A JP2003339981 A JP 2003339981A JP 2005107839 A JP2005107839 A JP 2005107839A
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- disk
- array
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】ディスクアレイの再構築に要する時間を十分に短縮できるようにする。
【解決手段】有効LBA領域331には、ディスクアレイ20を構成するHDDにデータがライトされたアドレスのうちの最大のアドレスが保持される。アレイコントローラ30内のリビルド制御部31は、ディスクアレイ20を構成するHDDのうちの1台に障害が発生した場合、当該ディスクアレイ20を再構築する処理を行う。リビルド制御部31は、残りの例えばHDD21-0の先頭アドレスから有効LBA領域331に保持されている最大アドレスまでの第1の領域のデータに基づき、障害が発生したHDDに代えて用いられる例えば新たなHDD21-1の当該第1の領域に対応する第2の領域に、当該障害が発生したHDDのデータを復元する。
【選択図】 図1
【解決手段】有効LBA領域331には、ディスクアレイ20を構成するHDDにデータがライトされたアドレスのうちの最大のアドレスが保持される。アレイコントローラ30内のリビルド制御部31は、ディスクアレイ20を構成するHDDのうちの1台に障害が発生した場合、当該ディスクアレイ20を再構築する処理を行う。リビルド制御部31は、残りの例えばHDD21-0の先頭アドレスから有効LBA領域331に保持されている最大アドレスまでの第1の領域のデータに基づき、障害が発生したHDDに代えて用いられる例えば新たなHDD21-1の当該第1の領域に対応する第2の領域に、当該障害が発生したHDDのデータを復元する。
【選択図】 図1
Description
本発明は、複数のディスクドライブから構成される冗長性を持つディスクアレイを制御するアレイコントローラに係り、特にディスクアレイ中の1つのディスクドライブに障害が発生したために当該障害が発生したディスクドライブを新たなディスクドライブに交換してディスクアレイを再構築するのに好適なアレイコントローラ及びディスクアレイ再構築方法に関する。
冗長データを持つことによりデータの信頼性を向上させる技術として、複数のディスクドライブを用いて構成される冗長性を持つディスクアレイ(冗長化ディスクアレイ)、つまりRAID(Redundant Array of Inexpensive Disks、またはRedundant Array of Independent Disks)が知られている。RAIDには幾つかのレベル(RAIDレベル)が定義されており、RAID1(ミラーリング)やRAID5(パリティ付きストライピング)などが知られている。いずれも複数のディスクドライブを用いて構成される冗長化ディスクアレイにデータ及び冗長データを配置することにより、いずれか1台のディスクドライブに障害が発生してもデータの復元を可能にする技術である。
さて、冗長化ディスクアレイを構成する複数のディスクドライブのうち、いずれか1台のディスクドライブに障害が発生した場合、当該障害が発生したディスクドライブを新たなディスクドライブと交換して、当該ディスクアレイを再構築する必要がある(例えば、特許文献1参照)。このディスクアレイを再構築する処理は、リビルド(Rebuild)と呼ばれる。このリビルドでは、ディスクアレイの冗長性を復活するために、障害が発生していない既存のディスクドライブのデータを利用して、障害が発生したディスクドライブに格納されていたデータを当該ドライブの全領域にわたり新たなディスクドライブに復元する処理が行われる。RAID1を適用するディスクアレイであれば、既存のディスクドライブのデータをリードして新たなディスクドライブにライトする処理(即ち既存のディスクドライブのデータを新たなディスクドライブにコピーする処理)により、障害が発生したディスクドライブにもともと記録されていた全てのデータが新たなディスクドライブに復元される。
特開平8−221217号公報(請求項1、段落0029,0030)
上記したように、ディスクアレイを再構築(リビルド)する従来技術では、障害が発生していない既存のディスクドライブのデータを利用して、障害が発生したディスクドライブに記録されていたデータを当該ドライブの全領域にわたり新たなディスクドライブに復元する処理が行われる。例えばRAID1を適用するディスクアレイであれば、障害が発生していない既存のディスクドライブの全領域にわたり、当該ディスクドライブのデータが新たなディスクドライブにコピーされる。このため近年は、ディスクアレイを構成する各ディスクドライブが大容量化されるに伴い、当該ディスクアレイの再構築に要する時間が著しく長くなってきている。
しかしながら、ディスクアレイを構成する各ディスクドライブの全領域に有効なデータが格納されていることは極めて稀である。このため、障害が発生したディスクドライブに記録されていたデータを当該ドライブの全領域にわたって新たなディスクドライブに復元することは無駄である。そこで、有効なデータだけを新たなディスクドライブに復元することが考えられる。しかし、そのためには、ディスクドライブの全領域にわたって、例えばブロック単位でデータの有効/無効を管理しなければならず、煩雑である。また、有効データだけを新たなディスクドライブに復元する場合、ディスクに対する不連続なアクセスが発生するため、ディスクアクセス効率が低下する。このため、有効データだけを復元しても、ディスクアレイの再構築に要する時間を十分に短縮できるとは限らない。
本発明は上記事情を考慮してなされたものでその目的は、ディスクアレイの再構築に要する時間を十分に短縮できるアレイコントローラ及びディスクアレイ再構築方法を提供することにある。
本発明の1つの観点によれば、少なくとも2台のディスクドライブから構成される冗長性を持つディスクアレイを制御するアレイコントローラが提供される。このアレイコントローラは、上記少なくとも2台のディスクドライブにデータがライト済みのアドレスのうちの最大のアドレスを保持する最大アドレス保持手段と、上記少なくとも2台のディスクドライブのうちの1台に障害が発生したために上記ディスクアレイを再構築する場合に、残りの少なくとも1台のディスクドライブの先頭アドレスから上記最大アドレス保持手段に保持されている最大アドレスまでの第1の領域のデータに基づき、上記障害が発生したディスクドライブに代えて用いられる新たなディスクドライブの当該第1の領域に対応する第2の領域に、当該障害が発生したディスクドライブのデータを復元するディスクアレイ再構築手段とを備えることを特徴とする。
このような構成のアレイコントローラにおいて、ディスクアレイを構成する少なくとも2台のディスクドライブのうちの1台に障害が発生したために当該ディスクアレイを再構築する場合、残りの少なくとも1台のディスクドライブのデータを用いて、障害が発生したディスクドライブに代えて用いられる新たなディスクドライブに、当該障害が発生したディスクドライブのデータが復元される。この際、上記構成のアレイコントローラでは、上記残りの少なくとも1台のディスクドライブの全領域のデータではなくて、先頭アドレスから上記最大アドレス保持手段に保持されているアドレス(即ち既にデータがライトされているアドレスのうちの最大のアドレス)までの第1の領域(つまりデータライト済みとして管理される領域)のデータを用いて、上記新たなディスクドライブの当該第1の領域に対応する第2の領域に、障害が発生したディスクドライブのデータが復元される。このように上記構成のアレイコントローラにおいては、データライト済みとして管理される連続するディスク領域だけが再構築されるため、再構築の時間を十分に短縮できる。しかも、上記残りの少なくとも1台のディスクドライブの先頭アドレスから上記最大アドレスまでの第1の領域のデータに対するアクセスはシーケンシャルに行えることから、ディスクアクセス効率も向上する。
ここで、最大アドレス保持手段に正しい最大アドレスを保持するためには、ホストからのライトコマンドに応じてディスクアレイを構成する少なくとも2台のディスクドライブのうちの少なくとも1台のディスクドライブにデータがライトされた際に、そのデータがライトされたアドレスが上記最大アドレス保持手段に保持されている最大アドレスを越えているかを最大アドレス判定手段にて判定し、データがライトされたアドレスが当該最大アドレスを越えている場合に、当該最大アドレスを上記データがライトされたアドレスに最大アドレス更新手段が更新する構成とすれば良い。
また、上記最大アドレス保持手段に保持される最大アドレスとして、予め定められた単位で丸められたアドレスを用いるならば、当該最大アドレス保持手段に保持される最大アドレスが更新される頻度を低減することができる。ここでは、データがライトされたアドレスを上記予め定められた単位で丸めることにより得られる丸め後のライトアドレスが、上記最大アドレス保持手段に保持されている最大アドレスを越えているかを最大アドレス判定手段にて判定し、丸め後のライトアドレスが当該最大アドレスを越えている場合に、当該最大アドレスを上記丸め後のライトアドレスに最大アドレス更新手段が更新する構成とすれば良い。
本発明によれば、ディスクアレイを構成する少なくとも2台のディスクドライブのうちの1台に障害が発生したために当該ディスクアレイを再構築する場合、残りの少なくとも1台のディスクドライブの全領域のデータではなくて、先頭アドレスから既にデータがライトされているアドレスのうちの最大のアドレスまでの領域のデータを用いて、障害が発生したディスクドライブに代えて用いられる新たなディスクドライブに、障害が発生したディスクドライブのデータが復元される構成とすることにより、再構築の時間を十分に短縮できる。しかも、上記先頭アドレスから上記最大アドレスまでの領域のデータに対するアクセスはシーケンシャルに行えることから、ディスクアクセス効率も向上できる。
以下、本発明の一実施形態につき図面を参照して説明する。
図1は本発明の一実施形態に係るコンピュータシステムの構成を示すブロック図である。図1のコンピュータシステムは、各種アプリケーションを実行するホスト(ホストコンピュータ)10と、このホスト10の外部記憶装置として用いられるディスクアレイ20と、アレイコントローラ(以下、RAIDコントローラと称する)30とから構成される。
図1は本発明の一実施形態に係るコンピュータシステムの構成を示すブロック図である。図1のコンピュータシステムは、各種アプリケーションを実行するホスト(ホストコンピュータ)10と、このホスト10の外部記憶装置として用いられるディスクアレイ20と、アレイコントローラ(以下、RAIDコントローラと称する)30とから構成される。
ディスクアレイ20は、例えば2台のハードディスクドライブ(以下、HDDと称する)21-0,21-1から構成されるRAIDである。HDD21-0,21-1は、説明を簡略化するために同一記憶容量であり、最大の論理ブロックアドレスLBAはFFFFh(末尾のhは16進表現であることを示す)であるものとする。HDD21-0,21-1の記憶領域(ディスク領域)内には、RAIDコントローラ30が利用可能な専用のリザーブ領域210-0,210-1が予め確保されている。ここでは、リザーブ領域210-0,210-1は、HDD21-0,21-1内の相対位置が同一の最終領域側(LBA=FFFFhの側)に確保されている。リザーブ領域210-0,210-1内の一部の領域は、後述する有効LBAeを記憶するための有効LBA領域211-0,211-1として用いられる。
本実施形態におけるディスクアレイ20は、RAIDコントローラ30の制御により、RAID1のディスクアレイ、いわゆるミラーリングディスクアレイとして機能する。RAID1のディスクアレイ20では、ホスト10からは、当該ディスクアレイ20を構成するHDD21-0,HDD21-1のうちの一方のHDDだけが認識でき、他方のHDDは当該一方のHDDの複製を保持するHDDとして用いられる。このホスト10から認識可能なHDDをマスタ側HDDと呼び、マスタ側HDDの複製を保持するHDDをバックアップ側HDDと称する。
RAIDコントローラ30はディスクアレイ20を制御する。この例のように、ディスクアレイ20をRAID1として機能させる場合、RAIDコントローラ30はホスト10から要求されたデータをHDD21-0,HDD21-1のうちの一方のHDD(マスタ側HDD)に書き込む制御を行うと共に、その書き込み先と相対位置が同一の他方のHDD(バックアップ側HDD)の領域に当該データの複製を書き込む制御を行う。
RAIDコントローラ30は、リビルド制御部31と、ライト制御部32と、RAM33とを備えている。RAM33の記憶領域の一部は、最大論理ブロックアドレス領域(以下、有効LBA領域と称する)331として用いられる。有効LBA領域331は、ディスクアレイ20のHDD21-0,21-1に既にデータ(ブロックデータ)がライトされている論理ブロックアドレスLBAのうち最大の論理ブロックアドレスLBAe(以下、有効LBAeと称する)を記憶するのに用いられる。
リビルド制御部31は、ディスクアレイ20の再構築、つまりリビルド(Rebuild)を制御する。リビルド制御部31は、コピー部311と、リビルド完了判定部312とを含む。コピー部311は、ディスクアレイ20を構成するHDD21-0,21-1のうちの正常なHDD(以下、ソース側HDDと称する)のデータを、障害が発生したHDDと交換して用いられる新たなHDD(以下、ターゲット側HDDと称する)に例えばブロック単位で順次コピーする。リビルド完了判定部312は、コピー部311によるブロック単位のコピーが、有効LBA領域331に記憶されている有効LBAeにより指定されるブロックまで完了したかを判定する。ここでは、ブロック単位のコピーが有効LBAeにより指定されるブロックまで完了した場合に、リビルド(ディスクアレイ20の再構築)の完了が判定される。
ライト制御部32は、ホスト10からのライトコマンドに従ってディスクアレイ20内のHDD21-0及び21-1にデータをライトするための制御を行う。ライト制御部32は、有効LBA判定部321と、有効LBA更新部322とを含む。有効LBA判定部321は、ホスト10からのライトコマンドによって指定される論理ブロックアドレスLBAwが有効LBA領域331に記憶されている有効LBAeより大きいかを判定する。有効LBA更新部322は、有効LBA判定部321によってLBAwがLBAeより大きいと判定された場合に、有効LBA領域331,211-0,211-1に記憶されている有効LBAeを当該LBAwに更新する。
次に、図1に示したコンピュータシステムの動作について、ホスト10からRAIDコントローラ30に対し、論理ブロックアドレスLBAwで指定されるHDDのブロックにデータをライトすることを指示するライトコマンドが発行された場合の動作を例に図2のフローチャートを参照して説明する。ここでは、HDD21-0がマスタ側HDDとして用いられ、HDD21-1がバックアップ側HDDとして用いられるものとする。また、図1のコンピュータシステムの起動時には、HDD21-0の有効LBA領域211-0またはHDD21-1の有効LBA領域211-1に記憶(保存)されている有効LBAeが、RAM33内の有効LBA領域331にコピーされるものとする。また、図1のコンピュータシステムが初めて起動される場合、有効LBA領域211-0,211-1には有効LBAeとして初期値0(0000h)が初期設定されるものとする。
まず、RAIDコントローラ30内のライト制御部32は、ホスト10からのライトコマンドに従い、LBAwで指定されるマスタ側HDD21-0のブロックに当該コマンドで指定されたデータをライトする(ステップS1)。このステップS1において、ライト制御部32は、LBAwで指定されるバックアップ側HDD21-1のブロックにも上記ライトコマンドで指定されたデータをライトする。つまりライト制御部32は、LBAwで指定されるHDD21-0及び21-1のブロックに、ライトコマンドで指定されたデータをライトする。
ライト制御部32内の有効LBA判定部321は、ホスト10からのライトコマンドに従うデータライトが実行されると、データがライトされたブロックの論理ブロックアドレスLBAwをRAM33内の有効LBA領域331に記憶されている有効LBAeと比較する(ステップS2)。もし、LBAwの方がLBAeより大きいならば、有効LBA判定部321は有効LBA更新部322に制御を渡す。すると有効LBA更新部322は、RAM33に確保されている有効LBA領域331並びにHDD21-0,21-1のリザーブ領域210-0,210-1に確保されている有効LBA領域211-0,211-1にそれぞれ記憶されているLBAeをLBAwに更新する(ステップS3)。このステップS3が実行されると、ライト制御部32はライトコマンドの実行を終了する。これに対し、LBAwの方がLBAeより大きくないならば、ライト制御部32ははそのままライトコマンドの実行を終了する。このようにして、有効LBA領域331,211-0,211-1には、HDD21-0,21-1に既にデータがライトされている論理ブロックアドレスLBAのうち、最大の論理ブロックアドレスLBAが有効LBAeとして記憶される。図4は、この有効LBAeと、HDD21-0,21-1において既にデータがライトされている有効データ領域A0,A1との関係を示す。
次に、図1に示したコンピュータシステムの動作について、ディスクアレイ20の再構築時の動作を例に図3のフローチャートを参照して説明する。ここでは、ディスクアレイ20を構成するHDD21-0,21-1のうちの例えばHDD21-1で障害が発生したために、当該HDD21-1が新たなHDDに交換されたものとする。また、説明の便宜上、障害が発生したHDD21-1に代えて用いられる新たなHDDの参照番号に、元のHDD21-1の参照番号を用いるものとする。この状態で、ホスト10からRAIDコントローラ30に対してディスクアレイ20の再構築が指示されると、RAIDコントローラ30内のリビルド制御部31が起動される。ここでのディスクアレイ20の再構築では、ソース側HDDは既存のHDD21-0であり、ターゲット側HDDは新たに用いられるHDD21-1である。
リビルド制御部31が起動されると、まず当該リビルド制御部31内のコピー部311が、論理ブロックアドレスLBAiを初期値0に設定する(ステップS11)。次にコピー部311は、LBAiで指定されるソース側HDD21-0の領域(ブロック)に格納されているデータをリードする(ステップS12)。そしてコピー部311は、ソース側HDD21-0からリードしたデータを、LBAiで指定されるターゲット側HDD21-1の領域(ブロック)にライトする(ステップS13)。これにより、LBAiで指定されるソース側HDD21-0のデータが、同じLBAiで指定されるターゲット側HDD21-1のブロックにコピーされたことになる。
次にコピー部311は、次のコピー元及びコピー先の論理ブロックアドレスを示すように、現在のLBAiを1だけインクリメントして、リビルド完了判定部312に制御を渡す(ステップS14)。すると、リビルド完了判定部312は、インクリメント後のLBAiをRAM33内の有効LBA領域331に記憶されている有効LBAeと比較する(ステップS15)。
もし、インクリメント後のLBAiがLBAeより小さいかLBAeに等しいならば、つまりLBAiがHDD21-0内の有効データ領域(第1の領域)A0に属しているならば、リビルド完了判定部312はディスクアレイ20の再構築(リビルド)の未完了(継続)を判定する。この場合、リビルド完了判定部312はコピー部311に対し、ソース側HDD21-0内の有効データ領域A0からターゲット側HDD21-1内の対応する領域(第2の領域)A1へのデータコピーの継続を要求する。するとコピー部311は、インクリメント後のLBAiを用いて、ソース側HDD21-0からターゲット側HDD21-1へのデータのコピーを継続する(ステップS12,S13)。
これに対し、インクリメント後のLBAiがLBAeより大きいならば、つまりLBAiがHDD21-0内の有効データ領域A0から外れているならば、リビルド完了判定部312はディスクアレイ20の再構築(リビルド)の完了を判定する。この場合、リビルド完了判定部312はコピー部311にディスクアレイ20の再構築の完了を通知する。これによりコピー部311は、ソース側HDD21-0からターゲット側HDD21-1へのデータのコピー処理を終了する。
このようにコピー部311は、図5に示すように、ソース側HDD21-0の全記憶領域のうちLBAi=0(0000h)からLBAi=LBAe(00FFh)までの有効データ領域A0のデータをブロック単位でシーケンシャルにリードして、そのリードデータをターゲット側HDD21-1の対応する領域A1にシーケンシャルにライトするデータコピーを実行する。これにより、HDD21-0の全領域のデータをHDD21-1にコピー(復元)する場合に比べて、コピー(リビルド)時間を十分に短縮できる。また、HDD21-0に既にデータ(ブロックデータ)がライトされている論理ブロックアドレスLBAのうち最大の論理ブロックアドレスのみを有効LBAeとして記憶するだけで良く、管理が簡単である。これに対し、有効なデータだけをHDD21-0からHDD21-1にコピー(復元)する方法では、HDD21-0,21-1に対する不連続なアクセスが多発するためディスクアクセス効率の低下を招く。しかも、有効なデータの管理は煩雑である。
なお、上述の説明では省略されているが、HDD21-0のリザーブ領域210-0のデータはHDD21-1のリザーブ領域210-1にコピーされる。このリザーブ領域210-0,210-0を、HDD21-0,21-1の先頭領域側、つまりLBA=0(0000h)の側に確保しても良い。
また、RAIDコントローラ30内に書き換え可能な不揮発性メモリを備えることが可能な場合、当該不揮発性メモリの一部の領域に、上記有効LABeを記憶するようにしても良い。この場合、リザーブ領域210-0,210-1内に必ずしも有効LBA領域211-0,211-1を確保する必要はない。
上記実施形態では、HDD21-0,21-1にライトされたデータ(ブロックデータ)の論理ブロックアドレスLBAのうち最大の論理ブロックアドレスが有効LBAeとして管理(記憶)される。しかし、論理ブロックアドレスを予め定められた単位(例えば10MB単位)で丸め、その丸め後の論理ブロックアドレスを用いて、有効LBAeに代わる有効LBAe’を管理するようにしても良い。この場合、書き込み論理ブロックアドレスLBAwに対応する丸め後の論理ブロックアドレスをLBAw’、丸め後の最大論理ブロックアドレスをLBAe’とすると、上記ステップS2に相当する処理では、LBAw’とLBAe’とを比較すれば良い。そして、LBAw’>LBAe’の場合だけ、LBAe’をLBAw’に更新する。このようにすると、最悪の場合には、丸めの単位だけ有効データ領域が広がる可能性があるが、LBAe’を更新する頻度を低減できる。
[変形例]
上記実施形態では、ディスクアレイ20が2台のHDD21-0,21-1から構成され、RAID1のディスクアレイ(つまりミラーリングディスクアレイ)として機能する場合を前提としている。しかし、ディスクアレイを構成するHDDの台数は2台を越えていても良く、RAIDレベルもRAID1でなくても良い。
上記実施形態では、ディスクアレイ20が2台のHDD21-0,21-1から構成され、RAID1のディスクアレイ(つまりミラーリングディスクアレイ)として機能する場合を前提としている。しかし、ディスクアレイを構成するHDDの台数は2台を越えていても良く、RAIDレベルもRAID1でなくても良い。
そこで、図1のディスクアレイ20に代えて図6に示すディスクアレイ200を用いた、上記実施形態の変形例について、図1を援用して説明する。ディスクアレイ200は、3台のHDD21-0,21-1,21-2から構成される。ここでは、ディスクアレイ200は、RAID5レベルで用いられるものとする。この場合、HDD21-0〜21-2は、いずれもデータ並びにパリティデータ(冗長データ)の格納用に用いられ、パリティデータは各HDD21-0〜21-2に分散して格納される。なお、ディスクアレイ200がRAID3レベルで用いられる場合には、HDD21-0〜21-2のうちの2台がデータ格納用(データディスク用)に、残りの1台がパリティデータ格納用(パリティディスク用)に割り当てられる。
HDD21-0〜21-2によって実現されるディスクアレイ20のディスク領域は、図6に示すようにストライプ単位に分割して管理される。ストライプは、HDD21-0〜21-2の相対位置が同一のブロック領域から構成される。ここでは、説明を簡略化するために、1ストライプを構成するHDD21-0〜21-2のブロックサイズが1ブロックであるものとする。この場合、1ストライプを構成するHDD21-0〜21-2の各ブロックのうち、2つのブロックにはデータD0,D1が、残りの1ブロックにはデータD0,D1のパリティデータPが格納される。ホスト10からのライトコマンドによってデータD0(またはD1)をデータD0’(またはD1’)に更新することが指示された場合、データD0(またはD1)がデータD0’(またはD1’)に更新されると共に、パリティデータPがデータD0’(またはD1’)とデータD1(またはD0)とのパリティデータP’に更新される。パリティデータP’の生成方法については、本発明に直接関係しないため省略する。
図1のコンピュータシステムにおいてディスクアレイ20に代えてディスクアレイ200を用いた場合でも、ホスト10からRAIDコントローラ30に対してライトコマンドが発行された際の有効LBAeの更新は、上記実施形態と同様に行われる。ディスクアレイ200内のHDD21-0〜21-2のいずれか1台に障害が発生した場合、残りの2台のHDDのデータから、障害が発生したHDDのデータまたはパリティデータがストライプ単位に復元可能である。なお、相対位置が同一の各HDD21-0〜21-2に属するブロック(ブロック群)をそれぞれストライプと呼び、相対位置が同一の各HDD21-0〜21-2に属するストライプの集合をストライプグループと呼ぶこともある。
図7は、図6に示したディスクアレイ200中のHDD21-2に障害が発生したために、当該障害発生HDD21-2が新たなHDD21-2(便宜的に障害発生HDDと同一参照番号を付してある)に交換された状態でディスクアレイ200を再構築する際のデータの復元処理を示す。ここでは、LBAiで指定されるHDD21-0及び21-1のブロックに格納されているデータD10及びD11をリードするためのデータリード70及び71がRAIDコントローラ30(に相当するRAIDコントローラ)によって行われる。次に、このデータリード70及び71でHDD21-0及び21-1からリードされたデータD10及びD11を排他的論理和(XOR)するための演算(EXOR演算)72が行われる。このEXOR演算72により生成されるデータD12を、対応するストライプが属するHDD21-2のブロックにライトするためのデータライト73が行われる。ここで、D10及びD11が共に非パリティデータであれば、D12はパリティデータである。また、D10及びD11の一方がパリティデータであれば、D12は非パリティデータである。以上の動作は、図7の例では、LBAi=0(0000h)からLBAi=LBAe(00FFh)までLBAiをインクリメントしながら繰り返し行われる。
このように、RAID5レベルで用いられるディスクアレイ200を再構築する場合、HDD21-2が交換された新たなHDDであるものとすると、HDD21-2には、他のHDD21-0及び21-1におけるLBAi=0(0000h)からLBAi=LBAe(00FFh)までの領域のデータからストライプ単位で復元されたデータがライトされる。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
10…ホスト、20,200…ディスクアレイ、21-0,21-1,21-2…HDD(ディスクドライブ)、30…RAIDコントローラ(アレイコントローラ)、31…リビルド制御部(ディスクアレイ再構築手段)、32…ライト制御部、33…RAM、210-0,210-1…リザーブ領域、211-0,211-1,331…有効LBA領域(最大アドレス保持手段)、311…コピー部(再構築用データリード手段、データ復元手段)、312…リビルド完了判定部(再構築完了判定手段)、321…有効LBA判定部(最大アドレス判定手段)、322…有効LBA更新部(最大アドレス更新手段)。
Claims (8)
- 少なくとも2台のディスクドライブから構成される冗長性を持つディスクアレイを制御するアレイコントローラにおいて、
前記少なくとも2台のディスクドライブに既にデータがライトされているアドレスのうちの最大のアドレスを保持する最大アドレス保持手段と、
前記少なくとも2台のディスクドライブのうちの1台に障害が発生したために前記ディスクアレイを再構築する場合に、残りの少なくとも1台のディスクドライブの先頭アドレスから前記最大アドレス保持手段に保持されている最大アドレスまでの第1の領域のデータに基づき、前記障害が発生したディスクドライブに代えて用いられる新たなディスクドライブの当該第1の領域に対応する第2の領域に、当該障害が発生したディスクドライブのデータを復元するディスクアレイ再構築手段と
を具備することを特徴とするアレイコントローラ。 - 前記ディスクアレイ再構築手段は、
前記少なくとも1台のディスクドライブの前記第1の領域からデータをリードする動作を、先頭アドレスから順にアドレスをインクリメントしながら繰り返す再構築用データリード手段と、
前記再構築用データリード手段によりリードされたデータをもとに前記新たなディスクドライブの同一アドレスに、前記障害が発生したディスクドライブの復元されたデータをライトするデータライト手段と
を含むことを特徴とする請求項1記載のアレイコントローラ。 - 前記ディスクアレイ再構築手段は、前記データリード手段によってインクリメントされたアドレスが前記最大アドレス保持手段に保持されている最大アドレスを越えたか否かにより、前記ディスクアレイの再構築の完了を判定する再構築完了判定手段を含むことを特徴とする請求項2記載のアレイコントローラ。
- 前記ディスクアレイを利用するホストからライト対象となる領域を指定するアドレスを含むライトコマンドが与えられた場合、前記少なくとも2台のディスクドライブのうち当該アドレスで指定される少なくとも1台のディスクドライブの領域に当該コマンドで指定されたデータをライトするライトコマンド実行手段と、
前記ライトコマンド実行手段によりデータがライトされたアドレスが前記最大アドレス保持手段に保持されている最大アドレスを越えているかを判定する最大アドレス判定手段と、
前記ライトコマンド実行手段によりデータがライトされたアドレスが前記最大アドレス保持手段に保持されている最大アドレスを越えている場合、当該最大アドレスを前記ライトされたアドレスに更新する最大アドレス更新手段と
を更に具備することを特徴とする請求項1記載のアレイコントローラ。 - 前記最大アドレス保持手段に保持されている最大アドレスは予め定められた単位で丸められていることを特徴とする請求項1記載のアレイコントローラ。
- 前記ディスクアレイを利用するホストからライト対象となる領域を指定するアドレスを含むライトコマンドが与えられた場合、前記少なくとも2台のディスクドライブのうち当該アドレスで指定される少なくとも1台のディスクドライブの領域に当該コマンドで指定されたデータをライトするライトコマンド実行手段と、
前記ライトコマンド実行手段によりデータがライトされたアドレスを前記予め定められた単位で丸めることにより得られる丸め後のライトアドレスが、前記最大アドレス保持手段に保持されている最大アドレスを越えているかを判定する最大アドレス判定手段と、
前記丸め後のライトアドレスが前記最大アドレス保持手段に保持されている最大アドレスを越えている場合、当該最大アドレスを前記丸め後のライトアドレスに更新する最大アドレス更新手段と
を更に具備することを特徴とする請求項5記載のアレイコントローラ。 - 少なくとも2台のディスクドライブから構成される冗長性を持つディスクアレイを制御するアレイコントローラにより前記ディスクアレイを再構築するためのディスクアレイ再構築方法であって、
前記少なくとも2台のディスクドライブのうちの1台に障害が発生したために前記ディスクアレイを再構築する場合に、残りの少なくとも1台のディスクドライブのデータを、先頭アドレスから順にアドレスをインクリメントしながら順次リードするステップと、
前記少なくとも1台のディスクドライブからリードされたデータをもとに、前記新たなディスクドライブの同一アドレスに、前記障害が発生したディスクドライブの復元されたデータをライトするステップと、
前記インクリメント後のアドレスが、前記少なくとも2台のディスクドライブに既にデータがライトされているアドレスのうちの最大のアドレスを越えているか否かにより、前記ディスクアレイの再構築の完了を判定するステップと
を具備することを特徴とするディスクアレイ再構築方法。 - 前記ディスクアレイを利用するホストからライト対象となる領域を指定するアドレスを含むライトコマンドが与えられた場合、前記少なくとも2台のディスクドライブのうち当該アドレスで指定される少なくとも1台のディスクドライブの領域に当該コマンドで指定されたデータをライトするステップと、
データがライトされたアドレスが、前記少なくとも1台のディスクドライブに既にデータがライトされているアドレスのうちの現時点において最大のアドレスを越えている場合に、当該最大アドレスを前記ライトされたアドレスに更新するステップと
を更に具備することを特徴とする請求項7記載のディスクアレイ再構築方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003339981A JP2005107839A (ja) | 2003-09-30 | 2003-09-30 | アレイコントローラ及びディスクアレイ再構築方法 |
US10/945,261 US7293193B2 (en) | 2003-09-30 | 2004-09-21 | Array controller for disk array, and method for rebuilding disk array |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003339981A JP2005107839A (ja) | 2003-09-30 | 2003-09-30 | アレイコントローラ及びディスクアレイ再構築方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005107839A true JP2005107839A (ja) | 2005-04-21 |
Family
ID=34535021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003339981A Pending JP2005107839A (ja) | 2003-09-30 | 2003-09-30 | アレイコントローラ及びディスクアレイ再構築方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7293193B2 (ja) |
JP (1) | JP2005107839A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011028520A (ja) * | 2009-07-24 | 2011-02-10 | Nec Corp | ディスクアレイ装置及び物理ディスクの復元方法 |
JP2012504794A (ja) * | 2009-02-26 | 2012-02-23 | 株式会社日立製作所 | Raidグループを備えたストレージシステム |
JP2012168674A (ja) * | 2011-02-14 | 2012-09-06 | Nec Computertechno Ltd | ミラーリング復旧装置、および、ミラーリング復旧方法 |
US9235472B2 (en) | 2013-04-05 | 2016-01-12 | Kabushiki Kaisha Toshiba | Drive array apparatus, controller, data storage apparatus and method for rebuilding drive array |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060236149A1 (en) * | 2005-04-14 | 2006-10-19 | Dell Products L.P. | System and method for rebuilding a storage disk |
JP4579998B2 (ja) * | 2008-03-31 | 2010-11-10 | 富士通株式会社 | リストア管理プログラム、リストア管理方法およびリストア管理装置 |
US8006128B2 (en) * | 2008-07-31 | 2011-08-23 | Datadirect Networks, Inc. | Prioritized rebuilding of a storage device |
JP2010186285A (ja) * | 2009-02-12 | 2010-08-26 | Fujitsu Ltd | ミラーリング制御装置、ストレージ装置、ミラーリング制御方法 |
US9779044B2 (en) * | 2014-11-25 | 2017-10-03 | Nxp Usa, Inc. | Access extent monitoring for data transfer reduction |
TWI692767B (zh) * | 2017-12-18 | 2020-05-01 | 鈺創科技股份有限公司 | 具有錯誤更正功能的記憶體及相關記憶體系統 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5208813A (en) * | 1990-10-23 | 1993-05-04 | Array Technology Corporation | On-line reconstruction of a failed redundant array system |
JPH08221217A (ja) | 1995-02-17 | 1996-08-30 | Hitachi Ltd | ディスクアレイサブシステムのデータ再構築方法 |
US6098119A (en) * | 1998-01-21 | 2000-08-01 | Mylex Corporation | Apparatus and method that automatically scans for and configures previously non-configured disk drives in accordance with a particular raid level based on the needed raid level |
WO2001040925A1 (fr) * | 1999-12-02 | 2001-06-07 | Fujitsu Limited | Batterie de disques et procede d'extension de sa capacite |
US6598174B1 (en) * | 2000-04-26 | 2003-07-22 | Dell Products L.P. | Method and apparatus for storage unit replacement in non-redundant array |
US6636984B1 (en) * | 2000-06-15 | 2003-10-21 | International Business Machines Corporation | System and method for recovering data from mirror drives following system crash |
-
2003
- 2003-09-30 JP JP2003339981A patent/JP2005107839A/ja active Pending
-
2004
- 2004-09-21 US US10/945,261 patent/US7293193B2/en not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012504794A (ja) * | 2009-02-26 | 2012-02-23 | 株式会社日立製作所 | Raidグループを備えたストレージシステム |
JP2011028520A (ja) * | 2009-07-24 | 2011-02-10 | Nec Corp | ディスクアレイ装置及び物理ディスクの復元方法 |
US8433949B2 (en) | 2009-07-24 | 2013-04-30 | Nec Corporation | Disk array apparatus and physical disk restoration method |
JP2012168674A (ja) * | 2011-02-14 | 2012-09-06 | Nec Computertechno Ltd | ミラーリング復旧装置、および、ミラーリング復旧方法 |
US9235472B2 (en) | 2013-04-05 | 2016-01-12 | Kabushiki Kaisha Toshiba | Drive array apparatus, controller, data storage apparatus and method for rebuilding drive array |
Also Published As
Publication number | Publication date |
---|---|
US20050097389A1 (en) | 2005-05-05 |
US7293193B2 (en) | 2007-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7721143B2 (en) | Method for reducing rebuild time on a RAID device | |
US7958303B2 (en) | Flexible data storage system | |
JP5768587B2 (ja) | ストレージシステム、ストレージ制御装置およびストレージ制御方法 | |
US8117409B2 (en) | Method and apparatus for backup and restore in a dynamic chunk allocation storage system | |
JP3682256B2 (ja) | ディスクアレイ装置及び同装置におけるパリティ処理方法 | |
JP2008204041A (ja) | ストレージ装置及びデータ配置制御方法 | |
JPH0675708A (ja) | アレイ型記録装置 | |
JPH05505264A (ja) | データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶 | |
JP2010009442A (ja) | ディスクアレイシステム、ディスク制御装置及びその再構築処理方法 | |
JP5331018B2 (ja) | ソリッド・ステート・ドライブ装置およびミラー構成再構成方法 | |
JP2005107839A (ja) | アレイコントローラ及びディスクアレイ再構築方法 | |
JP2005099995A (ja) | 磁気ディスク装置のディスク共有方法及びシステム | |
JP2010026812A (ja) | 磁気ディスク装置 | |
JP2010267037A (ja) | ディスクアレイ装置 | |
JP4248164B2 (ja) | ディスクアレイのエラー回復方法、ディスクアレイ制御装置及びディスクアレイ装置 | |
JP2001043031A (ja) | 分散パリティ生成機能を備えたディスクアレイ制御装置 | |
JP4143040B2 (ja) | ディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラム | |
CN108228090B (zh) | 硬盘阵列及其重建方法 | |
JP4794357B2 (ja) | Raid装置におけるraidレベル変換方法およびraid装置 | |
JP2005107676A (ja) | アレイコントローラ及びディスクアレイ再構築方法 | |
JPH07306758A (ja) | ディスクアレイ装置及びその制御方法 | |
JP2000047832A (ja) | ディスクアレイ装置、及びそのデータ制御方法 | |
JP3798773B2 (ja) | ディスク制御装置及び冗長化論理ディスクドライブの一貫性回復方法 | |
JP5598124B2 (ja) | データ記録再生装置、データ記録方法、及び、データ記録プログラム | |
JP2005004733A (ja) | ストレージ・システムにおいて書込みエラーを検出するための配置構成および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060418 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090106 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090721 |