(57)【要約】【課題】  スペアディスクを設けることなく、冗長性を失ったＲＡＩＤグループの再冗長化を図る。【解決手段】  各々が複数のディスクからなる複数のＲＡＩＤグループ００〜０ｎを含み、これら複数のＲＡＩＤグループ００〜０ｎの各々が多重の冗長性を有するよう構成されたディスクアレイ装置１００において、ＲＡＩＤグループ制御部１０２により、冗長性が失われたＲＡＩＤグループが検出された場合に、多重の冗長性を有するＲＡＩＤグループの構成ディスクを、冗長性が失われたＲＡＩＤグループに組み込むよう構成する。【選択図】      図１
2008217624.tif 000002
【特許請求の範囲】
【請求項１】
各々が複数のディスクからなる複数のディスクグループを含み、これら複数のディスクグループの各々が多重の冗長性を有するよう構成されたディスクアレイ装置であって、
冗長性が失われたディスクグループが検出された場合に、前記多重の冗長性を有するディスクグループの構成ディスクを、前記冗長性が失われたディスクグループに組み込む手段を含むことを特徴とするディスクアレイ装置。
【請求項２】
前記ディスクグループは、ＲＡＩＤ（Redundant Array of Disks）であることを特徴とする請求項１記載のディスクアレイ装置。
【請求項３】
各々が複数のディスクからなる複数のディスクグループを含み、これら複数のディスクグループの各々が多重の冗長性を有するよう構成されたディスクアレイ装置の制御方法であって、
冗長性が失われたディスクグループが検出された場合に、前記多重の冗長性を有するディスクグループの構成ディスクを、前記冗長性が失われたディスクグループに組み込むステップを含むことを特徴とする制御方法。
【請求項４】
前記ディスクグループは、ＲＡＩＤ（Redundant Array of Disks）であることを特徴とする請求項３記載の制御方法。
【請求項５】
各々が複数のディスクからなる複数のディスクグループを含み、これら複数のディスクグループの各々が多重の冗長性を有するよう構成されたディスクアレイ装置の制御方法をコンピュータに実行させるためのプログラムであって、
冗長性が失われたディスクグループが検出された場合に、前記多重の冗長性を有するディスクグループの構成ディスクを、前記冗長性が失われたディスクグループに組み込む処理を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はディスクアレイ装置及びその制御方法に関し、特にディスク障害時にもデータ保護が可能なＲＡＩＤグループを複数構成しているディスクアレイ装置及びその制御方法に関するものである。
【背景技術】
【０００２】
情報処理システムにおいて、データの重要性が高まりつつあるなか、一般的に、高信頼性を要するディスクアレイ装置では、ＲＡＩＤ（Redundant Array of Inexpensive Disks）技術を利用することにより、耐障害性を高めているが、近年では、同一ＲＡＩＤグループ内に２台のパリティディスクを備えることで、多重のディスク障害が発生しても、データの保護が可能なＲＡＩＤレベルが広まってきている。
【０００３】
すなわち、高信頼性を必要とするディスクアレイ装置では、ＲＡＩＤ技術を用いて、記憶すべきデータと障害回復のための冗長データとを、複数のディスクに分散することによって、耐障害性を高めるようになっている。耐障害性を高めるＲＡＩＤレベルとしては、ＲＡＩＤ１からＲＡＩＤ５までのレベルが一般的であるが、近年では、同一ＲＡＩＤグループ内に２台のパリティデスクを設けておくことにより、２台のディスク障害が発生しても、データの保護が可能なＲＡＩＤレベル（例えば、ＲＡＩＤ６）が広まってきている。
【０００４】
また、ＲＡＩＤグループを構成するディスク障害が発生して冗長性が失われた場合に、再度、ＲＡＩＤグループを冗長化構成とするために、ＲＡＩＤ技術に加えて、スペアディスクを設ける技術が一般的に用いられている。この様なディスクアレイ装置では、ＲＡＩＤグループを構成するディスクに障害が発生した場合、ＲＡＩＤグループを構成する他のディスクからデータを復旧して、スペアディスクへコピーすることにより、ＲＡＩＤグループを縮退した状態から冗長性を保った状態へ復旧するようになっている。
【０００５】
但し、スペアディスクは、ＲＡＩＤグループを構成するディスクに障害が発生した場合には、利用されることはないので、正常時には、ＲＡＩＤグループの冗長性や使用効率に対しては、全く寄与しないものである。
【０００６】
ここで、特許文献１を参照すると、優先度の高いＲＡＩＤグループを構成するディスクに障害が発生して冗長性が失われた場合、優先度がより低い他のＲＡＩＤグループの冗長性を失わせて、優先度が高いＲＡＩＤグループを再冗長化する技術が開示されている。
【０００７】
すなわち、ミラーリングのペアを構成するディスクの１台に障害が発生して冗長性が失われた場合、ミラーリングのペア単位に予め設定されている優先順位に従って、より優先順位が低いミラーリングのペアを解消して、解消したミラーリングのペアの構成ディスクを利用し、新たにミラーリングのペアを構成することにより、再冗長化するようになっている。
【０００８】
また、関連する技術として特許文献２，３などが挙げられる。
【特許文献１】特開平９−２６９８７１号公報
【特許文献２】特開平９−１４６７１７号公報
【特許文献３】特開２００５−２９３５４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記の特許文献１の技術では、冗長性が失われたＲＡＩＤグループを再冗長化するために、他のＲＡＩＤグループの冗長性を犠牲にするようになっているので、必ずいずれかのＲＡＩＤグループの冗長性が失われてしまい、次回のディスク障害でデータ損失につながるという欠点がある。また、特許文献２，３の技術でも、ディスク使用量によっては、全てのＲＡＩＤグループの冗長性を維持することはできないので、同様に次回のディスク障害でデータ損失を招来することになる。この様な欠点を解消するためには、スペアディスクの設定が必要になるという課題が残ることになる。
【００１０】
本発明の目的は、スペアディスクを設けることなく、冗長性を失ったＲＡＩＤグループの再冗長化を可能としたディスクアレイ装置及びその制御方法並びにプログラムを提供することである。
【課題を解決するための手段】
【００１１】
本発明によるディスクアレイ装置は、各々が複数のディスクからなる複数のディスクグループを含み、これら複数のディスクグループの各々が多重の冗長性を有するよう構成されたディスクアレイ装置であって、冗長性が失われたディスクグループが検出された場合に、前記多重の冗長性を有するディスクグループの構成ディスクを、前記冗長性が失われたディスクグループに組み込む手段を含むことを特徴とする。
【００１２】
本発明による制御方法は、各々が複数のディスクからなる複数のディスクグループを含み、これら複数のディスクグループの各々が多重の冗長性を有するよう構成されたディスクアレイ装置の制御方法であって、冗長性が失われたディスクグループが検出された場合に、前記多重の冗長性を有するディスクグループの構成ディスクを、前記冗長性が失われたディスクグループに組み込むステップを含むことを特徴とする。
【００１３】
本発明によるプログラムは、各々が複数のディスクからなる複数のディスクグループを含み、これら複数のディスクグループの各々が多重の冗長性を有するよう構成されたディスクアレイ装置の制御方法をコンピュータに実行させるためのプログラムであって、冗長性が失われたディスクグループが検出された場合に、前記多重の冗長性を有するディスクグループの構成ディスクを、前記冗長性が失われたディスクグループに組み込む処理を含むことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、冗長性を失ったＲＡＩＤグループを再冗長化するために、多重の冗長性を備えている他のＲＡＩＤグループの構成ディスクを利用するようにしたので、スペアディスクを設けることなく、冗長性を失ったＲＡＩＤグループの再冗長化が可能になると共に、冗長性を失ったＲＡＩＤグループを再冗長化しても、全てのＲＡＩＤグループの冗長性を維持することができるという効果がある。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明の実施例について図面を参照しつつ詳細に説明する。図１は本発明の実施例によるディスクアレイ装置の概略ブロック図である。図１を参照すると、本実施例のディスクアレイ装置１００は、ＲＡＩＤ６により構成されたＲＡＩＤグループ００，０１，…，０ｎ（ｎは２以上の整数）を備えている。ＲＡＩＤグループ００はディスク０００，００１，…，００５を有し、ＲＡＩＤグループ０１はディスク０１０，０１１，…，０１５を有し、ＲＡＩＤグループ０ｎはディスク０ｎ０，０ｎ１，…，０ｎ５を有している。
【００１６】
なお、これらＲＡＩＤグループは多重の冗長性を有するものとし、そのような構成であれば、ＲＡＩＤ６以外の構成を用いても良いものである。
【００１７】
また、ディスクアレイ装置１００は、これらＲＡＩＤグループ００，０１，…，０ｎの構成ディスクの障害発生の有無を監視するディスク障害検出部１０１と、このディスク障害検出部１０１からの通知を基に、ＲＡＩＤグループ００，０１，…，０ｎと、各ＲＡＩＤグループの構成ディスクと、各ＲＡＩＤグループの冗長性とを管理するＲＡＩＤグループ制御部１０２とを有している。
【００１８】
このＲＡＩＤグループ制御部１０２の冗長性管理とは、多重の冗長性を備えているＲＡＩＤグループの構成ディスクのうち１台を切り離して、冗長性がなくなったＲＡＩＤグループに組み込む機能である。
【００１９】
また、ディスクアレイ装置１００は、ＲＡＩＤグループ制御部１０２がＲＡＩＤグループ００，０１，…，０ｎの情報を管理するために利用するＲＡＩＤグループ管理テーブル１０３をも有している。このＲＡＩＤグループ管理テーブル１０３は、例えば、図５に示すように、各ＲＡＩＤグループ００，０１，…，０ｎを構成する各ディスクの稼動状態（正常／異常）及び各ＲＡＩＤグループ００，０１，…，０ｎの冗長ディスク数を格納している。
【００２０】
以上の構成のディスクアレイ装置１００の動作について以下に説明する。図２は本発明の実施例の動作を示すフローチャートであり、図３は、図２のフローチャートにおけるステップＳ３の動作の詳細を示すフローチャートである。いま、ある時刻ｔ１以前における各ディスクの稼動状態が図４に示すような状態であったとする。すなわち、ＲＡＩＤグループ００のディスク００４のみが障害で異常であり、他は全て正常であったとする。
【００２１】
このときのＲＡＩＤグループ管理テーブル１０３の内容は、図５のようになっている。この場合の冗長ディスク数は、ＲＡＩＤグループ００が“１”、ＲＡＩＤグループ０１及び０２が共に“２”であるとする。なお、初期状態の冗長ディスク数は全て“２”であるものとし、ＲＡＩＤグループ００では、ディスク００４が異常であるので、冗長ディスクは１つに減っているのである。
【００２２】
時刻ｔ１において、図６に示すように、ＲＡＩＤグループ０１のディスク０１０に障害が発生して異常になったとする。すると、ディスク障害検出部１０１はディスク０１０の障害を検出して、ＲＡＩＤグループ制御部１０２へその旨を通知する。この通知を受けると、ＲＡＩＤグループ制御部１０２は、ＲＡＩＤグループ管理テーブル１０３上の障害となったディスク０１０の稼動状態を正常から異常へと変更すると共に、ＲＡＩＤグループ０１の冗長ディスク数を“２”から“１”へ更新する（ステップＳ１）。このときのＲＡＩＤグループ管理テーブル１０３の内容は図７のようになる。
【００２３】
続いて、ＲＡＩＤグループ制御部１０２は、ＲＡＩＤグループ０１の冗長ディスク数が“０”か否か（ＲＡＩＤグループの構成ディスクが冗長性を失っているか否か）を判断する（ステップＳ２）。このとき、ＲＡＩＤグループ０１の冗長ディスク数は“０”ではないので、ＲＡＩＤグループ制御部１０２は、処理を終了することになる。
【００２４】
更に、時刻ｔ２において、図８に示す如く、ＲＡＩＤグループ０１の構成ディスク０１１に障害が発生すると、ディスク障害検出部１０１はこれを検出して、ＲＡＩＤグループ制御部１０２にその旨を通知する。ＲＡＩＤグループ制御部１０２は、この通知を受けると、次の処理を実行する。すなわち、ＲＡＩＤグループ管理テーブル１０３上の障害となったディスク０１１の稼動状態を、正常から異常に変更し、ＲＡＩＤグループ０１の冗長ディスク数を“１”から“０”に更新する（ステップＳ１）。このときのＲＡＩＤグループ管理テーブル１０３の状態を示したのが図９である。
【００２５】
続いて、ＲＡＩＤグループ制御部１０２は、ＲＡＩＤグループ０１の冗長ディスク数が“０”かどうかを判断する（ステップＳ２）。このとき、ＲＡＩＤグループ０１の冗長ディスク数は“０”となっているので、ＲＡＩＤグループ制御部１０２は、ＲＡＩＤグループ管理テーブル１０３を参照して、ＲＡＩＤグループ００から順番に冗長ディスク数が“２”以上であるＲＡＩＤグループを検索することになる（ステップＳ３）。
【００２６】
この検索ステップＳ３の動作の詳細が図３に示されている。すなわち、変数ｉが００とされ（ステップＳ３１）、ＲＡＩＤグループｉの冗長ディスク数が“２”以上かどうか判定され（ステップＳ３２）、そうであれば処理終了となる。そうでなければ、ｉがｉ＋１にインクリメントされ（ステップＳ３３）、ステップＳ３２，Ｓ３３が繰り返される。この繰り返しは、ｉが０ｎを超えるまで行われる（ステップＳ３４）。
【００２７】
ＲＡＩＤグループ制御部１０２は、冗長ディスク数が“２”以上であるＲＡＩＤグループの存在の有無を確認し（ステップＳ４）、冗長ディスク数が“２”以上のＲＡＩＤグループが存在しない場合には、処理を終了する。この場合においては、ＲＡＩＤグループ０ｎの冗長ディスク数が“２”であるから、ＲＡＩＤグループ制御部１０２は、ＲＡＩＤグループ０ｎの構成ディスクの末尾のディスク０ｎ５をＲＡＩＤグループ０ｎの構成から切り離して、このディスク０ｎ５をＲＡＩＤグループ０１のディスクとして再構成する（ステップＳ５）。この状態を図８の矢印Ａで示している。
【００２８】
ＲＡＩＤグループ制御部１０２は、ＲＡＩＤグループ管理テーブル１０３上においても、ディスク０ｎ５をＲＡＩＤグループの０ｎの構成ディスクからＲＡＩＤグループ０１の構成ディスクに変更し、ＲＡＩＤグループ０ｎの冗長ディスク数を“２”から“１”に更新すると共に、ＲＡＩＤグループ０１の冗長ディスク数を“０”から“１”に更新する（ステップＳ６）。このときのＲＡＩＤグループ管理テーブル１０３の状態を示したのが図１０である。
【００２９】
このように、冗長性が失われたＲＡＩＤグループが検出された場合、多重の冗長性を有している他のＲＡＩＤグループを検出して、この多重冗長性を有するＲＡＩＤグループの構成ディスクを、当該グループから切り離し、冗長性が失われているＲＡＩＤグループに組み込むことにより、冗長性が失われたＲＡＩＤグループを再冗長化することができることになる。
【００３０】
なお、上記実施例では、ＲＡＩＤ６を用いることができるが、これに限定されることなく、ディスクの多重障害時にもデータ保護が可能なディスクアレイ装置に適用できる。また、図２，３に示したフローチャートの動作（ＲＡＩＤグループ制御部１０２の動作）は、その動作手順を予めプログラムとしてＲＯＭなどの記録媒体に記録しておき、これをコンピュータ（ＣＰＵ）により読み取らせて実行させるように構成できることは明らかである。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施例の概略ブロック図である。
【図２】本発明の実施例の動作を示すフローチャートである。
【図３】図２のフローチャートのステップＳ３の詳細を示すフローチャートである。
【図４】ある時刻ｔ１以前におけるディスク稼動状態を示す図である。
【図５】ある時刻ｔ１以前におけるＲＡＩＤグループ管理テーブルの内容を示す図である。
【図６】ある時刻ｔ１におけるディスク稼動状態を示す図である。
【図７】ある時刻ｔ１におけるＲＡＩＤグループ管理テーブルの内容を示す図である。
【図８】ある時刻ｔ２におけるディスク稼動状態を示す図である。
【図９】ある時刻ｔ２におけるＲＡＩＤグループ管理テーブルの内容を示す図である。
【図１０】ある時刻ｔ２の後のＲＡＩＤグループ管理テーブルの内容を示す図である。
【符号の説明】
【００３２】
００，０１，…，０ｎ  ＲＡＩＤグループ
１００  ディスクアレイ装置
１０１  ディスク障害検出部
１０２  ＲＡＩＤグループ制御部
１０３  ＲＡＩＤグループ管理テーブル
【図１】
2008217624.tif 000003
【図２】
2008217624.tif 000004
【図３】
2008217624.tif 000005
【図４】
2008217624.tif 000006
【図５】
2008217624.tif 000007
【図６】
2008217624.tif 000008
【図７】
2008217624.tif 000009
【図８】
2008217624.tif 000010
【図９】
2008217624.tif 000011
【図１０】
2008217624.tif 000012