(57)【特許請求の範囲】
【請求項１】
複数のコンピュータのうちのバックアップ対象のコンピュータであって、
前記複数のコンピュータのうちの前記バックアップ対象のコンピュータ以外の複数のコンピュータを、それぞれ複数のコンピュータから成る複数のグループに分けるグループ分け手段と、
前記バックアップ対象のコンピュータが保持するデータを、前記複数のグループのそれぞれに割り当てるとともに、前記データを分割して各グループ内の複数のコンピュータに分散して保持させるデータ割当手段と、を備える、
ことを特徴とするコンピュータ。
【請求項２】
前記グループ分け手段は、前記バックアップ対象のコンピュータ以外の複数のコンピュータをハードディスクの空き容量の大きいものから順に、異なるグループに振り分ける、
請求項１に記載のコンピュータ。
【請求項３】
前記グループ分け手段は、前記バックアップ対象のコンピュータ以外の複数のコンピュータのうちの、前記バックアップ対象のコンピュータ以外のコンピュータに対するバックアップに参加しているコンピュータ、ハードディスクの空き容量が所定の容量以下であるコンピュータ、または、バックアップに参加することができない時間帯であるコンピュータを除外し、残りのコンピュータを前記複数のグループに分割する、
請求項１または２に記載のコンピュータ。
【請求項４】
前記データ割当手段は、各グループ内の複数のコンピュータのそれぞれのハードディスクの空き容量に基づいて前記データを分割し、分割後の前記データを各グループ内の複数のコンピュータのそれぞれのハードディスクの空き容量に応じて分散して保持させる、
請求項１ないし３のいずれか１項に記載のコンピュータ。
【請求項５】
グループ内のすべてのコンピュータがリストア動作に参加可能なグループを前記複数のグループから抽出する抽出手段と、
抽出したグループに含まれる複数のコンピュータから前記分割後のデータを受信し、受信した前記分割後のデータを結合して、前記データをリストアするリストア手段と、を備える、
請求項１ないし４のいずれか１項に記載のコンピュータ。
【請求項６】
前記抽出手段は、グループ内のすべてのコンピュータから死活の確認に対する応答が得られたグループを前記複数のグループから抽出する、
請求項５に記載のコンピュータ。
【請求項７】
複数のコンピュータを備え、
前記複数のコンピュータのうちのバックアップ対象のコンピュータは、前記バックアップ対象のコンピュータ以外の複数のコンピュータを、それぞれ複数のコンピュータから成る複数のグループに分けるグループ分け手段と、
前記バックアップ対象のコンピュータが保持するデータを、前記複数のグループのそれぞれに割り当てるとともに、前記データを分割して各グループ内の複数のコンピュータに分散して保持させるデータ割当手段と、を有する、
ことを特徴とするバックアップシステム。
【請求項８】
複数のコンピュータのうちのバックアップ対象のコンピュータが、
前記複数のコンピュータのうちの前記バックアップ対象のコンピュータ以外の複数のコンピュータを、それぞれ複数のコンピュータから成る複数のグループに分けるステップと、
前記バックアップ対象のコンピュータが保持するデータを、前記複数のグループのそれぞれに割り当てるとともに、前記データを分割して各グループ内の複数のコンピュータに分散して保持させるステップと、を含む、
ことを特徴とするバックアップ方法。
【請求項９】
前記バックアップ対象のコンピュータは、前記バックアップ対象のコンピュータ以外の複数のコンピュータをハードディスクの空き容量の大きいものから順に、異なるグループに振り分ける、
請求項８に記載のバックアップ方法。
【請求項１０】
複数のコンピュータのうちのバックアップ対象のコンピュータに対して、
前記複数のコンピュータのうちの前記バックアップ対象のコンピュータ以外の複数のコンピュータを、それぞれ複数のコンピュータから成る複数のグループに分ける処理と、
前記バックアップ対象のコンピュータが保持するデータを、前記複数のグループのそれぞれに割り当てるとともに、前記データを分割して各グループ内の複数のコンピュータに分散して保持させる処理と、を実行させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ、バックアップシステム、バックアップ方法、および、プログラムに関し、特に、バックアップシステムを構成するコンピュータ、複数のコンピュータから成るバックアップシステム、バックアップシステムにおけるバックアップ方法、および、プログラムに関する。
【背景技術】
【０００２】
ＰＣ（Personal Computer）等のコンピュータは、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）にデータを保持している。ＨＤＤの故障などにより、データの読み出しが不可能となった場合に備え、データのバックアップを取ることが望ましい。
【０００３】
しかしながら、データのバックアップを取るには、一般に、高価な専用のバックアップ装置を導入する必要がある。また、専用のバックアップ装置を導入した場合においても、バックアップ装置自身が故障すると、データが消失してしまうという問題もある。
【０００４】
これらの問題を解決する技術として、例えば、特許文献１には、ネットワークを介して接続された複数のユーザＰＣによりバックアップシステムを構築し、低コストで可用性の高いバックアップシステムを提供する技術が記載されている。
【０００５】
また、特許文献２には、ネットワークを介して接続された複数のコンピュータを備えたデータバックアップシステムにより、サーバを使用することなく、安価で高い信頼性を有するデータバックアップシステムを提供する技術が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１６４１６４号公報
【特許文献２】特開２００６−１０６９０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
【０００８】
ＰＣ（Personal Computer）等のコンピュータのバックアップを自動で取る方法として、特定の制御用コンピュータと専用のバックアップ装置を使用する方法が知られている。しかしながら、かかる方法によると、制御用コンピュータと専用のバックアップ装置を購入し、これらの装置の運用および保守を行う必要がある。したがって、かかる方法をオフィスに導入すると、重い負担（導入コスト、運用コスト等）を強いられる。
【０００９】
特許文献１には、格納対象データを分割して複数のユーザＰＣにバックアップするバックアップシステムや、一つの格納対象データを複数のユーザＰＣにバックアップするバックアップシステムが記載されている。前者のバックアップシステムによると、データ漏えいのリスクが軽減され、セキュリティを保つことが可能となるものの、可用性を向上させることはできない。一方、後者のバックアップシステムによると、可用性を向上させることが可能となるものの、セキュリティを保つことができないという問題がある。
【００１０】
一方、特許文献２には、バックアップ対象のデータを分割することなく、そのまま複数のバックアップ先のコンピュータにコピーするバックアップシステムが記載されている。かかるバックアップシステムによると、セキュリティを確保することができないという問題がある。
【００１１】
そこで、コンピュータのバックアップを安価に実現すると共に、セキュリティおよび可用性を確保することが課題となる。本発明の目的は、かかる課題解決に寄与するコンピュータ、バックアップシステム、バックアップ方法、および、プログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明の第１の態様に係るコンピュータは、複数のコンピュータのうちのバックアップ対象のコンピュータであって、前記複数のコンピュータのうちの前記バックアップ対象のコンピュータ以外の複数のコンピュータを、それぞれ複数のコンピュータから成る複数のグループに分けるグループ分け手段と、前記バックアップ対象のコンピュータが保持するデータを、前記複数のグループのそれぞれに割り当てるとともに、前記データを分割して各グループ内の複数のコンピュータに分散して保持させるデータ割当手段と、を備える。
【００１３】
本発明の第２の態様に係るバックアップシステムは、複数のコンピュータを備え、前記複数のコンピュータのうちのバックアップ対象のコンピュータは、前記バックアップ対象のコンピュータ以外の複数のコンピュータを、それぞれ複数のコンピュータから成る複数のグループに分けるグループ分け手段と、前記バックアップ対象のコンピュータが保持するデータを、前記複数のグループのそれぞれに割り当てるとともに、前記データを分割して各グループ内の複数のコンピュータに分散して保持させるデータ割当手段と、を有する。
【００１４】
本発明の第３の態様に係るバックアップ方法は、複数のコンピュータのうちのバックアップ対象のコンピュータが、前記複数のコンピュータのうちの前記バックアップ対象のコンピュータ以外の複数のコンピュータを、それぞれ複数のコンピュータから成る複数のグループに分けるステップと、前記バックアップ対象のコンピュータが保持するデータを、前記複数のグループのそれぞれに割り当てるとともに、前記データを分割して各グループ内の複数のコンピュータに分散して保持させるステップと、を含む。
【００１５】
本発明の第４の態様に係るプログラムは、複数のコンピュータのうちのバックアップ対象のコンピュータに対して、前記複数のコンピュータのうちの前記バックアップ対象のコンピュータ以外の複数のコンピュータを、それぞれ複数のコンピュータから成る複数のグループに分ける処理と、前記バックアップ対象のコンピュータが保持するデータを、前記複数のグループのそれぞれに割り当てるとともに、前記データを分割して各グループ内の複数のコンピュータに分散して保持させる処理と、を実行させる。なお、プログラムは、非一時的なコンピュータ可読記録媒体（non-transitory computer-readable storage medium）に記録されたプログラム製品として提供することもできる。
【発明の効果】
【００１６】
本発明に係るコンピュータ、バックアップシステム、バックアップ方法、および、プログラムによると、コンピュータのバックアップを安価に実現すると共に、セキュリティおよび可用性を確保することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】一実施形態に係るコンピュータの構成を例示するブロック図である。
【図２】一実施形態に係るコンピュータを備えたバックアップシステムの構成を例示するブロック図である。
【図３】第１の実施形態に係るバックアップシステムの構成を例示する図である。
【図４】第１の実施形態に係るバックアップシステムにおけるコンピュータの構成を例示するブロック図である。
【図５】負荷テーブルの内容について説明するための図である。
【図６】ＩＰアドレステーブルの内容について説明するための図である。
【図７】バックアップデータインデックスの内容について説明するための図である。
【図８】子装置空き容量リストの内容について説明するための図である。
【図９】第１の実施形態に係るバックアップシステムにおけるバックアップ動作を例示するシーケンス図である。
【図１０】第１の実施形態に係るバックアップシステムにおけるバックアップ動作を例示するシーケンス図（図９の続き）である。
【図１１】第１の実施形態に係るバックアップシステムにおけるリストア動作を例示するシーケンス図である。
【図１２】第１の実施形態に係るバックアップシステムにおけるリストア動作を例示するシーケンス図（図１１の続き）である。
【発明を実施するための形態】
【００１８】
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００１９】
一実施形態では、コンピュータ同士で相互にバックアップを取る。同一のネットワークに所属するコンピュータの内、バックアップの対象となるコンピュータ（「親コンピュータ」という。）以外のコンピュータ（「子コンピュータ」という。）を２つ以上のグループに分け、各グループを１台のストレージとみなし、ミラーリングでバックアップをとる。
【００２０】
子コンピュータはＣＰＵ（Central Processing Unit）とネットワーク負荷予定（例えば、週単位で各曜日の各時間帯でバックアップを受け入れられない時間帯または負荷の予定を表す表を有する）を備え、ある一定の負荷がある場合、バックアップ用コンピュータの対象としないようにしてもよい。また、子コンピュータにおいて未使用領域容量に余裕がない（所定の基準を予め決めておく）場合も、バックアップ用コンピュータの対象としないようにしてもよい。
【００２１】
このようにすることで、専用のバックアップ装置を追加することなく、コンピュータのバックアップが可能となる。また、ミラーリングにより１つのグループ内の１台以上のコンピュータが故障してデータ消失した場合も、他のグループからバックアップしたデータを正常にリストアすることが可能となる。さらに、ＣＰＵおよびネットワークの負荷状況、未使用領域容量を事前に確認することで、重い負荷がかかっているコンピュータが除外されるため、全体の動作を軽くすることができる。また、バックアップデータを分割して複数のコンピュータで分散して保持するようにしたため、コンピュータ間で負荷が分散される。さらに、分割されたバックアップデータを結合しない限り元のデータ（ファイル）の内容を把握することはできないため、セキュリティを保つこともできる。
【００２２】
図１は、一実施形態に係るコンピュータの構成を例示するブロック図である。図１を参照すると、コンピュータ１０は、複数のコンピュータのうちのバックアップ対象のコンピュータ（親コンピュータ）であって、複数のコンピュータのうちのバックアップ対象のコンピュータ１０以外の複数のコンピュータ（例えば、図２の子コンピュータ２０ａ〜２０ｄ）を、それぞれ複数のコンピュータから成る複数のグループ（例えば、図２のグループＰ、Ｑ）に分けるグループ分け手段１２と、バックアップ対象のコンピュータが保持するデータを、複数のグループ（グループＰ、Ｑ）のそれぞれに割り当てるとともに、データを分割して各グループ内の複数のコンピュータに分散して（例えば、コンピュータ２０ａと２０ｂの間で分散すると共に、コンピュータ２０ｃと２０ｄの間で分散して）保持させるデータ割当手段１４と、を備えている。
【００２３】
かかるコンピュータ１０によると、制御用コンピュータや専用のバックアップ装置を導入する必要がなくなる。また、同一のデータが複数のグループに割り当てられると共に、当該データは各グループ内において分割されて複数のコンピュータに分散して格納される。したがって、かかるコンピュータ１０によると、コンピュータのバックアップを安価に実現すると共に、可用性とセキュリティを同時に確保することができる。
【００２４】
ここで、グループ分け手段１２は、バックアップ対象のコンピュータ（親コンピュータ）１０以外の複数のコンピュータ（子コンピュータ）２０ａ〜２０ｄをハードディスクの空き容量の大きいものから順に、異なるグループに振り分けてもよい。このとき、グループ間でハードディスクの空き容量の合計が均一化されるため、グループ間でデータをミラーリングし易くなる。
【００２５】
また、グループ分け手段１２は、バックアップ対象のコンピュータ（親コンピュータ）１０以外の複数のコンピュータ（子コンピュータ）２０ａ〜２０ｂのうちの、バックアップ対象のコンピュータ（親コンピュータ）１０以外のコンピュータに対するバックアップに参加しているコンピュータ、ハードディスクの空き容量が所定の容量以下であるコンピュータ、または、バックアップに参加することができない時間帯のコンピュータを除外し、残りのコンピュータを複数のグループに分割してもよい。このとき、バックアップ先として不適当なコンピュータが予め除外され、バックアップおよびリストアの動作を軽く（高速化）することができる。
【００２６】
さらに、データ割当手段１４は、各グループ内の複数のコンピュータのそれぞれのハードディスクの空き容量に基づいてデータを分割し、分割後のデータを各グループ内の複数のコンピュータのそれぞれのハードディスクの空き容量に応じて分散して保持させるようにしてもよい。このとき、各グループ内の複数のコンピュータの空き容量を有効に活用することで、大容量のデータをバックアップすることが可能となる。
【００２７】
図２を参照すると、コンピュータ１０は、グループ内のすべてのコンピュータ（例えば、グループＰ内のコンピュータ２０ａ、２０ｂ）がリストア動作に参加可能であるようなグループ（例えば、グループＰ）を、複数のグループから抽出する抽出手段１６と、抽出したグループ（グループＰ）に含まれる複数のコンピュータ（コンピュータ２０ａ、２０ｂ）から分割後のデータを受信し、受信した分割後のデータを結合して、元のデータをリストアするリストア手段１８を備えている。ここで、抽出手段１６は、グループ内のすべてのコンピュータから死活の確認に対する応答が得られたグループを複数のグループの中から抽出してもよい。かかるコンピュータ１０によると、リストアの際に１つのグループ内のコンピュータが故障してデータ消失した場合も、他のグループからバックアップしたデータを正常にリストアすることが可能となる。
【００２８】
一実施形態によると、特定の制御用コンピュータおよび専用バックアップ装置を使用することなく、既存の計算機資源を利用することで簡便にバックアップを取ることが可能となる。
【００２９】
図２においては、コンピュータ１０をバックアップ対象のコンピュータ（親コンピュータ）とし、コンピュータ２０ａ〜２０ｄをバックアップ先のコンピュータ（子コンピュータ）として説明した。ただし、コンピュータ２０ａ〜２０ｄの構成をコンピュータ１０と同様の構成とすることにより、コンピュータ２０ａ〜２０ｄのうちのいずれかをバックアップ対象のコンピュータ（親コンピュータ）とし、コンピュータ２０ａ〜２０ｄのうちの残りのコンピュータとコンピュータ１０をバックアップ先のコンピュータ（子コンピュータ）とすることもできる。すなわち、同一のネットワークに所属するコンピュータ１０、コンピュータ２０ａ〜２０ｄの間で、ハードディスクの未使用領域を利用して相互にバックアップを取ることもできる。
【００３０】
一実施形態では、同一ネットワークに所属するコンピュータの内、バックアップの対象となるコンピュータ（親コンピュータ）以外のコンピュータ（子コンピュータ）を２つ以上のグループに分ける。ここで、子コンピュータのグループ分けの際、ハードディスク未使用領域容量の大きい子コンピュータから順に異なるグループに振り分けることが好ましい。また、各グループを１台のストレージとみなし、グループ間のミラーリングでバックアップをとる。バックアップファイルは、各グループ内における各子コンピュータの未使用領域容量の割合に応じて分割して各子コンピュータに割り当てることが好ましい。
【００３１】
また、バックアップ開始時、親コンピュータは親になる宣言を各子コンピュータに通知する。このとき、各子コンピュータは他に親になる宣言を受け入れているコンピュータの有無を確認し、受け入れているコンピュータがある場合、受け入れできない旨の回答をするか、または、無回答とする。また、親コンピュータは各子コンピュータにハードディスクの未使用領域の容量を問い合わせる。このとき、各子コンピュータは、負荷予定を参照し（子コンピュータは週単位で、各曜日の各時間帯でバックアップを受け入れられない時間帯または負荷の予定表を持つ）、一定以上の負荷が存在する場合、受け入れできない旨の回答をするか、または、無回答とする。さらに、各子コンピュータは、未使用領域容量に余裕がない（予め基準を決めておく）場合、受け入れできない旨の回答をするか、または、無回答とする。
【００３２】
各子コンピュータによって親宣言を確認することで、次の効果がもたらされる。すなわち、いずれかのコンピュータが親コンピュータとなりバックアップを開始し、そのコンピュータが親宣言した時点において、電源の未投入により、バックアップに参加していなかったコンピュータであって、その後稼働を開始したコンピュータが複数存在する場合、これらのコンピュータ間でバックアップを取ることが可能となる。
【００３３】
親コンピュータは、各子コンピュータからの未使用領域容量の回答に基づいて上記グループ分けを実施し、グループ毎に各子コンピュータのハードディスクの未使用領域容量の割合に応じてバックアップファイルを分割して、各子コンピュータに分割したデータを送付する。このとき、日時とともに、どのグループのどの子コンピュータにどの分割データを送付したかのインデックスファイルを作成し、全子コンピュータに送付する。
【００３４】
リストア開始時、親コンピュータは各子コンピュータにインデックスファイルを送付してもらう。親コンピュータは、それぞれのインデックスファイルの内、自らのバックアップ情報を含むインデックスファイルのみを参照する。親コンピュータは、インデックスファイルを参照して、第１のグループの各子コンピュータの死活を確認し、すべての子コンピュータが活きている場合、第１のグループ内の各コンピュータから分割データ（分割ファイル）を送付してもらい、受け取った分割データ（分割ファイル）を結合して、元のデータ（ファイル）をリストアする。一方、第１のグループに含まれる子コンピュータの中に応答のないコンピュータが含まれる場合、親コンピュータは、第２のグループに含まれる各子コンピュータから分割データ（分割ファイル）を送付してもらい、受け取った分割データ（分割ファイル）を結合して、元のデータ（ファイル）をリストアする。
【００３５】
このようにすることで、専用のバックアップ装置を追加することなく、バックアップを取ることができる。また、リストアの際に１つのグループ内の１台以上のコンピュータが故障してデータ消失した場合も、他のグループからバックアップしたデータを正常にリストアすることができる。
【００３６】
また、ＣＰＵおよびネットワークの負荷状況、未使用領域容量を事前に確認することで、負荷のかかるコンピュータが除外されるため、全体的な動作を軽くすることができる。
【００３７】
さらに、バックアップデータを分割しているので、各コンピュータの負担は分散されると共に、分割されたデータを結合しないと元のデータの内容は分からないため、セキュリティを確保することもできる。
【００３８】
＜実施形態１＞
次に、第１の実施形態に係るバックアップシステムについて、図面を参照して詳細に説明する。
【００３９】
図３は、本実施形態に係るバックアップシステムの構成を例示する図である。図３を参照すると、本実施形態のバックアップシステムは、コンピュータ１０およびコンピュータ２０を備えている。また、コンピュータ１０とコンピュータ２０は、ネットワーク３０を介して相互に接続されている。
【００４０】
図４は、コンピュータ１０およびコンピュータ２０の構成を例示するブロック図である。図４を参照すると、コンピュータ１０は、ＰＣ（Personal Computer）など通常の情報処理装置であり、ＣＰＵ（Central Processing Unit）、ハードディスクなどの記憶装置等の通常の構成（非図示）を備えている。また、コンピュータ１０は、これらの構成以外に、バックアッププログラム１００、リストアプログラム１１０、負荷テーブル１２０、ＩＰアドレステーブル１３０、バックアップデータインデックス１４０、および、子装置空き容量リスト１５０を備えている。
【００４１】
なお、バックアッププログラム１００は、上記一実施形態におけるグループ分け手段１２およびデータ割当手段１４に相当する。一方、リストアプログラム１１０は、上記一実施形態における抽出手段１６およびリストア手段１８に相当する。
【００４２】
コンピュータ１０は、バックアップの対象となるコンピュータ、または、リストアを実施するコンピュータである。
【００４３】
本実施形態では、コンピュータ１０をリストアする際に必要となるリストアプログラム１１０と、ＩＰアドレステーブル１３０を、図示しないＵＳＢ（Universal Serial Bus）メモリ等の外部記憶装置に保管しているものとする。
【００４４】
コンピュータ２０は、ＰＣなど通常の情報処理装置であり、ＣＰＵ、ハードディスクなどの記憶装置等の通常の構成（非図示）を備えている。また、コンピュータ２０は、これらの構成以外に、バックアッププログラム２００、リストアプログラム２１０、負荷テーブル２２０、ＩＰアドレステーブル２３０、バックアップデータインデックス２４０、および、子装置空き容量リスト２５０を備えている。
【００４５】
コンピュータ２０は、バックアップ先となるコンピュータであり、コンピュータ１０と同一の構成を有する。
【００４６】
図５は、負荷テーブル１２０の内容を説明するための図である。図５を参照すると、負荷テーブル１２０は、コンピュータで設定した、曜日ごとのバックアップ不可能日時の情報を持つ。各コンピュータは、それぞれの自コンピュータの負荷情報を持つ。図５に例示した負荷テーブル１２０の場合、コンピュータＰＣ−ＡＡＡは、月曜日および水曜日の１０：００〜１１：００および１３：００〜１５：００、ならびに、金曜日の９：００〜１７：００の時間帯はバックアップに参加することができない。負荷テーブル２２０も、負荷テーブル１２０と同様の情報を保持する。
【００４７】
図６は、ＩＰアドレステーブル１３０の内容を説明するための図である。図６を参照すると、ＩＰアドレステーブル１３０は、ネットワーク３０内のコンピュータ名、ＩＰアドレス、および、親装置フラグの情報を有する。ＩＰアドレステーブル２３０も、ＩＰアドレステーブル１３０と同様の情報を保持する。親装置フラグは、コンピュータのバックアップおよびリストアへの参加可否を判断するために使用する。親装置フラグをセットすることにより、バックアップおよびリストア参加中の場合に、重複してバックアップおよびリストアに参加しないようにする。
【００４８】
図７は、バックアップデータインデックス１４０の内容について説明するための図である。図７を参照すると、バックアップデータインデックス１４０はバックアップ日時、バックアップ元コンピュータ名、バックアップグループ、バックアップ先コンピュータ名、および、所持分割データの情報を持つ。図７に示したバックアップデータインデックス１４０の場合、グループＰに所属するコンピュータＰＣ−ＢＢＢおよびＰＣ−ＣＣＣと、グループＱに所属するコンピュータＰＣ−ＤＤＤおよびＰＣ−ＥＥＥが、コンピュータＰＣ−ＡＡＡのデータのバックアップに参加している。バックアップデータインデックス２４０も、バックアップデータインデックス１４０と同様の情報を保持する。
【００４９】
図８は、子装置空き容量リスト１５０の内容について説明するための図である。図８を参照すると、子装置空き容量リスト１５０はコンピュータ名、および、ハードディスク未使用領域容量の情報を持つ。子装置空き容量リスト２５０も、子装置空き容量リスト１５０と同様の情報を保持する。
【００５０】
次に、本実施形態に係るバックアップシステム（図３）のバックアップ動作およびリストア動作について、図９ないし図１２を参照して詳細に説明する。
【００５１】
図９および図１０は、本実施形態に係るバックアップシステムにおけるバックアップ動作を例示するシーケンス図である。まず、図９および図１０を参照して、バックアップ動作について説明する。
【００５２】
図９を参照すると、コンピュータ１０のバックアッププログラム１００は、ＩＰアドレステーブル１３０に親装置フラグがないことを確認する（ステップＡ１）。
【００５３】
コンピュータ１０のバックアッププログラム１００は、ＩＰアドレステーブル１３０の自身の装置に親装置フラグをセットする（ステップＡ２）。
【００５４】
コンピュータ１０のバックアッププログラム１００は、ＩＰアドレステーブル１３０（図６）に登録されている自身以外のＩＰアドレスすべてに対してping送信を行う（ステップＡ３）。
【００５５】
ping送信を受けたコンピュータ２０は、ping応答を返す（ステップＡ４）。
【００５６】
コンピュータ１０のバックアッププログラム１００は、ping応答を行ったコンピュータ２０のバックアッププログラム２００に対して、親装置となることを宣言する（ステップＡ５）。
【００５７】
コンピュータ２０のバックアッププログラム２００は、ＩＰアドレステーブル２３０に親装置フラグがあるかどうかを確認する（ステップＡ６）。コンピュータ２０のバックアッププログラム２００は、ＩＰアドレステーブル２３０に親装置フラグがある場合（ステップＡ６のＹｅｓ）、コンピュータ１０のバックアッププログラム１００に受け入れ不可と回答し、処理を終了する（ステップＡ９）。
【００５８】
コンピュータ２０のバックアッププログラム２００は、ハードディスクの未使用領域容量が規定値（例えば、総ハードディスク容量の１０％とする）よりも多いかどうかを確認する（ステップＡ７）。コンピュータ２０のバックアッププログラム２００はハードディスクの未使用領域容量が規定値以下の場合（ステップＡ７のＮｏ）、コンピュータ１０のバックアッププログラム１００に受け入れ不可と回答し、処理を終了する（ステップＡ９）。
【００５９】
コンピュータ２０のバックアッププログラム２００は、負荷テーブル２２０の登録を確認し、現在がバックアップ不可能時間でないことを確認する。バックアッププログラム２００は、負荷テーブル２２０にコンピュータ２０の登録がないか、または、登録があってもバックアップ不可能時間以外である場合、バックアップ可能と判断する。コンピュータ２０のバックアッププログラム２００は、負荷テーブル２２０の登録を確認し、現在がバックアップ不可能時間である場合（ステップＡ８のＹｅｓ）、コンピュータ１０のバックアッププログラム１００に受け入れ不可と回答し、処理を終了する（ステップＡ９）。
【００６０】
コンピュータ２０のバックアッププログラム２００は、ＩＰアドレステーブル２３０に親装置フラグがなく（ステップＡ６のＮｏ）、かつ、ハードディスクの未使用領域容量が規定よりも多く（ステップＡ７のＹｅｓ）、かつ、負荷テーブル２２０にコンピュータ２０の登録がない、または、登録があってもバックアップ不可能時間以外である場合（ステップＡ８のＮｏ）、ＩＰアドレステーブル２３０のコンピュータ１０に親装置のフラグをセットする（ステップＡ１０）。
【００６１】
コンピュータ２０のバックアッププログラム２００は、ハードディスクの未使用領域容量を親コンピュータ１０のバックアッププログラム１００に回答する（ステップＡ１１）。
【００６２】
図１０を参照すると、コンピュータ１０のバックアッププログラム１００は、送信されてきたコンピュータ２０のハードディスクの未使用領域容量を子装置空き容量リスト１５０に保存する（ステップＡ１２）。
【００６３】
コンピュータ１０のバックアッププログラム１００は、子装置空き容量リスト１５０に保存されている子コンピュータの空き容量に応じて多い順にグループに振り分ける（ステップＡ１３）。バックアッププログラム１００は、例えば、子コンピュータを２つのグループに分ける場合、空き容量が１番多い子コンピュータを第１グループに、空き容量が２番目に多い子コンピュータを第２グループに、空き容量が３番目に多い子コンピュータを第１グループに、空き容量が４番目に多い子コンピュータを第２グループにという具合に、サイクリックに振り分ける。なお、グループ数は、ミラーリングしたい数に応じて作成する。
【００６４】
コンピュータ１０のバックアッププログラム１００は、グループ内のハードディスク未使用領域容量の全容量に対する、コンピュータ２０のハードディスクの未使用領域容量の比率を算出し、送信するデータ量の分割比率として決定する（ステップＡ１４）。
【００６５】
コンピュータ１０のバックアッププログラム１００は、バックアップするデータをコンピュータ２０に送信する容量に従って分割する（ステップＡ１５）。
【００６６】
コンピュータ１０のバックアッププログラム１００は、分割データをどのコンピュータに送信するかを記載したバックアップデータインデックス１４０（図７）を作成する（ステップＡ１６）。
【００６７】
コンピュータ１０のバックアッププログラム１００は、分割データとバックアップデータインデックス１４０（図７）をコンピュータ２０に送信する（ステップＡ１７）。
【００６８】
コンピュータ２０のバックアッププログラム２００は、分割データとバックアップデータインデックス２４０をコンピュータ２０のハードディスクに保存する（ステップＡ１８）。ここで、バックアッププログラム２００は、バックアップデータインデックス１４０をバックアップデータインデックス２４０として保存する。
【００６９】
バックアッププログラム２００は、保存が完了すると、コンピュータ１０に対して保存の完了を通知する（ステップＡ１９）。
【００７０】
コンピュータ１０のバックアッププログラム１００は、子装置空き容量リスト１５０（図８）の内容をクリアする（ステップＡ２０）。
【００７１】
コンピュータ１０のバックアッププログラム１００は、コンピュータ２０のバックアッププログラム２００に対して親装置の解除を宣言する（ステップＡ２１）。
【００７２】
コンピュータ２０のバックアッププログラム２００は、コンピュータ１０のバックアッププログラム１００から親装置の解除を受け取ると、ＩＰアドレステーブル２３０からコンピュータ１０の親装置フラグを削除し（ステップＡ２３）、処理を終了する。
【００７３】
コンピュータ１０のバックアッププログラム１００は、ＩＰアドレステーブル１３０（図６）から自身（コンピュータ１０）の親装置フラグを削除し（ステップＡ２４）、処理を終了する。
【００７４】
なお、上記の方法によれば、いずれかのコンピュータが親コンピュータとなり、バックアップを開始して親宣言した時点で、電源が投入されていないなどの理由でバックアップに参加していないコンピュータであって、その後電源が投入されたコンピュータが複数台存在する場合、これらの複数台のコンピュータのうちのいずれかが親宣言をしたときにも、同様なフローにより、こられのコンピュータ同士でバックアップを取ることが可能となる。
【００７５】
図１１および図１２は、本実施形態に係るバックアップシステムにおけるリストア動作を例示するシーケンス図である。次に、図１１および図１２を参照してリストアの動作について説明する。
【００７６】
図１１を参照すると、コンピュータ１０は、外部記憶装置からリストアプログラム１１０と、ＩＰアドレステーブル１３０を読み込む（ステップＢ１）。
【００７７】
コンピュータ１０のリストアプログラム１１０は、ＩＰアドレステーブル１３０の自装置の欄に親装置フラグをセットする（ステップＢ２）。
【００７８】
コンピュータ１０のリストアプログラム１１０は、ＩＰアドレステーブル１３０に登録されている自身以外のＩＰアドレスのすべてに対してping送信を行う（ステップＢ３）。
【００７９】
ping送信を受けたコンピュータ２０は、ping応答を返す（ステップＢ４）。
【００８０】
コンピュータ１０のリストアプログラム１１０は、ｐｉｎｇ応答を行ったコンピュータ２０のリストアプログラム２１０に対して、バックアップデータインデックス１４０を送信するように要求する（ステップＢ５）。
【００８１】
コンピュータ２０のリストアプログラム２１０は、バックアップデータインデックス２４０をコンピュータ１０のリストアプログラム１１０に送信する（ステップＢ６）。
【００８２】
コンピュータ１０のリストアプログラム１１０は、受信したバックアップデータインデックス２４０を参照し、自身のバックアップデータのあるバックアップデータインデックス２４０を探し、バックアップデータインデックス１４０として保存する（ステップＢ７）。
【００８３】
コンピュータ１０のリストアプログラム１１０は、自身（コンピュータ１０）のバックアップデータを保有しているコンピュータ２０を特定する（ステップＢ８）。
【００８４】
コンピュータ１０のリストアプログラム１１０は、特定したバックアップデータを保有しているコンピュータ２０に対し、親装置となることを宣言する（ステップＢ９）。
【００８５】
コンピュータ２０のリストアプログラム２１０は、ＩＰアドレステーブル２３０に親装置フラグがない場合（ステップＢ１０のＮｏ）、ＩＰアドレステーブル２３０のコンピュータ１０に親装置のフラグをセットする（ステップＢ１２）。
【００８６】
次に、コンピュータ２０のリストアプログラム２１０は、コンピュータ１０のリストアプログラム１１０に対し、リストア対応可能であることを通知する（ステップＢ１３）。
【００８７】
一方、ＩＰアドレステーブル２３０に親装置フラグがある場合（ステップＢ１０のＹｅｓ）、コンピュータ２０のリストアプログラム２１０は、コンピュータ１０のリストアプログラム１１０に受け入れ不可と回答し、処理を終了する（ステップＢ１１）。
【００８８】
図１２を参照すると、コンピュータ１０のリストアプログラム１１０は、リストア対応可能なコンピュータ２０がすべて揃っているグループが存在する場合（ステップＢ１４のＹｅｓ）、分割データを送信するグループを決定して、決定したグループに含まれるコンピュータ２０のリストアプログラム２１０に対してデータ送信依頼を通知する。一方、コンピュータ１０のリストアプログラム１１０は、分割データを送信するグループに含まれないコンピュータ２０に対して、親装置の解除宣言を通知する（ステップＢ１５）。
【００８９】
コンピュータ１０のリストアプログラム１１０は、リストア対応可能なコンピュータ２０がすべて揃っているグループが存在しない場合（ステップＢ１４のＮｏ）、親装置の解除を宣言すると共に（ステップＢ１９）、ＩＰアドレステーブル１３０からコンピュータ１０の親装置フラグを削除して（ステップＢ２０）、リストア失敗として処理を終了する。
【００９０】
コンピュータ２０のリストアプログラム２１０は、分割データを送信するグループに所属している場合（ステップＢ１６のＹｅｓ）、コンピュータ１０のリストアプログラム１１０に分割データを送信する（ステップＢ１７）。
【００９１】
一方、コンピュータ２０のリストアプログラム２１０は、分割データを送信するグループに所属していない場合（ステップＢ１６のＮｏ）、ＩＰアドレステーブル２３０からコンピュータ１０の親装置フラグを削除して（ステップＢ２１）、処理を終了する。
【００９２】
コンピュータ１０のリストアプログラム１１０は、分割データを受信して結合する（ステップＢ１８）。
【００９３】
コンピュータ１０のリストアプログラム１１０は、分割データを送信するグループに所属しているコンピュータ２０のリストアプログラム２１０に対して親装置の解除を宣言する（ステップＢ１９）。
【００９４】
コンピュータ２０のリストアプログラム２１０は、コンピュータ１０のリストアプログラム１１０から親装置の解除を受け取ると、ＩＰアドレステーブル２３０からコンピュータ１０の親装置フラグを削除して（ステップＢ２１）、処理を終了する。
【００９５】
コンピュータ１０のリストアプログラム１１０は、ＩＰアドレステーブル１３０から自身（コンピュータ１０）の親装置フラグを削除して（ステップＢ２０）、処理を終了する。
【００９６】
本実施形態のバックアップシステムによると、専用のバックアップ装置を用いることなく、バックアップを実施することができる。また、本実施形態のバックアップシステムによると、コンピュータの余剰リソースを利用し、かつ、リストアを実行するコンピュータ以外のコンピュータ１台が故障してもリストアが可能なバックアップシステムを提供することができる。さらに、本実施形態のバックアップシステムによると、コンピュータのハードディスクの余剰リソースを用いて、高価なバックアップ装置を購入することなく、バックアップを取ることが可能となる。
【００９７】
なお、本発明において、さらに下記の形態が可能である。
［形態１］
上記第１の態様に係るコンピュータのとおりである。
［形態２］
前記グループ分け手段は、前記バックアップ対象のコンピュータ以外の複数のコンピュータをハードディスクの空き容量の大きいものから順に、異なるグループに振り分ける、
形態１に記載のコンピュータ。
［形態３］
前記グループ分け手段は、前記バックアップ対象のコンピュータ以外の複数のコンピュータのうちの、前記バックアップ対象のコンピュータ以外のコンピュータに対するバックアップに参加しているコンピュータ、ハードディスクの空き容量が所定の容量以下であるコンピュータ、または、バックアップに参加することができない時間帯であるコンピュータを除外し、残りのコンピュータを前記複数のグループに分割する、
形態１または２に記載のコンピュータ。
［形態４］
前記データ割当手段は、各グループ内の複数のコンピュータのそれぞれのハードディスクの空き容量に基づいて前記データを分割し、分割後の前記データを各グループ内の複数のコンピュータのそれぞれのハードディスクの空き容量に応じて分散して保持させる、
形態１ないし３のいずれか一に記載のコンピュータ。
［形態５］
グループ内のすべてのコンピュータがリストア動作に参加可能なグループを前記複数のグループから抽出する抽出手段と、
抽出したグループに含まれる複数のコンピュータから前記分割後のデータを受信し、受信した前記分割後のデータを結合して、前記データをリストアするリストア手段と、を備える、
形態１ないし４のいずれか一に記載のコンピュータ。
［形態６］
前記抽出手段は、グループ内のすべてのコンピュータから死活の確認に対する応答が得られたグループを前記複数のグループから抽出する、
形態５に記載のコンピュータ。
［形態７］
上記第２の態様に係るバックアップシステムのとおりである。
［形態８］
上記第３の態様に係るバックアップ方法のとおりである。
［形態９］
前記バックアップ対象のコンピュータは、前記バックアップ対象のコンピュータ以外の複数のコンピュータをハードディスクの空き容量の大きいものから順に、異なるグループに振り分ける、
形態８に記載のバックアップ方法。
［形態１０］
前記バックアップ対象のコンピュータは、前記バックアップ対象のコンピュータ以外の複数のコンピュータのうちの、前記バックアップ対象のコンピュータ以外のコンピュータに対するバックアップに参加しているコンピュータ、ハードディスクの空き容量が所定の容量以下であるコンピュータ、または、バックアップに参加することができない時間帯であるコンピュータを除外し、残りのコンピュータを前記複数のグループに分割する、
形態８または９に記載のバックアップ方法。
［形態１１］
前記バックアップ対象のコンピュータは、各グループ内の複数のコンピュータのそれぞれのハードディスクの空き容量に基づいて前記データを分割し、分割後の前記データを各グループ内の複数のコンピュータのそれぞれのハードディスクの空き容量に応じて分散して保持させる、
形態８ないし１０のいずれか一に記載のバックアップ方法。
［形態１２］
前記バックアップ対象のコンピュータが、グループ内のすべてのコンピュータがリストア動作に参加可能なグループを前記複数のグループから抽出するステップと、
抽出したグループに含まれる複数のコンピュータから前記分割後のデータを受信するステップと、
受信した前記分割後のデータを結合して、前記データをリストアするステップと、を含む、
形態８ないし１１のいずれか一に記載のバックアップ方法。
［形態１３］
前記バックアップ対象のコンピュータは、グループ内のすべてのコンピュータから死活の確認に対する応答が得られたグループを前記複数のグループから抽出する、
形態１２に記載のバックアップ方法。
［形態１４］
上記第４の態様に係るプログラムのとおりである。
［形態１５］
前記バックアップ対象のコンピュータは、前記バックアップ対象のコンピュータ以外の複数のコンピュータをハードディスクの空き容量の大きいものから順に、異なるグループに振り分ける処理を、前記バックアップ対象のコンピュータに実行させる、
形態１４に記載のプログラム。
［形態１６］
前記バックアップ対象のコンピュータ以外の複数のコンピュータのうちの、前記バックアップ対象のコンピュータ以外のコンピュータに対するバックアップに参加しているコンピュータ、ハードディスクの空き容量が所定の容量以下であるコンピュータ、または、バックアップに参加することができない時間帯であるコンピュータを除外し、残りのコンピュータを前記複数のグループに分割する処理を、前記バックアップ対象のコンピュータに実行させる、
形態１４または１５に記載のプログラム。
［形態１７］
各グループ内の複数のコンピュータのそれぞれのハードディスクの空き容量に基づいて前記データを分割し、分割後の前記データを各グループ内の複数のコンピュータのそれぞれのハードディスクの空き容量に応じて分散して保持させる処理を、前記バックアップ対象のコンピュータに実行させる、
形態１４ないし１６のいずれか一に記載のプログラム。
［形態１８］
グループ内のすべてのコンピュータがリストア動作に参加可能なグループを前記複数のグループから抽出する処理と、
抽出したグループに含まれる複数のコンピュータから前記分割後のデータを受信する処理と、
受信した前記分割後のデータを結合して、前記データをリストアする処理と、を前記バックアップ対象のコンピュータに実行させる、
形態１４ないし１７のいずれか一に記載のプログラム。
［形態１９］
グループ内のすべてのコンピュータから死活の確認に対する応答が得られたグループを前記複数のグループから抽出する処理を、前記バックアップ対象のコンピュータに実行させる、
形態１８に記載のプログラム。
【００９８】
なお、上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００９９】
１０、２０、２０ａ〜２０ｄ    コンピュータ
１２    グループ分け手段
１４    データ割当手段
１６    抽出手段
１８    リストア手段
３０    ネットワーク
１００、２００    バックアッププログラム
１１０、２１０    リストアプログラム
１２０、２２０    負荷テーブル
１３０、２３０    ＩＰアドレステーブル
１４０、２４０    バックアップデータインデックス
１５０、２５０    子装置空き容量リスト
【図１】
0005963274.tif 000002
【図２】
0005963274.tif 000003
【図３】
0005963274.tif 000004
【図４】
0005963274.tif 000005
【図５】
0005963274.tif 000006
【図６】
0005963274.tif 000007
【図７】
0005963274.tif 000008
【図８】
0005963274.tif 000009
【図９】
0005963274.tif 000010
【図１０】
0005963274.tif 000011
【図１１】
0005963274.tif 000012
【図１２】
0005963274.tif 000013