(57)【要約】【課題】  ディスクのミラーリング状態を復旧するためのデータコピー処理中にコピー元ディスクでエラーが発生した場合でも、上位層に対し動作継続が可能となるディスクミラーリング制御装置を提供する。【解決手段】  等価状態にするためコピー元ディスクからコピー先ディスクへデータをコピーするコピー制御部２と、コピー制御部２によるコピー処理中に、上位層からコピー元ディスクへのリード要求が発生した場合、リード要求に対応する領域のデータをコピー先ディスクへコピーするＩ／Ｏミラーリング制御部１と、を備え、またコピー制御部２は、コピー処理中上位層からのコピー元ディスクへのリード要求がリードエラーである場合、コピー元ディスクを切り離し、またコピー先ディスクを動作ディスクとなるよう制御することを特徴とするミラーリング制御装置を提供する。【選択図】図１
2010186285.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置であって、
前記複数の記憶装置のうちから１つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、
前記コピー制御部によるコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするＩ／Ｏミラーリング制御部と、を備え、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
【請求項２】
請求項１に記載のミラーリング制御装置において、
前記Ｉ／Ｏミラーリング制御部は、さらに、前記リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするときに行う前記領域へのリード処理でエラーが発生した場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
【請求項３】
請求項１に記載のミラーリング制御装置において、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層から前記複数の記憶装置へのライト要求が発生し、前記複数の記憶装置のうち少なくとも一つにライトエラーが発生した場合、該ライトエラーが前記コピー元記憶装置で発生した場合該コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
【請求項４】
請求項１に記載のミラーリング制御装置において、
前記Ｉ／Ｏミラーリング制御部は、前記リード要求が前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合のみ、該領域のデータを前記コピー先記憶装置へコピーすることを特徴とするミラーリング制御装置。
【請求項５】
複数の記憶装置と、
前記複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置とを備え、
該ミラーリング制御装置は、
前記複数の記憶装置のうちから１つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、
前記コピー制御部によるコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするＩ／Ｏミラーリング制御部と、を備え、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするストレージ装置。
【請求項６】
請求項５に記載のストレージ装置において、
前記Ｉ／Ｏミラーリング制御部は、さらに、前記リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするときに行う前記領域へのリード処理でエラーが発生した場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするストレージ装置。
【請求項７】
複数の記憶装置によるデータの冗長化を維持するミラーリング制御方法であって、
前記複数の記憶装置のうちから１つの記憶装置をコピー元記憶装置として選択し、
前記コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーし、
前記等価状態にするためのコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーし、
さらに、前記等価状態にするためのコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
磁気ディスク装置のミラーリング(ソフトウェアＲＡＩＤ)機能を用いた、ディスク冗長化によるデータ保全を可能にするミラーリング制御装置、ストレージ装置、ミラーリング制御方法に関する。
【背景技術】
【０００２】
複数の磁気ディスク装置を冗長化させるミラーリング(ソフトウェアＲＡＩＤ)技術を用いることで、ディスク冗長化によるデータ保全、コンピュータシステムの高信頼化および可用性向上を図るためのミラーリング制御装置がある。
【０００３】
図１２に、システムがダウンし、再起動後ミラーリング状態を復旧させる際の従来のミラーリング制御装置の動作例を示す。
【０００４】
まず、正常稼動の状態では、両系のディスクは共にACTIVEの状態であるため、上位層のアプリケーションソフトウェアからのリード／ライトは両方のディスクになされる（図１２（Ａ）参照）。ここで、両系のディスクが共に正常であるときに、例えばディスク以外の他の要因でシステムがダウンし、システム再起動が行われた際、片系のディスク（以下、コピー元ディスク）から他のディスク（以下、コピー先ディスク）へ、ミラーリング状態を復旧するためデータコピーが行われる（図１２（Ｂ）参照）。尚、このデータコピー中は上位層のアプリケーションソフトウェアからのリードはコピー元ディスクから行われ、上位層のアプリケーションソフトウェアからのライトは両方のディスクに行われる。
【０００５】
データコピー処理中にコピー元ディスクでエラーが発生した場合、コピー処理が中止される（図１２（Ｃ）参照）。また、このとき従来のミラーリング制御装置は、コピー先ディスクはコピーが完了しておらず、内容が保証できないためコピー先ディスクをミラーリングから切り離すよう制御する。この結果、コピー元ディスクのみが動作ディスクとなり、上位サーバからのリード／ライトの処理もコピー元ディスクのみで行われる（図１２（Ｄ）参照）。
【０００６】
また、本発明と関連のある技術として、以下の文献が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−２５９５１９号公報
【特許文献２】特開平７−１３４６３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来のミラーリング制御装置の動作において、ディスクのミラーリング状態を復旧するためのデータコピー処理中にコピー元ディスクでエラーが発生した場合、コピー元ディスクはエラーが発生した状態となり、コピー先ディスクはデータが保証できない状態になる。このように従来のミラーリング制御装置は、コピー処理開始前ではコピー先ディスクはアクセス可能かつデータ保証される状態であったにもかかわらず、コピー処理中にコピー元ディスクでエラーが発生すると、コピー先ディスクも使用できなくなり、データ保証も動作継続もできなくなるという問題がある。
【０００９】
このような状態に陥ってしまった場合の復旧は、エラーが発生したディスクの交換と、以前にテープなどに取っておいたバックアップデータのリストアが必要になる。よって復旧するまでの時間は業務運用を停止しなければならず、またテープにバックアップしたデータ状態とコピー元ディスクでエラーが発生したときのデータ状態との差分データは消失する。
【００１０】
本発明は上述した問題点を解決するためになされたものであり、ミラーリング状態に復旧している最中にコピー元ディスクでエラーが発生した場合でもデータ保証と動作継続を実現するミラーリング制御装置、ストレージ装置、ミラーリング制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
ミラーリング制御装置は、複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置であって、前記複数の記憶装置のうちから１つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、前記コピー制御部によるコピー処理中に発生した、上位層からの前記コピー元記憶装置へのリード要求が、前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合、該領域のデータを前記コピー先記憶装置へコピーするＩ／Ｏミラーリング制御部と、を備え、前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とする。
【００１２】
また、ストレージ装置は、複数の記憶装置と、前記複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置とを備え、該ミラーリング制御装置は、前記複数の記憶装置のうちから１つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、前記コピー制御部によるコピー処理中に発生した、上位層からの前記コピー元記憶装置へのリード要求が、前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合、該領域のデータを前記コピー先記憶装置へコピーするＩ／Ｏミラーリング制御部と、を備え、前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とする。
【００１３】
ミラーリング制御方法は、複数の記憶装置によるデータの冗長化を維持するミラーリング制御方法であって、前記複数の記憶装置のうちから１つの記憶装置をコピー元記憶装置として選択し、前記コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーし、前記等価状態にするためのコピー処理中に発生した、上位層からの前記コピー元記憶装置へのリード要求が、前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合、該領域のデータを前記コピー先記憶装置へコピーし、さらに、前記等価状態にするためのコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とする。
【発明の効果】
【００１４】
記憶装置のミラーリング状態を復旧するためのデータコピー処理中にコピー元記憶装置でエラーが発生した場合でも、コピー先記憶装置のデータが保証され、上位層に対する動作継続が可能となる。これにより、ミラーリング状態を復旧するためのデータコピー処理中に生じた記憶装置の不具合に対するシステムの耐性および可用性が向上する。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態に係るストレージ装置の機能ブロックの一例を示す図である。
【図２】本実施の形態に係るディスクミラーリング制御装置の動作の一例を示す図である。
【図３】本実施の形態に係るミラーディスク構成管理テーブルのデータ構造の一例を示す図である。
【図４】本実施の形態に係るコピー管理テーブルと更新領域管理テーブルのデータ構造、およびコピー管理テーブル、更新領域管理テーブルの各テーブル内のビットとミラーディスクの領域との対応関係の一例を示す図である。
【図５】本実施の形態に係る復旧コピー処理実行中におけるリード処理の一例を示すフローチャートである。
【図６】本実施の形態に係る復旧コピー処理実行中のライト処理の一例を示すフローチャートである。
【図７】本実施の形態に係る復旧コピー処理の一例を示すフローチャート（その１）である。
【図８】本実施の形態に係る復旧コピー処理の一例を示すフローチャート（その２）である。
【図９】本実施の形態に係る動作ディスクの変更処理の一例を示すフローチャートである。
【図１０】本実施の形態に係るコピー先ディスクへのコピー処理の一例を示すフローチャートである。
【図１１】本実施の形態に係るディスクミラーリング制御装置のハードウェア構成の一例を示す図である。
【図１２】本実施の形態に係る、図１で示した構成の変形例を示す図である。
【図１３】システムがダウンし、再起動後ミラーリング状態を復旧させる際の従来のミラーリング制御装置の動作例を示す図である。
【発明を実施するための形態】
【００１６】
図１に、本実施の形態に係るストレージ装置の構成を示す。ストレージ装置５００は、ディスクミラーリング制御装置１００（ミラーリング制御装置）、データ保持部２００を備える。
【００１７】
ディスクミラーリング制御装置１００は、Ｉ／Ｏミラーリング制御部１、コピー制御部２、ミラーディスク構成管理部３、クラスタ通信制御部４を備える。また、管理データを格納するユニットとして、ディスクミラーリング制御装置１００は、ミラーディスク構成管理テーブル１０、更新領域管理テーブル１１、コピー管理テーブル１２を備える。
【００１８】
また、データ保持部２００は、制御対象の磁気ディスク装置（記憶装置）の集合であり、ミラーリング状態となっている少なくとも２つの磁気ディスク装置であるミラーディスク２１、および管理情報のデータを保持する磁気ディスク装置である管理情報用ディスク２２を備える。尚、管理情報用ディスク２２には、管理情報を保持するユニットであるミラーディスク構成管理テーブル２３、更新領域管理テーブル２４を備える。
【００１９】
尚、データ保持部２００は、クラスタシステムの場合、クラスタシステムを構成する複数のシステムのディスクミラーリング制御装置からアクセスされる。
【００２０】
ここで、ディスクミラーリング制御装置１００内の各機能ブロックについて説明する。
【００２１】
Ｉ／Ｏミラーリング制御部１は、ホストコンピュータで動作するアプリケーションソフトウェア３００（上位層）から発行されるディスクへのＩ／Ｏ要求を複製し、複数のミラーディスク２１に発行することで、ディスクミラーリングを実現する。
【００２２】
また、コピー制御部２がシステムダウン後のディスクミラーリング状態を復旧するためのコピー処理を実行している間、Ｉ／Ｏミラーリング制御部１は、アプリケーションソフトウェア３００からの要求がリード要求である場合、コピー元ディスク内のリード要求に対応する領域に保持されているデータをコピー先ディスクへコピーする。
【００２３】
また、Ｉ／Ｏミラーリング制御部１は、さらに、アプリケーションプログラム３００からリード要求された領域のデータをコピー先ディスクへコピーするときに行うその領域へのリード処理でエラーが発生した場合、コピー元ディスクを切り離し（使用不可）の状態となるよう制御し、またコピー先ディスクをアプリケーションソフトウェア３００からのリード要求およびライト要求に対する処理を行う動作ディスクとなるよう制御する。
【００２４】
コピー制御部２は、何らかの不測のトラブルによってシステムがダウンした後、ミラーディスク２１間でデータコピー処理を行い、ミラーディスク２１のミラーリング状態を復旧する。すなわちコピー制御部２は、複数のミラーディスク２１同士のデータを等価状態にするために、複数のミラーディスク２１のうちから１つをコピー元ディスクとして選択し、コピー元ディスク内のデータを、その他のコピー先ディスクへコピーする。
【００２５】
またコピー制御部２は、さらに、コピー制御部２によるコピー処理中に、Ｉ／Ｏミラーリング制御部１によって受付けられたリード要求またはライト要求の処理がコピー元ディスクでエラーとなる場合、コピー元ディスクを切り離しの状態となるよう制御し、またコピー先ディスクが動作ディスクになるよう制御する。
【００２６】
ミラーディスク構成管理部３は、システム起動時に管理情報用ディスク２２からミラーディスク構成管理テーブル２３を読み込み、ディスクミラーリング制御装置１００内のＲＡＭ（尚、ディスクミラーリング制御装置１００のハードウェア構成は後述する）にロードすることでミラーディスク構成管理テーブル１０を作成し、また更新領域管理テーブル２４を読み込み、ディスクミラーリング制御装置１００内のＲＡＭ上にロードすることで、更新領域管理テーブル１１を作成する。また、ミラーディスク構成管理部３は、ミラーディスク２１の構成や状態が変化したときに、ＲＡＭ内のミラーディスク構成管理テーブル１０および管理情報用ディスク２２内のミラーディスク構成管理テーブル２３を更新する。
【００２７】
クラスタ通信制御部４は、クラスタシステムの場合に、クラスタシステムを構成する他のシステムと連携して動作するための通信処理を行う。具体的には、待機システムのクラスタ通信制御部４が運用システムのダウンを検出し、ディスクのミラーリング状態を復旧するためのコピー処理の実行を、自己のコピー制御部２に依頼する。また、ミラーディスク２１の構成や状態が変化したとき、他のシステムのクラスタ通信制御部４に通知する。
【００２８】
ミラーディスク構成管理テーブル１０は、ミラーディスク２１の構成、状態と、管理情報用ディスク２２における更新領域管理テーブル２４の位置情報を保持するテーブルであり、ディスクミラーリング制御装置１００のＲＡＭ上でデータが保持されている。
【００２９】
更新領域管理テーブル１１は、ミラーディスク２１更新中の領域の位置情報を保持するテーブルであり、ディスクミラーリング制御装置１００のＲＡＭ上でデータが保持されている。
【００３０】
コピー管理テーブル１２は、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理実行中、コピーが必要な領域とコピーが済んだ領域の位置情報を持ち、ディスクミラーリング制御装置１００のＲＡＭ上で管理される。
【００３１】
次に、データ保持部２００内について説明する。ミラーディスク２１は、アプリケーションソフトウェア３００が発行したＩ／Ｏ要求のライトデータの複製を保持する。
【００３２】
管理情報用ディスク２２は、ミラーディスク構成管理テーブル２３と更新領域管理テーブル２４を保持する。これらミラーディスク構成管理テーブル２３と更新領域管理テーブル２４は、ディスクミラーリング制御装置１００のＲＡＭ上で管理されているミラーディスク構成管理テーブル１０、および更新領域管理テーブル１１を不揮発性に保持するための複製である。
【００３３】
次に、ディスクミラーリング制御装置１００の動作内容について説明する。
【００３４】
まず、ディスクミラーリング制御装置１００は、コピー元ディスクに不具合が発生したときに、代わりにコピー先ディスクを使用できるようにする。その前提として、コピー開始前のコピー元ディスクとコピー先ディスクとではデータが一致しない箇所があるが、どちらのデータも使用できる正当なデータであるものとする。
【００３５】
ディスクミラーリング制御装置１００は、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理を実行している間、コピー元ディスクにリード要求があった場合、まずその領域をコピー先ディスクにコピーしてからリード結果をアプリケーションソフトウェア３００へ返す。尚、ディスクミラーリング制御装置１００は、コピー済領域／未コピー領域の区別なくコピーする方式と、未コピー領域の場合だけコピーする方式のどちらでも適用可能である。
【００３６】
また、システムダウン後、ディスクミラーリング状態を復旧するためのデータコピー処理中にコピー元ディスクでエラーが発生した場合、コピー元ディスクの方をミラーリングから切り離し、コピー先ディスクを動作ディスクにする。ミラーリングしていたディスクが３つ以上の場合は、複数のコピー先ディスクのうち１つを動作ディスクとし、動作ディスクを新たなコピー元ディスクとして他のコピー先ディスクへのコピー処理を行う。
【００３７】
ディスクミラーリング制御装置１００の上述の動作内容を、図２に示す。従来の技術では、コピー先ディスクの未コピー領域のデータがコピー元ディスクと一致しない可能性があるため、動作ディスクの変更ができなかった。この問題を、以下の方法で解決する。尚、図２（Ａ）、図２（Ｂ）の説明は図１２（Ａ）、図１２（Ｂ）と同様であるため、説明を割愛する。
・ディスクミラーリング状態を復旧するためのデータコピー処理中に、コピー対象領域に対してアプリケーションソフトウェア３００からリード要求があった場合で、かつコピー元ディスクのリードが成功した場合、その領域をコピー先ディスクへコピーしてから、リード結果をアプリケーションソフトウェア３００に返す（図２（Ｃ）参照）。
・ディスクミラーリング状態を復旧するためのデータコピー処理中に、コピー対象領域に対してアプリケーションソフトウェア３００からリード要求があった場合で、かつコピー元ディスクのリードが失敗した場合、コピー先ディスクを新たな動作ディスク(かつコピー元ディスク)とし、新たな動作ディスクのリード結果を上位層に返す（図２（Ｄ）参照）。
これにより、コピー元ディスクとコピー先ディスクでデータが一致しない可能性がある領域は以下の条件をすべて満たすため、データが一致していなくても問題ない。
・システムダウン発生時にライト処理実行中(ライト未完了)だったため、ライト前のデータであるかライト後のデータであるかどちらであっても良い。
・システムダウン後、まだ一度もリードされていないため、コピー先ディスクのデータがコピー元ディスクと一致している必要がない。
・未コピー領域であるため、コピー先ディスクが複数ある場合は、そのうちの1つを新たな動作ディスク(コピー元ディスク)にした後、残りのコピー先ディスクにデータがコピーされ、コピーが済めばデータが一致する。
なお、上記「コピー対象領域に対してアプリケーションソフトウェア３００からリード要求があった場合」の条件を「未コピー領域に対して上位層からリード要求があった場合」に変更することにより、余計なコピー処理を省くことができる。以下の説明では、この「未コピー領域に対して上位層からリード要求があった場合」をメインに説明する。
【００３８】
次に、ミラーディスク構成管理テーブル１０のデータ構造を図３を参照しつつ説明する。まず、ミラーディスク構成管理テーブル１０のデータフォーマットを図３（Ａ）に示す。
【００３９】
更新領域管理テーブル使用フラグは、システム運用中に更新領域管理テーブル１１を使用するかどうかを表すフラグであり、「有効」または「無効」のいずれかの値をとる。この値は、ユーザがミラーリングの構成設定を行ったときに指定され、システム運用中に変更もできる。値の意味は以下のとおりである。
・有効  ・・・  システム運用中、Ｉ／Ｏミラーリング制御部１が更新領域管理テーブル１１を使用して、ミラーディスク２１の更新中領域の位置情報を管理する。この場合、システムダウン後のディスクミラーリング状態復旧のためのコピー処理では更新領域管理テーブル１１が参照され、更新中領域のみがコピーされる。
・無効  ・・・  システム運用中、更新領域管理テーブル１１は使用されない。この場合、システムダウン後のディスクミラーリング状態復旧のためのコピー処理では、ディスク全体の領域がコピーされる。
【００４０】
更新領域管理テーブルディスク番号は、更新領域管理テーブル２４が格納されている管理情報用ディスク２２のデバイス番号である。更新領域管理テーブルオフセットは、管理情報用ディスク２２上での更新領域管理テーブル２４の位置情報(オフセット)である。
【００４１】
ミラーディスク数は、ミラーディスク２１の数である。
【００４２】
ディスクリストは、ミラーディスク構成管理テーブル１０内で、各ミラーディスク２１の物理ディスク番号とディスク状態の組を保持している部分を指す。物理ディスク番号は、ミラーディスク２１のデバイス番号である。ディスク状態は、ミラーディスク２１の状態を表し、「ACTIVE」「COPY」「INVALID」のいずれかの値をとる。各値の意味は以下のとおりである。
・ACTIVE  ・・・  動作ディスクであることを示す。ACTIVE状態のミラーディスク２１が複数ある場合、それらのディスク内のデータは一致している。アプリケーションソフトウェア３００から発行されるＩ／Ｏ要求(リード／ライト)の複製の発行対象になる。また、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理では、ACTIVE状態のミラーディスク２１のうち１つが動作ディスクかつコピー元ディスクとして選択され、それ以外のACTIVE状態のミラーディスク２１がCOPY状態に変更されることで、コピー先ディスクとなる。
・COPY  ・・・  コピー先ディスクであることを示す。システムダウン後のディスクミラーリング状態を復旧するためのコピー処理において、ACTIVE状態のミラーディスク２１のうち１つが動作ディスクかつコピー元ディスクとして選択され、それ以外のACTIVE状態のミラーディスク２１がCOPY状態に変更されることで、コピー先ディスクとなる。COPYの値に設定されたミラーディスク２１は、唯一のACTIVE状態のディスク(動作ディスク＝コピー元ディスク)からデータがコピーされている。またCOPYの値に設定されたミラーディスク２１は、アプリケーションソフトウェア３００から発行されるライト要求の複製の発行対象になるが、リード要求の対象にはならない。
・INVALID  ・・・  ミラーリングから切り離されていることを示す。すなわち、アプリケーションソフトウェア３００から発行されたＩ／Ｏ要求(リード／ライト)の複製の発行対象にならない。
【００４３】
図３（Ｂ）に、上述のデータフォーマットの具体的数値例を示す。図３（Ｂ）で示した例では、以下のようになっている。
更新領域管理テーブル  ＝  有効
更新領域管理テーブルディスク番号  ＝  0x00010000
更新領域管理テーブルオフセット  ＝  0x00002000
ミラーディスク数  ＝  ２
１台目のミラーディスクの物理ディスク番号  ＝  0x00010001
１台目のミラーディスクのディスク状態  ＝  ACTIVE
２台目のミラーディスクの物理ディスク番号  ＝  0x00010002
２台目のミラーディスクのディスク状態  ＝  COPY
【００４４】
図４に、コピー管理テーブル１２と更新領域管理テーブル１１のデータ構造を示すとともに、またコピー管理テーブル１２、更新領域管理テーブル１１の各テーブル内のビットとミラーディスク２１の領域の対応関係を示す。本実施の形態では、ミラーディスク２１の領域は２ＭＢ単位で区切られ（図４（Ｃ）参照）、コピー管理テーブル１２の各ビットで各領域のコピー状況が管理され、更新領域管理テーブル１１の各ビットで各領域が更新中であるかどうかが管理される。
【００４５】
コピー管理テーブル１２は、０または１のいずれかの値をとる（図４（Ａ）参照）。値０は、ミラーディスク２１の該当領域は、ミラーリング状態を復旧するためのコピーが済んでいるか、または、コピーが不要である領域を意味する。値１は、ミラーディスク２１の該当領域は、ミラーリング状態を復旧するためのコピーが必要である領域を意味する。コピー管理テーブル１２は、システムダウン後、ディスクミラーリング状態を復旧するためのコピー処理開始時に、コピー制御部２によってＲＡＭ上に作成され、初期化される。
【００４６】
コピー制御部２によるコピー管理テーブル１２の初期化方法は以下のとおりである。すなわち、上述の更新領域管理テーブル使用フラグが有効と設定されている場合、コピー制御部２はコピー管理テーブル１２に更新領域管理テーブル１１をコピーする。これにより、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理では、システムダウン時に更新中だった領域だけがコピーされる。一方、更新領域管理テーブル使用フラグが無効と設定されている場合、コピー制御部２はコピー管理テーブル１２の全ビットに１を設定する。これにより、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理では、ディスク領域全体がコピーされる。
【００４７】
コピー制御部２は、コピー管理テーブル１２の先頭から終端まで１のビットに該当するミラーディスク２１の領域をコピーし、該当ビットを０に変更する。また、Ｉ／Ｏミラーリング制御部１は、コピー制御部２がコピー処理実行中にアプリケーションソフトウェア３００からディスクのリード要求を受理したとき、コピー管理テーブル１２内のリード対象領域に対応するビットが１であればリード対象領域をコピーし、該当ビットを０に変更する。
【００４８】
更新領域管理テーブル１１は、０または１のいずれかの値をとる（図４（Ｂ）参照）。値０は、ミラーディスク２１の該当領域は、更新中(ライト処理中)ではないことを意味する。値１は、ミラーディスク２１の該当領域は、更新中(ライト処理中)であることを意味する。
【００４９】
アプリケーションソフトウェア３００がデータ保持部２００に対しにライト要求を発行したとき、Ｉ／Ｏミラーリング制御部１がミラーディスク２１へのライト処理開始時に更新領域管理テーブル１１の該当ビットに１を設定し、ライト処理終了時に０を設定する。なお、Ｉ／Ｏミラーリング制御部１は、システムダウン後のディスクミラーリング状態を復旧するためのコピー処理実行中である場合、このビットの設定処理を行わない。
【００５０】
次に、本実施の形態に係るストレージ装置５００の動作について、図５から図１０までのフローチャートを参照しつつ説明する。尚、図５から図１０のフローチャートにおいて、破線で示した処理は本実施の形態の特徴的な処理である。
【００５１】
まず、復旧コピー処理実行中におけるリード処理のフローチャートを図５に示す。図５のフローチャートは、システムダウン後、コピー制御部２がディスクミラーリング状態を復旧するためのコピー処理を実行中に、アプリケーションソフトウェア３００がデータ保持部２００に発行したリード要求をＩ／Ｏミラーリング制御部１が受理し処理する方法を示している。従来のディスクミラーリング制御装置は、コピー元ディスクをリードし、成功した場合はアプリケーションソフトウェアにリード結果を返して終了し、一方失敗した場合は全コピー先ディスクをミラーリングから切り離す(状態をINVALIDに変更する)ことによってコピー処理の対象外としてからアプリケーションソフトウェアにリードエラーを返す。本実施の形態のディスクミラーリング制御装置１００は、コピー元ディスクのリードが成功した場合、その領域が未コピー(コピー管理テーブル１２の該当ビットが１)であればその領域のコピーを行ってからアプリケーションソフトウェア３００にリード結果を返す。コピー元ディスクのリードが失敗した場合、コピー先ディスクのうちの１つを新たな動作ディスク(すなわちコピー元ディスク)に変更し、新たな動作ディスクに対してリード要求を発行する。
【００５２】
図５のフローチャートに示す各ステップについて説明する。Ｉ／Ｏミラーリング制御部１は、動作ディスク（すなわちコピー元ディスク）をアプリケーションソフトウェア３００の要求に基づきリードする（Ｓ１）。Ｉ／Ｏミラーリング制御部１は、リードエラーであるかの判定を行い（Ｓ２）、エラーでない場合（Ｓ２、Ｎ）、Ｉ／Ｏミラーリング制御部１は、コピー管理テーブル１２内の該当ビットが１かを判定する（Ｓ３）。ビットが１である場合（Ｓ３、Ｙ）、コピー先ディスクへのコピー処理（後述）が実施される（Ｓ４）。
【００５３】
Ｉ／Ｏミラーリング制御部１は、コピー管理テーブル１２内の該当ビットを０に変更し（Ｓ５）、リード結果をアプリケーションソフトウェア３００に返す（Ｓ６）。尚、Ｓ３のビットの判定で、ビットが０である場合（Ｓ３、Ｎ）、Ｓ６の処理が実行される。
【００５４】
一方、Ｓ２のリードエラーの判定で、Ｉ／Ｏミラーリング制御部１はリードエラーであると判定した場合（Ｓ２、Ｙ）、Ｉ／Ｏミラーリング制御部１は、後述する動作ディスクの変更処理を実行する（Ｓ７）。ここで、Ｓ７の動作ディスクの変更処理がエラーである場合（Ｓ８、Ｙ）、Ｉ／Ｏミラーリング制御部１は、リードエラーをアプリケーションソフトウェア３００に返す（Ｓ９）。尚、Ｓ７の動作ディスクの変更処理がエラーでない場合（Ｓ８、Ｎ）、処理はＳ１へ戻る。
【００５５】
図６に復旧コピー処理実行中のライト処理のフローチャートを示す。このフローチャートは、システムダウン後、コピー制御部２がディスクミラーリング状態を復旧するためのコピー処理を実行中に、アプリケーションソフトウェア３００がデータ保持部２００に発行したライト要求をＩ／Ｏミラーリング制御部１が受理し処理する方法を示している。従来のディスクミラーリング制御装置は、コピー元ディスクへのライトが失敗した場合、全コピー先ディスクをミラーリングから切り離す(状態をINVALIDに変更する)ことによってコピー処理の対象外にしてから、アプリケーションソフトウェアにライトエラーを返している。本実施の形態に係るディスクミラーリング制御装置１００は、コピー元ディスクのライト処理が失敗した場合、コピー先ディスクのうちの１つを新たな動作ディスク(すなわちコピー元ディスク)に変更し、ライト処理を継続する。
【００５６】
図６のフローチャートに示す各ステップについて説明する。Ｉ／Ｏミラーリング制御部１は、ディスクミラーリング制御装置１００内のＲＡＭに所定のフラグ領域を設け、そのフラグ（以下、このようなフラグを結果フラグと称す。結果フラグは以降のフローチャートの説明でも随時使用されるが、処理ごとに異なる結果フラグが使用されることに留意する）に０を設定する（Ｓ１０）。ここでＩ／Ｏミラーリング制御部１は、ディスクリスト（図３（Ａ）参照）の先頭を参照し（Ｓ１１）、参照した物理ディスク番号のミラーディスク２１が切り離されている状態か（INVALIDか）を判定する（Ｓ１２）。そのミラーディスク２１が切り離されている場合（Ｓ１２、Ｙ）、Ｓ１８へと処理は続く。一方ミラーディスク２１が切り離されていない場合（Ｓ１２、Ｎ）、Ｉ／Ｏミラーリング制御部１はそのミラーディスク２１にデータをライトする（Ｓ１３）。
【００５７】
Ｉ／Ｏミラーリング制御部１は、ライトエラーであるかを判定する（Ｓ１４）。ライトエラーが発生しない場合（Ｓ１４、Ｎ）、Ｉ／Ｏミラーリング制御部１は結果フラグに１を設定し（Ｓ１５）、Ｓ１８へと処理は続く。一方、ライトエラーが発生した場合（Ｓ１４、Ｙ）、Ｉ／Ｏミラーリング制御部１は、ディスクの状態をディスクリストのディスク状態から確認する（Ｓ１６）。ここで、ライトエラーが発生したミラーディスク２１がコピー先ディスクである場合（Ｓ１６、コピー先ディスク（COPY））、Ｉ／Ｏミラーリング制御部１は、ディスク状態をINVALIDにすることでディスクの切り離しを行い、Ｓ１８へと処理は続く。
【００５８】
またライトエラーが発生したミラーディスク２１がコピー元ディスクである場合（Ｓ１６、コピー元ディスク＝動作ディスク（ACTIVE））、動作ディスクの変更処理が実行される（Ｓ２２）。動作ディスクの変更処理が正常終了である場合（Ｓ２３、Ｎ）、Ｓ１８へと処理は続く。一方動作ディスクの変更処理がエラー終了である場合（Ｓ２３、Ｙ）、Ｉ／Ｏミラーリング制御部１は結果フラグに０を設定し（Ｓ２４）、Ｓ１８へと処理は続く。
【００５９】
Ｉ／Ｏミラーリング制御部１は、ディスクリストの次のディスクを参照する（Ｓ１８）。Ｉ／Ｏミラーリング制御部１は、Ｓ１２からＳ１８までの処理をディスクリストの終端まで繰り返し実施する。
【００６０】
Ｓ１２からＳ１８までのループが完了した後、Ｉ／Ｏミラーリング制御部１は、結果フラグを確認し（Ｓ１９）、結果フラグが１の場合（Ｓ１９、Ｙ）、ライト成功をアプリケーションプログラム３００に返し（Ｓ２０）、結果フラグが０の場合（Ｓ１９、Ｎ）、アプリケーションプログラム３００にライトエラーを返す（Ｓ２１）。
【００６１】
図７、図８に復旧コピー処理のフローチャートを示す。このフローチャートは、システムダウン後、コピー制御部２がディスクミラーリング状態を復旧するために実行するコピー処理を示している。
【００６２】
従来のディスクミラーリング制御装置は、更新領域管理テーブル使用フラグが有効の場合は、更新領域管理テーブルの１のビットに該当する領域を順番にコピーしている。また、更新領域管理テーブル使用フラグが無効の場合は、ディスク領域全体を先頭から終端まで順番にコピーしている。本実施の形態に係るディスクミラーリング制御装置１００は、コピー制御部２の「復旧コピー処理」(図７、図８)のみならず、Ｉ／Ｏミラーリング制御部１の「復旧コピー処理実行中のリード処理」(図５)と「復旧コピー処理実行中のライト処理」(図６)でもコピー処理を行い、コピー管理テーブル１２でコピー状況を管理することにより未コピー領域だけをコピーできるようになる。
【００６３】
また、従来のディスクミラーリング制御装置は、コピー処理のためのコピー元ディスクのリードが失敗した場合、全コピー先ディスクをミラーリングから切り離し(状態をINVALIDに変更)、コピー処理を終了している。一方、本実施の形態に係るディスクミラーリング制御装置１００は、コピー処理のためのコピー元ディスクのリードが失敗した場合、コピー先ディスクのうち１つを新たな動作ディスク(すなわちコピー元ディスク)に変更し、コピー処理を継続する。
【００６４】
図７、８のフローチャートに示す各ステップについて説明する。コピー制御部２は、ミラーディスク構成管理テーブル１０内のディスクリストで、ACTIVE状態のディスクが複数あるかを確認することで、システムダウン前はミラーリング状態であったかを判定する（Ｓ３０）。コピー制御部２は、ここでシステムダウン前はミラーリング状態であったと判定した場合（Ｓ３０、Ｙ）、ACTIVE状態のミラーディスク２１のうち１つをコピー元ディスク（ACTIVE）とし、その他残りをコピー先ディスク（COPY）に変更する。尚、コピー制御部２は、ACTIVE状態のミラーディスク２１のうちで、ディスクリスト内で最初にエントリされている物理ディスク番号に対応しているミラーディスク２１をACTIVE状態とする。一方、Ｓ３０の判定で、コピー制御部２は、システムダウン前はミラーリング状態でなかったと判定した場合（Ｓ３０、Ｎ）、処理は終了する。
【００６５】
次にコピー制御部２は、更新領域管理テーブル使用フラグが有効であるか判定し（Ｓ３２）、有効である場合（Ｓ３２、Ｙ）、コピー管理テーブル１２に更新領域管理テーブル１１をコピーする（Ｓ３３）。一方、更新領域管理テーブル使用フラグが無効である場合（Ｓ３２、Ｎ）、コピー制御部２は、コピー管理テーブル１２のすべてのビットに１を設定する（Ｓ３４）。次にコピー制御部２は、コピー管理テーブル１２の先頭ビットを取得する（Ｓ３５）。
【００６６】
コピー制御部２は、取得したビットが１である場合（Ｓ３６、Ｙ）、コピー元ディスクの該当領域をリードする（Ｓ３７）。ここでリードエラーでない場合（Ｓ３８、Ｎ）、コピー制御部２は、コピー先ディスクへのコピー処理を実行する（Ｓ３９）。コピー制御部２は、Ｓ３９のコピー処理が成功したか否かを判定する（Ｓ４０）。ここでＳ３９のコピー処理が失敗である場合（Ｓ４０、Ｎ）、処理は終了する。一方、Ｓ３９のコピー処理が成功である場合（Ｓ４０、Ｙ）、コピー制御部２は、コピー処理が成功した領域に対応するコピー管理テーブル１２内のビットを０に変更する（Ｓ４１）。その後、コピー管理テーブルの次のビットを参照し（Ｓ４２）、ループの先頭であるＳ３６へ戻る。
【００６７】
尚、Ｓ３８でリードエラーが発生していると判定された場合（Ｓ３８、Ｙ）、コピー制御部２は、動作ディスクの変更処理を実行する（Ｓ４４）。動作ディスクの変更処理が成功であった場合（Ｓ４５、Ｎ）、コピー制御部２は、処理をＳ３７に戻し、エラーであった場合（Ｓ４５、Ｙ）、処理は終了する。
【００６８】
また、Ｓ３６で取得したビットの値が０である場合（Ｓ３６、Ｎ）、処理はＳ４２へ進む。
【００６９】
コピー制御部２は、Ｓ３６からＳ４２までの処理をコピー管理テーブル１２の終端に達するまで繰り返し、その後、コピー制御部２は、状態をCOPYからACTIVEへ変更することで、全コピー先ディスクを動作ディスクに変更する（Ｓ４３）。
【００７０】
次に、動作ディスクの変更処理を図９を参照しつつ説明する。このフローチャートは、コピー元ディスクの状態を動作ディスク(ACTIVE)から切り離し(INVALIDに変更)、コピー先ディスクのうち、１つのディスクの状態をコピー先ディスク(COPY)から動作ディスク(ACTIVE)に変更する処理を示している。また状態変更が失敗したコピー先ディスクは、ミラーリングから切り離す(状態をINVALIDに変更)。したがって、動作ディスクが変更できなかった場合、すべてのコピー先ディスクがミラーリングから切り離される(状態がINVALIDになる)。
【００７１】
この処理は、Ｉ／Ｏミラーリング制御部１の「復旧コピー処理実行中のリード処理」(図５)と、「復旧コピー処理実行中のライト処理」(図６)、および、コピー制御部２の「復旧コピー処理」(図７、８)において、コピー元ディスクでリード/ライトエラーが発生したときに呼び出される。
【００７２】
図９のフローチャートに示す各ステップについて説明する。以下の説明ではＳ７における動作ディスクの変更処理について説明するが、上述のようにＳ７以外でもＳ２２、Ｓ４４でも実行される。尚、以下の説明ではＳ７を例としているため、各ステップの動作を行う主体をＩ／Ｏミラーリング制御部１とするが（Ｓ２２での処理も同様にＩ／Ｏミラーリング制御部１が動作主体）、Ｓ４４で行われる場合各ステップの動作主体はコピー制御部２となることにも留意する。
【００７３】
まずＩ／Ｏミラーリング制御部１は、結果フラグに０を設定する（Ｓ５０）。Ｉ／Ｏミラーリング制御部１は、ディスクリストの先頭のデータ（物理ディスク番号とそのディスク状態のセット）を取得する（Ｓ５１）。
【００７４】
ここで、Ｉ／Ｏミラーリング制御部１は、取得した物理ディスク番号に対応したミラーディスク２１の状態がCOPYであるかを確認することで、当該ミラーディスク２１がコピー先ディスクであるかを判定する（Ｓ５２）。当該ミラーディスク２１がコピー先ディスクである場合（Ｓ５２、Ｙ）、Ｉ／Ｏミラーリング制御部１は、当該ミラーディスク２１を動作ディスク（すなわちACTIVE状態）に変更し、コピー元ディスクをINVALIDに変更することで切り離す（Ｓ５３）。ここで、Ｓ５３の処理が成功である場合（Ｓ５４、Ｎ）、結果フラグに１が設定され（Ｓ５５）、Ｓ５３の処理がエラーである場合（Ｓ５４、Ｙ）、当該ミラーディスク２１は切り離される（Ｓ５６）。
【００７５】
Ｉ／Ｏミラーリング制御部１は、ディスクリスト内の次のデータ（物理ディスク番号とそのディスク状態のセット）を取得し（Ｓ５７）、処理はＳ５２に戻る。
【００７６】
Ｉ／Ｏミラーリング制御部１は、Ｓ５２からＳ５７までの処理をディスクリストの終端に達するまで繰り返す。ただし、Ｓ５７の後、結果フラグが１である場合、処理はＳ５２には戻らずＳ５８に進む。
【００７７】
その後、Ｉ／Ｏミラーリング制御部１は、結果フラグが１である場合（Ｓ５８、Ｙ）、成功のステータスを処理の呼出し元へ返し（Ｓ５９）、０である場合（Ｓ５８、Ｎ）、失敗のステータスを処理の呼出し元へ返す（Ｓ６０）。
【００７８】
図１０に、コピー先ディスクへのコピー処理のフローチャートを示す。このフローチャートは、指定されたデータを、各コピー先ディスクの指定された領域にコピー(ライト)する処理を示している。コピー(ライト)が失敗したコピー先ディスクは、ミラーリングから切り離される(状態をINVALIDに変更)。１つ以上のコピー先ディスクへのコピー(ライト)が成功した場合は呼出し元に成功を返し、コピー(ライト)が成功したミラーディスク２１が１つもない場合は呼出し元に失敗を返す。
【００７９】
この処理は、Ｉ／Ｏミラーリング制御部１の「復旧コピー処理実行中のリード処理」(図５)と、コピー制御部２の「復旧コピー処理」(図７、８)から呼び出される。
【００８０】
図１０のフローチャートに示す各ステップについて説明する。以下の説明ではＳ４におけるコピー先ディスクへのコピー処理について説明するが、上述のようにＳ４以外でもＳ３９でも実行される。尚、以下の説明ではＳ４での例であるため、各ステップの動作を行う主体をＩ／Ｏミラーリング制御部１とするが、Ｓ３９で行われる場合各ステップの動作主体はコピー制御部２となることにも留意する。
【００８１】
Ｉ／Ｏミラーリング制御部１は、結果フラグに０を設定する（Ｓ７０）。Ｉ／Ｏミラーリング制御部１は、ディスクリストの先頭のデータ（物理ディスク番号とそのディスク状態のセット）を取得する（Ｓ７１）。
【００８２】
ここで、Ｉ／Ｏミラーリング制御部１は、取得した物理ディスク番号に対応したディスクの状態がCOPYであるかを確認することで、当該ミラーディスク２１がコピー先ディスクであるかを判定する（Ｓ７２）。当該ミラーディスク２１がコピー先ディスクである場合（Ｓ７２、Ｙ）、Ｉ／Ｏミラーリング制御部１は、当該ミラーディスク２１にデータをライトする（Ｓ７３）、ここでライトエラーが生じた場合（Ｓ７４、Ｙ）、Ｉ／Ｏミラーリング制御部１は、ライトエラーが生じたミラーディスク２１の状態をINVALIDに変更することで、切り離しを行う（Ｓ７６）。一方、ライトエラーが生なかった場合（Ｓ７５、Ｎ）、Ｉ／Ｏミラーリング制御部１は、結果フラグに１を設定する（Ｓ７５）。
【００８３】
Ｉ／Ｏミラーリング制御部１は、ディスクリスト内の次のデータ（物理ディスク番号とそのディスク状態のセット）を取得し（Ｓ７７）、処理はＳ７２に戻る。尚、Ｓ７２で当該ミラーディスク２１がコピー先ディスクでない場合（Ｓ７２、Ｎ）、処理はＳ７７へ進む。
【００８４】
Ｉ／Ｏミラーリング制御部１は、Ｓ７２からＳ７７までの処理をディスクリストの終端に達するまで繰り返す。
【００８５】
その後、Ｉ／Ｏミラーリング制御部１は、結果フラグが１である場合（Ｓ７８、Ｙ）、１つ以上のコピー先ディスクへのコピーが成功した旨の成功ステータスを処理の呼出し元へ返し（Ｓ７９）、０である場合（Ｓ７８、Ｎ）、コピーが成功したコピー先ディスクが１つもない旨の失敗ステータスを処理の呼出し元へ返す（Ｓ８０）。
【００８６】
ここで、ディスクミラーリング制御装置１００のハードウェア構成について図１１を参照しつつ説明する。ディスクミラーリング制御装置１００は、演算処理装置であるＣＰＵ（Central Processing Unit）９０１、主記憶装置であるＲＡＭ（Random Access Memory）９０２、不揮発性の記憶装置であるＲＯＭ(Read Only Memory)９０３を備え、またデータ保持部２００内のミラーディスク２１、管理情報用ディスク２２とのデータの送受信用のバスや、アプリケーション３００等の上位層との通信が可能なバスの集合であるＩ／Ｏ部９０４を備える。尚、ディスクミラーリング制御装置１００内の図１で示した各機能ブロックは、ＣＰＵ９０１、ＲＡＭ９０２、ＲＯＭ９０３、Ｉ／Ｏ部９０４のハードウェア資源と、ＲＯＭ９０３内に予め保持されているファームウェアとが協働することで実現される。
【００８７】
本実施の形態のストレージ装置５００は、１筐体のコンピュータ内に備えられるものであってもよく、また外部のコンピュータからデータのリード要求／ライト要求を受付け、要求に基づき処理を実行するものであってもよい。尚、ストレージ装置５００が１筐体のコンピュータ内に備えられている場合、コンピュータ内のＣＰＵ、ＲＡＭ、ＲＯＭ、Ｉ／Ｏ部のハードウェアリソースを用いることでも上述の各機能部を実現することが可能である。
【００８８】
また、本実施の形態で示したストレージ装置５００は、ミラーリングするミラーディスク２１が２つの場合でも、３つ以上の場合でも適用できる。また、以下のどの場合でも適用できる。
【００８９】
すなわち本実施の形態のストレージ装置５００は、単一ホストコンピュータシステム(非クラスタシステム)がダウンした後、システムの再起動時にディスクミラーリング状態を復旧する場合でも適用可能であり、また複数のホストコンピュータにデータ保持部２００が共用ディスクとして接続されているクラスタシステムにおいて、運用システムがダウンした後、待機システムでデータ保持部２００のミラーリング状態を復旧する場合でも適用可能である。
【００９０】
本実施の形態のディスクミラーリング制御装置１００、ストレージ装置５００によって、たとえミラーリング状態に復旧している最中にコピー元ディスクでエラーが発生したでもコピー先ディスクを新たな動作ディスクにすることで、データ保証と動作継続を実現することができる。
【００９１】
また、図１２に示すように、ストレージ装置とディスクミラーリング制御装置とが分離した構成であってもよい。このように、ディスクミラーリング制御装置１００は、ストレージ装置５００Ａ内に無い構成であっても、本実施の形態は適用可能である。
【００９２】
以上、本実施の形態によれば、以下の付記で示す技術的思想が開示されている。
（付記１）  複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置であって、
前記複数の記憶装置のうちから１つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、
前記コピー制御部によるコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするＩ／Ｏミラーリング制御部と、を備え、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
（付記２）  付記１に記載のミラーリング制御装置において、
前記Ｉ／Ｏミラーリング制御部は、さらに、前記リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするときに行う前記領域へのリード処理でエラーが発生した場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
（付記３）  付記１に記載のミラーリング制御装置において、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層から前記複数の記憶装置へのライト要求が発生し、前記複数の記憶装置のうち少なくとも一つにライトエラーが発生した場合、該ライトエラーが前記コピー元記憶装置で発生した場合該コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御装置。
（付記４）  付記１に記載のミラーリング制御装置において、
前記Ｉ／Ｏミラーリング制御部は、前記リード要求が前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合のみ、該領域のデータを前記コピー先記憶装置へコピーすることを特徴とするミラーリング制御装置。
（付記５）  付記１に記載のミラーリング制御装置において、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記コピー元記憶装置でリード要求に対するリードエラーが発生した場合、前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御されたコピー先記憶装置のデータをその他のコピー先記憶装置にコピーすることで、コピー処理を継続することを特徴とするミラーリング制御装置。
（付記６）  複数の記憶装置と、
前記複数の記憶装置によるデータの冗長化を維持するミラーリング制御装置とを備え、
該ミラーリング制御装置は、
前記複数の記憶装置のうちから１つの記憶装置をコピー元記憶装置として選択し、該コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーするコピー制御部と、
前記コピー制御部によるコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするＩ／Ｏミラーリング制御部と、を備え、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするストレージ装置。
（付記７）  付記６に記載のストレージ装置において、
前記Ｉ／Ｏミラーリング制御部は、さらに、前記リード要求に対応する領域のデータを前記コピー先記憶装置へコピーするときに行う前記領域へのリード処理でエラーが発生した場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするストレージ装置。
（付記８）  付記６に記載のストレージ装置において、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記上位層から前記複数の記憶装置へのライト要求が発生し、前記複数の記憶装置のうち少なくとも一つにライトエラーが発生した場合、該ライトエラーが前記コピー元記憶装置で発生した場合該コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするストレージ装置。
（付記９）  付記６に記載のストレージ装置において、
前記Ｉ／Ｏミラーリング制御部は、前記リード要求が前記コピー制御部によるコピー処理が済んでいない領域に対するリード要求である場合のみ、該領域のデータを前記コピー先記憶装置へコピーすることを特徴とするストレージ装置。
（付記１０）  付記６に記載のストレージ装置において、
前記コピー制御部は、さらに、該コピー制御部によるコピー処理中に、前記コピー元記憶装置でリード要求に対するリードエラーが発生した場合、前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御されたコピー先記憶装置のデータをその他のコピー先記憶装置にコピーすることで、コピー処理を継続することを特徴とするストレージ装置。
（付記１１）  複数の記憶装置によるデータの冗長化を維持するミラーリング制御方法であって、
前記複数の記憶装置のうちから１つの記憶装置をコピー元記憶装置として選択し、
前記コピー元記憶装置内のデータを、前記複数の記憶装置同士のデータを等価状態にするために、前記コピー元記憶装置とは異なる記憶装置であって前記複数の記憶装置内の記憶装置である少なくとも一つのコピー先記憶装置へコピーし、
前記等価状態にするためのコピー処理中に、上位層からの前記コピー元記憶装置へのリード要求がある場合、該リード要求に対応する領域のデータを前記コピー先記憶装置へコピーし、
さらに、前記等価状態にするためのコピー処理中に、前記上位層からの前記コピー元記憶装置へのリード要求に対する処理が前記コピー元記憶装置でエラーとなる場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御方法。
（付記１２）  付記１に記載のミラーリング制御方法において、
さらに、前記領域のデータを前記コピー先記憶装置へコピーするときに行う前記領域へのリード処理でエラーが発生した場合、前記コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御方法。
（付記１３）  付記１１に記載のミラーリング制御方法において、
さらに、前記等価状態にするためのコピー処理中に、前記上位層から前記複数の記憶装置へのライト要求が発生し、前記複数の記憶装置のうち少なくとも一つにライトエラーが発生した場合、該ライトエラーが前記コピー元記憶装置で発生した場合該コピー元記憶装置が使用不可の状態となるよう制御し、また前記コピー先記憶装置のうち少なくとも一つが前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御することを特徴とするミラーリング制御方法。
（付記１４）  付記１１に記載のミラーリング制御方法において、
前記領域のデータを前記コピー先記憶装置へコピーする処理は、前記リード要求が前記等価状態にするためのコピー処理が済んでいない領域に対するリード要求である場合のみ、該領域のデータを前記コピー先記憶装置へコピーすることを特徴とするミラーリング制御方法。
（付記１５）  付記１１に記載のミラーリング制御方法において、
前記等価状態にするためのコピー処理中に、前記コピー元記憶装置でリード要求に対するリードエラーが発生した場合、前記上位層からのリード要求に対する処理を行う記憶装置となるよう制御されたコピー先記憶装置のデータをその他のコピー先記憶装置にコピーすることで、コピー処理を継続することを特徴とするミラーリング制御方法。
【符号の説明】
【００９３】
１  Ｉ／Ｏミラーリング制御部、２  コピー制御部、３  ミラーディスク構成管理部、４  クラスタ通信制御部、１０  ミラーディスク構成管理テーブル、１１  更新領域管理テーブル、１２  コピー管理テーブル、２１  ミラーディスク、２２  管理情報用ディスク、１００  ディスクミラーリング制御装置、２００  データ保持部、３００  アプリケーションソフトウェア、５００、５００Ａ  ストレージ装置。
【図１】
2010186285.tif 000003
【図２】
2010186285.tif 000004
【図３】
2010186285.tif 000005
【図４】
2010186285.tif 000006
【図５】
2010186285.tif 000007
【図６】
2010186285.tif 000008
【図７】
2010186285.tif 000009
【図８】
2010186285.tif 000010
【図９】
2010186285.tif 000011
【図１０】
2010186285.tif 000012
【図１１】
2010186285.tif 000013
【図１２】
2010186285.tif 000014
【図１３】
2010186285.tif 000015