(57)【要約】【課題】バックアップ速度を向上させながらも、障害が生じた場合には確実なバックアップを行う。【解決手段】クライアントコンピュータからのバックアップ要求に応じて、複数のＮＡＳ１、２のうち所定のＮＡＳに格納されたファイル３１を、バックアップ装置に対してバックアップの要求を行うバックアップ方法であって、クライアントコンピュータからのバックアップ要求に基づいて、バックアップ対象のファイルを選択し、前記選択したバックアップ対象のファイル３１を、ＮＡＳ１、２へそれぞれ割り当て、割り当てられたファイル３１について、各ＮＡＳがバックアップ装置に対して並列的にバックアップを要求する（１０２、２０２）。【選択図】図２
2005275893.tif 000002
【特許請求の範囲】
【請求項１】
クライアントコンピュータからのバックアップ要求に応じて、複数のＮＡＳのうち所定のＮＡＳに格納されたファイルを、バックアップ装置に対してバックアップの要求を行うバックアップ方法であって、
前記クライアントコンピュータからのバックアップ要求に基づいて、バックアップ対象のファイルを選択する手順と、
前記選択したバックアップ対象のファイルを、前記複数のＮＡＳにそれぞれ割り当てる手順と、
前記割り当てられたファイルについて、各ＮＡＳが前記バックアップ装置に対して並列的にバックアップを要求する手順と、
を含むことを特徴とするバックアップ方法。
【請求項２】
前記バックアップ対象のファイルを前記複数のＮＡＳにそれぞれ割り当てる手順は、
前記各ＮＡＳのバックアップ開始から完了までの時間が等しくなるように、前記選択したバックアップ対象のファイルを、各ＮＡＳに割り当てる手順と、
を含むことを特徴とする請求項１に記載のバックアップ方法。
【請求項３】
前記バックアップ対象のファイルを前記複数のＮＡＳにそれぞれ割り当てる手順は、
前記ＮＡＳの性能情報をそれぞれ取得する手順と、
前記取得した性能情報に基づいて各ＮＡＳの按分比を決定する手順と、
前記選択したバックアップ対象のファイルから前記按分比に応じて、各ＮＡＳのバックアップ対象のファイルを振り分ける手順と、
を含むことを特徴とする請求項２に記載のバックアップ方法。
【請求項４】
前記複数のＮＡＳを相互に監視して、障害の発生を検知する手順と、
前記障害発生を検知したときには、障害が発生したＮＡＳのバックアップ対象のファイルのうち、障害発生時点以降のバックアップ対象ファイルについて他のＮＡＳへ引き継ぐ手順と、
前記引き継いだバックアップ対象のファイルについて、前記他のＮＡＳからバックアップ装置に対してバックアップ要求を行う手順と、
を含むことを特徴とする請求項１に記載のバックアップ方法。
【請求項５】
前記複数のＮＡＳを相互に監視して、障害の発生を検知する手順は、
前記ＮＡＳにそれぞれ対応するカウンタを設定する手順と、
前記バックアップ装置に対してバックアップを要求するたびに、バックアップ要求を行ったファイルの数に応じて前記カウンタを更新する手順と、
前記カウンタの値の変化を検出する手順と、
前記カウンタが所定時間を超えて変化がないときには、このカウンタに対応するＮＡＳに障害が発生したと判定する手順と、
を含むことを特徴とする請求項５に記載のバックアップ方法。
【請求項６】
前記カウンタは、前記複数のＮＡＳで相互に参照または更新可能な共有領域に設定されたことを特徴とする請求項５に記載のバックアップ方法。
【請求項７】
前記複数のＮＡＳはＮＡＳクラスタを構成し、
前記選択したバックアップ対象のファイルを、前記複数のＮＡＳにそれぞれ割り当てたファイルリストを生成する手順と、
前記各ＮＡＳのファイルリストを、ＮＡＳクラスタ内の全てのＮＡＳに通知する手順を含み、
前記障害が発生したＮＡＳのバックアップ対象のファイルを、他のＮＡＳに引き継ぐ手順は、前記障害が発生したＮＡＳのファイルリストを、他のＮＡＳに送付してバックアップさせることを特徴とする請求項４に記載のバックアップ方法。
【請求項８】
前記障害が発生したＮＡＳのバックアップ対象ファイルを引き継ぐＮＡＳが複数あるときには、これらＮＡＳの性能情報を取得する手順と、
前記性能情報に基づいて、障害が発生したＮＡＳを除く各ＮＡＳの按分比を決定する手順と、
前記障害が発生したＮＡＳのバックアップ対象のファイルリストから前記按分比に応じて、障害発生時点以降のファイルについて各ＮＡＳに割り当てた新たなファイルリストを生成する手順と、
前記障害が発生したＮＡＳを除く各ＮＡＳに、前記新たなファイルリストを送付する手順と、
を含むことを特徴とする請求項７に記載のバックアップ方法。
【請求項９】
ファイルを格納する複数のＮＡＳと、
クライアントコンピュータからのバックアップ要求を受け付けるバックアップ要求受付部と、
前記バックアップ要求に応じて、前記ＮＡＳからファイルを選択するバックアップ対象選択部と、
前記選択したファイルについて、バックアップ装置に対してバックアップの要求を行うバックアップ実行部と、
を備えたＮＡＳの制御装置であって、
前記選択したバックアップ対象のファイルを、前記複数のＮＡＳにそれぞれ割り当てるバックアップ対象分割部と、
前記割り当てられたファイルに基づいて、各ＮＡＳが前記バックアップ装置に対して並列的にバックアップを行うように指令するバックアップ司令部と、
を備えたことを特徴とするＮＡＳの制御装置。
【請求項１０】
前記バックアップ対象分割部は、
前記各ＮＡＳのバックアップ開始から完了までの時間が等しくなるように、前記選択したバックアップ対象のファイルを、各ＮＡＳに割り当てることを特徴とする請求項９に記載のＮＡＳの制御装置。
【請求項１１】
前記バックアップ対象分割部は、
前記ＮＡＳの性能情報をそれぞれ取得する性能情報取得部と、
前記取得した性能情報に基づいて各ＮＡＳに割り当てるファイルの按分比を決定する按分比決定部と、を有し、
前記選択したバックアップ対象のファイルから前記按分比に応じて、各ＮＡＳのバックアップ対象となるファイルを振り分けることを特徴とする請求項１０に記載のＮＡＳの制御装置。
【請求項１２】
前記他のＮＡＳを相互に監視して障害の発生を検知する障害発生検知部と、
前記障害発生を検知したときには、障害が発生したＮＡＳのバックアップ対象ファイルのうち、障害発生時点以降のバックアップ対象ファイルについて他のＮＡＳへ引き継ぐ代行バックアップ部と、を備えたことを特徴とする請求項９に記載のＮＡＳの制御装置。
【請求項１３】
前記障害発生検知部は、
前記各ＮＡＳ毎に設定されて、バックアップ要求を行ったファイルの数をＮＡＳ毎に更新するカウンタと、
前記カウンタの値の変化を検出するカウンタ値検出部と、
前記カウンタの値が所定時間を超えて変化がないときには、このカウンタに対応するＮＡＳに障害が発生したと判定することを特徴とする請求項１２に記載のＮＡＳの制御装置。
【請求項１４】
前記複数のＮＡＳのいずれかには、前記複数のＮＡＳが相互に参照または更新可能な共有領域が設定され、
前記カウンタは前記共有領域に設定されたことを特徴とする請求項１３に記載のＮＡＳの制御装置。
【請求項１５】
前記複数のＮＡＳはＮＡＳクラスタを構成し、
前記代行バックアップ部は、前記選択したバックアップ対象のファイルを、前記複数のＮＡＳ毎にそれぞれ割り当てたファイルリストをバックアップ開始時に生成するファイルリスト生成部と、
前記各ＮＡＳのファイルリストを、前記ＮＡＳクラスタ内の全てのＮＡＳに通知する通知部と、
前記障害が発生した時点以降のファイルリストに基づいて、前記他のＮＡＳでバックアップを継続するバックアップ継続部と、
を有することを特徴とする請求項１２に記載のＮＡＳの制御装置。
【請求項１６】
前記代行バックアップ部は、
前記バックアップを引き継ぐＮＡＳの性能情報を取得して、前記性能情報に基づいて障害が発生したＮＡＳを除く各ＮＡＳの按分比を決定する再配分用按分比決定部と、
前記障害が発生したＮＡＳのバックアップ対象のファイルリストから前記按分比に応じて、障害発生時点以降のファイルについて各ＮＡＳに割り当てた新たなファイルリストを生成する再配分リスト生成部と、
前記障害が発生したＮＡＳを除く各ＮＡＳに、前記新たなファイルリストを送付する再配分リスト通知部と、
を含むことを特徴とする請求項１５に記載のＮＡＳの制御装置。
【請求項１７】
クライアントコンピュータからのバックアップ要求に応じて、複数のＮＡＳのうち所定のＮＡＳに格納されたファイルを、バックアップ装置に対してバックアップの要求を行うプログラムであって、
前記クライアントコンピュータからのバックアップ要求に基づいて、バックアップ対象のファイルを選択する処理と、
前記選択したバックアップ対象のファイルを、前記複数のＮＡＳにそれぞれ割り当てる処理と、
前記割り当てられたファイルについて、各ＮＡＳが前記バックアップ装置に対して並列的にバックアップを要求する処理と、
をコンピュータに機能させることを特徴とするプログラム。
【請求項１８】
前記バックアップ対象のファイルを前記複数のＮＡＳにそれぞれ割り当てる処理は、
前記ＮＡＳの性能情報をそれぞれ取得する処理と、
前記取得した性能情報に基づいて各ＮＡＳの按分比を決定する処理と、
前記選択したバックアップ対象のファイルから前記按分比に応じて、各ＮＡＳのバックアップ対象のファイルを振り分ける処理と、
を含むことを特徴とする請求項１７に記載のプログラム。
【請求項１９】
前記複数のＮＡＳを相互に監視して、障害の発生を検知する処理と、
前記障害発生を検知したときには、障害が発生したＮＡＳのバックアップ対象のファイルのうち、障害発生時点以降のバックアップ対象ファイルについて他のＮＡＳへ引き継ぐ処理と、
前記引き継いだバックアップ対象のファイルについて、前記他のＮＡＳからバックアップ装置に対してバックアップ要求を行う処理と、
を含むことを特徴とする請求項１７に記載のバックアップ方法。
【請求項２０】
ファイルを格納する第１及び第２のＮＡＳと、
前記第１のＮＡＳに配設されてクライアントコンピュータからのバックアップ要求を受け付けるバックアップ要求受付部と、
前記バックアップ要求に応じて、前記第１のＮＡＳまたは第２のＮＡＳからファイルを選択するバックアップ対象選択部と、
前記選択したバックアップ対象のファイルを、前記第１及び第２のＮＡＳにそれぞれ割り当てるバックアップ対象分割部と、
前記割り当てられたファイルに基づいて、第１及び第２のＮＡＳから前記バックアップ装置に対して並列的にバックアップを行うバックアップ実行部と、
を備えたことを特徴とするＮＡＳシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＮＡＳに格納されたファイルをバックアップする技術の改良に関する。
【背景技術】
【０００２】
複数のコンピュータを用いてバックアップを行う場合、一方のコンピュータに障害が発生したときには、他方のコンピュータでバックアップを再開するものが知られている（例えば、特許文献１）。
【０００３】
また、この例では、一方のコンピュータに障害が生じると、テープ装置を巻き戻してから、他のコンピュータでバックアップを再開している。
【特許文献１】特開２０００−３５３１０４号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記従来の技術では、バックアップの際に複数のコンピュータを用いてはいるものの、他方のコンピュータは一方のコンピュータに障害が発生しない限りバックアップは行わないので、バックアップに要する時間は単一のコンピュータで行う場合と同様である。このため、バックアップ速度の向上を図ることができないという問題があった。
【０００５】
さらに、一方のコンピュータに障害が発生すると、テープ装置を巻き戻してから再開するため、さらにバックアップに要する時間が長くなってしまうという問題があった。
【０００６】
そこで本発明は、上記問題点に鑑みてなされたもので、バックアップ速度を向上させながらも、障害が生じた場合には確実なバックアップを行うことを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、クライアントコンピュータからのバックアップ要求に応じて、複数のＮＡＳのうち所定のＮＡＳに格納されたファイルを、バックアップ装置に対してバックアップの要求を行うバックアップ方法であって、クライアントコンピュータからのバックアップ要求に基づいて、バックアップ対象のファイルを選択し、前記選択したバックアップ対象のファイルを、複数のＮＡＳにそれぞれ割り当て、前記割り当てられたファイルについて、各ＮＡＳがバックアップ装置に対して並列的にバックアップを要求する。
【０００８】
また、いずれかのＮＡＳに障害が発生したときには、他のＮＡＳが障害発生時点以降のファイルについてバックアップを引き継ぐ。
【発明の効果】
【０００９】
したがって、本発明は、複数のＮＡＳにより並列的にバックアップを行うことができるので、バックアップ速度を大幅に向上させることができる。
【００１０】
また、障害が発生した場合でも、他のＮＡＳが障害発生時点以降についてバックアップを引き継ぐので、信頼性を確保しながらバックアップ速度の向上を図ることができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【００１２】
図１は、本発明をＮＡＳ(Network Attached Storage)装置に適用した場合のシステムの全体的な構成を示すブロック図で、図２はＮＡＳ１及びＮＡＳ２のソフトウェア構成を示すブロック図である。
【００１３】
図１において、ＮＡＳクラスタ１００は複数のＮＡＳ１、ＮＡＳ２から構成され、ネットワーク３０を介して接続された管理用クライアントコンピュータ８やクライアントコンピュータ８０からは単一のＮＡＳ１として認識される。この例では、正常時にはＮＡＳ１が主であり、ＮＡＳ２がＮＡＳ１のクライアントとなる場合を示す。
【００１４】
ＮＡＳ１は、ディスク装置３、４と、これらディスク装置３、４を制御するコントローラ１０を含んで構成されている。また、ＮＡＳ１は、ネットワーク３０を介してＮＡＳ１にバックアップを要求する管理用クライアントコンピュータ８や、バックアップを行うバックアップ装置９、ＮＡＳ１に対してデータの書き込み（更新）や読み出し（参照）を要求するクライアントコンピュータ８０に接続されている。
【００１５】
ＮＡＳ２は、ディスク装置５、６と、これらディスク装置５、６を制御するコントローラ２０を含んで構成されている。そして、上記ＮＡＳ１と同様にＮＡＳ２は、ネットワーク３０を介して管理用クライアントコンピュータ８や、バックアップ装置９、クライアントコンピュータ８０に接続されている。
【００１６】
管理用クライアントコンピュータ８は、ＮＡＳ１に対して予め設定したファイルをバックアップ装置９へバックアップするよう要求する。
【００１７】
なお、ディスク装置３〜６には、それぞれ予め設定したファイルシステムが構築されている。
【００１８】
また、管理用クライアントコンピュータ８及びクライアントコンピュータ８０には、図示はしないがＣＰＵ、メモリ、ネットワーク３０に接続されるインターフェース、表示装置や入力装置が備えられる。
【００１９】
ＮＡＳクラスタ１００を構成するＮＡＳ１とＮＡＳ２は、相互に接続されており、バックアップを並列的に行うとともに、ＮＡＳ１に障害が発生するとフェイルオーバ処理を行ってＮＡＳ２へバックアップを引き継ぐものである。
【００２０】
まず、ＮＡＳ１のコントローラ１０には、ＣＰＵ１１、メモリ１２、データ転送コントローラ１３、ネットワークインターフェース１４及びストレージ用のインターフェース１５が設けられている。なお、メモリ１２にデータキャッシュ（図示省略）を設けても良く、あるいは、データキャッシュをデータ転送コントローラ１３側に設けても良い。
【００２１】
メモリ１２には制御プログラム（図２参照）がロードされており、ＣＰＵ１１が制御プログラムを呼び出して実行することによって後述する各種処理が行われる。
【００２２】
データ転送コントローラ１３は、ＣＰＵ１１、ネットワークインターフェース１４、ストレージインターフェース１５及びメモリ１２の間でデータを転送する。
【００２３】
ＮＡＳ２もＮＡＳ１と同様に構成され、ＮＡＳ２のコントローラ２０には、ＣＰＵ２１、メモリ２２、データ転送コントローラ２３、ネットワークインターフェース２４及びストレージ用のインターフェース２５が設けられている。なお、メモリ２２にデータキャッシュ（図示省略）を設けても良く、あるいは、データキャッシュをデータ転送コントローラ２３側に設けても良い。
【００２４】
メモリ２２には制御プログラム（図２参照）がロードされており、ＣＰＵ２１が制御プログラムを呼び出して実行することによって後述する各種処理が行われる。
【００２５】
データ転送コントローラ２３は、ＣＰＵ２１、ネットワークインターフェース２４、ストレージインターフェース２５及びメモリ２２の間でデータを転送する。
【００２６】
また、ＮＡＳ１のディスクインターフェース１５は、ＮＡＳ１のディスク装置３、４に加えて、ＮＡＳ２のディスク装置５、６にも接続され、ＮＡＳ２のディスク装置５、６をマウントすることが可能となっている。
【００２７】
同様に、ＮＡＳ２のディスクインターフェース２５は、ＮＡＳ２のディスク装置５、６に加えて、ＮＡＳ１のディスク装置３、４にも接続され、ＮＡＳ１のディスク装置３、４をマウントすることが可能となっている。
【００２８】
そして、ＮＡＳクラスタ１００には、ＮＡＳ１とＮＡＳ２で相互に参照及び更新可能な共有論理ディスク７が設けられる。この共有論理ディスク７は、上記物理的なディスク装置３〜６のいずれかの領域に設定される。
【００２９】
図２は、ＮＡＳ１のコントローラ１０とＮＡＳ２のコントローラ２０でそれぞれ実行される制御プログラムの機能ブロックを示す。
【００３０】
まず、ＮＡＳ１のＮＡＳ＿ＯＳ１０１は、各制御プログラムの実行管理を行い、後述するファイル共有処理１０３、バックアップ要求受付処理１０２、バックアップ進捗監視処理１０４、フェイルオーバ処理１０５の各制御プログラムを監視し、これらのソフトウェアはＮＡＳ＿ＯＳ１０１の管理下で稼動する。
【００３１】
ＮＡＳ２のコントローラ２０も同様であり、ＮＡＳ＿ＯＳ２０１は、各制御プログラムの実行管理を行い、後述するファイル共有処理２０３、バックアップ要求受付処理２０２、バックアップ進捗監視処理２０４、フェイルオーバ監視処理２０５の各制御プログラムを監視し、これらのソフトウェアはＮＡＳ＿ＯＳ２０１の管理下で稼動する。
【００３２】
以下、ＮＡＳ１、２のコントローラ１０、２０で実行される制御の概要について説明し、その後、各制御詳細について説明する。
【００３３】
なお、本実施形態では、図２で示すように、ＮＡＳ１のディスク装置３に格納されたファイル３１をバックアップ装置９にバックアップする場合を示す。
【００３４】
＜ファイル共有処理＞
ＮＡＳ１のファイル共有処理１０３は、ネットワーク３０側に対して、管理用クライアントコンピュータ８やクライアントコンピュータ８０からのアクセス要求（参照または更新）に応じて要求されたファイルの読み出しや書き込みを実行する。また、ファイル共有処理１０３は、ＮＡＳ２に対してディスク装置３、４のファイルを参照または更新可能にするとともに、ＮＡＳ２のディスク装置５、６のファイルを参照または更新可能にするものである。また、共有論理ディスク７のファイルについても相互に参照更新可能とする。
【００３５】
ＮＡＳ２のファイル共有処理２０３も、ネットワーク３０側に対してＮＡＳ１のファイル共有処理１０３と同様であり、管理用クライアントコンピュータ８やクライアントコンピュータ８０からのアクセス要求に応じて要求されたファイルの読み出しや書き込みを実行し、また、ＮＡＳ１に対してディスク装置５、６のファイルを参照または更新可能にするとともに、ＮＡＳ１のディスク装置３、４のファイルを参照または更新可能にするものである。また、共有論理ディスク７のファイルについても相互に参照更新可能とする。
【００３６】
＜バックアップ要求受付処理＞
ＮＡＳ１のバックアップ要求受付処理１０２は、管理用クライアントコンピュータ８からバックアップ要求を受け付けて、後述するように、バックアップ要求のあったファイルをＮＡＳ１とＮＡＳ２で按分し、それぞれがバックアップを実行するファイルのリストをリストＬ１、Ｌ２としてＮＡＳ２へ送信する。さらにファイルリストＬ１のファイル数に対応したカウンタＡを設定するとともに、ファイルリストＬ２のファイル数に応じたカウンタＢを設定する。
【００３７】
ＮＡＳ２のバックアップ要求受付処理２０２は、ＮＡＳ１のバックアップ要求受付処理１０２からバックアップ要求を受け付ける点が異なる。
【００３８】
ＮＡＳ１のバックアップ要求受付処理１０２は、ファイルリストＬ１に基づいてバックアップを実行し、ＮＡＳ２のバックアップ要求受付処理２０２はファイルリストＬ２に基づいてバックアップを実行する。そして、バックアップ要求受付処理１０２は、１ファイルのバックアップを完了すると、共有論理ディスク７のカウンタＡをデクリメントし、同様に、ＮＡＳ２のバックアップ要求受付処理２０２は、１ファイルのバックアップを完了すると、共有論理ディスク７のカウンタＢをデクリメントする。
【００３９】
また、ＮＡＳ１は、バックアップが完了すると、後述するログ情報ＬｏｇＡを共有論理ディスク７に書き込み、同様にＮＡＳ２もバックアップが完了すると、共有論理ディスク７にログ情報ＬｏｇＢを書き込む。
【００４０】
なお、バックアップの実行時には、周知のスナップショット技術やミラーリングのスプリット等を用い、バックアップ対象ファイルが更新されるのを防止する。
【００４１】
＜バックアップ進捗監視処理＞
ＮＡＳ１のバックアップ進捗監視処理１０４は、共有論理ディスク７のカウンタＢを監視して、一定時間カウンタＢの更新がなければ、ＮＡＳ２に障害が発生したと判定する。
そして、ＮＡＳ２の障害を検知したときには、後述のように、当初ＮＡＳ２が行う予定だったファイルリストＬ２のバックアップをカウンタＢに基づいてＮＡＳ１で実行する。
【００４２】
同様に、ＮＡＳ２のバックアップ進捗監視処理２０４は、共有論理ディスク７のカウンタＡを監視して、一定時間カウンタＡの更新がなければ、ＮＡＳ１に障害が発生したと判定する。
【００４３】
そして、ＮＡＳ１の障害を検知したときには、後述のように、ＮＡＳ１のフェイルオーバ処理が終了した後に、当初ＮＡＳ１が行う予定だったファイルリストＬ１のバックアップをＮＡＳ２で実行する。
【００４４】
ＮＡＳ１とＮＡＳ２のバックアップ要求受付処理１０２、２０２は、共にファイルリストＬ１、Ｌ２を保持しており、上記のように、一方のコントローラに障害が発生したときに、他方はリストＬ１、Ｌ２と共有論理ディスク７上のカウンタＡ、Ｂに基づいてバックアップを再開することができる。これにより、管理用クライアントコンピュータ８からのバックアップ要求を確実に処理することができるのである。
【００４５】
＜フェイルオーバ処理及びフェイルオーバ完了監視処理＞
ＮＡＳ１のフェイルオーバ処理１０５は、ＮＡＳ１に障害が発生したとき、アドレス（ＩＰアドレス等）をＮＡＳ２へ引き継ぐとともに、ＮＡＳ１のＮＡＳ＿ＯＳ１０１がマウントしていたディスク装置３を開放する。
【００４６】
ＮＡＳ２はＮＡＳ１のクライアントであり、バックアップ対象のファイル３１はＮＡＳ１が管理するディスク装置３に格納されているので、ＮＡＳ２に障害が発生したときにはＮＡＳ１のバックアップ進捗監視処理１０４が、ＮＡＳ２のフェイルオーバを待たずにファイルリストＬ２のバックアップを引き継ぐことができる。
【００４７】
これに対して、ＮＡＳ１に障害が発生したときには、ＮＡＳ２のバックアップ進捗監視処理２０４が、ＮＡＳ１のフェイルオーバ処理１０５の完了を待ってから、ＮＡＳ１で管理していたディスク装置３をＮＡＳ２にマウントし、その後、ファイルリストＬ１とカウンタＡに基づいてＮＡＳ２で実行することになる。
【００４８】
このため、ＮＡＳ２のフェイルオーバ完了監視処理２０５は、ＮＡＳ１に問い合わせ（ハートビートの検出等）るか、ログ情報などを参照してＮＡＳ１のフェイルオーバ処理１０５が完了したか否かを検出する。
【００４９】
本実施形態では、ＮＡＳ２のフェイルオーバ完了監視処理２０５は、共有論理ディスク７のカウンタＡが更新されなくなってから所定の時間を経過したときに、ＮＡＳ１のフェイルオーバ処理１０５が完了したと判定する場合を示す。
【００５０】
次に、上記図２に示したＮＡＳ１、ＮＡＳ２のコントローラ１０、２０で実行される各制御の詳細について、以下に説明する。
【００５１】
＜ＮＡＳ１のバックアップ要求受付処理１０２＞
図３は、ＮＡＳ１のコントローラ１０で実行されるバックアップ要求受付処理１０２の一例を示すフローチャートで、コントローラ１０が管理用クライアントコンピュータ８からバックアップ要求を受けたときに実行されるものである。
【００５２】
Ｓ１では、管理用クライアントコンピュータ８から受け付けたバックアップ要求より、バックアップ対象のディレクトリパスを取得する。なお、ここでは、ＮＡＳ１が管理するディスク装置３のファイル３１のディレクトリパスをバックアップ対象とする。
【００５３】
Ｓ２では、取得したディレクトリパスからバックアップ対象となるファイル名を取得する。
【００５４】
Ｓ３では、後述するように、ＮＡＳ１、ＮＡＳ２の性能に応じて、ＮＡＳ１がバックアップするファイルリストＬ１と、ＮＡＳ２がバックアップするファイルリストＬ２を生成する。ＮＡＳ１は、メモリ１２またはディスク装置３、４に設けた所定の記憶域にファイルリストＬ１、Ｌ２を格納する。これらバックアップ対象のファイルリストＬ１、Ｌ２は、それぞれ、ファイル名、ディレクトリパス及びファイルサイズを含むレコードから構成されている。
【００５５】
Ｓ４では、ファイルリストＬ１に記載されたファイル数をカウントするとともに、このファイル数を共有論理ディスク７のカウンタＡにセットする。同様に、ファイルリストＬ２に記載されたファイル数をカウントするとともに、このファイル数を共有論理ディスク７のカウンタＢにセットする。
【００５６】
Ｓ５では、上記Ｓ３で生成したファイルリストＬ１、Ｌ２をＮＡＳ２へ送信するとともに、Ｓ６ではＮＡＳ２に対して、ファイルリストＬ２に基づくバックアップの開始要求と、バックアップを行うバックアップ装置９のアドレスを指令する。
【００５７】
Ｓ７では、ＮＡＳ２の障害を検知するバックアップ進捗監視処理１０４、を新たなスレッドとして起動する。
【００５８】
Ｓ８以降ではＮＡＳ１のバックアップを開始する。
【００５９】
Ｓ８において、まず、ＮＡＳ１の性能を測定するためにバックアップの開始時点である現在時刻Ｔ１を取得して記憶する。
【００６０】
次に、Ｓ９では、上記Ｓ３で作成したファイルリストＬ１から、１レコードを読み込んで、バックアップ対象のファイル名、ディレクトリパス及びファイルサイズを取得する。
【００６１】
次に、Ｓ１０でファイルリストＬ１がＥＯＦ（ＥＮＤ  ＯＦ  ＦＩＬＥ）でなければ、Ｓ１１に進んで、バックアップ装置９に対して取得したディレクトリパスのファイル名を転送し、バックアップを要求する。
【００６２】
Ｓ１２では、Ｓ１１で転送を終了したファイルサイズをメモリ１２の所定の領域に加算する。
【００６３】
次に、Ｓ１３では、共有論理ディスク７のカウンタＡを減算する。つまり、Ｓ１１でバックアップを要求したファイル数を減算しておく。後述するように、ＮＡＳ２は共有論理ディスク７のカウンタＡを参照することで、ＮＡＳ１のバックアップの進捗状況を把握でき、ＮＡＳ２が保持するファイルリストＬ１、Ｌ２とカウンタＡから、ＮＡＳ１がバックアップするべきファイルを特定することができる。
【００６４】
以上のＳ９〜Ｓ１３を、ファイルリストＬ１の最後まで行ってバックアップが完了すると、Ｓ１０からＳ１４に進み、バックアップが完了した現在の時刻Ｔ２を取得する。
【００６５】
Ｓ１５では、上記Ｓ８とＳ１４で取得したバックアップの開始時刻Ｔ１と、バックアップの完了時刻Ｔ２の差からバックアップに要した処理時間ΔＴ１を求めるととともに、上記Ｓ１２で積算した総ファイルサイズ及び、バックアップが完了した日時を含むログ情報ＬｏｇＡを共有論理ディスク７に出力してＮＡＳ１のバックアップを終了する。同時に、上記Ｓ７で起動したＮＡＳ２を監視するスレッド（バックアップ進捗監視処理１０４）を終了させる。また、所定の領域に格納したファイルサイズをリセットし、次回の処理に備える。
【００６６】
なお、ログ情報ＬｏｇＡは、例えば、図８で示すように、バックアップ完了日時、処理時間ΔＴ１、ファイルサイズを１レコードとするファイルで構成される。
【００６７】
＜ＮＡＳ２のバックアップ要求受付処理２０２＞
図４は、ＮＡＳ２のコントローラ２０で実行されるバックアップ要求受付処理２０２の一例を示すフローチャートで、コントローラ２０がＮＡＳ１からバックアップ要求を受けたときに実行されるものである。
【００６８】
ＮＡＳ２のコントローラ２０は、ＮＡＳ１のコントローラ１０からファイルリストＬ１、Ｌ２とバックアップ要求を受け付けると、ファイルリストＬ１、Ｌ２をメモリ２２またはディスク装置５、６の所定の領域に格納する。
【００６９】
まず、Ｓ２１では、ＮＡＳ１の障害を検知するバックアップ進捗監視処理２０４（後述）、を新たなスレッドとして起動する。
【００７０】
次に、Ｓ２２において、ＮＡＳ２の性能を測定するためにバックアップ開始時点である現在時刻Ｔ１を取得して記憶する。
【００７１】
Ｓ２３では、ＮＡＳ１から受信したファイルリストＬ２から、１レコードを読み込んで、バックアップ対象のファイル名、ディレクトリパス及びファイルサイズを取得する。
【００７２】
次に、Ｓ２４でファイルリストＬ２がＥＯＦ（ＥＮＤ  ＯＦ  ＦＩＬＥ）でなければ、Ｓ２５に進んで、Ｓ２３で取得したファイル名及びディレクトリパスに基づいて、ＮＡＳ１のディスク装置３から該当するファイルを読み込む。
【００７３】
Ｓ２６では、バックアップ装置９に対して読み込んだファイルを転送し、バックアップを要求する。
【００７４】
Ｓ２７では、Ｓ２６で転送を終了したファイルサイズをメモリ２２の所定の領域に加算する。
【００７５】
次に、Ｓ２８３では、共有論理ディスク７のカウンタＢを減算する。つまり、Ｓ２６でバックアップを要求したファイル数を減算しておく。後述するように、ＮＡＳ１は共有論理ディスク７のカウンタＢを参照することで、ＮＡＳ２のバックアップの進捗状況を把握でき、ＮＡＳ１が保持するファイルリストＬ１、Ｌ２とカウンタＢから、ＮＡＳ２がバックアップするべきファイルを特定することができる。
【００７６】
以上のＳ２３〜Ｓ２８を、ファイルリストＬ２の最後まで行ってバックアップが完了すると、Ｓ２４からＳ２９に進み、バックアップが完了した現在の時刻Ｔ２を取得する。
【００７７】
Ｓ３０では、上記Ｓ２２とＳ２９で取得したバックアップの開始時刻Ｔ１と、バックアップの完了時刻Ｔ２の差からバックアップに要した処理時間ΔＴ２を求めるととともに、上記Ｓ２７で積算した総ファイルサイズ及び、バックアップが完了した日時を含むログ情報ＬｏｇＢを共有論理ディスク７に出力してＮＡＳ２のバックアップを終了する。同時に、上記Ｓ２１で起動したＮＡＳ１を監視するスレッド（バックアップ進捗監視処理２０４）を終了させる。また、所定の領域に格納したファイルサイズをリセットし、次回の処理に備える。
【００７８】
なお、ログ情報ＬｏｇＢは、上記ログ情報ＬｏｇＡと同様に、例えば、図８で示すように、バックアップ完了日時、処理時間ΔＴ２、ファイルサイズを１レコードとするファイルで構成される。
【００７９】
＜バックアップ対象リスト出力処理＞
次に、上記図３のＳ３で行われるバックアップ対象リスト出力処理について、図５のサブルーチンを参照しながら説明する。
【００８０】
Ｓ４１では、ＮＡＳ１のコントローラ１０が共有論理ディスク７から前回のログ情報ＬｏｇＡとログ情報ＬｏｇＢを取得する。
【００８１】
Ｓ４２では、ログ情報ＬｏｇＡ、ＢからＮＡＳ１、２がバックアップに要した処理時間ΔＴ１、ΔＴ２と総ファイルサイズから単位時間あたりのバックアップ速度（ＭＢ／secまたはGB/min）をそれぞれ算出し、ＮＡＳ１のバックアップ速度をＶ１として出力し、ＮＡＳ２のバックアップ速度をＶ２として出力する。
【００８２】
次に、Ｓ４３では、ＮＡＳ１、２のバックアップ速度Ｖ１、Ｖ２から、ＮＡＳ１がバックアップするファイルサイズの按分比ｒ１を、
按分比ｒ１＝Ｖ１／（Ｖ１＋Ｖ２）
より算出する。
【００８３】
次に、Ｓ４４では、ＮＡＳ２がバックアップするファイルサイズの按分比ｒ２を、
按分比ｒ２＝１−ｒ１
または
按分比ｒ１＝Ｖ１／（Ｖ１＋Ｖ２）
より算出する。
【００８４】
Ｓ４５では、管理用クライアントコンピュータ８から受け付けたバックアップ要求のディレクトリパスまたはファイルを取得し、ディスク装置３のディレクトリパス下の全ファイルを検索し、各ファイルのファイルサイズからバックアップする全ファイル容量を算出する。
【００８５】
Ｓ４６では、バックアップ対象のディレクトリパスで取得したファイルリストについて、ファイル容量の大きい順でソートを行い、Ｓ４７にてテンポラリファイルリストＬｔを作成する。ここで、テンポラリファイルリストＬｔは図９（Ａ）のようになる。
【００８６】
次に、Ｓ４８では、作成したテンポラリファイルリストＬｔの容量の上位から、全容量×ＮＡＳ１の按分比ｒ１に達するまで、ファイルを抽出して、Ｓ４９では抽出したファイル名及びサイズを、図９（Ｂ）で示すように、ＮＡＳ１のバックアップ対象であるファイルリストＬ１として作成する。
【００８７】
次に、Ｓ５０ではテンポラリファイルリストＬｔからＳ４８で抽出したファイルを差し引いたものを、図９（Ｃ）で示すように、ＮＡＳ２のバックアップ対象であるファイルリストＬ２として作成する。
【００８８】
以上のサブルーチンにより、前回のバックアップ処理におけるログ情報（バックアップ処理にかかった時間、バックアップ容量）から各ＮＡＳ１、２の性能情報（バックアップ速度）を算出し、この性能情報を用いて各ＮＡＳのバックアップ処理時間が均等になるようにバックアップ対象ファイルを按分することで、ＮＡＳ１とＮＡＳ２のバックアップに要する時間が極端にかけ離れるのを防ぎ、全体のバックアップ時間が短くなるようにＮＡＳ１とＮＡＳ２に割り当てるバックアップ容量を設定できる。なお、本発明では、複数のＮＡＳが並列的にバックアップを実行するので、全体のバックアップ時間は、最も処理時間の長いＮＡＳの処理時間となる。
【００８９】
また、直近のＮＡＳの性能情報を取得することで、各ＮＡＳのディスク装置の状態（フラグメンテーションの発生状態など）に応じた按分比を決定することができ、全体のバックアップ時間を最短にすることができる。
【００９０】
＜ＮＡＳ１のバックアップ進捗監視処理１０４＞
次に、上記図３のＳ７で起動されるＮＡＳ２に対するバックアップ進捗監視の処理について図６のフローチャートを参照しながら詳述する。
【００９１】
まず、Ｓ５１では共有論理ディスク７からカウンタＢの値を変数ＣＮＴ１に読み込んで、ＮＡＳ２がバックアップすべき残りのファイル数を取得する。
【００９２】
次に、Ｓ５２では、カウンタＢの変化を監視するため現在時刻をＴｉｍｅ１として取り込む。
【００９３】
Ｓ５３では、共有論理ディスク７からカウンタＢの値を変数ＣＮＴ２に読み込み、Ｓ５４では現在時刻をＴｉｍｅ２として取り込む。
【００９４】
Ｓ５５では、上記Ｓ５３でセットした変数ＣＮＴ２の値が０であるかを判定し、０であればＮＡＳ２のカウンタＢは０となって、バックアップすべきファイル数＝０であるので、Ｓ６１に進んでＮＡＳ２のバックアップが完了したことを判定して処理を終了する。
【００９５】
一方、変数ＣＮＴ２の値が０でない場合には、Ｓ５６に進んで変数ＣＮＴ１と変数ＣＮＴ２が同値であるかを判定する。同値でなければＮＡＳ２のバックアップの進行に応じてカウンタＢが減算されているので、ＮＡＳ２は正常に稼動していると判定してＳ５１に戻る。
【００９６】
一方、変数ＣＮＴ１＝変数ＣＮＴ２の場合は、ＮＡＳ２のバックアップが進行していない可能性があるので、Ｓ５７に進んで、Ｓ５４で取得した時刻Ｔｉｍｅ２とＳ５１で取得した時刻Ｔｉｍｅ１の差分Ｔｉｍｅ３を求め、Ｓ５８にて差分Ｔｉｍｅ３が予め設定した時間Ｔｄａｗｎを超えたか否かを判定する。
【００９７】
このＳ５８の判定で、差分Ｔｉｍｅ１が所定時間Ｔｄａｗｎを超えていなければ、ＮＡＳ２は正常にｉ稼動している可能性（処理が重いなど）があるので、Ｓ５３へ戻って再度カウンタＢと時刻Ｔｉｍｅ２の取得を行う。
【００９８】
一方、Ｓ５８の判定でカウンタＢに変化がない時間Ｔｉｍｅ３が所定時間Ｔｄａｗｎを越えた場合には、Ｓ５９に進んでＮＡＳ２に障害が発生したと判定する。
【００９９】
そして、Ｓ６０に進んでＮＡＳ２に代わってＮＡＳ１がファイルリストＬ２の内容を、カウンタＢの値からバックアップするように設定して処理を終了する。なお、この設定は、フラグなどをセットしておき、上記図３のバックアップ要求受付処理が終了した時点等で、このフラグをチェックして、フラグがＯＮであればコントローラ１０が保持しているファイルリストＬ２についてカウンタＢの値からバックアップを再開すればよい。
【０１００】
上記図６の処理により、ＮＡＳ１のコントローラ１０は、共有論理ディスク７のカウンタＢの変化を監視することで、ＮＡＳ２のバックアップが完了するまで障害発生を検知できる。そして、バックアップ対象のファイルがＮＡＳ１の制御下にあるディスク装置３の場合、ＮＡＳ２に障害が発生しても、ＮＡＳ１はＮＡＳ２のフェイルオーバを待つことなく、自らの制御下にあるディスク装置３の内容をバックアップすることができる。
【０１０１】
＜ＮＡＳ２のバックアップ進捗監視処理２０４＞
次に、上記図４のＳ２１で起動されるＮＡＳ１に対するバックアップ進捗監視の処理について図７のフローチャートを参照しながら詳述する。
【０１０２】
まず、Ｓ７１では共有論理ディスク７からカウンタＡの値を変数ＣＮＴ１に読み込んで、ＮＡＳ１がバックアップすべき残りのファイル数を取得する。
【０１０３】
次に、Ｓ７２では、カウンタＡの変化を監視するため現在時刻をＴｉｍｅ１として取り込む。
【０１０４】
Ｓ７３では、共有論理ディスク７からカウンタＡの値を変数ＣＮＴ２に読み込み、Ｓ７４では現在時刻をＴｉｍｅ２として取り込む。
【０１０５】
Ｓ７５では、上記Ｓ７３でセットした変数ＣＮＴ２の値が０であるかを判定し、０であればＮＡＳ１のカウンタＡは０となって、バックアップすべきファイル数＝０であるので、Ｓ８２に進んでＮＡＳ１のバックアップが完了したことを判定して処理を終了する。
【０１０６】
一方、変数ＣＮＴ２の値が０でない場合には、Ｓ７６に進んで変数ＣＮＴ１と変数ＣＮＴ２が同値であるかを判定する。同値でなければＮＡＳ１のバックアップの進行に応じてカウンタＡが減算されているので、ＮＡＳ１は正常に稼動していると判定してＳ７１に戻る。
【０１０７】
一方、変数ＣＮＴ１＝変数ＣＮＴ２の場合は、ＮＡＳ１のバックアップが進行していない可能性があるので、Ｓ７７に進んで、Ｓ７４で取得した時刻Ｔｉｍｅ２とＳ７１で取得した時刻Ｔｉｍｅ１の差分Ｔｉｍｅ３を求め、Ｓ７８にて差分Ｔｉｍｅ３が予め設定した時間Ｔｄａｗｎを超えたか否かを判定する。
【０１０８】
このＳ７８の判定で、差分Ｔｉｍｅ１が所定時間Ｔｄａｗｎを超えていなければ、ＮＡＳ１が正常に稼動している可能性（処理が重いなど）があるので、Ｓ７３へ戻って再度カウンタＡと時刻Ｔｉｍｅ２の取得を行う。
【０１０９】
一方、Ｓ７８の判定でカウンタＡに変化がない時間Ｔｉｍｅ３が所定時間Ｔｄａｗｎを越えた場合には、Ｓ７９に進んでＮＡＳ１に障害が発生したと判定する。
【０１１０】
そして、Ｓ８０に進んでＮＡＳ１のフェイルオーバ処理が終了するのを監視して、この処理が完了した後にＳ８１へ進む。
【０１１１】
ＮＡＳ２はＮＡＳ１のクライアントとしてＮＡＳ１のディスク装置３にアクセスしているため、ＮＡＳ１のフェイルオーバ処理が終了するまでは、ディスク装置３をＮＡＳ２にマウントすることができない。このため、ＮＡＳ１のフェイルオーバ処理が終了するのを待つ必要がある。なお、フェイルオーバ処理の監視は、上記したようにハートビートの検出などによりコントローラ２０がＮＡＳ１に問い合わせるか、ログ情報などを参照してＮＡＳ１のフェイルオーバ処理１０５が完了したか否かを検出する。
【０１１２】
Ｓ８１では、ＮＡＳ１のディスク装置３をＮＡＳ２にマウントするとともに、ＮＡＳ１に代わってＮＡＳ２がファイルリストＬ１の内容を、カウンタＡの値からバックアップするように設定して処理を終了する。なお、この設定は、フラグなどをセットしておき、上記図４のバックアップ要求受付処理が終了した時点等で、このフラグをチェックして、フラグがＯＮであればコントローラ２０が保持しているＮＡＳ１のファイルリストＬ１について、カウンタＡの値からバックアップを再開すればよい。
【０１１３】
上記図７の処理により、ＮＡＳ２のコントローラ２０は、ＮＡＳ１のバックアップが完了するまで監視を継続して、共有論理ディスク７のカウンタＢに変化がなくなって所定時間Ｔｄａｗｎを経過すると、ＮＡＳ１に障害が発生したと判定し、ＮＡＳ１に代わってＮＡＳ２でファイルリストＬ１のバックアップを継続することができる。
【０１１４】
上記ＮＡＳ１とＮＡＳ２による並列的なバックアップの全体的な作用について、図１０を参照しながら説明する。
【０１１５】
管理用クライアントコンピュータ８からＮＡＳクラスタ１Ａに対してバックアップ要求があると、ＮＡＳクラスタ１ＡのホストであるＮＡＳ１が要求を受け付ける（Ｓ１００）。
【０１１６】
ＮＡＳ１は、上記図５に示した手順で、ＮＡＳ１とＮＡＳ２の性能に応じて、ＮＡＳ１がバックアップするファイルリストＬ１と、ＮＡＳ２がバックアップするファイルリストＬ２を作成し、ＮＡＳ２にも送信する（Ｓ１０１）。そして、各ファイルリストＬ１、Ｌ２のファイル数に対応したカウンタＡ、Ｂを共有論理ディスク７にセットする（Ｓ１０２）。
【０１１７】
ＮＡＳ１は、ファイルリストＬ１に従ってバックアップ装置９へバックアップを行い（Ｓ１０３）、バックアップしたファイル数を順次カウンタＡから減算する（Ｓ１０３’）。以降、ＮＡＳ１は、Ｓ１０３とＳ１０３’を繰り返してバックアップを行う。
【０１１８】
ＮＡＳ２は、ファイルリストＬ２に従ってバックアップ装置９へバックアップを行い（Ｓ１０４）、バックアップしたファイル数を順次カウンタＢから減算する（Ｓ１０４’）。以降、ＮＡＳ２は、Ｓ１０４とＳ１０４’を繰り返してバックアップを行う。
【０１１９】
したがって、バックアップ対象のディスク装置３のファイルは、２つのＮＡＳ１、２によって並列的にバックアップが行われるので、極めて高速にバックアップを実行することが可能となる。
【０１２０】
この間、ＮＡＳ１は、共有論理ディスク７のカウンタＢを参照し、ＮＡＳ２の障害を検知する（Ｓ１０５）。同様にＮＡＳ２は共有論理ディスク７のカウンタＡを参照して、ＮＡＳ１の障害を検知する（Ｓ１０６）。
【０１２１】
ここで、ＮＡＳ２がＮＡＳ１の障害を検知した場合（Ｓ１０７）、ＮＡＳ２はフェイルオーバ処理が完了するのを待って、ＮＡＳ１のバックアップ作業を引き継ぐ。
【０１２２】
すなわち、Ｓ１０１で指定されたファイルリストＬ２のバックアップ処理が完了すると（Ｓ１０８）、ＮＡＳ２は、ＮＡＳ１のディスク装置３をマウントして、ファイルリストＬ１のファイルから、カウンタＡの値に対応するファイルよりバックアップを再開する（Ｓ１０９）。こうして、ＮＡＳ１に障害が発生した場合には、フェイルオーバ処理の後にＮＡＳ２がＮＡＳ１のバックアップ処理を引き継ぐことができ、この処理が完了すると（Ｓ１１０）、ＮＡＳ２はＮＡＳ１に代わって管理用クライアントコンピュータ８にバックアップが完了したことを通知する（Ｓ１１１）。なお、この通知にＮＡＳ１の障害発生を含めても良い。
【０１２３】
以上のように、本発明ではＮＡＳ１のディスク装置３の内容を、ＮＡＳ１とＮＡＳ２が並列的にバックアップを行うことで、ＮＡＳ１単体のバックアップに比して高速なバックアップ処理を行うことが可能になる。そして、いずれか一方に障害が発生しても、共有論理ディスク７のカウンタＡ、Ｂを相互に参照することで、一方の障害発生を確実に検知することができる。
【０１２４】
そして、ＮＡＳ１、２はともにバックアップに必要なファイルリストＬ１、Ｌ２を保持し、実行した結果は共有論理ディスク７のカウンタに書き込んであるので、一方に障害が発生したとしても、他方が確実にバックアップ作業を引き継ぐことが可能となって、信頼性を確保しながらバックアップ速度の大幅な向上を図ることができるのである。
【０１２５】
また、ＮＡＳ１とＮＡＳ２のバックアップ対象ファイルの割り当ては、ＮＡＳ１とＮＡＳ２の性能（バックアップ速度）に応じて決定するようにしたので、２つのＮＡＳのバックアップに要する時間をほぼ等しくすることが可能となり、全体のバックアップ時間を最短にすることが可能となるのである。
【０１２６】
＜第２の実施形態＞
図１１は、第２の実施形態を示し、前記第１実施形態のＮＡＳクラスタ１Ａを、ＮＡＳ１、ＮＡＳ２及びＮＡＳ３０の３つから構成した場合のタイムチャートを示す。
【０１２７】
ＮＡＳ３０の構成はＮＡＳ２と同様であり、共有論理ディスク７には、ＮＡＳ３０のカウンタＣとログ情報ＬｏｇＣが前記第１実施形態と同様に格納される。
【０１２８】
ＮＡＳ１は管理用クライアントコンピュータ８からバックアップ要求を受けると、共有論理ディスク７上のログ情報ＬｏｇＡ〜Ｃを読み込んで、ＮＡＳ１、ＮＡＳ２及びＮＡＳ３０の性能に応じてバックアップ速度のファイルリストＬ１、Ｌ２、Ｌ３を作成し、ＮＡＳ２とＮＡＳ３０に配布する（Ｓ１０１’）。これに伴って、各ファイルリストＬ１、Ｌ２、Ｌ３のファイル数に応じて、共有論理ディスク７にカウンタＡ〜Ｃをセットする（Ｓ１０２’）。
【０１２９】
ＮＡＳ１は、ファイルリストＬ１に従ってバックアップ装置９へバックアップを行い（Ｓ１０３）、バックアップしたファイル数を順次カウンタＡから減算する（Ｓ１０３’）。以降、ＮＡＳ１は、Ｓ１０３とＳ１０３’を繰り返してバックアップを行う。
【０１３０】
ＮＡＳ２は、ファイルリストＬ２に従ってバックアップ装置９へバックアップを行い（Ｓ１０４）、バックアップしたファイル数を順次カウンタＢから減算する（Ｓ１０４’）。以降、ＮＡＳ２は、Ｓ１０４とＳ１０４’を繰り返してバックアップを行う。
【０１３１】
ＮＡＳ３０は、ファイルリストＬ３に従ってバックアップ装置９へバックアップを行い（Ｓ１２３）、バックアップしたファイル数を順次カウンタＣから減算する（Ｓ１２３’）。以降、ＮＡＳ３０は、Ｓ１２３とＳ１２３’を繰り返してバックアップを行う。
【０１３２】
したがって、バックアップ対象のディスク装置３のファイルは、３つのＮＡＳ１、２、３０によって並列的にバックアップが行われるので、さらに高速にバックアップを実行することが可能となる。
【０１３３】
この間、ＮＡＳ１は、共有論理ディスク７のカウンタＢ、Ｃを参照し、ＮＡＳ２、ＮＡＳ３０の障害を検知する（Ｓ１０５’）。同様にＮＡＳ２は共有論理ディスク７のカウンタＡ、Ｃを参照して、ＮＡＳ１とＮＡＳ３０の障害を検知する（Ｓ１０６’）。同様にＮＡＳ３０は共有論理ディスク７のカウンタＡ、Ｂを参照して、ＮＡＳ１とＮＡＳ２の障害を検知する（Ｓ１２４）。
【０１３４】
ここで、ＮＡＳ２がＮＡＳ１の障害を検知した場合（Ｓ１０７）、ＮＡＳ２はフェイルオーバ処理が完了するのを待って、ＮＡＳ１のバックアップ作業を引き継ぐ。ここでは、ＮＡＳ１に代わって、ＮＡＳ２がホストとなり、ＮＡＳ３０がＮＡＳ２のクライアントに変更されたものとする。
【０１３５】
このとき、障害が発生したＮＡＳ１のバックアップ作業を、ＮＡＳ２とＮＡＳ３０で引き継ぐため、カウンタＡとファイルリストＬ１に基づいて、ＮＡＳ２は残りのファイルリストＬ１を、ＮＡＳ２とＮＡＳ３０の性能に応じて上記図５と同様の処理にて再配分し、ファイルリストＬ１ａをＮＡＳ２の処理として生成し、ファイルリストＬ１ｂをＮＡＳ３０の処理として生成し、これら新たなファイルリストＬ１ａ、Ｌ１ｂをＮＡＳ３０に配布する（Ｓ１２５）。このとき、新たなファイルリストＬ１ａ、Ｌ１ｂに対応するカウンタＡ１、Ａ２を共有論理ディスク７に設定し、ＮＡＳ２とＮＡＳ３０は新たなカウンタによりファイルリストＬ１ａ、Ｌ１ｂのバックアップ処理中の障害検出を行う（Ｓ１２５’）。
【０１３６】
すなわち、ＮＡＳ２は、Ｓ１０１で指定されたファイルリストＬ２のバックアップ処理が完了すると（Ｓ１０８）、ＮＡＳ２は、ファイルリストＬ１ａのファイルからバックアップを再開する（Ｓ１０９）。
【０１３７】
同様に、ＮＡＳ３０は、Ｓ１０１で指定されたファイルリストＬ３のバックアップ処理が完了すると（Ｓ１２６）、ＮＡＳ３０は、ファイルリストＬ１ｂのファイルからバックアップを再開する（Ｓ１２７）。
【０１３８】
この処理においても、上記と同様にバックアップ装置９へバックアップ要求を行う度に、ＮＡＳ２はカウンタＡ１をバックアップしたファイル数ずつ減算し、ＮＡＳ３０はカウンタＡ２をバックアップしたファイル数ずつ減算していく。
【０１３９】
ＮＡＳ１の残りのバックアップを処理している期間は、ＮＡＳ２は共有論理ディスク７のカウンタＡ２を参照してＮＡＳ３０の障害を監視し（Ｓ１２５’）、ＮＡＳ３０は共有論理ディスク７のカウンタＡ１を参照してＮＡＳ２の障害を監視し（Ｓ１２６’）。
【０１４０】
Ｓ１１０でＮＡＳ２がファイルリストＬ１ａに関するバックアップが完了し、カウンタＡ１を減算して０にする。同様に、Ｓ１２８では、ＮＡＳ３０がファイルリストＬ１ｂに関するバックアップが完了し、カウンタＡ２を減算して０にする。
【０１４１】
ＮＡＳ２はカウンタＡ２を監視しているので、カウンタＡ２が０になったことからＮＡＳ３０のバックアップが完了したことを検知し（Ｓ１２９）、管理用クライアントコンピュータ８にバックアップが完了したことをＮＡＳ１に代わって通知する（Ｓ１１１）。
【０１４２】
こうして、一つのＮＡＳのディスク装置３のファイルを、多数のＮＡＳで並列的にバックアップを行うことで、全体的なバックアップ速度を飛躍的に向上させることができる。加えて、各ＮＡＳは共有論理ディスク７のカウンタを相互に参照して、互いの障害を検知し、障害が発生した場合には残りのファイルについて再配分するので、一つのＮＡＳに障害が発生した場合であっても、単一のＮＡＳでバックアップを行う場合に比して高速にバックアップを実行することが可能となるのである。
【０１４３】
このように、ＮＡＳクラスタ１Ａを多数のＮＡＳで構成した場合には、一つのＮＡＳに障害が発生しても、残りの複数のＮＡＳで並列的にバックアップを行うことができるので、速度の向上と信頼性の確保を両立できる。
【０１４４】
＜変形例＞
上記各実施形態において、バックアップ装置９をランダムアクセス可能な光ディスク装置で構成することにより、複数のＮＡＳからの書き込み要求に応答することができ、テープ装置などのシーケンシャルに格納する装置に比して、バックアップ速度を向上させることが可能となる。
【０１４５】
上記実施形態においては、管理用クライアントコンピュータ８から要求のあったバックアップ対象のファイルをＮＡＳ１とＮＡＳ２に振り分けるのに際し、ファイルサイズの大きい順にソートを行って、ＮＡＳ１の按分比ｒ１×全ファイル容量になるまでのファイルを、ＮＡＳ１がバックアップすべきファイルリストＬ１に抽出したが、テンポラリファイルリストＬｔの容量の上位から、ＮＡＳ１とＮＡＳ２へ交互に振り分けるようにしても良い。あるいは、ＮＡＳが３つの場合では、ＮＡＳ１、ＮＡＳ２、ＮＡＳ３０の順で、順番に振り分けるようにしても良い。
【０１４６】
また、上記実施形態においては、共有論理ディスク７にファイルシステムを構築し、カウンタＡ〜Ｃ及びログ情報ＬｏｇＡ〜Ｃをファイルとして格納しても良いし、ブロック単位のアクセスとして、カウンタＡ〜Ｃ及びログ情報ＬｏｇＡ〜Ｃを所定のブロックに格納しても良い。
【０１４７】
また、上記実施形態においては、相互に障害発生を監視する際に、周期的にカウンタＡ〜Ｃにアクセスする例を示したが、各ＮＡＳのバックアップ速度とバックアップ対象の総ファイルサイズから、バックアップ完了予定時刻を推定し、この推定した時刻にカウンタＡ〜Ｃを参照するようにしても良い。この場合、複数のＮＡＳが頻繁に共有論理ディスク７にアクセスするのを防いで、各ＮＡＳの処理負荷を低減することができ、負荷を低減した分だけバックアップ速度の向上を図ることができる。
【０１４８】
また、上記実施形態においては、前回のログ情報ＬｏｇＡ〜Ｃ相に基づいて各ＮＡＳのバックアップ速度（性能情報）を求めたが、ＮＡＳに接続された各ディスク装置の性能及びコントローラの処理速度などに基づいて、各ＮＡＳの性能情報を予め設定しておき、この性能情報に基づいてバックアップ対象のファイルを按分しても良い。
【０１４９】
また、上記実施形態においては、各ＮＡＳがバックアップすべきファイルを指示するファイルリストＬ１、Ｌ２を保持する一例を示したが、共有論理ディスク７にこれらファイルリストＬ１、Ｌ２を格納し、各ＮＡＳが共有論理ディスク７から該当するファイルリストを読み込むようにしても良い。
【図面の簡単な説明】
【０１５０】
【図１】システムの全体的な構成を示すブロック図。
【図２】各ＮＡＳのコントローラで実行されるソフトウェア構成を示すロック図。
【図３】ＮＡＳ１のコントローラで実行されるバックアップ要求処理の一例を示すフローチャート。
【図４】ＮＡＳ２のコントローラで実行されるバックアップ要求処理の一例を示すフローチャート。
【図５】ＮＡＳ１のバックアップ要求処理で実行されるバックアップ対象リスト生成処理のサブルーチンを示すフローチャート。
【図６】ＮＡＳ１のコントローラで実行されるＮＡＳ２の進捗監視処理の一例を示すフローチャート。
【図７】ＮＡＳ２のコントローラで実行されるＮＡＳ１の進捗監視処理の一例を示すフローチャート。
【図８】ログ情報の一例を示す説明図。
【図９】テンポラリファイルリストからバックアップ対象リストを生成する説明図で、（Ａ）はテンポラリファイルリストを、（Ｂ）はＮＡＳ１のファイルリストＬ１を、（Ｃ）はＮＡＳ２のファイルリストＬ２を示す。
【図１０】並列バックアップとＮＡＳ１に障害が発生した場合の引き継ぎ処理を示すタイムチャート。
【図１１】第２の実施形態を示し、３つのＮＡＳによる並列バックアップとＮＡＳ１に障害が発生した場合の引き継ぎ処理を示すタイムチャート。
【符号の説明】
【０１５１】
１、２  ＮＡＳ
３、４、５、６  ディスク装置
７  共有論理ディスク
８  管理用クライアントコンピュータ
９  バックアップ装置
１０、２０  コントローラ
【図１】
2005275893.tif 000003
【図２】
2005275893.tif 000004
【図３】
2005275893.tif 000005
【図４】
2005275893.tif 000006
【図５】
2005275893.tif 000007
【図６】
2005275893.tif 000008
【図７】
2005275893.tif 000009
【図８】
2005275893.tif 000010
【図９】
2005275893.tif 000011
【図１０】
2005275893.tif 000012
【図１１】
2005275893.tif 000013