説明

複数のファイルを列挙した情報を生成する装置及び方法

【課題】アプリケーション側にハードウェアデバイスに依存した実装を施すことなく、シーケンシャルメディアに特化したパフォーマンスを落とさないアクセスを行う。
【解決手段】ファイルシステム60では、コマンド処理部61が、ファイルの列挙方法を示すオプションをコマンドから取り出し、インデックス受信部63が、ディレクトリ名、ファイル名、記録位置を含むインデックスをテープドライブから受信し、インデックス記憶部66が、オプションが示す列挙方法に従い、インデックスを、そのままの状態で、又は、ディレクトリ名もしくはファイル名が変更された状態で、記憶する。一方、IRP受信部67が、IRP(I/O Request Packet)をOSから受信すると、IRP設定部68が、インデックス内のファイル名を記録位置の順にIRPのバッファに格納し、応答送信部69が、ステータスをOSに返す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のファイルを列挙した情報を生成する装置及び方法に関する。特に、本発明は、シーケンシャルメディア上の複数のファイルを列挙した情報を生成する装置及び方法に関する。
【背景技術】
【0002】
複数のファイルをコピーする場合や、複数のファイルに対してコンピューターウィルスのスキャンを行う場合等に、複数のファイルが連続してストレージから読み出される。その際、ストレージがHDD(Hard Disk Drive)、USB(Universal Serial Bus)メモリ等のランダムアクセス可能な媒体であれば、ファイルへのアクセス順序はさほど問題にはならない。
しかしながら、ストレージがシーケンシャルにアクセスされるテープ等の媒体であれば、ファイルへアクセスする順序によっては、複数のファイルの読出しにかかる時間が長くなることがある。
【0003】
実際、LTO(Linear Tape-Open)規格のテープ上の標準的なファイルシステムであるLTFS(Linear Tape File System)を用いても、LTFS上のファイルをHDDにコピーする場合に、ファイルが記録されている位置がテープ上で前後していれば、ファイルのコピー順序によってパフォーマンス(時間のかかり方)が大きく違う。
例えば、ファイルA、ファイルB、ファイルCがこの順序でテープに書かれている場合を考える。この場合、ファイルA、ファイルB、ファイルCの順にアクセスすれば、LTO第5世代では最大140MB/sの速さで読み出せるが、ファイルC、ファイルB、ファイルAの順にアクセスすれば、数MB/s程度の速さでしか読み出せないこともある。
【0004】
このように、LTFS上のファイルをHDDにコピーする場合、ファイルへのアクセス順序がパフォーマンスに大きく関与する。
【0005】
尚、公報記載の技術としても、ファイルへのアクセス順序を考慮することでファイルに対するアクセス効率を向上させるものは知られている(例えば、特許文献1参照)。
特許文献1において、テープ駆動制御装置は、テープの走行を制御するテープ走行制御部と、ヘッドを制御する書き込み/読み出し制御部と、書き込まれたファイル順にBOTからのシーク時間が登録されるシーク管理テーブルを備える。シーク管理テーブルには、シーク時間が未確定のファイルに対してはシーク時間が仮に登録され、その後シーク情報が確定すると確定したシーク時間が登録される。複数のファイルの読み出し要求があると、テープ走行制御部は、シーク管理テーブルを参照して、読み出し要求のあった複数のファイルに対してシーク時間の昇順にヘッドがアクセスできるようにテープの走行を制御する。
【0006】
また、公報記載の技術として、ファイルへのアクセスの高速化を図る技術は、これ以外にも種々提案されている(例えば、特許文献2参照)。
特許文献2は、磁気テープボリュームのBOTの前にファイル管理情報ブロックを設けてこれにファイル名および位置情報を書き込み、アクセス時にこれを参照してヘッドの位置を決める構成を開示している。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2010−97646号公報
【特許文献2】特開平2−246075号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、ファイルをコピーする際の一般的な動作は、次のようなものである。
即ち、Windows7(登録商標)を例にとると、複数のファイルが存在するディレクトリをコピーするには、通常、Explorer(登録商標)でそのディレクトリを選択してコピー先にドラッグアンドドロップする操作、又は、コマンドプロンプトからxcopyコマンドを投入する操作が行われる。そして、ドラッグアンドドロップ操作及びxcopyコマンドの投入操作の何れが行われた場合の何れにおいても、ディレクトリ内のファイルを列挙してそれらのファイルを順番にコピーしていくという動作となる。
【0009】
より詳しく言えば、アプリケーション(Explorer(登録商標)、xcopy等)は、ファイルをコピーする際、API(Application Program Interface)を呼ぶことでOS(Operating System)に問い合わせを行う。すると、OSは、IRP(I/O Request Packet)を使ってファイルシステムに問い合わせを行う。これに対し、ファイルシステムは、このIRPにより用意されたバッファに、コピー対象のディレクトリの下にあるファイルのファイル名を列挙して返す。このとき、ファイルシステムは、内部で使用するファイルIDを0から順にカウントしていき、各ファイルIDに対応するファイルとしてディレクトリ内のファイルを列挙する。
【0010】
但し、各ファイルIDにディレクトリ内のどのファイルを対応させるかについて、明確な規定はない。即ち、ファイルを列挙した場合にディレクトリ内のファイル名がどのような順序で列挙されるかは、ファイルシステムの実装に依存している。例えば、Windows(登録商標)で標準的なNTFS(NT File System)は、ファイル名をアルファベット順に列挙し、LTFSバージョン1.2は、ファイル名をファイルの作成順に列挙する。
【0011】
ここで、テープ上にファイルA、ファイルB、ファイルCをこの順序で作成した後、ファイルB、ファイルAをこの順序で更新した場合を考える。通常、テープ上のファイルの更新において上書きは行われないので、テープ上の更新前のファイルA及び更新前のファイルBは無効化され、更新後のファイルB及び更新後のファイルAがこの順序でファイルCの後ろに追記されることになる。即ち、テープ上の有効な(無効化されていない)ファイルは、テープの先頭から順に、ファイルC、ファイルB、ファイルAとなる。
しかしながら、LTFSは、更新時間順ではなく、作成時間順でファイルを列挙するので、ファイルはファイルA、ファイルB、ファイルCの順に列挙される。そのため、これらのファイルが存在するディレクトリをドラッグアンドドロップ又はxcopyでコピーすると、ファイルA、ファイルB、ファイルCの順にコピーすることになり、コピーにかかる時間が長くなってしまうという問題が発生する。
【0012】
この問題に対しては、ファイルコピー専用のアプリケーションを用いてファイルを記録位置の順にコピーする、という方法も考えられるが、この方法では、ファイルのテープ上の記録位置を知る必要が生じる。
LTFSはオープンスタンダードなフォーマットであり、フォーマット仕様も公開されているため、アプリケーションがテープを直接読むことによって、テープ上のファイルの記録位置を知ることはできるが、これにはハードウェアデバイスに依存した実装が必要になってしまう。また、たとえハードウェアデバイスに依存した実装を施したとしても、ドラッグアンドドロップ、xcopy等のOSに付属した非常に一般的な機能を用いてファイルをコピーすることができなくなってしまう。
【0013】
尚、特許文献1、2は、このような問題を解決するための手段を何ら開示するものではない。
【0014】
本発明の目的は、アプリケーション側にハードウェアデバイスに依存した実装を施すことなく、シーケンシャルメディアに特化したパフォーマンスを落とさないアクセスを行うことにある。
【課題を解決するための手段】
【0015】
かかる目的のもと、本発明は、第1の位置に記録されたファイルが更新されると、ファイルの少なくとも一部が無効化され、更新後の少なくとも一部が他のファイルが記録されていない第2の位置に記録されるシーケンシャルメディア上の全体が無効化されたファイルを除く複数のファイルを列挙した列挙情報を生成する装置であって、シーケンシャルメディア上の複数のファイルが記録された位置を管理する管理情報を、シーケンシャルメディアから取得する取得部と、取得部により取得された管理情報を記憶する記憶部と、記憶部に記憶された管理情報に基づいて、複数のファイルが記録された位置に応じた順序で複数のファイルを列挙した列挙情報を生成する生成部とを含む、装置を提供する。
【0016】
ここで、この装置において、取得部が、複数のファイルのうちの特定のファイルが記録された位置として、特定のファイルを分断して得られたN個(Nは2以上の整数)のファイル断片がそれぞれ記録されたN個の位置を管理する管理情報を取得した場合に、記憶部は、取得部により取得された管理情報を、N個のファイル断片を複数のファイルのうちのN個のファイルとして区別して管理するように変更し、かつ、N個のファイルが記録された位置としてN個の位置を管理するように変更した管理情報を記憶する、ものであってよい。
【0017】
また、この装置において、取得部が、複数のファイルを複数のディレクトリの何れかの配下に存在するものとして管理する管理情報を取得した場合に、記憶部は、取得部により取得された管理情報を、複数のファイルをルートディレクトリの直下に存在するものとして区別して管理するように変更した管理情報を記憶する、ものであってよい。
【0018】
更に、この装置において、取得部が、複数のファイルを複数のディレクトリの何れかの配下に存在するものとして管理する管理情報を取得した場合に、記憶部は、取得部により取得された管理情報を、複数のファイルのうち特定のディレクトリの配下に存在するファイルをルートディレクトリの直下に存在するものとして区別して管理するように変更した管理情報を記憶する、ものであってよい。
【0019】
また、本発明は、シーケンシャルメディア上の複数のファイルを列挙した列挙情報を生成する装置であって、複数のファイルを列挙するために用いる列挙方法として、第1の列挙方法、第2の列挙方法、第3の列挙方法、及び第4の列挙方法を含む列挙方法群の中から選択された列挙方法を受け付ける受付部と、シーケンシャルメディア上の複数のファイルが記録された位置を管理し、複数のファイルのうちの特定のファイルがN個(Nは2以上の整数)のファイル断片に分断されて記録されている場合には、特定のファイルが記録された位置としてN個のファイル断片がそれぞれ記録されたN個の位置を管理し、複数のファイルを複数のディレクトリの何れかの配下に存在するものとして管理する管理情報を、シーケンシャルメディアから取得する取得部と、受付部にて第1の列挙方法を受け付けた場合には、取得部により取得された管理情報を記憶し、受付部にて第2の列挙方法を受け付けた場合には、取得部により取得された管理情報を、N個のファイル断片を複数のファイルのうちのN個のファイルとして区別して管理するように変更し、かつ、N個のファイルが記録された位置としてN個の位置を管理するように変更した管理情報を記憶し、受付部にて第3の列挙方法を受け付けた場合には、取得部により取得された管理情報を、複数のファイルをルートディレクトリの直下に存在するものとして区別して管理するように変更した管理情報を記憶し、受付部にて第4の列挙方法を受け付けた場合には、取得部により取得された管理情報を、複数のファイルをルートディレクトリの直下に存在するものとして区別して管理するように変更し、N個のファイル断片を複数のファイルのうちのN個のファイルとして区別して管理するように変更し、かつ、N個のファイルが記録された位置としてN個の位置を管理するように変更した管理情報を記憶する記憶部と、記憶部に記憶された管理情報に基づいて、複数のファイルが記録された位置に応じた順序で複数のファイルを列挙した列挙情報を生成する生成部とを含む、装置も提供する。
【0020】
ここで、この装置において、受付部は、複数のファイルを列挙するために用いる列挙方法として、第5の列挙方法及び第6の列挙方法を更に含む列挙方法群の中から選択された列挙方法を受け付け、第5の列挙方法又は第6の列挙方法を受け付けた場合には、特定のディレクトリの指定を更に受け付け、記憶部は、受付部にて第5の列挙方法を受け付けた場合には、取得部により取得された管理情報を、複数のファイルのうち特定のディレクトリの配下に存在するファイルをルートディレクトリの直下に存在するものとして区別して管理するように変更した管理情報を記憶し、受付部にて第6の列挙方法を受け付けた場合には、取得部により取得された管理情報を、複数のファイルのうち特定のディレクトリの配下に存在するファイルをルートディレクトリの直下に存在するものとして区別して管理するように変更し、特定のファイルが特定のディレクトリの配下に存在する場合に、N個のファイル断片を複数のファイルのうちのN個のファイルとして区別して管理するように変更し、かつ、N個のファイルが記録された位置としてN個の位置を管理するように変更した管理情報を記憶する、ものであってよい。
【0021】
また、本発明は、シーケンシャルメディアに複数のファイルを記録する記録装置と、シーケンシャルメディア上の複数のファイルを列挙した列挙情報を生成する生成装置とを含むシステムであって、記録装置は、シーケンシャルメディア上の第1の位置に書き込まれたファイルが更新されると、ファイルの少なくとも一部を無効化し、更新後の少なくとも一部をシーケンシャルメディア上の他のファイルが記録されていない第2の位置に書き込む書込み部と、シーケンシャルメディア上の全体が無効化されたファイルを除く複数のファイルが記録された位置を管理する管理情報を、シーケンシャルメディアから読み出す読出し部と、読出し部により読み出された管理情報を生成装置に送信する送信部とを含み、生成装置は、送信部により送信された管理情報を受信する受信部と、受信部により受信された管理情報に基づいて、複数のファイルが記録された位置に応じた順序で複数のファイルを列挙した列挙情報を生成する生成部とを含む、システムも提供する。
【0022】
更に、本発明は、第1の位置に記録されたファイルが更新されると、ファイルの少なくとも一部が無効化され、更新後の少なくとも一部が他のファイルが記録されていない第2の位置に記録されるシーケンシャルメディア上の全体が無効化されたファイルを除く複数のファイルを列挙した列挙情報を生成する方法であって、シーケンシャルメディア上の複数のファイルが記録された位置を管理する管理情報を、シーケンシャルメディアから取得するステップと、取得された管理情報に基づいて、複数のファイルが記録された位置に応じた順序で複数のファイルを列挙した列挙情報を生成するステップとを含む、方法も提供する。
【0023】
更にまた、本発明は、第1の位置に記録されたファイルが更新されると、ファイルの少なくとも一部が無効化され、更新後の少なくとも一部が他のファイルが記録されていない第2の位置に記録されるシーケンシャルメディア上の全体が無効化されたファイルを除く複数のファイルを列挙した列挙情報を生成する装置として、コンピュータを機能させるプログラムであって、コンピュータを、シーケンシャルメディア上の複数のファイルが記録された位置を管理する管理情報を、シーケンシャルメディアから取得する取得部と、取得部により取得された管理情報に基づいて、複数のファイルが記録された位置に応じた順序で複数のファイルを列挙した列挙情報を生成する生成部として機能させる、プログラムも提供する。
【発明の効果】
【0024】
本発明によれば、アプリケーション側にハードウェアデバイスに依存した実装を施すことなく、シーケンシャルメディアに特化したパフォーマンスを落とさないアクセスを行えるようになる。
【図面の簡単な説明】
【0025】
【図1】本発明の実施の形態で第1の列挙方法が指定されたときの概略動作について説明するための図である。
【図2】本発明の実施の形態で第2の列挙方法が指定されたときの概略動作について説明するための図である。
【図3】本発明の実施の形態で第3の列挙方法が指定されたときの概略動作について説明するための図である。
【図4】本発明の実施の形態におけるストレージシステムの全体構成例を示した図である。
【図5】本発明の実施の形態におけるホストのハードウェア構成例を示した図である。
【図6】本発明の実施の形態におけるホストの機能構成例を示したブロック図である。
【図7】本発明の実施の形態におけるホストのテープマウント時の動作例を示したフローチャートである。
【図8】本発明の実施の形態におけるホストのテープマウント時の動作によりインデックス記憶部に記憶される情報の例を示した図である。
【図9】本発明の実施の形態におけるホストのファイル列挙時の動作例を示したフローチャートである。
【発明を実施するための形態】
【0026】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
本実施の形態は、テープをマウントする際に選択されるオプションにより、ファイルの列挙方法を変化させるというものである。ファイルの列挙方法としては、例えば、次のような見せ方に対応したものが考えられる。
【0027】
(第1の列挙方法)
第1の列挙方法は、ディレクトリ構造はそのままで、各ディレクトリ内でのファイルを列挙する順序がテープ上での先頭からの順序となるような列挙方法である。
【0028】
図1は、この第1の列挙方法について説明するためのテープ上のファイルの配置を示した図である。
図は、「FileA」、「FileB」、「FileC」という3つのファイルをこの順序でテープに書き込んだ後、「FileB」を更新し、その後、「FileA」を更新した場合について示している。通常、テープ上のファイルを更新した場合、そのファイルに対しては上書きが行われるのではなく書き直しが行われる。従って、図では、更新前の「FileA」及び「FileB」は無効化され、更新後の「FileB」及び「FileA」がこの順序で「FileC」の後ろに追記されている。即ち、斜線ハッチングを施したファイルのみが有効となっている。この場合、「FileA」、「FileB」、「FileC」が同じディレクトリの直下にあるとすると、第1の列挙方法では、「FileC」、「FileB」、「FileA」がこの順序で列挙されることになる。
【0029】
(第2の列挙方法)
第2の列挙方法は、第1の列挙方法において、更に、テープ上で1つのファイルが複数の断片に分断されている場合には、各断片に特殊なファイル名が付けられ、複数の断片のそれぞれがファイルの1つとして扱われるような列挙方法である。
【0030】
図2は、この第2の列挙方法について説明するためのテープ上のファイルの配置を示した図である。
図は、「FileA」、「FileB」、「FileC」という3つのファイルをこの順でテープに書き込んだ後、「FileA」の一部を更新した場合について示している。つまり、「FileA」の更新部分のみが「FileC」の後ろに追記されることにより、「FileA」が分断された場合である。ここでも、有効なファイルは、斜線ハッチングを施して示している。この場合、「FileA」、「FileB」、「FileC」が同じディレクトリの直下にあるとすると、第2の列挙方法では、「FileA~1」、「FileB」、「FileC」、「FileA~2」という4つのファイルがこの順序で列挙されることになる。尚、ここでは、特別な文字列の一例として「~」を採用したが、他の文字列又は他の表現方法を採用してもよい。
【0031】
(第3の列挙方法)
第3の列挙方法は、ディレクトリ構造がなくなり、全てのファイルがルートディレクトリの直下に、パスが分かる形式のファイル名が付けられて配置され、ファイルを列挙する順序がテープ上での先頭からの順序となるような列挙方法である。
【0032】
図3は、この第3の列挙方法について説明するためのディレクトリ構造を示した図である。
図は、ルートディレクトリの下に「dir1」、「dir2」という2つのディレクトリがあり、各ディレクトリの下に「File1」、「File2」という2つのファイルがある場合について示している。
例えば、オプションなしでテープをマウントした場合には、図示したような見え方となるが、この第3の列挙方法を指定するオプションを選択してマウントすることで、ルートディレクトリの下に、「dir1~~File1」、「dir1~~File2」、「dir2~~File1」、「dir2~~File2」という4つのファイルが列挙されることになる。尚、ここでは、特別な文字列の一例として「~~」を採用したが、他の文字列又は他の表現方法を採用してもよい。
【0033】
(第4の列挙方法)
第4の列挙方法は、第3の列挙方法において、更に、テープ上で1つのファイルが複数の断片に分断されている場合には、各断片に特殊なファイル名が付けられ、複数の断片のそれぞれがファイルの1つとして扱われるような列挙方法である。
【0034】
(第5の列挙方法)
第5の列挙方法は、オプションで指定された特定のディレクトリの下のみ、第3の列挙方法でファイルが列挙される列挙方法である。
(第6の列挙方法)
第6の列挙方法は、オプションで指定された特定のディレクトリの下のみ、第4の列挙方法でファイルが列挙される列挙方法である。
(第7の列挙方法)
第7の列挙方法は、通常のディレクトリ構造を見せた状態で、これに加え、ルートディレクトリの直下に特別なディレクトリが配置され、その特別なディレクトリの下に第1の列挙方法から第6の列挙方法までの何れかの列挙方法でディレクトリが配置される列挙方法である。
【0035】
次に、以上の列挙方法でファイルを列挙するファイルシステムについて詳細に説明する。
図4は、このようなファイルシステムが適用されるストレージシステムの構成例を示した図である。
図示するように、ストレージシステムは、テープドライブ10と、ホスト30とを備える。
このうち、テープドライブ10は、記録装置の一例であり、ホストインターフェイス(以下、「ホストI/F」という)11と、バッファ12と、チャネル13と、ヘッド14と、モータ15とを含む。また、コントローラ16と、ヘッド位置制御システム17と、モータドライバ18とを含む。更に、テープドライブ10には、テープカートリッジ20が挿入されることにより装填可能となっているので、ここでは、テープカートリッジ20も図示している。このテープカートリッジ20は、リール21、22に巻かれたテープ23を含む。テープ23は、リール21、22の回転に伴い、リール21からリール22の方向へ、又は、リール22からリール21の方向へ、長手方向に移動する。尚、テープ23としては、磁気テープが例示されるが、磁気テープ以外のテープ媒体でもよい。
【0036】
ここで、ホストI/F11は、ホスト30との通信を行う。例えば、ホスト30から、テープ23へのデータの書込みを指示するコマンド、テープ23を目的の位置に移動させるコマンド、テープ23からのデータの読出しを指示するコマンド等を受け取る。尚、このホストI/F11で用いる通信規格としては、SCSIが例示される。SCSIの場合、1つ目のコマンドは、Writeコマンドに相当し、2つ目のコマンドは、LocateコマンドやSpaceコマンドに相当し、3つ目のコマンドは、Readコマンドに相当する。また、ホストI/F11は、送信部の一例であり、ホスト30に対し、これらのコマンドに応じて読み出したデータ及びこれらのコマンドに応じた処理が成功したのか失敗したのかの応答を返す。
【0037】
バッファ12は、テープ23に書き込むべきデータやテープ23から読み出されたデータを蓄積するメモリである。例えば、DRAM(Dynamic Random Access Memory)によって構成される。また、バッファ12は、複数のバッファセグメントからなり、各バッファセグメントが、テープ23に対する読み書きの単位であるデータセットを格納している。
チャネル13は、テープ23に書き込むべきデータをヘッド14に送ったり、テープ23から読み出されたデータをヘッド14から受け取ったりするために用いられる通信経路である。
ヘッド14は、書込み部及び読出し部の一例であり、テープ23が長手方向に移動するとき、テープ23に対して情報を書き込んだり、テープ23から情報を読み出したりする。
モータ15は、リール21、22を回転させる。尚、図では、1つの矩形でモータ15を表しているが、モータ15としては、リール21、22の各々に1つずつ、合計2個設けるのが好ましい。
【0038】
コントローラ16は、テープドライブ10の全体を制御する。例えば、ホストI/F11で受け付けたコマンドに従って、データのテープ23への書込みやテープ23からの読出しを制御する。また、ヘッド位置制御システム17やモータドライバ18の制御も行う。
ヘッド位置制御システム17は、ヘッド14が所望の1つ又は複数のラップを追跡するよう制御するシステムである。ここで、ラップとは、テープ23上の複数のトラックのグループである。ラップを切り換える必要が生じると、ヘッド14を電気的に切り換える必要も生じるので、このような切り換えの制御を、このヘッド位置制御システム17で行う。
モータドライバ18は、モータ15を駆動する。尚、上述したように、モータ15を2個使用する場合であれば、モータドライバ18も2個設けられる。
【0039】
また、ホスト30は、複数のファイルを列挙した列挙情報を生成する生成装置の一例であり、アプリケーションソフトウェア(以下、単に「アプリケーション」という)40と、OS50と、ファイルシステム60とを含む。
ここで、アプリケーション40は、特定の用途で利用されるソフトウェアであり、例えば、ストレージ上のファイルをHDDにコピーするソフトウェアである。Windows7(登録商標)を例にとると、このようなソフトウェアとしては、Explorer(登録商標)、xcopyコマンドによって動作するソフトウェア等がある。
OS50は、ホスト30全体の動作を管理するソフトウェアである。本実施の形態では、特に、ファイルシステム60からファイルを列挙した情報を受け取り、これをアプリケーション40に提供する。尚、OSは、その1つの機能としてファイルシステム60を有することが一般的であるので、ここでは、OSが持つ機能のうちファイルシステム60以外の機能を含む部分をOS50と称することとする。
ファイルシステム60は、ストレージ上のファイルを管理するソフトウェアである。OS50からの問い合わせに対して、ファイルを列挙した情報を返す。
【0040】
次に、ホスト30のハードウェア構成について説明する。
図5は、ホスト30のハードウェア構成例を示した図である。
図示するように、ホスト30は、演算手段であるCPU(Central Processing Unit)30aと、M/B(マザーボード)チップセット30bを介してCPU30aに接続されたメインメモリ30cと、同じくM/Bチップセット30bを介してCPU30aに接続された表示機構30dとを備える。また、M/Bチップセット30bには、ブリッジ回路30eを介して、ネットワークインターフェイス30fと、磁気ディスク装置30gと、音声機構30hと、キーボード/マウス30iと、フレキシブルディスクドライブ30jとが接続されている。
【0041】
尚、図5において、各構成要素は、バスを介して接続される。例えば、CPU30aとM/Bチップセット30bの間や、M/Bチップセット30bとメインメモリ30cの間は、CPUバスを介して接続される。また、M/Bチップセット30bと表示機構30dとの間は、AGP(Accelerated Graphics Port)を介して接続されてもよいが、表示機構30dがPCI Express対応のビデオカードを含む場合、M/Bチップセット30bとこのビデオカードの間は、PCI Express(PCIe)バスを介して接続される。また、ブリッジ回路30eと接続する場合、ネットワークインターフェイス30fについては、例えば、PCI Expressを用いることができる。また、磁気ディスク装置30gについては、例えば、シリアルATA(AT Attachment)、パラレル転送のATA、PCI(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス30i、及び、フレキシブルディスクドライブ30jについては、USBを用いることができる。
【0042】
次いで、ホスト30の機能構成について説明する。但し、本実施の形態は、ファイルシステム60により実現されるので、ファイルシステム60により実現される機能構成についてのみ説明する。
図6は、ホスト30の機能構成例を示した図である。
図示するように、ホスト30は、ファイルシステム60により実現される機能構成として、コマンド処理部61と、オプション記憶部62と、インデックス受信部63と、オプション判定部64と、インデックス変更部65と、インデックス記憶部66とを備える。また、IRP受信部67と、IRP設定部68と、応答送信部69とを備える。
【0043】
コマンド処理部61は、テープドライブ10にテープ23のマウントを指示するコマンドを処理する。即ち、まず、テープ23のマウントを指示するコマンドで指定されたオプションを取り出す。このオプションは、第1の列挙方法から第7の列挙方法のうちの何れの列挙方法を使用するかを示し、オプションが第5の列挙方法又は第6の列挙方法を使用することを示している場合は、どのディレクトリに存在するファイルを列挙するかも示す。また、テープ23のマウントを指示するコマンドをテープドライブ10に送信することによりマウント処理を行う。本実施の形態では、選択された列挙方法を受け付ける受付部の一例として、コマンド処理部61を設けている。
オプション記憶部62は、コマンド処理部61が取り出したオプションの情報を記憶する。
【0044】
インデックス受信部63は、テープドライブ10にテープ23のマウントを指示するコマンドに応答して送信されたインデックスを受信する。ここで、インデックスは、テープ23に記録されているので、テープドライブ10がテープ23から読み出したものを受信する。また、インデックスは、テープ23に記録された複数のファイルを管理するための情報であり、各ファイルのファイル名、各ファイルの記録位置、各ファイルが存在するディレクトリ等の情報を含んでいる。本実施の形態では、管理情報の一例として、インデックスを用いており、管理情報を取得する取得部、管理情報を受信する受信部の一例として、インデックス受信部63を設けている。
【0045】
オプション判定部64は、オプション記憶部62に記憶されたオプションの情報に基づいて、指定されたオプションがディレクトリ構造又はファイル名の変更を必要とするものであるかどうかを判定する。そして、指定されたオプションがディレクトリ構造又はファイル名の変更を必要としないものであると判定すると、インデックス受信部63が受信したインデックスをそのままインデックス記憶部66に記憶する。また、指定されたオプションがディレクトリ構造又はファイル名の変更を必要とするものであると判定すると、インデックス受信部63が受信したインデックスをインデックス変更部65に受け渡す。
【0046】
インデックス変更部65は、オプション判定部64から受け渡されたインデックスで管理されるディレクトリ構造又はファイル名を、オプション記憶部62に記憶されたオプションの情報に従って変更し、インデックス記憶部66に記憶する。
インデックス記憶部66は、インデックス受信部63が受信したインデックスを、そのままの状態で、又は、インデックス変更部65により変更された状態で記憶する。本実施の形態では、管理情報を記憶する記憶部の一例として、インデックス記憶部66を設けている。
【0047】
IRP受信部67は、OS50からIRPを受信する。
IRP設定部68は、IRP受信部67が受信したIRPにより用意されたバッファに、指定されたディレクトリ内のファイル名を格納する。このとき、ファイル名を複数回に分けて格納するのであれば、まず、IRPが持つFlagというパラメータを参照して、最初のIRPの受信であるか2回目以降のIRPの受信であるかを判定する。そして、最初のIRPの受信であれば、ファイルシステム60が内部で持っているファイルIDが0であるファイルから順にファイル名を格納する。また、2回目以降のIRPの受信であれば、前回のIRPの受信時にファイル名を格納したファイルのファイルIDの次のファイルIDを持つファイルから順にファイル名を格納する。尚、この場合、ファイルIDがxであるファイルは、テープ23上のファイルの記録位置を考慮してx番目に列挙すべきとされたファイル(例えば、テープ23の先頭からx番目に記録されたファイル)であるとする。本実施の形態では、複数のファイルが記録された位置に応じた順序で複数のファイルを列挙した列挙情報の一例として、IRPにより用意されたバッファに格納されるファイル名を用いており、列挙情報を生成する生成部の一例として、IRP設定部68を設けている。
応答送信部69は、IRP設定部68がIRPにより用意されたバッファにファイル名を格納した処理の結果のステータスをOS50に返す。
【0048】
尚、これらの機能のうち、コマンド処理部61、インデックス受信部63、オプション判定部64、インデックス変更部65、IRP受信部67、IRP設定部68、及び、応答送信部69は、CPU30aが磁気ディスク装置30gに記憶されたプログラムをメインメモリ30cに読み込んで実行することにより実現される。また、オプション記憶部62は、例えばメインメモリ30cにより実現され、インデックス記憶部66は、例えば磁気ディスク装置30gにより実現される。
【0049】
次に、ホスト30の動作について説明する。
図7は、テープ23をマウントする際のファイルシステム60の動作例を示したフローチャートである。
図示するように、ファイルシステム60では、まず、コマンド処理部61が、テープ23のマウントを指示するコマンドからオプションを取り出す(ステップ601)。尚、ここで取り出されたオプションの情報は、オプション記憶部62に記憶される。
また、コマンド処理部61は、テープ23のマウントを指示するコマンドをテープドライブ10に送信することにより、テープ23のマウント処理を行う(ステップ602)。具体的には、テープドライブ10にテープ23を引き込み、テープ23への読み書きが行える状態にする。
【0050】
これにより、テープドライブ10では、ヘッド14がテープ23からインデックスを読み出す。そして、インデックスはチャネル13及びバッファ12を経由してホストI/F11に渡され、ホストI/F11がインデックスをホスト30に送信する。そこで、ファイルシステム60では、インデックス受信部63がインデックスを受信する(ステップ603)。
【0051】
次に、オプション判定部64は、オプション記憶部62に記憶されたオプションの情報を参照し、指定されたオプションがディレクトリ構造又はファイル名を変更するものかどうかを判定する(ステップ604)。
【0052】
その結果、オプション判定部64は、指定されたオプションがディレクトリ構造又はファイル名を変更するものでないと判定すれば、ステップ603で受信したインデックスを、ディレクトリ名及びファイル名を変えることなくインデックス記憶部66に記憶する(ステップ605)。
例えば、上述した第1の列挙方法ではディレクトリ構造もファイル名も変更されないので、第1の列挙方法が指定された場合、インデックスはそのままの状態でインデックス記憶部66に記憶される。また、上述した第7の列挙方法において、特別なディレクトリの下に第1の列挙方法でディレクトリを配置することが指定された場合、インデックスは、そのままの内容に、第1の列挙方法でディレクトリが配置されたときの内容が追加された状態で、インデックス記憶部66に記憶される。
【0053】
一方、オプション判定部64は、指定されたオプションがディレクトリ構造又はファイル名を変更するものであると判定すれば、インデックス変更部65に制御を移し、インデックス変更部65が、ステップ603で受信したインデックスの内容を変更してインデックス記憶部66に記憶する(ステップ606)。
例えば、上述した第3の列挙方法から第6の列挙方法までの列挙方法では、ディレクトリ構造が変更されるので、第3の列挙方法から第6の列挙方法までの何れかが指定された場合、インデックスはディレクトリ構造が変更された状態でインデックス記憶部66に記憶される。また、上述した第2の列挙方法、第4の列挙方法、第6の列挙方法では、ファイル名が変更されるので、第2の列挙方法、第4の列挙方法、第6の列挙方法の何れかが指定された場合、インデックスはファイル名が変更された状態でインデックス記憶部66に記憶される。更に、上述した第7の列挙方法において、特別なディレクトリの下に第2の列挙方法から第6の列挙方法までの何れかの列挙方法でディレクトリを配置することが指定された場合、インデックスは、そのままの内容に、第1の列挙方法から第6の列挙方法の何れかの列挙方法でディレクトリが配置されたときの内容が追加された状態で、インデックス記憶部66に記憶される。
【0054】
図8は、図7のステップ605又はステップ606でインデックス記憶部66に記憶されたインデックスの内容の例を示した図である。尚、ここでは、テープ23に図2に示したようにファイルが配置されているものとし、「FileA」の左側の断片、「FileB」、「FileC」、「FileA」の右側の断片の記録位置を、それぞれ、「Pos1」、「Pos2」、「Pos3」、「Pos4」と表記することとする。また、これらのファイルに対して設定されたディレクトリ構造は、「dir1」というディレクトリの直下に「FileA」及び「FileC」が存在し、「dir2」というディレクトリの直下に「FileB」が存在する、というものであるとする。
【0055】
(a)に、第1の列挙方法が指定されたときに記憶されるインデックスの内容の例を示す。
第1の列挙方法が指定された場合は、図7のステップ604で「No」と判定されるので、インデックスの内容は変更されない。即ち、インデックスにおいて、ディレクトリ構造及びファイル名はそのままである。そして、ファイルごとにその記録位置が規定される。但し、「FileA」に対しては、2つの断片に分断されているので、2つの記録位置「Pos1」、「Pos4」が規定されている。
【0056】
(b)に、第2の列挙方法が指定されたときに記憶されるインデックスの内容の例を示す。
第2の列挙方法が指定された場合は、図7のステップ604で「Yes」と判定されるので、インデックスの内容は変更される。即ち、インデックスにおいて、ディレクトリとそのディレクトリの下にあるファイルとの関係は維持したまま、ファイルの断片は分断前のファイルが分かるようなファイル名でファイルとして管理される。そして、ファイルごとにその記録位置が規定される。具体的には、「FileA」を分断して得られた2つの断片は「FileA~1」、「FileA~2」というファイル名で管理され、「FileA~1」に対しては、元の断片の記録位置「Pos1」が、「FileA~2」に対しては、元の断片の記録位置「Pos4」が規定されている。
【0057】
(c)に、第3の列挙方法が指定されたときに記憶されるインデックスの内容の例を示す。
第3の列挙方法が指定された場合も、図7のステップ604で「Yes」と判定されるので、インデックスの内容は変更される。即ち、インデックスにおいて、ディレクトリ構造は失われ、パスが分かるようなファイル名でファイルが管理される。そして、ファイルごとにその記録位置が規定される。具体的には、「dir1」の下の「FileA」は、「dir1~~FileA」というファイル名で管理される。但し、この「dir1~~FileA」に対しては、2つの断片に分断されているので、2つの記録位置「Pos1」、「Pos4」が規定されている。
【0058】
(d)に、第4の列挙方法が指定されたときに記憶されるインデックスの内容の例を示す。
第4の列挙方法が指定された場合も、図7のステップ604で「Yes」と判定されるので、インデックスの内容は変更される。即ち、インデックスにおいて、ディレクトリ構造は失われ、パスが分かるようなファイル名でファイルが管理され、しかも、ファイルの断片は分断前のファイルが分かるようなファイル名でファイルとして管理される。そして、ファイルごとにその記録位置が規定される。具体的には、「dir1」の下の「FileA」を分断して得られた2つの断片は「dir1~~FileA~1」、「dir1~~FileA~2」というファイル名で管理され、「dir1~~FileA~1」に対しては、元の断片の記録位置「Pos1」が、「dir1~~FileA~2」に対しては、元の断片の記録位置「Pos4」が規定されている。
【0059】
尚、第5の列挙方法が指定された場合、及び、第6の列挙方法が指定された場合は、インデックス内の特定のディレクトリの下の情報のみを、それぞれ、(c)及び(d)のように変更すればよいので、これらの列挙方法が指定されたときに記憶されるインデックスの内容については図示を省略している。
また、第7の列挙方法が指定された場合は、インデックス内の情報を、元の情報を残したまま、(a)〜(d)の何れかのように変更した情報、又は、特定のディレクトリの下の情報のみを(c)又は(d)のように変更した情報を追加したものに変更すればよいので、この列挙方法が指定されたときに記憶されるインデックスの内容についても図示を省略している。
【0060】
図9は、ファイルを列挙する際のファイルシステム60の動作例を示したフローチャートである。
まず、ユーザが、Explorer(登録商標)でのドラッグアンドドロップ操作、又は、コマンドプロンプトからのxcopyコマンドの投入操作により、ファイルのコピーを指示すると、アプリケーション40(Explorer(登録商標)、xcopy等)は、FindFirstFile()、FindNextFile()等のAPIを呼ぶことで、OS50に問い合わせを行う。
すると、OS50は、図示するように、IRP_MJ_DIRECTORY_CONTROL(Minor Function CodeはIRP_MN_QUERY_DIRECTORY)というIRPを生成し(ステップ521)、このIRPをファイルシステム60に送信する(ステップ522)。即ち、IRPを用いてファイルシステム60に問い合わせを行う。
【0061】
これにより、ファイルシステム60では、IRP受信部67が、IRPをOS50から受信する(ステップ621)。
すると、IRP設定部68は、IRP受信部67が受信したIRPが持つパラメータであるFlagを参照し、受け渡されたIRPが最初のIRPであるか2回目以降のIRPであるかを判定する(ステップ622)。
【0062】
その結果、最初のIRPであると判定されれば、IRP設定部68は、変数xを0に設定する(ステップ623)。そして、アプリケーション40で指定されたディレクトリ内に、ファイルシステム60の内部で使用するファイルIDがx(この場合は0)であるファイルが存在するかどうかを判定する(ステップ624)。
【0063】
ここで、そのようなファイルが存在すると判定されれば、IRP設定部68は、IRPにより用意されたバッファにそのファイルのファイル名をコピーし(ステップ625)、バッファにまだ空きがあるかどうかを判定する(ステップ626)。バッファにまだ空きがあると判定されれば、IRP設定部68は、変数xに1を加算し(ステップ627)、ステップ624〜626の処理を繰り返す。バッファにもう空きがないと判定されれば、その旨が応答送信部69に伝えられ、応答送信部69が、「STATUS_SUSCESS」というステータスをOS50に返す(ステップ629)。
【0064】
また、ステップ624でディレクトリ内にファイルIDがxであるファイルが存在しないと判定されれば、その旨が応答送信部69に伝えられ、応答送信部69が、「STATUS_NO_MORE_FILES」というステータスをOS50に返す(ステップ628)。
【0065】
一方、ステップ622で2回目以降のIRPであると判定されれば、IRP設定部68は、前回のIRPによる処理で用いた変数xの最後の値に1を加算し(ステップ627)、ステップ624〜629の処理を行う。
【0066】
その後、ファイルシステム60の応答送信部69からステータスを返されたOS50は、ステータスが「STATUS_SUSCESS」であるかどうかを判定する(ステップ523)。
その結果、ステータスが「STATUS_SUSCESS」であると判定されれば、ステップ521で再びIRPを生成し、ステップ522で再びIRPをファイルシステム60に送信する。
一方、ステータスが「STATUS_SUSCESS」でない、つまり、「STATUS_NO_MORE_FILES」であると判定されれば、処理を終了する。これにより、OS50は、IRPにより用意されたバッファ内のファイル名を列挙した情報を参照することとなる。
【0067】
尚、ここでは、例えばコマンドプロンプトからxcopyコマンドを投入することにより、FindFirstFile()、FindNextFile()等のAPIが呼ばれた場合の動作例を説明した。しかしながら、コマンドプロンプトからdirコマンドを投入した場合等、ファイルを列挙する如何なる場面でFindFirstFile()、FindNextFile()等のAPIが呼ばれた場合の動作も同様である。
【0068】
ところで、上記動作例において、ファイルを列挙する際の既存の動作と特に違う点は、ステップ625で、ファイルIDがxであるファイルを、テープ23上のファイルの記録位置に応じて決定する点である。具体的には、テープ23上のファイルの記録位置の順序をそのままファイルIDの順序とする方法、テープ23上のファイルの記録位置からファイルの読出しを速くする順序を算出してこれをファイルIDの順序とする方法等が考えられる。
このうち前者の方法では、図7のステップ605又はステップ606でインデックス記憶部66に記憶されたインデックスを参照して、テープ23の先頭に近い記録位置に対応するファイルから順に列挙する。その際、1つのファイルに対して複数の記録位置が記憶されていれば、複数の記録位置のうち最もテープ23の先頭に近いものを用いて、ファイルを列挙する順序を決定する。
例えば、図8(a)のようなインデックスが記憶されていれば、「dir1」の下のファイルは、「FileA」、「FileC」の順に列挙される。図8(b)のようなインデックスが記憶されていれば、「dir1」の下のファイルは、「FileA~1」、「FileC」、「FileA~2」の順に列挙される。図8(c)のようなインデックスが記憶されていれば、ファイルは、「dir1」の下にあるか「dir2」の下にあるかとは関係なく、「dir1~~FileA」、「dir2~~FileB」、「dir1~~FileC」の順に列挙される。また、図8(d)のようなインデックスが記憶されていれば、ファイルは、「dir1」の下にあるか「dir2」の下にあるかとは関係なく、「dir1~~FileA~1」、「dir2~~FileB」、「dir1~~FileC」、「dir1~~FileA~2」の順に列挙される。
【0069】
但し、これはあくまで、テープ23のマウント時にディレクトリ名又はファイル名の変更のみを必要に応じて行った場合の例である。例えば、テープ23のマウント時に、ディレクトリ名又はファイル名を必要に応じて変更するだけでなく、ファイル名を記録位置に応じた順に並べ替えるようにすれば、ファイルの列挙時には、ファイルを並べられた順に取り出すだけで済むようになる。
【0070】
尚、本実施の形態のように、ファイルの断片に分断前のファイルが分かるようなファイル名を付けたり、ディレクトリ構造をなくしてファイルにパスが分かるようなファイル名を付けたりすると、既存のアプリケーションが正常に動作するかという懸念が生じるかもしれない。
しかしながら、LTFSによるアクセスと、本実施の形態のファイルシステム60によるアクセスとを併存させることとすれば、このような懸念は生じなくなる。例えば、Explorer(登録商標)において、FドライブはLTFSによりアクセスすべきものとし、Gドライブは第1の列挙方法でファイルを列挙するファイルシステム60によりアクセスすべきものとし、Hドライブは第2の列挙方法でファイルを列挙するファイルシステム60によりアクセスすべきものとすればよい。
【0071】
また、本実施の形態では、第2の列挙方法、第4の列挙方法、第6の列挙方法の何れかの列挙方法が指定された場合に、ファイルの断片に分断前のファイルが分かるようなファイル名を付けるようにしたが、この限りではない。ファイルの断片にこれらを互いに区別できるようなファイル名を付けるようにしてもよい。
更に、本実施の形態では、第3の列挙方法から第6の列挙方法までの何れかの列挙方法が指定された場合に、ファイルにそのファイルのパスが分かるようなファイル名を付けるようにしたが、この限りではない。ファイルにこれらを互いに区別できるようなファイル名を付けるようにしてもよい。
【0072】
また、本実施の形態では、テープ23を例にとったが、本発明は、シーケンシャルにアクセス可能な如何なるシーケンシャルメディアに対しても適用可能である。
更に、本実施の形態では、ファイルが更新されると、そのファイル全体又はそのファイルの部分が無効化され、更新後のファイル全体又は更新後の部分が最後のファイルの後ろに追記されるシーケンシャルメディアを用いたが、この限りではない。第1の位置に記録されたファイルが更新されると、そのファイル全体又はそのファイルの部分が無効化され、更新後のファイル全体又は更新後の部分が他のファイルが記録されていない第2の位置に記録されるシーケンシャルメディアを用いてもよい。
【0073】
このように、本実施の形態では、ファイルシステム60に対して、テープ23上の記録位置に応じた順にファイルを列挙するように改変を行った。これにより、Explorer(登録商標)でドラッグアンドドロップしたり、コマンドプロンプトからxcopyを投入したりする単純な操作でディレクトリをコピー可能としたまま、ディレクトリ内のファイルがテープ23上の記録位置に関わらず高速にコピーされるようになった。
【0074】
また、本実施の形態では、第2の列挙方法が指定された場合、ファイルの分断された断片を別々のファイルとして扱い、これらのファイルを含めてテープ23上の記録位置に応じた順に列挙するようにした。これにより、ファイルが分断されている場合であっても、簡単なスクリプトにより、ディレクトリ内のファイルがテープ23上の記録位置に関わらず高速にコピーされるようになった。また、ウィルススキャンのためにファイルを列挙するのであれば、特に、ファイルの一部分を読んでそのファイルがウィルスに感染していることを検出可能なウィルススキャンソフトで、この第2の列挙方法は有効である。
【0075】
更に、本実施の形態では、第3の列挙方法又は第4の列挙方法が指定された場合、複数のディレクトリの下のファイルをフラットに並べ、これらのファイルをテープ23上の記録位置に応じた順に列挙するようにした。これにより、複数のディレクトリをコピーする場合であっても、簡単なスクリプトにより、複数のディレクトリ内のファイルがテープ23上の記録位置に関わらず高速にコピーされるようになった。また、ウィルススキャンのためにファイルを列挙するのであれば、LTFS上の全てのファイルのウィルススキャンを、あるディレクトリの下のファイルについて行った後、別のディレクトリの下のファイルについて行う、といった順序で行うウィルススキャンソフトで、この第3の列挙方法又は第4の列挙方法は有効である。
【0076】
更にまた、本実施の形態では、第5の列挙方法又は第6の列挙方法が指定された場合、特定のディレクトリについてのみ、第3の列挙方法又は第4の列挙方法でファイルを列挙するようにした。これにより、所望のディレクトリ内のファイルに限り、テープ23上の記録位置に関わらず高速にコピーされるようになった。特定のディレクトリの配下のファイルについてのみ、所望の方法で列挙したいときに、この第3の列挙方法又は第4の列挙方法は有効である。
【0077】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
【0078】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【0079】
10…テープドライブ、30…ホスト、40…アプリケーション、50…OS、60…ファイルシステム、61…コマンド処理部、62…オプション記憶部、63…インデックス受信部、64…オプション判定部、65…インデックス変更部、66…インデックス記憶部、67…IRP受信部、68…IRP設定部、69…応答送信部

【特許請求の範囲】
【請求項1】
第1の位置に記録されたファイルが更新されると、当該ファイルの少なくとも一部が無効化され、更新後の当該少なくとも一部が他のファイルが記録されていない第2の位置に記録されるシーケンシャルメディア上の全体が無効化されたファイルを除く複数のファイルを列挙した列挙情報を生成する装置であって、
前記シーケンシャルメディア上の前記複数のファイルが記録された位置を管理する管理情報を、当該シーケンシャルメディアから取得する取得部と、
前記取得部により取得された管理情報を記憶する記憶部と、
前記記憶部に記憶された管理情報に基づいて、前記複数のファイルが記録された位置に応じた順序で当該複数のファイルを列挙した前記列挙情報を生成する生成部と
を含む、装置。
【請求項2】
前記取得部が、前記複数のファイルのうちの特定のファイルが記録された位置として、当該特定のファイルを分断して得られたN個(Nは2以上の整数)のファイル断片がそれぞれ記録されたN個の位置を管理する管理情報を取得した場合に、
前記記憶部は、前記取得部により取得された管理情報を、前記N個のファイル断片を前記複数のファイルのうちのN個のファイルとして区別して管理するように変更し、かつ、当該N個のファイルが記録された位置として前記N個の位置を管理するように変更した管理情報を記憶する、請求項1の装置。
【請求項3】
前記取得部が、前記複数のファイルを複数のディレクトリの何れかの配下に存在するものとして管理する管理情報を取得した場合に、
前記記憶部は、前記取得部により取得された管理情報を、前記複数のファイルをルートディレクトリの直下に存在するものとして区別して管理するように変更した管理情報を記憶する、請求項1又は請求項2の装置。
【請求項4】
前記取得部が、前記複数のファイルを複数のディレクトリの何れかの配下に存在するものとして管理する管理情報を取得した場合に、
前記記憶部は、前記取得部により取得された管理情報を、前記複数のファイルのうち特定のディレクトリの配下に存在するファイルをルートディレクトリの直下に存在するものとして区別して管理するように変更した管理情報を記憶する、請求項3の装置。
【請求項5】
シーケンシャルメディア上の複数のファイルを列挙した列挙情報を生成する装置であって、
前記複数のファイルを列挙するために用いる列挙方法として、第1の列挙方法、第2の列挙方法、第3の列挙方法、及び第4の列挙方法を含む列挙方法群の中から選択された列挙方法を受け付ける受付部と、
前記シーケンシャルメディア上の前記複数のファイルが記録された位置を管理し、当該複数のファイルのうちの特定のファイルがN個(Nは2以上の整数)のファイル断片に分断されて記録されている場合には、当該特定のファイルが記録された位置として当該N個のファイル断片がそれぞれ記録されたN個の位置を管理し、当該複数のファイルを複数のディレクトリの何れかの配下に存在するものとして管理する管理情報を、当該シーケンシャルメディアから取得する取得部と、
前記受付部にて前記第1の列挙方法を受け付けた場合には、前記取得部により取得された管理情報を記憶し、
前記受付部にて前記第2の列挙方法を受け付けた場合には、前記取得部により取得された管理情報を、前記N個のファイル断片を前記複数のファイルのうちのN個のファイルとして区別して管理するように変更し、かつ、当該N個のファイルが記録された位置として前記N個の位置を管理するように変更した管理情報を記憶し、
前記受付部にて前記第3の列挙方法を受け付けた場合には、前記取得部により取得された管理情報を、前記複数のファイルをルートディレクトリの直下に存在するものとして区別して管理するように変更した管理情報を記憶し、
前記受付部にて前記第4の列挙方法を受け付けた場合には、前記取得部により取得された管理情報を、前記複数のファイルをルートディレクトリの直下に存在するものとして区別して管理するように変更し、前記N個のファイル断片を前記複数のファイルのうちのN個のファイルとして区別して管理するように変更し、かつ、当該N個のファイルが記録された位置として前記N個の位置を管理するように変更した管理情報を記憶する記憶部と、
前記記憶部に記憶された管理情報に基づいて、前記複数のファイルが記録された位置に応じた順序で当該複数のファイルを列挙した前記列挙情報を生成する生成部と
を含む、装置。
【請求項6】
前記受付部は、前記複数のファイルを列挙するために用いる列挙方法として、第5の列挙方法及び第6の列挙方法を更に含む前記列挙方法群の中から選択された列挙方法を受け付け、当該第5の列挙方法又は当該第6の列挙方法を受け付けた場合には、特定のディレクトリの指定を更に受け付け、
前記記憶部は、
前記受付部にて前記第5の列挙方法を受け付けた場合には、前記取得部により取得された管理情報を、前記複数のファイルのうち前記特定のディレクトリの配下に存在するファイルをルートディレクトリの直下に存在するものとして区別して管理するように変更した管理情報を記憶し、
前記受付部にて前記第6の列挙方法を受け付けた場合には、前記取得部により取得された管理情報を、前記複数のファイルのうち前記特定のディレクトリの配下に存在するファイルをルートディレクトリの直下に存在するものとして区別して管理するように変更し、前記特定のファイルが前記特定のディレクトリの配下に存在する場合に、前記N個のファイル断片を前記複数のファイルのうちのN個のファイルとして区別して管理するように変更し、かつ、当該N個のファイルが記録された位置として前記N個の位置を管理するように変更した管理情報を記憶する、請求項5の装置。
【請求項7】
シーケンシャルメディアに複数のファイルを記録する記録装置と、当該シーケンシャルメディア上の当該複数のファイルを列挙した列挙情報を生成する生成装置とを含むシステムであって、
前記記録装置は、
前記シーケンシャルメディア上の第1の位置に書き込まれたファイルが更新されると、当該ファイルの少なくとも一部を無効化し、更新後の当該少なくとも一部を当該シーケンシャルメディア上の他のファイルが記録されていない第2の位置に書き込む書込み部と、
前記シーケンシャルメディア上の全体が無効化されたファイルを除く前記複数のファイルが記録された位置を管理する管理情報を、当該シーケンシャルメディアから読み出す読出し部と、
前記読出し部により読み出された管理情報を前記生成装置に送信する送信部と
を含み、
前記生成装置は、
前記送信部により送信された管理情報を受信する受信部と、
前記受信部により受信された管理情報に基づいて、前記複数のファイルが記録された位置に応じた順序で当該複数のファイルを列挙した前記列挙情報を生成する生成部と
を含む、システム。
【請求項8】
第1の位置に記録されたファイルが更新されると、当該ファイルの少なくとも一部が無効化され、更新後の当該少なくとも一部が他のファイルが記録されていない第2の位置に記録されるシーケンシャルメディア上の全体が無効化されたファイルを除く複数のファイルを列挙した列挙情報を生成する方法であって、
前記シーケンシャルメディア上の前記複数のファイルが記録された位置を管理する管理情報を、当該シーケンシャルメディアから取得するステップと、
取得された管理情報に基づいて、前記複数のファイルが記録された位置に応じた順序で当該複数のファイルを列挙した前記列挙情報を生成するステップと
を含む、方法。
【請求項9】
第1の位置に記録されたファイルが更新されると、当該ファイルの少なくとも一部が無効化され、更新後の当該少なくとも一部が他のファイルが記録されていない第2の位置に記録されるシーケンシャルメディア上の全体が無効化されたファイルを除く複数のファイルを列挙した列挙情報を生成する装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
前記シーケンシャルメディア上の前記複数のファイルが記録された位置を管理する管理情報を、当該シーケンシャルメディアから取得する取得部と、
前記取得部により取得された管理情報に基づいて、前記複数のファイルが記録された位置に応じた順序で当該複数のファイルを列挙した前記列挙情報を生成する生成部と
して機能させる、プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−101506(P2013−101506A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2011−244961(P2011−244961)
【出願日】平成23年11月8日(2011.11.8)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【復代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
【復代理人】
【識別番号】100118201
【弁理士】
【氏名又は名称】千田 武
【復代理人】
【識別番号】100118108
【弁理士】
【氏名又は名称】久保 洋之
【Fターム(参考)】