(57)【要約】【課題】少ないデータ伝送量と時間でディスク装置を障害から復旧させることを可能とする分散ミラードディスクシステム等を提供する。【解決手段】第１のコンピュータ装置１０が、第１のデータブロック１１１にデータを書き込み、第１のミラーリング制御部１０３がこれと同内容のデータを第２のコンピュータ装置２０に書き込み依頼する。そして、このデータの書き込みが失敗した旨の返信を第２のコンピュータ装置の第２のミラーリング制御部２０３から受信した場合に、その旨を示す差分情報を第２のデータブロック２１１の復旧用として差分情報処理部１０４を介して管理情報ブロック１１２に書き込む。【選択図】図１
2011253400.tif 000002
【特許請求の範囲】
【請求項１】
第１および第２のコンピュータ装置がネットワークを介して相互に接続されて構成される分散ミラードディスクシステムであって、
前記第１のコンピュータ装置が、
データを記録するための領域である第１のデータブロックと当該データブロックに書き込まれたデータが他のコンピュータ装置に書き込まれなかったことを示す情報である差分情報を記録する領域である第１の管理情報ブロックとが確保された第１のディスク装置と、
前記第１のデータブロックにデータを読み書きする第１のディスクＩ／Ｏ部と、
前記第１の管理情報ブロックに前記差分情報を記録する第１の差分情報処理部と、
前記ネットワークを介して前記第２のコンピュータ装置に接続する第１のネットワークＩ／Ｏ部と、
前記第１のデータブロックに書き込んだデータと同内容のデータを前記第２のコンピュータ装置に書き込み依頼する第１のミラーリング制御部と
を備え、
前記第２のコンピュータ装置が、
データを記録するための領域である第２のデータブロックが確保された第２のディスク装置と、
前記第２のデータブロックにデータを読み書きする第２のディスクＩ／Ｏ部と、
前記ネットワークを介して前記第１のコンピュータ装置に接続する第２のネットワークＩ／Ｏ部と、
前記第１のコンピュータ装置から書き込み依頼のあったデータを前記第２のデータブロックに書き込み、その書き込みの結果を前記第１のコンピュータ装置に返信する第２のミラーリング制御部と
を備えると共に、
前記第１の管理情報ブロックが、前記第１のミラーリング制御部からのみアクセス可能な領域であり、
前記第１のミラーリング制御部が、前記第２のコンピュータ装置に書き込み依頼したデータが書き込み失敗した旨の返信を前記第２のミラーリング制御部から受信した場合に、その旨を示す差分情報を前記第２のデータブロックの復旧用として前記第１の管理情報ブロックに書き込むことを特徴とする分散ミラードディスクシステム。
【請求項２】
前記第１のミラーリング制御部が、
前記第２のコンピュータ装置の前記ディスク装置を復旧させる際に、前記管理情報ブロックに前記差分情報が存在するか否かを確認し、前記差分情報が存在すればこれに基づいて書き込みに失敗していたデータを前記第２のコンピュータ装置に送信することを特徴とする、請求項１に記載の分散ミラードディスクシステム。
【請求項３】
前記ネットワークを介して前記第１および第２のコンピュータ装置と相互に接続される第３のコンピュータ装置を備え、
前記第３のコンピュータ装置が、
データを記録するための領域である第３のデータブロックと前記差分情報を記録する領域である第２の管理情報ブロックとが確保された第３のディスク装置と、
前記第３のデータブロックにデータを読み書きする第３のディスクＩ／Ｏ部と、
前記第２の管理情報ブロックに前記差分情報を記録する第２の差分情報処理部と、
前記ネットワークを介して前記第１および第２のコンピュータ装置に接続する第３のネットワークＩ／Ｏ部と、
前記第１のコンピュータ装置から書き込み依頼のあったデータを前記第３のデータブロックに書き込み、その書き込みの結果を前記第１のコンピュータ装置に返信する第３のミラーリング制御部と
を備え、
前記第１のミラーリング制御部が、前記第１のデータブロックに書き込んだデータと同内容のデータを前記第２および第３のコンピュータ装置に書き込み依頼すると共に、この書き込み依頼したデータが書き込み失敗した旨の返信を前記第２のミラーリング制御部から受信した場合に、前記差分情報を前記第１の管理情報ブロックに書き込むと共に前記第３のコンピュータ装置に送信し、
前記第３のミラーリング制御部が、前記第１のコンピュータ装置から受信した前記差分情報を前記第２のデータブロックの復旧用として前記第２の管理情報ブロックに書き込むことを特徴とする、請求項１に記載の分散ミラードディスクシステム。
【請求項４】
ネットワークを介して相互に接続されて他のコンピュータ装置と接続されて分散ミラードディスクシステムを構成するコンピュータ装置であって、
データを記録するための領域であるデータブロックと当該データブロックに書き込まれたデータが他のコンピュータ装置に書き込まれなかったことを示す情報である差分情報を記録する領域である管理情報ブロックとが確保されたディスク装置と、
前記データブロックにデータを読み書きするディスクＩ／Ｏ部と、
前記管理情報ブロックに前記差分情報を記録する差分情報処理部と、
前記ネットワークを介して他のコンピュータ装置に接続するネットワークＩ／Ｏ部と、
前記データブロックに書き込んだデータと同内容のデータを他のコンピュータ装置に書き込み依頼するミラーリング制御部と
を備えると共に、
前記管理情報ブロックが、前記ミラーリング制御部からのみアクセス可能な領域であり、
前記ミラーリング制御部が、
他のコンピュータ装置から書き込み依頼のあったデータを前記データブロックに書き込み、その書き込みの結果を依頼元のコンピュータ装置に返信する機能と、
他のコンピュータ装置に書き込み依頼したデータが書き込み失敗した旨の返信を当該コンピュータ装置から受信した場合に、その旨を示す差分情報を前記第２のデータブロックの復旧用として前記管理情報ブロックに書き込む機能とを有することを特徴とするコンピュータ装置。
【請求項５】
第１および第２のコンピュータ装置がネットワークを介して相互に接続されて構成される分散ミラードディスクシステムにあって、
前記第１のコンピュータ装置が予め備える第１のディスク装置上にデータを記録するための領域である第１のデータブロックと当該データブロックに書き込まれたデータが他のコンピュータ装置に書き込まれなかったことを示す情報である差分情報を記録するための第１のミラーリング制御部からのみアクセス可能な領域である第１の管理情報ブロックとを確保し、
前記第２のコンピュータ装置が予め備える第２のディスク装置上にデータを記録するための領域である第２のデータブロックを確保し、
前記第１のデータブロックに前記第１のコンピュータ装置の第１のディスクＩ／Ｏ部がデータを書き込み、
これと同時に前記第１のデータブロックに書き込んだデータと同内容のデータを前記第２のコンピュータ装置に前記第１のコンピュータ装置の第１のミラーリング制御部が書き込み依頼し、
この書き込み依頼を受けたデータを前記第２のコンピュータ装置の第２のミラーリング制御部が前記第２のデータブロックに書き込み、
この書き込みの結果を前記第２のコンピュータ装置の前記第２のミラーリング制御部が前記第１のコンピュータ装置に返信し、
前記第１のコンピュータ装置の前記第１のミラーリング制御部が前記第２のコンピュータ装置から書き込み失敗した旨の返信を受信した場合に、その旨を示す差分情報を前記第２のデータブロックの復旧用として前記第１の管理情報ブロックに書き込むことを特徴とするミラーリング方法。
【請求項６】
第１および第２のコンピュータ装置がネットワークを介して相互に接続されて構成される分散ミラードディスクシステムにあって、
データを記録するための領域であるデータブロックと当該データブロックに書き込まれたデータが他のコンピュータ装置に書き込まれなかったことを示す情報である差分情報を記録するための他のプログラムからアクセス不可能な領域である管理情報ブロックとが予め確保された前記第１のコンピュータ装置に、
前記データブロックにデータを書き込む手順、
これと同時に前記データブロックに書き込んだデータと同内容のデータを前記第２のコンピュータ装置に書き込み依頼する手順、
この書き込みの結果を前記第２のコンピュータ装置から受信する手順、
および前記第２のコンピュータ装置から書き込み失敗した旨の返信を受信した場合に、その旨を示す差分情報を前記第２のコンピュータ装置の復旧用として前記管理情報ブロックに書き込む手順を実行させることを特徴とするミラーリングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は分散ミラードディスクシステム、コンピュータ装置、ミラーリング方法およびそのプログラムに関し、特にミラードディスクを構成するディスク装置を迅速に復旧させることを可能とする分散ミラードディスクシステム等に関する。
【背景技術】
【０００２】
コンピュータ、あるいはコンピュータが相互に接続されるネットワークが企業や社会の根幹として重要なインフラとなっている現代では、データの喪失はそれだけで社会的に重要な損失である。そのため、業務サービスを動作させるサーバや業務端末では、複数台のディスク装置を組み合わせたディスクアレイを仮想的な１台のディスク装置として運用するＲＡＩＤ（Redundant Arrays of Inexpensive Disks、またはRedundant Arrays of Independent Disks）によって、データの喪失に備えていることが多い。
【０００３】
複数あるＲＡＩＤの規格の中でも、最も簡単に実現可能であるＲＡＩＤ１は、ミラーリングとも呼ばれる。これは、複数のディスク装置に単純に同内容のデータを記録するというものである。ＲＡＩＤ１は、データアクセスの高速化を目的とするものではなく、またディスク装置の総容量のうちの半分しか実質的には使用されないことになるので、ディスク装置の利用効率およびコストパフォーマンスは低い。しかしながら、記憶されるデータの耐障害性は高くなる。
【０００４】
ここでは、このようなＲＡＩＤ１（ミラーリング）によってデータを記録するコンピュータシステムの中で、ディザスタリカバリ（Disaster Recovery: 大規模災害からの復旧）などの目的で、ＷＡＮ（Wide Area Network）などを介して遠隔地に設置された複数のコンピュータ装置とそのコンピュータ装置の各々に接続されたディスク装置によって構成されたものを「分散ミラードディスクシステム」という。分散ミラードディスクシステムは、データ通信によってそれら各々のディスク装置の間で記憶データを同期させている。
【０００５】
これに関連する技術文献として、次の各々の特許文献がある。その中でも特許文献１には、該システムを構成するコンピュータの各々がフラグを持ち、障害から復帰したコンピュータはこのフラグが他のコンピュータと一致するまでこのフラグに対応するデータをコピーするという分散ミラードディスクシステムについて記載されている。
【０００６】
特許文献２には、ボリューム状態識別子を備えることにより、同期化状態ではなくなっていたマスタと複製の両ボリュームを迅速に再同期化できるという複製のボリュームの再同期化システムについて記載されている。特許文献３には、一方のボリュームがサスペンド状態である場合にログ情報を記録し、これに基づいて復帰後にもう一方のボリュームからデータを複製して、これによって複数のボリューム間で記録データを一致させるというストレージシステムについて記載されている。
【０００７】
特許文献４には、ストレージ装置間のデータのコピーの最中に障害が発生した場合に、そのデータのライトリクエストの送信先を切り替えることによって、アプリケーションの再起動を必要としないという情報システムについて記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−００６０１５号公報
【特許文献２】特開２００７−０９４６５６号公報
【特許文献３】特開２００８−００９７０７号公報
【特許文献４】特開２００８−１３４９８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ＲＡＩＤ１では、そのうちの１つのディスク装置を障害から復旧させる場合に、ディスク装置の記憶内容全体をコピーする必要が生じる場合がある。ＷＡＮ（Wide Area Network）などを介して遠隔地間で設置された分散ミラードディスクシステムでは特に、大量のデータをネットワークを介して伝送する必要があるので、そのために必要なデータ伝送量も膨大なものとなり、復旧に長時間を要することにもなる。
【００１０】
特許文献１記載の技術では、揮発性と不揮発性のそれぞれの記憶手段に対してフラグ格納のためのフラグ退避手段を持ち、データ書き込みの際にフラグのオン／オフ情報を各コンピュータ間で毎回通信することで実現する。しかしながら、ディスクのデータの格納単位であるブロックごとのＩ／Ｏが発生するたびにこの通信が行われているので、必要なデータ伝送量やそれに要する時間も多くなり、ネットワーク装置やディスク装置に障害が発生する可能性が高いという点も問題である。また、ここでネットワーク障害が発生すると、揮発性と不揮発性のフラグ退避手段の間に不整合が発生し、そのための不都合が発生しうるという問題がある。
【００１１】
また、特許文献３記載の技術では、複数のボリューム間で記録データを一致させるため、一方のボリュームがサスペンド状態である場合にログ情報を記録し、サスペンド状態から復帰した後にもう一方のボリュームからデータを複製している。これだと、通常運用時のデータ伝送量は抑制することができる。しかしながら、ここでいう「ログ情報」が障害の発生などによって破壊される可能性もあり、その場合にはやはりディスク装置の記憶内容全体をコピーする必要が生じる。この場合に、ディスク装置の復旧に要するデータ伝送量および時間を削減しうる技術は、前述の特許文献１〜４のいずれにも開示されていない。
【００１２】
本発明の目的は、少ないデータ伝送量と時間でディスク装置を障害から復旧させることを可能とする分散ミラードディスクシステム、コンピュータ装置、ミラーリング方法およびそのプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明に係る分散ミラードディスクシステムは、第１および第２のコンピュータ装置がネットワークを介して相互に接続されて構成される分散ミラードディスクシステムであって、第１のコンピュータ装置が、データを記録するための領域である第１のデータブロックと当該データブロックに書き込まれたデータが他のコンピュータ装置に書き込まれなかったことを示す情報である差分情報を記録する領域である第１の管理情報ブロックとが確保された第１のディスク装置と、第１のデータブロックにデータを読み書きする第１のディスクＩ／Ｏ部と、第１の管理情報ブロックに差分情報を記録する第１の差分情報処理部と、ネットワークを介して第２のコンピュータ装置に接続する第１のネットワークＩ／Ｏ部と、第１のデータブロックに書き込んだデータと同内容のデータを第２のコンピュータ装置に書き込み依頼する第１のミラーリング制御部とを備え、第２のコンピュータ装置が、データを記録するための領域である第２のデータブロックが確保された第２のディスク装置と、第２のデータブロックにデータを読み書きする第２のディスクＩ／Ｏ部と、ネットワークを介して第１のコンピュータ装置に接続する第２のネットワークＩ／Ｏ部と、第１のコンピュータ装置から書き込み依頼のあったデータを第２のデータブロックに書き込み、その書き込みの結果を第１のコンピュータ装置に返信する第２のミラーリング制御部とを備えると共に、第１の管理情報ブロックが、第１のミラーリング制御部からのみアクセス可能な領域であり、第１のミラーリング制御部が、第２のコンピュータ装置に書き込み依頼したデータが書き込み失敗した旨の返信を第２のミラーリング制御部から受信した場合に、その旨を示す差分情報を第２のデータブロックの復旧用として第１の管理情報ブロックに書き込むことを特徴とする。
【００１４】
上記目的を達成するため、本発明に係るコンピュータ装置は、ネットワークを介して相互に接続されて他のコンピュータ装置と接続されて分散ミラードディスクシステムを構成するコンピュータ装置であって、データを記録するための領域であるデータブロックと当該データブロックに書き込まれたデータが他のコンピュータ装置に書き込まれなかったことを示す情報である差分情報を記録する領域である管理情報ブロックとが確保されたディスク装置と、データブロックにデータを読み書きするディスクＩ／Ｏ部と、管理情報ブロックに差分情報を記録する差分情報処理部と、ネットワークを介して他のコンピュータ装置に接続するネットワークＩ／Ｏ部と、データブロックに書き込んだデータと同内容のデータを他のコンピュータ装置に書き込み依頼するミラーリング制御部とを備えると共に、管理情報ブロックが、ミラーリング制御部からのみアクセス可能な領域であり、ミラーリング制御部が、他のコンピュータ装置から書き込み依頼のあったデータをデータブロックに書き込み、その書き込みの結果を依頼元のコンピュータ装置に返信する機能と、他のコンピュータ装置に書き込み依頼したデータが書き込み失敗した旨の返信を当該コンピュータ装置から受信した場合に、その旨を示す差分情報を第２のデータブロックの復旧用として管理情報ブロックに書き込む機能とを有することを特徴とする。
【００１５】
上記目的を達成するため、本発明に係るミラーリング方法は、第１および第２のコンピュータ装置がネットワークを介して相互に接続されて構成される分散ミラードディスクシステムにあって、第１のコンピュータ装置が予め備える第１のディスク装置上にデータを記録するための領域である第１のデータブロックと当該データブロックに書き込まれたデータが他のコンピュータ装置に書き込まれなかったことを示す情報である差分情報を記録するための第１のミラーリング制御部からのみアクセス可能な領域である第１の管理情報ブロックとを確保し、第２のコンピュータ装置が予め備える第２のディスク装置上にデータを記録するための領域である第２のデータブロックを確保し、第１のデータブロックに第１のコンピュータ装置の第１のディスクＩ／Ｏ部がデータを書き込み、これと同時に第１のデータブロックに書き込んだデータと同内容のデータを第２のコンピュータ装置に第１のコンピュータ装置の第１のミラーリング制御部が書き込み依頼し、この書き込み依頼を受けたデータを第２のコンピュータ装置の第２のミラーリング制御部が第２のデータブロックに書き込み、この書き込みの結果を第２のコンピュータ装置の第２のミラーリング制御部が第１のコンピュータ装置に返信し、第１のコンピュータ装置の第１のミラーリング制御部が第２のコンピュータ装置から書き込み失敗した旨の返信を受信した場合に、その旨を示す差分情報を第２のデータブロックの復旧用として第１の管理情報ブロックに書き込むことを特徴とする。
【００１６】
上記目的を達成するため、本発明に係るミラーリングプログラムは、第１および第２のコンピュータ装置がネットワークを介して相互に接続されて構成される分散ミラードディスクシステムにあって、データを記録するための領域であるデータブロックと当該データブロックに書き込まれたデータが他のコンピュータ装置に書き込まれなかったことを示す情報である差分情報を記録するための他のプログラムからアクセス不可能な領域である管理情報ブロックとが予め確保された第１のコンピュータ装置に、データブロックにデータを書き込む手順、これと同時にデータブロックに書き込んだデータと同内容のデータを第２のコンピュータ装置に書き込み依頼する手順、この書き込みの結果を第２のコンピュータ装置から受信する手順、および第２のコンピュータ装置から書き込み失敗した旨の返信を受信した場合に、その旨を示す差分情報を第２のコンピュータ装置の復旧用として管理情報ブロックに書き込む手順を実行させることを特徴とする。
【発明の効果】
【００１７】
本発明は、上述したように第２のコンピュータ装置の側でデータの書き込みが失敗した場合に差分情報を書き込むように構成したので、通常運用時のデータ伝送量を抑制するだけでなく、障害発生時にも最低限のデータ伝送量でディスク装置を復旧させることが可能となる。これによって、少ないデータ伝送量と時間でディスク装置を障害から復旧させることが可能である分散ミラードディスクシステム、コンピュータ装置、ミラーリング方法およびそのプログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施形態に係る分散ミラードディスクシステムについて示す説明図である。
【図２】図１に示した分散ミラードディスクシステムで、第１のコンピュータ装置側のアプリケーションがＩ／Ｏ要求を発した場合の、第１のコンピュータ装置側での動作を示すフローチャートである。
【図３】図１に示した分散ミラードディスクシステムで、第１のコンピュータ装置側のアプリケーションがＩ／Ｏ要求を発した場合の、第２のコンピュータ装置側での動作を示すフローチャートである。
【図４】図２のステップＳ３１２〜３１３で示した、差分情報処理部が生成し管理情報ブロック上に書き込む、同一データの書き込みが成功した場合のデータブロック間での差分情報の内容について示す説明図である。
【図５】図２のステップＳ３１２〜３１３で示した、差分情報処理部が生成し管理情報ブロック上に書き込む、同一データの書き込みが失敗した場合のデータブロック間での差分情報の内容について示す説明図である。
【図６】図１に示した分散ミラードディスクシステムで、第２のコンピュータ装置側のディスクを、そこで発生していた障害から復旧させる場合の動作を示すフローチャートである。
【図７】図６のステップＳ４０３〜４０４として示した、差分情報の読み込みとブロックデータのコピーについて示す説明図である。図７（ａ）は、ブロックデータ１１１ａと同一のデータがデータブロック２１１に書き込まれていない場合について示す。図７（ｂ）は、これに対応する差分情報を取得し、この差分情報にあるアドレスのデータブロック上のブロックデータを、データブロック上の同アドレスにブロックデータとして書き込んだ状態について示す。図７（ｃ）は、ブロックデータの書き込みが完了して、これに対応する差分情報を削除した状態について示す。
【図８】本発明の第２の実施形態に係る分散ミラードディスクシステムの構成について示す説明図である。
【図９】図８の続きである。
【図１０】図８〜９に示した分散ミラードディスクシステムで、第１のコンピュータ装置のアプリケーションがＩ／Ｏ要求を発した場合の、第１のコンピュータ装置側での動作を示すフローチャートである。
【発明を実施するための形態】
【００１９】
（第１の実施形態）
以下、本発明の第１の実施形態の構成について添付図１に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係る分散ミラードディスクシステム１は、第１および第２のコンピュータ装置がネットワークを介して相互に接続されて構成される分散ミラードディスクシステムである。第１のコンピュータ装置１０は、データを記録するための領域である第１のデータブロック１１１と当該データブロックに書き込まれたデータが他のコンピュータ装置に書き込まれなかったことを示す情報である差分情報を記録する領域である第１の管理情報ブロック１１２とが確保された第１のディスク装置１２と、第１のデータブロックにデータを読み書きする第１のディスクＩ／Ｏ部１０５と、第１の管理情報ブロックに差分情報を記録する第１の差分情報処理部１０４と、ネットワークを介して第２のコンピュータ装置に接続する第１のネットワークＩ／Ｏ部１０６と、第１のデータブロックに書き込んだデータと同内容のデータを第２のコンピュータ装置に書き込み依頼する第１のミラーリング制御部１０３とを備える。第２のコンピュータ装置２０は、データを記録するための領域である第２のデータブロック２１１が確保された第２のディスク装置２２と、第２のデータブロックにデータを読み書きする第２のディスクＩ／Ｏ部２０５と、ネットワークを介して第１のコンピュータ装置に接続する第２のネットワークＩ／Ｏ部２０６と、第１のコンピュータ装置から書き込み依頼のあったデータを第２のデータブロックに書き込み、その書き込みの結果を第１のコンピュータ装置に返信する第２のミラーリング制御部２０３とを備える。そして第１のミラーリング制御部１０３が、第２のコンピュータ装置に書き込み依頼したデータが書き込み失敗した旨の返信を第２のミラーリング制御部から受信した場合に、その旨を示す差分情報を第２のデータブロックの復旧用として第１の管理情報ブロックに書き込む。そして、この第１の管理情報ブロックは、第１のミラーリング制御部からのみアクセス可能な領域である。
【００２０】
そして、第１のミラーリング制御部１０３が、第２のコンピュータ装置２０のディスク装置２２を復旧させる際に、管理情報ブロック１１２に差分情報が存在するか否かを確認し、差分情報が存在すればこれに基づいて書き込みに失敗していたデータを第２のコンピュータ装置に送信する。
【００２１】
この構成を備えることにより、本発明の分散ミラードディスクシステムは、少ないデータ伝送量と時間でディスク装置を障害から復旧させることが可能となる。
以下、これをより詳細に説明する。
【００２２】
図１は、本発明の第１の実施形態に係る分散ミラードディスクシステム１について示す説明図である。分散ミラードディスクシステム１は、第１および第２のコンピュータ装置１０および２０が、ネットワーク５０を介して相互に接続されて構成される。ちなみに図１では、第１のコンピュータ装置１０に関わる要素を「１の丸数字」、第２のコンピュータ装置２０に関わる要素を「２の丸数字」で示している。
【００２３】
第１のコンピュータ装置１０は、コンピュータプログラムを実施する主体である主演算制御手段１１、データを記録する記憶手段であるディスク１２、ネットワーク５０を介して他のコンピュータと通信する通信手段１３、ユーザからの操作を受け付けると共に処理結果をユーザに提示する入出力手段１４とを備える。ディスク１２は、第１のコンピュータ装置１０の筐体内に内蔵されるものであっても、外付けであってもよい。
【００２４】
主演算制御手段１１では、アプリケーション１０１、Ｉ／Ｏフック部１０２、ミラーリング制御部１０３、差分情報処理部１０４、ディスクＩ／Ｏ部１０５、ネットワークＩ／Ｏ部１０６、ノード管理部１０７といった各々の機能部が、コンピュータプログラムとして動作する。ディスク１２には、データを記録する領域であるデータブロック１１１と、そのデータブロック１１１に記録されたデータに関する情報を記録する管理情報ブロック１１２といった領域が確保されている。管理情報ブロック１１２は、差分情報処理部１０４からのみデータの読み書きが可能である。これらの各々についての詳細は後述する。
【００２５】
第２のコンピュータ装置２０も、第１のコンピュータ装置１０と、ハードウェアおよびソフトウェアについての構成は同一である。ハードウェアとしての構成は、主演算制御手段２１、ディスク２２、通信手段２３、入出力手段２４とを備える。また主演算制御手段２１では、アプリケーション２０１、Ｉ／Ｏフック部２０２、ミラーリング制御部２０３、差分情報処理部２０４、ディスクＩ／Ｏ部２０５、ネットワークＩ／Ｏ部２０６、ノード管理部２０７といった各々の機能部が、コンピュータプログラムとして動作する。そしてディスク２２には、データブロック２１１と、管理情報ブロック２１２といった領域が確保されている。これらはいずれも、第１のコンピュータ装置１０における同名の要素と同一の機能を有する。
【００２６】
以後、第１および第２のコンピュータ装置１０および２０はハードウェアおよびソフトウェアについての構成は同一であるので、データの書き込みの動作については、第１のコンピュータ装置１０側（アプリケーション１０１）がその契機になる場合について説明する。即ち、まず第１のコンピュータ装置１０の側に新規のデータを書き込み、同一のデータを第２のコンピュータ装置２０にも書き込むということを、分散ミラードディスクシステム１の動作の原則とする。
【００２７】
アプリケーション１０１は、各々のコンピュータ装置でユーザが操作する対象となるソフトウェアである。より具体的には、たとえばワープロ、表計算、データベース、ウェブブラウザ、電子メールなどのような機能を果たすソフトウェアである。
【００２８】
Ｉ／Ｏフック部１０２は、アプリケーション１０１が動作中にディスク１２に対してＩ／Ｏ要求を発した場合にこれを捕捉し（これを「Ｉ／Ｏ要求をフックする」という）、このＩ／Ｏ要求が読み込み要求であるか書き込み要求であるかを判断する。読み込み要求である場合には、ミラーリング制御部１０３およびディスクＩ／Ｏ部１０５を介してデータブロック１１１上の指定されたデータを読み取ってアプリケーション１０１に返す。書き込み要求である場合には、ミラーリング制御部１０３に書き込みデータを渡す。
【００２９】
ミラーリング制御部１０３は、Ｉ／Ｏフック部１０２により渡された書き込みデータをディスクＩ／Ｏ部１０５及びネットワークＩ／Ｏ部１０６へ通知する。また、ネットワークＩ／Ｏ部１０６またはノード管理部１０７より、第２のコンピュータ装置２０で障害が発生したことを通知された場合は、この通知を差分情報処理部１０４に転送する。また、アプリケーション１０１が管理情報ブロック１１２のデータを直接読み書きしようとした場合には、Ｉ／Ｏエラーを発する。即ち、管理情報ブロック１１２はミラーリングに関する動作についてのみアクセス可能であり、それ以外の動作によって読み書きされることはない。
【００３０】
差分情報処理部１０４は、第１のコンピュータ装置１０のディスク１１と第２のコンピュータ装置２０のディスク２２に同一内容のデータが書き込めなかった場合に、差分情報１１２ａを生成して管理情報ブロック１１２に書き込む。また、第２のコンピュータ装置２０のディスク２２を障害から復旧させる場合に、該当する書き込み要求の情報をディスク１２の管理情報ブロック２０２に出力する。
【００３１】
ディスクＩ／Ｏ部１０５は、ミラーリング制御部１０３より渡された書き込み要求データをディスク１２のデータブロック１１１に書き込む。この書き込み要求の成否は、ネットワークＩ／Ｏ部１０６を経由して第２のコンピュータ装置２０に通知される。
【００３２】
ネットワークＩ／Ｏ部１０６は、ミラーリング制御部１０３より渡された書き込み要求データを第２のコンピュータ装置２０のネットワークＩ／Ｏ部２０６へ送信する。また、第２のコンピュータ装置２０のネットワークＩ／Ｏ部２０６から書き込み要求の成否を受け取って、これをミラーリング制御部１０３へ通知する。第２のコンピュータ装置２０では、受け取った書き込み要求データをミラーリング制御部２０３へ通知する。
【００３３】
ノード管理部１０７は、ディスクのミラーリングを行うコンピュータ構成のノード管理を行い、第２のコンピュータ装置２０に障害が発生した場合にその旨をミラーリング制御部１０３に通知する。
【００３４】
図２は、図１に示した分散ミラードディスクシステム１で、第１のコンピュータ装置１０側のアプリケーション１０１がＩ／Ｏ要求を発した場合の、第１のコンピュータ装置１０側での動作を示すフローチャートである。図２のフローチャートでは、第１のコンピュータ装置１０側を動作の契機として、分散ミラードディスクシステム１の動作を説明している。そのため、以下に説明する動作では、第２のコンピュータ装置２０側のアプリケーション２０１、Ｉ／Ｏフック部２０２、差分情報処理部２０４、および管理情報ブロック２１２は使用されない。図１で、これらに該当する要素を点線で示しているのはそのためである。
【００３５】
アプリケーション１０１が発したＩ／Ｏ要求を、まずＩ／Ｏフック部１０２がフックして、このＩ／Ｏ要求が読み込み要求であるか書き込み要求であるかを判断して、その判断結果をミラーリング制御部１０３に通知する（ステップＳ３０１）。
【００３６】
アプリケーション１０１からのＩ／Ｏ要求が読み込み要求である場合には（ステップＳ３０１：ＮＯ）、Ｉ／Ｏフック部１０２はミラーリング制御部１０３にその読み込み要求を通知してデータの読み込みを要求し（ステップＳ３２０）、それによってディスクＩ／Ｏ部１０５を介して読み込まれたデータを要求元のアプリケーション１０１に返して（ステップＳ３２１）処理を終了する。
【００３７】
アプリケーション１０１からのＩ／Ｏ要求が書き込み要求である場合には（ステップＳ３０１：ＹＥＳ）、ミラーリング制御部１０３はさらにノード管理部１０７を介して、第２のコンピュータ装置２０のノード管理部２０７が動作しているか否かを照会する（ステップＳ３０２）。
【００３８】
第２のコンピュータ装置２０が動作しているとの返答がノード管理部２０７からあれば（ステップＳ３０２：ＹＥＳ）、ミラーリング制御部１０３はディスクＩ／Ｏ部１０５を介して、第１のコンピュータ装置１０のデータブロック１１１にデータを書き込む（ステップＳ３０３）と共に、ネットワークＩ／Ｏ部１０６を介して第２のコンピュータ装置２０のミラーリング制御部２０３に同一のデータを渡してデータブロック２１１への書き込みを要求し（ステップＳ３０４）、その結果を待ち合わせる（ステップＳ３０５）。
【００３９】
そしてミラーリング制御部１０３は、データブロック１１１側へのデータ書き込みが成功したか否かを判断し（ステップＳ３０６）、成功していれば（ステップＳ３０６：ＹＥＳ）さらにデータブロック２１１側へのデータ書き込みが成功したか否かを判断する（ステップＳ３０７）。双方ともデータ書き込みが成功していれば、データ書き込みの結果を要求元のアプリケーション１０１に返して（ステップＳ３０８）処理を終了する。これは、データブロック１１１および２１１の双方に同一のデータが書き込まれ、管理情報ブロック１１２および２１２には差分情報が書き込まれないということを意味する。
【００４０】
ステップＳ３０６で、データブロック１１１へのデータ書き込みが失敗していれば（ステップＳ３０６：ＮＯ）、ミラーリング制御部１０３はその旨を要求元のアプリケーション１０１に返して（ステップＳ３０８）処理を終了する。これは、データブロック１１１および２１１のいずれにも新たなデータは書き込まれず、管理情報ブロック１１２および２１２にも変更がないということを意味する。
【００４１】
ステップＳ３０６でデータブロック１１１へのデータ書き込みが成功であったけど、データブロック２１１側へのデータ書き込みが失敗した場合（ステップＳ３０７：ＮＯ）は、差分情報処理部１０４がデータブロック１１１および２１１の間の差分情報を生成して（ステップＳ３１２）これを管理情報ブロック１１２上に書き込み（ステップＳ３１３）、ミラーリング制御部１０３はその旨を要求元のアプリケーション１０１に返して（ステップＳ３０８）処理を終了する。
【００４２】
これは、データブロック１１１へ新たなデータが書き込まれたが、データブロック２１１には書き込まれなかったので、この両者の間に相違が発生したことになり、差分情報の書き込みが必要になるという意味である。なお、ステップＳ３１２〜３１３でいう差分情報の詳細については後述する。
【００４３】
前述のステップＳ３０２で、第２のコンピュータ装置２０が動作しているとの返答がノード管理部２０７からなければ（ステップＳ３０２：ＮＯ）、ミラーリング制御部１０３はディスクＩ／Ｏ部１０５を介して、第１のコンピュータ装置１０のデータブロック１１１にデータを書き込み（ステップＳ３１０）、このデータ書き込みが成功したか否かを判断する（ステップＳ３１１）。
【００４４】
ステップＳ３１１でデータブロック１１１へのデータの書き込みが成功した場合には（ステップＳ３１１：ＹＥＳ）、差分情報処理部１０４がデータブロック１１１および２１１の間の差分情報を生成して（ステップＳ３１２）これを管理情報ブロック１１２上に書き込み（ステップＳ３１３）、ミラーリング制御部１０３はその旨を要求元のアプリケーション１０１に返して（ステップＳ３０８）処理を終了する。これは、データブロック１１１に新たなデータは書き込まれたことにより、データブロック１１１および２１１の間に相違が発生したことになるので、差分情報の書き込みが必要になるという意味である。
【００４５】
ステップＳ３１１でデータブロック１１１へのデータの書き込みが失敗した場合には（ステップＳ３１１：ＮＯ）、ミラーリング制御部１０３はその旨を要求元のアプリケーション１０１に返して（ステップＳ３０８）処理を終了する。
【００４６】
図３は、図１に示した分散ミラードディスクシステム１で、第１のコンピュータ装置１０側のアプリケーション１０１がＩ／Ｏ要求を発した場合の、第２のコンピュータ装置２０側での動作を示すフローチャートである。第２のコンピュータ装置２０のネットワークＩ／Ｏ部１０６が図２のステップＳ３０４のデータ書き込み要求を受けたら（ステップＳ３５１）、ミラーリング制御部２０３がその要求に基づくデータを、ディスクＩ／Ｏ部２０５を介してデータブロック２１１に書き込み（ステップＳ３５２）、その結果をネットワークＩ／Ｏ部２０６を介して第１のコンピュータ装置１０に返す（ステップＳ３５３）。第１のコンピュータ装置１０では、その結果に応じてステップＳ３０７に続く処理を行う。
【００４７】
図４および図５は、図２のステップＳ３１２〜３１３で示した、差分情報処理部１０４が生成し管理情報ブロック１１２上に書き込む、データブロック１１１および２１１の間の差分情報の内容について示す説明図である。図４はデータブロック１１１および２１１の双方に対して同一データの書き込みが成功した場合、図５は失敗した場合について示す。
【００４８】
データブロック１１１および２１１は、ミラーリングの対象であるので、原則として常に同一のデータが双方に書き込まれる。そのため、図４に示すように、データブロック１１１および２１１の双方に同一内容のブロックデータ１１１ａと２１１ａが書き込まれた場合には、管理情報ブロック１１２には差分情報１１２ａは書き込まれない。
【００４９】
データブロック１１１にのみブロックデータ１１１ａが正常に書き込まれ、データブロック２１１にこれと同一内容のブロックデータ２１１ａへの書き込みが失敗した場合には、図５に示すように、ブロックデータ１１１ａのデータブロック１１１上でのアドレスと、「このブロックと同一内容のデータを、データブロック２１１上の同一ブロックにコピーできなかった」旨とを含む差分情報１１２ａが、管理情報ブロック１１２に書き込まれる。
【００５０】
図６は、図１に示した分散ミラードディスクシステム１で、第２のコンピュータ装置２０側のディスク２２を、そこで発生していた障害から復旧させる場合の動作を示すフローチャートである。入出力手段２４からの復旧コマンドを受けたミラーリング制御部２０３は、まず復旧対象であるディスク２２が新規ディスクであるか否かを判断し（ステップＳ４０１）、新規ディスクであれば（ステップＳ４０１：ＹＥＳ）、第１のコンピュータ装置１０側のデータブロック１１１の内容を全て送信するよう第１のコンピュータ装置１０側のミラーリング制御部１０３に依頼し、送られてきたデータの全てをデータブロック２１１にコピーして（ステップＳ４０６）処理を終了する。
【００５１】
復旧対象であるディスク２２が新規ディスクでなければ（ステップＳ４０１：ＮＯ）、ミラーリング制御部２０３は第１のコンピュータ装置１０側のミラーリング制御部１０３を介して、管理情報ブロック１１２に差分情報１１２ａが記録されているか否かを判断し（ステップＳ４０２）、これが記録されていなければそのまま処理を終了する（ステップＳ４０２：ＮＯ）。差分情報１１２ａが記録されていないということは、データブロック１１１および２１１の内容は同一であるので、新たにコピーすべきデータは無いということを意味する。
【００５２】
ステップＳ４０２で、差分情報１１２ａが記録されていれば（ステップＳ４０２：ＹＥＳ）、この差分情報に記録されているブロックデータ１１１ａを読み込んで、これを復旧対象であるデータブロック２１１にコピーする（ステップＳ４０３）。そして、コピーが完了したブロックの分の差分情報１１２ａを削除する（ステップＳ４０４）。
【００５３】
図７は、図６のステップＳ４０３〜４０４として示した、差分情報１１２ａの読み込みとブロックデータ１１１ａのコピーについて示す説明図である。図７（ａ）は、ブロックデータ１１１ａと同一のデータがデータブロック２１１に書き込まれていない場合について示す。同時に、これに対応する差分情報１１２ａが管理情報ブロック１１２に書き込まれている。
【００５４】
図７（ｂ）は、これに対応する差分情報１１２ａを取得し、この差分情報１１２ａにあるアドレスのデータブロック１１１上のブロックデータ１１１ａを、データブロック２１１上の同アドレスにブロックデータ２１１ａとして書き込んだ状態を示す。ステップＳ４０３は、図７（ａ）の状態から同（ｂ）の状態に至る処理である。
【００５５】
図７（ｃ）は、ブロックデータ２１１ａの書き込みが完了して、これに対応する差分情報１１２ａを削除した状態について示す。ステップＳ４０４は、図７（ｂ）の状態から同（ｃ）の状態に至る処理である。図６に戻って、１つのブロックデータ２１１ａの書き込みが完了したら、次の差分情報１１２ａに進んで（ステップＳ４０５）ステップＳ４０２からの処理を繰り返す。全ての差分情報１１２ａについて処理が完了すれば（ステップＳ４０２：ＮＯ）復旧処理は完了である。
【００５６】
なお、この図６に示した動作は、第１のコンピュータ装置１０側のミラーリング制御部１０３が、入出力手段１４からの復旧コマンドを受けて開始するものとしてもよい。この動作はミラーリング制御部１０３と２０３が協働して行うものであるので、その契機は第１および第２のコンピュータ装置１０および２０のいずれ側から与えられてもよいものである。
【００５７】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係るミラーリング方法は、第１および第２のコンピュータ装置がネットワークを介して相互に接続されて構成される分散ミラードディスクシステムにあって、第１のコンピュータ装置が予め備える第１のディスク装置上にデータを記録するための領域である第１のデータブロック１１１と当該データブロックに書き込まれたデータが他のコンピュータ装置に書き込まれなかったことを示す情報である差分情報を記録する領域である第１の管理情報ブロック１１２とを確保し、第２のコンピュータ装置が予め備える第２のディスク装置上にデータを記録するための領域である第２のデータブロック２１１を確保する。その上で、第１のデータブロックに第１のコンピュータ装置の第１のディスクＩ／Ｏ部がデータを書き込み（図２：ステップＳ３０３）、これと同時に第１のデータブロックに書き込んだデータと同内容のデータを第２のコンピュータ装置に第１のコンピュータ装置の第１のミラーリング制御部が書き込み依頼し（図２：ステップＳ３０４）、この書き込み依頼を受けたデータを第２のコンピュータ装置の第２のミラーリング制御部が第２のデータブロックに書き込み（図３：ステップＳ３５２）、この書き込みの結果を第２のコンピュータ装置の第２のミラーリング制御部が第１のコンピュータ装置に返信し（図３：ステップＳ３５３）、第１のコンピュータ装置の第１のミラーリング制御部が第２のコンピュータ装置から書き込み失敗した旨の返信を受信した場合に、その旨を示す差分情報を第２のデータブロックの復旧用として第１の管理情報ブロックに書き込む（図２：ステップＳ３０７、３１２〜３１３）。
【００５８】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータである第１のコンピュータ装置１０および第２のコンピュータ装置２０に実行させるようにしてもよい。
この動作により、本実施形態は以下のような効果を奏する。
【００５９】
本実施形態では、第２のコンピュータ装置の側で第２のデータブロック２１１へのデータの書き込みが失敗した場合にのみ、第１の管理情報ブロック１１２に差分情報を記録する。これによって、通常運用時のデータの転送量を軽減し、さらにネットワーク障害やディスク障害に起因する、装置間でのデータ不一致の発生率を低減することが可能となる。もちろん、第２のコンピュータ装置２０のディスク２２を復旧させる場合も、第１のデータブロック１１１の全ての内容をコピーしなくてもよいので、データの転送量を軽減することが可能となる。
【００６０】
さらに、管理情報ブロック１１２をミラーリング制御部１０３からのみアクセス可能とし、他のソフトウェア（アプリケーション１０１など）からアクセス不能としたので、管理情報の意図的な破壊、ディスク障害、あるいはコンピュータ自身の障害などから差分情報を保護することが可能となる。従って、第１のデータブロック１１１の全ての内容をコピーせず、少ないデータの転送量で第２のコンピュータ装置２０のディスク２２を復旧させることが可能となる。
【００６１】
（第２の実施形態）
本発明の第２の実施形態に係る分散ミラードディスクシステム４０１は、第１の実施形態に加えて、ネットワークを介して第１および第２のコンピュータ装置と相互に接続される第３のコンピュータ装置４３０を備える構成とした。この第３のコンピュータ装置４３０は、データを記録するための領域である第３のデータブロック７１１と差分情報を記録する領域である第２の管理情報ブロック７１２とが確保された第３のディスク装置３３と、第３のデータブロックにデータを読み書きする第３のディスクＩ／Ｏ部７０５と、第２の管理情報ブロックに差分情報を記録する第２の差分情報処理部７０４と、ネットワークを介して第１および第２のコンピュータ装置に接続する第３のネットワークＩ／Ｏ部７０６と、第１のコンピュータ装置から書き込み依頼のあったデータを第３のデータブロックに書き込み、その書き込みの結果を第１のコンピュータ装置に返信する第３のミラーリング制御部７０３とを備える。そして第１のミラーリング制御部５０３が、第１のデータブロック５１１に書き込んだデータと同内容のデータを第２および第３のコンピュータ装置４２０および４３０に書き込み依頼すると共に、この書き込み依頼したデータが書き込み失敗した旨の返信を第２のミラーリング制御部６０３から受信した場合に、差分情報を第１の管理情報ブロック５１２に書き込むと共に第３のコンピュータ装置４３０に送信し、第３のミラーリング制御部７０３が、第１のコンピュータ装置から受信した差分情報を第２の管理情報ブロック７１２に書き込む。
【００６２】
これによって、本実施形態では第１の実施形態と同一の効果を奏することが可能であるのに加えて、差分情報が破壊されてディスク装置の復旧のためにデータブロックの全内容をコピーしなければならなくなる可能性を低減することが可能となるという効果もある。
以下、これをより詳細に説明する。
【００６３】
図８〜９は、本発明の第２の実施形態に係る分散ミラードディスクシステム４０１の構成について示す説明図である。図８〜９では、紙面の都合で２枚に分けてその構成を示している。分散ミラードディスクシステム４０１は、第１、第２、第３のコンピュータ装置４１０、４２０、４３０が、ネットワーク５０を介して相互に接続されて構成される。これらの各々のコンピュータ装置のハードウェアとしての構成は第１の実施形態として説明した第１および第２のコンピュータ装置１０および２０と同一である。またソフトウェアとしての構成も、おおよその所は同一である。ちなみに図８〜９では、第１〜３のコンピュータ装置４１０〜４３０の各々に関わる要素を、それぞれ「１〜３の丸数字」で示している。
【００６４】
従って、本実施形態に係る第１および第２のコンピュータ装置４１０および４２０を構成する各機能部は、ハードウェアについては第１の実施形態の第１および第２のコンピュータ装置１０および２０と同一の参照番号でいい、ソフトウェアおよび記録データについては第１の実施形態でいう参照番号に各々＋４００した参照番号でいう。
【００６５】
即ち、第１のコンピュータ装置４１０の主演算制御手段１１では、アプリケーション５０１、Ｉ／Ｏフック部５０２、ミラーリング制御部５０３、差分情報処理部５０４、ディスクＩ／Ｏ部５０５、ネットワークＩ／Ｏ部５０６、ノード管理部５０７といった各々の機能部が、コンピュータプログラムとして動作する。ディスク１２には、データを記録する領域であるデータブロック５１１と、そのデータブロック５１１に記録されたデータに関する情報を記録する管理情報ブロック５１２といった領域が確保されている。
【００６６】
第２のコンピュータ装置４２０の主演算制御手段２１では、アプリケーション６０１、Ｉ／Ｏフック部６０２、ミラーリング制御部６０３、差分情報処理部６０４、ディスクＩ／Ｏ部６０５、ネットワークＩ／Ｏ部６０６、ノード管理部６０７といった各々の機能部が、コンピュータプログラムとして動作する。ディスク２２には、データブロック６１１と管理情報ブロック６１２といった領域が確保されている。
【００６７】
そして第３のコンピュータ装置４３０のハードウェアとしての構成は、主演算制御手段３１、ディスク３２、通信手段３３、入出力手段３４とを備える。主演算制御手段３１では、アプリケーション７０１、Ｉ／Ｏフック部７０２、ミラーリング制御部７０３、差分情報処理部７０４、ディスクＩ／Ｏ部７０５、ネットワークＩ／Ｏ部７０６、ノード管理部７０７といった各々の機能部が、コンピュータプログラムとして動作する。ディスク３２には、データブロック７１１と管理情報ブロック７１２といった領域が確保されている。
【００６８】
第３のコンピュータ装置４３０を構成するこれらの各要素はいずれも、第１および第２のコンピュータ装置４１０および４２０における同名の要素と同一の機能を有する。
【００６９】
本明細書ではこれ以後、ソフトウェアとしての動作の相違点のみについて説明する。また、データの書き込みの動作については、第１のコンピュータ装置４１０（アプリケーション５０１）がその契機になる場合について説明する。即ち、まず第１のコンピュータ装置４１０の側に新規のデータを書き込み、同一のデータを第２および第３のコンピュータ装置４２０および４３０にも書き込むということを、分散ミラードディスクシステム１の動作の原則とする。
【００７０】
図１０は、図８〜９に示した分散ミラードディスクシステム４０１で、第１のコンピュータ装置４１０のアプリケーション５０１がＩ／Ｏ要求を発した場合の、第１のコンピュータ装置４１０側での動作を示すフローチャートである。このフローチャートに示される動作は、図２に示した第１の実施形態の場合の動作と概ね同一であるので、同一の動作には同一の参照番号を付している。
【００７１】
唯一の相違点は、第１のコンピュータ装置４１０側のデータブロック５１１に書き込まれたデータが第２〜３のコンピュータ装置４２０〜４３０のデータブロック６１１および７１１に書き込まれなかった場合の動作である（図２のステップＳ３１２〜３１３に相当）。ここで生成された差分情報（ステップＳ８０１）は、第１のコンピュータ装置４１０の管理情報ブロック５１２に書き込まれる（ステップＳ８０２）と同時に、第２〜３のコンピュータ装置４２０〜４３０で正常に動作している方の管理情報ブロック６１２および７１２にも書き込まれる（ステップＳ８０３）。
【００７２】
即ち、データブロックの内容のみならず、管理情報ブロックの内容もミラーリングされることになる。このため、管理情報ブロックを保持しているコンピュータ装置に不具合が生じ、そこに記録されている差分情報を読み取れなくなったとしても、他の装置から差分情報を読み出して、第１の実施形態の場合（図６〜７で説明した動作）と同一のデータ復旧を行うことが可能である。即ち、データブロックの全内容をコピーしなければならなくなる可能性を低減することが可能となる。
【００７３】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【００７４】
上述した各々の実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【００７５】
（付記１）  第１および第２のコンピュータ装置がネットワークを介して相互に接続されて構成される分散ミラードディスクシステムであって、
前記第１のコンピュータ装置が、
データを記録するための領域である第１のデータブロックと当該データブロックに書き込まれたデータが他のコンピュータ装置に書き込まれなかったことを示す情報である差分情報を記録する領域である第１の管理情報ブロックとが確保された第１のディスク装置と、
前記第１のデータブロックにデータを読み書きする第１のディスクＩ／Ｏ部と、
前記第１の管理情報ブロックに前記差分情報を記録する第１の差分情報処理部と、
前記ネットワークを介して前記第２のコンピュータ装置に接続する第１のネットワークＩ／Ｏ部と、
前記第１のデータブロックに書き込んだデータと同内容のデータを前記第２のコンピュータ装置に書き込み依頼する第１のミラーリング制御部と
を備え、
前記第２のコンピュータ装置が、
データを記録するための領域である第２のデータブロックが確保された第２のディスク装置と、
前記第２のデータブロックにデータを読み書きする第２のディスクＩ／Ｏ部と、
前記ネットワークを介して前記第１のコンピュータ装置に接続する第２のネットワークＩ／Ｏ部と、
前記第１のコンピュータ装置から書き込み依頼のあったデータを前記第２のデータブロックに書き込み、その書き込みの結果を前記第１のコンピュータ装置に返信する第２のミラーリング制御部と
を備えると共に、
前記第１の管理情報ブロックが、前記第１のミラーリング制御部からのみアクセス可能な領域であり、
前記第１のミラーリング制御部が、前記第２のコンピュータ装置に書き込み依頼したデータが書き込み失敗した旨の返信を前記第２のミラーリング制御部から受信した場合に、その旨を示す差分情報を前記第２のデータブロックの復旧用として前記第１の管理情報ブロックに書き込むことを特徴とする分散ミラードディスクシステム。
【００７６】
（付記２）  前記第１のミラーリング制御部が、
前記第２のコンピュータ装置の前記ディスク装置を復旧させる際に、前記管理情報ブロックに前記差分情報が存在するか否かを確認し、前記差分情報が存在すればこれに基づいて書き込みに失敗していたデータを前記第２のコンピュータ装置に送信することを特徴とする、付記１に記載の分散ミラードディスクシステム。
【００７７】
（付記３）  前記ネットワークを介して前記第１および第２のコンピュータ装置と相互に接続される第３のコンピュータ装置を備え、
前記第３のコンピュータ装置が、
データを記録するための領域である第３のデータブロックと前記差分情報を記録する領域である第２の管理情報ブロックとが確保された第３のディスク装置と、
前記第３のデータブロックにデータを読み書きする第３のディスクＩ／Ｏ部と、
前記第２の管理情報ブロックに前記差分情報を記録する第２の差分情報処理部と、
前記ネットワークを介して前記第１および第２のコンピュータ装置に接続する第３のネットワークＩ／Ｏ部と、
前記第１のコンピュータ装置から書き込み依頼のあったデータを前記第３のデータブロックに書き込み、その書き込みの結果を前記第１のコンピュータ装置に返信する第３のミラーリング制御部と
を備え、
前記第１のミラーリング制御部が、前記第１のデータブロックに書き込んだデータと同内容のデータを前記第２および第３のコンピュータ装置に書き込み依頼すると共に、この書き込み依頼したデータが書き込み失敗した旨の返信を前記第２のミラーリング制御部から受信した場合に、前記差分情報を前記第１の管理情報ブロックに書き込むと共に前記第３のコンピュータ装置に送信し、
前記第３のミラーリング制御部が、前記第１のコンピュータ装置から受信した前記差分情報を前記第２のデータブロックの復旧用として前記第２の管理情報ブロックに書き込むことを特徴とする、付記１に記載の分散ミラードディスクシステム。
【００７８】
（付記４）    ネットワークを介して相互に接続されて他のコンピュータ装置と接続されて分散ミラードディスクシステムを構成するコンピュータ装置であって、
データを記録するための領域であるデータブロックと当該データブロックに書き込まれたデータが他のコンピュータ装置に書き込まれなかったことを示す情報である差分情報を記録する領域である管理情報ブロックとが確保されたディスク装置と、
前記データブロックにデータを読み書きするディスクＩ／Ｏ部と、
前記管理情報ブロックに前記差分情報を記録する差分情報処理部と、
前記ネットワークを介して他のコンピュータ装置に接続するネットワークＩ／Ｏ部と、
前記データブロックに書き込んだデータと同内容のデータを他のコンピュータ装置に書き込み依頼するミラーリング制御部と
を備えると共に、
前記管理情報ブロックが、前記ミラーリング制御部からのみアクセス可能な領域であり、
前記ミラーリング制御部が、
他のコンピュータ装置から書き込み依頼のあったデータを前記データブロックに書き込み、その書き込みの結果を依頼元のコンピュータ装置に返信する機能と、
他のコンピュータ装置に書き込み依頼したデータが書き込み失敗した旨の返信を当該コンピュータ装置から受信した場合に、その旨を示す差分情報を前記第２のデータブロックの復旧用として前記管理情報ブロックに書き込む機能とを有することを特徴とするコンピュータ装置。
【００７９】
（付記５）  第１および第２のコンピュータ装置がネットワークを介して相互に接続されて構成される分散ミラードディスクシステムにあって、
前記第１のコンピュータ装置が予め備える第１のディスク装置上にデータを記録するための領域である第１のデータブロックと当該データブロックに書き込まれたデータが他のコンピュータ装置に書き込まれなかったことを示す情報である差分情報を記録するための第１のミラーリング制御部からのみアクセス可能な領域である第１の管理情報ブロックとを確保し、
前記第２のコンピュータ装置が予め備える第２のディスク装置上にデータを記録するための領域である第２のデータブロックを確保し、
前記第１のデータブロックに前記第１のコンピュータ装置の第１のディスクＩ／Ｏ部がデータを書き込み、
これと同時に前記第１のデータブロックに書き込んだデータと同内容のデータを前記第２のコンピュータ装置に前記第１のコンピュータ装置の第１のミラーリング制御部が書き込み依頼し、
この書き込み依頼を受けたデータを前記第２のコンピュータ装置の第２のミラーリング制御部が前記第２のデータブロックに書き込み、
この書き込みの結果を前記第２のコンピュータ装置の前記第２のミラーリング制御部が前記第１のコンピュータ装置に返信し、
前記第１のコンピュータ装置の前記第１のミラーリング制御部が前記第２のコンピュータ装置から書き込み失敗した旨の返信を受信した場合に、その旨を示す差分情報を前記第２のデータブロックの復旧用として前記第１の管理情報ブロックに書き込むことを特徴とするミラーリング方法。
【００８０】
（付記６）  第１および第２のコンピュータ装置がネットワークを介して相互に接続されて構成される分散ミラードディスクシステムにあって、
データを記録するための領域であるデータブロックと当該データブロックに書き込まれたデータが他のコンピュータ装置に書き込まれなかったことを示す情報である差分情報を記録するための他のプログラムからアクセス不可能な領域である管理情報ブロックとが予め確保された前記第１のコンピュータ装置に、
前記データブロックにデータを書き込む手順、
これと同時に前記データブロックに書き込んだデータと同内容のデータを前記第２のコンピュータ装置に書き込み依頼する手順、
この書き込みの結果を前記第２のコンピュータ装置から受信する手順、
および前記第２のコンピュータ装置から書き込み失敗した旨の返信を受信した場合に、その旨を示す差分情報を前記第２のコンピュータ装置の復旧用として前記管理情報ブロックに書き込む手順を実行させることを特徴とするミラーリングプログラム。
【産業上の利用可能性】
【００８１】
本発明は、ミラーリングによってデータを保護する用途に適用可能である。特に、ネットワークを介しての遠隔地へのデータバックアップ、あるいはシステムの可容性を高めるクラスタリングのデータ保護システムなどのような用途に好適である。
【符号の説明】
【００８２】
１  分散ミラードディスクシステム
１０、２０、４１０、４２０、４３０  コンピュータ装置
１１、２１、３１  主演算制御手段
１２、２２、３２  ディスク
１３、２３、３３  通信手段
１４、２４、３４  入出力手段
５０  ネットワーク
１０１、２０１、５０１、６０１、７０１  アプリケーション
１０２、２０２、５０２、６０２、７０２  Ｉ／Ｏフック部
１０３、２０３、５０３、６０３、７０３  ミラーリング制御部
１０４、２０４、５０４、６０４、７０４  差分情報処理部
１０５、２０５、５０５、６０５、７０５  ディスクＩ／Ｏ部
１０６、２０６、５０６、６０６、７０６  ネットワークＩ／Ｏ部
１０７、２０７、５０７、６０７、７０７  ノード管理部
１１１、２１１、５１１、６１１、７１１  データブロック
１１１ａ、２１１ａ  ブロックデータ
１１２、２１２、５１２、６１２、７１２  管理情報ブロック
１１２ａ  差分情報
【図１】
2011253400.tif 000003
【図２】
2011253400.tif 000004
【図３】
2011253400.tif 000005
【図４】
2011253400.tif 000006
【図５】
2011253400.tif 000007
【図６】
2011253400.tif 000008
【図７】
2011253400.tif 000009
【図８】
2011253400.tif 000010
【図９】
2011253400.tif 000011
【図１０】
2011253400.tif 000012