(57)【特許請求の範囲】
【請求項１】
バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアントと、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバとが相互に接続された差分バックアップシステムであって、
前記バックアップ管理サーバが、
前記フルバックアップデータを記憶する第１の固定記憶手段と、
ネットワークを経由して前記クライアントとデータ通信を行う第１のデータ送受信部と、
予め与えられた第１ないし第３のブロックサイズの各々で前記フルバックアップデータをブロックに区切ってこれら各ブロックのデータに予め与えられた関数を適用して第１のハッシュデータを算出する第１のハッシュデータ計算部と、
前記第１ないし第３のブロックサイズの各々の場合の前記第１のハッシュデータを前記フルバックアップデータの一部である試験用領域についてのものとそれ以外の残領域のものとに分割して前記試験用領域についてのハッシュデータを前記クライアントに送信する最適化処理用データ作成部と
を有し、
前記クライアントが、
前記バックアップ管理サーバとデータ通信を行う第２のデータ送受信部と、
前記バックアップ対象データを記憶する第２の固定記憶手段と、
前記第１〜第３のブロックサイズの各々の場合について前記バックアップ対象データをブロックに区切ってこれら各ブロックのデータに前記関数を適用して第２のハッシュデータを算出する第２のハッシュデータ計算部と、
算出された前記第２のハッシュデータを前記ブロックごとに前記バックアップ管理サーバから受信した前記第１のハッシュデータと比較するハッシュデータ比較部と、
前記ブロックごとの前記第１および第２のハッシュデータの比較結果が異なっている場合に前記バックアップ対象データの該ブロックを差分バックアップする差分バックアップ部と、
前記第１ないし第３のブロックサイズの各々の場合について、前記試験用領域についての第１のハッシュデータを利用して前記バックアップ対象データの前記試験用領域について前記差分バックアップ部に試験的差分バックアップを行わせると共に、前記第１〜第３のブロックサイズで行った前記試験的差分バックアップで最も所要時間の少なかったブロックサイズを最適サイズとして決定する最適サイズ計算部と、
決定された前記最適サイズの場合の前記残領域についての第１のハッシュデータを前記バックアップ管理サーバに要求すると共に、送られてきたこの残領域についての第１のハッシュデータを利用して前記差分バックアップ部に前記最適サイズで前記バックアップ対象データの残領域の差分バックアップを行わせる差分バックアップ最適化部と
を有することを特徴とする差分バックアップシステム。
【請求項２】
前記第２のブロックサイズが前記第１のブロックサイズより大きく、かつ前記第３のブロックサイズが前記第１のブロックサイズより小さく、
前記バックアップ管理サーバの前記最適化処理用データ作成部が、前記残領域についての第１のハッシュデータを前記クライアントに返信する際に受信した前記最適サイズを次回同一処理時の前記第１のブロックサイズとして記憶する機能を有することを特徴とする、請求項１に記載の差分バックアップシステム。
【請求項３】
前記クライアントの前記最適サイズ計算部が、前記第２のブロックサイズで行った前記試験的差分バックアップの所要時間が前記第１のブロックサイズで行った前記試験的差分バックアップの所要時間より短ければ、その時点で前記第２のブロックサイズを前記最適サイズとして決定する機能を有することを特徴とする、請求項２に記載の差分バックアップシステム。
【請求項４】
前記バックアップ管理サーバが、
前記クライアントの備えるプロセッサを前記第２のデータ送受信部、前記第２のハッシュデータ計算部、前記ハッシュデータ比較部、前記差分バックアップ部、前記最適サイズ計算部、および前記差分バックアップ最適化部として機能させるプログラムであるブートイメージを前記第１の固定記憶手段に記憶するブートイメージ格納部と、
前記ブートイメージを前記クライアントに送信して動作させるブートイメージ送信部とを有することを特徴とする、請求項１に記載の差分バックアップシステム。
【請求項５】
バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアントと相互に接続され、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバであって、
前記フルバックアップデータを記憶する固定記憶手段と、
ネットワークを経由して前記クライアントとデータ通信を行うデータ送受信部と、
予め与えられた第１ないし第３のブロックサイズの各々で前記フルバックアップデータをブロックに区切ってこれら各ブロックのデータに予め与えられた関数を適用してハッシュデータを算出するハッシュデータ計算部と、
前記第１ないし第３のブロックサイズの各々の場合の前記ハッシュデータを前記フルバックアップデータの一部である試験用領域についてのものとそれ以外の残領域のものとに分割して前記試験用領域についてのハッシュデータを前記クライアントに送信する最適化処理用データ作成部と
を有することを特徴とするバックアップ管理サーバ。
【請求項６】
バックアップ対象データを保持し、前記バックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバと相互に接続されたコンピュータ装置であるクライアントであって、
前記バックアップ管理サーバとデータ通信を行うデータ送受信部と、
前記バックアップ対象データを記憶する固定記憶手段と、
前記第１〜第３のブロックサイズの各々の場合について前記バックアップ対象データをブロックに区切ってこれら各ブロックのデータに前記関数を適用して第２のハッシュデータを算出するハッシュデータ計算部と、
算出された前記第２のハッシュデータを前記ブロックごとに前記バックアップ管理サーバから受信した前記第１のハッシュデータと比較するハッシュデータ比較部と、
前記ブロックごとの前記第１および第２のハッシュデータの比較結果が異なっている場合に前記バックアップ対象データの該ブロックを差分バックアップする差分バックアップ部と、
前記第１ないし第３のブロックサイズの各々の場合について、前記バックアップ対象データの一部である試験用領域についての第１のハッシュデータを利用して前記バックアップ対象データの前記試験用領域について前記差分バックアップ部に試験的差分バックアップを行わせると共に、前記第１〜第３のブロックサイズで行った前記試験的差分バックアップで最も所要時間の少なかったブロックサイズを最適サイズとして決定する最適サイズ計算部と、
決定された前記最適サイズの場合の前記試験用領域以外の残領域についての第１のハッシュデータを前記バックアップ管理サーバに要求すると共に、送られてきたこの残領域についての第１のハッシュデータを利用して前記差分バックアップ部に前記最適サイズで前記バックアップ対象データの残領域の差分バックアップを行わせる差分バックアップ最適化部と
を有することを特徴とするクライアント。
【請求項７】
バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアントと、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバとが相互に接続された差分バックアップシステムにあって、
予め与えられた第１ないし第３のブロックサイズの各々で前記バックアップ管理サーバの第１のハッシュデータ計算部が前記フルバックアップデータをブロックに区切り、
前記各ブロックのデータに予め与えられた関数を適用して前記バックアップ管理サーバの前記第１のハッシュデータ計算部が第１のハッシュデータを算出し、
前記第１ないし第３のブロックサイズの各々の場合について前記第１のハッシュデータを前記バックアップ管理サーバの最適化処理用データ作成部が前記フルバックアップデータの一部である試験用領域についてのものとそれ以外の残領域のものとに分割し、
前記試験用領域についてのハッシュデータを前記バックアップ管理サーバの前記最適化処理用データ作成部が前記クライアントに送信し、
前記第１〜第３のブロックサイズの各々の場合について前記クライアントの第２のハッシュデータ計算部が前記バックアップ対象データを当該ブロックサイズのブロックに区切り、
前記各ブロックのデータに前記関数を適用して前記クライアントの前記第２のハッシュデータ計算部が第２のハッシュデータを算出し、
前記ブロックごとに算出された前記第２のハッシュデータと前記バックアップ管理サーバから受信した前記第１のハッシュデータとを前記クライアントのハッシュデータ比較部が比較し、
前記ブロックごとに前記第１および第２のハッシュデータの比較結果が異なっている場合に前記バックアップ対象データの該ブロックを前記クライアントの差分バックアップ部が差分バックアップし、
前記第１〜第３のブロックサイズで行った前記試験用領域についての差分バックアップで最も所要時間の少なかったブロックサイズを前記クライアントの最適サイズ計算部が最適サイズとして決定し、
決定された前記最適サイズの場合の前記残領域についての第１のハッシュデータを前記クライアントの差分バックアップ最適化部が前記バックアップ管理サーバに要求し、
要求された前記残領域についての第１のハッシュデータを前記バックアップ管理サーバのデータ送受信部が前記クライアントに送信し、
この残領域についての第１のハッシュデータを利用して前記クライアントの差分バックアップ最適化部が前記差分バックアップ部に前記バックアップ対象データの残領域の差分バックアップを行わせる
ことを特徴とする差分バックアップ方法。
【請求項８】
前記第２のブロックサイズが前記第１のブロックサイズより大きく、かつ前記第３のブロックサイズが前記第１のブロックサイズより小さく、
前記残領域についての第１のハッシュデータを前記クライアントに返信する際に受信した前記最適サイズを次回同一処理時の前記第１のブロックサイズとして前記バックアップ管理サーバの前記最適化処理用データ作成部が記憶する
ことを特徴とする、請求項７に記載の差分バックアップ方法。
【請求項９】
バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアントと、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバとが相互に接続された差分バックアップシステムにあって、
前記バックアップ管理サーバが備えるコンピュータに、
予め与えられた第１ないし第３のブロックサイズの各々で前記フルバックアップデータをブロックに区切る手順、
前記各ブロックのデータに予め与えられた関数を適用してハッシュデータを算出する手順、
前記第１ないし第３のブロックサイズの各々の場合について前記ハッシュデータを前記フルバックアップデータの一部である試験用領域についてのものとそれ以外の残領域のものとに分割する手順、
前記試験用領域についてのハッシュデータを前記クライアントに送信する手順、
および前記クライアントから要求された前記残領域についての第１のハッシュデータを当該クライアントに送信する手順
を実行させることを特徴とする差分バックアッププログラム。
【請求項１０】
バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアントと、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバとが相互に接続された差分バックアップシステムにあって、
前記クライアントが備えるコンピュータに、
前記第１〜第３のブロックサイズの各々の場合について前記バックアップ対象データを当該ブロックサイズのブロックに区切る手順、
前記各ブロックのデータに前記関数を適用して第２のハッシュデータを算出する手順、
前記ブロックごとに算出された前記第２のハッシュデータを前記バックアップ管理サーバから受信した前記第１のハッシュデータと比較する手順、
前記ブロックごとの前記第１および第２のハッシュデータの比較結果が異なっている場合に前記バックアップ対象データの該ブロックを差分バックアップする手順、
前記第１〜第３のブロックサイズで行った前記バックアップ対象データの一部である試験用領域についての差分バックアップで最も所要時間の少なかったブロックサイズを最適サイズとして決定する手順、
決定された前記最適サイズの場合の前記試験用領域以外の残領域についての第１のハッシュデータを前記バックアップ管理サーバに要求する手順、
および送られてきたこの残領域についての第１のハッシュデータを利用して前記バックアップ対象データの残領域の差分バックアップを行う手順
を実行させることを特徴とする差分バックアッププログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は差分バックアップシステム、管理サーバおよびクライアント、差分バックアップ方法およびプログラムに関し、特に差分バックアップのブロックサイズを最適化し、短時間に差分バックアップを完了させることを可能とする差分バックアップシステム等に関する。
【背景技術】
【０００２】
コンピュータ、あるいはコンピュータが相互に接続されるネットワークが企業や社会の根幹として重要なインフラとなっている現代では、データの喪失はそれだけで社会的に重要な損失である。そのため、データのバックアップの重要性はますます高まっている。業務サービスを動作させるサーバや業務端末は通常、不慮の事故に備えて重要なデータもしくはディスク全体をバックアップするという運用が行われる。
【０００３】
その際、そのコンピュータの動作を停止させないこと、あるいは停止するとしても可能な限り短時間の停止で動作を再開することが求められているので、バックアップの動作は可能な限り短時間で完了させる必要がある。また、各々のコンピュータで扱うデータの容量は膨大になる一方であるので、保存するバックアップデータの容量は可能な限り小さくする必要がある。そのコンピュータが何らかの業務サービスを動作させている場合には、特にその必要性が高くなる。
【０００４】
バックアップにかかる時間を短縮し、かつ保存すべきデータの容量を小さくするため、バックアップ対象データ全体に対してフルバックアップを行った後、そのフルバックアップが行われた時点からの変更のあったファイルや領域のみをバックアップする差分バックアップが行われることも多い。
【０００５】
たとえばフルバックアップを週に１回行い、このフルバックアップデータに対する差分バックアップを毎日の終業時点で行うことによって、毎日の終業時点でのデータを再現することを可能にしつつ、毎日フルバックアップを取るよりも保存データの容量を大幅に小さくすることが可能となる。
【０００６】
データのバックアップ、特に差分バックアップに関連して、次の各々の技術文献がある。その中でも特許文献１には、バックアップ対象であるクライアント側で差分データを抽出し、その差分データだけをサーバに送信することで差分バックアップを行うという技術が記載されている。特許文献２には、差分バックアップのデータ転送量の変異を予測し、それによってバックアップ作業の失敗を検出および警告するという技術が記載されている。
【０００７】
特許文献３には、通信経路を介したデータのコピーで、複製前後のデータをブロックに区切ってブロックごとのハッシュ値を比較し、相違しているブロックだけをコピーするという技術が記載されている。特許文献４には、データをコピーする場合にコピー時間を見積もって、その結果によって効率的なデータコピー方式（差分データコピーまたは全データコピー）を選択する技術が記載されている。特許文献５には、コピーするブロックサイズをもとに効率的なバックアップ方式（ファイルバックアップまたはボリュームバックアップ）を選択するという技術が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−０９４６１７号公報
【特許文献２】特開２００４−２０６６１１号公報
【特許文献３】特開２００５−１００００７号公報
【特許文献４】特開２００６−２６８７４０号公報
【特許文献５】特開２００８−２９９４４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
差分バックアップは、フルバックアップデータとバックアップ対象データとを同一アドレスで所定のブロックサイズのブロックに区切り、両者の間でブロックごとにデータを比較し、相違しているブロックのみを差分データとして保存する。このため、ブロックサイズを変更すれば、その差分バックアップの処理の所要時間が異なることがある。前述のように、バックアップにかかる時間は可能な限り短くすることが望ましいので、そのようにブロックサイズを調整することは有用である。
【００１０】
しかしながら、前述の特許文献１〜５には、ブロックサイズの調整に着目した技術は記載されていない。当然、これらの技術でブロックサイズを調整して最適化することによって、差分バックアップの所要時間やデータ容量を小さくすることはできない。
【００１１】
特に、バックアップ管理サーバがネットワークで接続されている複数台のクライアントコンピュータのバックアップ対象データを一括してバックアップするという環境、さらにそのネットワークの中に複数種類のハードウェアもしくはソフトウェアが混在しているオープンなネットワーク環境では、バックアップ処理の所要時間を正確に見積もり、その所要時間を短縮するということ自体が困難である。この問題を前述の特許文献１〜５で解決することはできない。
【００１２】
本発明の目的は、差分バックアップの処理でブロックサイズを的確に調整して、その所要時間を短縮することを可能とする差分バックアップシステム、管理サーバおよびクライアント、差分バックアップ方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明に係る差分バックアップシステムは、バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアントと、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバとが相互に接続された差分バックアップシステムであって、バックアップ管理サーバが、フルバックアップデータを記憶する第１の固定記憶手段と、ネットワークを経由してクライアントとデータ通信を行う第１のデータ送受信部と、予め与えられた第１ないし第３のブロックサイズの各々でフルバックアップデータをブロックに区切ってこれら各ブロックのデータに予め与えられた関数を適用して第１のハッシュデータを算出する第１のハッシュデータ計算部と、第１ないし第３のブロックサイズの各々の場合の第１のハッシュデータをフルバックアップデータの一部である試験用領域についてのものとそれ以外の残領域のものとに分割して試験用領域についてのハッシュデータをクライアントに送信する最適化処理用データ作成部とを有し、クライアントが、バックアップ管理サーバとデータ通信を行う第２のデータ送受信部と、バックアップ対象データを記憶する第２の固定記憶手段と、第１〜第３のブロックサイズの各々の場合についてバックアップ対象データをブロックに区切ってこれら各ブロックのデータに関数を適用して第２のハッシュデータを算出する第２のハッシュデータ計算部と、算出された第２のハッシュデータをブロックごとにバックアップ管理サーバから受信した第１のハッシュデータと比較するハッシュデータ比較部と、ブロックごとの第１および第２のハッシュデータの比較結果が異なっている場合にバックアップ対象データの該ブロックを差分バックアップする差分バックアップ部と、第１ないし第３のブロックサイズの各々の場合について、試験用領域についての第１のハッシュデータを利用してバックアップ対象データの試験用領域について差分バックアップ部に試験的差分バックアップを行わせると共に、第１〜第３のブロックサイズで行った試験的差分バックアップで最も所要時間の少なかったブロックサイズを最適サイズとして決定する最適サイズ計算部と、決定された最適サイズの場合の残領域についての第１のハッシュデータをバックアップ管理サーバに要求すると共に、送られてきたこの残領域についての第１のハッシュデータを利用して差分バックアップ部に最適サイズでバックアップ対象データの残領域の差分バックアップを行わせる差分バックアップ最適化部とを有することを特徴とする。
【００１４】
上記目的を達成するため、本発明に係るバックアップ管理サーバは、バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアントと相互に接続され、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバであって、フルバックアップデータを記憶する固定記憶手段と、ネットワークを経由してクライアントとデータ通信を行うデータ送受信部と、予め与えられた第１ないし第３のブロックサイズの各々でフルバックアップデータをブロックに区切ってこれら各ブロックのデータに予め与えられた関数を適用してハッシュデータを算出するハッシュデータ計算部と、第１ないし第３のブロックサイズの各々の場合のハッシュデータをフルバックアップデータの一部である試験用領域についてのものとそれ以外の残領域のものとに分割して試験用領域についてのハッシュデータをクライアントに送信する最適化処理用データ作成部とを有することを特徴とする。
【００１５】
上記目的を達成するため、本発明に係るクライアントは、バックアップ対象データを保持し、バックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバと相互に接続されたコンピュータ装置であるクライアントであって、バックアップ管理サーバとデータ通信を行うデータ送受信部と、バックアップ対象データを記憶する固定記憶手段と、第１〜第３のブロックサイズの各々の場合についてバックアップ対象データをブロックに区切ってこれら各ブロックのデータに関数を適用して第２のハッシュデータを算出するハッシュデータ計算部と、算出された第２のハッシュデータをブロックごとにバックアップ管理サーバから受信した第１のハッシュデータと比較するハッシュデータ比較部と、ブロックごとの第１および第２のハッシュデータの比較結果が異なっている場合にバックアップ対象データの該ブロックを差分バックアップする差分バックアップ部と、第１ないし第３のブロックサイズの各々の場合について、バックアップ対象データの一部である試験用領域についての第１のハッシュデータを利用してバックアップ対象データの試験用領域について差分バックアップ部に試験的差分バックアップを行わせると共に、第１〜第３のブロックサイズで行った試験的差分バックアップで最も所要時間の少なかったブロックサイズを最適サイズとして決定する最適サイズ計算部と、決定された最適サイズの場合の試験用領域以外の残領域についての第１のハッシュデータをバックアップ管理サーバに要求すると共に、送られてきたこの残領域についての第１のハッシュデータを利用して差分バックアップ部に最適サイズでバックアップ対象データの残領域の差分バックアップを行わせる差分バックアップ最適化部とを有することを特徴とする。
【００１６】
上記目的を達成するため、本発明に係る差分バックアップ方法は、バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアントと、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバとが相互に接続された差分バックアップシステムにあって、予め与えられた第１ないし第３のブロックサイズの各々でバックアップ管理サーバの第１のハッシュデータ計算部がフルバックアップデータをブロックに区切り、各ブロックのデータに予め与えられた関数を適用してバックアップ管理サーバの第１のハッシュデータ計算部が第１のハッシュデータを算出し、第１ないし第３のブロックサイズの各々の場合について第１のハッシュデータをバックアップ管理サーバの最適化処理用データ作成部がフルバックアップデータの一部である試験用領域についてのものとそれ以外の残領域のものとに分割し、試験用領域についてのハッシュデータをバックアップ管理サーバの最適化処理用データ作成部がクライアントに送信し、第１〜第３のブロックサイズの各々の場合についてクライアントの第２のハッシュデータ計算部がバックアップ対象データを当該ブロックサイズのブロックに区切り、各ブロックのデータに関数を適用してクライアントの第２のハッシュデータ計算部が第２のハッシュデータを算出し、ブロックごとに算出された第２のハッシュデータとバックアップ管理サーバから受信した第１のハッシュデータとをクライアントのハッシュデータ比較部が比較し、ブロックごとに第１および第２のハッシュデータの比較結果が異なっている場合にバックアップ対象データの該ブロックをクライアントの差分バックアップ部が差分バックアップし、第１〜第３のブロックサイズで行った試験用領域についての差分バックアップで最も所要時間の少なかったブロックサイズをクライアントの最適サイズ計算部が最適サイズとして決定し、決定された最適サイズの場合の残領域についての第１のハッシュデータをクライアントの差分バックアップ最適化部がバックアップ管理サーバに要求し、要求された残領域についての第１のハッシュデータをバックアップ管理サーバのデータ送受信部がクライアントに送信し、この残領域についての第１のハッシュデータを利用してクライアントの差分バックアップ最適化部が差分バックアップ部にバックアップ対象データの残領域の差分バックアップを行わせることを特徴とする。
【００１７】
上記目的を達成するため、本発明に係る差分バックアッププログラムは、バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアントと、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバとが相互に接続された差分バックアップシステムにあって、バックアップ管理サーバが備えるコンピュータに、予め与えられた第１ないし第３のブロックサイズの各々でフルバックアップデータをブロックに区切る手順、各ブロックのデータに予め与えられた関数を適用してハッシュデータを算出する手順、第１ないし第３のブロックサイズの各々の場合についてハッシュデータをフルバックアップデータの一部である試験用領域についてのものとそれ以外の残領域のものとに分割する手順、試験用領域についてのハッシュデータをクライアントに送信する手順、およびクライアントから要求された残領域についての第１のハッシュデータを当該クライアントに送信する手順を実行させることを特徴とする。
【００１８】
上記目的を達成するため、本発明に係る他の差分バックアッププログラムは、バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアントと、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバとが相互に接続された差分バックアップシステムにあって、クライアントが備えるコンピュータに、第１〜第３のブロックサイズの各々の場合についてバックアップ対象データを当該ブロックサイズのブロックに区切る手順、各ブロックのデータに関数を適用して第２のハッシュデータを算出する手順、ブロックごとに算出された第２のハッシュデータをバックアップ管理サーバから受信した第１のハッシュデータと比較する手順、ブロックごとの第１および第２のハッシュデータの比較結果が異なっている場合にバックアップ対象データの該ブロックを差分バックアップする手順、第１〜第３のブロックサイズで行ったバックアップ対象データの一部である試験用領域についての差分バックアップで最も所要時間の少なかったブロックサイズを最適サイズとして決定する手順、決定された最適サイズの場合の試験用領域以外の残領域についての第１のハッシュデータをバックアップ管理サーバに要求する手順、および送られてきたこの残領域についての第１のハッシュデータを利用してバックアップ対象データの残領域の差分バックアップを行う手順を実行させることを特徴とする。
【発明の効果】
【００１９】
本発明は、上述したように第１〜第３のブロックサイズで試験用領域をブロックに区切って差分バックアップを行い、その中で所要時間が最短だったブロックサイズで残領域をブロックに区切って差分バックアップを行うように構成したので、所要時間を短くできるようにブロックサイズを的確に調整して、これによって差分バックアップの所要時間を短縮することが可能である差分バックアップシステム、管理サーバおよびクライアント、差分バックアップ方法およびプログラムを提供することができる。
【図面の簡単な説明】
【００２０】
【図１】図２で示したバックアップ管理サーバのより詳しい構成を示す説明図である。
【図２】本実施形態に係る差分バックアップシステムの構成を示す説明図である。
【図３】図１で示したフルバックアップデータおよび差分データの概念について示す説明図である。図３（ａ）がフルバックアップデータについて、図３（ｂ）が差分データについて各々示している。
【図４】図３に示した差分データのハッシュデータのデータ構成について示す説明図である。
【図５】図１で示したバックアップ管理サーバのワーキングエリアに記憶される各データの内容を示す説明図である。
【図６】図１で示したクライアントおよびブートイメージの構成について示す説明図である。
【図７】図６に示したクライアントのワーキングエリアに記憶されるデータについて示す説明図である。
【図８】本実施形態に係る差分バックアップ処理の概要を示す説明図である。図８（ａ）には第１番目の工程である「ステップ１」を、図８（ｂ）には第２番目の工程である「ステップ２」を各々示す。
【図９】図８の続きである。図９（ｃ）には第３番目の工程である「ステップ３」を、図９（ｄ）には第４番目の工程である「ステップ４」を各々示す。
【図１０】図８〜９に示した各工程で作成されるハッシュデータについて示す説明図である。図１０（ａ）はブロックサイズ「カレント（５１２キロバイト）」の「全領域」に対するハッシュデータ、図１０（ｂ）はブロックサイズ「結合（１０２４キロバイト）」の「全領域」に対するハッシュデータ、図１０（ｃ）はブロックサイズ「分割（２５６キロバイト）」の「全領域」に対するハッシュデータ、図１０（ｄ）はブロックサイズ「カレント」の「試験用領域」に対するハッシュデータ、図１０（ｅ）はブロックサイズ「結合」の「試験用領域」に対するハッシュデータ、図１０（ｆ）はブロックサイズ「分割」の「試験用領域」に対するハッシュデータを各々示す。
【図１１】図１０の続きである。図１１（ｇ）はブロックサイズ「カレント」の「残領域」に対するハッシュデータ、図１１（ｈ）はブロックサイズ「結合」の「残領域」に対するハッシュデータ、図１１（ｉ）はブロックサイズ「分割」の「残領域」に対するハッシュデータを各々示す。
【図１２】バックアップ管理サーバで図１に示した最適化処理用データ作成部が差分バックアップの準備処理として行う、最適化用ハッシュデータ計算処理について示すフローチャートである。
【図１３】図１２のステップＳ３０２、３０４、３０６として示したハッシュデータ計算部が行うハッシュデータ計算処理について示すフローチャートである。
【図１４】クライアントで図６に示した差分バックアップ最適化部が行う最適化差分バックアップの処理について示すフローチャートである。
【図１５】図１４のステップＳ４０１として示した、最適サイズ計算部が行う最適サイズ計算処理について示すフローチャートである。
【図１６】図１５の続きである。
【図１７】図１５のステップＳ４５２、４５４、４５７、および図１４のＳ４０４、４０５、４０６として示した、差分バックアップ部およびハッシュデータ比較部による差分バックアップ処理について示すフローチャートである。
【図１８】図１４〜１６に示したクライアントでの処理に対応するバックアップ管理サーバでの処理について示すフローチャートである。
【発明を実施するための形態】
【００２１】
（第１の実施形態）
以下、本発明の第１の実施形態の構成について添付図１〜７に基づいて説明する。  最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係る差分バックアップシステム１は、バックアップ対象データ２２１を保持する単数もしくは複数のコンピュータ装置であるクライアント２１と、各々のバックアップ対象データを完全バックアップしたフルバックアップデータ１２１を保持するバックアップ管理サーバ１０とが相互に接続された差分バックアップシステムである。バックアップ管理サーバ１０は、フルバックアップデータ１２１を記憶する第１の固定記憶手段１０３と、ネットワーク３０を経由してクライアント２１とデータ通信を行う第１のデータ送受信部１１２と、予め与えられた第１ないし第３のブロックサイズの各々でフルバックアップデータ１２１をブロックに区切ってこれら各ブロックのデータに予め与えられた関数を適用して第１のハッシュデータ１６０を算出する第１のハッシュデータ計算部１１４と、第１ないし第３のブロックサイズの各々の場合の第１のハッシュデータをフルバックアップデータ１２１の一部である試験用領域についてのものとそれ以外の領域のものとに分割して試験用領域についてのハッシュデータ１６４〜１６６をクライアントに送信する最適化処理用データ作成部１１１とを有する。一方のクライアント２１は、バックアップ管理サーバ１０とデータ通信を行う第２のデータ送受信部２１１と、バックアップ対象データ２２１を記憶する第２の固定記憶手段２０３と、第１〜第３のブロックサイズの各々の場合についてバックアップ対象データ２２１をブロックに区切ってこれら各ブロックのデータに関数を適用して第２のハッシュデータを算出する第２のハッシュデータ計算部２１５と、算出された第２のハッシュデータをブロックごとにバックアップ管理サーバから受信した第１のハッシュデータ１６４〜１６６と比較するハッシュデータ比較部２１６と、ブロックごとの第１および第２のハッシュデータの比較結果が異なっている場合にバックアップ対象データの該ブロックを差分バックアップする差分バックアップ部２１４と、第１ないし第３のブロックサイズの各々の場合について、試験用領域についての第１のハッシュデータ１６４〜１６６を利用してバックアップ対象データの試験用領域について差分バックアップ部に試験的差分バックアップを行わせると共に、第１〜第３のブロックサイズで行った試験的差分バックアップで最も所要時間の少なかったブロックサイズを最適サイズとして決定する最適サイズ計算部２１３と、決定された最適サイズの場合の残領域についての第１のハッシュデータをバックアップ管理サーバに要求すると共に、送られてきたこの残領域についての第１のハッシュデータを利用して差分バックアップ部に最適サイズでバックアップ対象データの残領域の差分バックアップを行わせる差分バックアップ最適化部２１２とを有する。
【００２２】
ここで、第２のブロックサイズが第１のブロックサイズより大きく、かつ第３のブロックサイズが第１のブロックサイズより小さく、バックアップ管理サーバ１０の最適化処理用データ作成部１１１が、残領域についての第１のハッシュデータをクライアントに返信する際に受信した最適サイズを次回同一処理時の第１のブロックサイズとして記憶する。
【００２３】
また、クライアント２１の最適サイズ計算部２１３が、第２のブロックサイズで行った試験的差分バックアップの所要時間が第１のブロックサイズで行った試験的差分バックアップの所要時間より短ければ、その時点で第２のブロックサイズを最適サイズとして決定する。
【００２４】
そしてバックアップ管理サーバ１０が、クライアントの備えるプロセッサを第２のデータ送受信部、第２のハッシュデータ計算部、ハッシュデータ比較部、差分バックアップ部、最適サイズ計算部、および差分バックアップ最適化部として機能させるプログラムであるブートイメージ１４１を第１の固定記憶手段１０３に記憶するブートイメージ格納部１１７と、このブートイメージをクライアントに送信して動作させるブートイメージ送信部１１３を有する。
【００２５】
この構成を備えることにより、この差分バックアップシステム１はブロックサイズを的確に調整して、これによって差分バックアップの所要時間を短縮することが可能となる。
以下、これをより詳細に説明する。
【００２６】
図２は、本実施形態に係る差分バックアップシステム１の構成を示す説明図である。差分バックアップシステム１は、バックアップ管理サーバ１０と複数台のクライアント２１、２２、…とがネットワーク３０を介して相互に接続されて構成される。バックアップ管理サーバ１０は、ネットワーク３０を経由して、クライアント２１、２２、…のデータをバックアップするソフトウェアを搭載したコンピュータ装置である。
【００２７】
クライアント２１、２２、…はバックアップ管理サーバ１０によってデータをバックアップされるためのソフトウェアを搭載したコンピュータ装置である。以後、これらのクライアントの中の任意の１台を、代表してクライアント２１という。１台のバックアップ管理サーバ１０に対してクライアント２１は１台以上何台でもよい。ネットワーク３０は、バックアップ管理サーバ１０とクライアント２１、２２、…とを相互に接続するためのＬＡＮ（Local Area Network）もしくはＷＡＮ（Wide Area Network）などである。
【００２８】
図１は、図２で示したバックアップ管理サーバ１０のより詳しい構成を示す説明図である。バックアップ管理サーバ１０は、プロセッサ１０１、一時記憶手段１０２、固定記憶手段１０３、および通信手段１０４を備えるコンピュータ装置である。一時記憶手段１０２はプロセッサ１０１が作業中のデータを記憶するＲＡＭ（Random Access Memory）などのような記憶装置であり、固定記憶手段１０３は大容量のデータを保存するハードディスクなどのような記憶装置である。
【００２９】
プロセッサ１０１では、最適化処理用データ作成部１１１、データ送受信部１１２、ブートイメージ送信部１１３、ハッシュデータ計算部１１４、フルバックアップデータ格納部１１５、差分データ格納部１１６、およびブートイメージ格納部１１７が、コンピュータプログラムとして実行される。最適化処理用データ作成部１１１は、後述の処理でクライアント２１が差分バックアップの最適化のために利用するハッシュデータを作成する。データ送受信部１１２は、通信手段１０４を制御してクライアント２１とのデータ通信を行わせる。ブートイメージ送信部１１３は、ブートイメージをクライアント２１に送信して動作させる。ハッシュデータ計算部１１４は、フルバックアップデータを任意のサイズで区切ったブロックの各々に対してハッシュ値を計算する。
【００３０】
また、固定記憶手段１０３上には、フルバックアップデータ格納領域１２０、差分データ格納領域１３０、およびブートイメージ格納領域１４０という領域が確保され、フルバックアップデータ格納領域１２０にはフルバックアップデータ格納部１１５がフルバックアップデータ１２１を、差分データ格納領域１３０には差分データ格納部１１６が差分データ１３１を各々記憶する。ブートイメージ格納領域１４０にはブートイメージ格納部１１７がブートイメージ１４１を記憶する。ここでフルバックアップデータ格納部１１５、差分データ格納部１１６、およびブートイメージ格納部１１７は、大量のデータを格納して管理するＤＢＭＳ（Database Management System）を利用することができる。
【００３１】
通信手段１０４は、ネットワーク３０を介してクライアント２１とのデータ通信を行う。一時記憶手段１０２には、最適化処理用データ作成部１１１が作業中のデータを一時的に記憶する領域であるワーキングエリア１５０が確保されている。ワーキングエリア１５０には、後述するハッシュデータ１６０と、カレントサイズ設定値１５１が記憶されるが、これについては後述する。
【００３２】
図３は、図１で示したフルバックアップデータ１２１および差分データ１３１の概念について示す説明図である。図３（ａ）がフルバックアップデータ１２１について、図３（ｂ）が差分データ１３１について各々示している。図３（ａ）に示すフルバックアップデータ１２１は、バックアップ対象データ２２１、即ちクライアント２１のディスク領域の全コピーに相当し、アドレス０からディスクの最大アドレスＮまでのデータのフルコピーをいう。
【００３３】
それに対して、図３（ｂ）に示す差分データ１３１は、クライアント２１のディスク領域の中で、前回採取分のフルバックアップデータ１２１と今回のバックアップ対象データ２２１とを比較し、その中で相違点のある部分だけをコピーするものである。
【００３４】
フルバックアップデータ１２１全体のサイズをＮとすると、前回採取分のフルバックアップデータ１２１と今回のバックアップ対象データ２２１の両者を同一のブロックサイズｎにてブロックに分割し、各ブロックでデータが完全に一致すれば「差分なし」、相違すれば「差分あり」とし、「差分あり」となったブロックの先頭アドレスを後述の一時リスト２６０に記憶する。そして、一時リスト２６０に先頭アドレスの記憶されたブロックだけを、「差分データ」としてバックアップする。
【００３５】
図３（ｂ）にあるように、差分データ１３１は、分割するブロックサイズに相当するサイズ１３１ａ、ブロックの先頭アドレスに相当するアドレス１３１ｂ、実際のブロックデータに相当するデータ１３１ｃといった各データから構成される。図３（ｂ）では、「差分なし」のブロックは空欄、「差分あり」のブロックは斜線パターンで示されている。そして先頭のブロックを０番目とすると、１番目とａ番目（ａは自然数、かつ２≦ａ＜ｋ−１、ｋ＝Ｎ／ｎ）の２ブロックが「差分あり」となって差分データ１３１としてバックアップされたという例を示している。
【００３６】
ここで、最適化処理用データ作成部１１１は、各ブロックのハッシュデータ１６０を計算してワーキングエリア１５０に記憶する。図４は、図３に示した差分データ１３１のハッシュデータ１６０のデータ構成について示す説明図である。ハッシュデータ１６０は、バックアップ対象データをブロックサイズｎで分割したブロックごとのハッシュ値を集めたデータである。ハッシュデータ１６０は、分割するブロックサイズｎに相当するブロックサイズ１６０ａ、各ブロックの先頭アドレス１６０ｂとそのブロックのハッシュ値１６０ｃを格納した表である。
【００３７】
ここでいうハッシュ値とは、任意のデータを要約して得られる固定長の値をいう。たとえばＣ＃言語でいうGetHashCode関数などのように、任意のデータに対してその要約として一意に決定される関数をそのデータに適用して得られる値である。その関数をハッシュ関数という。本実施形態では、図３（ｂ）に示した各ブロックごとのデータの比較は、該ブロックデータ自体を直接比較するのではなく、該ブロックデータのハッシュ値を比較することによって相違の有無を判定している。
【００３８】
なお、本実施形態では後述するように、ブロックサイズ「カレント」「結合」「分割」、ハッシュ値の計算対象を「全領域」「試験用領域」「残領域」の各々に対して図４に示したデータが作成されるので、ハッシュデータ１６０はそれらの総称としていい、各々のブロックサイズおよび計算対象についてはハッシュデータ１６１〜１６９という。
【００３９】
最適化処理用データ作成部１１１およびハッシュデータ計算部１１４は、バックアップデータ格納領域１２０を参照しながら、差分バックアップの準備処理としてハッシュデータ１６０を計算する。データ送受信部１１２は、クライアント２１へのハッシュデータ１６０の送信およびクライアント２１からの差分データの受信を行う。これらの処理の詳細については後述する。
【００４０】
図５は、図１で示したバックアップ管理サーバ１０のワーキングエリア１５０に記憶される各データの内容を示す説明図である。ワーキングエリア１５０には、最適化処理用データ作成部１１１およびハッシュデータ計算部１１４が作成した（図４に示した）ハッシュデータ１６０（１６１〜１６９）と、カレントサイズ設定値１５１とが記憶されている。
【００４１】
図６は、図１で示したクライアント２１およびブートイメージ１４１の構成について示す説明図である。バックアップ管理サーバ１０のブートイメージ送信部１１３は、クライアント２１の差分バックアップを実行するため、クライアント２１にブートイメージ１４１を送信する。ブートイメージ１４１をクライアント２１に送信し、クライアント２１を再起動することによって、クライアント２１のプロセッサ２０１で各種プログラムが動作して差分バックアップが実行される。
【００４２】
クライアント２１は、バックアップ管理サーバ１０と同様に、プロセッサ２０１、一時記憶手段２０２、固定記憶手段２０３、および通信手段２０４を備えるコンピュータ装置である。プロセッサ２０１では、データ送受信部２１１、差分バックアップ最適化部２１２、最適サイズ計算部２１３、差分バックアップ部２１４、ハッシュデータ計算部２１５、ハッシュデータ比較部２１６の各々が動作する。ブートイメージ１４１は、プロセッサ２０１をこれらの動作部として機能させるためのコンピュータプログラムである。
【００４３】
ブートイメージ１４１は、たとえばＲＦＣ（Request For Comments）４５７８で規定されているＰＸＥ（Preboot eXecution Environment）プロトコルに従ったサーバプログラムでもよいし、クライアント２１上で動作するいわゆるクライアントプログラムにプッシュ方式でブートイメージを送り込むものであってもよい。ブートイメージ１４１をクライアント２１に送信し、そのブートイメージでクライアント２１を再起動させることは既知の技術であるので、特に詳しく説明しない。
【００４４】
固定記憶手段２０３には、バックアップ対象データ記憶領域２２０が確保され、その中にバックアップ対象データ２２１が記憶されている。一時記憶手段２０２には、差分バックアップ最適化部２１２が作業中のデータを一時的に記憶する領域であるワーキングエリア２５０が確保されている。ワーキングエリア２５０には、差分バックアップ処理に必要となるハッシュデータ、処理時間、最適サイズが格納される。この詳細については後述する。
【００４５】
データ送受信部２１１は、バックアップ管理サーバ１０からのハッシュデータ１６４〜１６６の受信、および、クライアント２１上で作成した差分データのバックアップ管理サーバ１０への送信を行う。差分バックアップ最適化部２１２は、差分バックアップの処理時間が最も小さくなるブロックサイズの計算、および、そのブロックサイズでの差分バックアップ処理を行う。最適サイズ計算部２１３は、バックアップ対象データ２２１の試験用領域に対して差分バックアップを試行する。差分バックアップ部２１４は、実際の差分バックアップ処理を行う。ハッシュデータ計算部２１５は、バックアップ対象データ２２１に対してハッシュデータの計算を行う。ハッシュデータ比較部２１６は、算出されたハッシュデータをバックアップ管理サーバ１０から受信したものと比較する。以上の各々の処理について、詳しくは後述する。
【００４６】
図７は、図６に示したクライアント２１のワーキングエリア２５０に記憶されるデータについて示す説明図である。ワーキングエリア２５０には、バックアップ管理サーバ１０から受信した「試験用領域」のハッシュデータ１６４〜１６６と、その各々のブロックサイズ「カレント」「結合」「分割」で「試験用領域」に対して行った試験用バックアップ所要時間２５１〜２５３、そこから最適サイズ計算部２１３が決定した最適ブロックサイズ２５４、さらに（図３（ｂ）に示した）バックアップの作業中に使用される一時リスト２６０が記憶される。
【００４７】
また、ワーキングエリア２５０には、ブロックサイズ「カレント」「結合」「分割」のうち後述の処理で「最適サイズ」として決定されたブロックサイズの「残領域」のハッシュデータ１６７〜１６９のうちいずれか１つも、「残領域」のバックアップの動作のために記憶される。
【００４８】
図８〜９は、本実施形態に係る差分バックアップ処理の概要を示す説明図である。この差分バックアップ処理は、ステップ１〜４の４つの工程からなる。図８〜９は、紙面の都合上、２枚の図に分けて示している。その中で第１番目の工程である「ステップ１」を示す図８（ａ）には、バックアップ管理サーバ１０内のフルバックアップデータ１２１と、クライアント２１のバックアップ対象データ２２１とが示されている。フルバックアップデータ１２１の中で特定の領域および容量を試験用領域１２１ａとし、それ以外の領域を残領域１２１ｂとする。これに対応して、バックアップ対象データ２２１の同じ領域を試験用領域２２１ａおよび残領域２２１ｂとする。
【００４９】
その中で、フルバックアップデータ１２１全体について、ブロックサイズｎで分割してブロックごとのハッシュ値を計算するが、その際のブロックサイズｎを「カレントサイズ（以後単にカレントという）」「カレント×２」「カレント／２」の３通りを用意し、それら各々の場合でハッシュデータ計算部１１４がハッシュ値を計算して「全領域」に対するハッシュデータ１６１〜１６３を作成する。
【００５０】
カレントは任意に決定できるが、本実施例では５１２キロバイトをカレントサイズ設定値１５１、即ちカレントのデフォルト値とする。以下、それらの各々のブロックサイズを「カレント」「結合」「分割」といい、またそのハッシュ値の計算対象を「全領域」「試験用領域」「残領域」という。
【００５１】
第２番目の工程である「ステップ２」を示す図８（ｂ）では、フルバックアップデータ１２１およびバックアップ対象データ２２１の中で特定の領域および容量を試験用領域とし、それ以外の領域を残領域とする。そして最適化処理用データ作成部１１１が、ステップ１で計算されたハッシュデータ１６１〜１６３を試験用領域１２１ａ上のハッシュデータ１６４〜１６６と残領域１２１ｂ上のハッシュデータ１６７〜１６９に分割する。
【００５２】
試験用領域のサイズは、任意に決定できる。本実施例では先頭から２０４８キロバイトを試験用領域、それ以後を残領域としている。そして試験用領域用のハッシュデータ１６４〜１６６をクライアント２１に送信する。
【００５３】
第３番目の工程である「ステップ３」を示す図９（ｃ）では、試験用領域２２１ａに対して「カレント」「結合」「分割」の各ブロックサイズの場合で、最適サイズ計算部２１３の制御によって、ハッシュデータ比較部２１６が各ブロックのハッシュ値を比較しつつ差分バックアップ部２１４が差分バックアップを実行し、各々の場合で実際の処理にかかった所要時間を算出し、最適サイズ計算部２１３がいずれの場合が所要時間が最短であるかについて判断する。
【００５４】
第４番目の工程である「ステップ４」を示す図９（ｄ）では、ステップ３で所要時間が最短となったブロックサイズの残領域２２１ｂ用のハッシュデータ１６７〜１６９のうちいずれか１つをバックアップ管理サーバ１０からクライアント２１に送信する。そして差分バックアップ最適化部２１２の制御によって、ハッシュデータ比較部２１６が各ブロックのハッシュ値を比較しつつ差分バックアップ部２１４が残領域に対する差分バックアップを実行し、バックアップ対象データ２２１全体に対する差分バックアップを完了する。
【００５５】
図１０〜１１は、図８〜９に示した各工程で作成されるハッシュデータ１６０について示す説明図である。ハッシュデータ１６０は、ブロックサイズ１６０ａが「カレント」「結合」「分割」の各ブロックサイズについて、そしてその各々の「全領域」についてのものと「試験用領域」「残領域」の各々についてのものという９通りについて、各ブロックの先頭アドレス１６０ｂとそのブロックのハッシュ値１６０ｃを格納するものである。
【００５６】
図１０（ａ）はブロックサイズ「カレント（５１２キロバイト）」の「全領域」に対するハッシュデータ１６１、図１０（ｂ）はブロックサイズ「結合（１０２４キロバイト）」の「全領域」に対するハッシュデータ１６２、図１０（ｃ）はブロックサイズ「分割（２５６キロバイト）」の「全領域」に対するハッシュデータ１６３、図１０（ｄ）はブロックサイズ「カレント」の「試験用領域」に対するハッシュデータ１６４、図１０（ｅ）はブロックサイズ「結合」の「試験用領域」に対するハッシュデータ１６５、図１０（ｆ）はブロックサイズ「分割」の「試験用領域」に対するハッシュデータ１６６、図１１（ｇ）はブロックサイズ「カレント」の「残領域」に対するハッシュデータ１６７、図１１（ｈ）はブロックサイズ「結合」の「残領域」に対するハッシュデータ１６８、図１１（ｉ）はブロックサイズ「分割」の「残領域」に対するハッシュデータ１６９、を各々示す。
【００５７】
（最適化用ハッシュデータ計算処理）
図１２は、バックアップ管理サーバ１０で図１に示した最適化処理用データ作成部１１１が差分バックアップの準備処理として行う、最適化用ハッシュデータ計算処理について示すフローチャートである。最適化処理用データ作成部１１１はまず、カレントサイズ設定値１５１が未設定の場合、システム内の初期値を設定する（ステップＳ３０１）。ここで、システム内の初期値は、適用する領域などに応じてシステムごとに適切な値が設定されるべきものであるため、本発明では規定しない。
【００５８】
ワーキングエリア１５０内にカレントが設定されていると、計算対象データとして「フルバックアップデータ１２１」、ブロックサイズとして「カレント」を入力としてハッシュデータ計算部１１４を呼び出して後述の図１３に示すハッシュデータ計算処理を実行し（ステップＳ３０２）、その出力結果をブロックサイズ「カレント」の「全領域」についてのハッシュデータ１６１としてワーキングエリア１５０に記憶する（ステップＳ３０３）。
【００５９】
続いて、計算対象データとして「フルバックアップデータ１２１」、ブロックサイズとして「カレント×２（結合）」を入力としてハッシュデータ計算部１１４を呼び出して図１３に示すハッシュデータ計算処理を実行し（ステップＳ３０４）、その出力結果をブロックサイズ「結合」の「全領域」についてのハッシュデータ１６２としてワーキングエリア１５０に記憶する（ステップＳ３０５）。
【００６０】
同様に、計算対象データとして「フルバックアップデータ１２１」、ブロックサイズとして「カレント／２（分割）」を入力としてハッシュデータ計算部１１４を呼び出して図１３に示すハッシュデータ計算処理を実行し（ステップＳ３０６）、その出力結果をブロックサイズ「分割」の「全領域」についてのハッシュデータ１６３としてワーキングエリア１５０に記憶する（ステップＳ３０７）。
【００６１】
以上で求められたハッシュデータ１６０の各々を、最適化処理用データ作成部１１１が図１０〜１１に示したように試験用領域のものと残領域のものに分割して（ステップＳ３０８）、準備処理は終了する。なお、この準備処理は、任意のタイミングで行うことができる。即ち、差分バックアップを実行する直前であってもよいし、差分バックアップを実行した後に次回差分バックアップのために行ってもよい。
【００６２】
図１３は、図１２のステップＳ３０２、３０４、３０６として示したハッシュデータ計算部１１４が行うハッシュデータ計算処理について示すフローチャートである。ハッシュデータ計算部１１４は、最適化処理用データ作成部１１１から計算対象データとブロックサイズを指定されて起動され、それに基づいてまず計算対象データをそのブロックサイズに分割して（ステップＳ３５１）、分割された各ブロックについてハッシュ値を計算し（ステップＳ３５２）、ブロックサイズ１６０ａ、先頭アドレス１６０ｂ、ハッシュ値１６０ｃを合わせたハッシュデータ１６０を出力する（ステップＳ３５３）。
【００６３】
図１２の準備処理が行われた状態で、バックアップ管理サーバ１０がユーザの操作などによって差分バックアップが指示されると、図２のブートイメージ送信部１１３は、クライアント２１にブートイメージ１４１を送信し、その後にそのクライアント２１を再起動させる。再起動されたクライアント２１は、図６に示したブートイメージ１４１によって動作し、最適化差分バックアップ処理を開始する。
【００６４】
（最適化差分バックアップ処理）
図１４は、クライアント２１で図６に示した差分バックアップ最適化部２１２が行う最適化差分バックアップの処理について示すフローチャートである。差分バックアップ最適化部２１２は、最適サイズ計算部２１３を呼び出して最適サイズ計算処理を実行させる（ステップＳ４０１）。
【００６５】
図１５〜１６（紙面の都合で２枚に分けて示す）は、図１４のステップＳ４０１として示した、最適サイズ計算部２１３が行う最適サイズ計算処理について示すフローチャートである。最適サイズ計算部２１３はまず、データ送受信部２１１を介してバックアップ管理サーバ１０に試験用領域の各ブロックサイズ（カレント、結合、分割）についてのハッシュデータ１６４〜１６６を要求してこれを受信する（ステップＳ４５１）。
【００６６】
これを受けて最適サイズ計算部２１３は、ブロックサイズ「カレント」、対象「試験用領域」を入力として差分バックアップ部２１４に差分バックアップ処理を実行させ（ステップＳ４５２）、その処理時間を「カレント」「試験用領域」の試験用バックアップ所要時間２５１としてワーキングエリア２５０に記憶する（ステップＳ４５３）。
【００６７】
続いて最適サイズ計算部２１３は、ブロックサイズとして「結合」、対象として「試験用領域」を入力として差分バックアップ部２１４に差分バックアップ処理を実行させ（ステップＳ４５４）、その処理時間を「結合」「試験用領域」の試験用バックアップ所要時間２５２としてワーキングエリア２５０に記憶する（ステップＳ４５５）。
【００６８】
ここで、「カレント」「試験用領域」の試験用バックアップ所要時間２５１と「結合」「試験用領域」の試験用バックアップ所要時間２５２とを比較し（ステップＳ４５６）、後者の方が短ければ「結合」が最適なブロックサイズであると判断して、これをワーキングエリア２５０内に最適ブロックサイズ２５４として格納して（ステップＳ４６２）最適サイズ計算処理を終了する。
【００６９】
一方、ステップＳ４５６で「カレント」「試験用領域」の試験用バックアップ所要時間２５１が「結合」「試験用領域」の試験用バックアップ所要時間２５２よりも短ければ、今度はブロックサイズとして「分割」、対象として「試験用領域」を入力として差分バックアップ部２１４に差分バックアップ処理を実行させ（ステップＳ４５７）、その処理時間を「分割」「試験用領域」の試験用バックアップ所要時間２５３としてワーキングエリア２５０に記憶する（ステップＳ４５８）。
【００７０】
そして「カレント」「試験用領域」の試験用バックアップ所要時間２５１と「分割」「試験用領域」の試験用バックアップ所要時間２５３とを比較し（ステップＳ４５９）、後者の方が短ければ「分割」が最適なブロックサイズであると判断して、これをワーキングエリア２５０内に最適ブロックサイズ２５４として格納する（ステップＳ４６１）。前者の方が短ければ「カレント」が最適なブロックサイズであると判断して、これをワーキングエリア２５０内に最適サイズとして格納する（ステップＳ４６０）。その後、最適サイズ計算処理を終了する。
【００７１】
本実施形態で示したような、バックアップ管理サーバがネットワークで接続されている複数台のクライアントコンピュータのバックアップ対象データを一括してバックアップするという環境では、ネットワーク上でのデータ転送速度が差分バックアップの所要時間にとって最も大きく影響する。
【００７２】
もしネットワーク上でのデータ転送速度が極めて早く、そのデータ転送速度による処理時間に対する影響が無視できるなら、バックアップ処理においてオーバーヘッドとなる差分データ計算（ハッシュデータの算出および比較など）の処理を可能な限り少なくする方が、差分バックアップの所要時間の短縮になる。従って、ブロックサイズは可能な限り大きくする方が望ましい。バックアップ対象データ全体を１ブロックとすることが最も理想的ではある。
【００７３】
しかしながら、現実的にはネットワーク上でのデータ転送速度がバックアップ作業の上で障害となることが多い。そのため本実施形態では、図１５〜１６に示したように、データ転送速度による影響が無視できる範囲で、可能な限りブロックサイズを大きくするというアルゴリズムの構成となっている。
【００７４】
前述のステップＳ４５６で、「カレント」「試験用領域」の試験用バックアップ所要時間２５１より「結合」「試験用領域」の試験用バックアップ所要時間２５２が短ければ「結合」を最適ブロックサイズ２５４としたのは、この考え方に基づいている。この場合は、まだデータ転送速度が障害になる範囲ではないと判断できるから、ブロックサイズ「分割」に対する試験用バックアップは行わない。
【００７５】
図１４に戻って、差分バックアップ最適化部２１２は最適サイズ計算部２１３による最適なブロックサイズの計算結果、即ち最適ブロックサイズ２５４について判断し（ステップＳ４０２〜４０３）、これが「カレント」であれば（ステップＳ４０２：ＹＥＳ）、データ送受信部２１１はバックアップ管理サーバ１０に残領域のブロックサイズ「カレント」についてのハッシュデータ１６７を要求してこれを受信し、これを入力として差分バックアップ部２１４を呼び出して残領域の差分バックアップ処理を実行する（ステップＳ４０６）。
【００７６】
最適ブロックサイズ２５４が「結合」であれば（ステップＳ４０２：ＮＯ、ステップＳ４０３：ＹＥＳ）、データ送受信部２１１はバックアップ管理サーバ１０に残領域のブロックサイズ「結合」についてのハッシュデータ１６８を要求してこれを受信し、これを入力として差分バックアップ部２１４を呼び出して残領域の差分バックアップ処理を実行する（ステップＳ４０５）。
【００７７】
最適ブロックサイズ２５４が「カレント」でも「結合」でもなく「分割」である場合（ステップＳ４０２：ＮＯ、ステップＳ４０３：ＮＯ）、データ送受信部２１１はバックアップ管理サーバ１０に残領域のブロックサイズ「分割」についてのハッシュデータ１６９を要求してこれを受信し、これを入力として差分バックアップ部２１４を呼び出して残領域の差分バックアップ処理を実行する（ステップＳ４０４）。
【００７８】
差分バックアップ処理完了後、最適ブロックサイズ２５４を次回処理でカレントサイズとして使用するようバックアップ管理サーバ１０に送信して（ステップＳ４０７）、以上で最適化差分バックアップ処理を終了する。なお、この最適化差分バックアップ処理の後に差分データ１３１をフルバックアップデータ１２１にマージするという処理があるが、このマージ処理については既知の技術で実現可能であり、本発明の範囲ではないので、詳しくは説明しない。
【００７９】
図１７は、図１５のステップＳ４５２、４５４、４５７、および図１４のＳ４０４、４０５、４０６として示した、差分バックアップ部２１４およびハッシュデータ比較部２１６による差分バックアップ処理について示すフローチャートである。差分バックアップ部２１４は、差分バックアップ最適化部２１２もしくは最適サイズ計算部２１３からブロックサイズとバックアップ対象領域とを指定し、その領域のハッシュデータ１６０を入力されて起動される。
【００８０】
起動された差分バックアップ部２１４は、ｉ＝１を初期値として、ｉ番目の領域のバックアップ対象データ２２１を読み取り（ステップＳ５０２）、その領域のハッシュ値２５１ｃを計算し（ステップＳ５０３）、ハッシュデータ比較部２１６にこれとハッシュデータ１６０で入力されたｉ番目の領域のハッシュ値１６０ｃとを比較させ（ステップＳ５０４）、異なっていればハッシュ値１６０ｃおよび２５１ｃが異なるブロックの先頭アドレス１６０ｂを図３（ｂ）に示した一時リスト２６０として出力する（ステップＳ５０５）。
【００８１】
以上のステップＳ５０２〜５０５の処理を、ｉの値を１ずつ増加させて、ｉがＮ／ｎに到達するまで（Ｎは全ブロックサイズ、ｎはブロックサイズ）、即ちバックアップ対象データ２２１の全てのブロックに対して行う（ステップＳ５０６〜５０７）。そして、全ブロックに対してハッシュ値１６０ｃおよび２５１ｃの比較が完了したら、一時リスト２６０として出力された先頭アドレス１６０ｂに対応するブロックのデータを、差分データとしてバックアップ管理サーバ１０に送信する（ステップＳ５０８）。
【００８２】
図１８は、図１４〜１６に示したクライアント２１での処理に対応するバックアップ管理サーバ１０での処理について示すフローチャートである。まずは図１５のステップＳ４５１の処理で試験用領域のハッシュデータ１６４〜１６６を要求されたバックアップ管理サーバ１０は、データ送受信部１１２がこれを受けて、それらのハッシュデータ１６４〜１６６をクライアント２１に送信する（ステップＳ６０１）。
【００８３】
そして、それらを利用して行われた差分バックアップデータを、クライアント２１からデータ送受信部１１２が受信し、これを差分データ格納部１１６が差分データ１３１として保存する（ステップＳ６０２）。
【００８４】
クライアント２１では、これに引き続いて最適サイズが決定され、図１４のステップＳ４０４〜４０６の処理でその最適サイズで残領域のハッシュデータ１６７〜１６９を要求される（ステップＳ６０３）ので、これを受信したバックアップ管理サーバ１０は、データ送受信部１１２がこれを受けて、その要求に対応するハッシュデータ１６７〜１６９をクライアント２１に送信する（ステップＳ６０４）。
【００８５】
そして、ステップＳ６０１で送信した残領域のハッシュデータ１６７〜１６９で行われた差分バックアップデータを、クライアント２１からデータ送受信部１１２が受信し、これを差分データ格納部１１６が差分データ１３１として保存する（ステップＳ６０５）。
【００８６】
そしてその後、ステップＳ６０３の処理で受信した最適サイズ以外の試験用差分データを差分データ格納部１１６が破棄し（ステップＳ６０６）、受信した最適サイズを最適化処理用データ作成部１１１がカレントサイズ設定値１５１としてワーキングエリア１５０に記憶する（ステップＳ６０７）。
【００８７】
（具体的な処理の例）
以上の動作について、より具体的な動作例を挙げて説明する。バックアップ対象データ２２１は、０〜１６３８４キロバイトをその対象領域のアドレス範囲とする。そして、カレントサイズ設定値１５１として「５１２キロバイト」、試験用領域サイズとして「２０４８キロバイト」の各々のブロックサイズが設定されているものとする。
【００８８】
バックアップ対象データ２２１全体がフルバックアップデータ１２１としてバックアップ管理サーバ１０の固定記憶手段１０３に保存されている。これに対してクライアント２１の固定記憶手段２０３にあるバックアップ対象データ２２１の差分バックアップを取る動作を、これから具体的に説明する。
【００８９】
まず差分バックアップの準備処理として、バックアップ管理サーバ１０の最適化処理用データ作成部１１１は、図１２に示した最適化用ハッシュデータ計算処理を行う。その計算対象データは図１６に示した「フルバックアップデータ１２１」である。カレントサイズ設定値１５１として「５１２キロバイト」が設定されているので、ハッシュデータ計算部１１４がステップＳ３０２および図１３に示したハッシュデータ計算処理を行い、その結果として得られる図１０（ａ）に示したブロックサイズ「カレント（５１２キロバイト）」の「全領域」に対するハッシュデータ１６１をワーキングエリア１５０に記憶する（図１２・ステップＳ３０３）。
【００９０】
続いてハッシュデータ計算部１１４は、ブロックサイズ「結合（１０２４キロバイト）」およびブロックサイズ「分割（２５６キロバイト）」についても同じように処理を行い、各々のブロックサイズの「全領域」に対するハッシュデータ１６２および１６３をワーキングエリア１５０に記憶する（図１２・ステップＳ３０５、３０７）。
【００９１】
図１０（ａ）〜（ｃ）の各ハッシュデータ１６０を計算後、最適化処理用データ作成部１１１はあらかじめシステム内に設定されている試験用領域のサイズ（２０４８キロバイト）をもとに、ハッシュデータを分割し（ステップＳ３０８）、その結果として図１０（ｄ）〜図１１（ｉ）に示した各々のハッシュデータ１６４〜１６９がワーキングエリア１５０に記憶される。
【００９２】
ユーザからの操作、もしくは設定時刻の到来などによって差分バックアップが開始されると、ブートイメージ送信部１１３はクライアント２１にブートイメージ１４１を送信し、そしてクライアント２１を再起動させる。再起動されたクライアント２１はブートイメージ１４１を起動し、プロセッサ２０１が図６に示した各動作部として機能する。そして差分バックアップ最適化部２１２が、図１４に示した最適化差分バックアップ処理を開始する。
【００９３】
最適化差分バックアップ処理が開始されると、差分バックアップ最適化部２１２は、最適サイズ計算部２１３を呼び出して図１５〜１６に示した最適サイズ計算処理を実行させる（ステップＳ４０１）。最適サイズ計算処理が開始されると、最適サイズ計算部２１３は、バックアップ管理サーバ１０から試験用領域の各ブロックサイズ（カレント、結合、分割）についてのハッシュデータ１６４〜１６６を受信し（図１５・ステップＳ４５１）、まずはブロックサイズ「カレント」、対象「試験用領域」を入力として差分バックアップ部２１４を呼び出して差分バックアップ処理を実行させる（図１５・ステップＳ４５２）。
【００９４】
この差分バックアップの処理時間として５００ｍｓが得られた。最適サイズ計算部２１３は、その処理時間を「カレント」「試験用領域」の試験用バックアップ所要時間２５１としてワーキングエリア２５０に記憶する（図１５・ステップＳ４５３）。
【００９５】
続いて最適サイズ計算部２１３は、ブロックサイズとして「結合」、対象として「試験用領域」を入力として差分バックアップ部２１４に差分バックアップ処理を実行さる（図１５・ステップＳ４５４）。この差分バックアップの処理時間として２５０ｍｓが得られた。その処理時間を「結合」「試験用領域」の試験用バックアップ所要時間２５２としてワーキングエリア２５０に記憶する（図１５・ステップＳ４５５）。
【００９６】
ここで「カレント」「試験用領域」の試験用バックアップ所要時間２５１と「結合」「試験用領域」の試験用バックアップ所要時間２５２とを比較すると（図１５・ステップＳ４５６）、前者が５００ｍｓ、後者が２５０ｍｓで、後者の方が短かった。従って「結合」が最適なブロックサイズであると判断して、これをワーキングエリア２５０内に最適ブロックサイズ２５４として格納する（図１５・ステップＳ４６２）。
【００９７】
これに続いてデータ送受信部２１１は、バックアップ管理サーバ１０から残領域のブロックサイズ「結合」についてのハッシュデータ１６８を受信し、これを入力として差分バックアップ部２１４を呼び出して残領域の差分バックアップ処理を実行する（図１４・ステップＳ４０５、図１８・ステップＳ６０３〜６０４）。ここで取得されてクライアント２１からバックアップ管理サーバ１０に送信された差分バックアップデータを、データ送受信部１１２が受信し、これを差分データ格納部１１６が差分データ１３１として保存する（図１８・ステップＳ６０５）。
【００９８】
そしてこの差分バックアップ処理が完了すると、データ送受信部２１１が最適サイズ「１０２４キロバイト」を次回処理のカレントサイズとしてバックアップ管理サーバ１０に送信する（図１４・ステップＳ４０５）。バックアップ管理サーバ１０では、最適化処理用データ作成部１１１がこれをカレントサイズ設定値１５１としてワーキングエリア１５０に記憶する（図１８・ステップＳ６０７）。
【００９９】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係る差分バックアップ方法は、バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアント２１と、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバ１０とが相互に接続された差分バックアップシステム１にあって、予め与えられた第１ないし第３のブロックサイズの各々でバックアップ管理サーバの第１のハッシュデータ計算部がフルバックアップデータをブロックに区切り、各ブロックのデータに予め与えられた関数を適用してバックアップ管理サーバの第１のハッシュデータ計算部が第１のハッシュデータを算出し（図１２・ステップＳ３０２〜３０７）、第１ないし第３のブロックサイズの各々の場合について第１のハッシュデータをバックアップ管理サーバの最適化処理用データ作成部がフルバックアップデータの一部である試験用領域についてのものとそれ以外の領域のものとに分割し（図１２・ステップＳ３０８）、試験用領域についてのハッシュデータをバックアップ管理サーバの最適化処理用データ作成部がクライアントに送信し（図１８・ステップＳ６０１）、第１〜第３のブロックサイズの各々の場合についてクライアントの第２のハッシュデータ計算部がバックアップ対象データを当該ブロックサイズのブロックに区切り、各ブロックのデータに関数を適用してクライアントの第２のハッシュデータ計算部が第２のハッシュデータを算出し（図１７・ステップＳ５０３）、ブロックごとに算出された第２のハッシュデータとバックアップ管理サーバから受信した第１のハッシュデータとをクライアントのハッシュデータ比較部が比較し（図１７・ステップＳ５０４）、ブロックごとに第１および第２のハッシュデータの比較結果が異なっている場合にバックアップ対象データの該ブロックをクライアントの差分バックアップ部が差分バックアップし（図１７・ステップＳ５０８）、第１〜第３のブロックサイズで行った試験用領域についての差分バックアップで最も所要時間の少なかったブロックサイズをクライアントの最適サイズ計算部が最適サイズとして決定し（図１５・ステップＳ４５６、図１６・ステップＳ４５９）、決定された最適サイズの場合の残領域についての第１のハッシュデータをクライアントの差分バックアップ最適化部がバックアップ管理サーバに要求し（図１８・ステップＳ６０３）、要求された残領域についての第１のハッシュデータをバックアップ管理サーバのデータ送受信部がクライアントに送信し（図１８・ステップＳ６０４）、最適サイズでバックアップ対象データの残領域をブロックに区切ってクライアントの差分バックアップ最適化部が差分バックアップ部に差分バックアップを行わせる（図１４・ステップＳ４０２〜４０６）。
【０１００】
またここで、第２のブロックサイズが第１のブロックサイズより大きく、かつ第３のブロックサイズが第１のブロックサイズより小さい。そして残領域についての第１のハッシュデータをクライアントに返信する際に受信した最適サイズを次回同一処理時の第１のブロックサイズとしてバックアップ管理サーバの最適化処理用データ作成部が記憶する（図１８・ステップＳ６０７）。
【０１０１】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータであるバックアップ管理サーバ１０およびクライアント２１に実行させるようにしてもよい。
この構成および動作により、本実施形態は以下のような効果を奏する。
【０１０２】
本実施形態は、３種類のブロックサイズで試験用領域についての差分バックアップを行い、その結果として所要時間が最短となったブロックサイズによって残領域について差分バックアップを行うので、単なる「見積もり」ではなく、実際のデータおよび処理の内容に即した形で最適なブロックサイズを得て、これによって差分バックアップにかかる時間を短縮することができる。
【０１０３】
しかも、その処理で得られた最適なブロックサイズは、次回処理時に「カレントサイズ」として記憶されるので、同一の差分バックアップ処理を何度も繰り返すうちにますます最適化された数値となる。もちろんこの処理は、クライアント２１、２２、…の各々で行われるので、各々のクライアントにとって最適なブロックサイズによって差分バックアップを行うことができる。
【０１０４】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【０１０５】
上述した各々の実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【０１０６】
（付記１）  バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアントと、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバとが相互に接続された差分バックアップシステムであって、
前記バックアップ管理サーバが、
前記フルバックアップデータを記憶する第１の固定記憶手段と、
ネットワークを経由して前記クライアントとデータ通信を行う第１のデータ送受信部と、
予め与えられた第１ないし第３のブロックサイズの各々で前記フルバックアップデータをブロックに区切ってこれら各ブロックのデータに予め与えられた関数を適用して第１のハッシュデータを算出する第１のハッシュデータ計算部と、
前記第１ないし第３のブロックサイズの各々の場合の前記第１のハッシュデータを前記フルバックアップデータの一部である試験用領域についてのものとそれ以外の残領域のものとに分割して前記試験用領域についてのハッシュデータを前記クライアントに送信する最適化処理用データ作成部と
を有し、
前記クライアントが、
前記バックアップ管理サーバとデータ通信を行う第２のデータ送受信部と、
前記バックアップ対象データを記憶する第２の固定記憶手段と、
前記第１〜第３のブロックサイズの各々の場合について前記バックアップ対象データをブロックに区切ってこれら各ブロックのデータに前記関数を適用して第２のハッシュデータを算出する第２のハッシュデータ計算部と、
算出された前記第２のハッシュデータを前記ブロックごとに前記バックアップ管理サーバから受信した前記第１のハッシュデータと比較するハッシュデータ比較部と、
前記ブロックごとの前記第１および第２のハッシュデータの比較結果が異なっている場合に前記バックアップ対象データの該ブロックを差分バックアップする差分バックアップ部と、
前記第１ないし第３のブロックサイズの各々の場合について、前記試験用領域についての第１のハッシュデータを利用して前記バックアップ対象データの前記試験用領域について前記差分バックアップ部に試験的差分バックアップを行わせると共に、前記第１〜第３のブロックサイズで行った前記試験的差分バックアップで最も所要時間の少なかったブロックサイズを最適サイズとして決定する最適サイズ計算部と、
決定された前記最適サイズの場合の前記残領域についての第１のハッシュデータを前記バックアップ管理サーバに要求すると共に、送られてきたこの残領域についての第１のハッシュデータを利用して前記差分バックアップ部に前記最適サイズで前記バックアップ対象データの残領域の差分バックアップを行わせる差分バックアップ最適化部と
を有することを特徴とする差分バックアップシステム。
【０１０７】
（付記２）  前記第２のブロックサイズが前記第１のブロックサイズより大きく、かつ前記第３のブロックサイズが前記第１のブロックサイズより小さく、
前記バックアップ管理サーバの前記最適化処理用データ作成部が、前記残領域についての第１のハッシュデータを前記クライアントに返信する際に受信した前記最適サイズを次回同一処理時の前記第１のブロックサイズとして記憶する機能を有することを特徴とする、付記１に記載の差分バックアップシステム。
【０１０８】
（付記３）  前記クライアントの前記最適サイズ計算部が、前記第２のブロックサイズで行った前記試験的差分バックアップの所要時間が前記第１のブロックサイズで行った前記試験的差分バックアップの所要時間より短ければ、その時点で前記第２のブロックサイズを前記最適サイズとして決定する機能を有することを特徴とする、付記２に記載の差分バックアップシステム。
【０１０９】
（付記４）  前記バックアップ管理サーバが、前記クライアントの備えるプロセッサを前記第２のデータ送受信部、前記第２のハッシュデータ計算部、前記ハッシュデータ比較部、前記差分バックアップ部、前記最適サイズ計算部、および前記差分バックアップ最適化部として機能させるプログラムであるブートイメージを前記第１の固定記憶手段に記憶するブートイメージ格納部と、
前記ブートイメージを前記クライアントに送信して動作させるブートイメージ送信部とを有することを特徴とする、付記１に記載の差分バックアップシステム。
【０１１０】
（付記５）  バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアントと相互に接続され、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバであって、
前記フルバックアップデータを記憶する固定記憶手段と、
ネットワークを経由して前記クライアントとデータ通信を行うデータ送受信部と、
予め与えられた第１ないし第３のブロックサイズの各々で前記フルバックアップデータをブロックに区切ってこれら各ブロックのデータに予め与えられた関数を適用してハッシュデータを算出するハッシュデータ計算部と、
前記第１ないし第３のブロックサイズの各々の場合の前記ハッシュデータを前記フルバックアップデータの一部である試験用領域についてのものとそれ以外の残領域のものとに分割して前記試験用領域についてのハッシュデータを前記クライアントに送信する最適化処理用データ作成部と
を有することを特徴とするバックアップ管理サーバ。
【０１１１】
（付記６）  バックアップ対象データを保持し、前記バックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバと相互に接続されたコンピュータ装置であるクライアントであって、
前記バックアップ管理サーバとデータ通信を行うデータ送受信部と、
前記バックアップ対象データを記憶する固定記憶手段と、
前記第１〜第３のブロックサイズの各々の場合について前記バックアップ対象データをブロックに区切ってこれら各ブロックのデータに前記関数を適用して第２のハッシュデータを算出するハッシュデータ計算部と、
算出された前記第２のハッシュデータを前記ブロックごとに前記バックアップ管理サーバから受信した前記第１のハッシュデータと比較するハッシュデータ比較部と、
前記ブロックごとの前記第１および第２のハッシュデータの比較結果が異なっている場合に前記バックアップ対象データの該ブロックを差分バックアップする差分バックアップ部と、
前記第１ないし第３のブロックサイズの各々の場合について、前記バックアップ対象データの一部である試験用領域についての第１のハッシュデータを利用して前記バックアップ対象データの前記試験用領域について前記差分バックアップ部に試験的差分バックアップを行わせると共に、前記第１〜第３のブロックサイズで行った前記試験的差分バックアップで最も所要時間の少なかったブロックサイズを最適サイズとして決定する最適サイズ計算部と、
決定された前記最適サイズの場合の前記試験用領域以外の残領域についての第１のハッシュデータを前記バックアップ管理サーバに要求すると共に、送られてきたこの残領域についての第１のハッシュデータを利用して前記差分バックアップ部に前記最適サイズで前記バックアップ対象データの残領域の差分バックアップを行わせる差分バックアップ最適化部と
を有することを特徴とするクライアント。
【０１１２】
（付記７）  バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアントと、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバとが相互に接続された差分バックアップシステムにあって、
予め与えられた第１ないし第３のブロックサイズの各々で前記バックアップ管理サーバの第１のハッシュデータ計算部が前記フルバックアップデータをブロックに区切り、
前記各ブロックのデータに予め与えられた関数を適用して前記バックアップ管理サーバの前記第１のハッシュデータ計算部が第１のハッシュデータを算出し、
前記第１ないし第３のブロックサイズの各々の場合について前記第１のハッシュデータを前記バックアップ管理サーバの最適化処理用データ作成部が前記フルバックアップデータの一部である試験用領域についてのものとそれ以外の残領域のものとに分割し、
前記試験用領域についてのハッシュデータを前記バックアップ管理サーバの前記最適化処理用データ作成部が前記クライアントに送信し、
前記第１〜第３のブロックサイズの各々の場合について前記クライアントの第２のハッシュデータ計算部が前記バックアップ対象データを当該ブロックサイズのブロックに区切り、
前記各ブロックのデータに前記関数を適用して前記クライアントの前記第２のハッシュデータ計算部が第２のハッシュデータを算出し、
前記ブロックごとに算出された前記第２のハッシュデータと前記バックアップ管理サーバから受信した前記第１のハッシュデータとを前記クライアントのハッシュデータ比較部が比較し、
前記ブロックごとに前記第１および第２のハッシュデータの比較結果が異なっている場合に前記バックアップ対象データの該ブロックを前記クライアントの差分バックアップ部が差分バックアップし、
前記第１〜第３のブロックサイズで行った前記試験用領域についての差分バックアップで最も所要時間の少なかったブロックサイズを前記クライアントの最適サイズ計算部が最適サイズとして決定し、
決定された前記最適サイズの場合の前記残領域についての第１のハッシュデータを前記クライアントの差分バックアップ最適化部が前記バックアップ管理サーバに要求し、
要求された前記残領域についての第１のハッシュデータを前記バックアップ管理サーバのデータ送受信部が前記クライアントに送信し、
この残領域についての第１のハッシュデータを利用して前記クライアントの差分バックアップ最適化部が前記差分バックアップ部に前記バックアップ対象データの残領域の差分バックアップを行わせる
ことを特徴とする差分バックアップ方法。
【０１１３】
（付記８）  前記第２のブロックサイズが前記第１のブロックサイズより大きく、かつ前記第３のブロックサイズが前記第１のブロックサイズより小さく、
前記残領域についての第１のハッシュデータを前記クライアントに返信する際に受信した前記最適サイズを次回同一処理時の前記第１のブロックサイズとして前記バックアップ管理サーバの前記最適化処理用データ作成部が記憶する
ことを特徴とする、付記７に記載の差分バックアップ方法。
【０１１４】
（付記９）  バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアントと、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバとが相互に接続された差分バックアップシステムにあって、
前記バックアップ管理サーバが備えるコンピュータに、
予め与えられた第１ないし第３のブロックサイズの各々で前記フルバックアップデータをブロックに区切る手順、
前記各ブロックのデータに予め与えられた関数を適用してハッシュデータを算出する手順、
前記第１ないし第３のブロックサイズの各々の場合について前記ハッシュデータを前記フルバックアップデータの一部である試験用領域についてのものとそれ以外の残領域のものとに分割する手順、
前記試験用領域についてのハッシュデータを前記クライアントに送信する手順、
および前記クライアントから要求された前記残領域についての第１のハッシュデータを当該クライアントに送信する手順
を実行させることを特徴とする差分バックアッププログラム。
【０１１５】
（付記１０）  バックアップ対象データを保持する単数もしくは複数のコンピュータ装置であるクライアントと、各々のバックアップ対象データを完全バックアップしたフルバックアップデータを保持するバックアップ管理サーバとが相互に接続された差分バックアップシステムにあって、
前記クライアントが備えるコンピュータに、
前記第１〜第３のブロックサイズの各々の場合について前記バックアップ対象データを当該ブロックサイズのブロックに区切る手順、
前記各ブロックのデータに前記関数を適用して第２のハッシュデータを算出する手順、
前記ブロックごとに算出された前記第２のハッシュデータを前記バックアップ管理サーバから受信した前記第１のハッシュデータと比較する手順、
前記ブロックごとの前記第１および第２のハッシュデータの比較結果が異なっている場合に前記バックアップ対象データの該ブロックを差分バックアップする手順、
前記第１〜第３のブロックサイズで行った前記バックアップ対象データの一部である試験用領域についての差分バックアップで最も所要時間の少なかったブロックサイズを最適サイズとして決定する手順、
決定された前記最適サイズの場合の前記試験用領域以外の残領域についての第１のハッシュデータを前記バックアップ管理サーバに要求する手順、
および送られてきたこの残領域についての第１のハッシュデータを利用して前記バックアップ対象データの残領域の差分バックアップを行う手順
を実行させることを特徴とする差分バックアッププログラム。
【産業上の利用可能性】
【０１１６】
本発明は、バックアップシステムに適用できる。特に、複数のクライアントコンピュータについてのバックアップをバックアップ管理サーバによって一括して行うという形のバックアップシステムに適している。
【符号の説明】
【０１１７】
１  差分バックアップシステム
１０  バックアップ管理サーバ
２１  クライアント
３０  ネットワーク
１０１、２０１  プロセッサ
１０２、２０２  一時記憶手段
１０３、２０３  固定記憶手段
１０４、２０４  通信手段
１１１  最適化処理用データ作成部
１１２  データ送受信部
１１３  ブートイメージ送信部
１１４  ハッシュデータ計算部
１１５  フルバックアップデータ格納部
１１６  差分データ格納部
１１７  ブートイメージ格納部
１２０  バックアップデータ格納領域
１２１  フルバックアップデータ
１２１ａ、２２１ａ  試験用領域
１２１ｂ、２２１ｂ  残領域
１３０  差分データ格納領域
１３１  差分データ
１４０  ブートイメージ格納領域
１４１  ブートイメージ
１５０、２５０  ワーキングエリア
１５１  カレントサイズ設定値
１６０〜１６９  ハッシュデータ
２１１  データ送受信部
２１２  差分バックアップ最適化部
２１３  最適サイズ計算部
２１４  差分バックアップ部
２１５  ハッシュデータ計算部
２１６  ハッシュデータ比較部
２２０  バックアップ対象データ記憶領域
２２１  バックアップ対象データ
【図１】
0005494123.tif 000002
【図２】
0005494123.tif 000003
【図３】
0005494123.tif 000004
【図４】
0005494123.tif 000005
【図５】
0005494123.tif 000006
【図６】
0005494123.tif 000007
【図７】
0005494123.tif 000008
【図８】
0005494123.tif 000009
【図９】
0005494123.tif 000010
【図１０】
0005494123.tif 000011
【図１１】
0005494123.tif 000012
【図１２】
0005494123.tif 000013
【図１３】
0005494123.tif 000014
【図１４】
0005494123.tif 000015
【図１５】
0005494123.tif 000016
【図１６】
0005494123.tif 000017
【図１７】
0005494123.tif 000018
【図１８】
0005494123.tif 000019