説明

データのフォーマットを変換する装置及び方法

【課題】テープ媒体に既に記録されているデータのフォーマットを変更する場合に、エラーが発生しても、データを失うことなく読み出せるようにする。
【解決手段】テープドライブのコントローラ16において、バッファ管理部42が、旧フォーマットで書かれたデータセットをバッファの容量だけ読み出し、バッファが一杯になったときの読出し位置を次の読出し開始位置として位置記憶部44に記憶する。そして、DSIT生成部45が、次の読出し開始位置を含むDSITを生成し、バッファ管理部42が、データセットにこのDSITを付加して余裕領域に書き込む。その後、DSIT生成部45が、余裕領域における対応するデータセットを特定する情報と次の読出し開始位置とを含むDSITを生成し、バッファ管理部42が、データセットにこのDSITを付加して新フォーマットで上書きする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データのフォーマットを変換する装置及び方法に関する。特に、本発明は、テープ媒体に記録されたデータのフォーマットを変換する装置及び方法に関する。
【背景技術】
【0002】
磁気テープ等のテープ媒体は、比較的安価に大量のデータを記録することができる。その反面、ハードディスク等に比べて読み書き速度が遅いことから、テープ媒体は、ハードディスク等に記憶されたデータの長期的な保存のために用いられることが多い。
近年、かかるテープ媒体について、更なる記録密度の向上が図られている。これにより、より一層多くのデータをテープ媒体に記録することが可能となっている。
【0003】
ここで、このような記録密度の向上のために、テープ媒体に低い記録密度で記録されているデータを、高い記録密度で書き換えることがある(例えば、特許文献1、2参照)。
特許文献1では、テープの型格と記録密度の組み合わせに対するテーブルを参照して、設定した記録密度を実現するのに上書き可能か、上書きは如何なる記録周波数、テープ速度、書込み電流を設定すれば可能かを判定し、上書き可能と判定した場合にそのための記録周波数、テープ速度、書込み電流を設定して上書きしている。
特許文献2では、記録メディアに記録された任意の圧縮率の一次圧縮動画データから、それよりも高い圧縮率の高圧縮動画データを作成し、順次記録メディアの空き領域又は一次圧縮動画データの上に記録している。
【0004】
【特許文献1】特開2001−67601号公報
【特許文献2】特開2005−92993号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
このように、テープ媒体に低い記録密度で記録されているデータを、高い記録密度で書き換える技術は、従来から存在した。
しかしながら、特許文献1、2では、このような書換えの際にエラーが発生することについては考慮されていない。従って、特許文献1、2には、低い記録密度で記録されているデータを高い記録密度で書き換える際にエラーが発生するとデータが失われてしまう虞があるという問題点がある。
尚、このような問題点は、高い記録密度で記録されたデータを低い記録密度で書き換える場合の他、データのフォーマットを変更する如何なる場合においても指摘することができる。
【0006】
本発明の目的は、テープ媒体に既に記録されているデータのフォーマットを変更する場合に、エラーが発生しても、データを失うことなく読み出せるようにすることにある。
【課題を解決するための手段】
【0007】
かかる目的のもと、本発明は、テープ媒体に記録されたデータのフォーマットを変更する装置であって、テープ媒体からデータを読み出す読出しヘッドが、テープ媒体に第1のフォーマットで記録されたデータのうち、第1の領域に記録された特定のデータを読み出すように制御する第1の制御部と、テープ媒体にデータを書き込む書込みヘッドが、特定のデータを、テープ媒体の第1の領域とは異なる第2の領域に書き込み、テープ媒体の第2の領域とは異なる第3の領域に第2のフォーマットで書き込むように制御する第2の制御部とを含む、装置を提供する。
【0008】
ここで、本発明は、テープ媒体に第1のフォーマットで記録されたデータのうち、読出しヘッドが特定のデータの次に読み出す他のデータの読出し位置を特定するための特定情報を記録する記録部を更に含む、ものであってよい。この場合、第1の制御部は、読出しヘッドが、第3の領域に第2のフォーマットで書き込まれた特定のデータを読み出し、第2のフォーマットに変換された他のデータが第3の領域に続く領域から読み出せない場合に、特定情報によって特定される読出し位置から他のデータを読み出すように制御する、ものであってよい。また、記録部は、特定情報を、特定のデータと共に第3の領域に書き込むことにより記録する、ものであってよい。
【0009】
また、本発明は、第2の領域に書き込まれた特定のデータのうち、第3の領域に第2のフォーマットで書き込まれた特定のデータの各部分に対応する部分を特定するための第1の特定情報と、テープ媒体に第1のフォーマットで記録されたデータのうち、読出しヘッドが特定のデータの次に読み出す他のデータの読出し位置を特定するための第2の特定情報とを記録する記録部を更に含む、ものであってよい。この場合、第1の制御部は、読出しヘッドが、第3の領域に第2のフォーマットで書き込まれた特定のデータの第1の部分を読み出し、第1の部分に連続する第2の部分が第3の領域から読み出せない場合に、第2の領域に書き込まれた特定のデータのうち、第1の特定情報によって特定される、第2の部分に対応する部分を読み出し、その後、第2の特定情報によって特定される読出し位置から他のデータを読み出すように制御する、ものであってよい。
【0010】
更に、第1の制御部は、特定のデータの容量を、読出しヘッドが読み出したデータを蓄積するバッファの容量、及び、第2の領域に書き込めるデータの容量の何れかに基づいて決定する、ものであってよい。
更にまた、第2の制御部は、書込みヘッドが、特定のデータを第2の領域に書き込んだ後に第3の領域に書き込むように制御する、ものであってよい。
【0011】
また、本発明は、テープ媒体に記録されたデータのフォーマットを変更する装置であって、テープ媒体からデータを読み出す読出しヘッドと、テープ媒体にデータを書き込む書込みヘッドと、読出しヘッドが、テープ媒体に第1のフォーマットで記録されたデータのうち、第1の領域に記録された特定のデータを読み出すように制御し、書込みヘッドが、特定のデータを、テープ媒体の第1の領域とは異なる第2の領域に書き込み、テープ媒体の第2の領域とは異なる第3の領域に第2のフォーマットで書き込むように制御するコントローラとを含む、装置も提供する。
【0012】
また、本発明は、テープ媒体に記録されたデータのフォーマットを変更する装置であって、テープ媒体からデータを読み出す読出しヘッドが、テープ媒体に第1のフォーマットで記録されたデータのうち、第1の領域に記録された特定のデータを読み出すように制御する第1の制御部と、第1の領域とは異なる第2の領域に書き込まれる特定のデータのうち、第2の領域とは異なる第3の領域に第2のフォーマットで書き込まれる特定のデータの各部分に対応する部分を特定するための第1の特定情報と、テープ媒体に第1のフォーマットで記録されたデータのうち、読出しヘッドが特定のデータの次に読み出す他のデータの読出し位置を特定するための第2の特定情報とを生成する生成部と、テープ媒体にデータを書き込む書込みヘッドが、特定のデータと第1の特定情報とを、テープ媒体の第2の領域に書き込んだ後に、特定のデータと第1の特定情報と第2の特定情報とを、テープ媒体の第3の領域に第2のフォーマットで書き込むように制御する第2の制御部とを含む、装置も提供する。
【0013】
更に、本発明は、テープ媒体に記録されたデータのフォーマットを変更する方法であって、テープ媒体に第1のフォーマットで記録されたデータのうち、第1の領域に記録された特定のデータを読み出すステップと、特定のデータを、テープ媒体の第1の領域とは異なる第2の領域に書き込むステップと、特定のデータを、テープ媒体の第2の領域とは異なる第3の領域に第2のフォーマットで書き込むステップとを含む、方法も提供する。
【0014】
更にまた、本発明は、テープ媒体に記録されたデータのフォーマットを変更する装置としてコンピュータを機能させるプログラムであって、コンピュータを、テープ媒体からデータを読み出す読出しヘッドが、テープ媒体に第1のフォーマットで記録されたデータのうち、第1の領域に記録された特定のデータを読み出すように制御する第1の制御部と、テープ媒体にデータを書き込む書込みヘッドが、特定のデータを、テープ媒体の第1の領域とは異なる第2の領域に書き込み、テープ媒体の第2の領域とは異なる第3の領域に第2のフォーマットで書き込むように制御する第2の制御部として機能させる、プログラムも提供する。
【発明の効果】
【0015】
本発明によれば、テープ媒体に既に記録されているデータのフォーマットを変更する場合に、エラーが発生しても、データを失うことなく読み出せるようになる。
【発明を実施するための最良の形態】
【0016】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
図1は、本実施の形態が適用されるテープドライブ10の構成例を示した図である。このテープドライブ10は、ホストインターフェイス(以下、「ホストI/F」という)11と、バッファ12と、チャネル13と、書込みヘッド14aと、読出しヘッド14bと、モータ15とを含む。また、コントローラ16と、ヘッド位置制御システム17と、モータドライバ18とを含む。更に、テープドライブ10には、テープカートリッジ20が挿入されることにより装填可能となっているので、ここでは、テープカートリッジ20も図示している。このテープカートリッジ20は、リール21、22に巻かれたテープ23を含む。テープ23は、リール21、22の回転に伴い、リール21からリール22の方向へ、又は、リール22からリール21の方向へ、長手方向に移動する。尚、テープ23としては、磁気テープが例示されるが、磁気テープ以外のテープ媒体でもよい。
【0017】
ここで、ホストI/F11は、上位装置の一例であるホスト30との通信を行う。例えば、ホスト30から、テープ23へのデータの書込みを指示するコマンド、テープ23を目的の位置に移動させるコマンド、テープ23からのデータの読出しを指示するコマンドを受け取る。尚、このホストI/F11で用いる通信規格としては、SCSIが例示される。SCSIの場合、1つ目のコマンドは、Writeコマンドに相当し、2つ目のコマンドは、LocateコマンドやSpaceコマンドに相当し、3つ目のコマンドは、Readコマンドに相当する。また、ホストI/F11は、ホスト30に対し、これらのコマンドに応じた処理が成功したのか失敗したのかの応答を返す。
【0018】
バッファ12は、テープ23に書き込むべきデータやテープ23から読み出されたデータを蓄積するメモリである。例えば、DRAM(Dynamic Random Access Memory)によって構成される。また、バッファ12は、複数のバッファセグメントからなり、各バッファセグメントが、テープ23に対する読み書きの単位であるデータセットを格納している。
チャネル13は、テープ23に書き込むべきデータを書込みヘッド14aに送ったり、テープ23から読み出されたデータを読出しヘッド14bから受け取ったりするために用いられる通信経路である。
書込みヘッド14aは、テープ23が長手方向に移動するとき、テープ23に対して情報を書き込み、読出しヘッド14bは、テープ23が長手方向に移動するとき、テープ23から情報を読み出す。
モータ15は、リール21、22を回転させる。尚、図では、1つの矩形でモータ15を表しているが、モータ15としては、リール21、22の各々に1つずつ、合計2個設けるのが好ましい。
【0019】
一方、コントローラ16は、テープドライブ10の全体を制御する。例えば、ホストI/F11で受け付けたコマンドに従って、データのテープ23への書込みやテープ23からの読出しを制御する。また、ヘッド位置制御システム17やモータドライバ18の制御も行う。
ヘッド位置制御システム17は、書込みヘッド14a及び読出しヘッド14bが所望の1つ又は複数のラップを追跡するよう制御するシステムである。ここで、ラップとは、テープ23上の複数のトラックのグループである。ラップを切り換える必要が生じると、書込みヘッド14a及び読出しヘッド14bを電気的に切り換える必要も生じるので、このような切り換えの制御を、このヘッド位置制御システム17で行う。
モータドライバ18は、モータ15を駆動する。尚、上述したように、モータ15を2個使用する場合であれば、モータドライバ18も2個設けられる。
【0020】
以下、テープドライブ10として、IBMエンタープライズテープドライブTS1130を例にとり、本実施の形態について詳細に説明する。
まず、本実施の形態の前提として、テープ23上のフォーマットについて説明する。
図2は、テープ23上のフォーマットの概略を示した図である。図中、LP2からLP3の間はキャリブレーション領域であり、LP3からLP4の間がユーザデータ領域である。
図示するように、テープ23上には、5本のサーボバンドが設けられている。このサーボバンドは、テープ23の製造時にテープ23上の物理的な位置を示すサーボパターンが書き込まれた領域である。
【0021】
また、テープ23は、この5本のサーボバンドによって、4本のデータバンドに分割されている。このデータバンドは、ユーザデータが書き込まれる領域であり、各データバンドには、十数本のラップと呼ばれる細長いデータ領域が設けられている。図では、1本の実線の矢印が1本のラップを表している。データは、右方向の矢印で示すようにラップに順方向に読み書きされた後、破線で連結した左方向の矢印で示すようにラップに逆方向に読み書きされる。図では、簡単化のため、1つのデータバンド内で、データが順方向に読み書きされるラップ、及び、データが逆方向に読み書きされるラップを、2本ずつ示している。しかしながら、実際には、順方向のラップ及び逆方向のラップはそれぞれ、例えば7本〜9本あり、1つのデータバンド内でラップは渦巻き状に配置されているものとする。つまり、順方向への読み書き及び逆方向への読み書きが繰り返し行われることにより、データはテープ23上で何度も往復して読み書きされるようになっている。
【0022】
更に、このようなフォーマットのテープ23では、開始位置201を起点とし、データバンド#0内に渦巻き状に配置されたラップに沿ってデータの読み書きが行われる。その後、データバンド#1,#2,#3に順に移動し、各データバンド内に渦巻き状に配置されたラップに沿ってデータは読み書きされ、終了位置202まで進む。つまり、次のデータバンドに移動するのに5秒程度の時間がかかるため、原則として、あるデータバンドのラップを使い切ってから次のデータバンドに移るようなフォーマットになっている。
【0023】
尚、図2は、あくまで書込みヘッド14aや読出しヘッド14bとの関係には触れずに示した概念図である。テープドライブ10は、通常、複数の書込みヘッド14aや読出しヘッド14bを有する。例えば、図2の実線の矢印を1つの書込みヘッド14aや読出しヘッド14bのデータを読み書きする時の軌跡と捉えた場合、この実線の矢印はトラックに相当する。そして、右向きの矢印が1つ目の書込みヘッド14a及び読出しヘッド14bに対応する順方向のトラックを示しているとすると、2つ目、3つ目、それ以降の書込みヘッド14a及び読出しヘッド14bに対応する順方向のトラックが、これよりも下に順に配置されるフォーマットとなる。また、左向きの矢印が1つ目の書込みヘッド14a及び読出しヘッド14bに対応する逆方向のトラックを示しているとすると、2つ目、3つ目、それ以降の書込みヘッド14a及び読出しヘッド14bに対応する逆方向のトラックが、これよりも下に順に配置されるフォーマットとなる。
【0024】
更に、図には示していないが、テープ23上のラップには、公称の容量に7%程度の余裕を加味した容量のデータが書き込めるようになっている。これは、物理的な傷を避けてデータが書き込まれたような場合であっても、公称の容量分のデータが書き込めるようにするためである。
【0025】
ところで、テープドライブ10は、容量当たりの電力使用量が少なくてすむため、ストレージの電力消費を抑える所謂グリーンストレージを推進する上での利用価値は高い。但し、テープドライブ10は、書込みや読出しを開始するための位置合わせに時間がかかるため、応答速度の速いHDD(Hard Disk Drive)等と組み合わせてシステムを構築することが一般的である。
そのようなシステムにおいて、テープドライブ10がどのようなフォーマットでユーザデータを保存しているかということは、アプリケーション側から見ると重要ではない。
【0026】
IBMエンタープライズテープドライブTS1130は、1本のテープ23から3種類のフォーマット(第1世代〜第3世代フォーマット)でユーザデータを読み出すことができ、1本のテープ23に2種類のフォーマット(第2世代〜第3世代フォーマット)でユーザデータを書き込むことができる。但し、1本のテープ23に複数のフォーマットのユーザデータを混在させることはできない。
フォーマットは、世代が新しいものほど、線密度(テープ23の走行方向に水平な方向の密度)及びトラック密度(テープ23の走行方向に垂直な方向の密度)が共に高密度化している。このことは、同じテープ23であっても、第1世代フォーマットで書くよりも、第3世代フォーマットで書いた方が、より多くのユーザデータを保管できることを意味する。
【0027】
図3に、IBMエンタープライズテープドライブの世代と、各世代のテープドライブが読出し/書込みをサポートするテープフォーマットの世代との関係を示す。
図中、テープフォーマットの各世代の後の括弧内の数値は、各世代のテープ23の容量を示している。
また、テープドライブの各世代の「Read」の列とテープフォーマットの各世代の行とが交わるセルには、その世代のテープドライブ10がその世代のフォーマットでテープ23に書き込まれたデータを読み出すことができるかを示している。「Y」が読み出すことができることを示し、「N」が読み出すことができないことを示す。更に、テープドライブの各世代の「Write」の列とテープフォーマットの各世代の行とが交わるセルには、その世代のテープドライブ10がその世代のフォーマットでテープ23にデータを書き込むことができるかを示している。「Y」が書き込むことができることを示し、「N」が書き込むことができないことを示す。
【0028】
ここで、テープ23に書き込まれた情報を失うことなくテープ23のフォーマットを変更するためには、次のような手順を実施することも考えられる。
(1)テープ23上の全てのデータをホスト30に読み出す。
(2)テープ23のフォーマットを変更する。具体的には、不揮発性メモリであるCM(Cartridge Memory)内に記されたフォーマット情報を変更する。
(3)(1)でホスト30に保存した全てのデータを、(2)で変更したフォーマット情報に基づき、改めてテープ23に書き込む。
【0029】
しかしながら、上記の手順を実行するためには、最低でも1台のテープドライブ10と1台のホスト30のリソースを使用する必要がある。
このようにホスト30のリソースをフォーマット変更に使用した場合、ホスト30のその他の処理に影響が出ることが考えられる。従って、テープドライブ10単独でテープ23上のデータを新しい世代(場合によっては古い世代)のフォーマットに変更することは有意義である。
【0030】
尚、新しい世代のフォーマットに変更するメリットとしては、前述の通り、容量の増加が挙げられる。
一方、古い世代のフォーマットに変更するメリットとしては、古い世代のテープドライブ10でもそのテープ23に格納されたデータを読み出せるようになるという点が挙げられる。
【0031】
そこで、本実施の形態では、テープドライブ10単体で、テープ23に既に書き込まれているユーザデータを失うことなく、テープ23のフォーマットを変更し、テープ23の空き容量を増加させる手法を提案する。この手法により、ホスト30のリソースを使うことなくフォーマット変換が行える。そして、最新のテープフォーマットに変更することができ、テープ23の空き容量が増える。例えば、IBMエンタープライズテープドライブの第1世代テープドライブのフォーマットを第2世代テープドライブのフォーマットに変更すると、テープ23の容量は300GBから500GBになる。
また、本実施の形態では、このようなフォーマット変換中に書込みエラーが発生しても、テープ23上にあった既存データが損なわれないようにする。
【0032】
まず、このような動作を行うコントローラ16の機能構成について説明する。
図4は、コントローラ16の機能構成例を示したブロック図である。
図示するように、コントローラ16は、コマンド処理部41と、バッファ管理部42と、チャネル入出力部43と、位置記憶部44と、DSIT生成部45と、ヘッド位置管理部46と、テープ走行管理部47とを備える。
【0033】
このうち、コマンド処理部41は、ホストI/F11からコマンドを受け取る。ここで、コマンドとしては、バッファ12にデータを格納することを指示するWriteコマンド、バッファ12に格納されたデータをテープ23に書き込むことを指示する同期コマンド、テープ23からデータを読み出すことを指示するReadコマンド等がある。
【0034】
バッファ管理部42は、コマンド処理部41がWriteコマンドを受け取った場合は、データをバッファ12内に用意する。また、コマンド処理部41が同期コマンドを受け取った場合は、データをバッファ12から読み出してチャネル入出力部43に出力する。更に、コマンド処理部41がReadコマンドを受け取った場合は、対象となるデータがバッファ12内になければチャネル入出力部43に対してそのデータを読み出すように指示し、対象となるデータがバッファ12内にあればそのデータをコマンド処理部41を介してホスト30に返す。
【0035】
チャネル入出力部43は、バッファ管理部42がバッファ12から読み出したデータをチャネル13に出力したり、チャネル13から受け取ったデータをバッファ管理部42に出力したりする。また、書込みヘッド14a及び読出しヘッド14bのテープ23上の長手方向における現在位置に関する情報を取得する。
【0036】
位置記憶部44は、テープ23上の書込み開始位置A及び読出し開始位置Bを記憶する。
DSIT生成部45は、位置記憶部44に記憶された書込み開始位置A及び読出し開始位置Bや、データセット番号及びWP(Write Pass)に基づいて、DSIT(Data Set Information Table)を生成する。本実施の形態では、読出しヘッドが特定のデータの次に読み出す他のデータの読出し位置を特定するための特定情報、第2の特定情報の一例として、読出し開始位置Bを用いており、特定のデータの各部分に対応する部分を特定するための第1の特定情報の一例として、データセット番号及びWPを用いている。また、特定情報を記録する記録部、第1の特定情報と第2の特定情報とを記録する記録部、第1の特定情報と第2の特定情報とを生成する生成部の一例として、DSIT生成部45を設けている。
【0037】
ヘッド位置管理部46は、テープ23に対する書込みヘッド14a及び読出しヘッド14bの位置をテープ23の幅方向へオフセットさせる信号をヘッド位置制御システム17に出力する。また、書込みヘッド14a及び読出しヘッド14bのテープ23上の幅方向における現在位置に関する情報を取得する。本実施の形態では、読出しヘッドが第1の領域に記録された特定のデータを読み出すように制御する第1の制御部の一例として、また、書込みヘッドが特定のデータを第2の領域に書き込み、第3の領域に書き込むように制御する第2の制御部の一例として、ヘッド位置管理部46を設けている。
テープ走行管理部47は、テープ23を順方向に走行させるための信号や、テープ23を逆方向に走行させるための信号をモータドライバ18に出力する。
【0038】
まず、テープ23に書き込まれたユーザデータのフォーマットを、既に書き込まれたユーザデータを失うことなく、テープドライブ10単体で、古い世代のフォーマット(以下、「旧フォーマット」という)から新しい世代のフォーマット(以下、「新フォーマット」という)に変換する際の動作について説明する。
図5は、このときのコントローラ16の動作例を示したフローチャートである。
動作が開始すると、まず、バッファ管理部42が、書込み開始位置A及び読出し開始位置Bとして、BOT(Beginning Of Tape)、つまり、データバンド#0の先頭の位置を位置記憶部44に記憶する(ステップ101)。
【0039】
次に、バッファ管理部42は、位置記憶部44に記憶された読出し開始位置Bから、旧フォーマットで書き込まれたユーザデータを、バッファ12に格納できる量だけ読み出して、バッファ12に格納する(ステップ102)。具体的には、ヘッド位置管理部46に対し、読出しヘッド14bを読出し開始位置Bを含むラップに位置付けるための信号をヘッド位置制御システム17に出力すると共に、テープ走行管理部47に対し、テープ23を読出し時の速度で走行させるための信号をモータドライバ18に出力するよう指示する。また、チャネル入出力部43が読出しヘッド14bを介して読み出したデータセットを受け取ってバッファ12に格納する。ここで、バッファ12の容量は、512MB〜1GB程度とする。
そして、バッファ管理部42は、ステップ102でデータを読出し中にバッファ12が一杯になったときの読出し位置を、新たな読出し開始位置Bとして位置記憶部44に記憶する(ステップ103)。ここで、読出し開始位置からバッファ12が一杯になったときの読出し位置までの領域は、第1の領域の一例である。
【0040】
また、バッファ管理部42は、書込み時のフォーマットの設定を新フォーマットに変更し、ステップ102で読み出されバッファ12に格納されたユーザデータを、テープ23の余裕領域に新フォーマットで書き込む(ステップ104)。具体的には、ヘッド位置管理部46に対し、書込みヘッド14aを余裕領域を含むラップに位置付けるための信号をヘッド位置制御システム17に出力すると共に、テープ走行管理部47に対し、テープ23を書込み時の速度で走行させるための信号をモータドライバ18に出力するよう指示する。また、バッファ12からデータセットを取り出してチャネル入出力部43に渡し、書込みヘッド14aを介してテープ23にデータセットを書き込むようチャネル入出力部43に指示する。尚、このとき、バッファ管理部42は、位置記憶部44から読み出した書込み開始位置A及び読出し開始位置Bを、DSIT生成部45を用いて、余裕領域に書き込むデータセットの付加情報エリアの一例であるDSITに書き込んでおく。ここで、余裕領域は、第2の領域の一例である。
【0041】
次に、バッファ管理部42は、ステップ102で読み出されバッファ12に格納されたユーザデータを、書込み開始位置Aから、新フォーマットで書き込む(ステップ105)。具体的には、ヘッド位置管理部46に対し、書込みヘッド14aを書込み開始位置Aを含むラップに位置付けるための信号をヘッド位置制御システム17に出力すると共に、テープ走行管理部47に対し、テープ23を書込み時の速度で走行させるための信号をモータドライバ18に出力するよう指示する。また、バッファ12からデータセットを取り出してチャネル入出力部43に渡し、書込みヘッド14aを介してテープ23にデータセットを書き込むようチャネル入出力部43に指示する。尚、このとき、余裕領域に一度書き出した後に書込み開始位置Aから再度書き出したデータセットのDSITには、DSIT生成部45が、余裕領域に存在する同一のデータセットを特定するための情報を書き込む。ここで、データセットを特定するための情報としては、例えば、データセット番号と、同じデータセット番号を区別するためのWP(Write Pass)との組み合わせを採用することができる。また、DSITには、位置記憶部44から読み出した書込み開始位置Aと読出し開始位置Bも追加する。ここで、書込み開始位置Aからデータが新フォーマットで書き込まれる領域は、第3の領域の一例である。
【0042】
そして、バッファ管理部42は、ステップ105で書込みが終了した位置を、新たな書込み開始位置Aとして位置記憶部44に記憶する(ステップ106)。
その後、バッファ管理部42は、ユーザデータがまだあるかどうかを判定する(ステップ107)。
その結果、ユーザデータがまだあると判定されれば、処理はステップ102へ戻る。一方、ユーザデータがもうないと判定されれば、処理は終了する。即ち、全てのユーザデータの読出し及び書込みが終了するまで、ステップ102〜106が繰り返される。
【0043】
このような手順で旧フォーマットから新フォーマットへの変換を行えば、これらのフォーマットの間には線密度及びトラック密度の差があるので、新フォーマットで書き込まれたユーザデータが、旧フォーマットで書き込まれ未だ読み出されていないユーザデータを上書きしないことが保障される。
但し、新フォーマットでユーザデータを書き込む際のERP(エラー回復処理)では、書込み位置を決定する場合に、旧フォーマットで書き込まれ未だ読み出されていないユーザデータを上書きしないように考慮する必要がある。例えば、読出し開始位置Bよりも後ろにユーザデータが書き込まれそうになった場合に、書込みを一時中断し、読出し処理に移る、といった処理を行えばよい。
【0044】
また、上記動作例では、バッファ12の容量分のデータを単位としてステップ102〜106を実行した。しかしながら、ステップ102〜104を繰り返すことにより、バッファ12の容量を超えた多量のユーザデータを余裕領域にコピーした後にステップ105、106を実行し、新フォーマットで書き込んでもよい。つまり、余裕領域に書き込むデータの容量は、バッファ12の容量に基づいて決定してもよいし、余裕領域に書き込めるデータの容量に基づいて決定してもよい。
【0045】
ここで、エラーケースについて考える。エラーケースとしては、次の(a)〜(c)が考えられる。
(a)ステップ102でエラーが発生した場合
テープ23に記録されていたデータを読み出す際のエラーで一連の処理が中断された場合である。
(b)ステップ104でエラーが発生した場合
テープ23から読み出したデータを余裕領域に書き込む際にエラーが発生した場合である。
(c)ステップ105でエラーが発生した場合
余裕領域に一旦書き込んだデータを書込み開始位置Aから書き込む際にエラーが発生した場合である。
【0046】
このように、一連の作業中に読出しエラー又は書込みエラーが発生することは考えられる。しかしながら、本実施の形態では、このような状態からでも、全てのデータを読み出せるようにしている。
【0047】
図6に、エラーケース(a),(b)におけるデータの読出し手順を模式的に示す。尚、ここでは、例として、旧フォーマットを「第1世代フォーマット」とし、新フォーマットを「第3世代フォーマット」とする。また、図中、「DS」はデータセットを意味する。
このエラーケース(a),(b)において、元々第1世代フォーマットで網かけ領域に記録されていたデータの一部は第3世代フォーマットで斜線ハッチング領域(以下、「再書込み領域」という)に記録されているが、残りは第1世代フォーマットで網かけ領域に記録されたままとなっている。この場合は、再書込み領域に第3世代フォーマットで書き込まれた最後のデータセットのDSITから、続きのデータセットがどこから始まっているのかが分かる。即ち、DSITに読出し開始位置Bが含まれているので、第3世代フォーマットで書き込まれたデータセットをBOTからAまで読み終わった後は、DSITに基づいてBに移動し、テープドライブ10の読出し設定を第1世代フォーマットに変更して続きのデータセットを読み出す。
【0048】
また、図7に、エラーケース(c)におけるデータの読出し手順を模式的に示す。尚、ここでも、例として、旧フォーマットを「第1世代フォーマット」とし、新フォーマットを「第3世代フォーマット」とする。また、図中、「DS」はデータセットを意味する。
このエラーケース(c)においても、元々第1世代フォーマットで網かけ領域に記録されていたデータの一部は第3世代フォーマットで斜線ハッチング領域(再書込み領域)に記録されているが、残りは第1世代フォーマットで網かけ領域に記録されたままとなっている。この場合は、再書込み領域に第3世代フォーマットで書き込まれたデータセットのうち、書込みエラーが発生する直前のデータセットのDSITから、余裕領域のどこに続きのデータセットが存在しているかが分かる。即ち、DSITにデータセット番号とWPが含まれているので、第3世代フォーマットで書き込まれたデータセットをBOTからエラー発生直前のデータセットまで読んだ後、DSITに基づいて、余裕領域に移動する。例えばエラー発生直前のデータセットのデータセット番号をN、WPをMとすると、データセット番号がN+1であり、WPがMよりも大きいデータセットを検索して余裕領域のデータセットへ移動する。そして、余裕領域内のデータセットを全て読んだ後、余裕領域の最後のデータセットのDSITに記された読出し開始位置Bに移動し、続きのデータセットを読み出す。
【0049】
次いで、このようにデータを失うことなく読み出す際の動作について説明する。
図8は、このときのコントローラ16の動作例を示したフローチャートである。尚、図中、「DS」はデータセットを意味する。
動作が開始すると、まず、バッファ管理部42が、テープ23に新フォーマットで記録されたデータを読み出す(ステップ121)。具体的には、ヘッド位置管理部46に対し、読出しヘッド14bを読出し位置を含むラップに位置付けるための信号をヘッド位置制御システム17に出力すると共に、テープ走行管理部47に対し、テープ23を読出し時の速度で走行させるための信号をモータドライバ18に出力するよう指示する。また、チャネル入出力部43が読出しヘッド14bを介して読み出したデータセットを受け取ってバッファ12に格納する。そして、バッファ管理部42は、読出しが成功したかどうかを判定する(ステップ122)。
【0050】
その結果、読出しが成功したと判定した場合、バッファ管理部42は、読み出したデータセットが、再書込み領域に新フォーマットで記録された最後のデータセットであるかどうかを判定する(ステップ123)。そして、再書込み領域に新フォーマットで記録された最後のデータセットでなければ、ステップ121に戻る。また、再書込み領域に新フォーマットで記録された最後のデータセットであれば、読み出したデータセットがEOD(End Of Data)であるかどうかを判定する(ステップ124)。
ここで、読み出したデータセットがEODであれば、全てのデータセットが新フォーマットで書き込まれたことになるので、処理を終了する。一方、読み出したデータセットがEODでなければ、エラーケース(a),(b)に対する動作に移る。
【0051】
即ち、バッファ管理部42は、読み出したデータセットのDSITに含まれる読出し開始位置Bに読出し位置を移動する(ステップ125)。具体的には、ヘッド位置管理部46に対し、読出しヘッド14bを読出し開始位置Bを含むラップに位置付けるための信号をヘッド位置制御システム17に出力すると共に、テープ走行管理部47に対し、テープ23を最高速度で読出し開始位置Bまで走行させるための信号をモータドライバ18に出力するよう指示する。
【0052】
次に、バッファ管理部42は、図示しないメモリに記憶されたフォーマットの情報を旧フォーマットに変更する(ステップ126)。そして、旧フォーマットで記録されたデータを読出し開始位置Bから読み出す(ステップ127)。具体的には、テープ走行管理部47に対し、テープ23を読出し時の速度で走行させるための信号をモータドライバ18に出力するよう指示する。また、チャネル入出力部43が読出しヘッド14bを介して読み出したデータセットを受け取ってバッファ12に格納する。そして、バッファ管理部42は、読出しが成功したかどうかを判定する(ステップ128)。
ここで、読出しが成功したと判定した場合、バッファ管理部42は、読み出したデータセットがEODであるかどうかを判定する(ステップ129)。そして、EODでなければ、ステップ127に戻る。また、EODであれば、処理を終了する。更に、ステップ128で読出しが成功していないと判定した場合、バッファ管理部42は、ホスト30にエラーを報告する(ステップ137)。具体的には、バッファ管理部42がコマンド処理部41に対してホスト30にエラーを報告するよう指示する。
【0053】
一方、ステップ122で読出しが成功していないと判定した場合、バッファ管理部42は、読み出せなかったデータセットが、再書込み領域に新フォーマットで記録された最後のデータセットであるかどうかを判定する(ステップ130)。そして、再書込み領域に新フォーマットで記録された最後のデータセットでなければ、ホスト30にエラーを報告する(ステップ137)。具体的には、バッファ管理部42がコマンド処理部41に対してホスト30にエラーを報告するよう指示する。また、再書込み領域に新フォーマットで記録された最後のデータセットであれば、エラーケース(c)に対する動作に移る。
【0054】
即ち、バッファ管理部42は、直前に読み出したデータセットのDSITに基づいて、余裕領域から読み出すデータセットを特定する(ステップ131)。DSITには、例えば、データセット番号とWPとが含まれるので、これらの情報によりデータセットを特定する。そして、その特定された余裕領域上のデータセットの位置に読出し位置を移動する(ステップ132)。具体的には、ヘッド位置管理部46に対し、読出しヘッド14bをその特定された位置を含むラップに位置付けるための信号をヘッド位置制御システム17に出力すると共に、テープ走行管理部47に対し、テープ23を最高速度でその特定された位置まで走行させるための信号をモータドライバ18に出力するよう指示する。
【0055】
次に、バッファ管理部42は、余裕領域からデータセットを読み出す(ステップ133)。具体的には、テープ走行管理部47に対し、テープ23を読出し時の速度で走行させるための信号をモータドライバ18に出力するよう指示する。また、チャネル入出力部43が読出しヘッド14bを介して読み出したデータセットを受け取ってバッファ12に格納する。そして、バッファ管理部42は、読出しが成功したかどうかを判定する(ステップ134)。
ここで、読出しが成功したと判定した場合、バッファ管理部42は、読み出したデータセットが余裕領域の最後のデータセットであるかどうかを判定する(ステップ135)。そして、余裕領域の最後のデータセットでなければ、ステップ133に戻る。また、余裕領域の最後のデータセットであれば、読み出したデータセットがEODであるかどうかを判定する(ステップ136)。
ここで、読み出したデータセットがEODであれば、全てのデータセットが新フォーマットの領域又は余裕領域に書き込まれたことになるので、処理を終了する。一方、読み出したデータセットがEODでなければ、ステップ125〜129の処理を行う。
【0056】
尚、上記では、ステップ123及びステップ130における新フォーマットの最後のデータセットであるかどうかの判断手法については詳細に述べなかったが、例えば、次のような手法が考えられる。
(1)データの書込み時に新フォーマットで書き込まれた最後のデータセット番号をCMに記録しておく。
(2)データの読出し時に新フォーマットのデータが入ってこなくなったら最後とみなす。読出し設定を新フォーマットにしてデータを読み出した場合に、読み出したデータが旧フォーマットのデータであれば、読み出したデータはノイズとして認識される。従って、このような状態になれば、最後とみなす。
【0057】
(3)新フォーマットで書き込むデータセットのDSITに、余裕領域における同じ情報を含むデータセットのデータセット番号及びWPではなく、余裕領域におけるその1つ先のデータセットのデータセット番号及びWPを書き込む。そして、余裕領域の最後のデータセットに対応するデータセットを新フォーマットで書き込む場合、DSITには、WPとして、現在利用しようとしているものよりも「1」だけ高いWPを書き込み、データセット番号として、「0」を書き込む。このように新フォーマットで書き込むデータセットのDSITにデータセット番号「0」が書き込まれていれば、そのデータセットは、一連のサイクルの最後のものであることが分かり、また、その1つ先のデータセットの読出し時にエラーが発生した場合にも、余裕領域をどのデータセット番号及びWPを用いて探せばよいかを指し示せる。
これらの手法を組み合わせることにより、例えばCMが壊れた場合や、読出しヘッド14bの調子が突然悪くなったような場合であっても、高い精度で最後のデータセットを検出することができる。
【0058】
ところで、本実施の形態では、書込み開始位置A、読出し開始位置B、余裕領域のデータセットのデータセット番号やWPをDSITに書き込むようにした。しかしながら、同様の情報は、CMに記憶させておいてもよい。
【0059】
また、本実施の形態では、読出し開始位置Bに加え、書込み開始位置AもDSITに含めている。これは、図5のステップ105で、一度余裕領域に書き込まれたデータセット群を新フォーマットで書込み開始位置Aから追記する場合に、誤った書き込み開始位置から書き始めるという問題の検出や調査に役立つからである。しかしながら、書込み開始位置Aは、データの読出し時に利用されるものではないため、データを失うことなくデータのフォーマットを変更するという目的からすると、必ずしもDSITに含めなくてもよい。
【0060】
更に、本実施の形態では、データセットのデータセット番号及びWPは、余裕領域に書き込むデータセットのDSITには書き込まなかった。しかしながら、余裕領域に書き込む各データセットに対応する旧フォーマットで書かれたデータセット群の先頭のデータセットのデータセット番号及びWPを保持するようにしてもよい。こうすれば、エラーケース(c)で余裕領域からのデータの読出し時に更に読出しエラーに遭遇した場合に、旧フォーマットのデータセットを読み出すことでエラーを回復することができる。
【0061】
また、本実施の形態では、余裕領域に新フォーマットでデータを書き込んだが、余裕領域に書き込むデータのフォーマットは、旧フォーマットやその他のフォーマットであっても構わない。
更に、本実施の形態では、旧フォーマットから新フォーマットへのフォーマット変換を想定したが、新フォーマットから旧フォーマットへのフォーマット変換においても、或いは、新旧の区別のない2つのフォーマットの間の変換においても、本実施の形態は適用可能である。
【0062】
このように、本実施の形態では、あるフォーマットで書き込まれたユーザデータを、テープ23の余裕領域に一度コピーし、その後、別のフォーマットで書き込むようにした。これにより、テープ23に書き込まれたユーザデータのフォーマットを、データを失うことなくテープドライブ10単体で変換することができる。
【0063】
尚、頻度は低いが、現在のテープドライブ10は、データの書込み時にエラー回復の目的で余裕領域を使い切ってしまう場合がある。しかしながら、このような場合であっても、余裕領域の一部をリフォーマット用としてリザーブしておくことにより、常に本実施の形態の手法を使えることが保障される。
また、本実施の形態の手法は、フォーマットを変換する場合のみならず、VTS(Virtual Tape Server)等でテープ23のデフラグを行う場合にも有用である。
【0064】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
【0065】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【図面の簡単な説明】
【0066】
【図1】本発明の実施の形態が適用されるテープドライブの構成を示したブロック図である。
【図2】本発明の実施の形態で用いるテープのフォーマットを示した図である。
【図3】各世代のテープドライブの各世代のテープフォーマットに対する読み書きのサポート状況を示した図である。
【図4】本発明の実施の形態におけるコントローラの機能構成例を示したブロック図である。
【図5】本発明の実施の形態におけるコントローラのフォーマット変換時の動作例を示したフローチャートである。
【図6】エラーケース(a),(b)について説明するための図である。
【図7】エラーケース(c)について説明するための図である。
【図8】本発明の実施の形態におけるコントローラの読出し時の動作例を示したフローチャートである。
【符号の説明】
【0067】
10…テープドライブ、11…ホストI/F、12…バッファ、13…チャネル、14a…書込みヘッド、14b…読出しヘッド、15…モータ、16…コントローラ、17…ヘッド位置制御システム、18…モータドライバ

