(57)【要約】【課題】データの保護及び安全性を確保するために、複数拠点へデータのシステムバックアップを保管する場合、保存先拠点が増えるほど必要となるストレージの容量が多くなる。【解決手段】複数拠点に存在するストレージをRAIDのデータ部またはパリティ部として構成し、これらをまとめて１つの仮想ストレージとして構成する。仮想ストレージはパリティ部のついたRAID構成とすることで、一箇所で障害が発生してもデータの回復は可能となり、バックアップ及びリストアを実施しなくともデータの回復が可能となる。データの保護の為にフルバックアップを取得する必要がなくなるため、全体で必要なストレージの容量を減らす事ができる。【選択図】図１
2008305213.tif 000002
【特許請求の範囲】
【請求項１】
複数の分散拠点や装置上にあるストレージ装置を用いて、仮想的なストレージを構成する事により、バックアップを取得する事なく、少ない容量で装置の障害などからのデータ破壊を防ぐ方式。
【請求項２】
複数の分散拠点や装置上にあるストレージ装置を用いて構成する仮想的なストレージ構成において、仮想ストレージ構成情報を使用する事で、システムを停止する事なくストレージの追加し仮想ストレージ領域の拡張を可能とする方式。
【請求項３】
複数の分散拠点や装置上にあるストレージ装置を用いて構成する仮想的なストレージ構成において、仮想ストレージ構成情報を使用する事で、障害が発生した場合でもシステムを停止する事なく障害復旧を可能とする方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散型仮想ストレージに関する方法、製品、装置、システムに関する。
【背景技術】
【０００２】
従来の公知例では、データを使用するホストがある拠点とは別の拠点にデータのフルバックアップを行い、障害などが発生した時に備えるようにしていた。この場合各拠点にフルバックアップデータを保持する必要がある。各拠点には元のデータと同じだけの容量を持つ必要があり、拠点数が増えるほど必要となるストレージのディスク容量が大きくなっていく。
【０００３】
【特許文献１】特開２００５−１８５１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の公知例では、データを保護するために複数の拠点にフルバックアップを行うため、データをバックアップする先の拠点が増えるほど、必要なストレージのディスク容量が大きくなる。
【０００５】
本発明では、この問題を解消するためにデータのバックアップを行う事なく、障害などの理由によりデータの破壊が発生した場合でも復旧を可能とする。また、必要となるディスクの容量も、従来技術と比べて削減を可能とする。
【０００６】
従来の公知例では、各サイトで同じ情報を保有する方式でありシステムを稼動したままの状態では、領域を拡張する事ができない。本発明においては業務を止める事なく、仮想ストレージの領域を拡張する事が可能とする。
【０００７】
従来の公知例では、メインサイトにあるディスクに障害が発生した場合には一旦システムを停止してリストアを行い、業務を再開する必要がある。本発明においては、障害が発生してもシステムを止める事なく業務の続行を可能とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明ではiSCSIなど高速ネットワーク上に存在し相互接続されているか、あるいはFCなどのケーブルで相互接続された、３つ以上のストレージをRAID構成の要素と見立てた仮想的な１つストレージとして構成する。仮想ストレージ上のRAID構成は、パリティ部を１つ以上含んだRAID5またはRAID6などの構成であると前提し、ストレージ装置のうち１つに障害が発生した場合でも復旧が可能な状態とする。各ストレージは、物理的に別なストレージである事が前提であり、別拠点やサイト、あるいは単に別装置にある構成でも利用できる。
【０００９】
仮想ストレージを利用するホストサーバは、仮想ストレージ構成ディスクのいずれかとFCなどで接続を行う。
【００１０】
仮想ストレージの管理を行うための管理サーバが存在し、管理者による仮想ストレージの構成定義などの管理作業は管理サーバから行う。
【００１１】
仮想ストレージを構成する各ストレージの内部制御は、ホストサーバへの処理インタフェースを行うI/Oインタフェースと、仮想ストレージの制御を行う仮想ストレージマネージャ、仮想ストレージ構成ディスクへの入手力処理を行う仮想ストレージエージェントに分かれて処理を行う。
【００１２】
また仮想ストレージを構成するストレージは、仮想ストレージの構成を示す仮想ストレージ構成定義と、最近のアクセス情報を示す仮想ストレージキャッシュファイル、入出力のリクエストの内容を示す仮想ストレージジャーナル及び、仮想ストレージの実体のデータを持つ仮想ストレージ構成ディスクで構成されている。
【００１３】
仮想ストレージを構成するストレージを追加する場合、追加ストレージをネットワーク上に接続した後、管理サーバから構成定義ファイルの更新を行う。構成定義の更新が行われた場合には、仮想ストレージマネージャは即座に各仮想ストレージ構成ディスクの内容を、新しい構成定義ファイルに合せた状態に更新するよう、旧仮想ストレージ構成ディスクの内容を読み取り、内容を新しい仮想ストレージ構成ディスクへ展開する。新しい仮想ストレージの構成への展開中に、ホストサーバからの入出力要求が来た場合には、仮想ストレージマネージャは一旦新しい仮想ストレージ構成への展開を中断し、新たな各仮想ストレージ構成ディスクへの入出力要求を行う。入出力を行う仮想領域が新たな仮想ストレージ構成ディスクに展開されていない場合は、元の仮想ストレージ構成ディスクの内容を一旦読み取り、内容を更新してから、入出力リクエストへの返答と、新たな各仮想ストレージ構成ディスクへの展開を行う。これにより、業務やシステムなどの処理を中断する事なくストレージを追加し、仮想ストレージの領域を拡張する事が可能となる。
【００１４】
１つの仮想ストレージ構成ディスクに障害が発生しアクセスができなくなった場合、仮想ストレージマネージャは、残りの仮想ストレージ構成ディスクへのアクセスを行う。各仮想ストレージ構成ディスクは、仮想ストレージのRAID構成の１要素として構成されるため、１つに障害が発生しても処理の継続は可能となる。このため障害が発生してもリストアを実施する事なく、業務の継続が可能となる。障害復旧後は、仮想ストレージマネージャが各仮想ストレージ構成ディスクに対して再構成処理を行う事で、業務やシステムを停止する事なく復旧処理を完了する事が可能となる。
【００１５】
このため、定期的にバックアップを必要とする従来の方式に比べて必要なディスク容量が少なくなり、障害復旧のために業務やシステムを中断しデータのリストアを行う必要がなくなる。
【発明の効果】
【００１６】
複数拠点に分散したディスク構成でのシステムの場合、従来のシステムフルバックを取得する方式に比べて、本発明で使用する仮想ストレージ構成ディスクの数をｎとした場合、システム全体で必要なディスク容量は従来と比較して約ｎ／ｍ（ｎ−１）で済む事になる。従来方式での拠点数が３で、本発明での拠点数が３である場合、必要なディスク容量は約1/2で済むようになる。また、定期的なデータのフルバックアップを取得する事なく障害からのの復旧が可能となる。
【００１７】
従来は業務やシステムを止めた状態でのみディスクの追加が可能であったが、本発明により、止める事なくディスクを追加し、領域の拡張する事が可能となる。
【００１８】
障害からの復旧処理においては、従来は業務やシステムを止めた上で、リストア処理を行ってから復旧していたが、本発明では業務やシステムを停止する事なく、またバックアップからのリストアも行う事なく障害からの復旧処理が可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の一実施形態を説明する。
【００２０】
図１は本発明の一実施形態が適用された分散型仮想ストレージの概略図である。図示するように、本実施形態の分散型仮想ストレージは、高速なネットワーク上に相互接続された複数のストレージ装置、ストレージ装置にFCで接続したホストサーバ、ストレージ装置にネットワーク接続した仮想ストレージ管理サーバを有する。
【００２１】
複数のストレージ内にあるディスクは、仮想ストレージとして構成され、ホストサーバからアクセスされる。仮想ストレージの構成は、ネットワークに接続される仮想ストレージ管理サーバより行う。仮想ストレージ管理サーバには、仮想ストレージ管理用のプログラムがインストールされている。
【００２２】
ホストサーバはFCでストレージ装置のうち１台と接続し、仮想ストレージを利用する。ホストサーバには、中規模以上のDBサーバやアプリケーションサーバ、あるいはファイルサーバなどとして利用される事が想定されるが、内蔵ディスクを利用する場合と比べて、仮想ストレージを利用する上で必要となるのはFCとドライバ程度である。これらを利用するため追加で必要となるCPUやメモリ、ディスクの所要量は極めて小さいものと想定され、ホストサーバとして動作に必要なスペックは、利用時における最新のサーバ用OSが安定的に動作するために推奨されているCPUやメモリやディスクなどであると想定する。ただし、実際の利用においては、当該サーバの利用目的により必要なスペックが追加される。
【００２３】
管理サーバには、GUIなどのユーザインタフェースを持ち、仮想ストレージ情報の設定及び確認を画面上から可能な、ネットワークを経由して仮想ストレージ構成情報の書込み及び読出しの機能を有する管理プログラムを搭載する必要がある。管理プログラムで必要とされる機能は多くなく、動作に必要と想定されるCPUやメモリ所要量は、近年のパソコンスペックと比較しても小さいレベルのものと考えられる。
【００２４】
管理サーバ専用として使用する場合、管理サーバに必要なスペックは、利用時における最新のパソコン用OSが安定的に動作するために推奨されているCPUやメモリやディスクなどであると想定する。
【００２５】
図２は仮想ストレージを構成するストレージ装置の概略図である。図示するように、ストレージ装置の内部は、仮想ストレージ構成ディスク、仮想ストレージキャッシュ、仮想ストレージジャーナル、仮想ストレージ構成情報及び制御部から構成される。
【００２６】
制御部は、ホストサーバからの入出力要求を制御する入出力インタフェースと、仮想ストレージへの入出力情報を制御する仮想ストレージマネージャ、仮想ストレージの実態である仮想ストレージ構成ディスクへ実際の書込み及び読込みを行う仮想ストレージエージェントの３つの制御から成る。
【００２７】
仮想ストレージキャッシュは仮想ストレージの容量よりは小さい、一定のサイズを持つ領域であり、高速なディスクやメモリなどの記憶装置によって構成される。最近ホストサーバから仮想ストレージに対して入出力が実施された領域の情報を保存する。仮想ストレージキャッシュは、システム稼動当初は何も書込まれていない領域であり、入出力インタフェースのみが更新する領域である。ホストサーバからの出力要求を受けたとき、または入力要求に対して仮想ストレージマネージャからデータが返ってきた時に入出力インタフェースによって書込まれる。
また仮想ストレージの情報は、入出力インタフェースがホストサーバからの要求に対して、最初にアクセスする領域である。図３は仮想ストレージキャッシュの内容例である。
【００２８】
仮想ストレージジャーナルは、一定のサイズを持った領域であり、高速なディスクやメモリなどの記憶装置によって構成される。ホストサーバから仮想ストレージに対しての要求そのものが１件毎に保存される。仮想ストレージ構成ディスクは、システム稼動当初は何も書込まれていない領域であり、仮想ストレージマネージャがホストサーバからの入出力要求がある毎に１件作成される。内容の更新は、出力要求時の各仮想ストレージ構成ディスクに対しての書込み完了された時に仮想ストレージマネージャが要求可否の情報を更新する場合と、入力要求時に各仮想ストレージ構成ディスクからの読込み完了した時に仮想ストレージマネージャがデータ内容と要求可否を更新する場合である。
【００２９】
図４は仮想ストレージジャーナルの内容例である。
【００３０】
仮想ストレージ構成情報は、一定または不定なサイズを持った領域であり、高速なディスクやメモリなどの記憶装置によって構成される、仮想ストレージの構成情報が保管される。仮想ストレージ構成情報は、仮想ストレージを動作させるために必須のものであり、システム稼動開始前に管理サーバの管理プログラムより設定を行われる必要がある。システム稼動後は、仮想ストレージマネージャにより、仮想ストレージ構成ディスクの部分に関する情報が更新される場合がある。
【００３１】
装置の台数や、装置の場所情報、RAIDの方式、仮想ストレージの状態などの情報を含むヘッダ部と、仮想ストレージの各領域の内容が実際にどのストレージ装置のどの位置に保存されているかを示すボディ部の２つから成る。ボディ部には、RAIDのデータ部に当たるかパリティ部に当たるかを示すデータの種別情報も格納される。
【００３２】
図５は、仮想ストレージ構成情報の内容例である。
【００３３】
入出力インタフェースは、ホストサーバからの入出力要求に対しての応答を行う。
【００３４】
仮想ストレージマネージャは、仮想ストレージジャーナルと仮想ストレージ構成情報の内容を確認し、仮想ストレージエージェントを通して各仮想ストレージ構成ディスクに対する具体的な入出力要求を行う。
【００３５】
仮想ストレージエージェントは、仮想ストレージマネージャから依頼された入出力要求を、自ホストストレージ上にある仮想ストレージ構成ディスクに対して行う。
【００３６】
ホストサーバからの入出力依頼が来た場合の処理概要を、図６に示す。
【００３７】
ホストサーバから出力要求が来た場合の出力処理シーケンスを図７に示す。
【００３８】
入出力インタフェースは、ホストサーバからの出力要求が来た場合、仮想ストレージキャッシュに書込み、仮想ストレージジャーナルに対して要求内容・アドレス・サイズ・データ内容の書込みを行う。これらの書込みが完了すると、その時点でホストサーバへの書込み完了の応答を行う。
【００３９】
ジャーナルへの書込みが行われると、仮想ストレージマネージャはジャーナル上のアドレス・サイズ・データ内容の読込みを行う。読込んだ内容は、各仮想ストレージ構成ディスクへの書込みを行うため、仮想ストレージマネージャの内部バッファに、RAID構成のデータ部とパリティ部に分割する。
【００４０】
仮想ストレージマネージャは、仮想ストレージ構成情報から仮想ストレージアドレスに対応した、各仮想ストレージ構成ディスク上のアドレスを読込み、その情報とデータ部またはパリティ部の情報を各仮想ストレージエージェントへ送付する。新規の仮想ストレージ領域への書込みの場合には、アドレス情報を付加せずに各仮想ストレージエージェントへ送付する。
【００４１】
仮想ストレージエージェントは、仮想ストレージマネージャよりデータのアドレスと内容が送付された場合、その内容を実際に仮想ストレージ構成ディスクへ書込みを行う。書込みが完了すると、仮想ストレージエージェントは仮想ストレージマネージャへ書込み完了の通知を行う。内容のみが送付された場合、書込みが完了した後、書込み完了の通知を行うと共に、データを書込んだアドレスを通知する。
【００４２】
仮想ストレージマネージャは各仮想ストレージエージェントからの報告を受け、新規の仮想ストレージ領域への書込みだった場合には、構成情報の仮想ストレージ構成ディスクにあるアドレス情報の更新を行う。また、ジャーナルの当該レコードに対して、要求が可であった旨の更新処理を行う。
【００４３】
なお、仮想ストレージエージェントから完了通知の報告が来なかった場合、エラーが報告された場合などは、ジャーナルの要求可否は否とし、また仮想ストレージ構成情報の構成ディスク情報にある障害回数のカウントアップを行う。正常完了しなかったジャーナルについては、後で一括してバッチなどで再実行を実施し、キャッシュの内容と仮想ストレージ構成情報の内容に不一致が生じないようにする。
【００４４】
また、ディスクの障害は、仮想ストレージエージェントが使用するデバイスマネージャより障害通知された場合に、仮想ストレージエージェントから報告するものとし、この場合仮想ストレージマネージャが仮想ストレージ構成情報のヘッダ部分に、当該ディスクが障害である事を書込み、以降の処理で当該ディスクを使用しないようにする（仮想ストレージエージェントの障害処理に関しては不図示）。
【００４５】
依頼されたデータが仮想ストレージキャッシュ内に含まれている場合の、入力処理シーケンスを図８に示す。入出力インタフェースは最初にキャッシュを確認し、データがある場合は仮想ストレージジャーナルへアクセスせず、仮想ストレージキャッシュの内容をホストサーバへ返して処理を完了する。
【００４６】
依頼されたデータが仮想ストレージキャッシュ内に含まれていない場合の、入力処理シーケンスを図９に示す。具体的な処理の流れは以下に示す。
【００４７】
入出力インタフェースはキャッシュを読込む。入力要求された領域がキャッシュに含まれていない事を確認し、仮想ストレージジャーナルへ要求内容・アドレス・サイズを書込む。
【００４８】
仮想ストレージマネージャは、仮想ストレージジャーナルの内容読込みを行い、読込みを要求された仮想ストレージ上のアドレスとサイズを確認する。次に仮想ストレージ構成情報を読込む。実際に読込む仮想ストレージ構成情報上のアドレスを確認し、各仮想ストレージエージェントに対して読込み要求を行う。
【００４９】
各仮想ストレージエージェントは、構成ディスクの内容を読込み、その内容を仮想ストレージマネージャへ返す。
【００５０】
仮想ストレージマネージャは、各ストレージエージェントから返された読込み内容を元に、データを組立ててジャーナルにデータ内容と、要求可否が可であった事を書込む。
【００５１】
なお、仮想ストレージエージェントから読込み内容が返って来なかった場合、エラーが報告された場合などは、ジャーナルに要求可否が否である事を書込み、入出力インタフェースがホストサーバへエラーを返せるようにする。また仮想ストレージ構成情報にある構成ディスク情報の障害回数のカウントアップを行う。
また、ディスクの障害は、仮想ストレージエージェントが使用するデバイスマネージャより障害通知された場合に、仮想ストレージエージェントから報告するものとし、この場合仮想ストレージマネージャが仮想ストレージ構成情報のヘッダ部分に、当該ディスクが障害である事を書込み、以降の処理で当該ディスクを使用しないようにする（仮想ストレージエージェントの障害処理に関しては不図示）。
【００５２】
入出力インタフェースは、仮想ストレージジャーナルの要求可否の状態とデータ内容を読込み、データ内容をホストサーバへ返す。入出力インタフェースはキャッシュにデータ内容を書込み、入力処理を完了する。
【００５３】
仮想ストレージ構成ディスク追加時の処理概要を図１０に、処理シーケンスを図１１に示す。
【００５４】
仮想ストレージ構成ディスクを追加する場合、仮想ストレージ管理サーバで管理プログラムを起動し、追加する構成ディスク情報や追加処理の実施を指定する。
【００５５】
管理プログラムから追加の指定が行われると、その情報はストレージ構成情報に書込まれる。また、追加処理の実施を指定すると、実際に仮想ストレージへの追加処理が実施される。
【００５６】
仮想ストレージマネージャは、管理プログラムから追加処理の実施を指定されると、仮想ストレージ構成情報にある構成ディスクの台数・位置情報を確認し、各仮想ストレージ構成ディスクの内容更新を開始する。更新処理を開始すると、仮想ストレージマネージャは構成情報の状態を「更新中」に変更する。
【００５７】
仮想ストレージマネージャは、仮想ストレージのブロック単位に、既存の仮想ストレージ構成ディスクの読込みを仮想ストレージエージェントへ依頼する。仮想ストレージエージェントは仮想ストレージマネージャへ読込んだ内容を返す。
【００５８】
仮想ストレージマネージャは、返された内容を元に、新しい構成に従いデータ部とパリティ部を再構成する。再構成したデータとパリティは、追加ディスクを含んだ各仮想ストレージエージェントへ書込み依頼を行う。各ストレージエージェントは、構成ディスクへ書込みを行い、書込み結果を仮想ストレージマネージャへ返す。仮想ストレージマネージャは、仮想ストレージ構成情報に、仮想ストレージの領域が実際にどの領域に書込まれたかの情報を書込む。
【００５９】
ストレージ追加時の更新処理中、仮想ストレージマネージャは仮想ストレージジャーナルのチェックを行い、新規の入出力要求の有無を確認する。入出力要求が来ていた場合、仮想ストレージマネージャは一旦更新処理を中断し、入出力要求に応じる。入出力要求に対する処理は、通常の入出力要求に対する処理と同じである（不図示）。入出力処理完了後、再度更新処理を続行する。
【００６０】
更新処理を完了すると、仮想ストレージマネージャは構成情報の状態を「稼動中」に変更する。
【００６１】
いずれか１台の仮想ストレージ構成ディスクで障害が発生した場合でも、仮想ストレージの各ディスクはRAID構成されているため、処理の続行が可能である。
【００６２】
ディスクの障害が発生した場合、仮想ストレージマネージャは、仮想ストレージ構成情報のヘッダにある構成ディスク情報に障害があるディスクを確認した場合、それ以降は自動的に構成ディスクの状態を「縮退中」に変更する。書込み時はデータ部またはパリティ部を減らした状態で仮想ストレージへ書込みを行い、データ部が読込めない場合には、パリティ部を用いデータを復元してデータを読込むようにする。なお、仮想ストレージ情報のヘッダ部にある構成ディスク情報に、それぞれのディスクで発生した障害回数の情報を保管しているため、この回数が多くなった場合に自動的に当該ディスクを使用しなくなるような実装も可能となる。
【００６３】
仮想ストレージ構成ディスクに障害が発生した場合の処理概要を図１２に示す。
【００６４】
障害時の出力処理シーケンスを図１３に示す。
【００６５】
基本的には通常出力シーケンスと同様であり、異なる点は、仮想ストレージマネージャが構成情報を読込む部分から、構成情報を更新するまでの部分である。以下、異なる処理の内容を記述する。
【００６６】
仮想ストレージマネージャは、構成情報の構成ディスクの情報を読込み、障害が発生したディスクが存在する事を確認する。障害前のRAID構成から、データ部またはパリティ部を１つ減らした構成での書込みを行うよう、内部のバッファにデータ分割を行う。なお、データ部またはパリティ部のいずれを減らすかは実装によるが、障害前が2D+1Pの構成の場合は、必ずパリティなしの構成となる。
【００６７】
仮想ストレージマネージャは、仮想ストレージ構成情報の構成ディスク情報を読込み、障害後に既に仮想ストレージ上に書込まれた領域の場合は、実際のデータがあるアドレス情報を入手し、その情報とデータ部またはパリティ部の情報を各仮想ストレージエージェントへ送付する。それ以外の領域と、新規の仮想ストレージ領域への書込みの場合には、アドレス情報を付加せずに各仮想ストレージエージェントへ送付する。
【００６８】
仮想ストレージエージェントは、仮想ストレージマネージャよりデータのアドレスと内容が送付された場合、その内容を実際に仮想ストレージ構成ディスクへ書込みを行う。書込みが完了すると、仮想ストレージエージェントは仮想ストレージマネージャへ書込み完了の通知を行う。内容のみが送付された場合、書込みが完了した後、書込み完了の通知を行うと共に、データを書込んだアドレスを通知する。
【００６９】
仮想ストレージマネージャは各仮想ストレージエージェントからの報告を受け、障害後に書込みが行われた事のない仮想ストレージ領域への書込みだった場合には、構成情報のディスク情報の更新を行う。この際、障害ディスクのディスク情報にあるアドレスに空白を入れ、障害発生後に書込みを実施した仮想ストレージ領域である事を確認できるようにする。
【００７０】
データがキャッシュにある場合の障害時の入力処理シーケンスを図１４に示す。
通常の入力シーケンスと全く同様であり、キャッシュにデータがある場合は実際に仮想ストレージ構成ディスクにアクセスせずに処理を終了する。
【００７１】
データがキャッシュにない場合の障害時の入力処理シーケンスを図１５に示す。
基本的には通常入力シーケンスと同様であり、異なる点は、仮想ストレージマネージャが構成情報を読込む部分から、データを組立てる部分までである。以下、異なる処理の内容を記述する。
【００７２】
仮想ストレージマネージャは、構成情報にある構成ディスクの情報を読込み、障害が発生したディスクが存在する事を確認する。障害が発生した仮想ストレージ構成ディスク以外の箇所にある、仮想ストレージエージェントに対して読込み要求を行う。
【００７３】
各仮想ストレージエージェントは、構成ディスクの内容を読込み、その内容を仮想ストレージマネージャは返す。
【００７４】
仮想ストレージマネージャは、各ストレージエージェントから返された読込み内容を元に、データを組立ててジャーナルにデータ内容を書込む。データを組立てる際には、元の情報からデータ部またはパリティ部が不足している事を前提に、データを組立てる。
【００７５】
障害が発生した仮想ストレージ構成ディスクが交換などにより回復した場合、管理プログラムからの操作により、仮想ストレージマネージャは仮想ストレージの回復処理を行う。仮想ストレージの回復処理の概要を図１６に示す。
【００７６】
仮想ストレージの処理シーケンスを図１７に示す。
【００７７】
回復処理を行う場合、仮想ストレージ管理サーバで管理プログラムを起動し、回復するディスク情報や回復処理の実施を指定する。
【００７８】
管理プログラムから回復ディスクの情報指定が行われると、その情報は仮想ストレージ構成情報の構成ディスク情報に書込まれる。また、回復処理の実施を指定すると、実際に仮想ストレージの回復処理が実施される。
【００７９】
仮想ストレージマネージャは、管理プログラムから回復処理の実施を指定されると、仮想ストレージ構成情報の構成ディスク情報に従い各仮想ストレージの回復処理を開始する。回復処理を開始すると、仮想ストレージマネージャは構成情報の状態を「回復中」に変更する。
【００８０】
仮想ストレージマネージャは、仮想ストレージのブロック単位に、障害発生していない仮想ストレージ構成ディスクの読込みを仮想ストレージエージェントへ依頼する。仮想ストレージエージェントは仮想ストレージマネージャへ読込んだデータを返す。
【００８１】
仮想ストレージマネージャは、返されたデータを元に、新しいRAID構成に従いデータ部とパリティ部を再構成する。再構成したデータとパリティは、各仮想ストレージエージェントへの書込み依頼に使用される。各仮想ストレージエージェントは、構成ディスクへ書込みした後、書込み結果を仮想ストレージマネージャへ返す。仮想ストレージマネージャは、仮想ストレージ構成情報のディスク情報に、仮想ストレージの領域が実際にどの領域に書込まれたかの情報を書込む。
【００８２】
回復処理中、仮想ストレージマネージャは仮想ストレージジャーナルのチェックを行い、新規の入出力要求の有無を確認する。入出力要求が来ていた場合、仮想ストレージマネージャは一旦回復処理を中断し、入出力要求に応じる。入出力要求に対する処理は、通常の入出力要求に対する処理と同じである（不図示）。入出力処理完了後、再度回復処理を続行する。
【００８３】
回復処理を完了すると、仮想ストレージマネージャは構成情報の状態を「稼動中」に変更する。
【図面の簡単な説明】
【００８４】
【図１】本発明の一実施形態が適用された分散型仮想ストレージの概略図である。
【図２】ストレージ装置の内部構成の概略図である。
【図３】仮想ストレージキャッシュの内容例である。
【図４】仮想ストレージジャーナルの内容例である。
【図５】仮想ストレージ構成情報の内容例である。
【図６】ホストサーバから入出力依頼が来た場合の概略図である。
【図７】出力処理シーケンスである。
【図８】キャッシュにデータがある場合の入力処理シーケンスである。
【図９】キャッシュにデータがない場合の入力処理シーケンスである。
【図１０−１】仮想ストレージ構成ディスク追加時の処理概要（追加前）である。
【図１０−２】仮想ストレージ構成ディスク追加時の処理概要（追加後）である。
【図１１】仮想ストレージ構成ディスク追加時の処理シーケンスである。
【図１２】仮想ストレージ構成ディスクに障害が発生した場合の処理概要である。
【図１３】障害時の出力処理シーケンスである。
【図１４】キャッシュにデータがある場合の障害時の入力処理シーケンスである。
【図１５】キャッシュにデータがない場合の障害時の入力処理シーケンスである。
【図１６−１】仮想ストオレージの回復処理概要（回復前）である。
【図１６−２】仮想ストオレージの回復処理概要（回復後）である。
【図１７】仮想ストレージの回復処理シーケンスである。
【図１】
2008305213.tif 000003
【図２】
2008305213.tif 000004
【図３】
2008305213.tif 000005
【図４】
2008305213.tif 000006
【図５】
2008305213.tif 000007
【図６】
2008305213.tif 000008
【図７】
2008305213.tif 000009
【図８】
2008305213.tif 000010
【図９】
2008305213.tif 000011
【図１０−１】
2008305213.tif 000012
【図１０−２】
2008305213.tif 000013
【図１１】
2008305213.tif 000014
【図１２】
2008305213.tif 000015
【図１３】
2008305213.tif 000016
【図１４】
2008305213.tif 000017
【図１５】
2008305213.tif 000018
【図１６−１】
2008305213.tif 000019
【図１６−２】
2008305213.tif 000020
【図１７】
2008305213.tif 000021