(57)【要約】【課題】  テープ上の有用データを失うことなく、テープに空き領域を増加させ、テープを有効に使用するためのテープ記録装置およびその記録方法を提供すること【解決手段】少なくとも１つのパーティションを含むテープを有し、当該テープへのアクセスを制御するテープ記録装置であって、このテープ記録装置は、テープ上のデータの位置を識別する手段と、データの中の有用なデータ領域を順次読み出す手段と、有用なデータ領域をテープ上の空き領域の先頭に順次コピーする手段と、テープ上の不要なデータ領域と有用なデータ領域のコピー元の領域とから構成され且つ連続する前方空き領域を生成する手段と、当該前方空き領域の直後の位置にパーティションの先頭（ＢＯＰ）を移動し、その位置情報を更新する手段を備える。【選択図】図３
2011113605.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのパーティションを含むテープを有し、当該テープへのアクセスを制御するテープ記録装置において、
前記テープ上のデータの位置を識別する手段と、
前記データの中で有用なデータ領域を順次読み出す手段と、
前記有用なデータ領域を前記テープ上の空き領域の先頭に順次コピーする手段と、
前記テープ上の不要なデータ領域と前記有用なデータ領域のコピー元の領域とから構成され且つ連続する前方空き領域を生成する手段と、
当該前方空き領域の直後の位置に前記パーティションの先頭（ＢＯＰ）を移動し、当該パーティションの先頭（ＢＯＰ）の位置情報を更新する手段を含む、テープ記録装置。
【請求項２】
前記更新する手段は、前記テープにおいて、前記前方空き領域の末尾であって前記パーティションの先頭（ＢＯＰ）に隣接する位置にパーティションの末尾（ＥＯＰ）を移動し、当該ＥＯＰの位置情報を更新する、請求項１に記載のテープ記録装置。
【請求項３】
前記更新する手段は、前記前方空き領域内の所定の位置に前記パーティションの先頭（ＢＯＰ）を移動し、前記所定の位置の直前であって当該パーティションの先頭（ＢＯＰ）に隣接する位置にパーティションの末尾（ＥＯＰ）を移動し、前記ＢＯＰおよび前記ＥＯＰの位置情報を更新する、請求項１に記載のテープ記録装置。
【請求項４】
前記コピーによってコピー先に生成される前記有用なデータ領域は連続する有用データ群を構成し、前記有用データ群は前記テープ後方の前記空き領域の直前に配置され、前記空き領域と前記前方空き領域は論理的に隣接される、請求項１に記載のテープ記録装置。
【請求項５】
前記ＢＯＰおよび前記ＥＯＰの位置情報と、前記データのコピー元およびコピー先の位置の対応付けを行うレコード番号対応表と、を記憶する記憶手段をさらに含み、
前記データはレコード番号で識別され、前記コピーに伴って、前記有用なデータ領域のコピー先の位置を前記レコード番号対応表に登録する、請求項２乃至３に記載のテープ記録装置。
【請求項６】
前記記憶手段は、前記テープを収容するテープカートリッジに内蔵されるカートリッジメモリ、前記テープ上のユーザデータ領域の外部に配置されるハウスキーピング・データセット（ＨＫＤＳ）領域、およびテープ記憶装置に外部接続されるホストシステムのメモリからなる群から選択される、請求項５に記載のテープ記録装置。
【請求項７】
前記テープ上のデータの位置を識別する手段は、前記テープ上のデータ情報を外部接続されたホストシステムから取得し記録するメモリを有し、前記データ情報に基づいて前記不要なデータおよび前記有用なデータの前記テープ上での位置を識別する、請求項１に記載のテープ記録装置。
【請求項８】
前記コピーは、更新前の前記パーティションの先頭（ＢＯＰ）と任意の前記不要なデータ領域の間に存在する前記有用なデータ領域について順次行う、請求項１に記載のテープ記録装置。
【請求項９】
前記テープ上の前記有用データ群の末尾に論理的なデータ末尾（ＥＯＤ）が配置され、前記データ末尾（ＥＯＤ）は前記テープ後方の前記空き領域の直前に配置される、請求項４に記載のテープ記録装置。
【請求項１０】
前記テープは前記パーティションに対応するフォーマット識別（ＦＩＤ）を含み、当該ＦＩＤは前記テープ上のユーザデータ領域の外部に配置される、請求項１に記載のテープ記録装置。
【請求項１１】
前記テープは前記パーティションを２つ以上含み、所定のパーティションのパーティション末尾（ＥＯＰ）と前記所定のパーティションに連続する別のパーティションのパーティション先頭（ＢＯＰ）の間に、緩衝領域を含む、請求項１に記載のテープ記録装置。
【請求項１２】
少なくとも１つのパーティションを含むテープを有し、当該テープへのアクセスを制御するテープ記録装置において、
前記テープ上のデータの位置を識別するステップと、
前記データの中で有用なデータ領域を順次読み出すステップと、
前記有用なデータ領域を前記テープ上の空き領域の先頭に順次コピーするステップと、
前記テープ上の不要なデータ領域と前記有用なデータ領域のコピー元の領域とから構成され且つ連続する領域からなる前方空き領域を生成するステップと、
前記前方空き領域の直後の位置に前記パーティションの先頭（ＢＯＰ）を移動し、当該ＢＯＰの位置情報を更新するステップと、
を含む、テープ記録方法。
【請求項１３】
前記テープにおいて、前記前方空き領域の末尾であって前記パーティションの先頭（ＢＯＰ）に隣接する位置にパーティションの末尾（ＥＯＰ）を移動し、当該ＥＯＰの位置情報を更新するステップをさらに含む、請求項１２に記載のテープ記録方法。
【請求項１４】
前記コピーによってコピー先に生成される前記有用なデータ領域は連続する有用データ群を構成し、前記有用データ群は前記テープの前記空き領域の直前に配置され、前記空き領域と前記前方空き領域は論理的に隣接され連続する、請求項１２に記載のテープ記録方法。
【請求項１５】
前記データの位置を識別するステップは、前記テープ記録装置の制御部に格納される前記データに対応するレコード番号に基づいて、前記不要なデータ領域および前記有用なデータ領域のテープ上での位置を識別し、
前記有用なデータ領域を前記コピーするステップは、前記コピー後に、前記データの前記コピー元およびコピー先の位置を含むレコード番号対応表の内容を更新するステップを含み、更新前の前記パーティションの先頭（ＢＯＰ）と任意の前記不要なデータ領域との間にある前記有用なデータ領域について前記コピーするステップを繰り返し行う、請求項１２に記載のテープ記録方法。
【請求項１６】
前記ＢＯＰの位置情報および前記レコード番号対応表は、前記テープを収容するテープカートリッジに内蔵されるテープカートリッジメモリ（ＣＭ）、前記テープ上のユーザデータ領域の外部に位置するハウスキーピング・データセット（ＨＫＤＳ）領域、および前記テープ記録装置に外部接続されるホストシステムのメモリからなる群から選択される場所に格納される、請求項１５に記載のテープ記録方法。
【請求項１７】
前記テープ上の前記データの位置を識別するステップの前に、前記テープ記録装置をアイドルモードに切り替えるステップをさらに含み、
前記前方空き領域を生成するステップは、前記有用なデータ領域のコピー元の領域を新たな不要なデータ領域と識別するステップを含む、請求項１２に記載のテープ記録方法。
【請求項１８】
前記有用データ群の末尾に論理的なデータ末尾（ＥＯＤ）が配置され、前記コピーするステップは、前記データ末尾（ＥＯＤ）の位置に前記有用なデータ領域を順次上書きするステップを含み、前記データ末尾（ＥＯＤ）は前記上書きするステップに伴い、前記テープの前記空き領域の先頭に順次再配置される、請求項１４に記載のテープ記録方法。
【請求項１９】
前記テープにおいて、前記前方空き領域内の所定の位置に前記パーティションの先頭（ＢＯＰ）を移動し、前記所定の位置の直前であって前記パーティションの先頭（ＢＯＰ）に隣接する位置にパーティションの末尾（ＥＯＰ）を移動するステップと、前記ＢＯＰおよび前記ＥＯＰの位置情報を更新するステップとをさらに含む、請求項１２に記載のテープ記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テープ記録装置およびテープ記録方法に関し、特にテープ上の有用なデータを失うことなく空き領域の容量を増加するための方法およびその方法を実現するテープ記録装置に関する。
【背景技術】
【０００２】
従来のテープ記録装置（以下の説明でテープドライブとも呼ぶ）では、データ記録の開始位置である論理的なテープ先頭位置（ＢＯＴ）を、テープの物理的な先頭位置とし、記録すべきデータ情報をその先頭位置から記録している。そしてテープ挿入時にはそれらの情報を読み込み、テープ排出時には巻き戻しを行う。また、テープ記録装置には、カートリッジ型やオープン・リール型等の形態があり、カートリッジ型のテープ（磁気テープ）には、メモリを備え、システム情報を記録するものもある。
【０００３】
磁気テープドライブにおいて、定期的にバックアップをとる場合など、直近のデータのみ保持しておくことを主目的とし、従前に記録したデータは消えてしまっても構わないという使用方法が取られる。この場合、テープの前半部は不要なデータ領域の割合が高くなるにも関わらず、順次（シーケンシャル）アクセスのためにいたずらに、テープ前半部の容量を消費しているのが現実である。
【０００４】
これに対して、テープ上における不要なデータ領域の割合が一定量を越えると、有効なデータのみを別のテープメディア（テープを用いる媒体を広くテープメディアを呼ぶ）にコピー（複製）する (これをリクレームと呼ぶ) ことで、テープ上の容量を管理する方法もとられている。
【０００５】
図１０に従来技術によるテープ１０００上に書き込まれるユーザデータと空き領域の関係を示す。テープメディアの論理的な先頭、つまり物理的に最初にデータを書き込む地点である書き込み開始位置をＢＯＴ（Beginning of Tape）１０１０と呼ぶ。また、テープ上の論理的な末尾、つまり物理的にこれ以上データを書き込むことができない地点である書き込み終了位置をＥＯＴ（Endof Tape）１０２０と呼ぶ。テープ１０００上のユーザデータ群１０５０には、通常不要なデータ１０５２および有用なデータ１０５４が混在する。ＢＯＴ及びＥＯＴの位置は常に固定されていて、テープドライブがこの位置を動かすことはない。これは、テープドライブがテープに書かれたデータの中で、どのデータが有効でどのデータが不要であるかを判別する術を持たないためである。また、実際に書き込まれたデータの末尾をＥＯＤ（Endof Data）１０３０と呼ぶ。このＥＯＤは、常にＢＯＴとＥＯＴの間に存在する。ＥＯＤからＥＯＴまでの領域が、いわゆる空き（Ｅｍｐｔｙ）領域１０４０となる。通常、この空き領域に次のデータが書き込まれる。
【０００６】
例えば、現在多く用いられている磁気テープドライブではテープにデータを書き込む際、書き込み位置を少しずつずらしながら１本のテープの両端を何度も往復することによりデータを書き込む方法がとられている。この場合、テープは、パーティション（ｐａｒｔｉｔｉｏｎ）と呼ばれる領域を複数有し、それぞれのパーティションにユーザデータを書き込むことができる。なお、パーティションは、上述のようにテープの両端を何度も往復するリニア方式に限られず、ビデオテープのように一方の端から他方の端へ一度移動することで全てのデータを読み出す、あるいは書き込む、ヘリカル方式においても作成可能である。
【０００７】
テープにデータを効率よく書き込むためにパーティションの先頭（ＢＯＰ）とパーティションの末尾（ＥＯＰ）のそれぞれの位置を移動する場合、たとえばＢＯＰをテープの後方に移動すると、旧位置のＢＯＰから新位置（現在位置）のＢＯＰの間に存在するデータにはアクセスすることができなくなるという問題がある。
【０００８】
特許文献１（特開２００２−１９０１６３号公報）には、論理的テープ先頭位置を更新して、磁気テープの先頭部分などのアクセスが一部の場所に集中し、テープの使用効率が悪いという課題を解決するために、磁気テープの論理的な先頭位置を順次移動させる方法が記載されている。しかしながら、この方法においては、テープ先頭位置を更新する際、必要なデータを移動する操作がない、あるいは可変長データであるレコードに対応するレコード番号などの対応付けがないため，テープ上の必要なデータも失われる可能性がある。
【０００９】
特許文献２（特開平１１−５３８６９号公報）には、磁気テープの記録可能なテープ始端部（ＢＯＴ）にテープ情報管理エリアを設け、テープマークの位置情報およびデータブロックのうちの読み込み不可能な不良データブロックの位置情報を登録管理する管理部を設け、読み込み不可能な不良データブロックに読み書きをすることを回避する方法が記載されている。しかしながら、この方法においては、このテープ始端部（ＢＯＴ）へ磁気テープ挿入時にアクセスが繰り返されアクセスが集中するという問題点が残されている。またテープ始端部（ＢＯＴ）を移動する操作には向いていないと考えられる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００２−１９０１６３号公報
【特許文献２】特開平１１−５３８６９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
従って、テープ上の必要なデータを失うことなく、テープに空き領域を増加させ、テープを有効に使用するための方法を提供することが非常に望ましい。
【００１２】
本発明は、ユーザデータが書き込まれるパーティションと呼ばれる領域を少なくとも１つ含む、テープにおいて、パーティションの先頭（ＢＯＰ）位置を更新する際にも、テープ上のデータが保持されることを目的とする。すなわち、テープドライブに接続されたホストシステムが有用と判断したデータを保持したまま半永久的にデータを書き続けられるテープドライブおよびそのテープドライブを用いた記録方法を提供することを目的とする。
【００１３】
さらに、本発明は、テープ（磁気テープ）の前半部に存在しやすい不要なデータ領域を低減し、テープ上の空き領域を増加させることを目的とする。
【課題を解決するための手段】
【００１４】
本発明の概要を以下に説明する。テープ記録装置（以下の説明では、テープドライブと呼ぶ）は、1本のテープカートリッジからなるテープメディアを含む。このテープメディアは少なくとも１つのパーティションを含む。このパーティションはパーティション先頭（ＢＯＰ）とパーティション末尾（ＥＯＰ）を有し、このＢＯＰとＥＯＰの間にユーザデータが書き込まれる。テープメディアが、複数のパーティションを有する場合は、各パーティションに含まれるユーザデータは独立して更新することが可能である。テープメディアが１つのパーティションのみを含む場合は、ＢＯＰとＥＯＰは、それぞれ従来技術のテープ先頭（ＢＯＴ）およびテープ末尾（ＥＯＴ）に一致する。
【００１５】
テープメディアにデータを効率よく書き込むためにパーティション先頭（ＢＯＰ）とパーティション末尾（ＥＯＰ）の位置を移動する際に、以下の問題が存在する。即ち、ＢＯＰを後方に移動すると、旧位置のＢＯＰから新位置（現在位置）のＢＯＰの間に存在するデータにはアクセスすることができなくなる。このために、ＢＯＰを移動する前に、旧ＢＯＰから新ＢＯＰの間には不要なデータのみ存在するようにする必要がある。しかしながら、従来のテープドライブはテープメディアに書かれたデータの中で、どのデータが有効であり、どのデータが不要であるかという情報を持たない。
【００１６】
一方、テープドライブのテープを収容するカートリッジは、たとえばカートリッジメモリ（ＣＭ）と呼ばれる不揮発性メモリに、テープディレクトリと呼ばれる、各データが保存されたテープ上の物理的位置情報を有する。したがって、この位置情報を有効に用いることにより、ＢＯＰを動的に移動しても対応する物理的位置を見つけることができ、有用データの読み出しを行うことが可能である。
【００１７】
本発明によれば、第１の態様おいて、パーティションの先頭（ＢＯＰ）とパーティションの末尾（ＥＯＰ）の位置を動的に移動することで、テープに空き領域を増加させ、テープを有効に使用するためのテープ記録装置が提供される。このテープ記録装置は、少なくとも１つのパーティションを含むテープを有し、当該テープへのアクセスを制御するテープ記録装置であって、テープ上のデータ情報からデータの位置を識別する手段と、データの中で有用なデータ領域を順次読み出す手段と、有用なデータ領域をテープ上の空き領域の先頭に順次書き込み（即ちコピーを行う）手段と、データの中で不要なデータ領域と有用なデータ領域のコピー元の領域とから構成され且つ連続する前方空き領域を生成する手段と、当該前方空き領域の直後の位置にパーティションの先頭（ＢＯＰ）を移動し、当該ＢＯＰの位置情報を更新する手段を含む。当該前方空き領域の所定の位置に前記パーティションの先頭（ＢＯＰ）を移動することを含み得る。
【００１８】
さらに、更新する手段は、好ましくは、テープにおいて、前方空き領域の末尾であってパーティションの先頭（ＢＯＰ）に隣接する位置にパーティションの末尾（ＥＯＰ）を移動し、当該ＥＯＰの位置情報を更新する。一方、前方空き領域内の所定の位置に前記パーティションの先頭（ＢＯＰ）を移動し、当該パーティションの先頭（ＢＯＰ）に隣接する位置で、この所定の位置の直前にパーティションの末尾（ＥＯＰ）を移動し、ＢＯＰおよびＥＯＰの位置情報を更新してもよい。
さらに、コピー先に生成される有用なデータ領域は連続する有用データ群を構成し、この有用データ群はテープ後方の空き領域の直前に配置され、空き領域と前方空き領域は論理的に隣接される。換言すれば、前方空き領域は、複数の不要データ領域と、不要データ領域で挟まれた有用データ領域のコピー元の領域とから構成され、テープ後方の空き領域と連続することが好ましい。
【００１９】
このテープ記録装置は、好ましくは、ＢＯＰよびＥＯＰの更新された位置情報と、データのコピー元およびコピー先の位置の対応付けを行うレコード番号対応表と、を記憶する記憶手段をさらに含み、データはレコード番号で識別され、コピーに伴って、有用なデータのコピー先の位置をレコード番号対応表に登録してもよい。
【００２０】
この記憶手段は、好ましくは、テープを収容するテープカートリッジに内蔵されるカートリッジメモリ、テープ上のユーザデータ領域の外部に配置されるハウスキーピング・データセット（ＨＫＤＳ）領域、およびテープ記憶装置に外部接続されるホストシステムのメモリからなる群から選択される。
このデータの位置を識別する手段は、好ましくは、テープ上のデータ情報を外部接続されたホストシステムから取得し記録するメモリを有し、データ情報に基づいて、不要なデータおよび有用なデータのテープ上での配置を識別する。
【００２１】
コピーは、更新前のパーティション先頭（ＢＯＰ）と任意の不要なデータ領域の間に存在する有用なデータ領域について順次行うことが好ましい。
ここで前方空き領域は、複数の不要データ領域と不要データ領域で挟まれた有用データ領域のコピー元の領域とから構成され、テープ後方の前記空き領域と連続する。
【００２２】
テープ上の有用データ群の末尾に論理的なデータ末尾（ＥＯＤ）が配置され、データ末尾（ＥＯＤ）はテープ後方の空き領域の直前に配置されることが好ましい。
また、テープはパーティションに対応するフォーマット識別（ＦＩＤ）を含み、当該ＦＩＤはテープ上のユーザデータ領域の外部に配置され得る。
【００２３】
このテープはテープ上にパーティションを２つ以上含み、所定のパーティションのパーティション末尾（ＥＯＰ）と当該所定のパーティションに連続する別のパーティションのパーティション先頭（ＢＯＰ）の間に、緩衝領域を含むことが好ましい。
【００２４】
本発明によれば、第２の態様おいて、パーティション先頭（ＢＯＰ）とパーティション末尾（ＥＯＰ）の位置を動的に移動することで、テープに空き領域を増加させ、磁気テープを有効に使用するためのテープ記録方法が提供される。このテープ記録方法は、少なくとも１つのパーティションを含むテープを有し、このテープへのアクセスを制御するテープ記憶装置において、テープ上のデータの位置を識別するステップと、データの中で有用なデータ領域を順次読み出すステップと、テープ上の空き領域の先頭に順次コピーするステップと、テープ上のデータの中で不要なデータ領域と有用なデータ領域のコピー元の領域とから構成され且つ連続する領域からなる前方空き領域を生成するステップと、当該前方空き領域の直後の位置にパーティションの先頭（ＢＯＰ）を移動し、当該ＢＯＰの位置情報を更新するステップと、を含み得る。
【００２５】
この方法は、好ましくは、前方空き領域の末尾であって前記パーティションの先頭（ＢＯＰ）に隣接する位置にパーティションの末尾（ＥＯＰ）を移動し、当該ＥＯＰの位置情報を更新するステップをさらに含む。
【００２６】
さらに、コピー先に生成される有用なデータ領域は連続する有用データ群を構成し、この有用データ群はテープの空き領域の直前に配置され、空き領域と前方空き領域は論理的に隣接され連続することが好ましい。
データの位置を識別するステップは、テープ記録装置の制御部に格納されるデータに対応するレコード番号に基づいて、不要なデータおよび有用なデータ領域のテープ上での位置を識別することが好ましい。
【００２７】
さらに、有用なデータをコピーするステップは、コピー後に、データのコピー元およびコピー先の位置を含むレコード番号対応表の内容を更新するステップを含み、更新前のパーティション先頭（ＢＯＰ）と任意の不要なデータ領域との間にある有用なデータについて、コピーするステップを繰り返し行うことが好ましい。
【００２８】
ここで、ＢＯＰの位置情報およびレコード番号対応表は、テープを収容するテープカートリッジに内蔵されるテープカートリッジメモリ（ＣＭ）、テープ上のハウスキーピング・データセット（ＨＫＤＳ）領域、およびテープ記録装置に外部接続されるホストシステムのメモリからなる群から選択される場所に格納され得る。なお、ＢＯＰに対応するＥＯＰの位置情報を格納してもよい。
【００２９】
さらに、この方法は、好ましくは、テープ上のデータを識別するステップの前に、テープ記録装置をアイドルモードに切り替えるステップを含み、前方空き領域を生成するステップは、有用データ領域のコピー元の領域を新たな不要なデータと識別するステップを含む。
【００３０】
有用データ群の末尾に論理的なデータ末尾（ＥＯＤ）が配置され、コピーするステップは、データ末尾（ＥＯＤ）の位置から有用なデータを順次上書きするステップを含み、データ末尾（ＥＯＤ）は上書きするステップに伴い、テープの空き領域の先頭に順次再配置されることが好ましい。
【００３１】
さらに、この方法は、好ましくは、テープにおいて、前方空き領域内の所定の位置にパーティションの先頭（ＢＯＰ）を移動し、当該所定の位置の直前であってパーティションの先頭（ＢＯＰ）に隣接する位置にパーティションの末尾（ＥＯＰ）を移動するステップと、このＢＯＰおよびＥＯＰの位置情報を更新するステップとをさらに含む。
【発明の効果】
【００３２】
本発明は、パーティション先頭（ＢＯＰ）及びパーティション末尾（ＥＯＰ）の位置を動的に動かすことにより、テープドライブにおける、仮想的なエンドレステープを実現する。即ち、有効なデータのみを別のテープメディアにコピーする (これをリクレームと呼ぶ)ことなくテープメディアを利用し続けることが可能となる。また、不要なデータが占める領域が空き容量領域とみなされることから、テープメディアのデータ使用量が低減される。
【００３３】
磁気テープドライブでファイル記録を行う際に、不要なファイルを削除してもテープに使用しない空き容量を増やさず、さらにファイルを更新するたびにファイルサイズに依存してテープ容量を無駄に消費しないようにすることができる。
【図面の簡単な説明】
【００３４】
【図１】本発明が適用されるテープドライブ１００の構成例を示す図である。
【図２】本発明によるテープのデータフォーマットの例を示す図である。
【図３】本発明によるデータ記録方法を説明する概略図を示す図である。
【図４】本実施の形態のよるデータ記録方法のフローチャートを示す図である。
【図５】テープカートリッジのテープ上のデータ記録方法の例を示す図である。
【図６】テープカートリッジのテープ上の本発明によるフォーマット例を示す図である。
【図７】本発明によるデータ読み出し方法（フローチャート）の例を示す図である。
【図８】テープヘッドとテープとの関係、および本発明による複数のパーティションの配置を示す図である。
【図９】テープ上のデータバンドと複数のパーティションとの関係を示す図である。
【図１０】従来技術によるテープ上のデータと空き領域の配置例を示す図である。
【発明を実施するための形態】
【００３５】
以下において、本発明によるテープ記録装置およびその記録方法について、幾つかの典型的な実施形態が説明される。これら実施形態は、例示であり本発明によるテープ記録装置あるいは記録方法をこれらの実施形態に限定するものではない。
【００３６】
本発明によるテープドライブの記録方法の概要を以下に説明する。はじめに、データ情報、たとえばテープ上の不要なデータの領域をホストシステムから、あるいはテープカートリッジ・メモリ（ＣＭ）内から取得する。次に、パーティション先頭位置（ＢＯＰ）の付近に存在する有用なデータを、データ末尾（ＥＯＤ）の直前からコピー（読み出したデータを複製して、書き込む動作を以下の説明では、コピーと呼ぶ）することにより、実質的に有用なデータを移動させ、テープ前半部分の領域、換言すればＢＯＰから一定の範囲に不要なデータのみ存在する領域を事前に準備する。即ち、有用なデータ領域をＥＯＤの直前に順次、コピーすることにより、コピー元であるＢＯＰ付近の有用なデータを冗長なデータとして扱うことができ、テープ上での不要領域とみなすことができる。
【００３７】
このようにして、テープの物理的な前半部分に空き（Ｅｍｐｔｙ）領域を形成し、ＢＯＰとＥＯＤの間に存在する有用データをＥＯＤの直前に集め、有用データ群を生成する。その後、ＢＯＰをＥＯＤの直前に集められた有用データ群の前まで後方に移動する。このＢＯＰの移動により、ＥＯＤの直後のテープ後方の空き領域からテープ前方に形成された空き領域につながる、仮想的に連続する空き領域ができる。ここで、パーティション末尾（ＥＯＰ）は、仮想的に前方空き領域の末尾、即ち、パーティション先頭（ＢＯＰ）の直前に移動されたものとみなされる。このようにして、仮想的なエンドレステープとして機能する、テープが実現され得る。
【００３８】
テープドライブに接続されたホストシステムに対しては、この有用データがコピーされたことを通知せずに、当該有用データに対応する元のアドレス、言い換えれば元のレコード番号に、ホストシステムがアクセスしてきたときに、テープドライブがアドレスを現在のアドレス（移動後のレコード番号）に変換し、新たにコピーして移動した位置にアクセスするように対応すればよい。
【００３９】
一方、ホストシステムに新しいコピー先の位置を通知することも可能である。ホストシステムにコピー先の位置（現在位置）を通知する場合にはホストシステムが現在位置を受信したことを確認した上で元の位置の有用データを不要とみなすことになる。
【００４０】
以下に図面を参照しながら、本発明による実施形態をより詳細に説明する。まず、本発明の構成要素であるテープ記録装置（以下で、テープドライブと呼ぶ）について説明する。図１は、テープドライブ１００の構成図を示す。テープドライブ１００は、インターフェース１１０と、バッファメモリ１２０と、記録チャネル１３０と、カートリッジ１４０と、制御部１６０と、メカニカルコントローラ１７０とを含む。カートリッジ１４０は、テープ１４ａと、ヘッド１４ｂと、リール１４ｃ、１４ｄと、カートリッジメモリ（ＣＭ）１８０を有する
【００４１】
インターフェース１１０は、ホスト１０とバス２０を介して通信を行う。インターフェース１１０は、ホスト１０からバッファメモリ１２０へ転送されるデータを書き込むコマンド、およびバッファメモリ１２０のデータをテープ１４ａへ書き込むコマンドを受け取る。例えばインターフェース１１０の通信の規格はＳＣＳＩまたはファイバーチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）である。
【００４２】
バッファメモリ１２０は、テープ１４ａに書き込むべき可変長のデータを蓄積するメモリであり、ＤＲＡＭ（Dynamic Random Access Memory）から構成される。バッファメモリ１２０は、固定長のセグメントで区切られ、各セグメントは、テープ１４ａ上のデータセット（ＤＳ）に対応する。
【００４３】
テープ１４ａは、データの記録手段であり、テープメディアとも呼ぶ。記録チャネル１３０を介してデータをヘッド１４ｂによりテープ１４ａに書み込んだり、読み出したりする。テープ１４ａは、リール１４ｃ及び１４ｄに巻かれ、これらの回転に伴い、リール１４ｃからリール１４ｄの方向へ、又は、その反対の方向へ移動する。カートリッジ１４０は、テープ１４ａが巻きつけてあるリール１４ｃ、１４ｄを収容する容器である。なお、図１において、２つのリールがカートリッジ１４０に収納される方式を記載したが、テープドライブ側とテープ側にそれぞれ１つのリールが配置される方式でもよい。
【００４４】
テープカートリッジ１４０は、その内部にカートリッジメモリ（ＣＭ：Cartridge Memory）１８０と呼ばれる非接触不揮発性メモリを備えている。テープドライブがＣＭ内のテープディレクトリの情報（書き込みデータの属性情報）を更新する。テープドライブは、データ読み取り時に、このＣＭに含まれる情報を参照して、テープを目的位置まで高速に移動し、位置決めを行なう。本発明において、このカートリッジメモリ（ＣＭ）には、パーティション先頭位置（ＢＯＰ）およびデータ移動に伴うレコード番号対応表の情報を記録させてもよい。
【００４５】
制御部１６０は、システムコントローラとも呼ばれ、テープドライブ１００の全体を制御する手段ある。制御部１６０は、ホスト１０からインターフェース１１０を介して受信したコマンドに従って、テープ１４ａへのデータの書き込み、テープからのデータの読み取りを制御する。また、制御部１６０に接続されたメカニカルコントローラ１７０は、ヘッド位置制御システムとモータドライバとを制御する。ヘッド位置制御システムは、テープ上の所望の１つ又は複数のラップ（複数のトラックの集合）を追跡して、該当する位置にヘッド１４ｂの位置合わせを行う。モータドライバは、直接制御部１６０に接続されていてもよい。本発明による制御部１６０は、メモリ１６５を有し、このメモリ１６５は、好ましくはテープ上のデータ情報（有用なデータあるいは不要なデータについてのレコード番号、ファイルマークなど）を含む。
【００４６】
テープドライブ動作において、記録容量の無駄を小さくするために、テープ媒体の長手方向に書き込まれるデータセット（ＤＳ）の間隔を最小限にする必要がある。このため、制御部１６０に接続されたメカニカルコントローラ１７０は、テープ媒体に書き込まれたデータセットの直後（換言すればデータ末尾（ＥＯＤ））から次のデータが書き込まれるように、テープ媒体１４ａをヘッド１４ｂに位置合わせする。
【００４７】
図２に本発明が適用されるテープのフォーマット例を示す。図２（Ａ）は、データの配置、空き領域を含むテープ２００のフォーマットを示す。図２（Ａ）は、後述（図５を参照）するように、通常1本のテープ上に複数のデータバンド（ＤＢとも略すユーザデータを含む領域）を有し、データが渦巻き状に書き込まれるテープを１本に引き伸ばして表現した図と考えられる。テープ２００は、物理的なパーティション先頭２０２（ＰＢＯＴ:PhysicalBeginning of Tape）および物理的なパーティション末尾２０４（ＰＥＯＴ:Physical end of tape）を有する。このＰＢＯＴとＰＥＯＴの間に、パーティション（ｐａｒｔｉｔｉｏｎ）と呼ばれるユーザデータ他が書き込まれる領域を有し、このパーティションの先頭（ＢＯＰ）２１０とパーティションの末尾（ＥＯＰ）２６０の間にデータが書き込まれる。
【００４８】
データは通常、ビット群で表される。テープドライブ１００は、図２（Ａ）に示すテープに、固定長のデータであるデータセット（ＤＳ：data set）ＤＳ０，ＤＳ１，ＤＳ２，ＤＳ３，ＤＳ４，ＤＳ５を書き込む。データセット（ＤＳ）は、ホストシステムがテープドライブに書き込みを依頼する可変長のデータであるレコード（図２（Ａ）でＲ１，Ｒ２，Ｒ３，Ｒ４と表記）を１つまたは複数個、格納することができる。先頭のデータセットＤＳ０は、フォーマット識別であり、ＦＩＤ（FormatIdentification DS）２２０と呼ばれ、レコードを有さず、テープにどのような情報が書き込まれているかを表す領域である。また、ホストシステムは、レコードに代えて、ファイルマーク（ＦＭ）と呼ばれる特殊なビット列をデータセットに書き込むこともある。またテープドライブは、データセット（ＤＳ）の容量とレコードの総容量が一致しない場合には、余白であるパディング領域Ｐ１  ２２８を追加して、図２（Ａ）のようにデータセットＤＳ５を生成して、テープに書き込むこともある。データセットの末尾にはデータ末尾（ＥＯＤ）２３０と呼ばれる、レコード、ファイルマーク（ＦＭ）を含まない領域がテープに書き込まれる。このデータ末尾（ＥＯＤ）の後に、空き領域（Ｅｍｐｔｙ）２５０が続く。次の書き込み時に、この空き領域にデータが書き込まれる。通常は、空き領域２５０の末尾がパーティション末尾（ＥＯＰ）２６０に一致する。
【００４９】
パーティションがテープに１つの場合、換言すれば、テープ全体を１つのパーティションとして利用する場合を示したものが、図２（Ａ）であり、上記に説明した。しかしながら、テープは、複数のパーティションを含み得る。この場合、図２（Ｂ）に示すように、各パーティションは、ＢＯＰとＥＯＰで挟まれた領域を含み得る。パーティションが複数ある場合の各パーティション内のデータの読み書きは、互いに他のパーティションがあたかも存在しないように、つまり、完全に独立して、読み書きが行われる。また、図２（Ｂ）に示すように、パーティション１  ２７０とパーティション２  ２７５の間に緩衝（バッファー）領域２９０をとっておくことが望ましい。この緩衝領域２９０は、テープヘッドとデータの書き込み幅（ラップ幅）との関係から設けることができる。図２の直線状のテープと後述する本発明による渦巻き状のテープ構成（図５）との関係では、ＢＯＰが後述する図５のＬＰ３に、ＥＯＰがＬＰ４の境界に一致し、ＦＩＤはＬＰ２とＬＰ３の間に配置される。各パーティションにＦＩＤがそれぞれ１つ存在するとみなされるが、１つのＦＩＤにより、複数のパーティションを一組として使用することもできる。
【００５０】
図３に、本発明によるテープ記録方法の概要とテープ上のデータ配置との関係を示す。図３（Ａ）は、テープの初期の状態を示す。データは、パーティション先頭（ＢＯＰ）から書き込まれ、図中のＡ１、Ａ２、Ａ３、Ａ４で表わされる有用なデータ（以降でＡｎと記載）、およびＢ１、Ｂ２、Ｂ３で表される不要なデータ（以降でＢｎと記載）を含む。データの終了位置、即ち末尾にはデータ末尾（ＥＯＤ）が配置される。データ末尾（ＥＯＤ）は最後のデータセットであり、データ（レコードもしくはファイルマーク）を含まない。ＥＯＤの後方に空き（Ｅｍｐｔｙ）領域Ｃ１が配置されている。空き領域Ｃ１の後方で、Ｃ１の末尾にパーティション末尾（ＥＯＰ）が配置されている。
【００５１】
図３（Ｂ）は、テープドライブが、データ情報を取得した後に、有用なデータＡｎを順次読み出し、空き領域Ｃ１の先頭から、実際にはＥＯＤの領域を上書きしながら、コピー（複製）する過程を示す。このとき、有用なデータＡｎのうち、パーティション先頭（ＢＯＰ）と任意の不要なデータ（Ｂｎ）との間に存在する有用なデータを、図３（Ａ）では、ＢＯＰと不要なデータＢ２との間のＡ１、ＢＯＰとＢ３との間のＡ２、Ａ３を順次コピーして移動した後の状態が図３（Ｂ）に示される。なお、このコピーに伴って、コピー元とコピー先の位置の対応付けを行うためのレコード対応表において、コピー先の位置を更新しておく。
【００５２】
次に、テープドライブは、有用なデータＡｎをコピー後、図３（Ｂ）にあるコピー元の有用データ（Ａ１）、（Ａ２）、および（Ａ３）を不要なデータとして識別する。この段階を図３（Ｃ）に示す。このようにしてテープ前方に連続する不要なユーザデータ領域Ｂ’を生成する。
【００５３】
最後に、テープドライブは、テープ前方の連続する不要なデータ領域Ｂ’を新たな前方空き領域Ｃ２と識別する。この段階を図３の（Ｄ）に示す。このとき従前のテープ後方に配置された空き領域Ｃ１と新たな空き領域Ｃ２とは、論理的に連続する空き領域（Ｃ１−Ｃ２）を構成する。ここで、パーティション先頭（ＢＯＰ）が連続する有用データ群（Ａ４，Ａ１，Ａ２，Ａ３）の先頭に移動される。次に、パーティション末尾（ＥＯＰ）は、空き領域Ｃ１の末尾から空き領域Ｃ２の末尾に移動する。なお、ＢＯＰを有用データ群の先頭ではなく、前方空き領域Ｃ２の所定の位置Ｐｘ（図示せず）に移動することも可能であり、この場合にはＥＯＰを当該所定の位置の直前に移動しても良い。
以上の手順を行うことによって、本発明によるテープドライブは、物理的なパーティションの末尾と先頭とが論理的に連続しているようにみなすことができ、仮想的なエンドレステープとして機能し得る。すなわち、本発明によれば、データ末尾（ＥＯＤ）と論理的なパーティション末尾（ＥＯＰ）との間の空き領域（図３では、Ｃ１−Ｃ２）を絶えず更新することが可能となる。
【００５４】
図４は、テープ上へのデータの記録方法の実施形態の例であり、図３（Ｄ）のテープ上のデータ配置（仮想的なエンドレステープ）を実現する流れを示したフローチャートである。なお、便宜上、図４において、図３の（Ａ）〜（Ｄ）の状態に対応するステップには、同じ（Ａ）〜（Ｄ）の符号を付けた。図１および図３を参照しながら、図４のフローチャートを以下に説明する。
【００５５】
テープドライブ１００の制御部１６０は、まず、テープドライブを動作モード（書き込みモード、読み出しモード）からアイドルモードに切り替える（ステップ４１０）、続いて制御部１６０は、カートリッジメモリ（ＣＭ）１８０、テープ１４ａ上のハウスキーピング・データセット（ＨＫＤＳ）領域、あるいはシステムバス２０を介してホストシステム１０からデータ情報（不要データＢｎ、有用データＡｎの情報に係るレコード番号、ファイルマークなど）を取得する。それによって有用データＡｎのテープ上の位置情報を識別する（ステップ４１５）。ここで、ＨＫＤＳ領域はレコードのアドレス情報を管理する領域であり、レコード移動の情報を含むことができる。
【００５６】
次に、制御部１６０は、取得したデータ情報から、パーティション先頭（ＢＯＰ）と任意の不要なデータＢｎの間に有用データＡｎが存在するか判断する（ステップ４２０）。なお、パーティション先頭（ＢＯＰ）の情報および以降のステップで有用データのコピーを行うときのコピー元（元の位置）およびコピー先（現在の位置）の対応付けを行うためのレコード番号対応表４３２を記憶手段に、好ましくは、カートリッジメモリ（ＣＭ）１８０に格納しておく。これらの情報をＣＭに代えて、テープ上のユーザデータ領域の外部に配置されたＨＫＤＳ領域に記録する、あるいは、ホストシステム１０から受取るようにしてもよい。
【００５７】
次に、パーティション先頭（ＢＯＰ）と任意の不要なデータＢｎの間に存在する有用データＡｎを空き領域Ｃ１にコピーする一連のステップが続く。すなわち、ステップ４２０では、パーティション先頭（ＢＯＰ）と任意の不要なデータＢｎの間に有用データＡｎが存在する場合は、まず、存在する有用データＡｎのレコード番号がレコード番号対応表に「現在の位置」として登録されているか判断し（ステップ４３０）、すでに登録されている（ステップ４３０でＹＥＳ）の場合は、有用データＡｎをテープ上から、ヘッド１４ｂを用いて読み出し、空き領域Ｃ１の先頭位置にコピーする、言い換えれば、図３の（Ｂ）に示すように、ＥＯＤに順次上書きする（ステップ４４０）。ステップ４３０で、ＮＯの場合、すなわちレコード番号対応表に「現在の位置」として登録されていない場合は、有用データがコピー元であるので、レコード番号対応表に有用データＡｎの位置を「元の位置」として登録し、ステップ４４０へ進む（ステップ４３５）。
【００５８】
次に、この有用データＡｎのコピーに伴って、レコード番号対応表の有用データＡｎの「現在の位置」をコピー先の位置に更新する（ステップ４５０）。有用データＡｎがＢＯＰと任意の不要データＢｎの間に存在しなくなるまで、ステップ４２０で判断し、これらのステップ４３０からステップ４５０を繰り返すことによって、各有用データＡ１、Ａ２、Ａ３を順次、空き領域Ｃ１の先頭にコピーする。有用データＡｎのコピーがすべて完了した状態が図３の（Ｂ）である。
【００５９】
ステップ４２０でＮＯの場合、すなわち、有用データＡｎがＢＯＰと任意の不要データＢｎの間に存在しなくなった場合には、制御部１６０は、有用データＡｎのコピー元の領域（図３（Ｂ）の（Ａ１）、（Ａ２），（Ａ３）を、不要なデータ領域として識別する。これによりテープ前方に連続する不要データ領域Ｂ’が生成される（ステップ４６０）。この状態を示したものが図３（Ｃ）である。
【００６０】
制御部１６０は、この連続する不要データ領域Ｂ’を新たな空き領域Ｃ２と識別し、 このとき従前テープの後方に配置された空き領域Ｃ１と新たな空き領域Ｃ２とは、論理的に連続する空き領域（Ｃ１−Ｃ２）を構成する。次に、制御部１６０は、パーティション先頭（ＢＯＰ）を連続する有用データ（Ａｎ）群の先頭、言い換えれば前方空き領域Ｃ２の直後に移動する（ステップ４７０）。次にパーティション末尾（ＥＯＰ）を空き領域Ｃ２の末尾に、すなわちパーティション先頭（ＢＯＰ）に隣接して配置する（ステップ４８０）。この状態のテープ上のデータ配置を示したものが、図３（Ｄ）である。そして、「ＢＯＰおよびＥＯＰを移動する」ステップにおいて、格納されているＢＯＰおよびＥＯＰの位置情報が更新される。なお、好ましくは、ＢＯＰおよびＥＯＰの位置はカートリッジメモリ（ＣＭ）あるいはテープ上のデータセットの１つであるＨＫＤＳ（ハウスキーピング・データセット）領域に格納される。
【００６１】
ステップ４７０において、パーティション先頭（ＢＯＰ）を有用データ（Ａｎ）群の先頭（前方空き領域Ｃ２の直後）ではなく空き領域Ｃ２内の所定の位置（Ｐｘ）（図示せず）に移動してもよい。このとき、ステップ４８０において、パーティション末尾（ＥＯＰ）を、空き領域Ｃ２の直後ではなく、所定の位置（Ｐｘ）の直前であってパーティション先頭（ＢＯＰ）に隣接して配置してもよい。
【００６２】
図４のレコード番号対応表４３２を用いる本発明によるレコードの管理方法について、以下に説明する。このレコード管理方法には、テープドライブで管理する方法およびホスト/アプリケーション側で管理する方法がある。
【００６３】
テープドライブでレコードを管理する方法は、次のようになる。
レコード番号対応表は、テープドライブにテープメディアがロード (挿入) されたとき、もしくはそれ以降に、カートリッジメモリ（ＣＭ）、ＨＫＤＳ領域、または、ホストシステム側のメモリから入手することができる。ＣＭおよびＨＫＤＳ領域は、通常、ロード時にアクセスして種々のデータを読み出しているため、レコード番号対応表もそのアクセスにおいて入手することができる。テープメディアをロードした後に、ロードしたテープメディアに対応するレコード番号対応表をホストからテープドライブに(Write Buffer コマンドなどで) 送信するように、ホストに通知することによってホストシステムから入手することができる。
【００６４】
入手したレコード番号対応表は、図１のテープドライブ１００の制御部１６０のメモリ１６５（たとえばランダムアクセスメモリ：ＲＡＭ）に格納される。メモリ１６５内のレコード番号対応表は、図４に示すフローチャートのステップ４５０で更新する。カートリッジメモリ（ＣＭ）およびＨＫＤＳ上への更新は、図４のステップ４７０の直前、即ちＢＯＰおよびＥＯＰの移動の直前に行うのが好ましい。
【００６５】
ホストシステムがレコード対応表を保持する場合は、ホスト側にレコード番号対応表を送信することになる。たとえばホストがテープドライブにＳＣＳＩコマンドを送信し、テープドライブがそのコマンドに応答し、テープドライブからホストにレコード番号対応表を送付する。なお、テープドライブ側からホストにＳＣＳＩコマンドを送信し、ホストにレコード番号対応表を送付することもできる。
【００６６】
レコード番号対応表は、図４に示したフローチャートのように参照される。ホスト側でレコード管理を行う場合は、テープドライブがレコード番号を参照しないで済むように、ホスト側でレコード番号を移動後の位置に変換して、テープドライブに読み書きを命令することもできる。
ホスト側でレコード番号を更新する場合には、テープドライブに代えて、ホストがテープドライブにレコード番号を読み出し、ＥＯＤの位置に書き込む命令を出してもよい。
【００６７】
上記のように、仮想的なエンドレステープの機能を持たせるために、有用データをデータ末尾（ＥＯＤ）が直前に存在する位置に順次コピーをする方法で説明したが、任意の位置に有用データをコピーすることも可能である。一方、仮想的なエンドレステープの用途として、ＥＯＤへのコピーのみ許可するようにしても良い。
【００６８】
ホストシステムに、コピー（書き込み）先の新しい位置を通知しない場合において、ＢＯＰ付近の有用なデータをＥＯＤへコピーした後で、任意の位置へのホストからの書き込み（Write）コマンドを許可する場合には以下のことを考慮する必要がある。
【００６９】
はじめに、関数Ｆ（ｎ）を、ｎ（レコード番号）がレコード番号対応表の「現在の値」として登録されている場合に、その現在の値に対応する元の値を返し、登録されていない場合には、ｎ値自体（ｎ）を返す関数と定義する。
たとえばホストがレコード番号ｎから書き込みたいと要求した場合、ＢＯＰとＥＯＰの間に存在する全てのレコード番号ｉに対し、Ｆ（ｉ）＜Ｆ（ｎ）の条件にあるレコードを残し、それ以外の条件（Ｆ（ｉ）＞（Ｆ（ｎ）または＜Ｆ（ｉ）＝Ｆ（ｎ））にあるレコードは論理的に削除する、換言すればそのレコードが物理的に存在するかどうかにかかわらず、テープドライブの制御部からの読み出し要求は拒絶される。
【００７０】
ＢＯＰとＥＯＰの間に存在するＦ（ｉ）＜Ｆ（ｎ）の条件を満たす全てのレコードを読み出し、ＥＯＤの冒頭から順次書き込み（即ちコピー）を行い、それに引き続いて新たにホストから送られてきたデータを書き込む。そして、書き込み（追記）要求を受け取る寸前のＥＯＤの冒頭であった位置へＢＯＰを移動する。そして移動する際はレコード番号対応表を更新する。ここで、「ＥＯＤの冒頭」とは、より好適には最もＥＯＤに近い、Ｆ（ｉ）＜Ｆ（ｎ）の条件を満たすレコードの直後ということであり、そのレコードに隣接するＦ（ｉ）＜Ｆ（ｎ）の条件を満たすレコードは書き直す必要がない。その際はＢＯＰの移動先は、図２の有用データ群（Ａ４，Ａ１，Ａ２，Ａ３）の先頭である必要はなく、空き領域Ｃ２の所定の位置Ｐｘ（たとえばＣ２の終端付近、図示せず）でも良い。
【００７１】
一方、書き込みを開始するまでに時間がかかるため、ホストが書き込みを行いたいデータをバッファメモリに一時的に記録しておき、ホストに書き込みが終了したことを通知し、その後、書き込みを実行することもできる。バッファメモリの代わりに、ホストが書き込みを行いたいデータをテープ上のユーザデータ領域の外部（図５のＬＰ２とＬＰ３の間）の領域、あるいはＥＯＰ付近の空き領域などに一時的に記録してもよい。
【００７２】
また、論理的に書き込む（追記する）場所とＥＯＤの間に存在するデータに対し不要であるとのマークをした上で、ＥＯＤから書き込むようにしてもよい。言い換えれば、すでに記録されたレコードを移動することなく、ＥＯＤから書き込みを実施し、Ｆ（ｎ）＜Ｆ（ｉ）でない条件を満たす全てのレコードに対し、不要レコード番号表 (たとえば、図４のステップ４１０で取得したデータを格納する場所を共用可能) を登録し、その後Ｆ（ｎ）＜Ｆ（ｉ）でない条件を満たすレコードへの読み出し要求がきた場合には、その読み出しを拒絶する。
この方法を用いる場合には、レコードの読み出し時に不要レコード番号表を確認するステップが追加される。
【００７３】
次に、テープカートリッジに搭載されるテープ上のフォーマット例について説明する。図５は、テープカートリッジ１４０のテープ５００上のデータ記録方法およびフォーマット例の概略を示した図である。図中、ＬＰ２からＬＰ３の間はキャリブレーション領域であり、ＬＰ３からＬＰ４の間がユーザデータ領域である。図示するように、テープ５００上には、５本のサーボバンド５２０が設けられている。このサーボバンドは、テープ５００の製造時にテープ上の物理的な位置を示すサーボパターンが書き込まれた領域である。
【００７４】
また、テープ５００は、ＬＴＯ（Ｌｉｎｅａｒ  Ｔａｐｅ−Ｏｐｅｎ）規格の場合、この５本のサーボバンドによって、４本のデータバンド５１２〜５１８（ＤＢ０〜ＤＢ３）に分割されている。このデータバンドは、ユーザデータが書き込まれる領域であり、各データバンドには、十数本のラップ（ｗｒａｐ）と呼ばれる細長いデータ領域（片道方向の領域）が設けられている。データはそれぞれのデータバンド（ＤＢ）のラップ５３０に一筆書きで渦巻き状に書き込まれる。図５では、１本の実線の矢印が１本のラップ５３０を表している。データは、右方向の矢印で示すようにラップに順方向に読み書きされた後、破線で連結した左方向の矢印で示すようにラップに逆方向に読み書きされる。図では、簡単化のため、１つのデータバンド内で、データが順方向に読み書きされるラップ、及び、データが逆方向に読み書きされるラップを、２本ずつ示している。しかしながら、実際には、順方向のラップ及び逆方向のラップはそれぞれ、例えば７本〜９本あり、１つのデータバンド内でラップは渦巻き状に配置されている。
【００７５】
つまり、順方向への読み書き及び逆方向への読み書きが繰り返し行われることにより、データはテープ５００上で何度も往復して読み書きされるようになっている。なお、図５は、あくまで図１のヘッド１４ｂとの関係には触れずに示した概念図である。テープドライブ１００は、通常、複数のヘッド（書込みヘッドや読出しヘッド）１４ｂを有する。
【００７６】
更に、このようなフォーマットのテープ５００では、前述のパーティション先頭（ＢＯＰ）である、開始位置５０１を起点とし、データバンド＃０内に渦巻き状に配置されたラップ５３０に沿ってデータの読み書きが行われる。その後、データバンド＃１，＃２，＃３に順に移動し、各データバンド内に渦巻き状に配置されたラップに沿ってデータは読み書きされ、前述のパーティション末尾（ＥＯＰ）である、終了位置５０２まで進む。原則として、あるデータバンドのラップを使い切ってから次のデータバンドに移るようなフォーマットになっている。図２は、この図５の渦巻き状のテープ・フォーマットを一直線に引き伸ばした構成と考えることができる。また、この渦巻き状のテープには、図５のように１つのパーティションではなく、即ち、別の開始位置５０１から終了位置５０２を有する別のパーティションを複数個含み得る。
【００７７】
図６は、テープカートリッジのテープ上の本発明によるフォーマット例を示す。図６に示すように、テープ５００はＬＰ２とＬＰ３の間に、ハウスキーピング・データセット（ＨＫＤＳ：Ｈｏｕｓｅ  Ｋｅｅｐｉｎｇ  Ｄａｔａ  ｓｅｔ、ｓＨＫＤＳとも呼ぶ）５１０と呼ばれる、レコードのアドレス情報を管理する領域であり、レコード移動の情報を含むことができる。このＨＫＤＳ領域は、前述したカートリッジメモリ（ＣＭ）に代えて、あるいはＣＭとともに用いることができる。また、前述のＦＩＤ（フォーマットＩＤ）２２０をＬＰ２とＬＰ３の間に配置することができる。ＦＩＤの位置は、一般には、中央のサーボバンドの直下のＬ３とＬ３．１の間に配置されているが、本発明による実施形態では、ＬＰ２とＬＰ３の領域で、ＨＫＤＳがある場合には当該ＨＫＤＳ領域の後に配置される。また、図６に示すように、複数のＦＩＤをたとえばパーティションの数に相当する分だけ１列に並べて配置することもできる。図６ではＦＩＤを縦方向に並べているが、横方向に一列に並べても良い。ＬＰ２とＬＰ３の間隔は通常約８ｍの長さを有するので、通常約０．１ｍのＦＩＤのようなデータセット（ＤＳ）を複数個書き込むことは可能である。
【００７８】
本発明において、テープへのデータの書き込みは、図６のＬＰ２とＬＰ３の間の位置にＦＩＤを書きこみ、それに続き、そのＦＩＤに対応するデータセットを含むパーティション２７０、２７５をＬＰ３とＬＰ４の間の領域のユーザデータ領域６１０に書き込むこととなる。複数のパーティションがある場合も同様である。図６を参照すると、ＦＩＤ−１に対応するパーティション１、およびＦＩＤ−２に対応するパーティション２が、異なるデータバンドに配置される様子を示されている。なお、１つのデータバンド（ＤＢ）内に２つのパーティションを配置しても良い。
【００７９】
図７は、レコード番号対応表を用いる、本発明によるデータの読み出し方法の例を示すフローチャートである。ホストシステム１０からの読み出し命令に対するテープドライブ１００の動作を表している。以下の説明において、便宜上、レコード番号対応表におけるコピー元の「元の位置」をレコード番号Ｎとし、コピー先の「現在の位置」をレコード番号Ｍとする。
【００８０】
はじめに、データドライブ１００の制御部１６０は、ホストシステム１０からレコード番号Ｎに対応するデータの読み出し命令を受け取る（ステップ７１０）、すると、制御部１６０は、まずレコード番号Ｎがレコード番号対応表に登録されているか判断する（ステップ７２０）。そして、レコード番号Ｎが登録されている場合（ステップ７２０でＹＥＳ）は、レコード番号Ｎの代わりに、レコード対応表に基づいてレコード番号Ｍに対応するデータを読み出し、その読み出したデータをホストシステム１０に送信する（ステップ７４０）。このデータの読み出しは、制御部１６０がメカニカルコントローラ１７０を稼働させ、ヘッド位置制御およびモータドライブにより、ヘッド１４ｂの位置と、テープ上の該当する位置とを合わせた後に、行うことができる。ステップ７２０でＮＯの場合は、レコード番号Ｎに対応するデータを読み出し、ホストシステム１０へ送信する（ステップ７３０）。
【００８１】
ホストがレコード番号対応表を保持し管理する場合は、テープドライブがレコード番号対応表を参照しなくて良いように、ホスト側でレコード番号を、保持しているレコード番号対応表上で移動後の位置に更新する。そして、ホストからテープドライブに対して、更新後の位置に対応するレコード番号に基づいて、読み出しコマンド、または書き込みコマンドを出してもよい。
【００８２】
図８は、テープヘッドとテープ上のラップとの関係、および本発明による複数のパーティションの配置例を示す。なお、説明を簡単にするために、図５のラップの表記とは異なることに留意されたい。図８（Ａ）は、テープヘッド８０５（図１の１４ｂ）によるテープ５００上へのデータの書き込みの様子を示す。通常、複数のラップ８１２、８１４から１つのパーティション８２０が構成される。データを書き込むための機構であるヘッドの幅Ａは、実際に書き込むべきラップの幅Ｂより広い。このため、図５のようにデータバンド（ＤＢ）毎に渦巻き状にデータを書き込む際に、ヘッドをデータバンドの中心寄りにずらして書き込み、中心寄りにはみ出した部分は次に書き込む際に上書きすることで対応している。たとえば、テープヘッド８０５を用いてテープ５００にデータを書き込む場合、ヘッド幅がラップ幅より大きいときにはデータバンド８１０の中央側にヘッドをずらして書き込む。
【００８３】
図８（Ａ）の矢印で示すように、テープ５００上のラップ８１２、８１４に連続してデータが書き込まれる。ラップ８１２にデータを書き込む場合には、ヘッド８０５の書込み幅Ａがラップ幅Ｂよりも大きく、データバンド８１０の中心線側の隣接するラップ８１４に、幅Ｘ分はみ出す。したがって、図８（Ｂ）に示すように、２つのラップ８１２、８１４にそれぞれパーティション０  ８３２、パーティション１  ８３４が別々に配置される場合には、好ましくは、はみ出す幅Ｘに対応して、緩衝（バッファー）領域８４０を設けることができる。また、書き込む幅とラップ幅を等しくすることで緩衝（バッファー）領域を省略してもよい。
【００８４】
図９は、テープ５００上のデータバンド９１２〜９１８と複数のパーティションとの関係を示す。すなわち、パーティションと緩衝領域の関係を示す、テープ５００の例である。図９（Ａ）はテープ全体の図であり、図５で説明したように５本のサーボバンド９２０で挟まれたデータバンド＃０〜＃３  ９１２〜９１８が配置されている。図９（Ｂ）に、データバンド＃０（ＤＢ０）  ９１２の領域に隣接する２つのパーティション＃０およびパーティション＃１が渦巻状に配置された図を示す。図中の矢印を伴う点線は、テープヘッドの移動方向を示す。図９（Ｂ）に示すように、複数のパーティションを同じデータバンド（ＤＢ）内に作成する際には、好ましくは、各パーティションの間に、緩衝領域９４０を設ける。図９（Ｃ）には、１つのデータバンド９１２，９１４（ＤＢ＃０，ＤＢ＃１）にそれぞれ１つのパーティション９３２、９３４（パーティション０、パーティション１）を作成する場合について図示した。この場合には、図９（Ｂ）のように隣接するパーティションの間に、緩衝領域（９４０）を形成する必要はない。なお、図（Ｃ）中に示す、ＢＯＰおよびＥＯＰは、各パーティションに配置されたパーティション先頭（ＢＯＰ）およびパーティション末尾（ＥＯＰ）を示し、各パーティションの間に、サーボバンド９２０が配置されている。
【００８５】
図９（Ｄ）は、１つのデータバンド内で２つのラップにまたがる１つのパーティションにおいて、本発明によるパーティション先頭（ＢＯＰ）を移動して空き領域を増やした状態の図である。便宜上、１つのパーティションを構成する各パーティション部分にＡ、Ａ’の符号をつけている。すなわち、パーティション先頭（ＢＯＰ）およびパーティション末尾（ＥＯＰ）が、図９（Ｃ）の配置とは異なり、それぞれパーティションＡ  ９３６の先頭位置およびパーティションＡ’９３６’の末尾位置に配置され、パーティションＡの末尾からパーティションＡ’の先頭に連続した領域が形成されることを示している。この場合、図９（Ｄ）に示すように、ラップ間に緩衝領域９４０を設けてもよいが、渦巻き状にデータを書き込む際に、ヘッドをデータバンドの中心寄りにずらして書き込み、はみ出した部分は次に書き込む際に上書きすることで対応できるので、緩衝領域９４０を設けなくてもよい。
【００８６】
本実施の形態において、ＢＯＰをテープ上の後方へ移動する場合で説明したが、ＢＯＰを移動する方向は、必ずしも後方である必要はなく前方に動かしても良い。いったん後方に移動したＢＯＰをその後、前方に移動することにより、ＥＯＤ周辺が追記（上書き）されていなかった場合には、ＢＯＰの前方において従前に不要とみなしたデータを復旧することができる。すなわち、図３の（Ｄ）の状態から（Ｂ）の状態に移行して配置されるように、データを追記してＢＯＰおよびＥＯＰを移動すると、図３（Ｂ）のＢＯＰとＥＯＤに挟まれた領域に存在するデータのうち上書きされていないデータ領域を読み出すことが可能となる。
【００８７】
以上のように本実施の形態によれば、パーティション先頭（ＢＯＰ）及びパーティション末尾（ＥＯＰ）の位置を動的に動かすことにより、記憶装置（ストレージ）における、仮想的なエンドレステープを実現することが可能となる。即ち、有効なデータのみを別のテープメディアにコピーする (これをリクレームと呼ぶ)ことなくテープメディアを利用し続けることが可能となる。また、不要なデータが占める領域が空き容量領域とみなされることから、テープメディアのデータ使用量が低減され得る。
【００８８】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。
【符号の説明】
【００８９】
１０：ホストシステム、
１４ａ：テープ、１４ｂ：ヘッド、１４ｃ，１４ｄ：リール
２０：バス
１００：テープドライブ、１１０：インターフェース、１２０：バッファメモリ
１３０：記録チャネル、１４０：カートリッジ、
１６０：制御部（システムコントローラ）、１６５：メモリ
１７０：メカニカルコントローラ、１８０：カートリッジメモリ
２００：テープ、
２０２：ＰＢＯＴ（物理的テープ先頭）、２０４：ＰＥＯＴ（物理的テープ末尾）
２１０：ＢＯＰ（パーティション先頭）、
２２０：ＦＩＤ（フォーマット識別）、２２８：パディング領域
２３０：ＥＯＤ（データ末尾）、２５０：空き領域
２６０：ＥＯＰ（パーティション末尾）
２７０、２７５：パーティション、２９０：緩衝（バッファー）領域
５００：テープ、５０１：開始位置（ＢＯＰ）、５０２：終了位置、５１０：ＨＫＤＳ
５１２，５１４，５１６，５１８：データバンド
５２０：サーボバンド、５３０：ラップ
６１０：ユーザデータ領域
８０２、９２０：サーボバンド、
８０５：ヘッド、
８１０、９１２、９１４、９１６、９１８：データバンド
８１２、８１４、８１６：ラップ、
８２０、８３２、８３４、９３２、９３４、９３６：パーティション
８４０、９４０：緩衝（バッファー）領域
１０００：テープ、１０１０：ＢＯＴ、１０２０：ＥＯＴ
１０３０：ＥＯＤ、１０４０：空き領域
１０５０：ユーザデータ群、１０５２：不要データ、１０５４：有用データ
【図１】
2011113605.tif 000003
【図２】
2011113605.tif 000004
【図３】
2011113605.tif 000005
【図４】
2011113605.tif 000006
【図５】
2011113605.tif 000007
【図６】
2011113605.tif 000008
【図７】
2011113605.tif 000009
【図８】
2011113605.tif 000010
【図９】
2011113605.tif 000011
【図１０】
2011113605.tif 000012