【特許請求の範囲】
【請求項1】
テープ媒体に記録されたデータのフォーマットを変更する装置であって、
前記テープ媒体からデータを読み出す読出しヘッドが、前記テープ媒体に第1のフォーマットで記録されたデータのうち、第1の領域に記録された特定のデータを読み出すように制御する第1の制御部と、
前記テープ媒体にデータを書き込む書込みヘッドが、前記特定のデータを、前記テープ媒体の前記第1の領域とは異なる第2の領域に書き込み、前記テープ媒体の前記第2の領域とは異なる第3の領域に第2のフォーマットで書き込むように制御する第2の制御部と
を含む、装置。
【請求項2】
前記テープ媒体に前記第1のフォーマットで記録されたデータのうち、前記読出しヘッドが前記特定のデータの次に読み出す他のデータの読出し位置を特定するための特定情報を記録する記録部を更に含む、請求項1の装置。
【請求項3】
前記第1の制御部は、前記読出しヘッドが、前記第3の領域に前記第2のフォーマットで書き込まれた前記特定のデータを読み出し、前記第2のフォーマットに変換された前記他のデータが当該第3の領域に続く領域から読み出せない場合に、前記特定情報によって特定される読出し位置から当該他のデータを読み出すように制御する、請求項2の装置。
【請求項4】
前記記録部は、前記特定情報を、前記特定のデータと共に前記第3の領域に書き込むことにより記録する、請求項2の装置。
【請求項5】
前記第2の領域に書き込まれた前記特定のデータのうち、前記第3の領域に前記第2のフォーマットで書き込まれた前記特定のデータの各部分に対応する部分を特定するための第1の特定情報と、前記テープ媒体に前記第1のフォーマットで記録されたデータのうち、前記読出しヘッドが前記特定のデータの次に読み出す他のデータの読出し位置を特定するための第2の特定情報とを記録する記録部を更に含む、請求項1の装置。
【請求項6】
前記第1の制御部は、前記読出しヘッドが、前記第3の領域に前記第2のフォーマットで書き込まれた前記特定のデータの第1の部分を読み出し、当該第1の部分に連続する第2の部分が当該第3の領域から読み出せない場合に、前記第2の領域に書き込まれた前記特定のデータのうち、前記第1の特定情報によって特定される、当該第2の部分に対応する部分を読み出し、その後、前記第2の特定情報によって特定される読出し位置から前記他のデータを読み出すように制御する、請求項5の装置。
【請求項7】
前記第1の制御部は、前記特定のデータの容量を、前記読出しヘッドが読み出したデータを蓄積するバッファの容量、及び、前記第2の領域に書き込めるデータの容量の何れかに基づいて決定する、請求項1の装置。
【請求項8】
前記第2の制御部は、前記書込みヘッドが、前記特定のデータを第2の領域に書き込んだ後に前記第3の領域に書き込むように制御する、請求項1の装置。
【請求項9】
テープ媒体に記録されたデータのフォーマットを変更する装置であって、
前記テープ媒体からデータを読み出す読出しヘッドと、
前記テープ媒体にデータを書き込む書込みヘッドと、
前記読出しヘッドが、前記テープ媒体に第1のフォーマットで記録されたデータのうち、第1の領域に記録された特定のデータを読み出すように制御し、前記書込みヘッドが、前記特定のデータを、前記テープ媒体の前記第1の領域とは異なる第2の領域に書き込み、前記テープ媒体の前記第2の領域とは異なる第3の領域に第2のフォーマットで書き込むように制御するコントローラと
を含む、装置。
【請求項10】
テープ媒体に記録されたデータのフォーマットを変更する装置であって、
前記テープ媒体からデータを読み出す読出しヘッドが、前記テープ媒体に第1のフォーマットで記録されたデータのうち、第1の領域に記録された特定のデータを読み出すように制御する第1の制御部と、
前記第1の領域とは異なる第2の領域に書き込まれる前記特定のデータのうち、前記第2の領域とは異なる第3の領域に第2のフォーマットで書き込まれる前記特定のデータの各部分に対応する部分を特定するための第1の特定情報と、前記テープ媒体に前記第1のフォーマットで記録されたデータのうち、前記読出しヘッドが前記特定のデータの次に読み出す他のデータの読出し位置を特定するための第2の特定情報とを生成する生成部と、
前記テープ媒体にデータを書き込む書込みヘッドが、前記特定のデータと前記第1の特定情報とを、前記テープ媒体の前記第2の領域に書き込んだ後に、前記特定のデータと前記第1の特定情報と前記第2の特定情報とを、前記テープ媒体の前記第3の領域に前記第2のフォーマットで書き込むように制御する第2の制御部と
を含む、装置。
【請求項11】
テープ媒体に記録されたデータのフォーマットを変更する方法であって、
前記テープ媒体に第1のフォーマットで記録されたデータのうち、第1の領域に記録された特定のデータを読み出すステップと、
前記特定のデータを、前記テープ媒体の前記第1の領域とは異なる第2の領域に書き込むステップと、
前記特定のデータを、前記テープ媒体の前記第2の領域とは異なる第3の領域に第2のフォーマットで書き込むステップと
を含む、方法。
【請求項12】
テープ媒体に記録されたデータのフォーマットを変更する装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
前記テープ媒体からデータを読み出す読出しヘッドが、前記テープ媒体に第1のフォーマットで記録されたデータのうち、第1の領域に記録された特定のデータを読み出すように制御する第1の制御部と、
前記テープ媒体にデータを書き込む書込みヘッドが、前記特定のデータを、前記テープ媒体の前記第1の領域とは異なる第2の領域に書き込み、前記テープ媒体の前記第2の領域とは異なる第3の領域に第2のフォーマットで書き込むように制御する第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


【公開番号】特開2010−55690(P2010−55690A)
【公開日】平成22年3月11日(2010.3.11)
【国際特許分類】
【出願番号】特願2008−219803(P2008−219803)
【出願日】平成20年8月28日(2008.8.28)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
【復代理人】
【識別番号】100118201
【弁理士】
【氏名又は名称】千田 武
【復代理人】
【識別番号】100118108
【弁理士】
【氏名又は名称】久保 洋之
【Fターム(参考)】