(57)【特許請求の範囲】
【請求項１】
読出し対象となるデータを格納するデータ領域を含んだディスク装置と、データのバックアップ領域を含んだテープ装置と、前記データ領域のデータを読み出し、前記バックアップ領域に当該データを出力するデータ読出し装置とを含んで構成されるデータ読出しシステムであって、
前記ディスク装置は、
前記データ領域に格納されているデータに該当するファイルに関する情報と、前記データ領域を構成する各データブロックに対応する当該ファイルに関する情報の位置情報とを管理し、
前記データ読出し装置は、
前記データ領域から読み出したデータを一時的に格納する一時記憶領域と、処理部とを備え、
前記処理部は、
前記データ領域を構成するデータブロックを順次に読み出す際に、
当該データブロックに対応する前記ファイルに関する情報の位置情報を参照して、読出し位置のデータに該当する前記ファイルに関する情報の位置を特定し、当該特定された位置の前記ファイルに関する情報を参照して、前記一時記憶領域へのデータの出力位置を算出し、前記データ領域から読み出したデータを前記算出した出力位置に出力し、当該出力したデータに該当するファイルが前記一時記憶領域においてすべて揃ったか否かを判定し、すべて揃ったと判定した場合に、当該ファイルをファイル単位で前記バックアップ領域に出力する
ことを特徴とするデータ読出しシステム。
【請求項２】
前記データ読出し装置は、前記一時記憶領域を管理する情報をさらに管理し、
前記一時記憶領域を管理する情報は、前記一時記憶領域に確保されたファイル領域の先頭アドレス情報を含み、
前記処理部は、
前記一時記憶領域に確保されたファイル領域の先頭アドレス情報を参照して、前記記憶領域に、前記データ領域から読み出したデータに該当するファイルが存在するか否かを判定し、
前記該当するファイルが前記一時記憶領域に存在しないと判定した場合、前記一時記憶領域に前記該当するファイルの領域を確保し、当該確保した領域の先頭アドレスを前記一時記憶領域に確保されたファイルの先頭アドレス情報に登録し、前記確保した領域の先頭アドレスにファイル内の相対位置を加算して、前記出力位置を算出し、
前記該当するファイルが前記一時記憶領域に存在すると判定した場合、前記一時記憶領域に確保されたファイルの先頭アドレスを参照して、前記該当するファイルの前記一時記憶領域に確保されたファイルの先頭アドレスを取得し、取得した当該ファイルの先頭アドレスにファイル内の相対位置を加算して、前記出力位置を算出する
ことを特徴とする請求項１に記載のデータ読出しシステム。
【請求項３】
前記ディスク装置が管理する前記ファイルに関する情報は、
前記データ領域に存在するデータの先頭位置と、当該データのブロック数とを含み、
前記処理部は、
前記一時記憶領域に前記該当するファイルの領域を確保する際、
前記データのブロック数を合計してファイルサイズを算出し、当該算出したファイルサイズ分の領域をファイルの領域として前記一時記憶領域に確保し、
前記ファイル内の相対位置を算出する際、
前記データの先頭位置を参照して、前記該当するファイルのデータのうち、前記読出し位置のデータよりも前の位置に存在するデータについての前記データのブロック数を合計して前記ファイル内の相対位置を算出し、
前記出力したデータに該当するファイルが前記一時記憶領域においてすべて揃ったか否かを判定する際、
前記データの先頭位置を参照して、前記該当するファイルのデータのうち、前記読出し位置のデータが最後の位置に存在する場合に、前記出力したデータに該当するファイルが前記一時記憶領域においてすべて揃ったと判定する
ことを特徴とする請求項２に記載のデータ読出しシステム。
【請求項４】
前記一時記憶領域を管理する情報は、前記ファイルに関する情報の位置情報をさらに含み、
前記処理部は、
前記算出したファイルサイズ分の領域をファイルの領域として前記一時記憶領域に確保するに際し、
前記算出したファイルサイズと前記一時記憶領域のサイズとを比較し、前記算出したファイルサイズが前記一時記憶領域のサイズより大きいと判定した場合、前記データの先頭位置を参照して前記読出し位置のデータに該当するファイルのデータを前記データ領域からすべて読み出し、読み出した当該ファイルのデータをファイル単位で前記バックアップ領域に出力し、
前記算出したファイルサイズと前記一時記憶領域の空きのサイズとを比較し、前記算出したファイルサイズが前記一時記憶領域の空きのサイズより大きいと判定した場合、一時記憶領域を管理する情報に含まれる前記ファイルに関する情報の位置情報により特定された前記ファイルに関する情報を取得し、当該ファイルに関する情報内の前記データの先頭位置を参照して前記一時記憶領域に存在するデータに該当するファイルのデータを前記データ領域からすべて読み出し、読み出した当該ファイルのデータをファイル単位で前記バックアップ領域に出力し、
前記算出したファイルサイズが前記一時記憶領域のサイズ以下であり、前記算出したファイルサイズが前記一時記憶領域の空きのサイズ以下であると判定した場合、前記算出したファイルサイズ分の領域をファイルの領域として前記一時記憶領域に確保する
ことを特徴とする請求項３に記載のデータ読出しシステム。
【請求項５】
前記処理部は、
前記データ領域のデータを順次に読み出す前に、
前記データ領域のデータを順次に読み出した場合に使用する前記一時記憶領域の使用量のうち、最大の使用量に相当する一時記憶領域使用量を算出し、
前記一時記憶領域使用量が前記一時記憶領域よりも大きい場合に、
前記データ領域のデータを順次に読み出す際に前記算出したファイルサイズと前記一時記憶領域のサイズとの比較を行う
ことを特徴とする請求項４に記載のデータ読出しシステム。
【請求項６】
読出し対象となるデータを格納するデータ領域を含んだディスク装置と、データのバックアップ領域を含んだテープ装置と、前記データ領域のデータを読み出し、前記バックアップ領域に当該データを出力するデータ読出し装置とを含んで構成されるデータ読出しシステムに使用されるデータ読出し装置であって、
前記ディスク装置は、
前記データ領域に格納されているデータに該当するファイルに関する情報と、前記データ領域を構成する各データブロックに対応する当該ファイルに関する情報の位置情報とを管理し、
前記データ読出し装置は、
前記データ領域から読み出したデータを一時的に格納する一時記憶領域と、処理部とを備え、
前記処理部は、
前記データ領域を構成するデータブロックを順次に読み出す際に、
当該データブロックに対応する前記ファイルに関する情報の位置情報を参照して、読出し位置のデータに該当する前記ファイルに関する情報の位置を特定し、当該特定された位置の前記ファイルに関する情報を参照して、前記一時記憶領域へのデータの出力位置を算出し、前記データ領域から読み出したデータを前記算出した出力位置に出力し、当該出力したデータに該当するファイルが前記一時記憶領域においてすべて揃ったか否かを判定し、すべて揃ったと判定した場合に、当該ファイルをファイル単位で前記バックアップ領域に出力する
ことを特徴とするデータ読出し装置。
【請求項７】
前記データ読出し装置は、前記一時記憶領域を管理する情報をさらに管理し、
前記一時記憶領域を管理する情報は、前記一時記憶領域に確保されたファイル領域の先頭アドレス情報を含み、
前記処理部は、
前記一時記憶領域に確保されたファイル領域の先頭アドレス情報を参照して、前記記憶領域に、前記データ領域から読み出したデータに該当するファイルが存在するか否かを判定し、
前記該当するファイルが前記一時記憶領域に存在しないと判定した場合、前記一時記憶領域に前記該当するファイルの領域を確保し、当該確保した領域の先頭アドレスを前記一時記憶領域に確保されたファイルの先頭アドレス情報に登録し、前記確保した領域の先頭アドレスにファイル内の相対位置を加算して、前記出力位置を算出し、
前記該当するファイルが前記一時記憶領域に存在すると判定した場合、前記一時記憶領域に確保されたファイルの先頭アドレスを参照して、前記該当するファイルの前記一時記憶領域に確保されたファイルの先頭アドレスを取得し、取得した当該ファイルの先頭アドレスにファイル内の相対位置を加算して、前記出力位置を算出する
ことを特徴とする請求項６に記載のデータ読出し装置。
【請求項８】
前記ディスク装置が管理する前記ファイルに関する情報は、
前記データ領域に存在するデータの先頭位置と、当該データのブロック数とを含み、
前記処理部は、
前記一時記憶領域に前記該当するファイルの領域を確保する際、
前記データのブロック数を合計してファイルサイズを算出し、当該算出したファイルサイズ分の領域をファイルの領域として前記一時記憶領域に確保し、
前記ファイル内の相対位置を算出する際、
前記データの先頭位置を参照して、前記該当するファイルのデータのうち、前記読出し位置のデータよりも前の位置に存在するデータについての前記データのブロック数を合計して前記ファイル内の相対位置を算出し、
前記出力したデータに該当するファイルが前記一時記憶領域においてすべて揃ったか否かを判定する際、
前記データの先頭位置を参照して、前記該当するファイルのデータのうち、前記読出し位置のデータが最後の位置に存在する場合に、前記出力したデータに該当するファイルが前記一時記憶領域においてすべて揃ったと判定する
ことを特徴とする請求項７に記載のデータ読出し装置。
【請求項９】
前記一時記憶領域を管理する情報は、前記ファイルに関する情報の位置情報をさらに含み、
前記処理部は、
前記算出したファイルサイズ分の領域をファイルの領域として前記一時記憶領域に確保するに際し、
前記算出したファイルサイズと前記一時記憶領域のサイズとを比較し、前記算出したファイルサイズが前記一時記憶領域のサイズより大きいと判定した場合、前記データの先頭位置を参照して前記読出し位置のデータに該当するファイルのデータを前記データ領域からすべて読み出し、読み出した当該ファイルのデータをファイル単位で前記バックアップ領域に出力し、
前記算出したファイルサイズと前記一時記憶領域の空きのサイズとを比較し、前記算出したファイルサイズが前記一時記憶領域の空きのサイズより大きいと判定した場合、一時記憶領域を管理する情報に含まれる前記ファイルに関する情報の位置情報により特定された前記ファイルに関する情報を取得し、当該ファイルに関する情報内の前記データの先頭位置を参照して前記一時記憶領域に存在するデータに該当するファイルのデータを前記データ領域からすべて読み出し、読み出した当該ファイルのデータをファイル単位で前記バックアップ領域に出力し、
前記算出したファイルサイズが前記一時記憶領域のサイズ以下であり、前記算出したファイルサイズが前記一時記憶領域の空きのサイズ以下であると判定した場合、前記算出したファイルサイズ分の領域をファイルの領域として前記一時記憶領域に確保する
ことを特徴とする請求項８に記載のデータ読出し装置。
【請求項１０】
前記処理部は、
前記データ領域のデータを順次に読み出す前に、
前記データ領域のデータを順次に読み出した場合に使用する前記一時記憶領域の使用量のうち、最大の使用量に相当する一時記憶領域使用量を算出し、
前記一時記憶領域使用量が前記一時記憶領域よりも大きい場合に、
前記データ領域のデータを順次に読み出す際に前記算出したファイルサイズと前記一時記憶領域のサイズとの比較を行う
ことを特徴とする請求項９に記載のデータ読出し装置。
【請求項１１】
読出し対象となるデータを格納するデータ領域を含んだディスク装置と、データのバックアップ領域を含んだテープ装置と、前記データ領域のデータを読み出し、前記バックアップ領域に当該データを出力するデータ読出し装置とを含んで構成されるデータ読出しシステムにおけるデータ読出し方法であって、
前記ディスク装置は、
前記データ領域に格納されているデータに該当するファイルに関する情報と、前記データ領域を構成する各データブロックに対応する当該ファイルに関する情報の位置情報とを管理し、
前記データ読出し装置は、
前記データ領域から読み出したデータを一時的に格納する一時記憶領域と、処理部とを備え、
前記処理部は、
前記データ領域を構成するデータブロックを順次に読み出す際に、
当該データブロックに対応する前記ファイルに関する情報の位置情報を参照して、読出し位置のデータに該当する前記ファイルに関する情報の位置を特定し、当該特定された位置の前記ファイルに関する情報を参照して、前記一時記憶領域へのデータの出力位置を算出し、前記データ領域から読み出したデータを前記算出した出力位置に出力し、当該出力したデータに該当するファイルが前記一時記憶領域においてすべて揃ったか否かを判定し、すべて揃ったと判定した場合に、当該ファイルをファイル単位で前記バックアップ領域に出力する
ことを特徴とするデータ読出し方法。
【請求項１２】
前記データ読出し装置は、前記一時記憶領域を管理する情報をさらに管理し、
前記一時記憶領域を管理する情報は、前記一時記憶領域に確保されたファイル領域の先頭アドレス情報を含み、
前記処理部は、
前記一時記憶領域に確保されたファイル領域の先頭アドレス情報を参照して、前記記憶領域に、前記データ領域から読み出したデータに該当するファイルが存在するか否かを判定し、
前記該当するファイルが前記一時記憶領域に存在しないと判定した場合、前記一時記憶領域に前記該当するファイルの領域を確保し、当該確保した領域の先頭アドレスを前記一時記憶領域に確保されたファイルの先頭アドレス情報に登録し、前記確保した領域の先頭アドレスにファイル内の相対位置を加算して、前記出力位置を算出し、
前記該当するファイルが前記一時記憶領域に存在すると判定した場合、前記一時記憶領域に確保されたファイルの先頭アドレスを参照して、前記該当するファイルの前記一時記憶領域に確保されたファイルの先頭アドレスを取得し、取得した当該ファイルの先頭アドレスにファイル内の相対位置を加算して、前記出力位置を算出する
ことを特徴とする請求項１１に記載のデータ読出し方法。
【請求項１３】
前記ディスク装置が管理する前記ファイルに関する情報は、
前記データ領域に存在するデータの先頭位置と、当該データのブロック数とを含み、
前記処理部は、
前記一時記憶領域に前記該当するファイルの領域を確保する際、
前記データのブロック数を合計してファイルサイズを算出し、当該算出したファイルサイズ分の領域をファイルの領域として前記一時記憶領域に確保し、
前記ファイル内の相対位置を算出する際、
前記データの先頭位置を参照して、前記該当するファイルのデータのうち、前記読出し位置のデータよりも前の位置に存在するデータについての前記データのブロック数を合計して前記ファイル内の相対位置を算出し、
前記出力したデータに該当するファイルが前記一時記憶領域においてすべて揃ったか否かを判定する際、
前記データの先頭位置を参照して、前記該当するファイルのデータのうち、前記読出し位置のデータが最後の位置に存在する場合に、前記出力したデータに該当するファイルが前記一時記憶領域においてすべて揃ったと判定する
ことを特徴とする請求項１２に記載のデータ読出し方法。
【請求項１４】
前記一時記憶領域を管理する情報は、前記ファイルに関する情報の位置情報をさらに含み、
前記処理部は、
前記算出したファイルサイズ分の領域をファイルの領域として前記一時記憶領域に確保するに際し、
前記算出したファイルサイズと前記一時記憶領域のサイズとを比較し、前記算出したファイルサイズが前記一時記憶領域のサイズより大きいと判定した場合、前記データの先頭位置を参照して前記読出し位置のデータに該当するファイルのデータを前記データ領域からすべて読み出し、読み出した当該ファイルのデータをファイル単位で前記バックアップ領域に出力し、
前記算出したファイルサイズと前記一時記憶領域の空きのサイズとを比較し、前記算出したファイルサイズが前記一時記憶領域の空きのサイズより大きいと判定した場合、一時記憶領域を管理する情報に含まれる前記ファイルに関する情報の位置情報により特定された前記ファイルに関する情報を取得し、当該ファイルに関する情報内の前記データの先頭位置を参照して前記一時記憶領域に存在するデータに該当するファイルのデータを前記データ領域からすべて読み出し、読み出した当該ファイルのデータをファイル単位で前記バックアップ領域に出力し、
前記算出したファイルサイズが前記一時記憶領域のサイズ以下であり、前記算出したファイルサイズが前記一時記憶領域の空きのサイズ以下であると判定した場合、前記算出したファイルサイズ分の領域をファイルの領域として前記一時記憶領域に確保する
ことを特徴とする請求項１３に記載のデータ読出し方法。
【請求項１５】
前記処理部は、
前記データ領域のデータを順次に読み出す前に、
前記データ領域のデータを順次に読み出した場合に使用する前記一時記憶領域の使用量のうち、最大の使用量に相当する一時記憶領域使用量を算出し、
前記一時記憶領域使用量が前記一時記憶領域よりも大きい場合に、
前記データ領域のデータを順次に読み出す際に前記算出したファイルサイズと前記一時記憶領域のサイズとの比較を行う
ことを特徴とする請求項１４に記載のデータ読出し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクから順次読出しによりデータを読み出し、読み出したデータをファイル単位で出力する技術に関するものである。
【背景技術】
【０００２】
従来、バックアップ実行時等、ディスク上に記録されているデータを読み出す際に、ディスク上の記録位置に関係なくファイル単位で順に読み出す技術がある（非特許文献１参照）。
また、ディスクの先頭から順次読出しによりデータを読み出し、読み出したデータをバックアップ装置に記録する技術がある。
【非特許文献１】VERITAS Software Corporation著「VERITAS NetBackupTM5.0 システム管理者ガイド Vol.1 UNIX」VERITAS Software Corporation出版、２００４年７月、P.１１８−１２０
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、非特許文献１に記載された技術によれば、読出したデータをファイル単位で出力することができるが、ファイル単位でのデータの読出しの処理に時間がかかる。そのため、ディスクの性能が高く、バックアップ装置の性能が低い環境であれば有効な技術であるが、近年、バックアップ装置として、高速にデータを書き込むことが可能な磁気テープ記憶装置が開発されている状況を考慮すると、ディスクからの読み出し待ちが発生し、バックアップ装置の性能が充分に発揮されないという問題がある。
また、ディスクの先頭から順次読出しによりデータを読み出す技術によれば、ディスクの先頭から順にデータを読み出すことにより、ディスク側の最大の性能を確保することができるが、ファイル単位でのアクセスではないため、バックアップ装置には、読み出したデータがファイル単位で記録されず、データをファイル単位でリストアすることが難しいという問題がある。
そこで、本発明は、バックアップ実行時等、ディスク上に記録されているデータ領域のデータを読み出す際、順次読出しによってディスクからデータを読み出した際にディスクが高い性能を発揮する（ディスクから高速にデータを読み出すことができる）ということを考慮し、ディスクからデータを高速に読み出すとともに、ファイル単位でデータ出力することを可能とすることを目的とする。
【課題を解決するための手段】
【０００４】
前記目的を達成するために、本発明のデータ読出しシステムは、読出し対象となるデータを格納するデータ領域を含んだディスク装置と、データのバックアップ領域を含んだテープ装置と、前記データ領域のデータを読み出し、前記バックアップ領域に当該データを出力するデータ読出し装置とを含んで構成されるデータ読出しシステムであって、前記ディスク装置が、前記データ領域に格納されているデータに該当するファイルに関する情報と、前記データ領域を構成する各データブロックに対応する当該ファイルに関する情報の位置情報とを管理し、前記データ読出し装置が、前記データ領域から読み出したデータを一時的に格納する一時記憶領域と、処理部とを備え、前記処理部が、前記データ領域を構成するデータブロックを順次に読み出す際に、当該データブロックに対応する前記ファイルに関する情報の位置情報を参照して、読出し位置のデータに該当する前記ファイルに関する情報の位置を特定し、当該特定された位置の前記ファイルに関する情報を参照して、前記一時記憶領域へのデータの出力位置を算出し、前記データ領域から読み出したデータを前記算出した出力位置に出力し、当該出力したデータに該当するファイルが前記一時記憶領域においてすべて揃ったか否かを判定し、すべて揃ったと判定した場合に、当該ファイルをファイル単位で前記バックアップ領域に出力する構成とした。
【０００５】
かかる構成によれば、データ読出し装置は、データ領域から順次読出しにより、高速にデータを読み出し、読み出したデータをバックアップ領域にファイル単位で出力することが可能となる。
【発明の効果】
【０００６】
本発明により、ディスクから高速にデータを読み出し、読み出したデータのファイル単位での出力が可能となる。
【発明を実施するための最良の形態】
【０００７】
（第１の実施形態）
本発明を実施するための最良の形態を図面に基づいて詳細に説明する。
図１は、本発明のデータ読出し装置（以下、サーバともいう）の動作例を説明する図である。
図１には、PBN(physical block number):ファイル情報変換テーブル(101)と、Inode情報テーブル(104)と、データ領域(107)と、一時記憶領域(109)と、バックアップ領域(110)とが示されている。
データ領域(107)は、バックアップ対象データが保存されている領域である。
また、一時記憶領域(109)は、データを一時的に保存しておく領域である。
さらに、バックアップ領域(110)は、バックアップデータの保存先の領域である。
また、図１にはサーバが示されていないが、ここでは、サーバがデータ領域(107)からデータを読出し、バックアップ領域(110)に保存データを出力する構成を想定する。
【０００８】
PBN:ファイル情報変換テーブル(101)は、PBN(102)とファイル情報へのポインタ(103)とを含んで構成される。ここで、PBNとは、物理ブロック番号のことであり、本発明では、ファイルシステムでの最小割当単位でのディスク先頭からの相対位置番号をあらわす。また、ファイル情報へのポインタ(103)は、ファイルに関する情報（ファイル情報）が記録されている領域の先頭アドレスを格納するものである。ファイル情報は、Inode情報テーブル(104)によって管理されている。このPBN:ファイル情報変換テーブル(101)を用いることで、データ領域(107)上におけるデータの記録位置からファイル情報を参照することができる。PBN:ファイル情報変換テーブル(101)についての（図３を用いた）詳細な説明は後記する。
【０００９】
Inode情報テーブル(104)は、ファイルシステムの一部であり、ファイル情報を管理するものである。このInode情報テーブル(104)は、ファイル名(105)と、エクステント情報(106)とを含んで構成されている。ここで、エクステントとは、データ領域(107)上に記憶領域として割り当てられる論理的な単位のことである。また、エクステント情報(106)は、エクステントに関する情報であり、ここでは、各ファイルが、データ領域のどこにいくつに分割されて記録されているかを管理するものとする。ここでは、Inode情報テーブル(104)を用いることとしているが、ファイル情報等のメタデータが記録されている領域であればInode情報テーブルの代わりに用いることが可能である。Inode情報テーブル(104)についての（図４を用いた）詳細な説明は後記する。また、エクステントを単にデータということもある。
【００１０】
以下、図１を参照しながら、本発明のサーバの動作について順に説明する。
サーバ２１０（図２参照）は、ファイル作成・削除・拡張・縮小等のファイルの記録位置が変更になるときには、Inode情報を変更するが、この際に、変更された記録位置に該当するPBN:ファイル情報変換テーブル(101)も変更する。これにより、常にデータ領域(107)の記録位置からファイル情報（エクステント情報(106)）へ簡単・高速にアクセスすることができるようになる。
【００１１】
バックアップを開始すると、サーバ２１０（図２参照）は、データ領域(107)のデータを先頭から順に読み出していく。ここでは、分かりやすく表現するために、データ領域の一部を拡大したもの(108)とバックアップ領域の一部を拡大したもの(111)を使って説明する。なお、バックアップ領域とは、高速なテープ装置やディスク装置をさすものである。サーバ２１０（図２参照）は、データ領域(107)のデータを順に読み出した際、PBN:ファイル情報変換テーブル(101)を用いて、各々の記録位置からファイル情報（エクステント情報(106)）を参照し、読み出したファイルが分割されている場合は、一時記憶領域(109)へ保存する。一時記憶領域(109)のファイルがすべてそろった際（複数のエクステントに分割されたファイルに関して、その全エクステントが揃った際）には、そのファイルをバックアップ領域(110)へ出力する。読み出したファイルが分割されていない場合は、一時記憶領域(109)を使用せず、そのまま、バックアップ領域(110)へ出力する。これをデータ領域(107)の最後まで繰り返すことにより、データ領域(107)からデータを順次読出ししながらもファイル単位でバックアップ領域(110)へデータを出力できる。
【００１２】
具体的な例を用いて説明すると、Inode情報テーブル(104)上では、File.A、File.Dは分割されておらず、File.B、File.Cは各々２つに分割されてデータ領域(107)に記録されている。記録順序としては、データ領域の一部を拡大したもの(108)に示されているように、File.B＿2,File.A＿1,File.B＿1,File.C＿1,File.D＿1,File.C＿2の順で記録されているとする。
【００１３】
バックアップ動作時には、まず、サーバ２１０（図２参照）は、データ領域(107)からFile.B＿2を読み出す。サーバ２１０（図２参照）は、PBN:ファイル情報変換テーブル(101)上でPBN(102)の値が「０」である場合のファイル情報へのポインタ(103)を参照すると、Inode情報テーブル(104)上のFile.Bのエクステント情報(106)を取得することができる。サーバ２１０（図２参照）は、File.Bのエクステント情報(106)を参照すると、このFile.Bが分割されていると判定し、データ領域(107)から読み出したデータであるFile.B＿2を一時記憶領域(109)の該当箇所へ保存する。一時記憶領域(109)の該当箇所を算出する方法についての（図６を用いた）詳細な説明は、後記する。
【００１４】
次に、サーバ２１０（図２参照）は、次のデータであるFile.A＿1を読み出す。サーバ２１０（図２参照）は、PBN:ファイル情報変換テーブル(101)上でPBN(102)の値が「１（前回読出し時の「０」に１加算した値）」である場合のファイル情報へのポインタ(103)を参照すると、Inode情報テーブル(104)上のFile.Aのエクステント情報(106)を取得することができる。サーバ２１０（図２参照）は、File.Aのエクステント情報(106)を参照すると、このFile.Aが分割されていないと判定し、データ領域(107)から読み出したデータであるFile.A＿1をFile.Aとしてバックアップ領域(110)へ出力する。
【００１５】
次に、サーバ２１０（図２参照）は、次のデータであるFile.B＿1を読み出す。サーバ２１０（図２参照）は、同様な方法により、File.Bが分割されていると判定し、一時記憶領域(109)へ出力する。また、サーバ２１０（図２参照）は、File.Bが一時記憶領域(109)にすべて揃ったと判定し、データ領域(107)から読み出したデータであるFile.B＿1およびFile.B＿2をFile.Bとして一時記憶領域(109)からバックアップ領域(110)へ出力する。また、サーバ２１０（図２参照）がファイルをすべて読み出したか否かを判定する方法についての（図６を用いた）詳細な説明は、後記する。
【００１６】
次に、サーバ２１０（図２参照）は、次のデータであるFile.C＿1を読み出す。サーバ２１０（図２参照）は、同様な方法により、File.Cが分割されていると判定し、データ領域(107)から読み出したデータであるFile.C＿1を一時記憶領域(109)へ出力する。
【００１７】
次に、サーバ２１０（図２参照）は、次のデータであるFile.D＿1を読み出す。サーバ２１０（図２参照）は、同様な方法により、File.Dが分割されていないと判定し、データ領域(107)から読み出したデータであるFile.D＿1をFile.Dとしてバックアップ領域(110)へ出力する。
【００１８】
次に、サーバ２１０（図２参照）は、次のデータであるFile.C＿2を読み出す。サーバ２１０（図２参照）は、同様な方法により、File.Cが分割されていると判定し、また、同様な方法により、一時記憶領域(109)へ出力する。また、サーバ２１０（図２参照）は、File.Cが一時記憶領域(109)にすべて揃ったと判定し、データ領域(107)から読み出したデータであるFile.C＿1およびFile.C＿2をFile.Cとして一時記憶領域(109)からバックアップ領域(110)へ出力する。
【００１９】
以上のような動作を繰り返すことにより、バックアップ領域の一部を拡大したもの(111)に示されているように、データ領域(107)から順次データを読み出してバックアップ領域(110)へファイル単位で出力できる。
【００２０】
図２は、本発明のデータ読出しシステムの全体構成を示した説明図である。
図２に示すように、データ読出しシステム(200A)は、サーバ(210)と、ディスク装置(211)と、テープ装置(212)とを含んで構成される。
【００２１】
ディスク装置(211)は、PBN:ファイル情報変換テーブル(101)と、データ領域(107)と、Inode情報テーブル(104)とを含んで構成される。データ領域(107)は、データの読出し対象となる領域であり、Inode情報テーブル(104)は、ファイル情報を管理するテーブルであり、PBN:ファイル情報変換テーブル(101)は、データ領域(107)内での先頭からの位置(以降PBNと表記する)と、そこに格納されているデータに関連するファイル情報へのポインタとを管理するテーブルである。
【００２２】
テープ装置(212)は、バックアップ領域(110)を含んで構成される。バックアップ領域(110)は、サーバ(210)がデータ領域(107)から読み出したデータの出力先の領域である。
【００２３】
サーバ(210)は、制御部（処理部）(202)と、一時記憶領域(109)とを含んで構成される。一時記憶領域(109)は、データ領域(107)上に分割記録されたファイルを一時退避しておく領域である。制御部(202)は、ファイル書込み制御部(203)と、一時記憶制御部(204)と、バックアップ制御部(205)と、一時記憶領域使用量算出部(206)とを含む各種制御部を制御するものである。
ファイル書込み制御部(203)は、ファイルの記録位置が変更される際にPBN:ファイル情報変換テーブル(101)を更新する処理を行うものである。
一時記憶制御部(204)は、ファイルを一時的に記録するためのエリア（一時記憶領域(109)）の確保・解放等を制御するものである。
バックアップ制御部(205)は、データ領域(107)からデータを読み出し、一時記憶領域(109)を使用しながらバックアップ領域(110)にデータの書き込みを行うものである。
一時記憶領域使用量算出部(206)は、一時記憶領域(109)の使用量を算出するものである。一時記憶領域(109)の使用量を計算する必要がない場合などは、この一時記憶領域使用量算出部(206)はなくてもよい。
データ領域(107)としては、ディスク上にファイルシステムが構築されていることを想定している。また、バックアップ実行時は、ディスク上のデータが更新されない静的な状態であることを想定している。
【００２４】
サーバ(210)、ディスク装置(211)およびテープ装置(212)の各部位間で入出力する情報について図２を参照して説明する。サーバ(210)は、読込みを行う物理アドレスおよび読込みサイズをディスク装置(211)へ渡す。サーバ(210)から読込みを行う物理アドレスおよび読込みサイズを受け取ると、ディスク装置(211)は、該当エリアに記録されている内容を入手し、サーバ(210)に渡す。また、サーバ(210)は、ファイル内容およびファイル関連情報(ファイル名等のファイルシステム上に記録された関連情報)を順次テープ装置(212)へ渡して、該当ファイルのバックアップを行う。なお、テープ装置(212)は、サーバ(210)と同一ハードウェア（同一筐体）である場合と、ネットワークで接続された別サーバ（別装置）である場合とがあるが、やり取りする情報は変わらない。
【００２５】
図３は、前記したPBN:ファイル情報変換テーブル(101)（図１参照）の構成を示す図である。PBN:ファイル情報変換テーブル(101)は、PBN(102)と、ファイル情報へのポインタ(103)とを含んで構成される。PBN:ファイル情報変換テーブル(101)には、データ領域(107)（図１参照）に対してファイルシステム上の最低割り当て単位毎にエントリが作成される。ファイル情報へのポインタ(103)は、ファイル情報の先頭アドレスとして図４の各エントリの先頭アドレスを格納することにより、各PBNがどのファイルに割り当てられているかを簡単に求められるようにする。未割り当て領域には、例えば、ゼロまたは、最大値等固定の値を設定して判別可能な状態にする。ここでは、PBN:ファイル情報変換テーブル(101)中にPBN(102)が便宜上表示してあるが、ファイル情報へのポインタ(103)の領域サイズが固定長であれば、相対位置でファイル情報へのポインタ(103)の格納位置を判断することができるため、PBN:ファイル情報変換テーブル(101)上にPBN(102)のエリアを確保しない構成としてもよい。
【００２６】
図４は、前記したInode情報テーブル(104)（図１参照）の構成を示す図であり、本発明に必要なファイル情報を格納しているテーブルである。Inode情報テーブル(104)は、ファイル名(105)と、エクステント情報(106)とを含んで構成される。また、エクステント情報(106)は、ファイル分割数（エクステント数(403)）とエクステント先頭位置・ブロック数(404,405)とを含んで構成される。Inode情報テーブル(104)は、ファイルシステムにより構造が異なる可能性もあるが、ここでは本処理に最低限必要の項目のみ記載されている。また、ここでは、エクステント先頭位置・ブロック数が便宜上２つ示してある（エクステント先頭位置・ブロック数(404,405)）。例えば、File.Bに関する情報が２行目に管理されているが、File.B＿１に関する情報がエクステント先頭位置・ブロック数(404)に、File.B＿2に関する情報がエクステント先頭位置・ブロック数(405)に格納されているとし、各ファイルの先頭から末尾までのエクステント情報が、Inode情報テーブル(104)の左から順に格納されているものとする。
【００２７】
図５は、一時記憶領域(109)を管理するテーブル（一時記憶領域管理テーブル(501)）の構成を示す図である。一時記憶領域管理テーブル(501)は、ファイル情報アドレス(502)と、データ一時記憶領域先頭アドレス(503)と、ブロック数(504)とを含んで構成される。
ファイル情報アドレス(502)は、Inode情報テーブル(104)（図４参照）の各エントリの先頭アドレスを格納するものである。
データ一時記憶領域先頭アドレス(503)は、一時記憶領域(109)の先頭アドレスを格納するものである。例えば、仮想記憶領域がデータを格納するためのエリア（データ一時保管領域）として割り当てられた場合、割り当てられた一時仮想記憶領域の先頭アドレスをデータ一時記憶領域先頭アドレス(503)に格納すれば、このデータ一時記憶領域先頭アドレス(503)を参照することで、仮想記憶領域のデータを読み書きすることが可能となり、物理メモリの細分化を防止でき、有効に物理メモリが利用できるようになる。
【００２８】
図６は、バックアップ制御部(205)（図２参照）の処理の流れを示すフローチャートである。図６を参照して（適宜図１乃至図５参照）、バックアップ制御部(205)（図２参照）が行う処理（データ領域(107)からデータを読み出し、ファイル単位にデータをバックアップ領域(110)に出力する処理）について説明する。
【００２９】
まず、バックアップ制御部(205)は、バックアップの処理を開始する(S601)。そして、最初の領域に読出し位置を設定する(S602)。つまり、読出し位置を「０」に設定する。
【００３０】
次に、バックアップ制御部(205)は、データ領域(107)の最後まで読み出したか否かを判定する(S603)。データ領域(107)の最後まで読み出した場合(S603でYes)は、処理を終了する(S604)。データ領域(107)の最後まで読み出していない場合(S603でNo)は、PBN:ファイル情報変換テーブル(101)から情報を入手する(S605)。
【００３１】
例えば、読出し位置として設定されている値が「０」であれば、PBN(102)の値が「０」であるエントリのファイル情報へのポインタ(103)をPBN:ファイル情報変換テーブル(101)から取得する。このとき、ファイル情報へのポインタ(103)の値が「10000」であるので、Inode情報テーブル(104)で管理されるファイル情報のうち、先頭アドレスが「10000」のエリアからファイル情報（ファイル名(105)およびエクステント情報(106)）を入手する。File.Bの先頭アドレスが「10000」であれば、File.Bのファイル情報を入手できる。また、例えば、読出し位置として設定されている値が「１」であれば、同様な方法により、先頭アドレスが「10004」のエリアからファイル情報を入手する。File.Aの先頭アドレスが「10004」であれば、File.Aのファイル情報を入手できる。
【００３２】
次に、バックアップ制御部(205)は、複数エクステントであるか否かを判定する(S606)。つまり、読出し位置に設定されている領域のデータに該当するファイル（該当ファイル）が分割されてデータ領域(107)に格納されているか否かを判定する。具体的には、S605で入手したファイル情報のエクステント数(403)が「１」であれば分割されていないと判定し、「２」以上であれば分割されていると判定する。例えば、読出し位置として設定されている値が「０」であれば、前記したようにFile.Bのファイル情報を入手でき、エクステント数(403)が「２」であるので、該当ファイル（File.B）が分割されていると判定する。また、例えば、読出し位置として設定されている値が「１」であれば、前記したようにFile.Aのファイル情報を入手でき、エクステント数(403)が「１」であるので、該当ファイル（File.A）が分割されていないと判定する。
【００３３】
バックアップ制御部(205)は、複数エクステントではないと判定した場合(S606でNo)、該当ファイルをバックアップ領域(110)へ出力し(S607)、次の領域に読出し位置を設定して(S617)、S603に戻る。例えば、読出し位置として設定されている値が「１」であれば、前記したように該当ファイル（File.A）が分割されていないと判定するので、読出し位置のデータをデータ領域(107)から読み出し、バックアップ領域(110)に出力する。また、このとき、読出し位置として設定されている値が「１」であるため、読出し位置が「１」のエリアに格納されているデータ（File.A＿１）をバックアップ領域(110)に出力し、現在の読出し位置「１」に「１」を加算して読出し位置を「２」に設定し、S603に戻る。
【００３４】
バックアップ制御部(205)は、複数エクステントであると判定した場合(S606でYes)、該当ファイルが出力済みか否かを判定する(S608)。つまり、該当ファイルがバックアップ領域(110)へ出力済みか否かを判定する。該当ファイルが出力済みか否かを判定する方法(S608)としては、例えば、一時記憶領域(109)の全データを出力した時点のデータ領域(107)の記録位置を出力済み判定位置として記録しておき、この出力済み判定位置と、S605で入手したファイル情報のエクステント先頭位置(404,405)とを比較して、出力済み判定位置より前の位置にファイルの一部が含まれていれば（出力済み判定位置より前の位置にエクステントが存在すれば）、そのファイルについては出力済みであると判定する方法がある。例えば、出力済み判定位置が「１」に設定されており、S605でファイル情報（File.B）を入手した場合、ファイル情報のエクステント先頭位置(405)が「０」のエクステントが存在する（図４のFile.Bのデータを参照）ので、出力済み判定位置より前の位置にファイルの一部が存在することになり、File.Bについては「出力済」であると判定することができる。また、同様に、出力済み判定位置が「０」に設定されており、S605でファイル情報（File.A）を入手した場合、ファイル情報のエクステント先頭位置(404,405)が「０」より前の位置のエクステントが存在しない（図４のFile.Aのデータを参照）ので、出力済み判定位置より前の位置にファイルの一部が存在しないことになり、File.Aについては「未出力」であると判定することができる。
【００３５】
バックアップ制御部(205)は、出力済であると判定した場合(S608で出力済)、次の領域に読出し位置を設定して(S617)、S603に戻る。
【００３６】
バックアップ制御部(205)は、未出力であると判定した場合(S608で未出力)、一時記憶領域割当処理を行う(S609)。つまり、データ領域(107)から読み出したデータを一時記憶領域(109)に格納するための領域を割り当てる処理を行う。一時記憶領域割当処理についての詳細な説明（図８を用いた説明）は、後記する。次に、バックアップ制御部(205)は、一時記憶領域割当処理(S609)のリターン情報を判定する(S610)。
【００３７】
バックアップ制御部(205)は、S609からのリターン情報が割当不可であると判定した場合(S610で割当不可)、該当ファイルが出力済であるか否かを判定する。つまり、該当ファイルがバックアップ領域(110)へ出力済みか否かを判定する。該当ファイルが出力済みか否かを判定する方法(S615)としては、例えば、現在の読出し位置より前の位置にファイルの一部が含まれていれば、そのファイルについては出力済みであると判定する方法がある。例えば、現在の読出し位置が「２」に設定されており、S605でファイル情報（File.B）を入手した場合、ファイル情報のエクステント先頭位置(405)が「０」のエクステントが存在する（図４のFile.Bのデータを参照）ので、現在の読出し位置より前の位置にファイルの一部が存在することになり、File.Bについては「出力済」であると判定することができる。
【００３８】
バックアップ制御部(205)は、該当ファイルが出力済であると判定した場合(S615で出力済)、次の領域に読出し位置を設定し(S617)、S603に戻る。
【００３９】
バックアップ制御部(205)は、該当ファイルが未出力であると判定した場合(S615で未出力)、該当ファイルをすべて読出し、バックアップ領域出力を行い(S616)、次の領域に読出し位置を設定し(S617)、S603に戻る。例えば、現在の読出し位置が「０」に設定されており、S605でファイル情報（File.B）を入手した場合、ファイル情報のエクステント先頭位置(404,405)が「０」より前の位置のエクステントが存在しない（図４のFile.Bのデータを参照）ので、現在の読出し位置より前の位置にファイルの一部が存在しないことになり、File.Bについては「未出力」であると判定することができる。そして、バックアップ制御部(205)は、Inode情報テーブル(104)（図４参照）のFile.Bのデータを参照して、File.Bのデータをデータ領域(107)から順に読み出し（図４のFile.Bの左から順に読み出し）、バックアップ領域(110)に出力する。具体的には、エクステント先頭位置(404)が「２」のエリアのデータ(File.B＿1)、エクステント先頭位置(405)が「０」のエリアのデータ(File.B＿2)を順に読み出し、バックアップ領域(110)に出力する。
【００４０】
バックアップ制御部(205)は、S609からのリターン情報が全出力実施であると判定した場合(S610で全出力実施)、出力済み判定位置を変更する(S611)。つまり、一時記憶領域(109)の全ファイルを出力したと判定した場合、出力済み判定位置を現在の読出し位置に変更する(S611)。これにより、出力済み判定位置より前の位置にエクステントが存在すれば、そのエクステントの該当ファイルはバックアップ領域(110)に出力済みであることが分かる。次に、S612に進む。
【００４１】
また、バックアップ制御部(205)は、S609からのリターン情報が割当可であると判定した場合(S610で割当可)、S612に進む。
【００４２】
S612では、バックアップ制御部(205)は、ファイル内の相対位置を算出し、該当する一時記憶領域にデータを読み出す(S612)。つまり、読み出し位置のデータを読み出し、そのデータの該当ファイルの先頭からの相対位置を、Inode情報テーブル(104)の各エクステントブロック数を加算して求め、該当ファイルに割り当てられた一時記憶領域(109)の該当する位置へ記録する。例えば、現在の読出し位置が「０」に設定されており、S605でファイル情報（File.B）を入手した場合、バックアップ制御部(205)は、データ領域(107)からFile.B＿2を読み出す。File.B＿2の該当ファイルの先頭からの相対位置は、File.B＿2よりも前の部分に相当するエクステントのブロック数の合計を求めればよい。File.B＿2よりも前の部分に相当するのは、File.B＿1だけであるので、Inode情報テーブル(104)上のFile.B＿1のブロック数（エクステント先頭位置・ブロック数(404)参照）である「１」を合計値として算出する。この合計値を、S609によって通知された該当ファイルの先頭アドレスに加算して、得られたアドレスを読み出したデータの該当位置とする。
【００４３】
次に、バックアップ制御部(205)は、該当ファイルに関して全領域の読み出しを終了したか否かを判定する(S613)。つまり、S612の読み出しによって、該当ファイルの一時記憶領域(109)への読み出しがすべて終了したか否かを判定する。この判定方法としては、現在の読出し位置のデータより後の位置に該当ファイルの分割されたデータがあるか否かを、Inode情報テーブル(104)を参照して判定する方法などがある。例えば、現在の読出し位置が「２」に設定されており、S605でファイル情報（File.B）を入手した場合、バックアップ制御部(205)は、データ領域(107)からFile.B＿1を読み出す。File.B＿1のエクステント先頭位置は「２」であり（先頭位置・ブロック数(404)参照）、File.B＿2のエクステント先頭位置は「０」である（先頭位置・ブロック数(405)参照）。したがって、ファイル情報（File.B）の中には、File.B＿1より後の位置に該当ファイルの分割されたデータがない（エクステント先頭位置がFile.B＿1のエクステント先頭位置「２」以下であるエクステントがない）と判定され、該当ファイルの一時記憶領域(109)への読み出しがすべて終了したと判定する。
【００４４】
バックアップ制御部(205)は、該当ファイルに関して全領域の読み出しを終了していないと判定した場合(S613でNo)、次の領域に読出し位置を設定し(S617)、S613に戻る。
【００４５】
バックアップ制御部(205)は、該当ファイルに関して全領域の読み出しを終了したと判定した場合(S613でYes)、該当ファイルをバックアップ領域(110)へ出力して、一時記憶領域(109)を解放し、一時記憶領域管理テーブル(501)から（該当ファイルの）データを削除する(S614)。そして、次の領域に読出し位置を設定し(S617)、S603に戻る。
【００４６】
図７は、ファイル書込み制御部(203)の処理の流れを示すフローチャートである。図７を参照して（適宜図１乃至図５参照）、ファイル書込み制御部(203)（図２参照）が行う処理について説明する。これは、ファイル領域の確保、拡張、縮小、削除等の変更があった時にInode情報テーブル(104)とPBN:ファイル情報変換テーブル(101)を更新する処理である。ファイル領域に関する処理が必要となった場合に本処理を行う。
【００４７】
ファイル書込み制御部(203)は、処理を開始し(S701)、ファイル領域の確保・拡張処理か否かを判定する(S702)。確保・拡張処理の場合(S702でYes)、ファイル書込み制御部(203)は、更に確保か拡張かを判定する(S703)。
【００４８】
確保の場合(S703で確保)、ファイル書込み制御部(203)は、空き領域から領域確保し、Inode情報テーブル(104)へエントリ追加およびエクステント情報(106)を設定し(S706)、PBN:ファイル情報変換テーブル(101)中の確保されたエントリへファイル情報アドレスを設定し(S709)、処理を終了する(S711)。ファイル情報アドレスは、Inode情報テーブル(104)のファイル情報へのポインタ(103)に設定される。
【００４９】
拡張の場合(S703で拡張)、ファイル書込み制御部(203)は、空き領域から領域確保し、Inode情報テーブル(104)の該当ファイルのエントリのエクステント情報を設定し(S705)、PBN:ファイル情報変換テーブル(101)中の確保されたエントリへファイル情報アドレスを設定し(S709)、処理を終了する(S711)。ファイル情報アドレスは、Inode情報テーブル(104)のファイル情報へのポインタ(103)に設定される。
【００５０】
確保・拡張ではない場合(S702でNo)、更に削除か縮小かそれ以外の処理かを判定する(S704)。削除の場合、使用領域を解放し、Inode情報テーブル(104)の該当エントリを削除し(S707)、PBN:ファイル情報変換テーブル(101)中の削除・縮小されたエントリのファイル情報アドレスを削除し(S710)、処理を終了する(S711)。ファイル情報アドレスは、Inode情報テーブル(104)のファイル情報へのポインタ(103)から削除される。
【００５１】
縮小の場合、縮小した領域を解放し、Inode情報テーブル(104)の該当エントリのエクステント情報を更新し(S708)、PBN:ファイル情報変換テーブル(101)中の削除・縮小されたエントリのファイル情報アドレスを削除し(S710)、処理を終了する(S711)。ファイル情報アドレスは、Inode情報テーブル(104)のファイル情報へのポインタ(103)から削除される。
【００５２】
図８は、一時記憶制御部(204)の処理の流れを示すフローチャートである。図８を参照して（適宜図１乃至図５参照）、一時記憶制御部(204)（図２参照）が行う処理について説明する。これは、図６で説明した一時記憶領域割当処理(S609)の詳細である。
【００５３】
一時記憶制御部(204)は、処理を開始し(S801)、リターン情報に割当可を設定し(S802)、一時記憶領域(109)にファイルがあるか否かを判定する(S803)。つまり、読出し位置のデータの該当ファイルが一時記憶領域(109)に存在するか否かを判定する。この判定方法としては、一時記憶領域管理テーブル(501)に該当ファイルのファイル情報アドレス(502)が存在するか否かにより判定する方法などがある。
【００５４】
一時記憶制御部(204)は、一時記憶領域(109)上に該当ファイルがあると判定した場合(S803でYes)、該当ファイルの先頭アドレスおよびリターン情報を通知し(S804)、処理を終了する(S813)。
【００５５】
一時記憶制御部(204)は、一時記憶領域(109)上に該当ファイルがないと判定した場合(S803でNo)、ファイルサイズが、一時記憶領域(109)より大きいか否かを判定する(S805)。ファイルサイズが一時記憶領域(109)より大きい場合(S805でYes)、リターン情報に割当不可を設定し(S806)、リターン情報を通知し(S807)、処理を終了する(S813)。
【００５６】
一時記憶制御部(204)は、ファイルサイズが一時記憶領域(109)以下の場合、(S805でNo)、ファイルサイズ以上の空きが（一時記憶領域(109)に）あるか否かを判定する(S808)。ファイルサイズ（必要な容量）を算出する方法としては、Inode情報テーブル(104)のエクステントブロック数の合計より算出することが可能である。
【００５７】
一時記憶制御部(204)は、ファイルサイズ以上の空きがないと判定した場合(S808でNo)、一時記憶領域のファイル全出力処理を行い(S809)、リターン情報に全出力実施を設定する(S810)。一時記憶領域のファイル全出力処理についての詳細な説明（図９を用いた説明）は、後記する。この処理により、一時記憶領域(109)上に確保しているファイルのデータをすべて順次に読み出し、バックアップ領域(110)に出力し、一時記憶領域(109)に空き領域を確保した状態で、S811に進む。
【００５８】
一時記憶制御部(204)は、ファイルサイズ以上の空きがあると判定した場合(S808でYes)、一時記憶領域(109)に該当ファイルの領域を確保し、一時記憶領域管理テーブル(501)にデータを登録する(S811)。確保した領域の先頭アドレスおよびリターン情報を通知し(S812)、処理を終了する(S813)。なお、必要に応じて（例えば、算出したファイルサイズに基づいて）、ディスク等の記憶領域に仮想記憶の領域を割り当て、順次読出し可能な形でディスク上に記録することにより、性能向上とより大きな領域確保を実現することもできる。この場合、データ一時記憶領域先頭アドレス(503)に仮想記憶領域のアドレスを格納すれば、このデータ一時記憶領域先頭アドレス(503)を参照することで、仮想記憶領域のデータを読み書きすることが可能となる。
【００５９】
また、S610,S611,S615,S616,S805〜S810の処理は、一時記憶領域(109)が十分に取れる場合は、無くともよい。
【００６０】
図９は、一時記憶制御部(204)（図２参照）による一時記憶領域のファイル全出力処理(S809)（図８参照）の流れを表すフローチャートである。図９を参照して（適宜図１乃至図５参照）、一時記憶領域(109)が不足した場合に一時記憶領域(109)内の情報をすべてバックアップ領域(110)に出力する処理について説明する。これは、図８で説明した一時記憶領域のファイル全出力処理(S809)の詳細である。
【００６１】
まず、一時記憶制御部(204)は、一時記憶領域のファイル全出力処理(S809)を開始する(S901)。そして、一時記憶制御部(204)は、一時記憶領域管理テーブル(501)の最初のデータを読み出すよう設定する(S902)。一時記憶制御部(204)は、一時記憶領域管理テーブル(501)からデータを読み出し(S903)、一時記憶領域(109)に保存ファイルがないか否かを判定する(S904)。
【００６２】
一時記憶制御部(204)は、一時記憶領域(109)に保存ファイルがない（一時記憶領域管理テーブル(501)のデータがすべて読込み済みであった）と判定した場合(S904でYes)、処理を終了する(S905)。
【００６３】
一時記憶制御部(204)は、一時記憶領域(109)に保存ファイルがある（一時記憶領域管理テーブル(501)に未読込みデータがあった）と判定した場合(S904でNo)、ファイル未読出し部分の読出し・保存・バックアップ領域への出力処理を行う(S906)。つまり、一時記憶制御部(204)は、一時記憶領域管理テーブル(501)から読み出したデータに該当するファイルの未読出し部分をデータ領域(107)から読み出してファイルの情報がすべてそろったところでバックアップ領域(110)へ出力する。該当するファイルの未読出し部分をデータ領域(107)から読み出す方法としては、読み出した一時記憶領域管理テーブル(501)のデータのファイル情報アドレス(502)を用いて、Inode情報テーブル(104)のエクステント先頭位置(404,405)を参照し、現在の読出し位置よりも後の位置に存在するエクステントについて未読出しであると判定してデータを読み出す方法などが考えられる。
【００６４】
一時記憶制御部(204)は、該当ファイルを一時記憶領域(109)から解放し、一時記憶領域管理テーブル(501)から該当ファイルのデータを削除し(S907)、一時記憶領域管理テーブル(501)の次のデータを読み出すよう設定して(S908)、S903に戻る。
【００６５】
図１０は、一時記憶領域使用量算出部(206)（図２参照）の処理の流れを表すフローチャートである。図１０を参照して（適宜図１乃至図５参照）、一時記憶領域の必要最大サイズを出力する処理について説明する。この処理は、一時記憶領域使用量算出部(206)が、データ領域(107)の先頭から順にPBN:ファイル情報変換テーブル(101)を利用して該当するファイル情報を読み込み、必要な一時記憶領域を求める。これにより、事前に必要な一時記憶領域のサイズを算出できる。
【００６６】
まず、一時記憶領域使用量算出部(206)は、一時記憶領域の使用量を算出する処理を開始する(S1001)。そして、最大一時領域サイズ、一時領域サイズを（記録しておくエリアを）初期化し、最初の領域に読出し位置を設定する(S1002)。
【００６７】
次に、一時記憶領域使用量算出部(206)は、データ領域(107)の最後まで読み出したか判定する(S1003)。データ領域の最後の場合（データをすべて読み出し終わっていた場合）(S1003でYes)、処理を終了する(S1004)。最後まで読み出していない場合、該当するファイル情報（ファイル名(105)およびエクステント情報(106)）を読み出し(S1005)、読出し位置のデータが複数エクステントか否かを（エクステント数(403)を参照して）判定する(S1006)。
【００６８】
一時記憶領域使用量算出部(206)は、読出し位置のデータが複数エクステントでないと判定した場合(S1006でNo)、一時記憶領域(109)を使用しないため、次の領域に読出し位置を設定して(S1013)、S1003に戻る。
【００６９】
一時記憶領域使用量算出部(206)は、読出し位置のデータが複数エクステントであると判定した場合(S1006でYes)、読出し位置のデータが該当ファイルのエクステント中で最小PBNが記録されているエクステントか否かを判定する(S1007)。つまり、読出し位置のデータが該当ファイルのエクステント中で最初に読出し位置として設定されるエクステント（該当ファイルのエクステント中でエクステント先頭位置(404,405)が最小のエクステント）であるか否かを判定する。
【００７０】
一時記憶領域使用量算出部(206)は、読出し位置のデータが最小PBNのエクステントであると判定した場合(S1007でYes)、一時領域サイズに該当ファイルサイズを加算し(S1009)、最大一時領域サイズが一時記憶領域サイズより小さいか否かを判定する(S1010)。ここで、一時領域サイズに該当ファイルサイズを加算しているのは、最小PBNのエクステントを一時記憶領域(109)に読み出すときに、該当ファイルサイズ分の領域が一時記憶領域(109)に確保され、一時記憶領域(109)の使用量がその分増加するからである。
【００７１】
一時記憶領域使用量算出部(206)は、最大一時領域サイズが一時記憶領域サイズ以上であると判定した場合(S1010でNo)、次の領域に読出し位置を設定して(S1013)、S1003に戻る。
【００７２】
また、一時記憶領域使用量算出部(206)は、最大一時領域サイズが一時記憶領域サイズより小さいと判定した場合(S1010でYes)、最大一時領域サイズを一時領域サイズで置き換え(S1011)、次の領域に読出し位置を設定して(S1013)、S1003に戻る。
【００７３】
一時記憶領域使用量算出部(206)は、読出し位置のデータが最小PBNのエクステントでないと判定した場合 (S1007でNo)、読出し位置のデータが該当ファイルのエクステント中で最大PBNが記録されているエクステントか否かを判定する(S1008)。つまり、読出し位置のデータが該当ファイルのエクステント中で最後に読出し位置として設定されるエクステント（該当ファイルのエクステント中でエクステント先頭位置(404,405)が最大のエクステント）であるか否かを判定する。
【００７４】
一時記憶領域使用量算出部(206)は、読出し位置のデータが最大PBNのエクステントでないと判定した場合 (S1008でNo)、次の領域に読出し位置を設定して(S1013)、S1003に戻る。
【００７５】
一時記憶領域使用量算出部(206)は、最大PBNのエクステントであると判定した場合 (S1008でYes)、一時領域サイズから該当ファイルサイズを減算し(S1012)、次の領域に読出し位置を設定して(S1013)、S1003に戻る。ここで、一時領域サイズから該当ファイルサイズを減算しているのは、最大PBNのエクステントを一時記憶領域(109)に読み出した後、該当ファイルサイズ分の領域が一時記憶領域(109)から解放され、一時記憶領域(109)の使用量がその分減少するからである。
【００７６】
以上の処理を行うことにより、一時記憶領域使用量算出部(206)は、事前に必要な一時記憶領域のサイズを算出できる。例えば、バックアップ制御部(205)が、S601の後に、この一時記憶領域使用量算出部(206)を呼び出し、一時記憶領域使用量算出部(206)による必要な一時記憶領域(109)のサイズの算出結果に基づいて、前記したS610,S611,S615,S616,S805〜S810の処理を行わないように制御することで、処理時間を短縮することが可能となる。なお、読出し位置のデータが最大PBNのエクステントか否かを判定する処理(S1008)の方法としては、例えば、S613で説明した該当ファイルに関して全領域の読み出しを終了したか否かを判定する処理と同じ方法を利用することが考えられる。また、最小PBNのエクステントか否かを判定する処理(S1007)の方法についても、同様の方法を利用することが考えられる。
【００７７】
（第２の実施形態）
本実施形態は、第１の実施形態で説明したサーバの機能をディスク装置の機能として内蔵することにより、ディスク装置がバックアップ機能を持つ構成である。ディスク装置内にボリューム管理機能およびファイルシステムを取り込む事により、ディスク装置へアクセスする部位からは、ボリューム上にファイルシステムが作られているようなシステムを前提として、そのシステムに対して、第１の実施形態の内容を組み込むことにより、ディスクを順次読込みしながらも、ディスク装置の上位からは、ファイル単位でデータおよび、ファイル情報の読出しが可能となる。
【００７８】
図１１は、本発明のデータ読出しシステムの全体構成を示した説明図である(第２の実施形態)。データ読出しシステム(200B)は、サーバ(1101)と、ディスク装置(1106)と、テープ装置(1120)とを含んで構成されている。
【００７９】
サーバ(1101)は、オペレーティングシステム(1103)上でバックアップアプリケーション(1102)が動作する構造となっているが、オペレーティングシステム(1103)の機能の一部であるファイルシステム(1109)がディスク装置(1106)側にあり、ファイルシステム(1109)へのアクセスは、ドライバ(1104)を通してアクセスする構造となっている。また、バックアップアプリケーション(1102)は、ドライバ(1104)を通して取得したファイル単位のデータをテープ装置(1120)のバックアップ領域(1105)に出力する。
【００８０】
ディスク装置(1106)は、指示受付部(1108)がドライバ(1104)からの指示を受け付けて、Inode情報(1107)等のファイル関連のメタデータを持ったファイルシステム(1109)を通してデータ領域(1119)へアクセスする。バックアップ制御処理部(1111)内のPBN:ファイル情報変換テーブル(1112)および一時記憶領域(1113)は、それぞれ第１の実施形態で説明したPBN:ファイル情報変換テーブル(101)および一時記憶領域(109)と同様な構成である。また、バックアップ制御処理部(1111)内の制御部(1114)（ファイル書込み制御部(1115)、一時記憶制御部(1116)、バックアップ制御部(1117)および一時記憶領域使用量算出部(1118)）についても、第１の実施形態で説明した制御部(202)と同様な機能を有しており、ファイル単位でのデータ読出しおよび、ファイル情報の読出しが行えるようになっている。また、ディスク装置(1106)は、ボリューム管理(1110)を備えることでボリューム管理の機能も有する構成となっている。
【００８１】
サーバ(1101)のバックアップアプリケーション(1102)およびドライバ(1104)とディスク装置(1106)の指示受付部(1108)間では、NDMP(Network Data Management Protocol)相当のプロトコルによる入出力を行うことにより、ファイル情報および、ファイルデータの入出力を行うことにより、ディスクを順次アクセスしながらファイル単位でバックアップすることができる。
【図面の簡単な説明】
【００８２】
【図１】本発明のデータ読出し装置（サーバ）の動作例を説明する図である(第１の実施形態)。
【図２】本発明のデータ読出しシステムの全体構成を示した説明図である(第１の実施形態)。
【図３】記録位置とファイル情報へのアドレスを格納しているテーブルである。
【図４】ファイル情報を格納しているテーブルである。
【図５】一時記憶領域の管理情報を格納しているテーブルである。
【図６】バックアップ制御部の処理の流れを示すフローチャートである。
【図７】ファイル書込み制御部の処理の流れを示すフローチャートである。
【図８】一時記憶制御部の処理の流れを示すフローチャートである。
【図９】一時記憶制御部の一時記憶領域のファイル全出力処理の流れを表すフローチャートである。
【図１０】一時記憶領域使用量算出部の処理の流れを表すフローチャートである。
【図１１】本発明のデータ読出しシステムの全体構成を示した説明図である(第２の実施形態)。
【符号の説明】
【００８３】
１０１  PBN:ファイル情報変換テーブル
１０３  ファイル情報へのポインタ
１０４  Inode情報テーブル
１０６  エクステント情報
１０７  データ領域
１０９  一時記憶領域
１１０  バックアップ領域
２００Ａ，２００Ｂ  データ読出しシステム
２０２  制御部
２０３  ファイル書込み制御部
２０４  一時記憶制御部
２０５  バックアップ制御部
２０６  一時記憶領域使用量算出部
２１０  サーバ（データ読出し装置）
２１１  ディスク装置
２１２  テープ装置
４０３  エクステント数
４０４，４０５  エクステント先頭位置・ブロック数
５０１  一時記憶領域管理テーブル
５０２  ファイル情報アドレス
５０３  データ一時記憶領域先頭アドレス
５０４  ブロック数
【図１】
0004755487.tif 000002
【図２】
0004755487.tif 000003
【図３】
0004755487.tif 000004
【図４】
0004755487.tif 000005
【図５】
0004755487.tif 000006
【図６】
0004755487.tif 000007
【図７】
0004755487.tif 000008
【図８】
0004755487.tif 000009
【図９】
0004755487.tif 000010
【図１０】
0004755487.tif 000011
【図１１】
0004755487.tif 000012