(57)【特許請求の範囲】
【請求項１】
データのバックアップおよびリストアを要求可能なコンピュータにおけるデータを、未読み出しデータが記憶されている領域には新たなデータを書き込まないことを制約条件としてデータを一時記憶する循環形式記憶手段を介して、他のコンピュータに接続されたバックアップ装置にバックアップさせるデータバックアップシステムであって、
前記データのバックアップおよびリストアを要求可能なコンピュータは、
前記循環形式記憶手段に出力するデータを一時記憶する一時記憶手段と、
前記一時記憶手段のデータを前記循環形式記憶手段に出力するときに前記制約条件にもとづくデータ出力待ちが生じたか否かと、前記他のコンピュータが前記循環形式記憶手段からデータを読み出しているときに前記循環形式記憶手段に読み出し可能なデータが存在せずデータ入力を待ち合わせている状態であるデータ入力待ちが生じたか否かとを検出する出力待ち／入力待ち検出手段と、
前記一時記憶手段のデータを前記循環形式記憶手段に出力したときに、前記出力待ち／入力待ち検出手段がデータ出力待ちが生じたことを検出した場合に、前記一時記憶手段の記憶可能量を減少させ、前記出力待ち／入力待ち検出手段がデータ入力待ちが生じたことを検出した場合に、前記一時記憶手段の記憶可能量を増加させる記憶可能量決定手段とを備え、
前記出力待ち／入力待ち検出手段は、前記循環形式記憶手段から前記一時記憶手段にデータを入力するときに前記制約条件にもとづく他のコンピュータのデータ出力待ちが生じたか否かと、前記循環形式記憶手段からデータを読み出しているときにデータ入力待ちが生じたか否かとを検出し、
前記記憶可能量決定手段は、前記循環形式記憶手段から前記一時記憶手段にデータを入力したときに、前記出力待ち／入力待ち検出手段がデータ入力待ちが生じたことを検出した場合に、前記一時記憶手段の記憶可能量を減少させ、前記出力待ち／入力待ち検出手段がデータ出力待ちが生じたことを検出した場合に、前記一時記憶手段の記憶可能量を増加させる
ことを特徴とするデータバックアップシステム。
【請求項２】
データのバックアップおよびリストアを要求可能なコンピュータは、ストレージ装置から入力したデータを一時記憶手段に記憶させた後に、循環形式記憶手段に出力する制御を行うバックアップ手段を備えた
請求項１記載のデータバックアップシステム。
【請求項３】
データのバックアップおよびリストアを要求可能なコンピュータは、循環形式記憶手段から入力したデータを一時記憶手段に記憶させた後に、ストレージ装置に出力する制御を行うリストア手段を備えた
請求項２記載のデータバックアップシステム。
【請求項４】
バックアップ装置に接続された他のコンピュータは、
循環形式記憶手段に出力するデータを一時記憶する一時記憶手段と、
前記一時記憶手段のデータを前記循環形式記憶手段に出力するときに制約条件にもとづくデータ出力待ちが生じたか否かと、データのリストアを要求したコンピュータにデータ入力待ちが生じたか否かとを検出する出力待ち／入力待ち検出手段と、
前記一時記憶手段のデータを前記循環形式記憶手段に出力したときに、前記出力待ち／入力待ち検出手段がデータ出力待ちが生じたことを検出した場合に、前記一時記憶手段の記憶可能量を減少させ、前記出力待ち／入力待ち検出手段がデータ入力待ちが生じたことを検出した場合に、前記一時記憶手段の記憶可能量を増加させる記憶可能量決定手段とを備えた
請求項１から請求項３のうちのいずれか１項に記載のデータバックアップシステム。
【請求項５】
バックアップ装置に接続された他のコンピュータにおける出力待ち／入力待ち検出手段は、循環形式記憶手段から一時記憶手段にデータを入力するときに制約条件にもとづく、データのバックアップおよびリストアを要求可能なコンピュータのデータ出力待ちが生じたか否かと、前記循環形式記憶手段からデータを読み出しているときに読み出し可能なデータが存在しない状態であるデータ入力待ちが生じたか否かとを検出し、
バックアップ装置に接続された他のコンピュータにおける記憶可能量決定手段は、前記循環形式記憶手段から前記一時記憶手段にデータを入力したときに、前記出力待ち／入力待ち検出手段がデータ入力待ちが生じたことを検出した場合に、前記一時記憶手段の記憶可能量を減少させ、前記出力待ち／入力待ち検出手段がデータ出力待ちが生じたことを検出した場合に、前記一時記憶手段の記憶可能量を増加させる
請求項４記載のデータバックアップシステム。
【請求項６】
データのバックアップおよびリストアを要求可能なコンピュータを複数含む
請求項１から請求項５のうちのいずれか１項に記載のデータバックアップシステム。
【請求項７】
一時記憶手段を有しデータのバックアップおよびリストアを要求可能なコンピュータにおけるデータを、未読み出しデータが記憶されている領域には新たなデータを書き込まないことを制約条件としてデータを一時記憶する循環形式記憶手段を介して、他のコンピュータに接続されたバックアップ装置にバックアップさせるシステムに適用されるデータバックアップ方法であって、
前記データのバックアップおよびリストアを要求可能なコンピュータが、
前記一時記憶手段のデータを前記循環形式記憶手段に出力するときに前記制約条件にもとづくデータ出力待ちが生じたか否かと、前記他のコンピュータが前記循環形式記憶手段からデータを読み出しているときに前記循環形式記憶手段に読み出し可能なデータが存在せずデータ入力を待ち合わせている状態であるデータ入力待ちが生じたか否かとを検出する検出処理を行い、
前記一時記憶手段のデータを前記循環形式記憶手段に出力したときに、データ出力待ちが生じたことを前記検出処理で検出した場合に、前記一時記憶手段の記憶可能量を減少させ、データ入力待ちが生じたことを前記検出処理で検出した場合に、前記一時記憶手段の記憶可能量を増加させ、
前記循環形式記憶手段から前記一時記憶手段にデータを入力するときに制約条件にもとづく他のコンピュータのデータ出力待ちが生じたか否かと、前記循環形式記憶手段からデータを読み出しているときにデータ入力待ちが生じたか否かとを検出する処理を行い、
前記循環形式記憶手段から前記一時記憶手段にデータを入力したときに、データ入力待ちが生じたことを前記検出処理で検出した場合に、前記一時記憶手段の記憶可能量を減少させ、データ出力待ちが生じたことを前記検出処理で検出した場合に、前記一時記憶手段の記憶可能量を増加させる
ことを特徴とするデータバックアップ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータのデータを、別のコンピュータに接続されたバックアップ装置でバックアップするデータバックアップシステムにおいて、無駄なシステム資源を使用せずにバックアップの転送性能を向上させることができるデータバックシステムおよびデータバックアップ制御方法に関する。
【背景技術】
【０００２】
ストレージ装置の高性能化や大容量化に伴って、企業で扱うデータ量も増加している。災害対策や法規制への対応の観点から、これらのデータのバックアップが重要である。
【０００３】
バックアップ環境に関して、企業で保有するサーバ台数の増加に伴うバックアップ設備の増加や運用の煩雑さを解消するために、サーバ毎に個別にバックアップを行う方式から、１台のバックアップ装置で複数サーバのバックアップを実施する傾向にある。複数サーバのバックアップを実施するバックアップ環境では、バックアップサーバを１台設置し、複数サーバのデータをバックアップサーバに接続されたバックアップ装置でバックアップする形態が取られることがある。
【０００４】
また、業務ディスクをバックアップサーバから直接アクセスさせることができない場合に、サーバとバックアップサーバとの間でデータを転送する方法として、双方に接続されたストレージ装置（共有ディスク）上の循環ファイルを用いることがある（例えば、特許文献１参照）。
【０００５】
特許文献１に記載された循環ファイル処理方式は、データ処理装置と循環ファイルとで構成され、循環ファイルは、順ファイルの物理的終了位置に続く位置がその順ファイルの物理的開始位置になるように定義することによって構成されている。データ処理装置は、データ出力部、データ入力部および循環ファイル管理部を含む。循環ファイル管理部は、ファイルデータ最終位置管理部とファイルデータ先頭位置管理部とを備えている。データ出力部がデータを循環ファイルに格納する際に、または、データ入力部がデータを循環ファイルから参照する際に、それぞれ書き込み位置または読み込み位置を次のポイントにずらす。そのような手法によって、無限にデータを１つのファイルに格納できるようにしている。
【０００６】
【特許文献１】特開平２−２４２３５０号公報（第３，４頁、第７図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
バックアップ／リストア性能は、ストレージ装置と業務サーバとの間のデータ転送性能に左右される。一般に、データ転送用バッファのバッファ長を大きくすると転送性能が高くなる。バッファ長を大きくする場合には、バッファとして使用するメモリや転送処理に使用するＣＰＵなどのシステム資源を多く使用するために、データ転送用バッファのバッファ長を適切な値に設定する必要がある。
【０００８】
しかし、共有ディスク上の循環ファイルを使用してバックアップする場合には、業務サーバにおける業務ディスク−共有ディスク間のデータ転送と、バックアップサーバにおける共有ディスク−バックアップ装置間のデータ転送が並列に実行されるために、業務サーバ側のバッファ長とバックアップサーバ側のバッファ長との両方を、ストレージ装置の性能やサーバのシステム資源、処理能力等を考慮して適切な値に設定する必要がある。
【０００９】
また、複数の業務サーバのデータを１台のバックアップサーバでバックアップする形態をとる場合には、各業務サーバからのバックアップ要求量が、バックアップサーバのシステム資源や処理能力に影響するので、バッファ長を適切な値に設定することは難しい。
【００１０】
そこで、本発明は、バッファ長を適切に制御して、無駄なシステム資源を使用せずに、転送性能を向上させることができるデータバックシステムおよびデータバックアップ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明によるデータバックアップシステムは、データのバックアップおよびリストアを要求可能なコンピュータにおけるデータを、未読み出しデータが記憶されている領域には新たなデータを書き込まないことを制約条件としてデータを一時記憶する循環形式記憶手段を介して、他のコンピュータに接続されたバックアップ装置にバックアップさせるデータバックアップシステムであって、コンピュータは、循環形式記憶手段に出力するデータを一時記憶する一時記憶手段と、一時記憶手段のデータを循環形式記憶手段に出力するときに制約条件にもとづくデータ出力待ちが生じたか否かと、他のコンピュータが循環形式記憶手段からデータを読み出しているときに循環形式記憶手段に読み出し可能なデータが存在せずデータ入力を待ち合わせている状態であるデータ入力待ちが生じたか否かとを検出する出力待ち／入力待ち検出手段と、一時記憶手段のデータを循環形式記憶手段に出力したときに、出力待ち／入力待ち検出手段がデータ出力待ちが生じたことを検出した場合に、一時記憶手段の記憶可能量を減少させ、出力待ち／入力待ち検出手段がデータ入力待ちが生じたことを検出した場合に、一時記憶手段の記憶可能量を増加させる記憶可能量決定手段とを備え、出力待ち／入力待ち検出手段が、循環形式記憶手段から一時記憶手段にデータを入力するときに制約条件にもとづく他のコンピュータのデータ出力待ちが生じたか否かと、循環形式記憶手段からデータを読み出しているときにデータ入力待ちが生じたか否かとを検出し、記憶可能量決定手段が、循環形式記憶手段から一時記憶手段にデータを入力したときに、出力待ち／入力待ち検出手段がデータ入力待ちが生じたことを検出した場合に、一時記憶手段の記憶可能量を減少させ、出力待ち／入力待ち検出手段がデータ出力待ちが生じたことを検出した場合に、一時記憶手段の記憶可能量を増加させることを特徴とする。
【００１２】
本発明によるデータバックアップ制御方法は、一時記憶手段を有しデータのバックアップおよびリストアを要求可能なコンピュータにおけるデータを、未読み出しデータが記憶されている領域には新たなデータを書き込まないことを制約条件としてデータを一時記憶する循環形式記憶手段を介して、他のコンピュータに接続されたバックアップ装置にバックアップさせるシステムに適用されるデータバックアップ方法であって、コンピュータが、一時記憶手段のデータを循環形式記憶手段に出力するときに制約条件にもとづくデータ出力待ちが生じたか否かと、他のコンピュータが循環形式記憶手段からデータを読み出しているときに循環形式記憶手段に読み出し可能なデータが存在せずデータ入力を待ち合わせている状態であるデータ入力待ちが生じたか否かとを検出する検出処理を行い、一時記憶手段のデータを循環形式記憶手段に出力したときに、データ出力待ちが生じたことを検出処理で検出した場合に、一時記憶手段の記憶可能量を減少させ、データ入力待ちが生じたことを検出処理で検出した場合に、一時記憶手段の記憶可能量を増加させ、循環形式記憶手段から一時記憶手段にデータを入力するときに制約条件にもとづく他のコンピュータのデータ出力待ちが生じたか否かと、循環形式記憶手段からデータを読み出しているときにデータ入力待ちが生じたか否かとを検出する処理を行い、循環形式記憶手段から一時記憶手段にデータを入力したときに、データ入力待ちが生じたことを検出処理で検出した場合に、一時記憶手段の記憶可能量を減少させ、データ出力待ちが生じたことを検出処理で検出した場合に、一時記憶手段の記憶可能量を増加させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、データのバックアップ時およびリストア時に、無駄なシステム資源を使用せずに、転送性能を向上させることができる。
【発明を実施するための最良の形態】
【００１４】
まず、業務サーバとバックアップサーバとを例にして、本発明の概要を説明する。
【００１５】
業務サーバとバックアップサーバとの双方に接続された共有ディスク上に循環ファイルとともに循環ファイル管理情報を設ける。循環ファイルは、ファイル領域が循環使用される順編成ファイルであり、ファイルの物理的終了位置に続く位置がそのファイルの物理的開始位置となるファイルである。循環ファイル管理情報は、循環ファイルの入出力状態を管理する情報として、出力済み位置情報と入力済み位置情報とを含む。
【００１６】
業務サーバとバックアップサーバとは、それぞれ、バックアップ／リストア手段を有し、業務サーバのバックアップ／リストア手段は、ストレージ装置と循環ファイルとの間の転送処理を実施し、転送処理の開始時に、バックアップサーバのバックアップ／リストア手段にバックアップ／リストア要求の通知を行う。
【００１７】
バックアップサーバのバックアップ／リストア手段は、業務サーバからバックアップ／リストア要求を受けると、循環ファイルとバックアップ装置との間のデータ転送処理を実施する。
【００１８】
双方のバックアップ／リストア手段は、循環ファイルの入出力に循環ファイル入出力手段を使用する。循環ファイル入出力手段は、循環ファイル管理情報における出力済み位置情報と入力済み位置情報とを参照し、循環ファイルへの出力待ち、または、入力待ちを検出した場合には、入出力完了通知とともに待ちが発生した旨をバックアップ／リストア手段に通知する。
【００１９】
循環ファイルへの出力待ちまたは入力待ちの検出方法は、以下のとおりである。すなわち、出力済み位置が入力済み位置に追いついていることを検出すると、循環ファイルへの出力待ち状態であると判断し、入力済み位置が出力済み位置に追いついていることを検出すると、循環ファイルへの出力待ち状態であると判断する。
【００２０】
循環ファイルへの入出力待ちの発生は、待ちが発生している側の転送処理能力と比較して、待ちが発生している側と反対側の転送処理能力が低いことを示す。例えば、業務サーバの循環ファイルに対する出力処理において出力待ちが発生した場合には、業務サーバの循環ファイルに対する出力処理と比較して、バックアップサーバの循環ファイルに対する入力処理の処理能力が低いことを示す。
【００２１】
バックアップ／リストア性能は、低い側の転送性能で抑えられてしまうので、循環ファイルへの入出力待ちが発生することは非効率である。そこで、バックアップ／リストア手段は、待ち発生を検出した場合には、バッファ長決定手段によってバッファ長を変更し、次回の転送処理を行う。バッファ長決定手段における、バッファ長の決定方法は、以下のとおりである。
【００２２】
循環ファイルに対する出力処理において、出力可能な領域がないことを検出した場合には、バッファ長を縮小する。また、循環ファイルに対する出力処理において、入力処理側のデータ待ち発生を検出した場合には、バッファ長を拡大する。循環ファイルに対する入力処理において、データ待ちとなった場合には、バッファ長を縮小する。また、循環ファイルに対する入力処理において、出力処理側の領域待ち発生を検出した場合には、バッファ長を拡大する。循環ファイルの入出力で待ちが発生した場合、待ちが発生している側のバッファ長を縮小することによって、バッファとして使用するメモリ量を必要量だけに抑え、資源の無駄を省くことができる。また、循環ファイルの入出力で待ちが発生している側と反対側のバッファ長を拡大することによって、ボトルネックとなる側の転送性能を上げ、全体の転送性能を向上することができる。
【００２３】
つまり、本発明では、循環ファイルの特徴である循環ファイルに対する入力と出力によって入力待ちおよび出力待ちが発生することを利用し、入力待ちおよび出力待ちが発生した場合に、循環ファイルの入力側および出力側のバッファ長を変化させる。具体的には、入力側コンピュータ（業務サーバまたはバックアップサーバ）のバッファ長と出力側コンピュータ（バックアップサーバまたは業務サーバ）のバッファ長とを変化させる。すなわち、各コンピュータのバッファ長決定手段は、自コンピュータの循環ファイルへの入力待ちおよび出力待ち発生状況だけではなく、循環ファイルを使用する他方のコンピュータ循環ファイルへの入力待ちおよび出力待ち発生状況も参照して自コンピュータのバッファ長を決定する。
【００２４】
以上の処理を継続することによって、入力処理および出力処理の待ちの発生を低減させることができ、バックアップ／リストア処理の転送性能を向上させることができる。
【００２５】
なお、低い転送性能で安定しないようにするために、バッファ長決定手段は、目標転送性能に未達の場合には、バッファ長を拡大する。目標転送性能は、ストレージ装置や業務サーバの処理能力の理論値からあらかじめ算出して設定される。
【００２６】
以下、本発明の実施形態を図面を参照して説明する。図１は、本発明によるデータバックアップ／リストア方法が適用されるデータバックシステムの構成例を示すブロック図である。
【００２７】
図１に示すデータバックシステムには、業務サーバ群１００と、プログラム制御によって動作するバックアップサーバ２００と、ストレージ装置群３００と、業務サーバ群１００とバックアップサーバ２００との双方に接続されているストレージ装置４００と、バックアップサーバ２００にのみ接続されているバックアップ装置５００とが含まれている。
【００２８】
業務サーバ群１００は、プログラム制御によって動作する複数の業務サーバ１００Ａ，１００Ｂ，・・・，１００Ｎを含む。ストレージ装置群３００は、業務サーバ１００Ａにのみ接続されているストレージ装置３００Ａと、業務サーバ１００Ｂにのみ接続されているストレージ装置３００Ｂと、業務サーバ１００Ｎにのみ接続されているストレージ装置３００Ｎを含む。なお、図１には、３台の業務サーバ１００Ａ，１００Ｂ，１００Ｎと３台のストレージ装置３００Ａ，３００Ｂ，３００Ｎとが示されているが、業務サーバ群１００およびストレージ装置群３００には、それぞれ、１台または２台の装置が含まれていてもよいし、４台以上の装置が含まれていてもよい。
【００２９】
以下、業務サーバ１００Ａの構成を説明するが、業務サーバ１００Ｂ〜１００Ｎの構成は、業務サーバ１００Ａの構成と同じである。
【００３０】
業務サーバ１００Ａは、バックアップ／リストア手段１１０と、ストレージ装置３００Ａにデータを出力しストレージ装置３００Ａからデータを入力する入出力手段１２０と、ストレージ装置４００にデータを出力しストレージ装置４００Ａからデータを入力する循環ファイル入出力手段１２１と、バッファ（一時記憶手段）１３０とを備えている。
【００３１】
バックアップ／リストア手段１１０は、ストレージ装置３００Ａとストレージ装置４００とを対象としたデータコピー機能を有する。すなわち、バックアップ時にはストレージ装置３００Ａのデータをストレージ装置４００にコピーし、リストア時にはストレージ装置４００のデータをストレージ装置３００Ａにコピーする機能を有する。また、バックアップ／リストア手段１１０は、バックアップサーバ２００にバックアップ／リストア要求を通知する機能とを有する。
【００３２】
また、バックアップ／リストア手段１１０には、バッファ長決定手段１１１が設けられている。バッファ長決定手段１１１は、循環ファイル４２０の入出力待ち発生状態を基にバッファ長を決定する機能を有する。また、定期的に循環ファイル４２０とバッファ１３０との間の転送性能を計測し、メモリ（例えば、バックアップ／リストア手段１１０に含まれている。）に記憶する機能を有する。
【００３３】
バックアップサーバ２００は、バックアップ／リストア手段２１０と、バックアップ装置５００にデータを出力しバックアップ装置５００からデータを入力する入出力手段２２０と、ストレージ装置４００にデータを出力しストレージ装置４００からデータを入力する循環ファイル入出力手段２２１と、バッファ２３０とを備えている。
【００３４】
バックアップ／リストア手段２１０は、業務サーバ１００Ａから通知されるバックアップ／リストア要求にもとづいて、ストレージ装置４００とバックアップ装置５００とを対象としたデータコピー機能を有する。
【００３５】
また、バックアップ／リストア手段２１０には、バッファ長決定手段２１１が設けられている。バッファ長決定手段２１１は、循環ファイル４２０の入出力待ち発生状態を元にバッファ長を決定する機能を有する。また、定期的に循環ファイル４２０とバッファ２３０との間の転送性能を計測し、メモリに記憶する機能を有する。
【００３６】
ストレージ装置４００は、循環ファイル管理情報４１０と、循環ファイル４２０とを備えている。循環ファイル４２０は、ファイル領域が循環使用される順編成ファイルであり、ファイルの物理的終了位置に続く位置がそのファイルの物理的開始位置になるファイルである。
【００３７】
図２は、循環ファイル管理情報４１０の構成例を示す説明図である。循環ファイル管理情報４１０は、循環ファイルの入出力状態を管理する情報として、出力済み位置情報４１１と、入力済み位置情報４１２とを含む。なお、循環ファイル管理情報４１０は、物理的には、ストレージ装置４００における所定のメモリ領域に記憶される情報である。
【００３８】
図３は、循環ファイル４２０における出力済み位置と入力済み位置の遷移の例を示す説明図である。
【００３９】
なお、以下の説明において、「データの出力」は、循環ファイル４２０へのデータの出力を意味し、「データの読み出し」は、循環ファイル４２０からデータを読み出すことを意味する。また、図３において、「出力済、未入力領域」は、番号１〜Ｎで示されている領域（メモリ領域）に対してデータが出力されたが、未だデータが読み出されていない（バックアップの場合には、バックアップサーバ２００に入力されていないことを示す。）領域を示す。「出力済、入力済領域」は、番号１〜Ｎで示されている領域に対してデータが出力され、かつ、その領域からデータが読み出されたことを示す。「出力済位置」は、その位置までデータの出力がなされたことを示す。「入力済位置」は、その位置までデータの読み出しがなされたことを示す。
【００４０】
図３（Ａ）には、循環ファイル４２０にデータが出力された状態が示されている。番号４の位置まで未読み出しの出力データが存在する。図３（Ａ）に示す状態の循環ファイル管理情報４１０において、出力済み位置情報４１１：「４」、入力済み位置情報４１２：「０」である。
【００４１】
図３（Ｂ）には、図３（Ａ）に示す状態から、データの出力と、データの読み出しとが実施された状態が示されている。番号１６の位置まで未読み出しの出力データが存在し、番号８の位置までデータが入力されていることを示す。図３（Ｂ）に示す状態の循環ファイル管理情報４１０において、出力済み位置情報４１１：「１６」、入力済み位置情報４１２：「８」である。
【００４２】
図３（Ｃ）には、図３（Ｂ）に示す状態から、データの出力が進んだ状態が示されている。番号Ｎの位置まで未読み出しの出力データが存在することを示す。図３（Ｃ）に示す状態の循環ファイル管理情報４１０において、出力済み位置情報４１１：「Ｎ」、入力済み位置情報４１２：「８」である。
【００４３】
図３（Ｄ）には、図３（Ｃ）に示す状態から、データの出力が進んだ状態が示されている。ファイルの物理的終了位置（図３に示す例では、番号Ｎの位置）まで出力済みであるから、ファイルの物理的開始位置（図３に示す例では、番号１の位置）に戻り、番号１の位置にデータを出力した状態を示す。図３（Ｄ）に示す状態の循環ファイル管理情報４１０において、出力済み位置情報４１１：「１」、入力済み位置情報４１２：「８」である。
【００４４】
図４は、循環ファイル４２０の入出力待ち発生状態の例を示す説明図である。図４（Ｅ）には、図３の（Ｄ）に示す状態から、データの出力が進んだ状態が示されている。番号７の位置まで未読み出しの出力データが存在することを示す。この状態でさらにデータの出力を実施すると、読み出しが完了していないデータを破壊してしまうため、出力待ちになる。すなわち、循環ファイル４２０には、未読み出しデータが記憶されている領域には新たなデータを書き込まないことを制約条件としてデータが一時記憶される。図４（Ｅ）に示す状態の循環ファイル管理情報４１０において、出力済み位置情報４１１：「７」、入力済み位置情報４１２：「８」である。
【００４５】
なお、説明を簡単にするために、出力済み位置情報４１１が示す値が入力済み位置情報４１２が示す値よりも１小さいときには出力待ちになるとしたが、入力済み位置情報４１２で示される領域の全データが読み出し済みを示すように定義されている場合には、出力済み位置情報４１１が示す値＝入力済み位置情報４１２が示す値であるときに、出力待ちになる。すなわち、出力済み位置情報４１１が示す値＝入力済み位置情報４１２が示す値であるときに、出力済み位置情報４１１が入力済み位置情報４１２に追いついていることになる。
【００４６】
図４（Ｆ）は、図４（Ｅ）に示す状態から、データの読み出しが進んだ状態が示されている。番号６の位置まで読み出し済み（入力済み）であることを示す。この状態でさらにデータの読み出しを実施すると、出力済みデータが存在しなので、入力待ちになる。図４（Ｆ）に示す状態の循環ファイル管理情報４１０において、出力済み位置情報４１１：「７」、入力済み位置情報４１２：「６」である。
【００４７】
次に、データバックシステムの動作を説明する。まず、データのバックアップの動作、すなわち業務サーバ１００Ａからストレージ装置４００を介してバックアップサーバ２００の側にデータを転送する場合の動作を図５のフローチャートを参照して説明する。
【００４８】
業務サーバ１００Ａのバックアップ／リストア手段１１０は、バックアップ開始時に、バックアップサーバ２００にバックアップ要求を通知する（ステップＡ１）。バックアップ要求には、循環ファイル４２０のファイル名が含まれる。
【００４９】
その後、バックアップ／リストア手段１１０は、入出力手段１２０を介して、ストレージ装置３００Ａに格納されているバックアップ対象データをバッファ１３０に読み出す（ステップＡ２）。そして、循環ファイル入出力手段１２１に対して、バッファ１３０から循環ファイル４２０への出力を要求する。
【００５０】
循環ファイル入出力手段１２１は、循環ファイル管理情報４１０における出力済み位置情報４１１と入力済み位置情報４１２とを参照し、データの出力が可能か否か判断する（ステップＡ３）。出力が可能な場合、つまり、出力済み位置情報４１１が入力済み位置情報４１２に追いついていない場合には、データの出力を行う（ステップＡ４）。出力が可能でない場合、つまり、出力済み位置情報４１１が入力済み位置情報４１２に追いついている場合には、入力済み位置情報４１２が進むのを待ち合わせる（ステップＡ５）。なお、循環ファイル入出力手段１２１は、循環ファイル４２０における１つの領域全体にデータを出力したときに、出力済み位置情報４１１の値を１増やす。
【００５１】
入力済み位置情報４１２が進み出力可能になったか否か判断する方法として、例えば、定期的に循環ファイル管理情報４１０を参照する方法や、バックアップサーバ２００における循環ファイル入出力手段２２１が、循環ファイル管理情報４１０の入力済み位置情報４１２の値を進めたタイミングで循環ファイル入出力手段１２１に通知する方法などが考えられる。
【００５２】
循環ファイル入出力手段１２１は、出力が完了すると、バックアップ／リストア手段１１０に、処理結果とともに出力待ち発生情報を通知する。
【００５３】
なお、循環ファイル入出力手段１２１は、循環ファイル管理情報４１０における出力済み位置情報４１１と入力済み位置情報４１２とを参照した際に、入力待ちが発生していることを検出した場合には、つまり、入力済み位置情報４１２が出力済み位置情報４１１に追いついている場合には、バックアップ／リストア手段１１０に、処理結果とともに入力待ちが発生していた旨を通知する。
【００５４】
バックアップ／リストア手段１１０は、循環ファイル入出力手段１２１から出力待ち発生情報の通知を受けると、バッファ長決定手段１１１を使用して次回使用するバッファ１３０のバッファ長を決定する。
【００５５】
バッファ長決定手段１１１は、出力待ちが発生した場合には、次回使用するバッファ１３０のバッファ長を縮小する（ステップＡ６，Ａ７）。すなわち、バッファサイズを小さくする。出力待ちが発生しなかった場合には、入力待ちが発生していたか否か確認する（ステップＡ８）。入力待ちが発生していた場合には、次回使用するバッファ１３０のバッファ長を拡大する（ステップＡ９）。すなわち、バッファサイズを大きくする。
【００５６】
出力待ちも入力待ちも発生していない場合には、目標転送性能に達しているか確認し（ステップＡ１２）、目標転送性能に達していない場合には、次回使用するバッファ１３０のバッファ長を拡大する（ステップＡ１３）。すなわち、バッファサイズを大きくする。
【００５７】
なお、バッファ長の縮小の仕方として、縮小前のバッファ長に対して所定の比率（例えば、９０％）のバッファ長にしたり、縮小前のバッファ長に対して所定量（例えば、バッファ１３０として確保可能な最大バイト数の１０％）減らしたりすることが考えられる。また、バッファ長の拡大の仕方として、拡大前のバッファ長に対して所定の比率（例えば、１１０％）のバッファ長にしたり、拡大前のバッファ長に対して所定量（例えば、バッファ１３０として確保可能な最大バイト数の１０％）増やしたりすることが考えられる。ただし、拡大後のバッファ長は、バッファ１３０として確保可能な最大バイト数を限度とする。
【００５８】
また、バッファ長を縮小するときに、出力待ちの発生回数や出力待ち時間に応じて縮小量を決めるようにしてもよい。すなわち、出力待ちの発生回数が所定値よりも多かった場合や出力待ち時間が所定時間よりも長かった場合には、縮小量を大きくするようにしてもよい。また、バッファ長を拡大するときに、入力待ちの発生回数や入力待ち時間に応じて拡大量を決めるようにしてもよい。すなわち、入力待ちの発生回数が所定値よりも多かった場合や入力待ち時間が所定時間よりも長かった場合には、拡大量を大きくするようにしてもよい。
【００５９】
その後、バックアップ／リストア手段１１０は、ストレージ装置３００Ａに格納されているバックアップ対象データを全て循環ファイル４２０へ出力したかどうかを確認し（ステップＡ１０）、全データの出力が完了した場合には、バックアップサーバ２００からのバックアップ結果を待ち合わせる（ステップＡ１１）。循環ファイル４２０に出力されていないデータがある場合には、バッファ１３０への読み出し処理を行う（ステップＡ２）。
【００６０】
バックアップサーバ２００において、バックアップ／リストア手段２１０は、業務サーバ１００Ａからバックアップ要求の通知を受けると（ステップＢ１）、通知されたバックアップ要求にもとづいて、循環ファイル入出力手段２２１を使用してストレージ装置４００からバッファ２３０にデータを読み出し、入出力手段２２０を使用してバッファ２３０からバックアップ装置５００に出力する。
【００６１】
循環ファイル入出力手段２２１は、循環ファイル管理情報４１０における出力済み位置情報４１１と入力済み位置情報４１２とを参照し、データの入力が可能か否か判断する（ステップＢ２）。入力が可能な場合、つまり、入力済み位置情報４１２が出力済み位置情報４１１に追いついていない場合には、データの入力を行う（ステップＢ３）。入力が可能でない場合、つまり、入力済み位置情報４１２が出力済み位置情報４１１に追いついている場合には、出力済み位置情報４１１が進むのを待ち合わせて（ステップＢ４）、データの入力を行う。なお、循環ファイル入出力手段２２１は、循環ファイル４２０における１つの領域の全データを読み出したしたときに、入力済み位置情報４１２の値を１増やす。
【００６２】
出力済み位置情報４１１が進み入力可能になったか否か判断する方法として、例えば、定期的に循環ファイル管理情報４１０を参照する方法や、業務サーバ１００Ａにおける循環ファイル入出力手段１２１が、循環ファイル管理情報４１０の出力済み位置情報４１１の値を進めたタイミングで循環ファイル入出力手段２２１に通知する方法などが考えられる。
【００６３】
循環ファイル入出力手段２２１は、入力が完了すると、バックアップ／リストア手段２１０へ処理結果とともに入力待ち発生情報を通知する。
【００６４】
なお、循環ファイル入出力手段２２１は、循環ファイル管理情報４１０における出力済み位置情報４１１と入力済み位置情報４１２とを参照した際に、出力待ちが発生していることを検出した場合には、つまり、出力済み位置情報４１１が入力済み位置情報４１２に追いついている場合には、バックアップ／リストア手段２１０に、処理結果とともに出力待ちが発生していた旨を通知する。
【００６５】
バックアップ／リストア手段２１０は、循環ファイル入出力手段２２１から待ち発生情報の通知を受けると、バッファ長決定手段２１１を使用して次回使用するバッファ２３０のバッファ長を決定する。
【００６６】
バッファ長決定手段２１１は、入力待ちが発生した場合には、次回使用するバッファ２３０のバッファ長を縮小する（ステップＢ５，Ｂ６）。すなわち、バッファサイズを小さくする。入力待ちが発生しなかった場合には、業務サーバ１００Ａに出力待ちが発生していたか否か確認する（ステップＢ７）。出力待ちが発生していた場合には、次回使用するバッファ２３０のバッファ長を拡大する（ステップＢ８）。すなわち、バッファサイズを大きくする。
【００６７】
入力待ちも出力待ちも発生していない場合には、目標転送性能に達しているか確認し（ステップＢ１２）、目標転送性能に達していない場合には、次回使用するバッファ２３０のバッファ長を拡大する（ステップＢ１３）。すなわち、バッファサイズを大きくする。
【００６８】
その後、バックアップ／リストア手段２１０は、入出力手段２２０を使用して、バッファ２３０の内容をバックアップ装置５００に出力する（ステップＢ９）。
【００６９】
そして、バックアップ／リストア手段２１０は、循環ファイル４２０のデータを全てバックアップ装置５００に出力したかどうかを確認し（ステップＢ１０）、全データの出力が完了した場合には、業務サーバ１００Ａにバックアップ結果を通知する（ステップＢ１１）。バックアップ装置５００に出力されていないデータがある場合には、バッファ２３０への読み出し処理を行う（ステップＢ２）。
【００７０】
次に、データのリストアの動作、すなわちバックアップサーバ２００からストレージ装置４００を介して業務サーバ１００Ａの側にデータを転送する場合の動作を図６のフローチャートを参照して説明する。
【００７１】
業務サーバ１００Ａのバックアップ／リストア手段１１０は、リストア開始時に、バックアップサーバ２００にリストア要求を通知する（ステップＣ１）。リストア要求には、循環ファイル４２０のファイル名が含まれる。
【００７２】
その後、バックアップ／リストア手段１１０は、循環ファイル入出力手段１２１を使用してストレージ装置４００からバッファ１３０にリストアデータを読み出し、入出力手段１２０を使用してバッファ１３０からストレージ装置３００Ａにデータを出力する。
【００７３】
循環ファイル入出力手段１２１は、循環ファイル管理情報４１０における出力済み位置情報４１１と入力済み位置情報４１２とを参照し、データの入力が可能か否か判断する（ステップＣ２）。入力が可能な場合、つまり、入力済み位置情報４１２が出力済み位置情報４１１に追いついていない場合には、データの入力を行う（ステップＣ３）。入力が可能でない場合、つまり、入力済み位置情報４１２が出力済み位置情報４１１に追いついている場合には、出力済み位置情報４１１が進むのを待ち合わせて（ステップＣ４）、データの入力を行う。なお、循環ファイル入出力手段１２１は、循環ファイル４２０における１つの領域の全データを読み出したしたときに、入力済み位置情報４１２の値を１増やす。
【００７４】
出力済み位置情報４１１が進み入力可能になったか否か判断する方法として、例えば、定期的に循環ファイル管理情報４１０を参照する方法や、バックアップサーバ２００における循環ファイル入出力手段２２１が、循環ファイル管理情報４１０の出力済み位置情報４１１の値を進めたタイミングで循環ファイル入出力手段１２１へ通知する方法などが考えられる。
【００７５】
循環ファイル入出力手段１２１は、入力が完了すると、バックアップ／リストア手段１１０に、処理結果とともに入出力待ち発生情報を通知する。
【００７６】
なお、循環ファイル管理情報４１０の出力済み位置情報４１１と入力済み位置情報４１２とを参照した際に、バックアップサーバ２００において出力待ちが発生していることを検出した場合、つまり、出力済み位置情報４１１が入力済み位置情報４１２に追いついている場合には、バックアップ／リストア手段１１０に、処理結果とともに出力待ちが発生していた旨を通知する。
【００７７】
バックアップ／リストア手段１１０は、循環ファイル入出力手段１２１から待ち発生情報の通知を受けると、バッファ長決定手段１１１を使用して次回使用するバッファ１３０のバッファ長を決定する。
【００７８】
バッファ長決定手段１１１は、入力待ちが発生した場合には、次回使用するバッファ１３０のバッファ長を縮小する（ステップＣ５，Ｃ６）。すなわち、バッファサイズを小さくする。入力待ちが発生しなかった場合には、出力待ちが発生していたか否か確認する（ステップＣ７）。出力待ちが発生していた場合には、次回使用するバッファ１３０のバッファ長を拡大する（ステップＣ８）。すなわち、バッファサイズを大きくする。
【００７９】
入力待ちも出力待ちも発生していない場合には、目標転送性能に達しているか否か確認する（ステップＣ１２）。そして、目標転送性能に達していない場合には、次回使用するバッファ１３０のバッファ長を拡大する（ステップＣ１３）。すなわち、バッファサイズを大きくする。
【００８０】
その後、バックアップ／リストア手段１１０は、入出力手段１２０を使用して、バッファ１３０の内容をストレージ装置３００Ａに出力する（ステップＣ９）。
【００８１】
バックアップ／リストア手段１１０は、循環ファイル４２０のデータを全てストレージ装置３００Ａに出力したかどうかを確認し（ステップＣ１０）、全データの出力が完了した場合には、バックアップサーバ２００からのリストア結果を待ち合わせる（ステップＣ１１）。ストレージ装置３００Ａに出力されていないデータがある場合には、バッファ１３０への読み出し処理を行う（ステップＣ２）。
【００８２】
バックアップサーバ２００において、バックアップ／リストア手段２１０は、業務サーバ１００Ａからリストア要求の通知を受けると（ステップＤ１）、通知されたリストア要求にもとづいて、入出力手段２２０を使用して、バックアップ装置５００からバッファ２３０にデータを読み出し（ステップＤ２）、循環ファイル入出力手段２２１に対して循環ファイル４２０への出力を要求する。
【００８３】
循環ファイル入出力手段２２１は、循環ファイル管理情報４１０における出力済み位置情報４１１と入力済み位置情報４１２とを参照し、データの出力が可能か否か判断する（ステップＤ３）。出力が可能な場合、つまり、出力済み位置情報４１１が入力済み位置情報４１２に追いついていない場合には、データの出力を行う（ステップＤ４）。出力が可能でない場合、つまり、出力済み位置情報４１１が入力済み位置情報４１２に追いついている場合には、入力済み位置情報４１２が進むのを待ち合わせる（ステップＤ５）。なお、循環ファイル入出力手段２２１は、循環ファイル４２０における１つの領域全体にデータを出力したときに、出力済み位置情報４１１の値を１増やす。
【００８４】
入力済み位置情報４１２が進み出力可能になったか否か判断する方法として、例えば、定期的に循環ファイル管理情報４１０を参照する方法や、業務サーバ１００Ａにおける循環ファイル入出力手段１２１が、循環ファイル管理情報４１０の入力済み位置情報４１２の値を進めたタイミングで循環ファイル入出力手段２２１に通知する方法などが考えられる。
【００８５】
循環ファイル入出力手段２２１は、出力が完了すると、バックアップ／リストア手段２１０に、処理結果とともに出力待ち発生情報を通知する。
【００８６】
なお、循環ファイル管理情報４１０の出力済み位置情報４１１と、入力済み位置情報４１２を参照した際、入力待ちが発生していることを検出した場合、つまり、入力済み位置情報４１２が出力済み位置情報４１１に追いついている場合には、バックアップ／リストア手段２１０に、処理結果とともに入力待ちが発生していた旨を通知する。
【００８７】
バックアップ／リストア手段２１０は、循環ファイル入出力手段２２１から出力待ち発生情報の通知を受けると、バッファ長決定手段２１１を使用して次回使用するバッファ２３０のバッファ長を決定する。
【００８８】
バッファ長決定手段２１１は、出力待ちが発生した場合には、次回使用するバッファ２３０のバッファ長を縮小する（ステップＤ６，Ｄ７）。すなわち、バッファサイズを小さくする。出力待ちが発生しなかった場合には、入力待ちが発生していたか否か確認する（ステップＤ８）。入力待ちが発生していた場合には、次回使用するバッファ２３０のバッファ長を拡大する（ステップＤ９）。すなわち、バッファサイズを大きくする。
【００８９】
出力待ちも入力待ちも発生していない場合には、目標転送性能に達しているか否か確認する（ステップＤ１２）。目標転送性能に達していない場合には、次回使用するバッファ２３０のバッファ長を拡大する（ステップＤ１３）。すなわち、バッファサイズを大きくする。
【００９０】
以上に説明したように、本実施形態では、無駄なシステム資源を使用せずに、転送性能を向上させることができる。バックアップ／リストア時に、循環ファイルへの出力処理側と入力処理側の双方のバッファ長を変化させるからである。循環ファイルの入出力で待ちが発生した場合に、待ちが発生している側のバッファ長を縮小することによって、バッファとして使用するメモリ量を必要量だけに抑え、資源の無駄を省くことができる。また、循環ファイルの入出力で待ちが発生している側と反対側のバッファ長を拡大することによって、バッファ−ストレージ装置間のデータ入出力開始制御回数を減らし、ボトルネックになる側の転送性能を上げ、全体の転送性能を向上させることができる。
【００９１】
また、複数の業務サーバのデータを１台のバックアップサーバでバックアップする形態において、各業務サーバからのバックアップ要求量に応じてバックアップサーバの処理能力が変化するが、そのような環境においても無駄なシステム資源を使用せずにバックアップ負荷に応じて転送性能を向上させることができる。
【００９２】
図７は、本発明によるデータバックシステムの主要構成を示すブロック図である。データバックシステムは、図７に示すように、データのバックアップおよびリストアを要求可能なコンピュータ１と、バックアップ装置４に接続された他のコンピュータ２と、コンピュータ１とコンピュータ２とが、それぞれ、データ入出力可能な循環ファイル形式でデータを記憶する循環形式記憶手段３とを備え、コンピュータ１は、循環形式記憶手段３に出力するデータを一時記憶する一時記憶手段１Ａと、一時記憶手段１Ａのデータを循環形式記憶手段３に出力するときに制約条件（未読み出しデータが記憶されている領域には新たなデータを書き込まないこと）にもとづくデータ出力待ちが生じたか否かと、他のコンピュータ２が循環形式記憶手段３からデータを読み出しているときに循環形式記憶手段３に読み出し可能なデータが存在せずデータ入力を待ち合わせている状態であるデータ入力待ちが生じたか否かとを検出する出力待ち／入力待ち検出手段１Ｃと、一時記憶手段１Ａのデータを循環形式記憶手段３に出力したときに、出力待ち／入力待ち検出手段１Ｃがデータ出力待ちが生じたことを検出した場合に、一時記憶手段１Ａの記憶可能量を減少させ、出力待ち／入力待ち検出手段１Ｃがデータ入力待ちが生じたことを検出した場合に、一時記憶手段１Ａの記憶可能量を増加させる記憶可能量決定手段１Ｂとを備えている。
【００９３】
また、出力待ち／入力待ち検出手段１Ｃは、循環形式記憶手段３から一時記憶手段１Ａにデータを入力するときに制約条件にもとづく他のコンピュータ２のデータ出力待ちが生じたか否かと、循環形式記憶手段３からデータを読み出しているときにデータ入力待ちが生じたか否かとを検出し、記憶可能量決定手段１Ｂは、循環形式記憶手段３から一時記憶手段１Ａにデータを入力したときに、出力待ち／入力待ち検出手段１Ｃがデータ入力待ちが生じたことを検出した場合に、一時記憶手段１Ａの記憶可能量を減少させ、出力待ち／入力待ち検出手段１Ｃがデータ出力待ちが生じたことを検出した場合に、一時記憶手段１Ａの記憶可能量を増加させる。
【００９４】
なお、一時記憶手段１Ａと、出力待ち／入力待ち検出手段１Ｃの機能および記憶可能量決定手段１Ｂの機能に相当するものが、他のコンピュータ２にも備えられている。
【図面の簡単な説明】
【００９５】
【図１】本発明によるデータバックアップ／リストア方法が適用されるデータバックシステムの構成例を示すブロック図である。
【図２】循環ファイル管理情報の構成例を示す説明図である。
【図３】循環ファイルにおける出力済み位置と入力済み位置の遷移の例を示す説明図である。
【図４】循環ファイルの入出力待ち発生状態の例を示す説明図である。
【図５】まず、データのバックアップの動作を示すフローチャートである。
【図６】データのリストアの動作を示すフローチャートである。
【図７】本発明によるデータバックシステムの主要構成を示すブロック図である。
【符号の説明】
【００９６】
１      コンピュータ
１Ａ    一時記憶手段
１Ｂ    記憶可能量決定手段
１Ｃ    出力待ち／入力待ち検出手段
２      他のコンピュータ
３      循環形式記憶手段
１００  業務サーバ群
１００Ａ，１００Ｂ，１００Ｎ  業務サーバ
１１０  バックアップ／リストア手段
１１１  バッファ長決定手段
１２０  入出力手段
１２１  循環ファイル入出力手段
１３０  バッファ
２００  バックアップサーバ
２１０  バックアップ／リストア手段
２１１  バッファ長決定手段
２２０  入出力手段
２２１  循環ファイル入出力手段
２３０  バッファ
３００  ストレージ装置群
３００Ａ，３００Ｂ，３００Ｎ  ストレージ装置
４００  ストレージ装置
４１０  循環ファイル管理情報
４１１  出力済み位置情報
４１２  入力済み位置情報
４２０  循環ファイル
５００  バックアップ装置
【図１】
0004894789.tif 000002
【図２】
0004894789.tif 000003
【図３】
0004894789.tif 000004
【図４】
0004894789.tif 000005
【図５】
0004894789.tif 000006
【図６】
0004894789.tif 000007
【図７】
0004894789.tif 000008