(57)【特許請求の範囲】
【請求項１】
ネットワークを介して計算機に接続された１以上の記憶装置及び予備の記憶装置におけるファイルレベルコピー方法は、
それぞれの記憶装置は、
ファイル単位又はディレクトリ単位でリモートコピー対象の記憶装置情報及び格納場所を示すパス情報と、ファイル単位又はディレクトリ単位にリモートコピー先を指定するための記憶装置情報及び格納場所を示すパス情報と、前記リモートコピー先に対するリモートコピーが失敗したときのために予備のリモートコピー先を指定する情報と、を保持し、
前記計算機からファイルに対するライト要求を受信すると、ライト処理を実行し、前記リモートコピー対象の記憶装置情報及び前記パス情報に基づいて、ライト対象のファイルがリモートコピー対象であるかを判定し、前記ライト対象のファイルがリモートコピー対象である場合には、前記ネットワーク経由でアクセス可能なリモートコピー先の記憶装置に対して前記ファイル単位又はディレクトリ単位でリモートコピーを行い、
前記リモートコピー先に対するリモートコピーが失敗したときには、前記リモートコピー先でエラーとなったファイルを消去し、前記予備のリモートコピー先を指定する情報に基づいて、前記ネットワーク経由でアクセス可能なリモートコピー先の前記予備の記憶装置に対して前記ファイル単位又はディレクトリ単位でリモートコピーを行う、ことを特徴とする記憶装置のファイルレベルコピー方法。
【請求項２】
前記リモートコピー元に関する情報が登録されるログ情報を前記予備の記憶装置に保持し、
前記リモートコピー先に対するリモートコピーが失敗し前記予備の記憶装置に前記ライト対象のファイルをコピーしたときには、前記ログ情報として前記ファイル単位又はディレクトリ単位で前記リモートコピー元に関する情報が前記予備の記憶装置に登録される、ことを特徴とする請求項１記載の記憶装置のファイルレベルコピー方法。
【請求項３】
ネットワークを介して計算機に接続された１以上の記憶装置及び予備の記憶装置からなるコンピュータシステムであって、
それぞれの記憶装置は、
ファイル単位又はディレクトリ単位でリモートコピー対象の記憶装置情報及び格納場所を示すパス情報と、ファイル単位又はディレクトリ単位にリモートコピー先を指定するための記憶装置情報及び格納場所を示すパス情報と、前記リモートコピー先に対するリモートコピーが失敗したときのための予備のリモートコピー先を指定する情報と、を保持し、
前記計算機からファイルに対するライト要求を受信すると、ライト処理を実行し、前記リモートコピー対象の記憶装置情報及び前記パス情報に基づいて、ライト対象のファイルがリモートコピー対象であるかを判定し、前記ライト対象のファイルがリモートコピー対象である場合には、前記ネットワーク経由でアクセス可能なリモートコピー先の記憶装置に対して前記ファイル単位又はディレクトリ単位でリモートコピーを行い、
前記リモートコピー先に対するリモートコピーが失敗したときには、前記リモートコピー先でエラーとなったファイルを消去し、前記予備のリモートコピー先を指定する情報に基づいて、前記ネットワーク経由でアクセス可能なリモートコピー先の前記予備の記憶装置に対して前記ファイル単位又はディレクトリ単位でリモートコピーを行う、ことを特徴とするコンピュータシステム。
【請求項４】
前記予備の記憶装置は、
前記リモートコピー元に関する情報が登録されるログ情報を保持し、
前記リモートコピー先に対するリモートコピーが失敗し当該予備の記憶装置に前記ライト対象のファイルをコピーしたときには、前記ログ情報として前記ファイル単位又はディレクトリ単位で前記リモートコピー元に関する情報を登録する、ことを特徴とする請求項３記載のコンピュータシステム。
【請求項５】
少なくとも二つのボリュームに別々に格納されるファイルのリモートコピー先を、同一ボリュームに設定することを特徴とする請求項３記載のコンピュータシステム。
【請求項６】
同一ボリュームに格納される二つのファイルのリモートコピー先を、それぞれ別のボリュームに設定することを特徴とする請求項３記載のコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、リモートコピーを行う記憶装置システムに関する。特に、ボリューム単位ではなくファイルやディレクトリ単位でリモートコピー対象を指定する記憶装置システムに関する。
【０００２】
【従来の技術】
記憶装置システム間でデータのコピーを行うリモートコピーという技術がある。
【０００３】
リモートコピーとは、物理的に離れた場所にある複数の記憶装置システム間で、ホストコンピュータの介在なしに２重書きを行うものである。リモートコピーでは、第１サイトと第２サイトにそれぞれ配置された記憶装置システムは専用回線、あるいは公衆回線により接続される。また、第１サイトの記憶装置システム上のコピー対象の論理ボリューム（以下、「コピー元論理ボリューム」と記す）と同容量の論理ボリュームが第２サイトの記憶装置システム上に、第１サイトの記憶装置システム上のコピー対象の論理ボリュームとペアの論理ボリューム（以下、「コピー先論理ボリューム」と記す）として形成される。そして、第１サイトのコピー元論理ボリュームのデータが、第２サイトのコピー先論理ボリュームにコピーされる。また、ホストコンピュータから第１サイトのコピー元論理ボリュームのデータが更新された場合、当該更新データは第２サイトの記憶装置システムに転送され、コピー先論理ボリュームにも書き込まれる。このようにリモートコピーの技術では第１サイトと第２サイトにおいて、常に論理ボリュームの２重化状態が保たれる。
【０００４】
このため、地震や洪水などの自然災害、あるいは火災やテロなどの人的災害により第１サイトが使用不能になっても、第２サイトの記憶装置システム上の論理ボリュームを使用して、業務を迅速に再開できる。
【０００５】
リモートコピーに関する従来の技術としては、USP5,742,792、あるいはEMCSRDF(EMC Symmetrix Remote Data Facility),L523.7-J 11/00.1がある。
【０００６】
NAS(Network Attached Storage)はネットワークに繋がりファイルレベルのアクセス要求を処理するストレージである。ブロックレベルのストレージデバイス(SCSI接続のハードディスク等)と異なり、NASはNFS(Network File System)サーバ等のファイルシステムを有しており、ファイルやディレクトリに対するアクセス要求を処理できる。
NASと似た概念にファイルサーバがある。ファイルサーバもNASと同様にネットワークに繋がり、ファイルアクセス要求を処理する。NASがファイルサーバと異なるのは、NASはファイルのI/Oサービスに特化したアプライアンスとしてのストレージであり、I/Oサービスと全く無関係な処理を行わない分、通常のファイルサーバと比較してシステムダウンに強い堅牢なシステムを構築できる。
NASに関しては「日経エレクトロニクス2000.11.6(no.782)号」日経BP社の54、55頁に記述がある。
【０００７】
NFS、NFSサーバに関しては「4.4BSD Operating System」Marshall Kirk McKusick他著、Addison Wesley出版の311-336頁に詳細な説明がある。
【０００８】
【発明が解決しようとする課題】
上記従来技術のリモートコピーの場合、リモートコピーの対象がボリューム単位となっており、ボリューム内に格納されているあまり重要でないファイルまでがリモートコピーの対象となってしまう。その結果、コピーの対象となるデータの量が増し、かつ、コピーに要する時間が増大する。
本発明の目的は、より細かいレベルでリモートコピーの対象を指定する手段を提供することである。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、それぞれの記憶装置は、ファイル単位又はディレクトリ単位でリモートコピー対象の記憶装置情報及び格納場所を示すパス情報と、ファイル単位又はディレクトリ単位にリモートコピー先を指定するための記憶装置情報及び格納場所を示すパス情報と、リモートコピー先に対するリモートコピーが失敗したときのために予備のリモートコピー先を指定する情報と、を保持し、計算機からファイルに対するライト要求を受信すると、ライト処理を実行し、ライト対象のファイルがリモートコピー対象であるかを判定し、ライト対象のファイルがリモートコピー対象である場合には、ネットワーク経由でアクセス可能なリモートコピー先の記憶装置に対してファイル単位又はディレクトリ単位でリモートコピーを行い、リモートコピー先に対するリモートコピーが失敗したときには、リモートコピー先でエラーとなったファイルを消去し、予備のリモートコピー先を指定する情報に基づいて、ネットワーク経由でアクセス可能なリモートコピー先の予備の記憶装置に対してファイル単位又はディレクトリ単位でリモートコピーを行う。こうすることで、ファイル単位又はディレクトリ単位のより細かいリモートコピー指定を実現できる。
【００１０】
【発明の実施の形態】
図１は第1の実施例に対応するコンピュータシステム1000を示す。
【００１１】
コンピュータシステム1000はファイルアクセス要求を発行するホストコンピュータ1010、ホストコンピュータ1010が発行するファイルアクセス要求を処理する複数台のNAS1200であるNASa1210、NASb1220及びNASc1230、それらをつなぐネットワーク1020より構成される。ホストコンピュータ1010、NASa1210、NASb1220及びNASc1230はそれぞれ物理的に数十キロメートル離れた建物に置かれているものとする。そのため、例えばNASa1210の置かれている地域で大きな地震がありNASa1210が使用不可能となっても、残りのホストコンピュータ1010、NASb1220、NASc1230、及びそれらをつなぐネットワーク1020は使用不可能とはならないものとする。
【００１２】
図２はNAS1200の構成図である。NAS1200はホストコンピュータ1010からライトされたファイルを格納し、ホストコンピュータ1010からの要求に従ってファイルアクセスを行う。NAS1200はファイルのデータを実際に格納しているディスク1170と、ホストコンピュータ1010からのファイルアクセス要求を受け付け、ディスク1170に対してファイルのデータの読み書きを行うNASコントローラ1100からなる。
【００１３】
NASコントローラ1100は、ネットワーク1020と接続されるホストインターフェース1120と、ディスク1170とデータのやりとりを行うディスクインターフェース1130、NAS1200を制御するプログラムが入っているROM1140、NAS1200の制御に必要なデータ及び後述するコピー対象テーブル1300を保持し、ディスクキャッシュとしても使用されるRAM1150、データ転送を行うDMA1160、NAS1200の制御プログラムを実行するCPU1110から構成される。NAS1200にはホストコンピュータ1010からのファイルアクセス要求を処理できるようにファイルシステム1190が実装されている。
【００１４】
図３はリモートコピー元となるファイルやディレクトリとリモートコピー先の情報を持つコピー対象テーブル1300を示す。本実施例において、コピー対象テーブル1300はホストコンピュータ1010で作成され、各NAS1200にコピーされるものとする。
【００１５】
コピー対象テーブルエントリ1310はコピー対象NAS1320、コピー対象パス1330、コピー先NAS1340、コピー先パス1350の情報を持つ。意味のある情報を持たない空きエントリの場合、コピー対象NAS1320に値−１が入っている。
【００１６】
図４の例を用いてコピー対象テーブル1300を具体的に説明する。
【００１７】
エントリ番号0はコピー対象NAS1320がNASa1210、コピー対象パス1330が/tako/ika.txt、コピー先NAS1340がNASb1220、コピー先パス1350が/uniとなっている。このエントリは、NASa1210の/tako/ika.txtというファイルはリモートコピーの対象になっており、そのリモートコピー先はNASb1220の/uniというディレクトリである、ということを意味する。
【００１８】
ついで、エントリ番号1はコピー対象NAS1320がNASa1210、コピー対象パス1330が/apple、コピー先NAS1340がNASc1230、コピー先パス1350が/bananaとなっている。これは、NASa1210の/appleあるいはそれ以下のサブディレクトリに格納されているファイルは全てリモートコピーの対象であり、リモートコピー先はNASc1230の/bananaであるということを意味する。例えば、NASa1210の/apple/red/t.cというファイルはNASc1230の/banana/red/t.cにコピーされる。（リモートコピー先は/banana/t.cでもよいが本実施例ではサブディレクトリの構造も含めてコピーするものとする。いずれにしても本発明を適用可能であることは言うまでもない。）
エントリ番号2以降はコピー対象NAS1320に値−１が入っており、これらのエントリは無効（空き）である。
【００１９】
以上より、図４の例ではNASa1210に格納されている/tako/ika.txtというファイルと/apple以下のファイルだけがリモートコピー対象である。
【００２０】
図５はホストコンピュータ1010がライト要求を発行したときにNAS1200で実行されるライト処理5000のフローチャートを示す。
【００２１】
まず、ステップ5010においてホストコンピュータ1010よりネットワーク1020を通じてライト要求とライトするデータを受領し、ステップ5020においてライトデータをディスク1170へライトする。そして、ステップ5030でコピー対象テーブル1300の「対応する」エントリをサーチする。コピー対象NAS1320が自NAS1200を示し、かつ、ライト対象のファイルがコピー対象パス1330の示すファイルそのものか、コピー対象パス1330の示すディレクトリあるいは更にそのサブディレクトリに格納するファイルであれば「対応する」と判定される。
【００２２】
そして、ステップ5040で、「対応する」エントリが無いと判定されれば後述するステップ5070にジャンプし、あると判定されればステップ5050で、ライトされたファイルをコピー先NAS1340の示すNAS1200のコピー先パス1350の示すファイルあるいはディレクトリにライトするようライト要求を発行し、ファイルデータを転送してライト終了を待つ。
【００２３】
ステップ5060において、ライトしたNAS1200より正常終了が返ってきたら、ステップ5070でホストコンピュータ1010に対して完了報告を返し、ライト処理5000は終了する。異常終了が返ってきた場合にはステップ5080でホストコンピュータ1010に異常報告を行い、ライト処理5000は終了する。
【００２４】
このように、リモートコピー対象となっているファイルがNAS1200にライトされると、まず、ライトされたNAS1200のディスク1170にライトし、ついで、リモートコピー先のNAS1200にファイルをライトしてからホストコンピュータ1010にライト完了を返すことで、ホストコンピュータ1010から見て、リモートコピー対象のファイルをNAS1200にライトしてNAS1200から正常終了の報告があったら、ライトしたファイルは物理的に離れた場所に置かれている2台のNAS1200に書かれていることが保証される。
【００２５】
図６はリモートコピー対象となるファイルやディレクトリをユーザが設定するときにホストコンピュータ1010で実行されるコピー対象登録処理5200のフローチャートを示す。
まず、ステップ5210でコピー対象テーブル1300のエントリのコピー対象NAS1320に値−１が入っている空きエントリをサーチし、ステップ5220でユーザがコピー対象となるNASの名称を入力し、それを空きエントリのコピー対象NAS1320にセットし、ステップ5230でユーザが、コピー対象となるファイルやディレクトリのパスを入力し、それを空きエントリのコピー対象パス1330に設定し、ステップ5240でユーザがコピー先となるNASを入力し、それを空きエントリのコピー先NAS1340にセットし、ステップ5250でユーザがコピー先となるファイルやディレクトリのパスを入力し、それを空きエントリのコピー先パス1350に設定する。
【００２６】
そして、ステップ5260で登録を終了するかどうかを判定し（ユーザに登録終了するかどうか問い合わせる）、終了しないと判定されればステップ5210にジャンプし、終了すると判定されればステップ5270で、更新されたコピー対象テーブル1300のコピーを各NAS1200（本実施例の構成ではNASa1210、NASb1220及びNASc1230）に転送してコピー対象登録処理5200は終了する。
【００２７】
本実施例において、説明を簡単にするためステップ5210で空きエントリを必ず見つかるものと仮定したが、実際のインプリメントでは空きエントリが見つからずにエラー終了するといった処理を入れる必要がある。もちろんこの簡易化によって本発明の本質は何ら変化しない。
【００２８】
図７はコピー対象テーブル1300からエントリを削除して、ファイルやディレクトリをリモートコピー対象から外したい時にホストコンピュータ1010で実行されるコピー対象削除処理5400のフローチャートを示す。
まず、ステップ5410でユーザがコピー対象から外したいファイルが格納されているNAS1200の名称を入力し、ステップ5420でユーザがコピー対象から外したいファイルのパスを入力する。そして、ステップ5430で、ユーザが入力した情報に合うコピー対象テーブルエントリ1310を探し、ステップ5440で該当するエントリがあるかどうかを判定する。無ければ後述するステップ5460にジャンプし、あればステップ5450で当該エントリのコピー対象NAS1320に値−１をセットし、ステップ5460で削除終了かどうかを判定する。この判定はユーザに削除処理を終了するかどうかを問い合わせる形で行われる。削除終了でなければステップ5410にジャンプし、終了であればステップ5470で、更新されたコピー対象テーブル1300のコピーを各NAS1200（本実施例の構成ではNASa1210、NASb1220及びNASc1230）に転送してコピー対象削除処理5400は終了する。
【００２９】
本実施例ではコピー対象登録処理5200やコピー対象削除処理5400をホストコンピュータ1010で行うものとしたが、ネットワーク1020に接続された別のコンピュータや、NAS1200で行うようにしてもよく、そのようにした場合でも本発明が適用可能であることは言うまでもない。（ただし、いずれにせよ更新されたコピー対象テーブルを各NAS1200にコピーする必要はある。）
図８は地震の発生等によりあるNAS1200が使用不可能となったときに、そのNAS1200から他のNAS1200にリモートコピーされていたファイルを読み出すためにホストコンピュータ1010で実行される障害時読み出し処理5600のフローチャートを示す。本処理では読み出したファイルをどのように使用するかは特に明示していないが、ホストコンピュータ1010に接続されているローカルのディスクに格納する等の処置が考えられる。
【００３０】
まず、ステップ5610でコピー対象テーブル1300の、コピー対象NAS1320が使用不可能となったNAS1200と一致するエントリをテーブルの先頭から順にサーチし、ステップ5620において該当するエントリが見つからなかったら障害時読み出し処理5600は終了する。見つかったらステップ5630で該当エントリより、コピー先の情報であるコピー先NAS1340及びコピー先パス1350の情報を取得し、ステップ5640で、取得したコピー先NAS1340に対して、コピー先パス1350の示すファイルあるいはそれ以下のディレクトリに格納されているファイルを全て読むようリード要求を発行する。そして、ステップ5650でリード要求を発行したNAS1200より完了報告を全て受領し、ステップ5610にジャンプする。
【００３１】
このようにして、リモートコピーされていたファイルを全て読み出すことができる。
【００３２】
本発明では「NAS」という言葉を使用したが、「従来の技術」で述べた理由により、「NAS」を「ファイルサーバ」という言葉で置き換えることが可能であり、また、そうした場合にも本発明を適用可能であることは言うまでもない。
【００３３】
第1の実施例ではライト処理5000において、リモートコピー先へのライトが異常終了した場合にホストコンピュータ1010へ異常終了を報告した。この場合、リモートコピー先のボリュームが満杯になった場合にも異常終了となるが、それを避けるためにはリモートコピー先ボリュームの空き領域を常に確保しておく必要がある。第２の実施例では、リモートコピー先のボリュームが満杯になるなどしてファイルが書き込めなくなった場合に、予備の領域にファイルを書き込むことで上記のような異常終了を減らす場合について説明する。
【００３４】
なお、簡便のために、第1の実施例と異なる部分について主に説明する。説明を割愛した部分は第1の実施例と同様である。
【００３５】
図９は本実施例に対応するコンピュータシステムa1030の構成図を示す。コンピュータシステムa1030には、ホストコンピュータ1010、ネットワーク1020、NASa1210、NASb1220、NASc1230に加えて、リモートコピーに失敗したファイルを格納する領域である予備ボリューム1040を備えたNASd1240がある。予備ボリューム1040には後述するログファイル1050が存在する。リモートコピーに失敗したNAS1200は予備ボリューム1040にファイルをコピーした後、ログファイル1050に1エントリ分の情報を追記する。
【００３６】
ログファイル1050は一つ以上の、図１０に示すログファイルエントリ1400から構成される。これは、このエントリを追記したNAS1200を示すライト元NAS1410、リモートコピーに失敗したフルパスのファイル名（ライト元NAS1410内での）であるライト元パス1420、そのファイルの予備ボリューム内でのファイルを示すファイル名1430の情報を持つ。予備ボリューム1040内のファイル名は同一ファイル名が予備ボリューム1040内に存在しないようにランダムに生成される。
【００３７】
図１１にログファイル1050の例を示す。ここでも、図４のコピー対象テーブル1300の例を仮定し、ホストコンピュータ1010がNASa1210の/tako/ika.txtと、同じくNASa1210の/apple/t.cのファイルをライトし、両方ともリモートコピーの段階でエラーが発生した場合のログファイル1050の例を示している。先頭エントリは、NASa1210の/tako/ika.txtをNASb1220の/uniにリモートコピーしようとしてエラーが起こり、NASd1240の予備ボリューム1040に00000123.yobというファイル名でデータが格納される時に作成される。このエントリはライト元NAS1410がNASa1210、ライト元パス1420が/tako/ika.txt、ファイル名1430は00000123.yobとなる。
【００３８】
次のエントリは、NASa1210の/apple/t.cをNASc1230の/bananaにリモートコピーしようとしてエラーが起こったためNASd1240の予備ボリューム1040に00000124.yobというファイル名でデータが格納される時に作成される。このエントリはライト元NAS1410がNASa1210、ライト元パス1420が/apple/t.c、ファイル名1430は00000124.yobとなる。
【００３９】
図１２はホストコンピュータ1010で管理し、そのコピーが各NAS1200（NASa1210、NASb1220、NASc1230及びNASd1240）に保持される予備格納テーブル1500を示す。予備格納テーブル1500は、NAS1200がリモートコピーに失敗したときに予備の格納領域に関する情報を得るためのテーブルであり、予備コピー先NAS1510及び予備コピー先パス1520の情報を持つ。
【００４０】
図１３は予備格納テーブル1500の例である。図９でも説明したように、リモートコピーに失敗したファイルはNASd1240の予備ボリューム1040に書かれる。図１３の例では予備コピー先NAS1510がNASd1240となり、予備コピー先パス1520は予備ボリューム1040のパスを示す/yobiとなっている。（つまり、NASd1240の/yobi以下にファイルを書くと予備ボリューム1040にデータが格納される。）
図１４はホストコンピュータ1010がライト要求を発行したときにNAS1200で実行されるライト処理a5800のフローチャートを示す。
【００４１】
まず、ステップ5010においてホストコンピュータ1010よりネットワーク1020を通じてライト要求とライトするデータを受領し、ステップ5020においてライトデータをディスク1170へライトする。そして、ステップ5030でコピー対象テーブル1300の「対応する」エントリをサーチする。コピー対象NAS1320が自NAS1200を示し、かつ、ライト対象のファイルがコピー対象パス1330の示すファイルそのものか、コピー対象パス1330の示すディレクトリあるいは更にそのサブディレクトリに格納するファイルであれば「対応する」と判定される。
【００４２】
そして、ステップ5040で、「対応する」エントリが無いと判定されれば後述するステップ5070にジャンプし、あると判定されればステップ5050で、ライトされたファイルをコピー先NAS1340の示すNAS1200のコピー先パス1350の示すファイルあるいはディレクトリにライトするようライト要求を発行し、ファイルデータを転送してライト終了を待つ。
【００４３】
ステップ5060において、データをライトしたNAS1200より正常終了が返ってきたら、ステップ5070でホストコンピュータ1010に対して完了報告を返し、ライト処理a5800は終了する。異常終了が返ってきた場合にはステップ5810で、ライトしようとしてエラーとなったファイルの実体を消去する。このステップは障害時にリモートコピーされたファイルを復旧する時、不正なデータを読まないようにするために必要である。そして、ステップ5820で予備格納テーブル1500の情報を取得し、ステップ5830で、予備コピー先NAS1510の予備コピー先パス1520の示すディレクトリに重複するファイル名がないようにファイル名をランダムで生成し、ステップ5840で、ライトしようとしてエラーとなったファイルを、予備コピー先NAS1510の予備コピー先パス1520ディレクトリへ、生成したファイル名で書き込む。
【００４４】
そして、ステップ5850で書き込みがうまくいったかどうかを判定し、うまくいかなかった場合にはステップ5880でホストコンピュータ1010に異常報告を行ってライト処理a5800は終了する。
【００４５】
ステップ5850でうまくいったと判定された場合には、ステップ5860で、ステップ5820で取得した情報の示すディレクトリに存在するログファイル1050に対して、ライト元NAS1410、ライト元パス1420、生成したファイル名1430の情報を追記する。そして、ステップ5870でログファイル1050への追記がうまくいったかどうかを判定し、うまくいっていたらステップ5070にジャンプする。うまくいっていなければステップ5880にジャンプする。
【００４６】
図１５はリモートコピーに失敗したファイルを格納する予備ボリューム1040の設定をユーザが行うときにホストコンピュータ1010で実行される予備格納テーブル設定処理6000のフローチャートを示す。
まず、ステップ6010でユーザが予備のコピー先のNAS1200を入力し、ホストコンピュータ1010にある予備格納テーブル1500の予備コピー先NAS1510に設定する。そして、ステップ6020で、ユーザが予備ボリューム1040を示すパス（ディレクトリ）を入力し、ホストコンピュータ1010にある予備格納テーブル1500の予備コピー先パス1520に設定する。
【００４７】
最後に、ステップ6030で、更新された予備格納テーブル1500のコピーを各NAS1200（本実施例の構成ではNASa1210、NASb1220、NASc1230及びNASd1240）に転送して予備格納テーブル設定処理6000は終了する。
【００４８】
本実施例では予備格納テーブル設定処理6000をホストコンピュータ1010で行うものとしたが、ネットワーク1020に接続された別のコンピュータや、NAS1200で行うようにしてもよく、そのようにした場合でも本発明が適用可能であることは言うまでもない。
【００４９】
図１６は第1の実施例における図８の障害時読み出し処理5600に相当する障害時読み出し処理a6200のフローチャートである。
【００５０】
まず、ステップ6210で予備格納テーブル1500の情報を取得し、ステップ6220で取得した予備コピー先NAS1510と予備コピー先パス1520の示すディレクトリよりログファイル1050を読み込む。そして、ステップ6230で、ログファイル1050の先頭から順に、ライト元NAS1410が障害を起こしたNAS1200を示しているファイルを、ログファイル1050を読み込んだディレクトリより読み出す。そして、ステップ6240でログファイル1050の終端まで行ったかどうかを判定し、行っていなければステップ6230にジャンプする。行っていればステップ6250において、ログファイル1050を参照して読み出したファイルの内、ライト元NAS1410及びライト元パス1420が同一のファイルを、最後にログファイル1050に登場した一つを除いて削除する。
【００５１】
そして、ステップ5610でコピー対象テーブル1300の、コピー対象NAS1320が使用不可能となったNAS1200と一致するエントリをテーブルの先頭から順にサーチし、ステップ5620において該当するエントリが存在しなければ障害時読み出し処理a6200は終了する。存在すればステップ5630で該当エントリより、コピー先の情報であるコピー先NAS1340及びコピー先パス1350の情報を取得し、ステップ5640で取得したコピー先NAS1340に対して、コピー先パス1350の示すファイルあるいはそれ以下のディレクトリに格納されているファイルを全て読むようリード要求を発行する。そして、ステップ5650でリード要求を発行したNAS1200より完了報告を全て受領し、ステップ5610にジャンプする。
【００５２】
第3の実施例では、本発明によって、複数のNAS1200間に分散している重要ファイルを一括してバックアップすることができる場合について説明する。特に説明しない箇所については第1の実施例と同様である。
【００５３】
図１７は第3の実施例に対応するコンピュータシステムb1060を示す。
【００５４】
コンピュータシステムb1060はファイルアクセス要求を発行するホストコンピュータ1010、ホストコンピュータ1010が発行するファイルアクセス要求を処理する複数台のNAS1200であるNASa1210、NASb1220、NASc1230及びNASe1250、そしてNASe1250に繋がっているデータバックアップ用のテープ1090、それらをつなぐネットワーク1020より構成される。NASe1250にはデータのバックアップ処理を行うバックアップマネジャー1080及びバックアップの対象となるバックアップボリューム1070が存在する。バックアップマネジャー1080はNASコントローラ1100のCPU1110で実行されるプログラムである。バックアップボリューム1070のパスは/bkup以下で表されるものとする。
【００５５】
図１８は第3の実施例に対応するコピー対象テーブル1300の例を示す。
エントリ番号0はコピー対象NAS1320がNASa1210、コピー対象パス1330が/tako/ika.txt、コピー先NAS1340がNASe1250、コピー先パス1350が/bkupとなっている。エントリ番号1はコピー対象NAS1320がNASb1220、コピー対象パス1330が/foo/boo.c、コピー先NAS1340がNASe1250、コピー先パス1350が/bkupとなっている。エントリ番号2はコピー対象NAS1320がNASc1230、コピー対象パス1330が/important、コピー先NAS1340がNASe1250、コピー先パス1350が/bkupとなっている。エントリ番号3以降はコピー対象NAS1320に値−１が入っており、無効なエントリであることを示す。
【００５６】
このように、本実施例では、リモートコピー先が全てNASe1250の/bkupで表されるバックアップボリューム1070一カ所に集約されている。リモートコピーの対象となっている重要なファイルをまとめてバックアップするためには、このバックアップボリューム1070のバックアップを行えばよい。
【００５７】
図１９は本実施例におけるリモートコピーとバックアップのデータの流れを示す。
【００５８】
NASa1210、NASb1220及びNASc1230からのリモートコピーはNASe1250のバックアップボリュームに対してなされ、バックアップマネジャー1080が一括してバックアップボリューム1070をテープにバックアップする。このようにして、各NAS1200間に散らばった重要なファイルをそれぞれバックアップするのではなく、重要なファイルを一つのボリュームに集約してそれをバックアップすることで、バックアップの手間が省ける。
【００５９】
図２０はバックアップマネジャー1080が行うバックアップ処理6400のフローチャートを示す。
ステップ6410において、バックアップマネジャー1080はバックアップボリューム1070をテープ1090にバックアップし、バックアップ処理6400は終了する。
【００６０】
第4の実施例では、NAS間でのリモートコピーを行う際専用のネットワークを利用する場合について、第1の実施例と異なる点のみ説明する。従来のブロックレベルのリモートコピーでは、リモートコピーを行うディスクコントローラ間をESCONやFC(Fibre Channel)といった線で直接結ばれていることが多かったが、これと同様の構成で、NAS間を専用の線で結び、ホストコンピュータとNASが繋がっている通常のネットワークから分離する。
【００６１】
図２１は本実施例に対応するコンピュータシステムC1065の構成を示す。
【００６２】
コンピュータシステムC1065はファイルアクセス要求を発行するホストコンピュータ1010、ホストコンピュータ1010が発行するファイルアクセス要求を処理する複数台のNAS1200であるNASa1210、NASb1220及びNASc1230、ホストコンピュータ1010とNASa1210をつなぐネットワーク1020、NASa1210とNASb1220を結ぶ専用ネットワークa1222、NASa1210とNASc1230を結ぶ専用ネットワークb1224より構成される。
【００６３】
ネットワーク1020はEthernet等を利用したIPネットワークであって、図には現れない多くのコンピュータ間で共有されていることを想定している。
【００６４】
専用ネットワークa1222、専用ネットワークb1224は共にFC(Fibre Channel 、ESCONでもよい)を想定しており、ネットワーク1020と独立した接続であるとする。
【００６５】
FCは通常FCP(Fibre Channel Protocol)という規格を使ってブロックI/Oアクセスに利用されるが、IETF(Internet Engineering Task Force)で策定されたIP and ARP over Fibre Channel(RFC2625)を使ってIPをFC上に通すことで、IPを前提としたNFSなどを使ったファイルアクセスがFCを通じて可能となる。
【００６６】
【発明の効果】
本発明によって、NASにおいてファイルやディレクトリのようなより細かいデータ単位でリモートコピー指定を実現できる。
【図面の簡単な説明】
【図１】第1の実施例に対応するコンピュータシステムを示す。
【図２】第1の実施例に対応するNASの構成図を示す。
【図３】第1の実施例に対応するコピー対象テーブルを示す。
【図４】第1の実施例に対応するコピー対象テーブルの例を示す。
【図５】第1の実施例に対応するライト処理のフローチャートを示す。
【図６】第1の実施例に対応するコピー対象登録処理のフローチャートを示す。
【図７】第1の実施例に対応するコピー対象削除処理のフローチャートを示す。
【図８】第1の実施例に対応する障害時読み出し処理のフローチャートを示す。
【図９】第2の実施例に対応するコンピュータシステムaを示す。
【図１０】第2の実施例に対応するログファイルエントリを示す。
【図１１】第2の実施例に対応するログファイルの例を示す。
【図１２】第2の実施例に対応する予備格納テーブルを示す。
【図１３】第2の実施例に対応する予備格納テーブルの例を示す。
【図１４】第2の実施例に対応するライト処理aのフローチャートである。
【図１５】第2の実施例に対応する予備格納テーブル設定処理のフローチャートである。
【図１６】第2の実施例に対応する障害時読み出し処理aのフローチャートである。
【図１７】第3の実施例に対応するコンピュータシステムbを示す。
【図１８】第3の実施例に対応するコピー対象テーブルの例を示す。
【図１９】第3の実施例におけるリモートコピーとバックアップのデータの流れを示す。
【図２０】第3の実施例に対応するバックアップ処理のフローチャートである。
【図２１】第4の実施例に対応するコンピュータシステムcを示す。
【符号の説明】
1000…コンピュータシステム、1010…ホストコンピュータ、
1020…ネットワーク、1040…予備ボリューム、1050…ログファイル、
1070…バックアップボリューム、1080…バックアップマネジャー、
1090…テープ、1100…NASコントローラ、1110…CPU、
1120…ホストインターフェース、1130…ディスクインターフェース、
1140…ROM、1150…RAM、1160…DMA、1170…ディスク、1200…NAS、
1300…コピー対象テーブル、1310…コピー対象テーブルエントリ、
1320…コピー対象NAS、1330…コピー対象パス、1340…コピー先NAS、
1350…コピー先パス、1400…ログファイルエントリ、1410…ライト元NAS、
1420…ライト元パス、1430…ファイル名、1500…予備格納テーブル、
1510…予備コピー先NAS、1520…予備コピー先パス
【図１】
0004175789.tif 000002
【図２】
0004175789.tif 000003
【図３】
0004175789.tif 000004
【図４】
0004175789.tif 000005
【図５】
0004175789.tif 000006
【図６】
0004175789.tif 000007
【図７】
0004175789.tif 000008
【図８】
0004175789.tif 000009
【図９】
0004175789.tif 000010
【図１０】
0004175789.tif 000011
【図１１】
0004175789.tif 000012
【図１２】
0004175789.tif 000013
【図１３】
0004175789.tif 000014
【図１４】
0004175789.tif 000015
【図１５】
0004175789.tif 000016
【図１６】
0004175789.tif 000017
【図１７】
0004175789.tif 000018
【図１８】
0004175789.tif 000019
【図１９】
0004175789.tif 000020
【図２０】
0004175789.tif 000021
【図２１】
0004175789.tif 000022