(57)【特許請求の範囲】
【請求項１】
パリティブロックを含むブロックの集合を記憶する第１の論理ディスクを構成する第１の物理ディスク群と、
前記第１の物理ディスク群に属する物理ディスクと同数の物理ディスクを含む第２の物理ディスク群と、
故障した物理ディスクの代わりに用いられるホットスペアと、
正常稼働時に、第２の物理ディスク群の未使用領域を用いて第２の論理ディスクを構築する論理ディスク構築手段と、
正常稼働時に、前記第１の論理ディスクに記憶されたブロックの集合を前記第２の論理ディスクにコピーし、前記第１の物理ディスク群中のいずれかの物理ディスクが故障したときに、故障した物理ディスクから前記第２の論理ディスクにコピーされたブロックを、ホットスペアにコピーするコピー制御手段とを備える
ことを特徴とするディスクアレイシステム。
【請求項２】
第１の物理ディスク群中のいずれかの物理ディスクが故障したことによりコピー制御手段がホットスペアへのブロックのコピーを行っているときに、故障した物理ディスクが記憶していたブロックのリードアクセス要求があった場合、当該物理ディスクから第２の論理ディスクにコピーされたブロックを第２の論理ディスクから読み込んで出力するデータ出力手段を備える
請求項１に記載のディスクアレイシステム。
【請求項３】
コピー制御手段は、第２の論理ディスクの容量が第１の論理ディスクの容量より小さい場合に、前記第１の論理ディスクに記憶されているブロックの一部を前記第２の論理ディスクにコピーし、
第１の物理ディスク群中のいずれかの物理ディスクが故障したときに、故障した物理ディスクから前記第２の論理ディスクにコピーされていなかったブロックを、第１の物理ディスク群中の故障していない物理ディスクに記憶されたブロックから修復し、当該ブロックをホットスペアに記憶させるデータ修復コピー手段を備える
請求項１または請求項２に記載のディスクアレイシステム。
【請求項４】
第１の物理ディスク群中のいずれかの物理ディスクが故障したことによりコピー制御手段がホットスペアへのブロックのコピーを行っているときに、故障した物理ディスクに記憶されていたブロックであって前記第２の論理ディスクにコピーされていなかったブロックのリードアクセス要求があった場合に、第１の物理ディスク群中の故障していない物理ディスクに記憶されたブロックから前記リードアクセス要求のあったブロックを修復して出力するデータ修復出力手段を備える
請求項３に記載のディスクアレイシステム。
【請求項５】
パリティブロックを含むブロックの集合を記憶する第１の論理ディスクを構成する第１の物理ディスク群と、前記第１の物理ディスク群に属する物理ディスクと同数の物理ディスクを含む第２の物理ディスク群と、故障した物理ディスクの代わりに用いられるホットスペアとを備えるディスクアレイシステムに適用されるディスクアレイ制御方法であって、
正常稼働時に、第２の物理ディスク群の未使用領域を用いて第２の論理ディスクを構築し、
正常稼働時に、前記第１の論理ディスクに記憶されたブロックの集合を前記第２の論理ディスクにコピーし、前記第１の物理ディスク群中のいずれかの物理ディスクが故障したときに、故障した物理ディスクから前記第２の論理ディスクにコピーされたブロックを、ホットスペアにコピーする
ことを特徴とするディスクアレイ制御方法。
【請求項６】
ホットスペアへのブロックのコピーを行っているときに、故障した物理ディスクが記憶していたブロックのリードアクセス要求があった場合、当該物理ディスクから第２の論理ディスクにコピーされたブロックを第２の論理ディスクから読み込んで出力する
請求項５に記載のディスクアレイ制御方法。
【請求項７】
パリティブロックを含むブロックの集合を記憶する第１の論理ディスクを構成する第１の物理ディスク群と、前記第１の物理ディスク群に属する物理ディスクと同数の物理ディスクを含む第２の物理ディスク群と、故障した物理ディスクの代わりに用いられるホットスペアとを備えるコンピュータに搭載されるディスクアレイ制御プログラムであって、
前記コンピュータに、
正常稼働時に、第２の物理ディスク群の未使用領域を用いて第２の論理ディスクを構築する論理ディスク構築処理、および、
正常稼働時に、前記第１の論理ディスクに記憶されたブロックの集合を前記第２の論理ディスクにコピーし、前記第１の物理ディスク群中のいずれかの物理ディスクが故障したときに、故障した物理ディスクから前記第２の論理ディスクにコピーされたブロックを、ホットスペアにコピーするコピー制御処理
を実行させるためのディスクアレイ制御プログラム。
【請求項８】
前記コンピュータに、
コピー制御処理でホットスペアへのブロックのコピーを行っているときに、故障した物理ディスクが記憶していたブロックのリードアクセス要求があった場合、当該物理ディスクから第２の論理ディスクにコピーされたブロックを第２の論理ディスクから読み込んで出力するデータ出力処理を実行させる
請求項７に記載のディスクアレイ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホットスペアを備えるディスクアレイシステム、および、ホットスペアを備えるディスクアレイシステムに適用されるディスクアレイ制御方法、ディスクアレイ制御プログラムに関する。
【背景技術】
【０００２】
近年、ＩＴ（Information Technology）への依存度が増すにつれて電子データの重要性はますます増大している。そして、ＩＴ環境の発展によりコンピュータ・システムにおける記憶装置の役割はますます大きくなってきており、記憶装置に対する高信頼性化、高性能化などの要求も高まる一方である。このように大容量化が進む中で、ひとたび大容量ディスクが障害を発生した場合、ホットスペアにホットコピーを行うことが一般化されつつある。
【０００３】
図６は、本発明に関連するディスクアレイシステムの例を示す説明図である。図６に示すディスクアレイシステムは、Ｉ／Ｏ制御部５２と、ディスク制御部５３と、ＲＡＩＤ制御部５４と、物理ディスク＃０〜＃Ｎ−１と、ホットスペア（以下、ホットスペアディスクと記す。）＃Ｎとを備える。
【０００４】
Ｉ／Ｏ制御部５２は、物理ディスク＃０〜＃Ｎ−１やホットスペアディスク＃Ｎに記憶されているブロックにアクセスするホスト（上位装置）とのインタフェースである。ディスク制御部５３は、物理ディスク＃０〜＃Ｎ−１やホットスペアディスク＃Ｎに対するブロックの読み書きを行う。ここで、ブロックは、データのブロックである。
【０００５】
複数の物理ディスク（本例では、物理ディスク＃１〜＃３）から論理ディスク６５が構成され、論理ディスク６５にはブロックが記憶される。ブロックにはパリティブロックが含まれ、組をなすブロックのうちの一つが読み取り不能となっても、その組の中の他のブロックから、読み取り不能となったブロックを修復することができる。このように、故障した物理ディスクが１つであり、その物理ディスクに記憶されていたブロックを修復できる状態を、冗長内故障と呼ぶ。
【０００６】
ＲＡＩＤ制御部５４は、論理ディスク６５を構成する物理ディスクのうちの一つが故障した場合、故障した物理ディスクに記憶されていたブロックを修復し、ホットスペアディスクにコピーする。例えば、物理ディスク＃１が故障した場合、ＲＡＩＤ制御部５４は、ディスク制御部５３を介して、物理ディスク＃０，＃３に記憶されているブロック６，８からブロック７を修復し、修復したブロック７をホットスペアディスク＃Ｎにホットコピーする。なお、ホットコピーとは、ブロックをホットスペアディスクにコピーすることである。
【０００７】
また、ＲＡＩＤ制御部５４は、上記のホットコピー中に、故障した物理ディスク内のブロックへのリードアクセス要求があった場合、故障した物理ディスクに記憶されていたブロックを他の物理ディスク内のブロックから修復し、ホストに返す。例えば、物理ディスク＃１が故障してホットコピーを行っているときにブロック７へのリードアクセス要求があった場合には、上記のようにブロック６，８からブロック７を修復し、Ｉ／Ｏ制御部５２を介してそのブロック７をホストに返す。
【０００８】
図６に示すディスクアレイシステムのように、故障した物理ディスクを含む論理ディスク内のブロックからデータを修復してホットスペアディスクに復元させる構成が特許文献１に記載されている。
【０００９】
また、特許文献２には、未使用領域を有するハードディスクを含む複数のハードディスクによって論理ユニットを構成し、ある論理ユニット内のハードディスクが故障した場合には、その論理ユニット内の故障していないハードディスクと、他の論理ユニット内の未使用領域とを使用して論理ユニットを構成するように、ハードディスクの構成管理テーブルを更新するディスクアレイ制御装置が記載されている。
【００１０】
また、特許文献３には、二つのメモリディスクをグループとするランクを複数形成し、エラーが多発したランクについては、業務未使用領域に複写するディスクアレイ装置が記載されている。特許文献３に記載された装置では、ランクを構成するメモリディスクの一方が故障すると、故障していない方のメモリディスクとホットスペアディスクによりランクを形成する。
【００１１】
【特許文献１】特開２００３−１０８３１６号公報（段落０００６）
【特許文献２】特開２００１−３４４２４号公報（段落００２８）
【特許文献３】特開２００４−１７１３７３号公報（段落００１４，００４３，００４４，００４７，００４９、図４、図５）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
図６に示すディスクアレイシステムは、ホットコピー中に、論理ディスク６５を構成する他の物理ディスク＃０，＃２のいずれかが故障すると、故障した物理ディスクに記憶されていたブロックの修復ができなくなる。この状態を、冗長破壊と呼ぶ。
【００１３】
図６に示す構成において、論理ディスク６５を構成する一つの物理ディスクが故障した状態（冗長内破壊）では、論理ディスク６５を構成する他の物理ディスクに記憶されたブロックから故障した物理ディスクのブロックを修復して、ホットスペアディスクにホットコピーしていくことができる。しかし、ブロックの修復を行いながら、修復したブロックをホットコピーしていくため、ホットコピーの完了までに時間がかかってしまう。ホットスペアディスクへのホットコピーが完了までに、さらに論理ディスク６５を構成する他の物理ディスクが故障すると冗長破壊状態となり、データの修復が行えず、修復したデータをホットスペアディスクにホットコピーする処理が進められなくなってしまう。
【００１４】
そこで、本発明は、物理ディスクが故障したときにホットスペアにブロックをコピーする時間を短縮し、冗長破壊状態になる可能性を少なくすることができるディスクアレイシステム、ディスクアレイ制御方法およびディスクアレイ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明のディスクアレイシステムは、パリティブロックを含むブロックの集合を記憶する第１の論理ディスクを構成する第１の物理ディスク群と、前記第１の物理ディスク群に属する物理ディスクと同数の物理ディスクを含む第２の物理ディスク群と、故障した物理ディスクの代わりに用いられるホットスペアと、正常稼働時に、第２の物理ディスク群の未使用領域を用いて第２の論理ディスクを構築する論理ディスク構築手段と、正常稼働時に、前記第１の論理ディスクに記憶されたブロックの集合を前記第２の論理ディスクにコピーし、前記第１の物理ディスク群中のいずれかの物理ディスクが故障したときに、故障した物理ディスクから前記第２の論理ディスクにコピーされたブロックを、ホットスペアにコピーするコピー制御手段とを備えることを特徴とする。
【００１６】
また、本発明のディスクアレイ制御方法は、パリティブロックを含むブロックの集合を記憶する第１の論理ディスクを構成する第１の物理ディスク群と、前記第１の物理ディスク群に属する物理ディスクと同数の物理ディスクを含む第２の物理ディスク群と、故障した物理ディスクの代わりに用いられるホットスペアとを備えるディスクアレイシステムに適用されるディスクアレイ制御方法であって、正常稼働時に、第２の物理ディスク群の未使用領域を用いて第２の論理ディスクを構築し、正常稼働時に、前記第１の論理ディスクに記憶されたブロックの集合を前記第２の論理ディスクにコピーし、前記第１の物理ディスク群中のいずれかの物理ディスクが故障したときに、故障した物理ディスクから前記第２の論理ディスクにコピーされたブロックを、ホットスペアにコピーすることを特徴とする。
【００１７】
また、本発明のディスクアレイ制御プログラムは、パリティブロックを含むブロックの集合を記憶する第１の論理ディスクを構成する第１の物理ディスク群と、前記第１の物理ディスク群に属する物理ディスクと同数の物理ディスクを含む第２の物理ディスク群と、故障した物理ディスクの代わりに用いられるホットスペアとを備えるコンピュータに搭載されるディスクアレイ制御プログラムであって、前記コンピュータに、正常稼働時に、第２の物理ディスク群の未使用領域を用いて第２の論理ディスクを構築する論理ディスク構築処理、および、正常稼働時に、前記第１の論理ディスクに記憶されたブロックの集合を前記第２の論理ディスクにコピーし、前記第１の物理ディスク群中のいずれかの物理ディスクが故障したときに、故障した物理ディスクから前記第２の論理ディスクにコピーされたブロックを、ホットスペアにコピーするコピー制御処理を実行させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、物理ディスクが故障したときにホットスペアにブロックをコピーする時間を短縮し、冗長破壊状態になる可能性を少なくすることができる
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態を図面を参照して説明する。
図１は、本発明のディスクアレイシステムの例を示すブロック図である。本発明のディスクアレイシステム１は、複数の物理ディスク＃０〜＃Ｎ−１と、いずれかの物理ディスクが故障したときにその物理ディスクの代わりに用いられる物理ディスクであるホットスペア（以下、ホットスペアディスクと記す。）＃Ｎとを備える。さらに、ディスクアレイシステム１は、Ｉ／Ｏ制御部２と、ディスク制御部３と、ＲＡＩＤ制御部４と、ホットコピー制御部５とを備える。
【００２０】
Ｉ／Ｏ制御部２は、物理ディスク＃０〜＃Ｎ−１やホットスペアディスク＃Ｎに記憶されているブロック（データのブロック）にアクセスするホスト（上位装置）とのインタフェースである。
【００２１】
ディスク制御部３は、物理ディスク＃０〜＃Ｎ−１やホットスペアディスク＃Ｎに対するブロックの読み書きを行う。また、ディスク制御部３は、各物理ディスクの故障を検知する。
【００２２】
物理ディスク＃０〜＃Ｎ−１のうちの一部の物理ディスク群（第１の物理ディスク群）は、ＲＡＩＤ構成の論理ディスク（第１の論理ディスク）１５を構成する。ここでは、物理ディスク＃０〜＃２が第１の物理ディスク群であり、物理ディスク＃０〜＃２が論理ディスク１５を構成している場合を例に説明する。物理ディスク＃０〜＃２によって構成される論理ディスク１５は、その物理ディスク＃０〜＃２にブロックの集合を分散させて記憶する。また、論理ディスク１５は、物理ディスク＃０〜＃２の数（ここでは３つ）のブロック毎に、そのブロックを各物理ディスク＃０〜＃２に分散させて記憶する。そして、そのブロックの中には１つのパリティブロックが含まれる。例えば、図１に示す例では、ブロック６〜８のうちの一つがパリティブロックである。パリティブロックは、他のブロック（ここでは他の２つのブロック）から作成され、他のブロックの対応するビットの中に１が奇数個存在するか偶数個存在するかを示す。
【００２３】
また、物理ディスク＃０〜＃Ｎ−１の中には、第１の物理ディスク群以外に、第１の物理ディスク群に属する物理ディスク＃０〜＃２と同数の物理ディスクを含む第２の物理ディスク群も存在する。本例では、３つの物理ディスク＃Ｎ−３，＃Ｎ−２，＃Ｎ−１が第２の物理ディスク群であるとする。
【００２４】
物理ディスク＃Ｎ−３，＃Ｎ−２，＃Ｎ−１は、ブロックを記憶するために用いられるが、ＲＡＩＤ制御部４は、物理ディスク＃Ｎ−３，＃Ｎ−２，＃Ｎ−１の未使用領域に、論理ディスク（第２の論理ディスク）を構築する。例えば、図１に示す例では、物理ディスク＃Ｎ−３，＃Ｎ−２，＃Ｎ−１により、ブロック１２〜１４を記憶するＲＡＩＤ構成の論理ディスク１６が構成されているが、論理ディスク１６として使用されていない未使用領域も存在する。ＲＡＩＤ制御部４は、この未使用領域に第２の論理ディスク（図１において図示せず。）を構築する。未使用領域に作成されるこの論理ディスクを、以下、ホットコピー用論理ディスクと記す。また、ＲＡＩＤ制御部５は、ホットコピー用論理ディスクを、正常稼働時（ディスクアレイシステム１に故障が発生していないとき）に構築する。
【００２５】
ホットコピー制御部５は、正常稼働時に、論理ディスク１５に記憶されている各ブロックの複製をホットコピー用論理ディスクに記憶させる。例えば、ホットコピー制御部５は、論理ディスク１５を構成する物理ディスク＃０，＃１，＃２と、ホットコピー用論理ディスクを構成する物理ディスク＃Ｎ−３，＃Ｎ−２，＃Ｎ−１とを一対一に対応付け、論理ディスク１５を構成する物理ディスク＃０，＃１，＃２に記憶されているブロックの複製をホットコピー用論理ディスクに記憶させてもよい。図２は、ホットコピー制御部５によるコピー動作を示す説明図である。本例では、ホットコピー制御部５は、論理ディスク１５を構成する物理ディスク＃０，＃１，＃２に記憶されている各ブロック６〜８を、それぞれ、物理ディスク＃Ｎ−３，＃Ｎ−２，＃Ｎ−１にコピーする。図２に示すホットコピー用論理ディスク１７は、図１に示す物理ディスク＃Ｎ−３，＃Ｎ−２，＃Ｎ−１の未使用領域によって構築された論理ディスクである。
【００２６】
ホットコピー制御部５は、論理ディスク１からホットコピー用論理ディスク１７へのブロックのコピーを、ディスク制御部３を介して行う。すなわち、ディスク制御部３に論理ディスク１からブロック６，７，８を読み込ませ、ディスク制御部３にそのブロックをホットコピー用論理ディスク１７へ書き込ませる。
【００２７】
また、ホットコピー制御部５は、論理ディスク１５を構成する物理ディスク＃０，＃１，＃２のいずれかの物理ディスクが故障したときに、その故障した物理ディスクからホットコピー用論理ディスク１７にコピーしていたブロックを、ホットスペアディスク＃Ｎにコピー（ホットコピー）する。例えば、図２に示す例で、物理ディスク＃１が故障したとする。すると、ホットコピー制御部５は、その物理ディスク＃１からホットコピー用論理ディスク１７を構成する物理ディスク＃Ｎ−２にコピーされていたブロック７をホットスペアディスク＃Ｎにホットコピーする。ブロック７は、物理ディスク＃０，＃２に記憶されているブロック６，８から修復可能であるが、ホットコピー制御部５は、そのような修復計算を行わずに、物理ディスク＃Ｎ−２にコピーされていたブロック７を直接ホットスペアディスク＃Ｎにホットコピーする。修復計算を行わず、物理ディスク＃Ｎ−２に記憶されているブロックをホットスペアディスク＃Ｎにコピーすればよいので、ホットコピー完了までの時間を短縮することができる。
【００２８】
ホットコピー制御部５は、このようなホットコピー用論理ディスク１７からホットスペアディスク＃Ｎへのブロックのコピーを、ディスク制御部３を介して行う。すなわち、ディスク制御部３にホットコピー用論理ディスク１７からブロックを読み込ませ、ディスク制御部３にそのブロックをホットスペアディスク＃Ｎに書き込ませる。
【００２９】
また、Ｉ／Ｏ制御部２は、論理ディスク１５を構成する物理ディスクの故障に起因して、上記のようにホットコピー用論理ディスク１７からホットスペアディスク＃Ｎへのホットコピーが行われている間に、その故障した物理ディスクに記憶されていたブロックへのリードアクセス要求をホストから届いた場合、その故障した物理ディスクからホットコピー用論理ディスク１７にコピーされているブロックを読み込み、直接ホストに出力する。例えば、図２に示す例で、物理ディスク＃１が故障し、物理ディスク＃Ｎ−２からホットスペアディスク＃Ｎにブロック７がホットコピーされているとする。このコピーの最中にリードアクセス要求が届いた場合、Ｉ／Ｏ制御部２は、物理ディスク＃Ｎ−２からブロック７をリードして、直接ホストに返す。ブロック７は、物理ディスク＃０，＃２に記憶されているブロック６，８から修復可能であるが、そのような修復計算を行わずに、Ｉ／Ｏ制御部２は、物理ディスク＃Ｎ−２にコピーされていたブロック７を直接ホストに返す。修復計算を行わなくてよいので、リードアクセス要求に応じてブロックをホストに返す時間を短縮することができる。すなわち、冗長内故障時のリード性能を向上させることができる。
【００３０】
また、上記のようにホットコピー用論理ディスク１７からホットスペアディスク＃Ｎへのホットコピーを行っている最中に、さらに、論理ディスク１５を構成する他の物理ディスク＃０，＃２のいずれかに故障が生じたとする。この場合、論理ディスク１５では二つの物理ディスクが破壊されているので冗長破壊となるが、論理ディスク１５に記憶されていた各ブロック６〜８は、ホットコピー用論理ディスク１７を構成する物理ディスク＃Ｎ−３，＃Ｎ−２，＃Ｎ−１に残存しているので、データの損失は生じない。
【００３１】
また、図１では、１組のブロック６，７，８を例にして説明したが、論理ディスク１５には、ブロック６，７，８の組と同様に、パリティブロックを含むブロックの組が複数記憶されていてもよい。
【００３２】
また、物理ディスク＃Ｎ−３，＃Ｎ−２，＃Ｎ−１の未使用領域（図１参照）の容量が少なく、その未使用領域から構成されるホットコピー用論理ディスクの容量が、論理ディスク１５の容量より小さいこともある。この場合、ホットコピー制御部５は、論理ディスク１５に記憶されているブロックの一部をホットコピー用論理ディスク１７（図２参照）にコピーする。すなわち、論理ディスク１５のブロックのうちホットコピー用論理ディスク１７にコピー可能な分だけ、ブロックをホットコピー用論理ディスク１７にコピーする。例えば、論理ディスク１５に記憶されているブロックを、ホットコピー用論理ディスク１７にコピーしていき、ホットコピー用論理ディスク１７の容量がなくなってコピーできなくなった時点でコピーを停止する。
【００３３】
その後、論理ディスク１５を構成する物理ブロックのいずれかが故障した場合、ホットコピー制御部５は、すでに説明したように、その故障した物理ディスクからホットコピー用論理ディスク１７にコピーしていたブロックを、ホットスペアディスク＃Ｎにホットコピーする。ただし、ここでは、論理ディスク１５に記憶されているブロックが全てホットコピー用論理ディスク１７にコピーされているわけはない。ＲＡＩＤ制御部４は、故障した物理ディスクからホットコピー用論理ディスク１７にコピーできなかったブロックについては、論理ディスク１５を構成する物理ディスクのうちの故障していない物理ディスクに記憶されているブロックから修復し、修復したブロックをホットスペアディスク＃Ｎに記憶させる。
【００３４】
また、論理ディスク１５を構成する物理ディスクの故障に起因して、上記のようにホットコピー用論理ディスク１７からホットスペアディスク＃Ｎへのホットコピーが行われている間に、その故障した物理ディスクに記憶されていたブロックであってホットコピー用論理ディスク１７にコピーされていなかったブロックへのリードアクセス要求がホストから届いた場合、ＲＡＩＤ制御部４は、そのブロックを、論理ディスク１５を構成する物理ディスクのうちの故障していない物理ディスクに記憶されているブロックから修復する。そして、修復したブロックをＩ／Ｏ制御部２を介してホストに返す。故障した物理ディスクに記憶されていたブロックであってホットコピー用論理ディスク１７にコピーされていたブロックへのリードアクセス要求が届いた場合、Ｉ／Ｏ制御部２は、ホットコピー用論理ディスク１７を構成する物理ディスクからそのブロックを読み出して直接ホストに返せばよい。
【００３５】
Ｉ／Ｏ制御部２、ディスク制御部３、ＲＡＩＤ制御部４およびホットコピー制御部５は、プログラム（ディスクアレイ制御プログラム）に従って動作するＣＰＵによって実現されてもよい。
【００３６】
次に、動作について説明する。
以下、図１に示す構成において、物理ディスク＃０〜＃２によって構成される論理ブロック１５がブロック６〜８の他にさらに一組のブロックを備えている場合を例にする。このブロックをブロック９〜１１（図１において図示せず。後述の図３、図４参照。）とする。ブロック６〜８のいずれか一つはパリティブロックであり、ブロック６〜８のいずれか一つが物理ディスクの故障により失われても、残りの２つから修復計算により修復可能である。同様に、他のブロック９〜１１に関しても、ブロック９〜１１のいずれか一つはパリティブロックであり、ブロック９〜１１のいずれか一つが物理ディスクの故障により失われても、残りの２つから修復計算により修復可能である。
【００３７】
まず、正常稼働時に、ＲＡＩＤ制御部５は、ディスク制御部３を介して、物理ディスク＃Ｎ−３，＃Ｎ−２，＃Ｎ−１の論理ディスク１６以外の未使用領域に、その未使用領域の上限の容量でホットコピー用論理ディスクを構築する。例えば、ＲＡＩＤ制御部５は、ディスク制御部３を介して物理ディスク＃Ｎ−３，＃Ｎ−２，＃Ｎ−１にアクセスし、未使用領域を特定し、物理ディスク＃Ｎ−３，＃Ｎ−２，＃Ｎ−１の未使用領域を一つの論理ディスクとすることを定める。
【００３８】
ＲＡＩＤ制御部５は、ホットコピー用論理ディスクを構築すると、そのホットコピー用論理ディスクの容量が、物理ディスク＃０〜＃２から構成される論理ディスク１５の容量以上であるか否かを判定する。ホットコピー用論理ディスクの容量が論理ディスク１５の容量以上である場合、ＲＡＩＤ制御部５は、その旨をホットコピー制御部５に伝達する。また、ホットコピー用論理ディスクの容量が論理ディスク１５の容量より小さい場合、ＲＡＩＤ制御部５は、その旨をホットコピー制御部５に伝達する。
【００３９】
図３は、ホットコピー用論理ディスクの容量が論理ディスク１５の容量以上である場合の動作を示す説明図である。ホットコピー用論理ディスクの容量が論理ディスク１５の容量以上である場合、ホットコピー制御部５は、以下のように動作する。
【００４０】
ホットコピー制御部５は、正常稼働時に、ディスク制御部３を介して、論理ディスク１５に記憶されているブロックをホットコピー用論理ディスク１７にコピーする。図３における実線の矢印は、このコピー処理を表している。本例では、ホットコピー制御部５は、図３に示すように、論理ディスクを構成する物理ディスク＃０に記憶されているブロック６，９を、ホットコピー用論理ディスク１７を構成する物理ディスク＃Ｎ−３にコピーする。同様に、ホットコピー制御部５は、物理ディスク＃１に記憶されているブロック７，１０を物理ディスク＃Ｎ−２にコピーし、物理ディスク＃２に記憶されているブロック８，１１を物理ディスク＃Ｎ−１にコピーする。ホットコピー用論理ディスク１７の容量は論理ディスク１５の容量以上であるので、ホットコピー制御部５は、論理ディスク１５に記憶されている全ブロックをホットコピー用論理ディスク１７にコピーする。
【００４１】
その後、論理ディスク１５を構成する物理ブロックのいずれか（ここでは、物理ブロック＃１とする。）が故障したとする。すると、ディスク制御部３は、物理ブロック＃１に故障の故障を検知し、ＲＡＩＤ制御部４およびホットコピー制御部５に伝達する。
【００４２】
ホットコピー制御部５は、物理ブロック＃１の故障が伝達されると、故障した物理ディスクからホットコピー用論理ディスク１７にコピーしていたブロックを、ディスク制御部３を介してホットスペアディスク＃Ｎにホットコピーする。本例では、ホットコピー制御部５は、ホットコピー用論理ディスク１７を構成する物理ディスク＃Ｎ−２にコピーされたブロック７，１０を、ディスク制御部３を介してホットスペアディスク＃Ｎにホットコピーする。図３における破線の矢印は、このホットコピー処理を表している。
【００４３】
このホットコピー処理では、物理ディスク＃０，＃２に記憶されたブロック６，８からブロック７を修復したり、ブロック９，１１からブロック１０を修復する修復計算は行わず、物理ディスク＃Ｎ−２に記憶されているブロック７，１０を直接ホットスペアディスク＃Ｎにホットコピーする。ブロックの修復計算は行わないので、ホットコピー完了までの時間を短縮することができる。
【００４４】
また、物理ディスク＃１の故障によって上記のホットコピーが行われている間に、Ｉ／Ｏ制御部２が、その故障した物理ディスク＃１に記憶されていたブロックへのリードアクセス要求をホストから受信したとする。この場合、Ｉ／Ｏ制御部２は、その物理ディスク＃１から物理ブロック＃Ｎ−２にコピーされたブロックを物理ブロック＃Ｎ−２から読み込み、直接ホストに転送する。本例では、故障した物理ブロック＃１のブロック７，１０に対するリードアクセス要求が届いた場合、Ｉ／Ｏ制御部２は、物理ディスク＃Ｎ−２からブロック７，１０を読み込み、ホストに返す。
【００４５】
この場合にも、物理ディスク＃０，＃２に記憶されたブロック６，８からブロック７を修復したり、ブロック９，１１からブロック１０を修復したりする修復計算は行わず、物理ディスク＃Ｎ−２に記憶されているブロック７，１０を直接ホストに返すので、リードアクセス要求に対する応答時間を短縮することができる。
【００４６】
また、物理ディスク＃１の故障によって上記のホットコピーが行われている間に、さらに、論理ディスク１を構成する他の物理ディスクが故障したとする。ディスク制御部３は、新たに生じた物理ディスクの故障を検知し、ＲＡＩＤ制御部４およびホットコピー制御部５に伝達する。このとき、論理ディスク１５では、複数の物理ディスクが故障しているので、冗長破壊状態となっている。
【００４７】
このとき、Ｉ／Ｏ制御部２は、論理ディスク１５に記憶される各ブロック６，７，８，９，１０，１１に対するリードアクセス要求をホストから受信すると、ホットコピー用論理ディスク１７にコピーされたブロックを読み込んで、ホストに転送する。正常時に、論理ディスク１５が記憶する各ブロックをホットコピー用論理ディスク１７にコピーしていて、上記のように論理ディスク１５が冗長破壊状態になったときは、Ｉ／Ｏ制御部２が、ホットコピー用論理ディスク１７に記憶させているブロックをホストに返す。従って、データの二重化による高信頼性を確保することができる。
【００４８】
以上のように、正常時に、論理ディスク１５に記憶されているブロックをホットコピー用論理ディスク１７に記憶させ、論理ディスク１５を構成する物理ブロックが故障した場合には、ホットコピー用論理ディスク１７に記憶させたブロックをホットスペアディスク＃Ｎにホットコピーする。そのため、故障により失われたブロックを修復する計算を行わなくてよいので、ホットスペアディスク＃Ｎへのホットコピーの時間を短縮できる。また、ホットコピー完了前に論理ディスク１５を構成する他の物理ディスクが故障すると冗長破壊となるが、ホットスペアディスク＃Ｎへのホットコピー完了後に論理ディスク１５を構成する他の物理ディスクが故障した場合には、ホットスペアディスク＃Ｎを利用できるので冗長内破壊で済む。従って、ホットコピー時間を短縮できることにより、冗長破壊状態となる可能性を少なくすることができる。
【００４９】
また、正常時に、論理ディスク１５に記憶されているブロックをホットコピー用論理ディスク１７に記憶させていることにより、データを二重化させていることになる。よって、論理ディスク１５が冗長破壊状態となっても、ホットコピー用論理ディスク１７にブロックが記憶されているので、高信頼性を確保することができる。
【００５０】
また、物理ディスクの故障によってホットスペアディスク＃Ｎへのホットコピーを行っているときに、故障した物理ディスクに記憶されていたブロックへのリードアクセス要求があった場合、ホットコピー用論理ディスク１７に記憶させたブロックを出力する。従って、故障により失われたブロックを修復する必要がないので、リードアクセス要求への応答時間を短縮して、冗長内故障時のリード性能を向上させることができる。
【００５１】
次に、ホットコピー用論理ディスクの容量が論理ディスク１５の容量より小さい場合の動作を説明する。図４は、この場合の動作を示す説明図である。
【００５２】
ホットコピー制御部５は、正常稼働時に、ディスク制御部３を介して、論理ディスク１５に記憶されているブロックをホットコピー用論理ディスク１７にコピーする。ホットコピー制御部５は、パリティブロックを含むブロックの組毎に論理ディスク１５からホットコピー用論理ディスク１７へのコピーを行う。ただし、ホットコピー用論理ディスクの容量が論理ディスク１５より小さいので、ホットコピー用論理ディスク１７にコピー可能な容量がなくなったら、残りのブロックは、ホットコピー用論理ディスク１７にコピーしない。図４における実線の矢印は、このコピー処理を表している。本例では、ホットコピー制御部５は、図４に示すように、論理ディスクを構成する物理ディスク＃０に記憶されているブロック６を、ホットコピー用論理ディスク１７を構成する物理ディスク＃Ｎ−３にコピーする。同様に、ホットコピー制御部５は、物理ディスク＃１に記憶されているブロック７を物理ディスク＃Ｎ−２にコピーし、物理ディスク＃２に記憶されているブロック８を物理ディスク＃Ｎ−１にコピーする。ブロック６，７，８をコピーした結果、ホットコピー用論理ディスク１７にさらにコピーを行うことができなくなると、ホットコピー制御部５は、残りのブロック９，１０，１１はホットコピー用論理ディスク１７にコピーしない。このように、ホットコピー制御部５は、論理ディスク１５に記憶されたブロックの一部をホットコピー用論理ディスク１７にコピーする。
【００５３】
その後、論理ディスク１５を構成する物理ブロックのいずれか（ここでは、物理ブロック＃１とする。）が故障したとする。すると、ディスク制御部３は、物理ブロック＃１に故障の故障を検知し、ＲＡＩＤ制御部４およびホットコピー制御部５に伝達する。
【００５４】
ホットコピー制御部５は、物理ブロック＃１の故障が伝達されると、故障した物理ディスクからホットコピー用論理ディスク１７にコピーしていたブロックを、ディスク制御部３を介してホットスペアディスク＃Ｎにホットコピーする。本例では、ホットコピー制御部５は、ホットコピー用論理ディスク１７を構成する物理ディスク＃Ｎ−２にコピーされたブロック７を、ディスク制御部３を介してホットスペアディスク＃Ｎにホットコピーする。図４における破線の矢印は、このホットコピー処理を表している。
【００５５】
また、このとき、ＲＡＩＤ制御部４は、故障した物理ディスク＃１からホットコピー用論理ディスク１７にコピーされていなかったブロック１０を、論理ディスク１５を構成する物理ディスクのうち故障していない物理ディスク＃０，＃２に記憶されたブロック９，１１から修復する。ＲＡＩＤ制御部４は、ディスク制御部３を介して、物理ディスク＃０，＃２からブロック９，１１を読み込み、ブロック９，１１からブロック１０を修復する。この修復計算は、例えば、以下のように行えばよい。すなわち、ＲＡＩＤ制御部４は、修復対象のブロックがパリティブロックでなければ、失われたブロックを構成するビット毎に、パリティブロックではない残りのブロックの対応ビットにおける“１”の数と、故障により失われたブロックにおける“１”の数の和が、パリティブロックが示す偶数または奇数と合致するように、故障により失われたブロックのビットを特定すればよい。例えば、パリティブロックにおいて“１”の数が奇数と表されていて、もう一つのブロックのビットが“０”であるならば、故障で失われたブロックのビットは“１”であると判定する。この処理をビット毎に行い、ブロックを修復すればよい。また、修復対象のブロックがパリティブロックの場合、ブロックを構成する各ビット毎に他のブロックの“１”のビットをカウントし、偶数か奇数かに応じて“１”または“０”を定めることによって、パリティブロックを修復すればよい。ＲＡＩＤ制御部４は、ブロック９，１１を用いて修復計算によりブロック１０を修復すると、そのブロック１０をホットスペアディスク＃Ｎにホットコピーさせる。図４に示す二点差線は、このホットコピー処理を表している。
【００５６】
正常稼働時にホットコピー用論理ディスク１７にコピーされたなかったブロックについては修復計算により修復するが、正常稼働時にホットコピー用論理ディスク１７にコピーされたブロックについては修復計算を行わず、ホットコピー用論理ディスク１７から直接ホットスペアディスク＃Ｎにホットコピーする。従って、ブロックの修復計算量を少なくして、ホットコピー完了までの時間を短縮することができる。
【００５７】
また、物理ディスク＃１の故障によって上記のホットコピーが行われている間に、Ｉ／Ｏ制御部２が、その物理ディスク＃１からホットコピー用論理ディスク１７にコピーされたブロックへのリードアクセス要求をホストから受信したとする。この場合、Ｉ／Ｏ制御部２は、そのブロック（物理ディスク＃１からホットコピー用論理ディスク１７にコピーされたブロック）を、ホットコピー用論理ディスク１７を構成する物理ディスクから読み込み、ホストに転送する。例えば、Ｉ／Ｏ制御部２がブロック７へのリードアクセス要求を受信したとすると、Ｉ／Ｏ制御部２は、物理ディスク＃Ｎ−２からブロック７を読み込んで直接ホストに返す。
【００５８】
また、リードアクセス要求が、故障した物理ディスク＃１からホットコピー用論理ディスク１７にコピーされていなかったブロックに対するものである場合、ＲＡＩＤ制御部４が、論理ディスク１５を構成する物理ディスクのうち故障していない物理ディスク＃０，＃２に記憶されたブロックを読み込み、そのブロックから、リードアクセス要求のあったブロックを修復する。そして、ＲＡＩＤ制御部４は、修復したブロックをＩ／Ｏ制御部２からホストに転送する。例えば、ブロック１０へのリードアクセス要求があった場合、ＲＡＩＤ制御部４は、物理ディスク＃０，＃２からブロック９，１１を読み込み、ブロック９，１１からブロック１０を修復し、Ｉ／Ｏ制御部２からホストに転送する。
【００５９】
正常稼働時にホットコピー用論理ディスク１７にコピーされたなかったブロックについては修復計算により修復する、正常稼働時にホットコピー用論理ディスク１７にコピーされたブロックについては修復計算を行わず、ホットコピー用論理ディスク１７に記憶されているブロックをホストに返す。従って、リードアクセス要求に対する応答時間を短縮することができる。
【００６０】
また、物理ディスク＃１の故障によって上記のホットコピーが行われている間に、さらに、論理ディスク１を構成する他の物理ディスクが故障したとする。ディスク制御部３は、新たに生じた物理ディスクの故障を検知し、ＲＡＩＤ制御部４およびホットコピー制御部５に伝達する。このとき、論理ディスク１５では、複数の物理ディスクが故障しているので、冗長破壊状態となっている。
【００６１】
このとき、Ｉ／Ｏ制御部２は、論理ディスク１５に記憶される各ブロック６，７，８に対するリードアクセス要求をホストから受信すると、ホットコピー用論理ディスク１７にコピーされたブロックを読み込んで、ホストに転送する。このように、正常時に論理ディスク１５からホットコピー用論理ディスク１７にコピーしていたブロックについては、二重化されているので高信頼性を確保することができる。
【００６２】
次に、本発明の概要を説明する。図５は、本発明の概要を示すブロック図である。本発明のディスクアレイシステムは、第１の物理ディスク群９１と、第２の物理ディスク群９２と、ホットスペア９３と、論理ディスク構築手段９４と、コピー制御手段９５とを備える。
【００６３】
第１の物理ディスク群９１（例えば、物理ディスク＃０〜＃２）は、パリティブロックを含むブロックの集合を記憶する第１の論理ディスク（例えば、論理ディスク１５）を構成する。
【００６４】
第２の物理ディスク群９２（例えば、物理ディスク＃Ｎ−３，＃Ｎ−２，＃Ｎ−１）は、第１の物理ディスク群９１に属する物理ディスクと同数の物理ディスクを含む。
【００６５】
ホットスペア９３（例えば、ホットスペアディスク＃Ｎ）は、故障した物理ディスクの代わりに用いられる。
【００６６】
論理ディスク構築手段９４（例えば、ＲＡＩＤ制御部４）は、正常稼働時に、第２の物理ディスク群９２の未使用領域を用いて第２の論理ディスク（例えば、ホットコピー用論理ディスク１７）を構築する。
【００６７】
コピー制御手段９５（例えば、ホットコピー制御部５）は、正常稼働時に、第１の論理ディスクに記憶されたブロックの集合を第２の論理ディスクにコピーし、第１の物理ディスク群９１中のいずれかの物理ディスクが故障したときに、故障した物理ディスクから第２の論理ディスクにコピーされたブロックを、ホットスペア９３にコピーする。
【００６８】
また、上記の実施形態には、第１の物理ディスク群９１中のいずれかの物理ディスクが故障したことによりコピー制御手段９５がホットスペア９３へのブロックのコピーを行っているときに、故障した物理ディスクが記憶していたブロックのリードアクセス要求があった場合、その物理ディスクから第２の論理ディスクにコピーされたブロックを第２の論理ディスクから読み込んで出力するデータ出力手段（例えば、Ｉ／Ｏ制御部２）を備える構成が開示されている。
【００６９】
また、上記の実施形態には、コピー制御手段９５が、第２の論理ディスクの容量が第１の論理ディスクの容量より小さい場合に、第１の論理ディスクに記憶されているブロックの一部を第２の論理ディスクにコピーし、第１の物理ディスク群９１中のいずれかの物理ディスクが故障したときに、故障した物理ディスクから第２の論理ディスクにコピーされていなかったブロックを、第１の物理ディスク群中の故障していない物理ディスクに記憶されたブロックから修復し、そのブロックをホットスペアに記憶させるデータ修復コピー手段（例えば、ＲＡＩＤ制御部４）を備える構成が開示されている。
【００７０】
また、上記の実施形態には、第１の物理ディスク群９１中のいずれかの物理ディスクが故障したことによりコピー制御手段９５がホットスペア９３へのブロックのコピーを行っているときに、故障した物理ディスクに記憶されていたブロックであって第２の論理ディスクにコピーされていなかったブロックのリードアクセス要求があった場合に、第１の物理ディスク群９１中の故障していない物理ディスクに記憶されたブロックからそのリードアクセス要求のあったブロックを修復して出力するデータ修復出力手段（例えば、ＲＡＩＤ制御部４）を備える構成が開示されている。
【産業上の利用可能性】
【００７１】
本発明は、ホットスペアディスクを備えるディスクアレイシステムに好適に適用可能である。
【図面の簡単な説明】
【００７２】
【図１】本発明のディスクアレイシステムの例を示すブロック図である。
【図２】ホットコピー制御部によるコピー動作を示す説明図である。
【図３】ホットコピー用論理ディスクの容量が論理ディスクの容量以上である場合の動作を示す説明図である。
【図４】ホットコピー用論理ディスクの容量が論理ディスクの容量より小さい場合の動作を示す説明図である。
【図５】本発明の概要を示すブロック図である。
【図６】本発明に関連するディスクアレイシステムの例を示す説明図である。
【符号の説明】
【００７３】
１  ディスクアレイシステム
２  Ｉ／Ｏ制御部
３  ディスク制御部
４  ＲＡＩＤ制御部
５  ホットコピー制御部
１５  論理ディスク
１７  ホットコピー用論理ディスク
＃０〜＃Ｎ−１  物理ディスク
＃Ｎ  ホットスペアディスク
【図１】
0004831093.tif 000002
【図２】
0004831093.tif 000003
【図３】
0004831093.tif 000004
【図４】
0004831093.tif 000005
【図５】
0004831093.tif 000006
【図６】
0004831093.tif 000007