(57)【要約】【課題】  低コストで、計算機システムの故障によるディスクの内容を破壊することを防止できるディスク多重化システムを提供する。【解決手段】  多重化システム２０により、データの書込みをトランザクション単位に分割し、データ書込みのログをとり、トランザクションの最後に、当該トランザクション中に変更のあったデータのみを外部記憶装置５０に書き込む。また、ネットワーク接続されているすべての計算機システム２，３に対してトランザクション中に変更のあったデータの書き込み命令を送信する。【選択図】  図３
2006195737.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するための外部記憶装置と、
他の計算機システムと通信を行うためのネットワークコントローラと、
前記外部記憶装置へデータを格納するためのファイルシステムと、
多重化システムとを備え、
前記多重化システムは、データの書込みをトランザクション単位に分割し、データ書込みのログをとり、トランザクションの最後に、当該トランザクション中に変更のあったデータのみを前記外部記憶装置に書き込むとともに、前記ネットワークコントローラと接続されているすべての計算機システムに対して前記トランザクション中に変更のあったデータの書き込み命令を送信することを特徴とする計算機システム。
【請求項２】
請求項１記載の計算機システムにおいて、
前記ネットワークコントローラと接続されている自身を含む各計算機システムを区別するための識別情報と、各計算機システムが管理するファイル名と、ファイル毎に設定されトランザクション処理を実行する毎に値が増加するシーケンシャル番号とを関連づけて保持するリモート情報リストを有し、
前記ネットワークコントローラと接続されているすべての計算機システムに対して前記リモート情報リストを送信し、前記ネットワークコントローラと接続されている計算機から同一ファイル名でシーケンシャル番号がより大きなファイルあるいは前記リモート情報リストに含まれていないファイルが送信されてきたときそのファイルを前記外部記憶装置に保存する機能を有することを特徴とする計算機システム。
【請求項３】
請求項１記載の計算機システムにおいて、
前記ネットワークコントローラと接続されている自身を含む各計算機システムを区別するための識別情報と、各計算機システムが管理するファイル名と、ファイル毎に設定され当該ファイルに対してトランザクション処理を実行する毎に値が増加するシーケンシャル番号とを関連づけて保持するリモート情報リストを有し、
前記ネットワークコントローラと接続されている計算機システムから当該計算機システムの保持するリモート情報リストが送信されてきたとき、自身の保持するリモート情報リストと送信されてきたリモート情報リストとを比較し、送信されてきたリモート情報リストの中に自身の保持するリモート情報リスト中のファイル名と同一のファイル名でシーケンシャル番号がより大きなものが含まれていれば、当該リモート情報リストを送信してきた計算機システムに対してそのファイル名のファイルの送信要求を送信する機能を有することを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムが故障した場合にデータを保護することを目的としたディスク多重化システムに関する。
【背景技術】
【０００２】
計算機システムの故障によりデータ損失が発生してしまう場合がある。これに備えてデータを保護することを目的として、ひとつのデータを複数の記憶ディスクへ記憶させるディスク多重化システムが知られている。
【０００３】
ディスクを多重化するひとつの方法として、ローカルディスクを多重化するＲＡＩＤシステムがある。また、フォールトトレラントシステムでは、全く同じ構成のシステムを常に待機系として動作させ、運用しているシステムにトラブルが発生した場合、待機系に切り替えるホットスタンバイシステムがある。
【０００４】
【特許文献１】特開平７−２４４６４５号公報
【特許文献２】特開２００４−２６５３１３号公報
【特許文献３】特開２００４−９４４３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ローカルディスクを多重化するＲＡＩＤシステムでは、計算機システムの故障発生によりディスクの内容を破壊してしまう恐れもある。また、ホットスタンバイシステムでは、同じ構成のシステムを構築しなければならないため、コストが高くなってしまう。
【０００６】
本発明は、低コストで、計算機システムの故障によるディスクの内容を破壊することを防止できるディスク多重化システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明による計算機システムは、データを格納するための外部記憶装置と、他の計算機システムと通信を行うためのネットワークコントローラと、外部記憶装置へデータを格納するためのファイルシステムと、多重化システムとを備え、多重化システムは、データの書込みをトランザクション単位に分割し、データ書込みのログをとり、トランザクションの最後に、当該トランザクション中に変更のあったデータのみを外部記憶装置に書き込むとともに、ネットワークコントローラと接続されているすべての計算機システムに対してトランザクション中に変更のあったデータの書き込み命令を送信することを特徴とする。
【０００８】
本発明の計算機システムは、また、ネットワークコントローラと接続されている自身を含む各計算機システムを区別するための識別情報と、各計算機システムが管理するファイル名と、ファイル毎に設定されトランザクション処理を実行する毎に値が増加するシーケンシャル番号とを関連づけて保持するリモート情報リストを有し、ネットワークコントローラと接続されているすべての計算機システムに対してリモート情報リストを送信し、ネットワークコントローラと接続されている計算機から同一ファイル名でシーケンシャル番号がより大きなファイルあるいはリモート情報リストに含まれていないファイルが送信されてきたときそのファイルを外部記憶装置に保存する機能を有する。ホストの計算機システムは、この機能によりデータ修復を行うことができる。
【０００９】
本発明の計算機システムは、また、ネットワークコントローラと接続されている自身を含む各計算機システムを区別するための識別情報と、各計算機システムが管理するファイル名と、ファイル毎に設定され当該ファイルに対してトランザクション処理を実行する毎に値が増加するシーケンシャル番号とを関連づけて保持するリモート情報リストを有し、ネットワークコントローラと接続されている計算機システムから当該計算機システムの保持するリモート情報リストが送信されてきたとき、自身の保持するリモート情報リストと送信されてきたリモート情報リストとを比較し、送信されてきたリモート情報リストの中に自身の保持するリモート情報リスト中のファイル名と同一のファイル名でシーケンシャル番号がより大きなものが含まれていれば、当該リモート情報リストを送信してきた計算機システムに対してそのファイル名のファイルの送信要求を送信する機能を有する。リモートＰＣは、この機能によりデータ修復を行うことができる。
【発明の効果】
【００１０】
本発明によると、ネットワーク上に構築されている他の計算機システムにデータを格納するため、計算機システムの故障によりディスクの内容を破壊することを防止でき、最小限のデータ変更のみを転送することで通信のオーバヘッドを抑止できる。また、同一のシステムを構築する必要がなく、システム上にネットワークと外部記憶装置を有する計算機システムが存在すれば、該計算機システム上にバックアップデータを構築できるため、コストもかからない。
【発明を実施するための最良の形態】
【００１１】
本発明の実施形態について、図面を参照して詳細に説明する。
【００１２】
図１は、本発明の一実施例に係るディスク多重化方式の構成を示すブロック図である。
本発明のディスク多重化システムは、複数の計算機システム１，２，３，…がネットワーク７０で接続されている環境を前提とする。各計算機システム１，２，３，…は、アプリケーション１０、多重化システム２０、ファイルシステム３０、オペレーティングシステム４０、ファイルを格納する外部記憶装置５０、ネットワークを制御するＮＩＣ６０を備える。
【００１３】
図２は、外部記憶装置５０に格納されるデータ（以下、ファイルと呼ぶ）の構成を示す図である。ファイル１００は、固定サイズで構成されるレコード１１０と呼ばれるブロックの集合体である。各計算機システム１，２，３，…は、少なくともファイル１００を扱えるアプリケーションをそれぞれが保有する。
【００１４】
図３は、本発明の多重化システム２０の処理フロー図である。アプリケーション１０は多重化システムに対して、トランザクション３００の開始を通知するためのBegin_Work命令２１０を発行する。以下、トランザクション３００の完了を要求するCommit_Work命令２６０までトランザクション処理となる。多重化システム２０は、アプリケーション１０からのファイル書込み要求であるWrite_File命令２２０を受け付けると、外部記憶装置５０にレコード１１０を書き込むことを行わず、命令リスト２３０にリストしておく。
【００１５】
図４は、命令リスト２３０の構成である。命令リスト２３０の各ノード４３０は、命令内容４００と、データを書き込むレコードＮｏ４１０、レコードに書き込むデータの格納先を示すアドレスであるデータ格納アドレス４２０で構成される。そして、ノード４３０は、時系列順にリスティングされる。
【００１６】
そして、アプリケーション１０からのトランザクション完了要求であるCommit_Work命令２６０を受け付けると、多重化システム２０は命令リスト２３０から同じレコードＮｏ４１０の命令に対しては、一番最後に受け付けたWrite_File命令２２０を受け付ける。これによって、同じレコード１１０に対する重複するWrite_File命令２２０を削除することで、ディスク書込み２８０の回数を削減できる。また、リモートＰＣ２００へのファイル書込みの要求である命令・データ送信２７０も少なくてすみ、ネットワーク７０のオーバヘッドを削減できる。多重化システムはディスク書込み２８０とリモートＰＣ２００への命令・データ送信２７０が終了したならば、アプリケーション１０に対して、トランザクション完了２９０を通知する。
【００１７】
命令・データ送信２７０を受領したリモートＰＣ２００は、命令・データ送信２７０に含まれている命令リストに従って自身の管理する外部記憶装置に対して書き込みを行う。それによって、リモートＰＣ２００の外部記憶装置に保持されているホストと同名のファイルがホストの管理する外部記憶装置内のファイルと同じ状態に更新される。
【００１８】
トランザクション完了２９０で新しいファイルに更新されるため、ファイルの読み込み命令に関してはトランザクション完了２９０以降で最新のファイルが読み込まれる。別のアプリケーションが同一のファイルを読み込む場合、トランザクション３００中であれば、たとえ、アプリケーション１０がファイル１００のレコード１１０をWrite_File命令２２０を実行していても、ディスク書込み２８０が実行されていないため、トランザクション３００前のレコード１１０が読み込まれる。
【００１９】
これは、リモートＰＣ２００のWrite_File命令２５０も同一である。リモートＰＣ２００が自身の外部記憶装置に対して、ディスク書込みを実行すると、ネットワークに接続されている他のＰＣにも命令・データ送信要求を実施する。このとき、命令・データ送信要求を受け付けたＰＣがトランザクション３００中であれば、トランザクション完了２９０前にディスク書込み２８０を実施することで、リモートＰＣ２００の命令・データ送信要求を受け付ける。しかし、トランザクション３００中でない場合もある。このため、命令・データ送信要求では、最初にトランザクション開始２４０要求を発行する。もし、トランザクション中でなければ、トランザクション開始２４０を受け付け、トランザクション３００となる。
【００２０】
第２の実施例を第５図を用いて説明する。
パワーオン５００により、ホストＰＣの電源が投入されると、外部記憶装置５０からリモート情報リスト５１０を取得する。リモート情報リストは、ホストＰＣ及びすべてのリモートＰＣを管理しているリモート情報のリストである。
【００２１】
リモート情報６００には、各ＰＣを区別するための固定id５２０と、各ＰＣのアプリケーションが管理するファイルの名称であるファイル名５３０と、トランザクション処理を実行する毎に値が増加するシーケンシャル番号５４０から構成される。
【００２２】
図３によって説明したように、１つのトランザクションによるホストのファイルの変更を反映した命令・データ送信２７０を受領した各リモートＰＣは、それによって自身の外部記憶装置に保持している同名のファイルに書き込みを行い、そのファイルの内容をホストの有するファイルと同じ内容に更新する。それと同時に、各リモートＰＣは、自身の外部記憶装置に保有しているリモート情報リスト中で、更新したファイル名のシーケンシャル番号を１だけインクリメントする。
【００２３】
ホストＰＣはパワーオン５００後、各リモートＰＣに対して、自身のリモート情報６００をブロードキャストする。各リモートＰＣは受信したホストＰＣのリモート情報５００と、リモートＰＣが保持しているリモート情報のシーケンシャル番号５４０を比較する。もし、ホストＰＣのシーケンシャル番号がリモートＰＣが保持しているホストＰＣのシーケンシャル番号よりも大きな場合、リモートＰＣが保持しているホストＰＣのファイルの内容がホストＰＣのものよりも古いことになる。この場合、リモートＰＣ２００はホストＰＣに対して、データ送信要求５６０を送信し、最新のファイルを送信してもらう。こうして、リモートＰＣは、自身が保持しているホストのバックアップデータが最新のものでない場合、それを知るとともに、バックアップデータを常に最新のものとすることができる。
【００２４】
また、リモートＰＣの保持しているホストＰＣのファイル名が、ホストＰＣから送られたリモート情報に存在しない場合、ホストＰＣが自身のファイルを喪失してしまったと考えられるので、リモートＰＣはホストＰＣに対して、データ転送要求５８０を送信し、リモートＰＣが保持しているファイルをホストＰＣに対して送信する（５９０）。こうして、ホストは喪失したデータやファイルを回復することができる。ホストＰＣのデータ修復は自動的に行われ、データの修復時間を抑え、信頼性を高めることができる。
【００２５】
以上説明したように、発明によれば、ネットワーク上に接続されている外部記憶装置を保持する他の計算機システムにデータを退避できることで、多重化するための特別なハードウェアを追加する必要がないため、コストを追加する必要がない。また、従来のようにローカルディスクを多重化した場合、計算機システム自身が暴走したならば、データを破壊してしまう恐れがある。しかし、本システムであればネットワーク上の他の計算機システムのデータまで破壊する恐れがなくため、信頼性を向上することができる効果がある。更に、仮に外部記憶装置が破壊したり、ある時点までのデータを喪失した場合、他の計算機システムにデータを退避しているため、データ喪失によるシステム障害を防止することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明によるディスク多重化システムのシステム構成例を示すブロック図。
【図２】本発明によるディスク多重化システムのファイル構成図。
【図３】本発明によるディスク多重化システムの処理フローの例を示す図。
【図４】本発明によるディスク多重化システムの命令リストの構成例を示す図。
【図５】本発明によるディスク多重化システムの処理フローの例を示す図。
【符号の説明】
【００２７】
１，２，３：計算機システム、１０：アプリケーション、２０：多重化システム、３０：ファイルシステム、４０：オペレーティングシステム、５０：外部記憶装置、６０：ＮＩＣ、７０：ネットワーク
【図１】
2006195737.tif 000003
【図２】
2006195737.tif 000004
【図３】
2006195737.tif 000005
【図４】
2006195737.tif 000006
【図５】
2006195737.tif 000007