(57)【要約】【課題】  ファイルが消失してしまう危険性を抑える。【解決手段】  記憶制御システムは、複数の記憶領域のうちの少なくとも一つの記憶領域に記憶される互いに重複した重複ファイルを検索する重複検索手段と、検索された重複ファイルのうちの少なくとも一方の重複部分のデータを、その重複部分のデータが記憶されている記憶領域以上の信頼性を有する記憶領域に記憶する記憶制御手段とを備える。複数の記憶領域には多数のファイルが記憶されており、重複検索手段は、記憶されているファイルの数よりも少ない数のファイルの中から重複ファイルを検索する。【選択図】図１
2006338461.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶領域のうちの少なくとも一つの記憶領域に記憶される互いに重複した重複ファイルを検索する重複検索手段と、
前記検索された重複ファイルのうちの少なくとも一方の重複部分のデータを、その重複部分のデータが記憶されている記憶領域以上の信頼性を有する記憶領域に記憶する記憶制御手段と
を備える記憶制御システム。
【請求項２】
前記複数の記憶領域には多数のファイルが記憶されており、
前記重複検索手段は、前記記憶されているファイルの数よりも少ない数のファイルの中から前記重複ファイルを検索する、
請求項１記載の記憶制御システム。
【請求項３】
少なくとも一つの記憶領域からファイルを読み出す手段と、
ファイルが読み出される都度に、読み出されたファイルをマークし、且つ、マークされたファイルの数を、前記記憶されているファイルの数よりも少ない数に制御するファイルマーク手段と
を備え、
前記重複検索手段は、マークされている複数のファイルの中から、或るファイルと重複するファイルを検索する、
請求項２記載の記憶制御システム。
【請求項４】
前記重複検索手段は、前記マークされている複数のファイルのうち、マークされた時点が現在に近いファイルから順に、前記或るファイルと重複するか否かを判断する、
請求項３記載の記憶制御システム。
【請求項５】
前記重複検索手段は、前記マークされている複数のファイルから前記重複したファイルが見つからない場合には、前記或るファイルのファイル名の全部又は一部及び／又はファイルサイズが一致する一以上のファイルの中から、前記或るファイルと重複したファイルを検索する、
請求項３記載の記憶制御システム。
【請求項６】
複数の記憶領域の各々の信頼性に関する信頼性情報を記憶することができる信頼性記憶域を更に備え、
前記記憶制御手段は、二つのファイルが互いに完全に重複する場合には、前記信頼性情報に基づいて、どちらのファイルがより信頼性の高い記憶領域に存在するかを判断し、信頼性が低い記憶領域に存在する方のファイルの場所を開放し、信頼性の高い記憶領域に入っている方のファイルを残す、
請求項１記載の記憶制御システム。
【請求項７】
複数の記憶領域の各々の信頼性に関する信頼性情報を記憶することができる信頼性記憶域を更に備え、
前記記憶制御手段は、更新前後のファイルが互いに部分的に重複する場合には、前記信頼性情報に基づいて、更新後のファイルを、更新前のファイルが記憶されている記憶領域以上の信頼性を有する記憶領域に記憶させ、更新前後のファイルの差分ファイルを生成し、前記生成された差分ファイルを、少なくとも一つの記憶領域に記憶させ、前記更新前ファイルのうちの少なくとも重複部分のデータが存在する場所を開放する、
請求項１記載の記憶制御システム。
【請求項８】
前記検索された重複ファイルに関する情報を所定のログファイルに書き込むログファイル更新手段を更に備え、
前記重複検索手段は、前記ログファイルに記録されている情報に基づいて、前記重複ファイルを検索する、
請求項１記載の記憶制御システム。
【請求項９】
前記記憶制御システムは、別の記憶制御システムと通信可能に接続されており、
前記記憶制御手段は、
前記複数の記憶領域のプライマリの記憶領域に存在する全てのファイルを、前記別の記憶制御システムに転送することにより、前記別の記憶制御システムがアクセス可能なセカンダリの記憶領域に、前記全てのファイルをコピーし、その後、前記プライマリの記憶領域の或るファイルが更新された場合、少なくとも更新後ファイルのファイルメタデータを前記別の記憶制御システムに転送する、
請求項１記載の記憶制御システム。
【請求項１０】
前記記憶制御システムは、少なくとも一つの記憶領域に記憶されているファイルを取得しバックアップ用記憶領域にバックアップするバックアップ装置と通信可能に接続されており、
前記バックアップ装置に対して、前記検索された重複ファイルを隠蔽する、
請求項１記載の記憶制御システム。
【請求項１１】
前記記憶制御手段は、前記複数の記憶領域に記憶されている多数のファイルにそれぞれ対応した多数のファイルメタデータが記録されたメタデータ集合ファイルを生成し、前記生成したメタデータ集合ファイルを少なくとも一つの記憶領域に記憶させ、前記記憶させたメタデータ集合ファイルを前記バックアップ装置に送信し、それにより、バックアップ装置において、前記メタデータ集合ファイルに記録されているファイルメタデータに基づく復元を可能にする、
請求項１０記載の記憶制御システム。
【請求項１２】
前記記憶制御手段は、前記複数の記憶領域のうちの少なくとも一つの物理イメージの物理イメージファイルを作成し、前記作成した物理イメージファイルを前記バックアップ装置に送信する、
請求項１０記載の記憶制御システム。
【請求項１３】
前記記憶制御手段は、前記検索された重複ファイルのうちの少なくとも一方の重複部分のデータを、その重複部分のデータが記憶されている記憶領域以上の信頼性を有する記憶領域にバックアップする、
請求項１記載の記憶制御システム。
【請求項１４】
前記記憶制御手段は、前記バックアップの後、バックアップ元のファイルが更新された場合には、バックアップ先にその更新結果を反映する、
請求項１２記載の記憶制御システム。
【請求項１５】
重複したファイルの数の閾値を記憶する閾値記憶域と、
前記検索された重複ファイルの数が前記閾値以上になった場合には、不要な重複ファイルの削除をユーザに促す手段と
を備える、
請求項１記載の記憶制御システム。
【請求項１６】
複数の記憶領域に記憶されているファイルの数よりも少ない数のファイルの中から、互いに重複した重複ファイルを検索する重複検索手段と、
前記検索された重複ファイルに対する所定の処理を行う制御手段と
を備える記憶制御システム。
【請求項１７】
複数の記憶領域のうちの少なくとも一つの記憶領域に記憶される互いに重複した重複ファイルを検索し、
前記検索された重複ファイルのうちの少なくとも一方の重複部分のデータを、その重複部分のデータが記憶されている記憶領域以上の信頼性を有する記憶領域に記憶する、
記憶制御方法。
【請求項１８】
複数の記憶領域に記憶されているファイルの数よりも少ない数のファイルの中から、互いに重複した重複ファイルを検索し、
前記検索された重複ファイルに対する所定の処理を行う、
記憶制御方法。
【請求項１９】
複数の記憶領域のうちの少なくとも一つの記憶領域に記憶される互いに重複した重複ファイルを検索し、
前記検索された重複ファイルのうちの少なくとも一方の重複部分のデータを、その重複部分のデータが記憶されている記憶領域以上の信頼性を有する記憶領域に記憶する、
ことをコンピュータに実行させるためのコンピュータプログラム。
【請求項２０】
複数の記憶領域に記憶されているファイルの数よりも少ない数のファイルの中から、互いに重複した重複ファイルを検索し、
前記検索された重複ファイルに対する所定の処理を行う、
ことをコンピュータに実行させるためのコンピュータプログラム。
【請求項２１】
少なくとも一つの記憶域と、
少なくとも一つプロセッサと
を備え、
前記少なくとも一つのプロセッサが、
多数のファイルが記憶されている複数の記憶デバイスのうちの少なくとも一つの記憶デバイスからファイルを読み出し、
ファイルが読み出される都度に、読み出されたファイルを前記記憶域上にマークし、且つ、マークされたファイルの数を、前記複数の記憶デバイスに記憶されているファイルの数よりも少ない数に制御し、
マークされている複数のファイルの中から、或るファイルと重複するファイルを検索し、
前記検索された重複ファイルのうちの少なくとも一方の重複部分のデータを、その重複部分のデータが記憶されている記憶デバイス以上の信頼性を有する記憶デバイスに記憶させる、
記憶制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子的なファイルの記憶を制御するための技術に関する。
【背景技術】
【０００２】
例えば、現在の情報化社会に於いて、ストレージ内の日々増大していくファイルは、ストレージを利用する人間（例えば、情報処理装置のユーザ或いはストレージ管理者）の悩みの種であると考えられる。それらのファイルの中には、必ずしも必要でないファイル（例えば、過去のファイルのバックアップ、或いは、無造作に複製されたまま放置されているファイル）が少なくないであろう。これらの不要なファイルを削除して空きの記憶容量を増やすために、電子的なファイルの記憶を制御するための技術として、例えば、特許文献１に開示の技術が知られている。この技術では、例えば、記憶媒体に記憶された第一と第二のファイルの一致度が獲得され、その獲得された一致度から、第一と第二のファイルが類似しているか否かが判定され、その結果、類似していると判定された場合に、第一と第二のファイルのうちの一方を上記記憶媒体から削除される。
【０００３】
【特許文献１】特開平７−３１９８９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述の特許文献１では、第一と第二のファイルが類似していると判定された場合に、第一と第二のファイルうちの一方が削除される。これにより、消費される記憶容量が節約される。しかし、特許文献１では、第一と第二のファイルのうちのどちらを残すことにするかの基準は特に無い。このため、残されたファイルが消失してしまう危険性を抑えることができていない。
【０００５】
また、上述の特許文献１では、全てのファイルを総当たり方式で比較することにより、類似の判定が行われる。しかし、これでは、例えば多数のファイルが記憶されている場合には、それら多数のファイルの全てが検索範囲となるので、互いに類似したファイルを見つけるまでに長い時間を要すると考えられる。
【０００６】
従って、本発明の目的は、ファイルが消失してしまう危険性を抑えられるようにすることにある。
【０００７】
本発明の別の目的は、完全に又は一部が重複したファイルの検出にかかる時間を少なくとも総当たり方式で検出するのにかかる時間よりも短くできるようにすることにある。
【０００８】
本発明の他の目的は、後に説明から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本発明の第一の側面に従う記憶制御システムは、複数の記憶領域のうちの少なくとも一つの記憶領域に記憶される互いに重複した重複ファイルを検索する重複検索手段と、前記検索された重複ファイルのうちの少なくとも一方の重複部分のデータを、その重複部分のデータが記憶されている記憶領域以上の信頼性を有する記憶領域に記憶する記憶制御手段とを備える。
【００１０】
一つの実施態様では、前記複数の記憶領域には多数のファイルが記憶されている。前記重複検索手段は、前記記憶されているファイルの数よりも少ない数のファイルの中から前記重複ファイルを検索することができる。ここで、「多数」とは、「複数」よりも多いことを意味することができる。
【００１１】
一つの実施態様では、記憶制御システムは、少なくとも一つの記憶領域からファイルを読み出す手段と、ファイルが読み出される都度に、読み出されたファイルをマークし、且つ、マークされたファイルの数を、前記記憶されているファイルの数よりも少ない数に制御するファイルマーク手段とを備えることができる。前記重複検索手段は、マークされている複数のファイルの中から、或るファイルと重複するファイルを検索することができる。
【００１２】
一つの実施態様では、前記重複検索手段は、前記マークされている複数のファイルのうち、マークされた時点が現在に近いファイルから順に、前記或るファイルと重複するか否かを判断することができる。
【００１３】
一つの実施態様では、前記重複検索手段は、前記マークされている複数のファイルから前記重複したファイルが見つからない場合には、前記或るファイルのファイル名の全部又は一部及び／又はファイルサイズが一致する一以上のファイルの中から、前記或るファイルと重複したファイルを検索することができる。
【００１４】
一つの実施態様では、複数の記憶領域の各々の信頼性に関する信頼性情報を記憶することができる信頼性記憶域が更に備えられてもよい。前記記憶制御手段は、二つのファイルが互いに完全に重複する場合には、前記信頼性情報に基づいて、どちらのファイルがより信頼性の高い記憶領域に存在するかを判断し、信頼性が低い記憶領域に存在する方のファイルの場所を開放し、信頼性の高い記憶領域に入っている方のファイルを残すことができる。
【００１５】
一つの実施態様では、複数の記憶領域の各々の信頼性に関する信頼性情報を記憶することができる信頼性記憶域が更に備えられてもよい。前記記憶制御手段は、更新前後のファイルが互いに部分的に重複する場合には、前記信頼性情報に基づいて、更新後のファイルを、更新前のファイルが記憶されている記憶領域以上の信頼性を有する記憶領域に記憶させ、更新前後のファイルの差分ファイルを生成し、前記生成された差分ファイルを、少なくとも一つの記憶領域に記憶させ、前記更新前ファイルのうちの少なくとも重複部分のデータが存在する場所を開放することができる。ここでの差分ファイルは、例えば、後述する新差分ファイルとすることができる。
【００１６】
一つの実施態様では、前記検索された重複ファイルに関する情報を所定のログファイルに書き込むログファイル更新手段が更に備えられてもよい。前記重複検索手段は、前記ログファイルに記録されている情報に基づいて、前記重複ファイルを検索することができる。
【００１７】
一つの実施態様では、前記記憶制御システムは、別の記憶制御システムと通信可能に接続されていてもよい。前記記憶制御手段は、前記複数の記憶領域のプライマリの記憶領域に存在する全てのファイルを、前記別の記憶制御システムに転送することにより、前記別の記憶制御システムがアクセス可能なセカンダリの記憶領域に、前記全てのファイルをコピーし、その後、前記プライマリの記憶領域の或るファイルが更新された場合、少なくとも更新後ファイルのファイルメタデータを前記別の記憶制御システムに転送することができる。
【００１８】
具体的には、例えば、前記記憶制御システムの記憶制御手段は、更新後ファイルそれ自体とファイルメタデータとを、別の記憶制御システムに転送しても良い。この場合、別の記憶制御システムの記憶制御手段が、更新後ファイル及びファイルメタデータを受信し、受信したファイルメタデータに従って、受信した更新後ファイルを、前記セカンダリの記憶領域に書き込むことができる。
【００１９】
また、例えば、前記記憶制御システムの別の記憶制御手段は、更新後ファイルと更新前ファイルとに基づいて、更新前ファイルをベースに更新後ファイルを生成するための後述の旧差分ファイルを生成し、更に、旧差分ファイルを、前記別の記憶制御システムに転送しても良い。この場合、前記別の記憶制御手段は、旧差分ファイルを受信し、受信した旧差分ファイルと、前記セカンダリの記憶領域に存在する更新前ファイルとに基づいて、更新後ファイルを生成し、生成した更新後ファイルを、受信したファイルメタデータに従って、前記セカンダリの記憶領域に格納しても良い。
【００２０】
一つの実施態様では、前記記憶制御システムは、少なくとも一つの記憶領域に記憶されているファイルを取得しバックアップ用記憶領域にバックアップするバックアップ装置と通信可能に接続されていてもよい。前記記憶制御システムは、前記バックアップ装置に対して、前記検索された重複ファイルを隠蔽する手段を更に備えても良い。
【００２１】
一つの実施態様では、前記記憶制御手段は、前記複数の記憶領域に記憶されている多数のファイルにそれぞれ対応した多数のファイルメタデータが記録されたメタデータ集合ファイルを生成し、前記生成したメタデータ集合ファイルを少なくとも一つの記憶領域に記憶させ、前記記憶させたメタデータ集合ファイルを前記バックアップ装置に送信し、それにより、バックアップ装置において、前記メタデータ集合ファイルに記録されているファイルメタデータに基づく復元を可能にすることができる。
【００２２】
一つの実施態様では、前記記憶制御手段は、前記複数の記憶領域のうちの少なくとも一つの物理イメージの物理イメージファイルを作成し、前記作成した物理イメージファイルを前記バックアップ装置に送信することができる。
【００２３】
一つの実施態様では、前記記憶制御手段は、前記検索された重複ファイルのうちの少なくとも一方の重複部分のデータを、その重複部分のデータが記憶されている記憶領域以上の信頼性を有する記憶領域にバックアップすることができる。
【００２４】
一つの実施態様では、前記記憶制御手段は、前記バックアップの後、バックアップ元のファイルが更新された場合には、バックアップ先にその更新結果を反映することができる。
【００２５】
一つの実施態様では、記憶制御システムは、重複したファイルの数の閾値を記憶する閾値記憶域と、前記検索された重複ファイルの数が前記閾値以上になった場合には、不要な重複ファイルの削除をユーザに促す手段とを備えることができる。
【００２６】
本発明の第二の側面に従う記憶制御システムは、複数の記憶領域に記憶されているファイルの数よりも少ない数のファイルの中から、互いに重複した重複ファイルを検索する重複検索手段と、前記検索された重複ファイルに対する所定の処理を行う制御手段と
を備える。
【００２７】
上述した各手段は、ハードウェア、コンピュータプログラム又はそれらの組み合せ等の要素により実現することができる。コンピュータプログラムは、通信ネットワークを介してダウンロードされても良いし、CD-ROM或いはDVD（Digital Versatile Disk）等の記憶媒体から読出されても良い。また、各手段が実行する処理は、一つの要素によって行われても良いし複数の要素によって行われても良い。
【００２８】
本発明の第三の側面に従う記憶制御システムは、少なくとも一つの記憶域（例えばメモリ）と、少なくとも一つプロセッサとを備える。前記少なくとも一つのプロセッサが、多数のファイルが記憶されている複数の記憶デバイスのうちの少なくとも一つの記憶デバイスからファイルを読み出し、ファイルが読み出される都度に、読み出されたファイルを前記記憶域上にマークし、且つ、マークされたファイルの数を、前記複数の記憶デバイスに記憶されているファイルの数よりも少ない数に制御し、マークされている複数のファイルの中から、或るファイルと重複するファイルを検索し、前記検索された重複ファイルのうちの少なくとも一方の重複部分のデータを、その重複部分のデータが記憶されている記憶デバイス以上の信頼性を有する記憶デバイスに記憶させる。
【００２９】
プロセッサは、例えば、コンピュータプログラムを読み込んで実行するマイクロプロセッサであっても良い。
【００３０】
記憶デバイスは、物理的な記憶デバイス（例えばハードディスク）であっても良いし、論理的な記憶デバイス（例えば、論理ユニット或いは論理ボリューム）であっても良い。
【発明の効果】
【００３１】
本発明の第一の側面に従う記憶制御システムによれば、ファイルが消失してしまう危険性を抑えることができる。
【００３２】
本発明の第二の側面に従う記憶制御システムによれば、完全に又は一部が重複したファイルの検出にかかる時間を少なくとも総当たり方式で検出するのにかかる時間よりも短くすることができる。
【発明を実施するための最良の形態】
【００３３】
以下、図面を参照して、本発明の幾つかの実施例について説明する。
【実施例１】
【００３４】
図１及び図２は、本発明の第一実施例に係る記憶制御システムが適用されたＮＡＳコントローラを有する情報処理システムを示す。図１と図２とを繋げることにより、一つの情報処理システムが示される。以下の説明では、同種の構成要素のどれでも良い場合には親番号のみを用いて説明し、同種の構成要素を区別する場合には親番号に枝符号を付して説明することがある。また、図では枝符号が付いていても、説明を分かりやすくするために、枝符号を用いないで説明することもある。
【００３５】
図１に示すように、ＬＡＮ（Local Area Network）３（ＷＡＮ（World Area Network）等の他の通信ネットワークであっても良い）に、複数台（一台でも良い）の情報処理装置１と、ＮＡＳ（Network Attached Storage）コントローラ５とが接続されている。
【００３６】
各情報処理装置１は、例えば、ＣＰＵ、メモリ及び表示装置等のハードウェア資源を備えたコンピュータ装置（例えばパーソナルコンピュータ）である。情報処理装置１は、ＮＡＳコントローラ５に対して、読出し対象データの読出し命令や、書込み命令及び書き込み対象データを送信することができる（以下、読出し命令及び書込み命令を「アクセス要求」と総称する場合がある）。各情報処理装置１は、ファイルレベルのアクセス要求を送信することができる。
【００３７】
ＮＡＳコントローラ５に記憶装置システム２が所定の通信インターフェースを介して通信可能に接続されている。ＮＡＳコントローラ５は、例えば、一又は複数の回路基板により構成することができる。ＮＡＳコントローラ５は、例えば、ＣＰＵ１１と、ＬＡＮ３に接続される二つのLAN I/F制御部（例えばＬＡＮインターフェース装置）１３，１３と、ファイバチャネル（FC）を介して記憶装置システム２に接続される二つのFC I/F制御部（例えばＦＣインターフェース装置）１５，１５とを備えている（LAN I/F制御部１３及びFC I/F制御部１５は、二つより多くても少なくても良い）。また、ＮＡＳコントローラ５は、例えば、各LAN I/F制御部１３、ＣＰＵ１１、メモリ７及び各FC I/F制御部１５間のデータ転送を制御するデータコントローラ１４と、種々の情報を記憶することができるメモリ７とを備えている。ＣＰＵ１１は、例えば、情報処理装置１から受信されたファイルレベルのアクセス要求を、ブロックレベルのアクセス要求に変換し、そのブロックレベルのアクセス要求を記憶装置システム２に送信することができる。メモリ７は、例えば、ＮＡＳコントローラ５の動作を制御するための制御情報を記憶するための制御領域と、情報処理装置１と後述の論理ボリューム５２，５４との間でやり取りされるデータを一時的に記憶するためのキャッシュ領域とを有することができる。メモリ７の制御領域は、例えば、後に詳述する記憶管理テーブル５１、信頼性比較テーブル５５及びファイル比較テーブル５３を記憶することができる。
【００３８】
記憶装置システム２は、例えば、直列に接続された複数台の筐体を備える。複数台の筐体には、例えば、基本筐体２１と、一台以上の増設筐体２３、２３、…とが含まれている。直列に接続された一台以上の増設筐体２３、２３、…の端に位置する増設筐体が、基本筐体２１に直接接続され、他の増設筐体は、一以上の増設筐体を介して基本筐体２１に通信可能に接続されている。以下、説明を分かりやすくするために、増設筐体２３の数は二台とする（なお、基本筐体の数又は増設筐体の数は、図１及び図２の例に限定されない）。
【００３９】
基本筐体２１には、例えば、二重化されたディスクコントローラ２３，２３が備えられる。各ディスクコントローラ２３は、ＮＡＳコントローラ５からブロックレベルのアクセス要求を受信し、そのアクセス要求に応じて、後述の論理ユニット４８，５０に対するデータの入出力を制御することができる。各ディスクコントローラ２３には、例えば、ＣＰＵ２５、メモリ２７、データコントローラ２９、チャネル制御部３７、ディスク制御部３１、キャッシュメモリ３５、及び共用メモリ３３が設けられている。
【００４０】
キャッシュメモリ３５には、チャネル制御部３７とディスク制御部３１との間で送受信されるデータ（換言すれば、情報処理装置１と後述の論理ユニット４８，５０との間でやり取りされるデータ）が一時的に記憶される。
【００４１】
メモリ２７には、例えば、ＬＵＮとＨＤＤ番号との対応関係を表すテーブル等の制御情報が記録されている。
【００４２】
チャネル制御部３７は、ＮＡＳコントローラ５との間でデータや制御信号を送受信することができる。ディスク制御部３１は、例えば、ファイバチャネルプロトコルに従って、HDD４５，５０との間でやり取りするためのデータや制御信号を送受信することができる。
【００４３】
データコントローラ２９は、他のデータコントローラ２９に通信可能に接続されており、これにより、他のデータコントローラ１０との間でデータをやり取りすることができる。データコントローラ２９は、ＣＰＵ２５、チャネル制御部３７、ディスク制御部３１、キャッシュメモリ３５及び共用メモリ３３の間でのデータの転送を制御することができる。
【００４４】
ＣＰＵ２５は、種々の情報処理を実行することができる。例えば、ＮＡＳコントローラ５からブロックレベルの読出し命令が受信された場合、ＣＰＵ２５は、メモリ２７に記憶されている制御情報を参照し、その読出し命令中で指定されているボリュームＩＤに対応する論理ボリューム５２，５４に書き込まれている読出し対象データを読み出すための要求を生成し、その要求を、ディスク制御部３１を介して送信することができる。それにより、ＣＰＵ２５は、キャッシュメモリ３５に読出し対象データを読み出し、その後、その読出し対象データをキャッシュメモリ３５から読み出してＮＡＳコントローラ５に送信することができる。また、例えば、ＮＡＳコントローラ５からブロックレベルの書込み命令と書き込み対象データとが受信された場合、書込み対象データはキャッシュメモリ３５に一時格納され、ＣＰＵ２５は、メモリ２７に記憶されている制御情報を参照し、その書込み命令に基づいて、その書込み命令で指定されているボリュームＩＤに対応した論理ボリューム５２，５４に書き込み対象データを書き込むための要求を生成し、その要求を、ディスク制御部３１を介して送信することができる。それにより、ＣＰＵ２５は、キャッシュメモリ３５に格納された書込み対象データを、その書込み命令で指定されているボリュームＩＤに対応した論理ボリューム５２，５４に書き込むことができる。
【００４５】
図２に示すように、増設筐体２３Ａ、２３Ｂの各々には、同じ装置が搭載されても良いし異なる装置が搭載されても良い。この実施例では、基本筐体２１に近い側の増設筐体（この実施例では２３Ａ）には、二重化されたバックエンドスイッチ装置（以下、バックエンドＳＷ）４１，４１と、両方のバックエンドＳＷ４１，４１に接続された複数の物理記憶装置４５，４５，…が備えられる。基本筐体２１から遠い側の増設筐体（この実施例では２３Ｂ）には、二重化されたバックエンドＳＷ４７，４７と、両方のバックエンドＳＷ４７，４７に接続された複数の物理記憶装置４６，４６，…が備えられる。例えば、複数の物理記憶装置４５，４５、…のうちの少なくとも二以上や、複数の物理記憶装置４６，４６、…のうちの少なくとも二以上を、例えば、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）の方式に従う一つのグループとすることができる。
【００４６】
増設筐体２３Ａの各バックエンドＳＷ４１は、各ディスクコントローラ２３の各ディスク制御部３１と、他の増設筐体２３ＢのバックエンドＳＷ４７とに接続されている。これにより、ディスクコントローラ２３は、バックエンドＳＷ４１、４７を介して、増設筐体２３Ａより遠い位置にある増設筐体２３Ｂ内の物理記憶装置４６にアクセスすることができる。
【００４７】
各バックエンドＳＷ４１、４７には、I/F−プロトコル変換部４３，４９が備えられている。このI/F−プロトコル変換部４３，４９により、ディスクコントローラ２３からのブロックレベルのアクセス要求が、物理記憶装置４５，４６に適した形式のアクセス要求に変換されて、物理記憶装置４５，４６に対するデータの書き込みや読出しが可能になる。
【００４８】
増設筐体２３Ａ内の物理記憶装置４５は、例えば、オンラインで読み書きするデータの記憶に利用される。また、増設筐体２３Ｂ内の物理記憶装置４６は、例えば、ニアライン（例えば夜間でのバッチ処理）で読み書きするデータの記憶に利用される。物理憶装置４５，４６は、本実施例では、ハードディスクドライブ（以下、HDD）であるが、それに限らず、例えば、光ディスク、磁気テープ或いは半導体メモリ等を搭載することができる他種のドライブ装置としてもよい。また、基本筐体２１に近い側の増設筐体に備えられる物理記憶装置４５の信頼性（又は性能）は、基本筐体２１から遠い側の増設筐体に備えられる物理記憶装置４６の信頼性（又は性能）よりも高いものとすることができる。具体的には、例えば、物理記憶装置４５は、FC インターフェース（以下、I/F）のHDD（以下、FC HDD））とすることができる。一方、物理記憶装置４６は、SAS（Serial Attached SCSI） I/FのHDD（以下、SAS HDD）とすることができる。複数の物理記憶装置４６の全てがSAS HDDであっても良いし、それに代えてSATA（Serial ATA） I/FのHDDであってもよいし、SAS HDDとSATA HDDとが混在していてもよい。
【００４９】
複数のFC HDD４５も複数のSAS HDD４６も、例えばアレイ状に配列されている。複数のFC HDD４５の少なくとも一つには、一又は複数の論理ユニット（以下、LUと記載することがある）を設定することができる。同様に、複数のSAS HDD４６の少なくとも一つにも、一又は複数のLUを設定することができる（以下、FC HDD４５上のLUの参照番号を「４８」とし、SAS HDD４６上のLUの参照番号を「５０」とする）。各LU４８，５０によって提供される論理的な記憶領域は、更に複数のサブ領域５２，５４に区分することができる。その区分されたサブ領域を、この実施例では「論理ボリューム」と呼ぶ。
【００５０】
以上が、この第一実施例における情報処理システムの概要である。次に、ＮＡＳコントローラ５のメモリ７に記憶される各種テーブル５１，５５及び５３について説明する。なお、以下の説明では、ファイルとそれに対応するファイルメタデータとの両方を削除することを「ファイル全体を削除する」と言い、ファイルを削除するがファイルメタデータを残しておく場合には「ファイルが存在する記憶領域を開放する」と言うようにする。また、以下の説明では、全てのデータ又は一部のデータが互いに重複するファイルを「重複ファイル」と言うことにし、互いの重複部分に相当するデータを「重複データ」と言うことにする。従って、例えば、第一のファイルと第二のファイルの全て又は一部が互いに重複している場合には、第一のファイルも第二のファイルも、「重複データ」を有した「重複ファイル」である。以下、単に「重複ファイル」というときには、重複データを有する双方のファイルを表し、いずれか一方のファイルを指すときには、例えば「一方の重複ファイル」、「他方の重複ファイル」のように、きちんと区別できる表現を用いるようにする。
【００５１】
図３Ａは、記憶管理テーブル５１の構成例を示す。
【００５２】
記憶管理テーブル５１は、一種のファイルメタデータ群である。記憶管理テーブル５１には、記憶装置システム２の物理記憶装置４５又は４６に格納された各ファイル毎に、そのファイルに関する種々の情報を含んだレコード（ファイルメタデータ）が存在する。一つのファイル（以下、便宜上これを「ファイルＺ」と言う）に関する種々の情報としては、例えば、ボリュームＩＤ、パス名、ファイル名、データ長、属性情報及び参照位置情報とがある。ボリュームＩＤは、ファイルＺが格納されている論理ボリュームの識別子である。パス名は、ファイルＺへのアクセスパスを表す名前である。ファイル名は、ファイルＺの名称である。データ長は、ファイルＺのデータ長である。属性情報は、ファイルＺに関する属性を表す情報であり、例えば、更新日時等である。参照位置情報は、ファイルＺに対応する一以上のブロックデータの在り処を示す情報（換言すればいわゆるポインタ）であり、例えば、物理装置ＩＤ、ＬＵＮ、先頭ＬＢＡ、使用データ長及びリンク用テーブルを含んでいる。物理装置ＩＤは、一以上のブロックデータを記憶するＬＵを備えた増設筐体の識別子である。ＬＵＮは、一以上のブロックデータを記憶するＬＵの番号である。先頭ＬＢＡは、一以上のデータブロックのうちの先頭のデータブロックの場所を表す論理ブロックアドレスである。使用データ長は、一以上のデータブロックによるデータ長である。先頭ＬＢＡと使用データ長とにより、ファイルＺに対応する一以上のデータブロックを特定することができる。なお、ファイルＺが他のファイルと一部重複したファイルである場合には、使用データ長は、その重複部分のデータ長となる。リンク用テーブルは、ファイルＺの更なる一又は複数の参照位置情報とすることができる（ファイルZが、後述する新差分ファイル或いは旧差分ファイルの場合には、後述する他の種類の情報が含まれていても良い）。ファイルＺの参照位置情報に含まれている全ての使用データ長の合計が、ファイルＺのデータ長となる。
【００５３】
ＮＡＳコントローラ５のＣＰＵ１１は、物理記憶装置４５、４６に新たにファイルが格納される都度に、その新たなファイルに対応する新たなレコードを記憶管理テーブル５１に追記することができる。また、ＣＰＵ１１は、ファイルを物理記憶装置４５、４６から削除する都度に、削除したファイルに対応するレコードを記憶管理テーブル５１から削除し、それにより、ファイル全体を削除することもできる。また、ＣＰＵ１１は、一つの重複ファイルの全部又は一部が存在する記憶領域を開放した場合には、その重複ファイルに対応するレコード（つまりファイルメタデータ）を削除せず、そのレコード中の所定の情報を更新することができる。
【００５４】
図３Ｂは、信頼性比較用テーブル５５の構成例を示す。
【００５５】
信頼性比較用テーブル５５には、記憶装置システム２に備えられている各論理ユニット４８，５０に関する種々の情報が登録される。一つの論理ユニット（以下、便宜上「論理ユニットＺ」と言う）に関する種々の情報としては、例えば、物理装置ＩＤ、ＬＵＮ、ＲＡＩＤレベル、ＨＤＤ台数、ＨＤＤ種別、空き容量、装置搭載日時及び信頼性順位がある。物理装置ＩＤは、論理ユニットＺを有する物理装置の識別子である。ＬＵＮは、論理ユニットＺの番号である。ＲＡＩＤレベルは、論理ユニットＺを有するＲＡＩＤグループ（ＨＤＤ群）のＲＡＩＤレベルを表す。ＨＤＤ台数は、論理ユニットＺが何台のＨＤＤにより提供されているのかを示す情報である。ＨＤＤ種別は、論理ユニットＺを有する一以上のＨＤＤの種別（例えばFC HDDかSAS HDD）を表す（それら一以上のＨＤＤに複数種類のＨＤＤが混在している場合には、複数の種別が記録される）。空き容量は、論理ユニットＺが有する記憶容量のうちデータが記憶されていない領域（換言すれば、開放されている領域）の記憶容量を表す。装置搭載日時は、論理ユニットＺを有するＨＤＤ群が増設筐体２３に搭載された日時（或いは、その増設筐体２３が基本筐体２１に通信可能に接続された日時）を表す。信頼性順位は、論理ユニットＺの信頼性の順位を表す。信頼性順位は、信頼性が高いほど若い数値となる。各論理ユニットには、異なる信頼性順位が設定される（他の論理ユニットと同一の信頼性順位が設定されても良い）。例えば、複数の論理ユニットのＲＡＩＤレベル及びＨＤＤ種別のうちの少なくとも一方が同じ場合には、それら複数の論理ユニットの各々には、同一の信頼性順位が設定されても良いし、異なる信頼性順位が設定されても良い。信頼性順位は、例えば、物理装置ＩＤ、ＬＵＮ、ＲＡＩＤレベル、ＨＤＤ台数、ＨＤＤ種別、空き容量及び装置搭載日時の少なくとも一つに基づいて、システム管理者の構成変更（コンフィギュレーション）設定が行われる毎に、ＮＡＳコントローラ５のＣＰＵ１１が各要素の重み比較により決定する（その決定後、管理者の承認を得て或いは得ることなく設定してもよい）。ここで、例えば、ＲＡＩＤレベルの観点に基づく重み比較がされた場合、信頼性順位は、ＲＡＩＤ６＋１＞ＲＡＩＤ３＋１、４＋１又は５＋１＞ＲＡＩＤ１＞ＲＡＩＤ０＋１＞ＲＡＩＤ６＞ＲＡＩＤ３，４又は５＞ＲＡＩＤ０の順で低くなっても良い（つまり、一例として、ＲＡＩＤ６＋１が最も高く、ＲＡＩＤ０が最も低くなってもよい）。また、例えば、ＨＤＤ種別の観点に基づく重み比較がされた場合、信頼性順位は、ＦＣ＞ＳＡＳの順で低くなる。また、例えば、ＲＡＩＤレベルとＨＤＤ種別の両方の観点に基づく重み比較が行われた場合には、一例として、ＲＡＩＤレベルの観点で決定された信頼性順位と、ＨＤＤ種別の観点で決定された信頼性順位との平均値に基づいて決定されてもよい（平均値が同じ場合には、どちらの観点を優先するかに基づいて決定されても良い）。
【００５６】
図４は、ファイル比較用テーブル５３の構成例と、このテーブル５３を用いた情報処理の一つの流れの一例を示す。
【００５７】
ファイル比較用テーブル５３には、物理記憶装置４５又は４６から読み出されたファイル毎に、そのファイルに関する種々の情報を含んだレコードが存在する。読み出された一つのファイル（以下、便宜上これを「ファイルＹ」と言う）に関する種々の情報としては、例えば、ボリュームＩＤ、パス名、ファイル名、データ長、リードアクセス日時及びデータ位置がある。ボリュームＩＤ、パス名、ファイル名及びデータ長は、記憶管理テーブル５１に登録されているそれらと同じである。リードアクセス日時は、ファイルＹが読み出された日時を表す。データ位置は、ファイルＹがキャッシュメモリ３５のどこに記憶されているか、及び／又は、ファイルＹに対応するレコードが記憶管理テーブル５１のどこに存在するかを表す位置情報である。
【００５８】
ＮＡＳコントローラ５のＣＰＵ１１は、物理記憶装置４５、４６からファイルを読み出す都度に、その読み出したファイルに対応する新たなレコードをファイル比較用テーブル５３の先頭に追記し、既に存在する各レコードの位置を繰り下げることができる。これにより、ファイル比較用テーブル５４では、先頭から最後尾にかけて、読み出された日時が現在日時に近い順に、ファイルに関するレコードが並ぶことになる。そして、ＣＰＵ１１は、ファイル比較用テーブル５４に所定個数のレコードが登録されているとき、最新のレコードを新たに登録する場合には、最古のレコードをファイル比較用テーブル５４から削除することができる。
【００５９】
以上が、ファイル比較用テーブル５３についての説明である。なお、この図４には、前述したとおり、このテーブル５３を用いた情報処理の一つの流れの一例も示されているが、それについては、本実施例で行われる処理の概要を説明した後で説明した方が分かりやすいので、後で、再びこの図４を参照して説明することにする。
【００６０】
以下、本実施例におけるＮＡＳコントローラ５（例えばそれのＣＰＵ１１）が行う処理の概要について説明する。
【００６１】
図５Ａは、フォルダＸ中のファイルＡをフォルダＹにコピーする処理の概要の説明図である。
【００６２】
フォルダＸは、ＬＵ０に存在し、フォルダＹは、ＬＵ０よりも信頼性順位の低いＬＵ１に存在するものとする。ここで、「ＬＵ０よりもＬＵ１の方が信頼性順位が低い」とは、例えば、ＬＵ０のＲＡＩＤレベル（例えばＲＡＩＤ５＋１）よりもＬＵ１のＲＡＩＤレベル（例えばＲＡＩＤ５）の方が低いことである。勿論、それに限らず、例えば、ＬＵ０のＨＤＤ（例えばFC HDD）よりもＬＵ１のＨＤＤ（例えばSAS HDD）の方が信頼性順位が低いということであってもよい。
【００６３】
ＮＡＳコントローラ５は、情報処理装置１からの指示に従って（又はその指示を受けることなく自動的に）、フォルダＸ中のファイルＡをフォルダＹにコピーすることができる。具体的には、例えば、ＮＡＳコントローラ５は、ファイル読み出し命令を発行することで、フォルダＸからファイルＡを読み出し、その後、ファイル書き込み命令を発行することで、読み出したファイルＡをフォルダＹに書き込み、それにより、フォルダＸ中のファイルＡをフォルダＹにコピーすることができる。ＮＡＳコントローラ５は、読み出したファイルＡに関するファイルメタデータを信頼性比較用テーブル５３の先頭に追記し、且つ、フォルダＹに生成されたファイルＡの複製に関する新たなファイルメタデータ（例えば、そのファイルＡを構成するデータの参照位置情報を含んだレコード）を記憶管理テーブル５１に追記することができる。
【００６４】
以上のように、ＮＡＳコントローラ５は、複数のＨＤＤ４５，４６によって提供される記憶資源（以下、ＨＤＤ記憶資源）に、少なくとも一つのファイルについて、一又は複数のそのファイルの複製を記憶させることができる。また、例えば、第一のファイルの複製である第二のファイルが生成された後に、第一のファイルと第二のファイルとのうちの少なくとも一方が更新され、その結果、第一のファイルと第二のファイルは、完全に重複したものから、部分的に重複したものになる。これらのようなことが繰り返されると、ＨＤＤ記憶資源には、多くの重複データが存在することになってしまう。
【００６５】
本実施例では、ＬＵの信頼性に基づいて、複数の重複データのうちの少なくとも一つを残し、他の重複データが存在する記憶領域を開放して空きの記憶領域とすることができる。以下、その処理について説明する。なお、以下の説明では、重複ファイルのうち、後から記憶されたファイルを「更新後ファイル」と言い、その前に記憶されていたファイルを「更新前ファイル」と言う場合がある。
【００６６】
図５Ｂは、重複データの領域開放の一例の概念図である。
【００６７】
図５Ａに示した処理が行われたことにより、ＬＵ０とＬＵ１との両方に、ファイルＡが存在する。つまり、ＬＵ０に存在するファイルＡと、ＬＵ１に存在するファイルＡは、互いに完全に重複している。
【００６８】
この場合において、ＮＡＳコントローラ５のＣＰＵ１１は、ＬＵ０とＬＵ１とのそれぞれの信頼性順位を、信頼性比較用テーブル５５を参照することにより特定する。これにより、ＣＰＵ１１は、ＬＵ０の方がＬＵ１よりも高い信頼性順位が割り当てられているということを特定することができる。
【００６９】
この場合、ＣＰＵ１１は、信頼性順位の低いＬＵ１において、ファイルＡの重複データ（つまり、ここではファイルＡそれ自体）が存在する記憶領域を開放し、信頼性順位の高いＬＵ０にファイルＡを残しておく。また、ＣＰＵ１１は、ＬＵ１から重複データの記憶領域を開放したことに伴い、ＬＵ１のファイルＡのパス名を変更せず、そのＬＵ１のファイルＡに対応したファイルメタデータ中の参照位置情報（記憶管理テーブル５１中の情報）を、ＬＵ０のファイルＡに対応したファイルメタデータ中の参照位置情報と同じ情報にする。これにより、ＣＰＵ１１は、各情報処理装置１に対し、フォルダＸとフォルダＹのどちらが参照されても、ファイルＡが存在しているかのように見せることができる。しかし、そのファイルＡに対応するデータは、フォルダＸとＹのいずれから読み出しても、ＬＵ０から読み出されることになる。
【００７０】
また、ＣＰＵ１１は、ＬＵ１から重複データの記憶領域を開放したことに関するログを、システムボリューム４０２に存在する重複ファイルリスト４０３に記録する。システムボリューム４０２及び重複ファイルリスト４０３については、後に詳述する。
【００７１】
図６Ａは、重複データの領域開放の別の例の概念図である。以下、図５Ｂとの相違点を主に説明し、共通点については説明を省略或いは簡略する。
【００７２】
図５Ａに示した処理が行われたことにより、ＬＵ０とＬＵ１との両方に、ファイルＡが存在する。そして、その後に、ファイルＡが更新されたとする。更新されたファイルＡを「ファイルＡ´」と呼ぶ。ＬＵ０には、更新後ファイルＡ´が存在し、ＬＵ１には、更新前ファイルＡが存在することになる。
【００７３】
この場合において、ＮＡＳコントローラ５のＣＰＵ１１は、ＬＵ０に存在する更新後ファイルＡ´と、ＬＵ１に存在する更新前ファイルＡとが互いに一部重複していることを、所定の方法により検出することができる。例えば、最長共通部分（ＬＣＳ：Longest Common Subsequence）又は最小エディット距離（ＳＥＤ：Shortest Edit Distance）等を求めるアルゴリズムにより検出することができる。また、ＣＰＵ１１は、更新後ファイルＡ´に対応する複数のブロックデータと、更新前ファイルＡに対応する二以上のブロックデータのうち、どのブロックデータが重複部分であってどのブロックデータが重複部分でないかを特定することもできる。
【００７４】
ＣＰＵ１１は、更新後ファイルＡ´が更新前ファイルＡよりも信頼性順位の高いＬＵに存在するか否かを判断する。この結果、否定的な判断結果が得られた場合には、ＣＰＵ１１は、更新後ファイルＡ´を、より信頼性順位の高いＬＵに移動（マイグレーション）させることができる（その際、更新後ファイルＡ´のファイルメタデータのうち、パス名は変えず、参照位置情報を、移動先の位置を表す情報に更新することができる）。図６Ａの例では、更新後ファイルＡ´が更新前ファイルＡよりも信頼性順位の高いＬＵに存在するので、移動は行わなくて良い。
【００７５】
また、ＣＰＵ１１は、更新後ファイルＡ´と更新前ファイルＡとに基づいて、更新後ファイルＡ´を用いて更新前ファイルＡを復元するための差分ファイルＡ´−Ａを得る。以下、更新後ファイルに基づいて更新前ファイルを復元するための差分ファイルを、更新後ファイル（新しい方のファイル）をベースにして得られる差分ファイルという意味で、「新差分ファイル」と言う。逆に、更新前ファイルに基づいて更新後ファイルを復元するための差分ファイルを、更新前ファイル（古い方のファイル）をベースとして得られる差分ファイルという意味で「旧差分ファイル」と言うことにする。
【００７６】
以下、新差分ファイルと旧差分ファイルとについて詳細に説明する。その際、更新前ファイルＡには、５１４バイトの重複データと、重複データの後に続く８００バイトの重複しないデータ（以下、旧オリジナルデータ）とが含まれているとする。また、更新後ファイルＡ´には、上記と同一の重複データ（つまり、５１４バイトの重複データ）と、その重複データの前に付加された５０バイトの重複しないデータ（以下、新オリジナルデータ）と、重複データの後に続く１０００バイトの新オリジナルデータとが含まれているとする。
【００７７】
この場合、新差分ファイルＡ´−Ａは、その新差分ファイルＡ´−Ａと更新後ファイルＡ´とから更新前ファイルＡを復元するのに必要な情報が含まれたファイルとなる。具体的には、例えば、新差分ファイルＡ´−Ａには、ヘッダ部と、重複データ長と、重複データ後オフセット情報と、旧オリジナルデータ情報とが含まれる。ヘッダ部には、最初の重複データの前に新オリジナルデータが何バイトあるか、換言すれば、更新後ファイルＡ´の先頭から何バイトスキップすれば重複データを参照できるかを表すオフセット（この例では５０バイト）が含まれる。重複データ長は、最初の重複データのデータ長（この例では「５１４バイト」）を表す情報である。重複データ後オフセット情報には、最初の重複データの後から何バイトスキップすれば次の重複データを参照できるのかを表すオフセットと、次の重複データのデータ長とが含まれる（この例では、重複データは一つだけなので、オフセットは「０」（又はヌル）、重複データ長は「０バイト」となる）。旧オリジナルデータ情報には、例えば、旧オリジナルデータそれ自体が含まれる。また、旧オリジナルデータ情報には、更新前ファイルＡの先頭からどの位置にその旧オリジナルデータが入るのかを示すオフセットが含まれてもよい。また、旧オリジナルデータとオフセットとが一つのセットとなっても良い。このセットの数は、旧オリジナルデータの個数と同じ数であっても良い。この例では、そのセットの数は一つであり、そのセットには、８００バイトの旧オリジナルデータと、その旧オリジナルデータの位置を表すオフセット「５１４バイト」が含まれても良い。
【００７８】
このような新差分ファイルＡ´−Ａのファイルメタデータも、記憶管理テーブル５１に登録される。その際、例えば、そのファイルメタデータ中のリンク用テーブルには、新差分ファイルＡ´−Ａのヘッダ部、重複データ長、重複データ後オフセット情報及び旧オリジナルデータ情報の各々に関する情報（例えば、新差分ファイルＡ´−Ａにおける位置）が記述されてもよい。
【００７９】
ＮＡＳコントローラ５のＣＰＵ１１は、上記の新差分ファイルＡ´−Ａと、更新後ファイルＡ´とに基づいて、更新前ファイルＡを復元することができる。具体的には、例えば、ＣＰＵ１１は、新差分ファイルＡ´−Ａのヘッダ部、重複データ長及び重複データ後オフセット情報を参照することにより、更新後ファイルＡ´から重複データを特定することができる。また、ＣＰＵ１１は、新差分ファイルＡ´−Ａの旧オリジナルデータ情報を参照することにより、新差分ファイルＡ´−Ａ中の旧オリジナルデータを特定することができる。ＣＰＵ１１は、新差分ファイルＡ´−Ａの旧オリジナルデータ情報に基づいて、特定された重複データと旧オリジナルデータとを組み合わせることにより、更新前ファイルＡを復元することができる。
【００８０】
次に、旧差分ファイルについて説明する。旧差分ファイルＡ−Ａ´は、その旧差分ファイルＡ−Ａ´と更新前ファイルＡとから更新後ファイルＡ´を復元するのに必要な情報が含まれたファイルとなる。具体的には、例えば、旧差分ファイルＡ−Ａ´には、ヘッダ部と、重複データ長と、重複データ後オフセット情報と、新オリジナルデータ情報とが含まれる。ヘッダ部には、最初の重複データの前に旧オリジナルデータが何バイトあるか、換言すれば、更新前ファイルＡの先頭から何バイトスキップすれば重複データを参照できるかを表すオフセット（この例では「０」）が含まれる。重複データ長は、最初の重複データのデータ長（この例では「５１４バイト」）を表す情報である。重複データ後オフセット情報には、最初の重複データの後から何バイトスキップすれば次の重複データを参照できるのかを表すオフセットと、次の重複データのデータ長とが含まれる（この例では、重複データは一つだけなので、オフセットは「０」（又はヌル）、重複データ長は「０バイト」となる）。新オリジナルデータ情報には、例えば、新オリジナルデータそれ自体と、更新後ファイルＡ´の先頭からどの位置にその新オリジナルデータが入るのかを示すオフセットとのセットが含まれる。このセットの数は、新オリジナルデータの個数と同じ数であっても良い。この例では、そのセットの数は二つである。第一のセットには、５０バイトの新オリジナルデータと、その新オリジナルデータの位置を表すオフセット「０」とが含まれる。第二のセットには、１０００バイトの新オリジナルデータと、その新オリジナルデータの位置を表すオフセット「５６４バイト」が含まれる。
【００８１】
ＮＡＳコントローラ５のＣＰＵ１１は、上記の旧差分ファイルＡ−Ａ´と、更新前ファイルＡとに基づいて、更新後ファイルＡ´を復元することができる。具体的には、例えば、ＣＰＵ１１は、旧差分ファイルＡ−Ａ´のヘッダ部、重複データ長及び重複データ後オフセット情報を参照することにより、更新前ファイルＡから重複データを特定することができる。また、ＣＰＵ１１は、旧差分ファイルＡ−Ａ´の新オリジナルデータ情報を参照することにより、旧差分ファイルＡ−Ａ´中の新オリジナルデータを特定することができる。ＣＰＵ１１は、新差分ファイルＡ´−Ａの新オリジナルデータ情報に基づいて、特定された重複データと新オリジナルデータとを組み合わせることにより、更新後ファイルＡ´を復元することができる。
【００８２】
図６Ａの説明に戻る。ＣＰＵ１１は、新差分ファイルＡ´−ＡをＬＵ１に書き、更新前ファイルＡが存在する記憶領域（ＬＵ１における記憶領域）を開放する。この処理に伴い、ＣＰＵ１１は、ＬＵ１上のフォルダＹにおける更新前ファイルＡに関するファイルメタデータを更新する。具体的には、例えば、ＣＰＵ１１は、更新前ファイルＡにおける重複データについての参照位置情報を、更新後ファイルＡ´の重複データについての参照位置情報と同じにし（つまりＬＵ０における重複データの位置を表す情報とし）、且つ、更新前ファイルＡにおける旧オリジナルデータについては、ＬＵ１における存在場所（具体的には、新差分ファイルＡ´−Ａにおける旧オリジナルデータ）を表す参照位置情報とする（その情報を表すリンク用テーブルを追加する）。
【００８３】
また、ＣＰＵ１１は、更新前ファイルＡが存在する記憶領域をＬＵ１から開放したことに関するログを、システムボリューム４０２に存在する重複ファイルリスト４０３に記録する。
【００８４】
図６Ｂは、重複データの領域開放のまた別の例の概念図である。
【００８５】
ＬＵ０に、ファイルＡが存在する。そして、その後に、ファイルＡが更新され、更新後のファイルＡ（以下、更新後ファイルＡ´）が、ファイルＡとは別のファイル名で更新されたとする。これにより、ＬＵ０に、更新前ファイルＡと更新後ファイルＡ´との両方が存在することになる（但しファイル名が異なる）。
【００８６】
この場合において、ＮＡＳコントローラ５のＣＰＵ１１は、ＬＵ０に存在する更新後ファイルＡ´と更新前ファイルＡとが互いに一部重複していることを、所定の方法により検出することができる。
【００８７】
ＣＰＵ１１は、更新後ファイルＡ´と更新前ファイルＡとに基づいて新差分ファイルＡ´−Ａを得る。そして、ＣＰＵ１１は、更新前ファイルＡが存在する記憶領域を開放し、代わりに、新差分ファイルＡ´−Ａを、その開放された記憶領域を有するＬＵに書く。この処理に伴い、ＣＰＵ１１は、更新前ファイルＡに関するファイルメタデータを更新する（具体的には、例えば、図６Ａの場合と同様に更新する）。
【００８８】
また、ＣＰＵ１１は、更新前ファイルＡが存在する記憶領域をＬＵ０から開放したことに関するログを、システムボリューム４０２に存在する重複ファイルリスト４０３に記録する。
【００８９】
以上が、重複データの領域開放についての例である。
【００９０】
以下、本実施例について更に詳細に説明する。
【００９１】
まず、重複データの領域開放のことを分かりやすくするため、参考として、図７及び図８を参照し、重複データの領域開放が行われない場合の、ファイルの読出し処理と、ファイルの書き込み処理との流れについて説明する。そして、その後で、本実施例で行われるファイル読出し処理とファイル書込み処理、すなわち、重複データの領域開放が行われる場合のファイル読出し処理とファイル書き込み処理との流れについて説明する。
【００９２】
図７は、重複データの領域開放が行われない場合のファイル読出し処理の流れの一例を示す。
【００９３】
ファイル読出し命令（ファイルレベルの読出し命令）を受信した場合、ＮＡＳコントローラ５のＣＰＵ１１は、読出し命令の対象である読出し対象ファイルが、メモリ７におけるキャッシュ領域に存在するか否かを調べる（ステップＳ１）。
【００９４】
Ｓ１の結果、キャッシュ領域に読み出し対象ファイルがあれば（Ｓ２でＹＥＳ）、ＣＰＵ１１は、データコントローラ１４に、キャッシュ領域における読出し対象ファイルを読み出し命令の送信元の情報処理装置１に転送することを指示する（Ｓ１１）。これにより、キャッシュ領域における読出し対象ファイルは、データコントローラ１４からLAN I/F制御部１３を介して、読出し命令の送信元の情報処理装置１に送信される（Ｓ１２）。
【００９５】
Ｓ１の結果、キャッシュ領域に読み出し対象ファイルがなければ（Ｓ２でＮＯ）、ＣＰＵ１１は、記憶管理テーブル５１から読出し対象ファイルのファイルメタデータを検索する（Ｓ３）。
【００９６】
Ｓ３の結果、読出し対象ファイルのファイルメタデータが見つからなければ（Ｓ４でＹＥＳ）、ＣＰＵ１１は、読出し命令の送信元の情報処理装置１に、異常終了ステータスを報告する（Ｓ５）。
【００９７】
Ｓ３の結果、読出し対象ファイルのファイルメタデータが見つかれば（Ｓ４でＮＯ）、ＣＰＵ１１は、そのファイルメタデータ中の参照位置情報を参照する（つまり、読み出し対象ファイルの格納位置を取得する）（Ｓ６）。そして、ＣＰＵ１１は、その参照位置情報に基づいて、読出し対象ファイルのデータを取得することをデータコントローラ１４に指示する（Ｓ７）。これにより、読出し対象ファイルのデータの読出し命令が、データコントローラ１４からFC I/F制御部１５を介して記憶装置システム２に送信される（Ｓ８）。それにより、ＬＵ４８又は５０から読出し対象ファイルのデータが読み出され、読み出されたデータが、記憶装置システム２からＮＡＳコントローラ５に転送される（Ｓ９）。そして、ＮＡＳコントローラ５のデータコントローラ１４が、読出し対象ファイルのデータを、メモリ７におけるキャッシュ領域に格納し、ＣＰＵ１１が、図示しないキャッシュテーブル（例えば、キャッシュ領域のどの場所にデータが格納されているかを示すテーブル）を更新する（Ｓ１０）。その後、上述したＳ１１及びＳ１２の処理が行われる。
【００９８】
図８は、重複データの領域開放が行われない場合のファイル書込み処理の流れの一例を示す。
【００９９】
ファイル書込み命令（ファイルレベルの書込み命令）及び書込み対象ファイルを受信した場合、ＮＡＳコントローラ５のＣＰＵ１１は、書込み対象ファイルに対応する更新前ファイルのファイルメタデータを記憶管理テーブル５１から検索する（Ｓ２１）。
【０１００】
Ｓ２１の結果、更新前ファイルのファイルメタデータが見つからない場合（Ｓ２２でＹＥＳ）、書込み対象ファイルは、未だ記憶装置システム２に記憶されていない新規のファイルである。ＣＰＵ１１は、データコントローラ１４に、書込み命令で指定されている論理ボリュームの空き領域に書込み対象ファイルを書き込むことを指示する（Ｓ２３）。これにより、書込み対象ファイルのデータを書き込むことの書込み命令が、データコントローラ１４からFC I/F制御部１５を介して記憶装置システム２に送信される（Ｓ２４）。ＬＵ４８又は５０に書込み対象ファイルのデータが、指定された論理ボリュームに書き込まれる（Ｓ２５）。ＣＰＵ１１は、書き込まれた書込み対象ファイルのファイルメタデータを生成し、そのファイルメタデータを記憶管理テーブル５１に追記する（Ｓ２６）。
【０１０１】
Ｓ２１の結果、更新前ファイルのファイルメタデータが見つかった場合（Ｓ２２でＮＯ）、書込み対象ファイルは、既に記憶装置システム２に記憶されている更新前ファイルに対する更新後ファイルとなる。ＣＰＵ１１は、更新前ファイルのファイルメタデータ中の参照位置情報を参照する（Ｓ２７）。そして、ＣＰＵ１１は、その参照位置情報に基づいて、更新前ファイルのデータを更新後ファイルに更新すること（つまり更新前ファイルに更新後ファイルを上書きすること）をデータコントローラ１４に指示する（Ｓ２８）。これにより、更新後ファイルのデータの書込み命令が、データコントローラ１４からFC I/F制御部１５を介して記憶装置システム２に送信される（Ｓ２９）。それにより、ＬＵ４８又は５０に更新後ファイルのデータが書き込まれていく（Ｓ３０）。
【０１０２】
更新後ファイルのデータサイズが更新前ファイルのデータサイズ以下の場合には（Ｓ３１でＮＯ）、Ｓ３５に進む。更新後ファイルのデータサイズが更新前ファイルのデータサイズよりも多い場合には（Ｓ３１でＹＥＳ）、ＮＡＳコントローラ５のＣＰＵ１１が、その多い分のデータ（ここでは「残データ」と言う）を、更新後ファイルの書込み先の論理ボリュームの空いている領域に残データを書き込むことをデータコントローラ１４に指示する（Ｓ３２）。これにより、残データの書込み命令が、データコントローラ１４からFC I/F制御部１５を介して記憶装置システム２に送信される（Ｓ３３）。ＬＵ４８又は５０に更に残データが書き込まれる（Ｓ３４）。ＮＡＳコントローラ１１のＣＰＵ１１は、書き込まれた更新後ファイルのファイルメタデータを更新する（Ｓ３５）。例えば、ＣＰＵ１１は、更新後ファイルと更新前ファイルとが全く同じ場合には、更新日時等の属性情報を更新する。また、例えば、ＣＰＵ１１は、上記残データが格納された場合には、属性情報に加えて、参照位置情報も更新する（例えば、残データに対応するリンク用テーブルを追加する）。
【０１０３】
ＮＡＳコントローラ５のＣＰＵ１１は、記憶管理テーブル５１を記憶装置システム２に送信し、記憶装置システム２における記憶資源（例えば、HDD４５又は４６、メモリ２７、キャッシュメモリ３５又は共用メモリ３３）に記憶させることができる。
【０１０４】
以上が、重複データの領域開放が行われない場合におけるファイル読出し処理とファイル書き込み処理の流れについての説明である。次に、重複データの領域開放が行われる場合におけるファイル読出し処理とファイル書き込み処理の流れについて説明する。
【０１０５】
図９は、重複データの領域開放が行われる場合のファイル読出し処理の流れの一例を示す。
【０１０６】
図９のＳ４１〜Ｓ５２は、図７のＳ１〜Ｓ１２と同様である。Ｓ５２の後、ＮＡＳコントローラ５のＣＰＵ１１は、読み出されたファイルに関する所定種類の情報を含んだレコードを、ファイル比較用テーブル５３の先頭に追記する（Ｓ５３）。
【０１０７】
図１０、図１１及び図１２は、重複データの領域開放が行われる場合のファイル書込み処理の流れの一例を示す。以下、これらの図の他、適宜に、図４を参照して、書込み処理について説明する。なお、図１０、図１１及び図１２により示す処理の流れは、書込み対象ファイルの更新前ファイルのファイルメタデータが記憶管理テーブル５１に存在しない場合のいわゆる新規のファイルの書き込みについての流れである。しかし、この処理は、書込み対象ファイルが新規のファイルの場合だけでなく、更新後ファイルの場合にも適用することができる。
【０１０８】
書込み対象ファイルが新規ファイルと判断された場合、図１０に示すように、図８のＳ２３〜Ｓ２６と同様の処理が行われる（Ｓ６１〜Ｓ６４）。以下、新規ファイルのデータを、「第一のデータ」と言う。なお、後述のリモートコピー処理の場合には、ＣＰＵ１１は、第一のデータを、ＮＡＳコントローラ５のキャッシュ領域、或いは、記憶装置システム２のキャッシュメモリ３５に残しておき、キャッシュ領域又はキャッシュメモリ３５から、第一のデータを、コピー先に転送するようにしてもよい。
【０１０９】
ＮＡＳコントローラ５のＣＰＵ１１は、ファイル比較用テーブル５３の先頭のレコードを参照し（Ｓ６５）、そのファイル比較用テーブル５３にマーク済みのファイルの参照位置情報を記憶管理テーブル５３から取得する（Ｓ６６）。ここで、「マーク済みのファイル」とは、ファイル比較用テーブル５３に存在するレコードに対応したファイルのことである。ＣＰＵ１１は、図４に示すように、Ｓ６６で取得した参照位置情報が表す場所に存在するマーク済みファイルのデータ（以下、「第二のデータ」と言う）と、第一のデータとを比較する（Ｓ６７）。
【０１１０】
Ｓ６７の結果、１ブロック（例えば５１２バイト）以上の部分一致領域（換言すれば重複データ）が無い場合には、Ｓ６５で参照したレコードが、ファイル比較用テーブル５３における最後のレコードで無ければ（Ｓ７４でＮＯ）、再びＳ６５の処理が行われる。Ｓ６５で参照したレコードが、ファイル比較用テーブル５３における最後のレコードであった場合（Ｓ７４でＹＥＳ）、ＣＰＵ１１は、第一のデータと同一のファイル名及び／又はデータ長のファイル（以下、このファイルのデータを「第三のデータ」と言う）のファイルメタデータを記憶管理テーブル５１から検索する（Ｓ７５）。第三のデータのファイルメタデータが見つからなかった場合、処理が終了となっても良い。第三のデータのファイルメタデータが見つかった場合、ＣＰＵ１１は、そのファイルメタデータ中の参照位置情報が表す場所に存在する第三のデータと、第一のデータとを比較する（Ｓ７６）。
【０１１１】
Ｓ７６の結果、１ブロック以上の部分一致領域がある場合であって（Ｓ７７でＮＯ）、全てのデータが一致した場合には（Ｓ６９でＹＥＳ）、後述のＳ７０の処理が行われ、部分一致の場合には（Ｓ６９でＮＯ）、図１２のＳ８１の処理が行われる。Ｓ７６の結果、１ブロック以上の部分一致領域がない場合（Ｓ７７でＹＥＳ）、Ｓ７５の検索で見つかったファイルメタデータが、記憶管理テーブル５１の最後の位置に存在するファイルメタデータでなければ（Ｓ７８でＮＯ）、再びＳ７５の処理が行われる。
【０１１２】
さて、Ｓ６７の結果、又は、Ｓ７６の結果、１ブロック以上の部分一致領域があった場合であって（図１１のＳ６８でＮＯ、又は、Ｓ７７でＮＯ）、全てのデータが一致した場合には（Ｓ６９でＹＥＳ）、後述のＳ７０の処理が行われる。すなわち、ＣＰＵ１１は、図４にも示す通り、信頼性比較用テーブル５５を参照し、第一のデータが存在するＬＵの信頼性順位と、第二のデータ（又は第三のデータ）が存在するＬＵの信頼性順位とを比較する（Ｓ７０）。ＣＰＵ１１は、信頼性順位の低い方のデータの参照位置情報を、信頼性順位の高い方のデータの参照位置情報に更新する（Ｓ７１）。ＣＰＵ１１は、信頼性順位の低い方のデータが存在する記憶領域を開放する（Ｓ７２）。ＣＰＵ１１は、完全な重複が得られた第一データと第二データ（又は第三データ）に関する情報（例えば、それぞれのファイルメタデータの全部又は一部）と、それら第一データと第二データ（又は第三データ）とのうちのいずれか一方が存在する領域が開放されたことを、システムボリューム４０２に存在する重複ファイルリスト４０３に登録する（Ｓ７３）。
【０１１３】
Ｓ６７の結果、又は、Ｓ７６の結果、１ブロック以上の部分一致領域があった場合であって（図１１のＳ６８でＮＯ、又は、Ｓ７７でＮＯ）、全てのデータが一致したわけではない場合には（Ｓ６９でＮＯ）、図１２のＳ８１の処理が行われる。すなわち、ＣＰＵ１１は、第一のデータ（更新後ファイル）と第二のデータ又は第三のデータ（更新前ファイル）とに基づいて新差分ファイルを得る（Ｓ８１）。ＣＰＵ１１は、信頼性比較用テーブル５５を参照し、第一のデータが存在するＬＵ（以下、第一のＬＵ）の信頼性順位と、第二のデータ（又は第三のデータ）が存在するＬＵ（以下、第二のＬＵ）の信頼性順位とを比較する（Ｓ８２）。
【０１１４】
Ｓ８２の結果、第一のＬＵの方が第二のＬＵ以上に信頼性順位が高い場合には（Ｓ８３でＮＯ）、後述のＳ８７が行われる。
【０１１５】
一方、Ｓ８２の結果、第一のＬＵの方が第二のＬＵよりも信頼性順位が低い場合には（Ｓ８３でＹＥＳ）、ＣＰＵ１１は、データコントローラ１４に、第二のＬＵに第一のデータを書き込むことの指示を出す（Ｓ８４）。これにより、第一のデータが、より信頼性順位の高い第二のＬＵに書き込まれる（Ｓ８５）。ＣＰＵ１１は、第一のデータの参照位置情報を、第二のＬＵにおける書込み先の場所を表す情報に更新する（Ｓ８６）。
【０１１６】
ＣＰＵ１１は、信頼性順位の低い方のＬＵに新差分ファイルを書き込むことの指示をデータコントローラ１４に出す（Ｓ８７）。それにより、データコントローラ１４からFC I/F制御部１５を介して、信頼性順位の低い方のＬＵに新差分ファイルが書き込まれる（Ｓ８８）。ＣＰＵ１１は、少なくとも第二のデータ又は第三のデータ（更には、例えば、信頼性順位の低いＬＵに存在する第一のデータ）が存在する領域を開放する（Ｓ８９）。
【０１１７】
ＣＰＵ１１は、第二の記憶管理テーブル５１を更新する（Ｓ９０）。具体的には、ＣＰＵ１１は、第一のデータと第二のデータ（又は第三のデータ）とのうち、重複データについては、信頼性順位の高い方のＬＵにおけるその重複データが存在する領域を示す参照位置情報に更新し、新差分ファイル中の旧オリジナルデータについては、信頼性順位の低い方のＬＵ（又は信頼性順位の同じＬＵ）におけるその旧オリジナルデータが存在する領域を示す参照位置情報に更新する。
【０１１８】
ＣＰＵ１１は、システムボリューム４０２における重複ファイルリスト４０３を更新する（Ｓ９１）。具体的には、ＣＰＵ１１は、第一のデータと第二のデータ（又は第三のデータ）とが重複していることを重複ファイルリスト４０３に記録する（更に、第二のデータの領域が開放されて新差分ファイルが書かれたことも記録しても良い）。
【０１１９】
以上が、書込み処理における流れの一例である。
【０１２０】
以下、未だ説明を行っていないシステムボリューム４０２及び重複ファイルリスト４０３について説明する。
【０１２１】
システムボリューム４０２とは、例えば、情報処理装置１からのアクセスは不可となっている論理ボリューム（少なくとも、情報処理装置１からの書込みは禁止されている論理ボリューム）である。システムボリューム４０２には、記憶装置システム２の制御に関するシステム情報を記憶させておき、記憶装置システム２のＣＰＵ２５は、そのシステム情報をシステムボリューム４０２から読み込み、そのシステム情報に基づいて動作することができる。重複ファイルリスト４０３は、いわゆるログファイルである。重複ファイルリスト４０３には、例えば、どのファイルとどのファイルとに完全な又は一部の重複があるかが記録される（それらの重複ファイルのうちのどちらのファイルのデータの全部又は一部の領域が開放されたかが記録されてもよい）。具体的には、例えば、重複ファイルリスト４０３には、
（１）［ソース］パス￥ファイル名  （ファイルハンドル；メタデータ位置等）、
（２）［コピー］パス￥ファイル名  （ファイルハンドル）  複製日時  （完全重複か部分重複か）
といった情報が記録される。ここで、（１）の［ソース］は、更新前ファイルか更新後ファイルかに関わらず、重複データが残された方であり、重複データの記憶領域が開放された方ではないものとすることができる。それに対し、（２）の［コピー］は、その逆で、重複データの記憶領域が開放された互いに重複するファイルのうちの領域が開放された方であり、重複データが残された方ではないものとすることができる。
【０１２２】
ＮＡＳコントローラ５のＣＰＵ１１は、例えば、図１３Ａに示すように、この重複ファイルリスト４０３に基づいて、どのファイルとどのファイルとが互いに重複するのかを、特定の装置（例えば、情報処理装置１又はシステム管理者が使用する図示しない端末（以下、管理者端末）に表示することができる。また、例えば、ＣＰＵ１１は、或る重複ファイルの削除の指示を、上記特定の装置（以下、「特定装置」）から受けた場合、その重複ファイル及びそれのファイルメタデータを削除することにより、その重複ファイルを削除することができる。具体的には、例えば、削除の指示が出された重複ファイルが、更新前ファイルの場合には、ＣＰＵ１１は、残された新差分ファイルと、更新前ファイルのファイルメタデータとを削除することにより、その更新前ファイルを削除することができる。また、例えば、削除の指示が出された重複ファイルが、更新後ファイルの場合には、ＣＰＵ１１は、図１３Ｂに示すように、残された新差分ファイルＡ´−Ａと、更新後ファイルＡ´とを用いて更新前ファイルＡを再構築し、且つ、更新後ファイルＡ´とそれのファイルメタデータとを削除することにより、その更新後ファイルＡ´を削除することができる。また、ＣＰＵ１１は、重複ファイルを削除した場合には、その重複ファイルに関わる情報を重複ファイルリスト４０３から削除することもできる。例えば、図１３Ｂの例で言えば、更新後ファイルＡ´を削除した場合には、ＣＰＵ１１は、その更新後ファイルＡ´と更新前ファイルＡとのペアに関する情報を削除することができる。
【０１２３】
また、ＮＡＳコントローラ５のＣＰＵ１１は、例えば、図１３Ｃに示すように、重複ファイルリスト４０３を参照することにより、どのファイルとどのファイルとが重複するかを特定することができる。ＣＰＵ１１は、特定された結果に基づいて、特定の処理を実行することができる。例えば、ＣＰＵ１１は、或るファイルと完全に又は部分的に重複する二以上のファイルを特定した場合、換言すれば、三つ以上のファイルが重複していることを特定した場合、少なくとも二つのファイル以外のファイルを削除しても良い。また、その際、ＣＰＵ１１は、信頼性順位のより高いＬＵに存在するファイルを残しても良いし、残すファイルを信頼性順位のより高い（或いは最も高い）ＬＵに移動させても良い。
【０１２４】
また、ＮＡＳコントローラ５のＣＰＵ１１は、重複ファイルリスト４０３の他に例えば記憶管理テーブル５１も参照することで、記憶装置システム２に存在する複数のファイルのうちどれが重複しないファイルであるかも特定することができる。その場合、ＣＰＵ１１は、例えば、図１３Ｃに示すように、重複しないファイルを、そのファイルが現在存在する第一のＬＵよりも信頼性順位の低い第二のＬＵに移動させ、第一のＬＵから、重複しないファイルの領域を開放し、それにより、第一のＬＵの空きの記憶容量を増やすことを行っても良い。
【０１２５】
以上、この第一実施例によれば、互いに重複する二つのファイルのうち、信頼性順位の高い場所に存在するファイルが残され、信頼性順位の低い場所に存在するファイルの領域が開放される。更新前ファイルと更新後ファイルとが一部重複する場合、更新後ファイルが信頼性順位の低い場所にある場合には、信頼性順位の高い方に移された後、更新前ファイルが開放される。このような処理により、消費される記憶容量を節約しつつも、ファイルが消失してしまう危険性を抑えることができる。
【０１２６】
また、この第一実施例によれば、ファイルの書き込みの際に行われる重複ファイルの検索の範囲は、記憶装置システム２に存在する全てのファイルではなく、その書き込みの時点から近い時点に読み出された一以上のファイル（例えば、書込み時点から所定時間内に読み出されたファイル、又は、書込み時点から近い時点に読み出された所定個数のファイル）に絞り込まれている。これは、以下の点で効率的である。すなわち、例えば、情報処理装置１からの命令に従って、或るフォルダから別のフォルダにファイルをコピーする場合や、或るフォルダから更新前ファイルが読み出されて更新後ファイルとして同一の又は別のフォルダに書き込まれる。その際、或るファイルについての読出し処理の後、あまり長い時間を隔てないで（例えば２４時間以内に）、或るファイル又はそれに対する更新後ファイルの書込み処理が行われる。従って、上記のように、重複ファイルの検索の範囲を、ファイルの書き込みの時点から近い時点に読み出された一以上のファイルとすることは、重複ファイルの検出の観点から効率的であると考えられる。少なくとも、総当たり方式で重複ファイルを検索することに比べて短い時間で重複ファイルを見つけることができる。
【０１２７】
また、この第一実施例によれば、更新前ファイルと更新後ファイルとが一部重複する場合に生成される差分ファイルは、旧差分ファイルではなく新差分ファイルである。これは、新差分ファイルではなく旧差分ファイルを生成して残す場合よりも、効率が良いと考えられる。なぜなら、更新後ファイルと更新前ファイルとのうちどちらかが削除されるとすれば、更新後ファイルよりも更新前ファイルの方が削除される可能性が高いと考えられるからである。具体的に言えば、例えば、更新前ファイルが削除される場合、新差分ファイルを残す方式であれば、更新前ファイルに対応するファイルメタデータ及び新差分ファイルのみを削除すれば済むが、旧差分ファイルを残す方式だと、旧差分ファイルと削除される更新前ファイルとを用いて更新後ファイルを再構築する必要性が生じるためである。
【０１２８】
また、この第一実施例によれば、重複ファイルが検出された場合には、互いに重複するファイルに関する情報が、重複ファイルリスト４０３に記録される。もし、システム管理者或いはユーザ等から、記憶装置システム２に存在する重複ファイルがどれであるかを提示することが求められた場合には、重複ファイルリスト４０３に基づく情報を提示すれば済むので、改めて検索を行なうことに比べて短い時間で、求められた情報を提示することができる。
【０１２９】
この第一実施例では、重複ファイルが検出された場合、所定のタイミングで（例えば、少なくとも一つの重複データの記憶領域が開放されたときに）、検出された重複ファイルに関する情報が、重複ファイルリスト４０３に記録される。これにより、以後は、重複ファイルリスト４０３に記録されている情報から、重複ファイルを特定することができる。具体的には、例えば、ＣＰＵ１１が、この重複ファイルリスト４０３に記録されている情報を、上記特定装置（例えば、情報処理装置１又は管理者端末）に提供し、その情報が表示されれば、特定装置のオペレータ（例えばユーザ或いは管理者）が、重複ファイルを容易に特定することができる。或いは、例えば、ＣＰＵ１１は、重複ファイルリスト４０３を参照することで、重複ファイルがどれであるかを迅速に特定することができる。
【０１３０】
別の言い方をすれば、この第一実施例では、重複ファイルが検出された後に、どれが重複ファイルであるかということが、記憶管理テーブル５１に記録されるのではなく、記憶管理テーブル５１とは別に用意された重複ファイルリスト４０３に記録される。
【０１３１】
例えば、ファイルの複製が３つも４つも作成されたような場合には、或る複製が、別の複製からの複製であることもあり得る。どの複製がどの複製からの複製であるか等を正確に検出する為の領域を、記憶管理テーブル５１に用意するのは効率上良くないと考えられる。また、一つのファイルを複製した時の検索以外に、その複製後のファイルの他のファイルとの重複を検索する必要が生じる。このような場合において、記憶装置システム２内の全ての重複ファイルがリストアップされた重複ファイルリスト４０３があれば、リスト４０３内を検索すれば重複ファイルを特定できるので、記憶管理テーブル５１のみを用いる方法に比べて検索範囲が少なくて済む。具体的な一例として、ファイルＡの更新後ファイルであるファイルＢが作成された後に、ファイルＢの更新後ファイルであるファイルＣが作成されて、更新後ファイルＣを、ファイルＢの存在するＬＵに移動させる場合に、重複ファイルリスト４０３を参照することにより、ファイルＢと重複するファイルがファイルＡであり、ファイルＡのファイルメタデータがどこにあるかということを、高速に特定することができる。
【０１３２】
なお、この第一実施例では、重複ファイルリスト４０３に記録する重複ファイルに関する情報は、たとえ、或る一つのファイルが複数のファイルと重複していたとしても、重複ファイルに関する情報を、１対Ｎとして記録するのではなく、１対１で記録するのが好ましいと考えられる。具体的には、例えば、一つのファイルＡが二つのファイルＢ，Ｃと重複している場合には、ファイルＡとファイルＢ、及び、ファイルＡとファイルＣとのごとく、分けて記録するのが好ましいと考えられる。これにより、例えば、ファイルＡとファイルＢとのうちのファイルＡが削除された場合には、ファイルＢに関するファイルメタデータを更新し、ファイルＣに関するメタデータまで更新しなくても済む。
【実施例２】
【０１３３】
以下、本発明の第二実施例について説明する。なお、以下、上述した第一実施例との相違点を主に説明し、第一実施例との共通点については説明を省略或いは簡略する（なお、これは、後述の他の実施例についても同様である）。
【０１３４】
図１４は、本発明の第二実施例に係る情報処理システムの概要を示す。
【０１３５】
この情報処理システムは、いわゆるリモートコピーを可能にしたシステムとなっている。例えば、プライマリのＮＡＳコントローラ５ＡとセカンダリのＮＡＳコントローラ５Ｂとがある。プライマリのＮＡＳコントローラ５Ａには、プライマリの記憶装置システム２Ａが接続されており、セカンダリのＮＡＳコントローラ５Ｂには、セカンダリの記憶装置システム２Ｂが接続されている。プライマリの記憶装置システム２Ａ（例えばそれの基本筐体）には、セカンダリの記憶装置システム２Ｂ（例えばそれの基本筐体）が、専用線或いは通信ネットワーク等により通信可能に接続されている（実線で図示）。
【０１３６】
この情報処理システムで行われる処理の概要の一例は以下の通りである。
【０１３７】
例えば、まず、プライマリの記憶装置システム２Ａにおけるユーザデータ領域（例えば、システムボリュームを除くＨＤＤ記憶資源上の領域）５０１Ａに存在する全てのデータが、セカンダリの記憶装置システム２ＢのＨＤＤ記憶資源にコピーされることにより、セカンダリの記憶装置システム２Ｂに、プライマリの記憶装置システム２Ａのユーザデータ領域５０１Ａと同じ領域５０１Ｂが用意される。
【０１３８】
また、プライマリの記憶装置システム２Ａにおける所定のメタデータ領域（例えば共用メモリ３３）５０２Ａに、上述した各種テーブル５１，５３及び５５が記録されている。これらのテーブル５１，５３及び５５も、セカンダリの記憶装置システム２Ｂに転送され、それにより、セカンダリの記憶装置システム２Ｂに、プライマリの記憶装置システム２Ａのメタデータ領域５０２Ａと同様の領域５０２Ｂが用意される。
【０１３９】
次に、例えば、ユーザデータ領域５０１Ａに存在する或るファイルと完全に重複するファイルがその領域５０１Ａに記憶された場合、ＮＡＳコントローラ５又はディスクコントローラ２３（例えば、ＣＰＵ１１又は２５）によって、新たに記憶された重複ファイルのファイルメタデータが、記憶管理テーブル５１に登録される。この場合、プライマリの記憶装置システム２Ａ（例えばディスクコントローラ２３）は、新たな重複ファイルのメタデータをセカンダリの記憶装置システム２Ｂに転送する。セカンダリの記憶装置システム２Ｂにおける記憶管理テーブルは、転送されて来たファイルメタデータが追記される。これにより、セカンダリの記憶装置システム２Ｂには、実際には新たな重複ファイルそれ自体のデータが記憶されていないが、情報処理装置１に対して、セカンダリの記憶装置システム２に新たな重複ファイルが存在するように認識させることができる。具体的には、例えば、セカンダリのＮＡＳコントローラ５Ｂが、セカンダリの記憶装置システム２Ｂにおける記憶管理テーブルに新たに登録されたファイルメタデータに基づいて、新たな重複ファイルを情報処理装置１に認識させることができる。
【０１４０】
この様に、ユーザデータ領域５０１Ａに記憶済みの第一のファイルと完全に重複する第二のファイルが同領域５０１Ａに書き込まれた場合、第二のファイルの方の記憶領域が開放されたならば、リモートコピーのために転送するデータは、第二のファイルのファイルメタデータのみで済む。すなわち、書き込まれたファイルそれ自体の転送は不要となるので、転送するデータ量を減らすことができる。
【０１４１】
しかし、このリモートコピー方式を、部分的に重複する更新後ファイルが別ファイル名でユーザデータ領域５０１Ａに書き込まれた場合のリモートコピーに単純に転用するのは好ましくないと考えられる。なぜなら、単純な転用が行われた場合には、更新後ファイルそれ自体の他に、更新後ファイルのファイルメタデータ、新差分ファイル及びそれのファイルメタデータの転送が必要となり、故に、転送するデータ量が増大してしまうためである。
【０１４２】
そこで、この問題点を回避する為に、図１４に示すように、記憶装置システム２Ａ、２Ｂが通信可能に接続されることに代えて又は加えて、ＮＡＳコントローラ５Ａ，５Ｂが通信可能に接続される方式（以下、ＮＡＳコントローラ接続方式）を採用することができる（点線で図示）。以下、このＮＡＳコントローラ接続方式においてプライマリ側及びセカンダリ側で行われる処理の流れの一例を説明する。
【０１４３】
図１５及び図１６は、ＮＡＳコントローラ接続方式においてプライマリ側でリモートコピー処理が開始される場合に行われる処理の流れの一例を示す。
【０１４４】
ＮＡＳコントローラ５Ａが、直前回のリモートコピーより後に行われた更新を検索する（Ｓ１０１）。これは、例えば、リモートコピー処理が終了した日時を、ＮＡＳコントローラ５Ａが、メモリに記憶しておき、その日時と、記憶管理テーブル５１の各ファイルメタデータ中の更新日時とを比較することにより、前回のリモートコピーより後に行われた更新を検索することができる。
【０１４５】
ＮＡＳコントローラ５Ａは、前回のリモートコピーより後に行われた更新場所を表す参照位置情報を記憶管理テーブル５１から取得する（Ｓ１０２）。
【０１４６】
Ｓ１０２の結果、取得された参照位置情報が表す場所に存在するデータが、完全に重複したファイルのデータである場合には（Ｓ１０３でＹＥＳ）、ＮＡＳコントローラ５Ａは、メタデータヘッダ情報中のフラグを「重複データ」として設定し、ヘッドオプションを「無し」として設定する（Ｓ１０４）。ここで、メタデータヘッダ情報とは、ＮＡＳコントローラ５Ａから送信されるファイルメタデータを含んだ情報のヘッダに設定される情報である。ＮＡＳコントローラ５Ａは、後から書かれた重複ファイルのファイルメタデータと、上記メタデータヘッダ情報とを含んだ情報を、ＮＡＳコントローラ５Ｂに転送する（Ｓ１０５）。その後、後述の図１６のＳ１１８が行われる。
【０１４７】
Ｓ１０２の結果、取得された参照位置情報が表す場所に存在するデータが、いわゆる新規ファイルの場合には（Ｓ１０３でＮＯ、Ｓ１０６でＮＯ）、ＮＡＳコントローラ５Ａは、その新規ファイルの読出し命令を記憶装置システム２Ａに送信することにより（Ｓ１０７）、その新規ファイルを取得し、キャッシュ領域に保存しておく（Ｓ１０８）。また、ＮＡＳコントローラ５Ａは、メタデータヘッダ情報中のフラグを「新規データ」として設定し、ヘッドオプションを「無し」として設定する（Ｓ１０９）。ＮＡＳコントローラ５Ａは、キャッシュ領域に保存された新規ファイルと、その新規ファイルのファイルメタデータと、Ｓ１０９でのメタデータヘッダ情報とを含んだ情報を、ＮＡＳコントローラ５Ｂに送信する（Ｓ１１０）。なお、ＮＡＳコントローラ５Ａは、前回のリモートコピーよりも後に書込み対象として受信したファイルの全部又は一部を、キャッシュ領域に残しておいた場合、新規ファイルが、キャッシュ領域に保存されたままになっていれば、Ｓ１０７及びＳ１０８の処理を行うことなく、新規ファイルをＮＡＳコントローラ５Ｂに送信することができる。
【０１４８】
Ｓ１０２の結果、取得された参照位置情報が表す場所に存在するデータが、一部重複の更新後ファイルの場合には（Ｓ１０３でＮＯ、Ｓ１０６でＹＥＳ）、ＮＡＳコントローラ５Ａは、その更新後ファイルの読出し命令を記憶装置システム２Ａに送信することにより（Ｓ１１１）、その更新後ファイルを取得し、キャッシュ領域に保存しておく（Ｓ１１２）。
【０１４９】
また、ＮＡＳコントローラ５Ａは、取得された更新後ファイルに対応する新差分ファイルを、記憶管理テーブル５１を参照することにより特定し、特定された新差分ファイルを、記憶装置システム２Ａから取得し、取得された新差分ファイルをキャッシュ領域に保存する（Ｓ１１３）。また、ＮＡＳコントローラ５Ａは、キャッシュ領域上にある更新後ファイルと新差分ファイルとから更新前ファイルを再構築し、且つ、更新前ファイルと更新後ファイルとに基づいて旧差分ファイルを生成し、生成した旧差分ファイルをキャッシュ領域に保存する（Ｓ１１４）。ＮＡＳコントローラ５Ａは、メタデータヘッダ情報中のフラグを「更新データ」として設定し、ヘッドオプションを「有り」として設定する（Ｓ１１５）。
【０１５０】
また、ＮＡＳコントローラ５Ａは、再構築された更新前ファイルと同じ更新前ファイルをＮＡＳコントローラ５Ｂが記憶装置システム２Ｂから検索するのに必要な情報をヘッダオプションに追加する（Ｓ１１６）。「必要な情報」としては、例えば、セカンダリ側における更新前ファイルの参照位置情報とすることができる。この参照位置情報は、例えば、ＮＡＳコントローラ５Ａが、記憶装置システム２Ａから更新前ファイルの領域を開放する際に、その更新前ファイルの参照位置情報を、更新後ファイルのファイルメタデータ又は新差分ファイルのファイルメタデータに関連付けておくことで、特定することができる。ＮＡＳコントローラ５Ａは、Ｓ１１４で生成した旧差分ファイルとＳ１１５及びＳ１１６におけるメタデータヘッダ情報とを含んだ情報を、ＮＡＳコントローラ５Ｂに送信する（Ｓ１１７）。
【０１５１】
なお、上記のヘッダオプションというのは、通常、ヘッダには存在していなくても良い情報で、存在した場合に特定の機能を実行する為のものである。例えば、ヘッダオプションとして、検索用のパス／ファイル名／領域情報等がヘッダに含められて転送された場合には、そのヘッダオプションを含んだ情報を受け取った側が、そのヘッダオプションに基づき、ファイルを検索することができる。
【０１５２】
以上の処理が、直前回のリモートコピーが行われた後に更新されたファイルの全てについて行われた場合に（Ｓ１１８でＹＥＳ）、処理が終了となり、そうではない場合には（Ｓ１１８でＮＯ）、次の未処理のファイルについて、図１５のＳ１０３の判断が行われる。
【０１５３】
図１７、図１８及び図１９は、ＮＡＳコントローラ接続方式においてセカンダリ側で行われる処理の流れの一例を示す。
【０１５４】
ＮＡＳコントローラ５Ｂは、メタデータヘッダ情報を含んだ情報をＮＡＳコントローラ５Ａから受信した場合、そのメタデータヘッダ情報中のフラグをチェックする（Ｓ１２１）。
【０１５５】
Ｓ１２１の結果、フラグが新規データになっていれば（Ｓ１２２でＹＥＳ）、ＮＡＳコントローラ５Ｂは、受信した情報に含まれている新規ファイルを、その新規ファイルのファイルメタデータの参照位置情報が表す場所に書込む（Ｓ１２３）。また、ＮＡＳコントローラ５Ｂは、その新規ファイルのファイルメタデータを記憶管理テーブル５１に追加する（Ｓ１２４）。その後、図１８のＳ１３５の処理が行われる。
【０１５６】
Ｓ１２１の結果、フラグが重複データになっていれば（Ｓ１２２でＮＯ、Ｓ１２５でＹＥＳ）、ＮＡＳコントローラ５Ｂは、受信した情報に含まれている更新前ファイル（一方の重複ファイル）のファイルメタデータに対応するファイルメタデータを記憶管理テーブル５１から特定し、その特定されたファイルメタデータ中の参照位置情報を取得する（Ｓ１２６）。ＮＡＳコントローラ５Ｂは、取得された参照位置情報が表す場所にある重複ファイルを記憶したＬＵの信頼性順位と、格納予定領域を有するＬＵ（更新後ファイル（他方の重複ファイル）のファイルメタデータが表すＬＵ）の信頼性順位とを、信頼性比較用テーブル５５を用いて比較する（Ｓ１２７）。
【０１５７】
Ｓ１２７の結果、格納予定領域のＬＵの方が信頼性順位が低い場合には（図１８のＳ１２８でＮＯ）、Ｓ１３３の処理が行われる。Ｓ１２７の結果、格納予定領域のＬＵの方が信頼性順位が高い場合には（図１８のＳ１２８でＹＥＳ）、ＮＡＳコントローラ５Ｂは、更新前ファイル（一方の重複ファイル）を、信頼性順位の低いＬＵから読出し（Ｓ１２９、Ｓ１３０）、読み出された更新前ファイルを、格納予定領域に書き込む（Ｓ１３１）。そして、ＮＡＳコントローラ５Ｂは、読み出された重複ファイルが存在する領域を、信頼性順位の低いＬＵから開放する（Ｓ１３２）。ＮＡＳコントローラ５Ｂは、書込み後のファイルに関するファイルメタデータ（つまり、ＮＡＳコントローラ５Ａから受信した更新後ファイルのファイルメタデータ）を記憶管理テーブル５１に追記し、且つ、領域開放されたファイルのファイルメタデータを更新する（Ｓ１３３）。
【０１５８】
ＮＡＳコントローラ５Ｂは、記憶装置システム２Ｂにおけるシステムボリューム内の重複ファイルリストを更新する（Ｓ１３４）。例えば、ＮＡＳコントローラ５Ｂは、Ｓ１２６〜Ｓ１３３の処理を行うことにより、重複ファイルリストを更新する場合には、互いに完全に重複するファイルに関する情報を、重複ファイルリストに追記する。
【０１５９】
また、ＮＡＳコントローラ５Ｂは、記憶管理テーブル５１において追加及び更新されたファイルメタデータを、記憶装置システム２Ｂに送信する（Ｓ１３５）。これにより、記憶装置システム２Ｂにおける記憶管理テーブルが更新され、その結果、その記憶管理テーブルが、ＮＡＳコントローラ５Ｂにおける更新後の記憶管理テーブル５１と同じ内容になる。なお、ＮＡＳコントローラ５Ｂは、このＳ１３５の処理を、Ｓ１３４が行われる都度に行うのではなく、例えば、更新されたファイルメタデータが所定数になった場合に、その所定数の更新後のファイルメタデータについてＳ１３５を行っても良い。
【０１６０】
Ｓ１２１の結果、フラグが更新データになっていれば（図１７のＳ１２２でＮＯ、Ｓ１２５でＮＯ）、ＮＡＳコントローラ５Ｂは、受信した情報に含まれている更新前ファイルのファイルメタデータに対応するファイルメタデータを記憶管理テーブル５１から特定する（図１９のＳ１３６）。ＮＡＳコントローラ５Ｂは、その特定されたファイルメタデータ中の参照位置情報から、更新前ファイルを読み出す（Ｓ１３７、Ｓ１３８）。ＮＡＳコントローラ５Ｂは、読み出された更新前ファイルと、受信した情報中の旧差分ファイルとにより、更新後ファイルを作成し、且つ、その更新後ファイルと更新前ファイルとに基づいて新差分ファイルを作成する（Ｓ１３９）。ＮＡＳコントローラ５Ｂは、読み出された更新前ファイルが存在するＬＵの信頼性順位と、作成された更新後ファイルの格納予定領域のＬＵ（受信した情報中の更新後ファイルのファイルメタデータが表すＬＵ）の信頼性順位とを、信頼性比較用テーブル５５を用いて比較する（Ｓ１４０）。更新後ファイルの格納予定領域のＬＵの方が信頼性順位が高い場合、ＮＡＳコントローラ５Ｂは、作成された更新後ファイルを、その格納予定領域のＬＵに書き込む（Ｓ１４１）。また、ＮＡＳコントローラ５Ｂは、作成された更新後ファイルと読み出された更新前ファイルとに基づく新差分ファイルを、信頼性順位の低い方のＬＵ（又は信頼性順位が同一のＬＵ）に書き込む（Ｓ１４２）。また、ＮＡＳコントローラ５Ｂは、読み出された更新前ファイルが存在する領域を開放する（Ｓ１４３）。ＮＡＳコントローラ５Ｂは、更新後ファイルの書込みや、新差分ファイルの書込みや、更新前ファイルの領域開放に従って、記憶管理テーブル５１を更新する。その後、図１８の上述したＳ１３４及びＳ１３５の処理が行われる。
【０１６１】
このように、セカンダリ側のＮＡＳコントローラ５Ｂが、更新後ファイル及び新差分ファイルを生成するようにすることで、更新後ファイルや新差分ファイルの転送を不要にできるので、転送されるデータ量を減少させることができる。
【０１６２】
なお、旧差分ファイルを送り、その旧差分ファイルから、更新後ファイルと新差分ファイルとの生成をセカンダリ側で行うことに代えて、更新後ファイルを転送することにより、更新後ファイルを生成することを不要にするようにしてもよい。なお、いずれの方式を採用するかを、ユーザ又はシステム管理者からの指令により適宜に選択されても良いし、所定の条件に基づいて、ＮＡＳコントローラ５又はディスコントローラ２３により自動的に選択されてもよい。所定の条件としては、例えば、更新後ファイルのデータサイズが、データ転送に大きな影響の出ることのない程度の所定サイズ未満の場合には、更新後ファイルそれ自体が転送される方式が選択され、そうではない場合には、旧差分ファイルが生成されて転送される方式が選択されても良い。
【実施例３】
【０１６３】
以下、本発明の第三実施例について説明する。
【０１６４】
図２０Ａは、本発明の第三実施例に係る情報処理システムの概要を示す。
【０１６５】
ＬＡＮ３に、バックアップサーバ１０１が接続される。バックアップサーバ１０１には、テープライブラリ１０３が接続されている。テープライブラリ１０３には、記憶装置としてテープを備えたテープシステム１０５が接続されている。テープライブラリ１０３は、この例では、バックアップサーバ１０１に直接接続されているが、ＬＡＮ３等の通信ネットワークを介して接続されても良い。テープライブラリ１０３は、内蔵するテープシステム１０５に対してデータの読み書きを行うことができる。テープシステム１０５は、通常、処理の高速化のために複数のテープデッキを有しているが、ここでは図示していない。また、モデルをシンプルにするために、テープライブラリ１０３の収納可能なテープの一本に、一つのＬＵが格納されているように図示している。具体的には、例えば、図示のように、テープ１にＬＵ０のデータが格納されており、テープ２にＬＵ１のデータが格納されている。
【０１６６】
ＮＡＳコントローラ５には、バックアップサーバ登録テーブル１０２が、例えばメモリ７に記憶されている。バックアップサーバ登録テーブル１０２には、前もって、特定の者（例えばシステム管理者）により、特定のバックアップサーバに関する情報（例えば、識別子）が登録される。
【０１６７】
記憶装置システム２のＬＵ０とＬＵ１（以下、プライマリのＬＵ０、ＬＵ１）には、同一のファイルＡが存在する。ＮＡＳコントローラ５により、情報処理装置１に対しては、両方のファイルＡが認識可能とされ、テーブル１０２に登録されたバックアップサーバ１０１に対しては、プライマリのＬＵ０に存在するファイルＡは認識可能とされるが、プライマリのＬＵ１に存在するファイルＡは隠蔽される。このように、少なくとも一つの重複ファイルを、登録されたバックアップサーバ１０１に対して隠蔽することで、例えば同一内容のファイルを多重にバックアップすることを防げるので、バックアップされるデータの量を低減することができる。また、その結果として、バックアップに要する時間を短縮することができる。
【０１６８】
プライマリのＬＵ１には、更に、記憶装置システム２に存在する各重複ファイルのファイルメタデータを記録したファイル（以下、メタデータ集合ファイル）Ｘも記録されている。また、上記の隠蔽されたファイルであっても、データのリストア時に完全に元の状態に復元できるように、ＮＡＳコントローラ５は、記憶装置システム２におけるメタデータ集合ファイルＸをバックアップサーバ１０１に認識させる。図２０Ａでは、より信頼性の低い記憶領域であるＬＵ１にメタデータ集合ファイルＸが配置されているようにバックアップサーバ１０１には認識される。その結果、例えば、メタデータ集合ファイルＸは、バックアップサーバ１０１により、プライマリのＬＵ１から読み出されて、セカンダリのＬＵ１（テープ２におけるＬＵ１）に格納される。
【０１６９】
この第三実施例では、第一、第二及び第三のモードのうちの少なくとも一つのモードが採用される。
【０１７０】
（Ａ）第一のモード。
【０１７１】
ファイルイメージでバックアップを行うＮＡＳの場合は、情報処理装置１からのリード処理を順次実行することで、バックアップが実現される。このため、何ら工夫が行われないと、互いに重複する両方のファイルが読み出されて、読み出された両方のファイルがバックアップサーバ１０１に転送されることになるため、データ量の減少が望めない。
【０１７２】
そこで、この第一のモードでは、ＮＡＳコントローラ５は、登録されたバックアップサーバ１０１からのアクセスであることを判別した場合には、ファイルのｉノードツリーから重複ファイルのｉノードのみをバックアップサーバ１０１に対して隠蔽し、ファイルを不可視の状態とする。これにより、バックアップ対象となるデータ量を削減することができる（換言すれば、バックアップに要する時間を短縮することが可能となる）。具体的には、例えば、プライマリのＬＵ０における全てのデータがバックアップサーバ１０１に認識され、その結果、プライマリのＬＵ０から全てのデータが読み出されて、テープ１のＬＵ０（以下、セカンダリのＬＵ０）にバックアップされても良い。
【０１７３】
この第一のモードの場合、重複ファイル以外の全てのファイルの復元をテープシステム１０５上に行うことが可能となる。復元されない重複ファイルについては、例えば、セカンダリのＬＵ０における更新前ファイル（原本となるファイル）と、プライマリのＬＵ１からセカンダリのＬＵ１（テープ２のＬＵ１）にコピーされたメタデータ集合ファイルＸとに基づいて、復元が行われても良い。また、その復元が済んだ後は、テープシステム１０５からメタデータ集合ファイルＸが消去されても良い。
【０１７４】
なお、ＮＡＳコントローラ５に予め登録されてないバックアップサーバからのアクセスを受けた場合には、ＮＡＳコントローラ５は、重複ファイルを含めた全てのファイルの存在を見せても良い。この場合、その予め登録されてないバックアップサーバには、全てのファイルが読み出されても良い。
【０１７５】
なお、ＮＡＳコントローラ５は、更新後ファイルと新差分ファイルとを記憶装置システム２から読み込み、読み込まれた更新後ファイルと新差分ファイルとに基づいて更新前ファイルをキャッシュ領域上で復元し、復元された更新前ファイルをバックアップサーバ１０１に転送してもよい。
また、ＮＡＳコントローラ５は、前述したように、リストア時に以前の状態を回復可能とする為、ＬＵ１の不可視状態ファイルのファイルメタデータを纏めて、一つのめたデータ集合ファイルＸとして、或るＬＵ（例えば図示のようにＬＵ１）に書き込んでも良い。この場合、バックアップサーバ１０１が、そのメタデータ集合ファイルＸに書かれている情報に基づいて、隠蔽されているファイルを読出し、テープライブラリ１０３を介してテープシステム１０５のＬＵに書込みを行うことで、データ量の削減を図りつつ、復元が可能となる。
【０１７６】
また、例えば、メタデータ集合ファイルＸには、他の通常ファイルと識別することができるようなファイル属性が設定されても良いし、或いは、ＮＡＳコントローラ５又はディスクコントローラ２３が管理するパス（フォルダ）／ファイル名で識別可能とされてもよい。この場合、ＮＡＳコントローラ５は、当該メタデータ集合ファイルＸから特定されるファイルを記憶するＬＵより信頼性順位の高いＬＵに存在する実体ファイル（つまり、領域開放されたことにより仮想的に存在するファイルではなくデータとして実在するファイル）を用いて、記憶管理テーブルの再構築（例えば、実体ファイルのデータが実在する位置を表す情報に、ファイルメタデータ中の参照位置情報を更新する処理）を行っても良い。
【０１７７】
（Ｂ）第二のモード。
【０１７８】
旧差分ファイル或いは新差分ファイルそれ自体がバックアップされる。この場合、テープシステム１０５のテープによる必要記憶容量を抑えることができる。すなわち、第一のモードでは、更新後ファイル及び新差分ファイルに基づいて更新前ファイルが復元され、その復元された更新前ファイルがバックアップサーバ１０１に提供されるが、第二のモードでは、新差分ファイルのまま、バックアップサーバ１０１に提供される。これにより、第一のモードよりも、バックアップされるデータの量を低減することが可能である。しかしながら、この第二のモードでは、新差分ファイルに基づいてバックアップサーバ１０１が更新前ファイルを作成する必要が生じ得るので、そのような機能を有しないバックアップサーバにはその機能を備えさせる必要が生じると考えられる。
【０１７９】
（Ｃ）第三のモード。
【０１８０】
記憶装置システム２の物理イメージ（例えば、ボリュームイメージ或いはＬＵイメージ）がファイルとされ、そのファイルがバックアップサーバ１０１に転送される。具体的には、例えば、図２０Ｂに例示するように、ＮＡＳコントローラ５が、先頭ＬＢＡから１ＧＢの連続したブロック単位毎の物理イメージをファイル化し、このファイル（以下、物理イメージファイル）を、バックアップサーバ１０１に転送する。バックアップサーバ１０１は、この物理イメージファイルを、テープライブラリ１０３を介してテープシステム１０５のテープに書き込む。
【０１８１】
この第三のモードによれば、テープシステム１０５に、記憶装置システム２の内容を完全に一致させた復元を行うことができる。換言すれば、第三のモードは、記憶装置システム２の或る記憶領域（例えばＬＵ又は論理ボリューム）における使用済みデータ量が多い場合に有効であり、テープ上に記憶されるファイル名やパス名の情報を削減することで、テープの必要記憶容量を抑えることができる。ここで、「使用済みデータ量」とは、或る記憶領域を占めるデータ（ファイル）の使用量である。
【０１８２】
また、各ファイルの読出し毎にコマンドやステータスを通信する回数が減るため、データ転送効率が向上する他、記憶装置システム２にとっては、次のデータの先読み等が容易で、ハードディスクのシーク時間等の待ち時間を減らすことができる。
【０１８３】
また、システム管理者にとっては、ファイル数の多少に関わらず、データサイズが変化しないので、フルバックアップ時の記憶容量（例えばテープ）の割当の計算が容易である。
なお、例えば、ＮＡＳコントローラ５が、メモリ７等に、フルバックアップに要すると予測される転送時間長（以下、予測転送時間長）と、登録済みバックアップサーバ１０１の前回のアクセス時間長（データ転送時間長）とを記憶するようにすれば、次回のアクセス時には、予測転送時間長と前回のアクセス時間長との差分に基づき、前回からの差分イメージを転送するようにすることも可能である（各リージョンイメージファイルのデータ長が小さくなる）。
【０１８４】
さて、上述した第一モード〜第三モードのどれにするかを、例えば、手動で又は自動で選択することができる。具体的には、例えば、ＮＡＳコントローラ５は、情報処理装置１又は図示しない管理者端末に、第一モード〜第三モードのうちのどのモードを採用するかを受付け、モードの選択を受けた場合、その選択されたモードによるバックアップを行うようにすることができる。
【０１８５】
以下、この第三実施例で行われる処理の流れの一例を説明する。
【０１８６】
図２１Ａは、ＮＡＳコントローラ５がバックアップサーバ１０１からファイルマウント要求を受けた場合に行われる処理の流れの一例を示す。
【０１８７】
ＮＡＳコントローラ５は、アクセス命令（例えば読出し命令）の送信元のバックアップサーバ１０１の識別子が予めバックアップサーバ登録テーブル１０２に登録されているか否かを判断する（Ｓ１５１）。
【０１８８】
Ｓ１５１の結果、送信元のバックアップサーバ１０１が、登録済みでなく（Ｓ１５１でＮＯ）、且つ、アクセス権限が無い場合（Ｓ１５２でＮＯ）、ＮＡＳコントローラ５は、アクセスを拒絶することを意味する応答を返す（Ｓ１５３）。
【０１８９】
Ｓ１５１の結果、送信元のバックアップサーバ１０１が、登録済みでないが（Ｓ１５１でＹＥＳ）、アクセス権限を有する場合（Ｓ１５２でＹＥＳ）、ＮＡＳコントローラ５は、アクセスを許可することを意味する応答を返す（Ｓ１５７）。
【０１９０】
Ｓ１５１の結果、送信元のバックアップサーバ１０１が、登録済みである場合（Ｓ１５１でＹＥＳ）、ＮＡＳコントローラ５は、第一〜第三のモードのうちのどれが選択されているか（例えば、どのモードを実行することがＮＡＳコントローラ５のメモリ７に設定されているか）を判断する（Ｓ１５４）。
【０１９１】
Ｓ１５４の結果、第一又は第二のモードが選択されている場合、ＮＡＳコントローラ５は、重複ファイルのｉノードを隠蔽し、且つ、メタデータ集合ファイルＸ用のｉノードを追加して（Ｓ１５５）、アクセスを許可する応答を返す（Ｓ１５７）。
【０１９２】
Ｓ１５４の結果、第三のモードが選択されている場合、ＮＡＳコントローラ５は、生成されたファイルイメージのｉノード（物理イメージ用のｉノード）を追加し（Ｓ１５６）、アクセスを許可する応答を返す（Ｓ１５７）。
【０１９３】
このように、重複ファイルを隠蔽するか否かの判断は、ファイルマウント要求を受信した場合に行われる。これにより、以後、ＮＡＳコントローラ５が読み出し命令を受信した場合、その読み出し命令が、バックアップのための読み出し命令なのか、情報処理装置１からの通常の読み出し命令なのかを判別することができなくても、バックアップサーバ１０１に対しては重複ファイルを隠蔽することができる。
【０１９４】
図２１Ｂは、ＮＡＳコントローラ５がバックアップサーバ１０１からファイル読出し命令を受けた場合に行われる処理の流れの一例を示す。
【０１９５】
ＮＡＳコントローラ５は、受けたファイル読出し命令が、アクセス権限が無いバックアップサーバからのものである場合（Ｓ１６１でＮＯ）、アクセスを拒絶することを意味する応答を返す（Ｓ１６２）。
【０１９６】
ＮＡＳコントローラ５は、受けたファイル読出し命令が、アクセス権限が有るバックアップサーバからのものである場合（Ｓ１６１でＹＥＳ）、第一〜第三のモードのうちのどれが選択されているか判断する（Ｓ１６３）。
【０１９７】
Ｓ１６３の結果、第一のモードが選択されている場合、ＮＡＳコントローラ５は、ファイル読出し命令に従う読出しを行う場合に、新差分ファイルへアクセスする必要があれば（Ｓ１６４でＹＥＳ）、その新差分ファイルに基づいて、読出し対象の更新前ファイルを復元し、復元された更新前ファイルを、バックアップサーバ１０１に送信する（Ｓ１６６）。一方、新差分ファイルへアクセスする必要がなければ（Ｓ１６４でＮＯ）、ＮＡＳコントローラ５は、読出し対象ファイルを読出し、読み出されたファイルをバックアップサーバ１０１に送信する（Ｓ１６６）。
【０１９８】
Ｓ１６３の結果、第二のモードが選択されている場合、ＮＡＳコントローラ５は、ファイル読出し命令に従って読み出された新差分ファイルを、バックアップサーバ１０１に送信する（Ｓ１６６）。
【０１９９】
Ｓ１６３の結果、第三のモードが選択されている場合、ＮＡＳコントローラ５は、物理イメージを表した物理イメージファイルを作成し（Ｓ１６７）、その物理イメージファイルを、バックアップサーバ１０１に送信する（Ｓ１６６）。
【０２００】
以上のように、ＮＡＳコントローラ５は、選択されているモードに応じた方法でバックアップを行うことができる。
【実施例４】
【０２０１】
以下、本発明の第四実施例について説明する。
【０２０２】
図２２は、本発明の第四実施例で行われる処理の概要を示す。
【０２０３】
この第四実施例は、本発明の第一実施例がＩＬＭ（Information Lifecycle Management）に適用された場合の一例である。
【０２０４】
すなわち、第一実施例では、完全に又は部分的に重複したファイルの検出を上記総当たり方式で行う場合よりも短時間で行うことができる。ファイルの複製や、バージョンを管理するような動作を行う場合、これらのファイルは重要である可能性が高い。この第四実施例では、重要なデータがどれであるかを識別し、重要であると識別されたデータを、積極的に、より信頼性順位の高い領域にバックアップすることが行われる。
【０２０５】
例えば、ＮＡＳコントローラ５が、完全な又は部分的な重複ファイルを重要なファイルであると判断し、その重複ファイルを、より信頼性順位の高い領域に移動或いはバックアップすることができる。具体的には、例えば、完全に又は部分的に互いに重複するファイルが検出された場合、ＮＡＳコントローラ５は、完全に重複するファイルの場合は片方のファイル、部分的に重複する場合には両方のファイルを、確保されている高信頼性領域にバックアップする。これにより、高信頼性領域とは別の領域が障害等によりデータロストしても、重要データは高信頼性領域に保護されているので、重要データの消失の危険性を抑えることができる。なお、ここで、「高信頼性領域」とは、例えば、移動前のファイルが記憶されている記憶領域よりも信頼性順位の高い記憶領域であっても良いし、最高の信頼性順位の記憶領域として予め確保された記憶領域であっても良い。
【０２０６】
また、例えば、ＮＡＳコントローラ５は、一旦バックアップされたファイルの元ファイルが更新された場合は、それをバックアップ先にも反映する。これにより、高信頼性領域とは別の領域が障害等によりデータロストしても、例えば、システム管理者又はアクセス権限のあるユーザから当該高信頼性領域にアクセスすることで、最新のファイルでの回復を期待できる。
【０２０７】
また、例えば、ＮＡＳコントローラ５が、当該高信頼性領域をＷＯＲＭ領域（ライト・ワンス・リード・メニー領域）として管理することで、重要データの更新履歴を当該領域に残していくことができる。
【０２０８】
以下、この図２２を参照して、この第四実施例で行われる処理の流れの一例の概要を説明する。
【０２０９】
例えば、図２２に示すように、記憶装置システム２内に、ＬＵ０に存在するフォルダＸと、ＬＵ１に存在するフォルダＵＹと、ＬＵ３に存在するフォルダＺとがあるとする。フォルダＸには、ファイルＡとファイルＢとがあるとする。ＬＵ０及びＬＵ１には、信頼性順位として「２」が割り当てられており、ＬＵ３には、より高い信頼性順位として「１」が割り当てられているとする。
【０２１０】
この場合において、例えば、ＮＡＳコントローラ５は、フォルダＸ内のファイルＡをフォルダＹにコピーした場合、フォルダＸを有するＬＵ０よりも信頼性順位の高いＬＵを、信頼性比較用テーブル５５を用いて探し、探し出されたＬＵ３におけるフォルダＺに、フォルダＸ内のファイルＡをコピーする。そして、ＮＡＳコントローラ５は、フォルダＸにおけるファイルＡそれ自体と、そのファイルＡの位置を表す参照位置情報を含んだファイルメタデータ６０１とを、フォルダＺに格納する。また、ＮＡＳコントローラ５は、フォルダＹにおけるファイルＡの位置を表す参照位置情報を含んだファイルメタデータ６０３を、フォルダＺのファイルＡに関連付ける（例えば、ファイルＡに統合する）。
【０２１１】
また、例えば、ＮＡＳコントローラ５は、フォルダＸ内のファイルＢを別ファイル名で更新した場合、更新前のファイルＢ及び更新後のファイルＢ´の両方を、フォルダＺにコピーする。また、ＮＡＳコントローラ５は、フォルダＸにおけるファイルＢの位置を表す参照位置情報を含んだファイルメタデータ６０５を、フォルダＺに記憶されているファイルＢに関連付け（例えばファイルＢに統合し）、ファイルＢ´の位置を表す参照位置情報を含んだファイルメタデータ６０７を、フォルダＺに記憶されているファイルＢ´に関連付ける（例えばファイルＢ´に統合する）。
【０２１２】
また、例えば、ＮＡＳコントローラ５は、バックアップ元となったフォルダＸのファイルＡをファイルＡ´に更新した場合、その更新を、バックアップ先のフォルダＺにも反映させる。具体的には、例えば、ＮＡＳコントローラ５は、図２２の下部に示す通り、ファイルＡのファイルメタデータ６０１、６０３のうちの一方を削除し、バックアップ元のフォルダＸにおける更新後ファイルＡ´の参照位置情報を含んだファイルメタデータ６０９を、フォルダＺに記憶された更新後ファイルＡ´に関連付ける（例えば更新後ファイルＡ´に統合する）。
【０２１３】
図２３は、図２２に示した処理流れの概要をより詳細に示したものの一例である。
【０２１４】
例えば、図１１のＳ６９でＮＯの場合、ＮＡＳコントローラ５は、更新前ファイルがバックアップ済みでなければ（Ｓ２０１でＮＯ）、Ｓ２０２以降の処理を行う。バックアップ済みデータであるか否かは、例えば、高信頼性領域に存在するファイルに、更新前ファイルに関するデータ（上記第二データ又は第三データ）のファイルメタデータと同じファイルメタデータが関連付けられているか否かを、記憶管理テーブル５１を参照して調べることにより、判別することができる。
【０２１５】
ＮＡＳコントローラ５は、第一のデータを高信頼性領域に書込み（Ｓ２０２）、高信頼性領域に書かれた第一のデータのエントリ（ファイルメタデータの全部又は一部）を記憶管理テーブル５１に追記する（Ｓ２０３）。また、ＮＡＳコントローラ５は、その第一データの更新前ファイルのデータ（上記第二データ又は第三データ）を高信頼性領域に書込み（Ｓ２０４）、高信頼性領域に書かれた更新前ファイルのデータのエントリを記憶管理テーブル５１に追記する（Ｓ２０５）。更に、ＮＡＳコントローラ５は、Ｓ２０３及びＳ２０５で追記したエントリを高信頼性領域に書き込む（Ｓ２１２）。
【０２１６】
図１１のＳ６９でＮＯの場合、ＮＡＳコントローラ５は、バックアップ済みデータであれば（Ｓ２０１でＹＥＳ）、第一のデータを高信頼性領域に書込み（Ｓ２０６）、記憶管理テーブル５１のエントリ（第一のデータに対応するエントリ）を更新する（Ｓ２０７）。この後、上記Ｓ２１２が行われる。
【０２１７】
図１１のＳ６９でＹＥＳの場合、ＮＡＳコントローラ５は、第一のデータ（書き込み対象のファイル）と重複するファイルがバックアップ済みでなければ（Ｓ２０１でＮＯ）、第一のデータを高信頼性領域に書込み（Ｓ２０９）、その第一のデータと重複する第二又は第三のデータ（原本ファイル、換言すれば、完全に重複する更新前ファイル）のエントリを記憶管理テーブル５１に追加する（Ｓ２１０）。そして、ＮＡＳコントローラ５は、第一のデータのエントリを記憶管理テーブル５１に追加し（Ｓ２１１）、Ｓ２１２を行う。
【０２１８】
図１１のＳ６９でＹＥＳの場合、ＮＡＳコントローラ５は、第一のデータ（書き込み対象のファイル）と重複するファイルがバックアップ済みであれば（Ｓ２０１でＹＥＳ）、Ｓ２０９及びＳ２１１を行うことなく、上記Ｓ２１１及びＳ２１２を行う。
【０２１９】
この第四実施例では、更新前ファイルと完全に又は部分的に重複したファイルを、重要データとして、積極的に、信頼性順位の高いＬＵにバックアップすることができる。
【０２２０】
以上、本発明の好適な幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【０２２１】
例えば、図２４に例示するように、ＮＡＳコントローラ５の機能をディスクコントローラ２３に組み込み、ＮＡＳコントローラ５が設けられなくても良い。具体的には、例えば、ＮＡＳコントローラ５のＣＰＵ１１が行える処理を、ディスクコントローラ２３のＣＰＵ１２５が行うことができる。
【０２２２】
例えば、基本筐体２１にも、一以上の物理記憶装置４５及び／又は４６が搭載されてもよい。また、各増設筐体２３には、複数種類の物理記憶装置４５，４６が混在してもよい。
【０２２３】
また、例えば、記憶管理テーブル５１に登録されるファイルメタデータには、更に、重複ファイルである場合にはそのことを意味するフラグと、重複する相手のファイルのファイルメタデータの参照位置とが記録されても良い。この場合、記憶管理テーブル５１を参照することにより、どのファイルとどのファイルとが重複するかを検索することができる。また、互いに重複する二つのファイルの一方を削除する場合には、その一方のファイルのファイルメタデータを削除し、他方のファイルのファイルメタデータを更新することができる。なお、例えば、三つ以上の重複ファイルを検索することを容易にするためには、重複ファイルリスト４０３を用いる方式と併用することが好ましいと考えられる。
【０２２４】
また、例えば、重複ファイル例えば、重複ファイルも２つ程度までなら目的に合致した運用といえるが、３つ以上に重複している場合、その一部は不要である場合がある。前述の様に、重複部分は共用されるので、領域の圧迫（消費）は少ないが、検索効率の低下等の悪影響が想定される。このため、不要なファイルは削除されることが望ましい。そこで、例えば、ＮＡＳコントローラ５のＣＰＵ１１は、互いに重複するファイルの数（以下、重複数）が一定数に達したか否かを監視し、達したと判断された場合に、各々のファイルを書き込んだ情報処理装置１に、そのことを通知するようにしてもよい。ＮＡＳコントローラ５のＣＰＵ１１は、ファイルを書込んだ情報処理装置１が誰であるかを認識することができるので、重複数が一定数以上になるような書込みに対し、その情報処理装置１へメッセージ送信等により、他にある重複ファイルのパス名等のファイルメタデータを併せて通知して、情報処理装置１のユーザに対し、更新したファイル（例えば複製したファイル）の削除を促すこともできる。他にも、例えば、情報処理装置１のＩＤとそれのメールアドレスとを関連付けてＮＡＳコントローラ５のメモリ７に記憶させておくことで、重複数が一定数になった時点で、ＣＰＵ１１が、各ファイルの所有者（情報処理装置１及び／又はユーザ）に、重複数が一定数になったこと等を記載した電子メールを自動送信し、不要なファイルの削除を促すこともできる。
【０２２５】
また、例えば、ＬＵ単位ではなく、別の単位（例えば、ボリューム単位或いはブロック単位）で、信頼性順位が割り当てられていても良い。
【０２２６】
また、例えば、信頼性順位を参照する方法とは別の方法で、記憶領域の信頼性が判断されても良い。例えば、ＲＡＩＤレベル及び／又は記憶装置種類（例えば、ＦＣ或いはＳＡＳ）に基づいて、信頼性の高低が判別されても良い。
【０２２７】
また、例えば、重複ファイルの有無の判定は、例えば、所定のコンピュータプログラムを実行するＣＰＵによって行われても良いし、ハードウェア回路（例えばデータコントローラ１４）によって行われても良い。
【０２２８】
また、例えば、ＣＰＵ１１は、第一の重複ファイルが記憶されている第一のＬＵと、第二の重複ファイルが記憶されている第二のＬＵとの信頼性順位が同じ場合、空き領域がすくない方のＬＵから、重複データが存在する領域を開放するようにしてもよい。
【図面の簡単な説明】
【０２２９】
【図１】図１は、本発明の第一実施例に係る記憶制御システムが適用されたＮＡＳコントローラを有する情報処理システムの一部を示す。
【図２】図２は、本発明の第一実施例に係る情報処理システムの残りの一部を示す。
【図３】図３Ａは、記憶管理テーブル５１の構成例を示す。図３Ｂは、信頼性比較用テーブル５５の構成例を示す。
【図４】図４は、ファイル比較用テーブル５３の構成例と、このテーブル５３を用いた情報処理の一つの流れの一例を示す。
【図５】図５Ａは、フォルダＸ中のファイルＡをフォルダＹにコピーする処理の概要の説明図である。図５Ｂは、重複データの領域開放の一例の概念図である。
【図６】図６Ａは、重複データの領域開放の別の例の概念図である。図６Ｂは、重複データの領域開放のまた別の例の概念図である。
【図７】図７は、重複データの領域開放が行われない場合のファイル読出し処理の流れの一例を示す。
【図８】図８は、重複データの領域開放が行われない場合のファイル書込み処理の流れの一例を示す。
【図９】図９は、重複データの領域開放が行われる場合のファイル読出し処理の流れの一例を示す。
【図１０】図１０は、重複データの領域開放が行われる場合のファイル書込み処理の流れの一例の一部を示す。
【図１１】図１１は、重複データの領域開放が行われる場合のファイル書込み処理の流れの一例の別の一部を示す。
【図１２】図１２は、重複データの領域開放が行われる場合のファイル書込み処理の流れの一例のまた別の一部を示す。
【図１３】図１３Ａは、重複ファイルリストに基づく表示の一例を示す。図１３Ｂは、重複ファイルリストに基づく更新後ファイルの削除の一例を示す。図１３Ｃは、重複ファイルリストに基づいて重複ファイルを特定した際の処理の一例を示す。
【図１４】図１４は、本発明の第二実施例に係る情報処理システムの概要を示す。
【図１５】図１５は、本発明の第二実施例に係るＮＡＳコントローラ接続方式においてプライマリ側でリモートコピー処理が開始される場合に行われる処理の流れの一例の一部を示す。
【図１６】図１６は、本発明の第二実施例に係るＮＡＳコントローラ接続方式においてプライマリ側でリモートコピー処理が開始される場合に行われる処理の流れの一例の残りの一部を示す。
【図１７】図１７は、本発明の第二実施例に係るＮＡＳコントローラ接続方式においてセカンダリ側で行われる処理の流れの一例の一部を示す。
【図１８】図１８は、本発明の第二実施例に係るＮＡＳコントローラ接続方式においてセカンダリ側で行われる処理の流れの一例の別の一部を示す。
【図１９】図１９は、本発明の第二実施例に係るＮＡＳコントローラ接続方式においてセカンダリ側で行われる処理の流れの一例のまた別の一例を示す。
【図２０】図２０Ａは、本発明の第三実施例に係る情報処理システムの概要を示す。図２０Ｂは、第三のモードにおいて行われる処理の一例の説明図である。
【図２１】図２１Ａは、ＮＡＳコントローラ５がバックアップサーバ１０１からファイルマウント要求を受けた場合に行われる処理の流れの一例を示す。図２１Ｂは、ＮＡＳコントローラ５がバックアップサーバ１０１からファイル読出し命令を受けた場合に行われる処理の流れの一例を示す。
【図２２】図２２は、本発明の第四実施例で行われる処理の概要を示す。
【図２３】図２３は、図２２に示した処理流れの概要をより詳細に示したものの一例である。
【図２４】図２４は、本発明の第一実施例に係る情報処理システムの変形例を示す。
【符号の説明】
【０２３０】
１…情報処理システム  ２…記憶装置システム  ３…ＬＡＮ  ５…ＮＡＳコントローラ  ７…メモリ  １１…ＣＰＵ  ２３…ディスクコントローラ  ４５…FC HDD  ４６…SAS HDD  ４８，５０…ＬＵ  ５１…記憶管理テーブル  ５３…ファイル比較用テーブル  ５５…信頼性比較用テーブル
【図１】
2006338461.tif 000003
【図２】
2006338461.tif 000004
【図３】
2006338461.tif 000005
【図４】
2006338461.tif 000006
【図５】
2006338461.tif 000007
【図６】
2006338461.tif 000008
【図７】
2006338461.tif 000009
【図８】
2006338461.tif 000010
【図９】
2006338461.tif 000011
【図１０】
2006338461.tif 000012
【図１１】
2006338461.tif 000013
【図１２】
2006338461.tif 000014
【図１３】
2006338461.tif 000015
【図１４】
2006338461.tif 000016
【図１５】
2006338461.tif 000017
【図１６】
2006338461.tif 000018
【図１７】
2006338461.tif 000019
【図１８】
2006338461.tif 000020
【図１９】
2006338461.tif 000021
【図２０】
2006338461.tif 000022
【図２１】
2006338461.tif 000023
【図２２】
2006338461.tif 000024
【図２３】
2006338461.tif 000025
【図２４】
2006338461.tif 000026