(57)【要約】【課題】二重化復旧処理にかかる時間を短縮することができるストレージ制御装置を実現すること。【解決手段】復旧対象のスライスにデータが記憶されているか否かを判断して、データが記憶されている場合は、復旧対象のスライスと未使用のスライスとを二重化させるとともにデータのコピー処理を行わせ、復旧対象のスライスにデータが記憶されていない場合は、復旧対象のスライスとフリーとを二重化させてデータのコピー処理を行わせない。【選択図】        図２
2009151677.tif 000002
【特許請求の範囲】
【請求項１】
異なるストレージ管理装置の記憶領域が二重化されるように制御するストレージ制御装置であって、
前記ストレージ管理装置が正常に動作しているか否かを監視する監視手段と、
前記監視手段によって正常に動作していないストレージ管理装置が存在することが検知された場合に、該ストレージ管理装置が保持する記憶領域との間で二重化されていた記憶領域である復旧対象記憶領域を抽出する復旧対象抽出手段と、
前記復旧対象抽出手段によって抽出された復旧対象記憶領域にデータが記憶されていない場合に、該復旧対象記憶領域と、データが記憶されておらず、かつ、使用されていない記憶領域とが二重化されるように制御し、前記復旧対象抽出手段によって抽出された復旧対象記憶領域にデータが記憶されている場合に、該復旧対象記憶領域と、二重化されていない記憶領域とが二重化されるとともに、該復旧対象記憶領域に記憶されているデータが該二重化されていない記憶領域へコピーされるように制御する二重化制御手段と
を備えたことを特徴とするストレージ制御装置。
【請求項２】
前記二重化制御手段は、前記復旧対象記憶領域と、データが記憶されておらず、かつ、二重化されていない記憶領域とが二重化される前に、該復旧対象記憶領域にデータが記憶された場合に、該復旧対象記憶領域と、二重化されていない記憶領域とが二重化されるとともに、該復旧対象記憶領域に記憶されているデータが該二重化されていない記憶領域へコピーされるように制御することを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
前記復旧対象抽出手段は、当該のストレージ制御装置が起動した場合に、前記復旧対象記憶領域を抽出することを特徴とする請求項１または２に記載のストレージ制御装置。
【請求項４】
異なるストレージ管理装置の記憶領域が二重化されるように制御するストレージ制御プログラムであって、
前記ストレージ管理装置が正常に動作しているか否かを監視する監視手順と、
前記監視手順によって正常に動作していないストレージ管理装置が存在することが検知された場合に、該ストレージ管理装置が保持する記憶領域との間で二重化されていた記憶領域である復旧対象記憶領域を抽出する復旧対象抽出手順と、
前記復旧対象抽出手順によって抽出された復旧対象記憶領域にデータが記憶されていない場合に、該復旧対象記憶領域と、データが記憶されておらず、かつ、使用されていない記憶領域とが二重化されるように制御し、前記復旧対象抽出手順によって抽出された復旧対象記憶領域にデータが記憶されている場合に、該復旧対象記憶領域と、二重化されていない記憶領域とが二重化されるとともに、該復旧対象記憶領域に記憶されているデータが該二重化されていない記憶領域へコピーされるように制御する二重化制御手順と
をコンピュータに実行させることを特徴とするストレージ制御プログラム。
【請求項５】
異なるストレージ管理装置の記憶領域が二重化されるように制御するストレージ制御方法であって、
前記ストレージ管理装置が正常に動作しているか否かを監視する監視工程と、
前記監視工程によって正常に動作していないストレージ管理装置が存在することが検知された場合に、該ストレージ管理装置が保持する記憶領域との間で二重化されていた記憶領域である復旧対象記憶領域を抽出する復旧対象抽出工程と、
前記復旧対象抽出工程によって抽出された復旧対象記憶領域にデータが記憶されていない場合に、該復旧対象記憶領域と、データが記憶されておらず、かつ、使用されていない記憶領域とが二重化されるように制御し、前記復旧対象抽出工程によって抽出された復旧対象記憶領域にデータが記憶されている場合に、該復旧対象記憶領域と、二重化されていない記憶領域とが二重化されるとともに、該復旧対象記憶領域に記憶されているデータが該二重化されていない記憶領域へコピーされるように制御する二重化制御工程と
を含んだことを特徴とするストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法に関する。
【背景技術】
【０００２】
近年、データ入出力装置として、複数のストレージ装置と、それらのストレージ装置を制御する制御装置とを含むストレージシステムが用いられることがある。このようなストレージシステムでは、異なるストレージ装置間で記憶領域を二重化してデータを管理することが一般に行われている（特許文献１を参照）。これは、１台のストレージ装置が故障した場合であっても、データの消失を防止するためである。
【０００３】
また、ストレージシステムには、ストレージ装置が故障して記憶領域が二重化されなくなった場合に、記憶領域の二重化を自動復旧するものもある。具体的には、ストレージ装置が故障したことを検知すると、故障したストレージ装置の記憶領域との間で二重化されていた記憶領域（以下、故障したストレージ装置の記憶領域との間で二重化されていた記憶領域を「復旧対象の記憶領域」という）を、正常に動作している他のストレージ装置の記憶領域と二重化させる。このように、ストレージシステムは、常に記憶領域が二重化されている状態を保つように制御し、システムの信頼性を確保している。
【０００４】
【特許文献１】特開平１０−１２４２６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したストレージシステムによる二重化復旧処理は、非常に時間がかかるという問題がある。具体的には、復旧対象の記憶領域に記憶されているデータを、新たに二重化される記憶領域へコピーする処理に時間がかかる。
【０００６】
近年では、ストレージシステムが取り扱うディスク容量は増大しており、１台のストレージ装置が故障した場合に、１ＴＢ（テラバイト）以上ものデータをコピーしなければならないケースもある。このようなケースでは、二重化復旧処理が完了するまでに数十時間もかかることがある。また、二重化復旧処理中に、復旧対象の記憶領域が属するストレージ装置が故障する可能性もある。このような状況下で、二重化復旧処理にかかる時間を短縮することができるストレージシステムをいかにして実現するかが重要な課題となっている。
【０００７】
なお、上記特許文献１に開示されている技術は、すべてのディスク装置が正常に再起動することが前提となっており、ディスク装置が故障した場合に二重化を復旧する処理に適用することはできない。
【０００８】
本発明は、上述した従来技術による課題を解消するためになされたものであり、二重化復旧処理にかかる時間を短縮することができるストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本願に開示するストレージ制御装置は、異なるストレージ管理装置の記憶領域が二重化されるように制御するストレージ制御装置（実施例における「制御装置４０」に相当する）であって、前記ストレージ管理装置が正常に動作しているか否かを監視する監視手段と、前記監視手段によって正常に動作していないストレージ管理装置が存在することが検知された場合に、該ストレージ管理装置が保持する記憶領域との間で二重化されていた記憶領域である復旧対象記憶領域を抽出する復旧対象抽出手段と、前記復旧対象抽出手段によって抽出された復旧対象記憶領域にデータが記憶されていない場合に、該復旧対象記憶領域と、データが記憶されておらず、かつ、使用されていない記憶領域とが二重化されるように制御し、前記復旧対象抽出手段によって抽出された復旧対象記憶領域にデータが記憶されている場合に、該復旧対象記憶領域と、二重化されていない記憶領域とが二重化されるとともに、該復旧対象記憶領域に記憶されているデータが該二重化されていない記憶領域へコピーされるように制御する二重化制御手段とを備えたことを要件とする。
【００１０】
なお、本願に開示するストレージ制御装置の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも、他の態様として有効である。
【発明の効果】
【００１１】
本願に開示したストレージ制御装置によれば、二重化復旧処理にかかる時間を短縮することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下に添付図面を参照して、本発明に係るストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法の好適な実施の形態を詳細に説明する。なお、以下の実施例により本発明が限定されるものではない。
【実施例】
【００１３】
まず、本実施例に係るストレージシステムの構成について説明する。図１は、本実施例に係るストレージシステムの構成例を示す図である。同図に示すように、ストレージシステム１は、アクセスサーバ１０と、ストレージ管理装置２０ａ〜２０ｄと、ストレージ装置３０ａ〜３０ｄと、制御装置４０とによって構成される。アクセスサーバ１０と、ストレージ管理装置２０ａ〜２０ｄと、制御装置４０とは、ネットワーク５０を介して相互に通信可能に接続される。
【００１４】
アクセスサーバ１０は、図示しない複数のユーザ端末と接続されており、ユーザ端末とストレージ装置３０ａ〜３０ｄとの間におけるデータのアクセスを制御する装置である。例えば、アクセスサーバ１０は、ストレージ装置３０ａ〜３０ｄに対してデータのリード要求やライト要求を送信する。
【００１５】
ストレージ管理装置２０ａ〜２０ｄは、ストレージ装置３０ａ〜３０ｄを搭載しており、ストレージ装置３０ａ〜３０ｄを管理する装置である。ストレージ装置３０ａ〜３０ｄは、ハードディスク装置に限られず、熱磁気ディスク装置や光磁気ディスク装置のような他の記憶装置であってもよい。
【００１６】
ストレージ管理装置２０ａ〜２０ｄは、ストレージ装置３０ａ〜３０ｄの記憶領域を、一定の容量毎に分割して管理する。なお、本明細書では、一定の容量毎に分割された記憶領域を「スライス」と呼ぶこととする。
【００１７】
図１に示した例では、ストレージ管理装置２０ａは、ストレージ装置３０ａの記憶領域を、６つのスライス３１ａ〜３６ａに分割して管理している。同様に、ストレージ管理装置２０ｂは、ストレージ装置３０ｂの記憶領域を、６つのスライス３１ｂ〜３６ｂに分割して管理している。なお、図１に示した例では、ストレージ管理装置２０ａ〜２０ｄが分割したスライス数は、すべて同一の６つであるが、このスライス数は、ストレージ管理装置ごとに異なってもよい。
【００１８】
ここで、本実施例に係るストレージシステム１では、ストレージ装置３０ａ〜３０ｄの記憶領域を、仮想的な記憶領域である論理ボリューム（「論理ディスク」とも呼ばれる）として扱う。この論理ボリュームは、１以上のセグメントから構成される。ここでいう「セグメント」とは、異なるストレージ装置３０ａ〜３０ｄに属する２つのスライスが二重化された記憶領域である。
【００１９】
セグメントを構成する一方のスライスは「プライマリ」と呼ばれ、他方のスライスは「セカンダリ」と呼ばれる。ストレージ装置３０ａ〜３０ｄは、データのリード要求を受け付けた場合、プライマリに記憶されているデータを読み出す。また、データのライト要求を受け付けた場合、ストレージ装置３０ａ〜３０ｄは、プライマリとセカンダリの両方のスライスに対してデータの書き込み処理を行う。
【００２０】
図１において、スライス３１ａ〜３６ａ、３１ｂ〜３６ｂ、３１ｃ〜３６ｃおよび３１ｄ〜３６ｄ内の「Ｐ」はプライマリを示し、「Ｓ」はセカンダリを示し、「−（未設定）」は、論理ボリュームを構成するスライスではなく未使用のスライスであることを示している。また、「Ｐ」または「Ｓ」の後の数字は、セグメントを識別するための識別子（セグメントＩＤ）を示している。なお、未使用のスライスは、データ格納状態によって２種類に分類される。１つは、初期化済の状態からデータの書き込みが行われていないスライスであり、以下では、このようなスライスを「フリー」と呼ぶこととする。もう１つは、データの書き込みが行われている可能性があるスライスであり、以下では、このようなスライスを「ダーティ」と呼ぶこととする。
【００２１】
図１におけるストレージシステム１では、スライス３１ａとスライス３１ｂとが二重化されたセグメント（セグメントＩＤ「１」）と、スライス３２ａとスライス３２ｃとが二重化されたセグメント（セグメントＩＤ「２」）と、スライス３３ａとスライス３３ｄとが二重化されたセグメント（セグメントＩＤ「３」）と、スライス３４ｂとスライス３４ｃとが二重化されたセグメント（セグメントＩＤ「４」）とにより論理ボリュームが構成されている。なお、図１では、論理ボリュームが１つである例を示したが、論理ボリュームは複数あってもよい。
【００２２】
この論理ボリュームの構成は、各スライスに１つずつ存在するスライス情報によって把握できる。スライス情報とは、スライスに関する各種情報であり、同一のストレージ装置３０ａ〜３０ｄ内でスライスを識別するためのスライスＩＤや、プライマリまたはセカンダリを識別するための属性や、スライスが属するセグメントのセグメントＩＤや、二重化されている相手側のスライスに関する情報である二重化相手先情報などによって構成される。
【００２３】
スライス情報は、ストレージ管理装置２０ａ〜２０ｄによってディスクなどの不揮発性記憶媒体に保存される。具体的には、ストレージ管理装置２０ａは、ストレージ装置３０ａに属するスライスのスライス情報を記憶し、ストレージ管理装置２０ｂは、ストレージ装置３０ｂに属するスライスのスライス情報を記憶する。
【００２４】
制御装置４０は、ストレージ管理装置２０ａ〜２０ｄの動作状態を監視して、二重化されていないセグメントが存在する場合に、二重化復旧処理を行う装置である。例えば、１台のストレージ装置が故障すると、故障したストレージ装置に属するスライスにより構成されていたセグメントは、１つのスライスのみから構成される状態となる。制御装置４０は、このような状況を検知して、ストレージ装置が故障したことを検知すると、故障したストレージ装置に属するスライスとの間で二重化されていたスライス（以下、故障したストレージ装置に属するスライスとの間で二重化されていたスライスを「復旧対象のスライス」という）を、正常に動作している他のストレージ装置に属するスライスと二重化させる。
【００２５】
次に、本実施例に係るストレージシステム１による二重化復旧処理の概要を説明する。図２は、本実施例に係るストレージシステム１による二重化復旧処理の概要を説明するための図である。以下では、本実施例に係るストレージシステム１による二重化復旧処理の特徴を明らかにするために、従来のストレージシステムによる二重化復旧処理についても説明する。なお、同図中の各スライス内の「更新有」は、スライスにデータが記憶されていることを示し、「更新無」は、スライスにデータが記憶されておらず、初期化済の状態であることを示す。
【００２６】
図２の例における「状態Ａ」に示すように、ストレージ装置３０ａが故障した場合、セグメントＩＤ「１」〜「３」のセグメントは、１つのスライスのみから構成される状態となる。すなわち、スライス３１ｂ、３２ｃ、３３ｄは、二重化されていない状態であり、正常動作中の他のストレージ装置３０ｂ〜３０ｄに属するスライスと二重化させる必要がある。なお、同図では、復旧対象のスライスに斜線を付して示している。
【００２７】
ストレージシステム１は、ストレージ装置３０ａが故障したことを検知すると、復旧対象のスライスをすべてプライマリにする。具体的には、同図に示した「状態Ｂ」に示すように、復旧対象のスライスであるスライス３１ｂ、３２ｃ、３３ｄをプライマリにしている。このように復旧対象のスライスをプライマリにする理由は、二重化復旧処理中であっても、復旧対象のスライスに対してデータアクセスを可能にするためである。なお、スライス３２ｃはすでにプライマリであるため、ストレージシステム１は、スライス３２ｃをプライマリにする処理を行わなくてもよい。
【００２８】
そして、ストレージシステム１は、復旧対象のスライスを、正常動作中の他のストレージ装置に属する未使用のスライスと二重化させる。この二重化処理について、従来のストレージシステム２と、本実施例に係るストレージシステム１とに分けて具体的に説明する。
【００２９】
従来のストレージシステム２では、復旧対象のスライスとの間で二重化させる未使用のスライスを決定した後、復旧対象のスライスに記憶されているデータを、二重化させることを決定したスライスへコピーさせる。
【００３０】
図２の例における「状態Ｃ」に示すように、従来のストレージシステム２は、スライス３１ｂとの間で二重化させるスライスをスライス３１ｃに決定して、スライス３１ｂに記憶されているデータをスライス３１ｃへコピーさせている。同様に、ストレージシステム２は、スライス３２ｃとの間で二重化させるスライスをスライス３２ｂに決定して、スライス３２ｃに記憶されているデータをスライス３２ｂへコピーさせており、スライス３３ｄとの間で二重化させるスライスをスライス３３ｃに決定して、スライス３３ｄに記憶されているデータをスライス３３ｃへコピーさせている。このように、従来のストレージシステム２では、復旧対象のスライスとの間で二重化させるスライスを決定した後、復旧対象のスライス内のデータを、復旧対象のスライスと二重化されるスライスへコピーさせることで、各セグメントについて二重化を復旧させる。
【００３１】
しかしながら、従来のストレージシステム２は、データのコピー処理を必ず行わせるため、二重化復旧処理に時間がかかってしまう。二重化復旧処理中に、ストレージ装置３０ｂ〜３０ｄが故障する可能性もあり、二重化復旧処理に長時間かかることは問題となる。
【００３２】
本実施例に係るストレージシステム１は、このような問題を解決するために、データのコピー処理を行わせる必要があるか否かを判断して、データのコピー処理が不要である場合は、コピー処理を行わせない。
【００３３】
具体的には、本実施例に係るストレージシステム１は、復旧対象のスライスにデータが記憶されているか否かを判断して、復旧対象のスライスにデータが記憶されていない場合、復旧対象のスライスと、フリーとを二重化させる。このとき、ストレージシステム１は、復旧対象のスライスに記憶されているデータを、二重化させるフリーへコピーさせない。データが記憶されていない復旧対象のスライスと、フリーは、共に初期化済の状態であり、データのコピー処理は不要だからである。
【００３４】
一方、復旧対象のスライスにデータが記憶されている場合、ストレージシステム１は、従来のストレージシステム２と同様に、二重化させるスライスを決定した後、復旧対象のスライスに記憶されているデータを、二重化させるスライスへコピーさせる。
【００３５】
図２に示した例では、「状態Ｄ」に示すように、ストレージシステム１は、スライス３１ｂにはデータが記憶されているため、スライス３１ｂとスライス３１ｃとを二重化させて、スライス３１ｂに記憶されているデータをスライス３１ｃへコピーさせている。同様に、スライス３３ｄにはデータが記憶されているため、スライス３３ｄとスライス３３ｃとを二重化させて、スライス３３ｄに記憶されているデータをスライス３３ｃへコピーさせている。一方、スライス３２ｃにはデータが記憶されていないため、ストレージシステム１は、スライス３２ｃとフリーであるスライス３２ｄとを二重化させるが、データのコピー処理を行わせない。
【００３６】
このように、本実施例に係るストレージシステム１は、復旧対象のスライスにデータが記憶されているか否かを判断して、データが記憶されている場合は、復旧対象のスライスと未使用のスライスとを二重化させるとともにデータのコピー処理を行わせ、復旧対象のスライスにデータが記憶されていない場合は、復旧対象のスライスとフリーとを二重化させてデータのコピー処理を行わせないので、コピー処理にかかる時間を削減することができる。その結果、二重化復旧処理にかかる時間を短縮することができる。
【００３７】
次に、図１に示した制御装置４０の構成について説明する。図３は、図１に示した制御装置４０の構成を示す機能ブロック図である。同図に示すように、制御装置４０は、インタフェース（以下、「Ｉ／Ｆ」という）部１１０と、記憶部１２０と、制御部１３０とを有する。Ｉ／Ｆ部１１０は、ネットワーク通信を実現するためのインタフェース装置である。
【００３８】
記憶部１２０は、各種情報を記憶する記憶デバイスであり、スライス情報記憶部１２１と、セグメント情報記憶部１２２と、復旧対象リスト１２３とを有する。スライス情報記憶部１２１は、正常に動作しているストレージ管理装置２０ａ〜２０ｄが保持するスライス情報を記憶する記憶領域である。このスライス情報記憶部１２１は、後述するスライス情報収集部１３２によって生成される。
【００３９】
スライス情報記憶部１２１の一例を図４−１および図４−２に示す。図４−１および図４−２に示すように、スライス情報記憶部１２１は、ストレージＩＤ、スライスＩＤ、属性、論理ボリューム情報、二重化相手先情報、データ更新フラグといった項目を有し、ストレージＩＤ毎に、各項目を複数保持することができる構造となっている。
【００４０】
ストレージＩＤは、ストレージ装置３０ａ〜３０ｄを識別するための識別子である。図４−１および図４−２の例では、図１中のストレージ装置３０ａ〜３０ｄに付した符号をストレージＩＤとしている。
【００４１】
スライスＩＤは、同一のストレージ装置３０ａ〜３０ｄ内でスライスを識別するための識別子である。属性は、スライスがプライマリであるかセカンダリあるかを示す情報である。また、属性が未設定（図４−１および図４−２に示した例では、「−」）の場合、スライスが未使用のスライスであることを示す。
【００４２】
論理ボリューム情報は、論理ボリュームを識別するための論理ボリュームＩＤと、セグメントを識別するためのセグメントＩＤとを記憶する。二重化相手先情報は、二重化されている相手側のスライスのストレージＩＤおよびスライスＩＤを記憶する。
【００４３】
データ更新フラグは、スライスにデータが記憶されているか否かを示すフラグである。同図では、データ更新フラグが「０」の場合、スライスにデータが記憶されていないことを示し、データ更新フラグが「１」の場合、スライスにデータが記憶されていることを示すこととする。
【００４４】
図４−１に示したスライス情報記憶部１２１は、図２においてストレージ装置３０ａの故障前に、スライス情報収集部１３２によって生成された状態を示す。図４−２に示したスライス情報記憶部１２１は、図２においてストレージ装置３０ａの故障後に、スライス情報収集部１３２によって生成された状態を示す。
【００４５】
図４−１に示したスライス情報記憶部１２１の１行目は、ストレージ装置３０ａに属するスライスＩＤ「１００１」のスライスが、プライマリであり、論理ボリュームＩＤ「Ａ」のセグメントＩＤ「１」に属していることを示している。また、かかるスライスが、ストレージ装置３０ｂに属するスライスＩＤ「１００１」のスライスと二重化されていることを示している。また、かかるスライスにデータが記憶されていることを示している。
【００４６】
図４−１に示したスライス情報記憶部１２１の４行目は、ストレージ装置３０ａに属するスライスＩＤ「１００４」のスライスが、フリーであることを示している。また、図４−１に示したスライス情報記憶部１２１の８行目は、ストレージ装置３０ｂに属するスライスＩＤ「１００２」のスライスが、ダーティであることを示している。
【００４７】
セグメント情報記憶部１２２は、論理ボリュームを構成するセグメントに関する各種情報を記憶する記憶領域である。このセグメント情報記憶部１２２は、ストレージ装置３０ａ〜３０ｄのいずれかが故障した場合に、後述するスライス情報収集部１３２によって、正常に動作しているストレージ装置３０ａ〜３０ｄが保持するスライス情報に基づいて生成される。
【００４８】
セグメント情報記憶部１２２の一例を図５−１および図５−２に示す。図５−１および図５−２に示すように、セグメント情報記憶部１２２は、論理ボリュームＩＤ、セグメントＩＤ、プライマリ情報、セカンダリ情報といった項目を有する。
【００４９】
プライマリ情報は、セグメントを構成するプライマリに関する情報であり、ストレージＩＤと、スライスＩＤと、データ更新フラグとを記憶する。セカンダリ情報は、セグメントを構成するセカンダリに関する情報であり、ストレージＩＤと、スライスＩＤと、データ更新フラグとを記憶する。
【００５０】
図５−１に示したセグメント情報記憶部１２２は、図２においてストレージ装置３０ａの故障前に、スライス情報収集部１３２によって生成された状態を示す。図５−２に示したセグメント情報記憶部１２２は、図２においてストレージ装置３０ａの故障後に、スライス情報収集部１３２によって生成された状態を示す。
【００５１】
図５−１に示したセグメント情報記憶部１２２の１行目は、論理ボリュームＩＤ「Ａ」におけるセグメントＩＤ「１」のセグメントが、ストレージ装置３０ａに属するスライスＩＤ「１００１」のスライス（プライマリ）と、ストレージ装置３０ｂに属するスライスＩＤ「１００１」のスライス（セカンダリ）とが二重化されて構成されていることを示している。
【００５２】
図５−２に示したセグメント情報記憶部１２２の１行目は、論理ボリュームＩＤ「Ａ」におけるセグメントＩＤ「１」のセグメントが、ストレージ装置３０ｂに属するスライスＩＤ「１００１」のスライス（セカンダリ）のみから構成されていることを示している。これは、図５−２に示したセグメント情報記憶部１２２は、図２においてストレージ装置３０ａの故障後に、スライス情報収集部１３２によって生成された状態を示しているからである。このように、セグメント情報記憶部１２２に記憶されている情報に基づいて、１つのスライスのみから構成されるセグメントや、復旧対象のスライスを特定できる。例えば、図５−２に示したセグメント情報記憶部１２２の場合、復旧対象のスライスは、ストレージ装置３０ｂに属するスライスＩＤ「１００１」のスライスと、ストレージ装置３０ｃに属するスライスＩＤ「１００２」のスライスと、ストレージ装置３０ｄに属するスライスＩＤ「１００３」のスライスである。
【００５３】
このセグメント情報記憶部１２２は、セグメントＩＤと、プライマリ情報と、セカンダリ情報との３つの要素からなる構造体により構成される。なお、本明細書では、これらの３つの要素からなる構造体を「セグメント構造体」と呼ぶこととする。
【００５４】
復旧対象リスト１２３は、復旧対象のスライスを有するセグメント構造体へのポインタが記憶されるリストである。この復旧対象リスト１２３は、後述する復旧対象抽出部１３３によって記憶される。
【００５５】
制御部１３０は、制御装置４０を全体制御する制御部であり、監視部１３１と、スライス情報収集部１３２と、復旧対象抽出部１３３と、二重化制御部１３４とを有する。
【００５６】
監視部１３１は、ストレージ管理装置２０ａ〜２０ｄが正常に動作しているか否かを監視する処理部である。具体的には、監視部１３１は、ストレージ管理装置２０ａ〜２０ｄから異常が発生したことを示す異常通知を受け付けた場合に、かかる異常通知の送信元のストレージ管理装置２０ａ〜２０ｄに異常が発生したことを検知する。また、監視部１３１は、ストレージ管理装置２０ａ〜２０ｄから正常に動作していることを示す正常通知を一定時間受け付けなかった場合に、かかる正常通知を一定時間送信しなかったストレージ管理装置２０ａ〜２０ｄに異常が発生したことを検知する。
【００５７】
スライス情報収集部１３２は、監視部１３１によってストレージ管理装置２０ａ〜２０ｄのいずれかに異常が発生したことが検知された場合に、正常に動作しているストレージ管理装置２０ａ〜２０ｄからスライス情報を収集して、スライス情報記憶部１２１と、セグメント情報記憶部１２２とを再構築する処理部である。
【００５８】
例えば、図２において、監視部１３１によってストレージ管理装置２０ａに異常が発生したことが検知された場合、スライス情報収集部１３２は、ストレージ管理装置２０ｂ〜２０ｄからスライス情報を収集する。そして、スライス情報収集部１３２は、スライス情報記憶部１２１に記憶されている情報をクリアした後、収集したスライス情報をスライス情報記憶部１２１に記憶させる。このときのスライス情報記憶部１２１は、図４−２に示した状態となる。また、スライス情報収集部１３２は、セグメント情報記憶部１２２に記憶されている情報をクリアした後、収集したスライス情報に含まれる情報をセグメント情報記憶部１２２に記憶させる。このときのセグメント情報記憶部１２２は、図５−２に示した状態となる。
【００５９】
復旧対象抽出部１３３は、セグメント情報記憶部１２２に記憶されている情報に基づいて、復旧対象のスライスにより構成されているセグメントを抽出する処理部である。具体的には、復旧対象抽出部１３３は、セグメント情報記憶部１２２から、プライマリ情報またはセカンダリ情報の一方のみに情報が記憶されているセグメント構造体を抽出する。そして、復旧対象抽出部１３３は、抽出したセグメント構造体へのポインタを復旧対象リスト１２３に格納する。復旧対象抽出部１３３により抽出されたセグメント構造体のプライマリ情報またはセカンダリ情報に記憶されている情報により、復旧対象のスライスを特定することができる。
【００６０】
例えば、セグメント情報記憶部１２２が図５−２に示した状態の場合、セグメントＩＤ「１」〜「３」のセグメントは、プライマリ情報またはセカンダリ情報の一方のみに情報が記憶されているので、復旧対象抽出部１３３は、復旧対象リスト１２３に、セグメント情報記憶部１２２の１〜３行目のセグメント構造体へのポインタを格納する。
【００６１】
二重化制御部１３４は、復旧対象のスライスを、正常に動作しているストレージ管理装置２０ａ〜２０ｄに属する未使用のスライスと二重化させるように制御する処理部である。具体的には、二重化制御部１３４は、プライマリ化処理、フリースライス割当処理、未使用スライス割当処理を順に行う。以下に、各処理について説明する。
【００６２】
まず、二重化制御部１３４は、復旧対象のスライスをすべてプライマリにするプライマリ化処理を行う。具体的には、二重化制御部１３４は、復旧対象リスト１２３に記憶されているポインタが示すセグメント構造体から、復旧対象のスライスのストレージＩＤおよびスライスＩＤを取得する。そして、二重化制御部１３４は、取得した復旧対象のスライスのストレージＩＤに該当するストレージ装置３０ａ〜３０ｄを搭載するストレージ管理装置２０ａ〜２０ｄに対して、取得したスライスＩＤに該当するスライスをプライマリにする指示であるプライマリ化指示を送信する。
【００６３】
上述した図５−２の例の場合、二重化制御部１３４は、セグメントＩＤ「１」のセグメント構造体から、ストレージＩＤ「３０ｂ」およびスライスＩＤ「１００１」を取得する。そして、二重化制御部１３４は、ストレージ管理装置２０ｂに対して、スライスＩＤ「１００１」のスライスをプライマリにするようにプライマリ化指示を送信する。同様に、二重化制御部１３４は、セグメントＩＤ「２」のセグメント構造体から、ストレージＩＤ「３０ｃ」およびスライスＩＤ「１００２」を取得した後、ストレージ管理装置２０ｃに対して、スライスＩＤ「１００２」のスライスをプライマリにするようにプライマリ化指示を送信する。同様に、二重化制御部１３４は、セグメントＩＤ「３」のセグメント構造体から、ストレージＩＤ「３０ｄ」およびスライスＩＤ「１００３」を取得した後、ストレージ管理装置２０ｄに対して、スライスＩＤ「１００３」のスライスをプライマリにするようにプライマリ化指示を送信する。
【００６４】
続いて、二重化制御部１３４は、フリースライス割当処理を行う。具体的には、二重化制御部１３４は、復旧対象リスト１２３に最初に記憶されているポインタが示すセグメント構造体から、復旧対象のスライスのデータ更新フラグを取得する。取得したデータ更新フラグが「０（データ更新無）」である場合、二重化制御部１３４は、スライス情報記憶部１２１から、「復旧対象のスライスと異なるストレージ装置３０ａ〜３０ｄに属するスライス」かつ「属性が未設定」かつ「データ更新フラグが０（データ更新無）」であるスライスを１つ検索する。
【００６５】
そして、二重化制御部１３４は、検索されたスライス（フリー）と、復旧対象のスライスとを二重化させるための指示であるフリースライス割当指示を、復旧対象のスライスが属するストレージ管理装置２０ａ〜２０ｄに対して送信する。フリースライス割当指示には、復旧対象のスライスのスライスＩＤと、復旧対象のスライスとの間で二重化させるスライス（フリー）のストレージＩＤおよびスライスＩＤとが含まれる。
【００６６】
フリースライス割当指示に対して、ストレージ管理装置２０ａ〜２０ｄから「処理完了」のレスポンスを受け付けた場合、二重化制御部１３４は、復旧対象のスライスとの間で二重化させるスライス（フリー）をセカンダリにする指示であるセカンダリ化指示を、復旧対象のスライスとの間で二重化させるスライス（フリー）が属するストレージ管理装置２０ａ〜２０ｄに対して送信する。セカンダリ化指示には、復旧対象のスライスのストレージＩＤ、論理ボリュームＩＤ、セグメントＩＤおよびスライスＩＤと、復旧対象のスライスとの間で二重化させるスライス（フリー）のストレージＩＤおよびスライスＩＤとが含まれる。なお、二重化制御部１３４は、セカンダリ化指示に含める各種情報を、スライス情報記憶部１２１およびセグメント情報記憶部１２２から取得する。
【００６７】
そして、二重化制御部１３４は、復旧対象リスト１２３から処理したポインタを削除して、次に復旧対象リスト１２３に記憶されているポインタについて上述したフリースライス割当処理を行う。
【００６８】
ストレージ管理装置２０ａ〜２０ｄから「処理未完了」のレスポンスを受け付けた場合、二重化制御部１３４は、復旧対象リスト１２３から処理中のポインタを削除せずに、次に復旧対象リスト１２３に記憶されているポインタについて、上述したフリースライス割当処理を行う。
【００６９】
一方、データ更新フラグが「１（データ更新有）」である場合、二重化制御部１３４は、かかる復旧対象のスライスについてフリースライス割当処理を行わず、次に復旧対象リスト１２３に記憶されているポインタについて、上述したフリースライス割当処理を行う。
【００７０】
上述した図５−２の例を用いて説明する。また、スライス情報記憶部１２１は図４−２に示した状態であるとする。復旧対象リスト１２３に最初に記憶されているポインタが示すセグメント構造体が、セグメントＩＤ「１」のセグメント構造体であるとすると、二重化制御部１３４は、復旧対象のスライス（ストレージＩＤ「３０ｂ」かつスライスＩＤ「１００１」）のデータ更新フラグ「１」を取得する。取得したデータ更新フラグが「１」であるため、二重化制御部１３４は、この復旧対象のスライスについては、フリースライス割当処理を行わない。
【００７１】
そして、次に復旧対象リスト１２３に記憶されているポインタが示すセグメント構造体が、セグメントＩＤ「２」のセグメント構造体であるとすると、二重化制御部１３４は、復旧対象のスライス（ストレージＩＤ「３０ｃ」、スライスＩＤ「１００２」）のデータ更新フラグ「０」を取得する。取得したデータ更新フラグが「０」であるため、二重化制御部１３４は、スライス情報記憶部１２１からフリーを１つ検索する。ここでは、二重化制御部１３４は、図４−２に示したスライス情報記憶部１２１の１４行目のフリー（ストレージＩＤ「３０ｄ」、スライスＩＤ「１００２」）を検索したとする。そして、二重化制御部１３４は、復旧対象のスライスのスライスＩＤ「１００２」と、復旧対象のスライスとの間で二重化させるスライス（フリー）のストレージＩＤ「３０ｄ」およびスライスＩＤ「１００２」とを含むフリースライス割当指示を、ストレージ管理装置２０ｃに対して送信する。
【００７２】
このフリースライス割当指示に対して、ストレージ管理装置２０ｃから「処理完了」のレスポンスを受け付けた場合、二重化制御部１３４は、フリーをセカンダリにするために、復旧対象のスライスのストレージＩＤ「３０ｃ」、論理ボリュームＩＤ「Ａ」、セグメントＩＤ「２」およびスライスＩＤ「１００２」と、復旧対象のスライスとの間で二重化させるスライス（フリー）のストレージＩＤ「３０ｄ」およびスライスＩＤ「１００２」を含むセカンダリ化指示を、ストレージ管理装置２０ｄに対して送信する。そして、二重化制御部１３４は、復旧対象リスト１２３から、セグメントＩＤ「２」のセグメント構造体を示すポインタを削除する。
【００７３】
このようにして、二重化制御部１３４は、復旧対象リスト１２３に記憶されているすべてのポインタについて上述したフリースライス割当処理を行う。
【００７４】
続いて、二重化制御部１３４は、未使用スライス割当処理を行う。具体的には、二重化制御部１３４は、まず、復旧対象リスト１２３に最初に記憶されているポインタが示すセグメント構造体内の復旧対象のスライスについて未使用スライス割当処理を行う。二重化制御部１３４は、スライス情報記憶部１２１から、「復旧対象のスライスと異なるストレージ装置３０ａ〜３０ｄに属するスライス」かつ「属性が未設定」であるスライスを１つ検索する。
【００７５】
そして、二重化制御部１３４は、検索されたスライス（フリーまたはダーティ）と、復旧対象のスライスとを二重化させるための指示である未使用スライス割当指示を、復旧対象のスライスが属するストレージ管理装置２０ａ〜２０ｄに対して送信する。未使用スライス割当指示には、復旧対象のスライスのスライスＩＤと、復旧対象のスライスとの間で二重化させるスライス（フリーまたはダーティ）のストレージＩＤおよびスライスＩＤとが含まれる。
【００７６】
未使用スライス割当指示に対して、ストレージ管理装置２０ａ〜２０ｄから「処理完了」のレスポンスを受け付けた場合、二重化制御部１３４は、復旧対象のスライスとの間で二重化させるスライス（フリーまたはダーティ）をセカンダリにするセカンダリ化指示を、復旧対象のスライスとの間で二重化させるスライス（フリーまたはダーティ）が属するストレージ管理装置２０ａ〜２０ｄに対して送信する。二重化制御部１３４は、復旧対象リスト１２３に記憶されているすべてのポインタについて未使用スライス割当処理を行う。
【００７７】
次に、図１に示したストレージ管理装置２０ａの構成について説明する。図６は、図１に示したストレージ管理装置２０ａの構成を示す機能ブロック図である。なお、ストレージ管理装置２０ｂ〜２０ｄの構成も図６に示した機能ブロック図と同様である。
【００７８】
同図に示すように、ストレージ管理装置２０ａは、Ｉ／Ｆ部２１０と、ＤＡ（Device  Adapter：デバイス  アダプタ）２２０と、スライス情報記憶部２３０と、制御部２４０とを有する。
【００７９】
Ｉ／Ｆ部２１０は、ネットワーク通信を実現するためのインタフェース装置である。ＤＡ２２０は、ストレージ管理装置２０ａとストレージ装置３０ａとを接続するためのアダプタである。
【００８０】
スライス情報記憶部２３０は、ディスクなどの不揮発性記憶媒体であり、ストレージ装置３０ａに属するスライスのスライス情報を記憶する。スライス情報記憶部２３０の構成は、図４−１および図４−２に示したスライス情報記憶部１２１の構成と同様である。
【００８１】
制御部２４０は、ストレージ管理装置２０ａを全体制御する制御部であり、データアクセス制御部２４１と、ハートビート送信部２４２と、スライス情報更新部２４３とを有する。データアクセス制御部２４１は、リード要求またはライト要求を受け付けた場合に、ストレージ装置３０ａからデータを取得したり、ストレージ装置３０ａにデータを書き込みしたりする。
【００８２】
ハートビート送信部２４２は、ストレージ管理装置２０ａおよびストレージ装置３０ａの動作状態を制御装置４０へ送信する処理部である。具体的には、ハートビート送信部２４２は、ストレージ管理装置２０ａおよびストレージ装置３０ａが正常に動作している場合、定期的に制御装置４０へ正常に動作していることを示す正常通知を送信する。一方、ストレージ管理装置２０ａおよびストレージ装置３０ａに異常が発生した場合、ハートビート送信部２４２は、制御装置４０へ異常が発生したことを示す異常通知を送信する。
【００８３】
スライス情報更新部２４３は、二重化制御部１３４からプライマリ化指示、フリースライス割当指示または未使用スライス割当指示を受け付けた場合に、スライス情報記憶部２３０に記憶されているスライス情報を更新する処理部である。
【００８４】
具体的には、スライス情報更新部２４３は、プライマリ化指示を受け付けた場合、プライマリ化指示に含まれるスライスＩＤに対応するスライス情報記憶部２３０の属性を「プライマリ」に更新する。
【００８５】
また、スライス情報更新部２４３は、フリースライス割当指示を受け付けた場合、フリースライス割当指示に含まれる「復旧対象のスライスのスライスＩＤ」をキーにして、スライス情報記憶部２３０からデータ更新フラグを取得する。
【００８６】
取得したデータ更新フラグが「０（データ更新無）」である場合、スライス情報更新部２４３は、「復旧対象のスライスのスライスＩＤ」に対応するスライス情報記憶部２３０の各種情報を更新する。具体的には、スライス情報更新部２４３は、スライス情報記憶部２３０の二重化相手先情報のストレージＩＤを、フリースライス割当指示に含まれる「復旧対象のスライスとの間で二重化させるスライス（フリー）のストレージＩＤ」に更新し、二重化相手先情報のスライスＩＤを、フリースライス割当指示に含まれる「復旧対象のスライスとの間で二重化させるスライス（フリー）のスライスＩＤ」に更新する。そして、スライス情報更新部２４３は、スライス情報記憶部２３０の更新処理が終了した後、制御装置４０に対して「処理完了」を示す信号を送信する。
【００８７】
一方、取得したデータ更新フラグが「１（データ更新有）」である場合、スライス情報更新部２４３は、制御装置４０に対して「処理未完了」を示す信号を送信する。このように復旧対象のスライスにデータが記憶されているか否かを確認する理由は、ストレージ管理装置２０ａは、二重化復旧処理中であってもライト要求を受け付けるため、制御装置４０のスライス情報収集部１３２がスライス情報を収集した後に、復旧対象のスライスにデータが記憶されるケースがあるからである。そのようなケースが発生した場合であっても、復旧対象のスライスのデータ格納状況を確認することで、復旧対象のスライスに記憶されているデータを、フリーにコピーさせないまま二重化処理が終了してしまうことを防止することができる。
【００８８】
また、スライス情報更新部２４３は、セカンダリ化指示を受け付けた場合、セカンダリ化指示に含まれる「復旧対象のスライスとの間で二重化させるスライスのスライスＩＤ」に対応するスライス情報記憶部２３０の各種情報を更新する。具体的には、スライス情報更新部２４３は、スライス情報記憶部２３０の属性を「セカンダリ」に更新し、論理ボリューム情報の論理ボリュームＩＤを、セカンダリ化指示に含まれる「復旧対象のスライスの論理ボリュームＩＤ」に更新し、論理ボリューム情報のセグメントＩＤを、セカンダリ化指示に含まれる「復旧対象のスライスのセグメントＩＤ」に更新し、二重化相手先情報のストレージＩＤを、セカンダリ化指示に含まれる「復旧対象のスライスのストレージＩＤ」に更新し、二重化相手先情報のスライスＩＤを、セカンダリ化指示に含まれる「復旧対象のスライスのスライスＩＤ」に更新する。
【００８９】
また、スライス情報更新部２４３は、未使用スライス割当指示を受け付けた場合、未使用スライス割当指示に含まれる「復旧対象のスライスのスライスＩＤ」に対応するスライス情報記憶部２３０の各種情報を更新する。具体的には、スライス情報更新部２４３は、スライス情報記憶部２３０の二重化相手先情報のストレージＩＤを、未使用スライス割当指示に含まれる「復旧対象のスライスとの間で二重化させるスライスのストレージＩＤ」に更新し、二重化相手先情報のスライスＩＤを、未使用スライス割当指示に含まれる「復旧対象のスライスとの間で二重化させるスライスのスライスＩＤ」に更新する。そして、スライス情報更新部２４３は、データアクセス制御部２４１に、復旧対象のスライスに記憶されているデータを、復旧対象のスライスとの間で二重化させるスライスにコピーするように指示する。データアクセス制御部２４１によるコピー処理が終了した後、スライス情報更新部２４３は、制御装置４０に対して「処理完了」を示す信号を送信する。
【００９０】
次に、図１に示した制御装置４０による二重化復旧処理について説明する。図７は、図１に示した制御装置４０による二重化復旧処理手順を示すフローチャートである。同図に示すように、制御装置４０の監視部１３１が、ストレージ管理装置２０ａ〜２０ｄのいずれかに異常が発生したことを検知すると（ステップＳ１０１肯定）、スライス情報収集部１３２は、正常動作中のストレージ管理装置２０ａ〜２０ｄからスライス情報を収集して（ステップＳ１０２）、スライス情報記憶部１２１およびセグメント情報記憶部１２２を再構築する（ステップＳ１０３）。
【００９１】
そして、復旧対象抽出部１３３は、スライス情報収集部１３２によって再構築されたセグメント情報記憶部１２２から、プライマリ情報またはセカンダリ情報の一方のみに情報が記憶されているセグメント構造体を抽出する。そして、復旧対象抽出部１３３は、抽出したセグメント構造体へのポインタを復旧対象リストＳＳに格納する（ステップＳ１０４）。なお、「復旧対象リストＳＳ」は、復旧対象リスト１２３のリスト名である。
【００９２】
そして、二重化制御部１３４は、復旧対象リスト１２３に記憶されているポインタが示すセグメント構造体に基づいて、復旧対象のスライスを特定し、復旧対象のスライスをプライマリにさせるプライマリ化指示を、復旧対象のスライスが属するストレージ管理装置２０ａ〜２０ｄに対して送信する（ステップＳ１０５）。
【００９３】
そして、二重化制御部１３４は、復旧対象リストＳＳのカウンタ（インデックス）であるｉを０に初期化する（ステップＳ１０６）。そして、二重化制御部１３４は、カウンタｉが復旧対象リストＳＳに格納されているポインタの数より小さい場合（ステップＳ１０７肯定）、復旧対象リストＳＳ［ｉ］に記憶されているポインタが示すセグメント構造体から、復旧対象のスライスのデータ更新フラグを取得する。
【００９４】
取得したデータ更新フラグが「０（データ更新無）」である場合（ステップＳ１０８肯定）、二重化制御部１３４は、スライス情報記憶部１２１からフリーを検索する（ステップＳ１０９）。そして、二重化制御部１３４は、検索されたフリーと、復旧対象のスライスとを二重化させるためにフリースライス割当指示を、復旧対象のスライスが属するストレージ管理装置２０ａ〜２０ｄに対して送信する（ステップＳ１１０）。
【００９５】
フリースライス割当指示に対して、ストレージ管理装置２０ａ〜２０ｄから「処理完了」のレスポンスを受け付けた場合（ステップＳ１１１肯定）、二重化制御部１３４は、復旧対象のスライスとの間で二重化させるスライス（フリー）をセカンダリにするためにセカンダリ化指示を、復旧対象のスライスとの間で二重化させるスライス（フリー）が属するストレージ管理装置２０ａ〜２０ｄに対して送信する（ステップＳ１１２）。そして、二重化制御部１３４は、復旧対象リストＳＳから復旧対象リストＳＳ［ｉ］に記憶されているポインタを削除する（ステップＳ１１３）。
【００９６】
その後、二重化制御部１３４は、カウンタｉの値を１だけ増加させる（ステップＳ１１４）。二重化制御部１３４は、カウンタｉが復旧対象リストＳＳに格納されているポインタの数以上になるまで（ステップＳ１０７否定）、上述したフリースライス割当処理を行う（ステップＳ１０８〜ステップＳ１１３）。
【００９７】
一方、カウンタｉが復旧対象リストＳＳに格納されているポインタの数以上になった場合（ステップＳ１０７否定）、二重化制御部１３４は、カウンタｉを０に初期化する（ステップＳ１１５）。
【００９８】
そして、二重化制御部１３４は、カウンタｉが復旧対象リストＳＳに格納されているポインタの数より小さい場合（ステップＳ１１６肯定）、スライス情報記憶部１２１から、フリーまたはダーティを検索する（ステップＳ１１７）。
【００９９】
そして、二重化制御部１３４は、検索されたスライス（フリーまたはダーティ）と、復旧対象のスライスとを二重化させるために未使用スライス割当指示を、復旧対象のスライスが属するストレージ管理装置２０ａ〜２０ｄに対して送信する（ステップＳ１１８）。未使用スライス割当指示に対して、ストレージ管理装置２０ａ〜２０ｄから「処理完了」のレスポンスを受け付けた後に、二重化制御部１３４は、復旧対象のスライスとの間で二重化させるスライス（フリーまたはダーティ）をセカンダリにするためにセカンダリ化指示を、復旧対象のスライスとの間で二重化させるスライス（フリーまたはダーティ）が属するストレージ管理装置２０ａ〜２０ｄに対して送信する（ステップＳ１１９）。
【０１００】
次に、図１に示したストレージ管理装置２０ａによる二重化復旧処理について説明する。図８は、図１に示したストレージ管理装置２０ａによる二重化復旧処理手順を示すフローチャートである。
【０１０１】
同図に示すように、ストレージ管理装置２０ａのスライス情報更新部２４３は、フリースライス割当指示を受け付けた場合（ステップＳ２０１肯定）、フリースライス割当指示に含まれる「復旧対象のスライスのスライスＩＤ」をキーにして、スライス情報記憶部２３０からデータ更新フラグを取得する（ステップＳ２０２）。
【０１０２】
取得したデータ更新フラグが「０（データ更新無）」である場合（ステップＳ２０３肯定）、スライス情報更新部２４３は、「復旧対象のスライスのスライスＩＤ」に対応するスライス情報記憶部２３０の各種情報を更新する（ステップＳ２０４）。そして、スライス情報更新部２４３は、スライス情報記憶部２３０の更新処理が終了した後、制御装置４０に対して「処理完了」を示す信号を送信する（ステップＳ２０５）。
【０１０３】
一方、取得したデータ更新フラグが「１（データ更新有）」である場合（ステップＳ２０３否定）、スライス情報更新部２４３は、制御装置４０に対して「処理未完了」を示す信号を送信する（ステップＳ２０６）。
【０１０４】
また、スライス情報更新部２４３は、未使用スライス割当指示を受け付けた場合（ステップＳ２０７肯定）、未使用スライス割当指示に含まれる「復旧対象のスライスのスライスＩＤ」に対応するスライス情報記憶部２３０の各種情報を更新する（ステップＳ２０８）。
【０１０５】
そして、スライス情報更新部２４３は、データアクセス制御部２４１に、復旧対象のスライスに記憶されているデータを、復旧対象のスライスとの間で二重化させるスライスにコピーするように指示する（ステップＳ２０９）。データアクセス制御部２４１によるコピー処理が終了した後、スライス情報更新部２４３は、制御装置４０に対して「処理完了」を示すレスポンスを送信する（ステップＳ２１０）。
【０１０６】
また、スライス情報更新部２４３は、セカンダリ化指示を受け付けた場合（ステップＳ２１１肯定）、セカンダリ化指示に含まれる「復旧対象のスライスとの間で二重化させるスライスのスライスＩＤ」に対応するスライス情報記憶部２３０の各種情報を更新する（ステップＳ２１２）。
【０１０７】
上述してきたように、本実施例に係るストレージシステム１は、復旧対象のスライスにデータが記憶されているか否かを判断して、データが記憶されている場合は、復旧対象のスライスと未使用のスライスとを二重化させるとともにデータのコピー処理を行わせ、復旧対象のスライスにデータが記憶されていない場合は、復旧対象のスライスとフリーとを二重化させてデータのコピー処理を行わせないので、コピー処理にかかる時間を削減することができる。その結果、二重化復旧処理にかかる時間を短縮することができる。
【０１０８】
なお、上記実施例では、制御装置４０の監視部１３１によってストレージ装置３０ａ〜３０ｄのいずれかに異常が発生したことが検知された場合に、二重化復旧処理を行う例を示したが、ストレージシステム１の起動時に二重化復旧処理を行うように構成してもよい。具体的には、スライス情報収集部１３２は、ストレージシステム１の起動時に、動作中のストレージ管理装置２０ａ〜２０ｄからスライス情報を収集してスライス情報記憶部１２１およびセグメント情報記憶部１２２を再構築する。その後の復旧対象抽出部１３３や二重化制御部１３４による処理は上述した実施例における処理と同様である。これにより、ストレージシステム１の起動時に、ストレージ管理装置２０ａ〜２０ｄまたはストレージ装置３０ａ〜３０ｄのいずれかが起動しない場合などに、即座に二重化復旧処理を行うことができる。
【０１０９】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
【０１１０】
（付記１）異なるストレージ管理装置の記憶領域が二重化されるように制御するストレージ制御装置であって、
前記ストレージ管理装置が正常に動作しているか否かを監視する監視手段と、
前記監視手段によって正常に動作していないストレージ管理装置が存在することが検知された場合に、該ストレージ管理装置が保持する記憶領域との間で二重化されていた記憶領域である復旧対象記憶領域を抽出する復旧対象抽出手段と、
前記復旧対象抽出手段によって抽出された復旧対象記憶領域にデータが記憶されていない場合に、該復旧対象記憶領域と、データが記憶されておらず、かつ、使用されていない記憶領域とが二重化されるように制御し、前記復旧対象抽出手段によって抽出された復旧対象記憶領域にデータが記憶されている場合に、該復旧対象記憶領域と、二重化されていない記憶領域とが二重化されるとともに、該復旧対象記憶領域に記憶されているデータが該二重化されていない記憶領域へコピーされるように制御する二重化制御手段と
を備えたことを特徴とするストレージ制御装置。
【０１１１】
（付記２）前記二重化制御手段は、前記復旧対象記憶領域と、データが記憶されておらず、かつ、二重化されていない記憶領域とが二重化される前に、該復旧対象記憶領域にデータが記憶された場合に、該復旧対象記憶領域と、二重化されていない記憶領域とが二重化されるとともに、該復旧対象記憶領域に記憶されているデータが該二重化されていない記憶領域へコピーされるように制御することを特徴とする付記１に記載のストレージ制御装置。
【０１１２】
（付記３）前記復旧対象抽出手段は、当該のストレージ制御装置が起動した場合に、前記復旧対象記憶領域を抽出することを特徴とする付記１または２に記載のストレージ制御装置。
【０１１３】
（付記４）異なるストレージ管理装置の記憶領域が二重化されるように制御するストレージ制御プログラムであって、
前記ストレージ管理装置が正常に動作しているか否かを監視する監視手順と、
前記監視手順によって正常に動作していないストレージ管理装置が存在することが検知された場合に、該ストレージ管理装置が保持する記憶領域との間で二重化されていた記憶領域である復旧対象記憶領域を抽出する復旧対象抽出手順と、
前記復旧対象抽出手順によって抽出された復旧対象記憶領域にデータが記憶されていない場合に、該復旧対象記憶領域と、データが記憶されておらず、かつ、使用されていない記憶領域とが二重化されるように制御し、前記復旧対象抽出手順によって抽出された復旧対象記憶領域にデータが記憶されている場合に、該復旧対象記憶領域と、二重化されていない記憶領域とが二重化されるとともに、該復旧対象記憶領域に記憶されているデータが該二重化されていない記憶領域へコピーされるように制御する二重化制御手順と
をコンピュータに実行させることを特徴とするストレージ制御プログラム。
【０１１４】
（付記５）前記二重化制御手順は、前記復旧対象記憶領域と、データが記憶されておらず、かつ、二重化されていない記憶領域とが二重化される前に、該復旧対象記憶領域にデータが記憶された場合に、該復旧対象記憶領域と、二重化されていない記憶領域とが二重化されるとともに、該復旧対象記憶領域に記憶されているデータが該二重化されていない記憶領域へコピーされるように制御することを特徴とする付記４に記載のストレージ制御プログラム。
【０１１５】
（付記６）前記復旧対象抽出手順は、ストレージ制御装置が起動した場合に、前記復旧対象記憶領域を抽出することを特徴とする付記４または５に記載のストレージ制御プログラム。
【０１１６】
（付記７）異なるストレージ管理装置の記憶領域が二重化されるように制御するストレージ制御方法であって、
前記ストレージ管理装置が正常に動作しているか否かを監視する監視工程と、
前記監視工程によって正常に動作していないストレージ管理装置が存在することが検知された場合に、該ストレージ管理装置が保持する記憶領域との間で二重化されていた記憶領域である復旧対象記憶領域を抽出する復旧対象抽出工程と、
前記復旧対象抽出工程によって抽出された復旧対象記憶領域にデータが記憶されていない場合に、該復旧対象記憶領域と、データが記憶されておらず、かつ、使用されていない記憶領域とが二重化されるように制御し、前記復旧対象抽出工程によって抽出された復旧対象記憶領域にデータが記憶されている場合に、該復旧対象記憶領域と、二重化されていない記憶領域とが二重化されるとともに、該復旧対象記憶領域に記憶されているデータが該二重化されていない記憶領域へコピーされるように制御する二重化制御工程と
を含んだことを特徴とするストレージ制御方法。
【０１１７】
（付記８）前記二重化制御工程は、前記復旧対象記憶領域と、データが記憶されておらず、かつ、二重化されていない記憶領域とが二重化される前に、該復旧対象記憶領域にデータが記憶された場合に、該復旧対象記憶領域と、二重化されていない記憶領域とが二重化されるとともに、該復旧対象記憶領域に記憶されているデータが該二重化されていない記憶領域へコピーされるように制御することを特徴とする付記７に記載のストレージ制御方法。
【０１１８】
（付記９）前記復旧対象抽出工程は、ストレージ制御装置が起動した場合に、前記復旧対象記憶領域を抽出することを特徴とする付記７または８に記載のストレージ制御方法。
【図面の簡単な説明】
【０１１９】
【図１】本実施例に係るストレージシステムの構成例を示す図である。
【図２】本実施例に係るストレージシステムによる二重化復旧処理の概要を説明するための図である。
【図３】図１に示した制御装置の構成を示す機能ブロック図である。
【図４−１】スライス情報記憶部の一例を示す図である。
【図４−２】スライス情報記憶部の一例を示す図である。
【図５−１】セグメント情報記憶部の一例を示す図である。
【図５−２】セグメント情報記憶部の一例を示す図である。
【図６】図１に示したストレージ管理装置の構成を示す機能ブロック図である。
【図７】図１に示した制御装置による二重化復旧処理手順を示すフローチャートである。
【図８】図１に示したストレージ管理装置による二重化復旧処理手順を示すフローチャートである。
【符号の説明】
【０１２０】
１、２  ストレージシステム
１０  アクセスサーバ
２０ａ〜２０ｄ  ストレージ管理装置
３０ａ〜３０ｄ  ストレージ装置
３１ａ〜３６ａ、３１ｂ〜３６ｂ、３１ｃ〜３６ｃ、３１ｄ〜３６ｄ  スライス
４０  制御装置
５０  ネットワーク
１１０  Ｉ／Ｆ部
１２０  記憶部
１２１  スライス情報記憶部
１２２  セグメント情報記憶部
１２３  復旧対象リスト
１３０  制御部
１３１  監視部
１３２  スライス情報収集部
１３３  復旧対象抽出部
１３４  二重化制御部
２１０  Ｉ／Ｆ部
２２０  ＤＡ
２３０  スライス情報記憶部
２４０  制御部
２４１  データアクセス制御部
２４２  ハートビート送信部
２４３  スライス情報更新部
【図１】
2009151677.tif 000003
【図２】
2009151677.tif 000004
【図３】
2009151677.tif 000005
【図４−１】
2009151677.tif 000006
【図４−２】
2009151677.tif 000007
【図５−１】
2009151677.tif 000008
【図５−２】
2009151677.tif 000009
【図６】
2009151677.tif 000010
【図７】
2009151677.tif 000011
【図８】
2009151677.tif 000012