JP5888037B2 - テープ装置及びテープ装置の制御方法 - Google Patents

テープ装置及びテープ装置の制御方法 Download PDF

Info

Publication number
JP5888037B2
JP5888037B2 JP2012062652A JP2012062652A JP5888037B2 JP 5888037 B2 JP5888037 B2 JP 5888037B2 JP 2012062652 A JP2012062652 A JP 2012062652A JP 2012062652 A JP2012062652 A JP 2012062652A JP 5888037 B2 JP5888037 B2 JP 5888037B2
Authority
JP
Japan
Prior art keywords
medium
tape device
data
recorded
management information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012062652A
Other languages
English (en)
Other versions
JP2013196363A (ja
Inventor
茂春 青木
茂春 青木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012062652A priority Critical patent/JP5888037B2/ja
Priority to US13/747,555 priority patent/US8947990B2/en
Publication of JP2013196363A publication Critical patent/JP2013196363A/ja
Application granted granted Critical
Publication of JP5888037B2 publication Critical patent/JP5888037B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/36Monitoring, i.e. supervising the progress of recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/11Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information not detectable on the record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers

Description

本発明は、テープ装置及びテープ装置の制御方法に関する。
従来、汎用機システムで使用するLTO(Linear Tape-Open)装置において、カートリッジ媒体にデータを追加記録する場合、カートリッジ媒体に記録できるデータ量が管理される。
例えば、汎用機システムにインストールしたアプリケーションソフトは、カートリッジ媒体に記録されているボリューム終わりラベルのデータを読み取り、カートリッジ媒体の公称最大記録量と読み取ったデータ量とから未記録データ量を算出する。
または、運用者自身が、カートリッジ媒体をテープドライブにロードして、CM(Cartridge Memory)に記録されている記録済データ量を読み取り、記録済データ量と未記録データ量とを計算してカートリッジ媒体の履歴簿を作成する。
国際公開第97/17652号 特開2007−104006号公報
しかしながら、上述した従来の技術では、カートリッジ媒体の未記録データ量を効率的に管理することができないという課題がある。
具体的には、従来の技術では、いずれの方法においてもカートリッジ媒体をテープドライブにロードすることになる。このため、未記録データ量を算出するたびにカートリッジ媒体をテープドライブにロードする時間を要する。
1つの側面では、本発明は、カートリッジ媒体の未記録データ量を効率的に管理することができるテープ装置及びテープ装置の制御方法を提供することを目的とする。
第1の案では、テープ装置は、入出力命令の実行のたびに、媒体に書込んだデータ容量または媒体から読出したデータ容量を計測する。テープ装置は、計測したデータ容量の総計から媒体に記録済みのデータ容量を算出する。また、テープ装置は、媒体の開始位置から入出力命令の実行により書込みまたは読出されたデータの終了位置までの媒体の長さを示す記録済みの媒体長を、媒体をマウントしているドライブから取得する。続いて、テープ装置は、記録済みのデータ容量と記録済みの媒体長とに基づいて、媒体に更に記録可能なデータ容量を算出する。そして、テープ装置は、算出した媒体に更に記録可能なデータ容量で、媒体の識別子に対応する管理情報を更新する。
1実施形態によれば、カートリッジ媒体の未記録データ量を効率的に管理することができる。
図1は、実施例1に係るテープ装置のハードウェア構成の一例を示す図である。 図2は、カートリッジ媒体のデータフォーマットの一例を示す図である。 図3は、管理情報テーブルが記憶する情報の一例を示す図である。 図4は、実施例1に係るテープ装置のCPUが実行するソフトウェアの機能部の機能構成を示す機能ブロック図である。 図5は、テープ装置によるカートリッジ媒体へのアクセス動作の一例を示す図である。 図6は、イニシャライズ処理の処理動作の一例を示す図である。 図7は、ファイル追加処理の処理動作の一例を示す図である。 図8は、ファイル追加処理の処理動作の一例を示す図である。 図9は、ファイル追加処理の処理動作の一例を示す図である。 図10は、ファイル削除処理の処理動作の一例を示す図である。 図11は、ヘッド位置付け処理の処理動作の一例を示す図である。 図12は、ヘッド位置付け処理の処理動作の一例を示す図である。 図13は、ヘッド位置付け処理の処理動作の一例を示す図である。 図14は、実施例1に係るテープ装置によるWTコマンド処理の処理手順を示すフローチャートである。 図15は、実施例1に係るテープ装置によるRDコマンド処理の処理手順を示すフローチャートである。 図16は、実施例1に係るテープ装置によるアイドル処理の処理手順を示すフローチャートである。 図17は、実施例1に係るテープ装置によるSPF/SPコマンド処理の処理手順を示すフローチャートである。 図18は、実施例1に係るテープ装置によるBSPF/BSPコマンド処理の処理手順を示すフローチャートである。 図19は、実施例1に係るテープ装置によるWTMコマンド処理の処理手順を示すフローチャートである。 図20は、実施例1に係るテープ装置によるRWDコマンド処理の処理手順を示すフローチャートである。 図21は、実施例1に係るテープ装置によるSDIAGコマンド処理の処理手順を示すフローチャートである。
以下に、本願の開示するテープ装置及びテープ装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[実施例1に係るテープ装置のハードウェア構成]
図1は、実施例1に係るテープ装置のハードウェア構成の一例を示す図である。図1に示すように、実施例1に係るテープ装置100、ドライブ部120と制御部130とを有する。また、実施例1に係るテープ装置100は、図示しないホストと接続する。なお、ここで言うホストとは、メインフレームなどの汎用機システムやサーバなどの情報処理装置である。
ドライブ部120は、ドライブ121と、データバッファ122と、CPU(Central Processing Unit)123とを有する。
ドライブ121は、カートリッジ媒体121aと、CM(Cartridge Memory)121bと、ドライバレシーバ121cと、を有する。ドライブ121は、セットされたカートリッジ媒体121aに対してデータの書込みや、セットされたカートリッジ媒体121aを走行させて記憶されるデータの読み出しを行う。
カートリッジ媒体121aは、例えば、磁気テープである。なお、カートリッジ媒体121aのデータフォーマットについては後述する。CM121bは、カートリッジ媒体121aの記録位置を記憶する。ここでいう、記録位置とは、データの書込みやデータの読出しを実行後のヘッド位置を示す。すなわち、記録位置は、カートリッジ媒体121aの開始位置からデータの書込みやデータの読出しを実行後のカートリッジ媒体121aの終了位置までの磁気テープの長さを示す。なお、記録位置の単位はセクタ値である。ドライバレシーバ121cは、データバッファ122及びCPU123とのインターフェースである。
データバッファ122は、カートリッジ媒体121aから読出したデータや、カートリッジ媒体121aに書込むデータを一時的に記憶する。
CPU123は、データバッファ122のアドレスを指定して、カートリッジ媒体121aへのデータの書込み、読込みを制御する。
制御部130は、ホストインターフェース131と、ドライブインターフェース132と、フラッシュメモリ133と、データバッファ134と、メモリ135と、CPU136とを有し、ホストによる要求に応じてドライブ部120を制御する。
ホストインターフェース131は、ホストとのインターフェースであり、ホストから各種コマンドを受信するとともに、ホストとのデータのやり取りを制御する。
ドライブインターフェース132は、制御部130とドライブ部120とのインターフェースである。
フラッシュメモリ133は、カートリッジ媒体の識別子と、カートリッジ媒体に更に記録可能なデータ容量とを対応付けた管理情報テーブル133aを記憶する。なお、管理情報テーブル133aの詳細については図3を用いて後述する。
データバッファ134は、ホストとドライブ部120との間でやり取りされるデータを一時的に記憶する。
メモリ135は、例えば、RAM(Random Access Memory)などの半導体メモリ素子であり、CPUが実行する各種のプログラムを記憶する。また、メモリ135は、テープ装置100の状態フラグを記憶する。
CPU136は、ホストから受信したコマンドに応じて、ホストとドライブ部120との間のデータのやり取りを制御する。
このような、テープ装置100は、コマンドの実行に応じて、カートリッジ媒体に書込んだデータ容量またはカートリッジ媒体から読出したデータ容量を計測する。テープ装置100は、計測したデータ容量の総計からカートリッジ媒体に記録済みのデータ容量を算出する。また、テープ装置100は、カートリッジ媒体の開始位置からコマンドの実行により書込みまたは読出されたデータの終了位置までのカートリッジ媒体の長さを示す記録済みの媒体長を、カートリッジ媒体をマウントしているドライブから取得する。続いて、テープ装置100は、記録済みのデータ容量と記録済みの媒体長とに基づいて、カートリッジ媒体に更に記録可能なデータ容量を算出する。そして、テープ装置100は、算出したカートリッジ媒体に更に記録可能なデータ容量で、管理情報テーブル133aを更新する。
[カートリッジ媒体のデータフォーマット]
次に、図2を用いて、カートリッジ媒体のデータフォーマットについて説明する。図2は、カートリッジ媒体のデータフォーマットの一例を示す図である。図2に示すように、カートリッジ媒体の両端にはBOT(Beginning Of Tape)2aとEOT(End Of Tape)2bが記録される。また、図2に示すように、カートリッジ媒体には、VOL(Volume)2c、HDR(header)2d及び2j、ファイルデータ2f及び2l、EOF(End Of File)2h及び2n、TM(Tape Mark)2e、2g、2i、2k、2m、2o及び2pが記録される。
ここで、BOT2aは、カートリッジ媒体の先頭を示すマークである。また、EOT2bは、カートリッジ媒体の終端を示す。そして、カートリッジ媒体では、このBOT2aとEOT2bとの間が情報を記録できる領域になる。
VOL2cは、ボリューム領域であり、ユーザやカートリッジ媒体の識別ラベルが記録される。このVOL2cのサイズは80バイトであり、VOLには、8バイトのVOL名が付与される。このVOL2cは、各カートリッジ媒体につき一つ記録される。
また、HDR2d及び2jは、ヘッダ領域であり、ファイルデータを識別するラベルが記録される。このHDR2d及び2jのサイズは80バイトであり、各HDR2d及び2jには、8バイトのHDR名が付与される。
ファイルデータ2f及び2lは、ユーザによりデータとバイトとが任意に変更可能なデータを示す。EOF2h及び2nは、ファイルデータの終わりを示す。このEOF2h及び2nのサイズは80バイトであり、各EOF2h及び2nには、8バイトのエンドデータ名が付与される。TM2e、2g、2i、2k、2m、2o及び2pは、カートリッジ媒体上にデータの読み/書きを制御するために記録される特別の符号または符号列である。TM2e、2g、2i、2k、2m、2o及び2pは、ファイルデータ2f及び2lとHDR2d及び2jやEOF2h及び2nなどのラベルとの間またはラベル群の間の境界を示す。
また、カートリッジ媒体では、HDR、TM、ファイルデータ、TM、EOF、TMを一つのデータ書込み単位とする。図2に示す例では、HDR2d、TM2e、ファイルデータ2f、TM2g、EOF2h、TM2iを一つのデータ書込み単位とし、HDR2j、TM2k、ファイルデータ2l、TM2m、EOF2n、TM2oを一つのデータ書込み単位とする。そして、カートリッジ媒体では、TMが2つ連続して書込まれた場合、書込みの終了を示す。図2に示す例では、TM2oの後に書込まれたTM2pは、書込みの終了を示す。
[管理情報テーブル]
次に、図3を用いて、管理情報テーブルが記憶する情報について説明する。図3は、管理情報テーブルが記憶する情報の一例を示す図である。図3に示すように、管理情報テーブル133aは、x列とy列とのそれぞれにアドレスを有し、x列には各8バイトの格納域を有する。そして、管理情報テーブル133aは、y列のアドレスごとに「VOL名」と、「HDR名」と、「データ量」と、「総記録済容量」と、「記録済物理位置」と、「未記録容量」とを対応付けた情報を記憶する。
ここで、管理情報テーブル133aが記憶する「VOL名」は、VOLに付与されたボリューム名であり、カートリッジ媒体の識別子を示す。また、管理情報テーブル133aが記憶する「HDR名」は、ファイルデータのヘッダ名を示す。管理情報テーブル133aが記憶する「データ量」は、直前のHDR名に対応する一つのデータ書込み単位のデータ量を示し、HDR、TM、ファイルデータ、TM、EOF、TMのバイトカウントを含む。管理情報テーブル133aが記憶する「総記録済容量」は、媒体に記録済みの総データ容量を示す。総記録済容量は、VOL名に対応するデータ量の総計に、VOLの容量を加算することで算出される。なお、総記録済容量の単位はバイトである。管理情報テーブル133aが記憶する「記録済物理位置」は、ドライブにマウントされているカートリッジ媒体におけるヘッド位置を示し、セクタ値で表される。この「記録済物理位置」は、カートリッジ媒体の開始位置からコマンドの実行により書込みまたは読出されたデータの終了位置までのカートリッジ媒体の長さを示す記録済みの媒体長を示す。管理情報テーブル133aが記憶する「未記録容量」は、媒体に更に記録可能なデータ容量を示す。なお、未記録容量の単位はバイトである。
なお、ここで記憶される情報は、後述する生成部203により生成され、後述する更新部206によって適宜更新される。また、図3に示した情報はあくまで例示であり、これに限定されるものではなく、任意に設定変更できる。例えば、管理情報テーブル133aは、「VOL名」と「未記録容量」とのみを対応付けて記憶してもよい。
[実施例1に係るテープ装置のCPUが実行するソフトウェアの機能構成]
次に、図4を用いて、実施例1に係るテープ装置のCPUが実行するソフトウェアの機能構成を説明する。図4は、実施例1に係るテープ装置のCPUが実行するソフトウェアの機能部の機能構成を示す機能ブロック図である。
図4に示すように、実施例1に係るテープ装置100のCPU136が実行するソフトウェアの機能部200は、コマンド処理部201と判定部202と生成部203と計測部204と算出部205と更新部206と送信部207とを有する。
コマンド処理部201は、ホストから受信した各種のコマンド処理を実行する。例えば、コマンド処理部201は、WTコマンドからバイトカウントを読出し、読出したバイトカウントとテープ装置100の状態フラグとに応じた処理を実行する。また、コマンド処理部201は、ドライブ部120から転送バイトカウントを取得し、取得したバイトカウントとテープ装置100の状態フラグとに応じた処理を実行する。
次に、コマンド処理部201が実行するコマンド種の一例について説明する。例えば、コマンド処理部201は、WT(Write)コマンド、WTM(Write Tape Mark)コマンド、RD(Read)コマンド、RWD(Rewind)コマンドなどを実行する。また、コマンド処理部201は、SP(Space Block)コマンド、SPF(Space File)コマンド、BSP(Back Space Block)コマンド、BSPF(Back Space File)コマンドなどを実行する。
WTコマンドは、データを書込むコマンドである。また、WTMコマンドは、TMを書込むコマンドである。RDコマンドは、データを読込むコマンドである。RWDコマンドは、ヘッド位置をカートリッジ媒体の先頭に位置付けるコマンドである。SPコマンドは、ブロックを1つ分進むコマンドである。SPFコマンドは、TMで挟まれたファイルを1つ分進むコマンドである。BSPコマンドは、ブロックを1つ分後退するコマンドである。BSPFコマンドは、TMで挟まれたファイルを1つ分後退するコマンドである。なお、各種コマンド種に応じた処理手順については、後述する。
判定部202は、カートリッジ媒体がマウントされた時、カートリッジ媒体の識別子を含んだ情報の有無に基づいてカートリッジ媒体が未使用であるか否かを判定する。ここで、判定部202は、カートリッジ媒体が未使用である場合、後述する生成部203に管理情報テーブル133aを生成する旨を通知する。
また、判定部202は、カートリッジ媒体が未使用ではないと判定した場合、WTコマンド処理終了後のアイドルルーチンで、管理情報テーブル133aに書込むVOL名と同一のVOL名が存在するか否かを判定する。例えば、判定部202は、カートリッジ媒体からカートリッジ媒体の識別子を読出し、読出したカートリッジ媒体の識別子と一致する管理情報テーブル133aを検索する。ここで、判定部202は、読出したカートリッジ媒体の識別子と一致する管理情報テーブル133aが存在しない場合、後述する生成部203に管理情報テーブル133aを生成する旨を通知する。
生成部203は、判定部202によりカートリッジ媒体が未使用であると判定された場合、以下の処理を実行する。すなわち、生成部203は、カートリッジ媒体の識別子と、カートリッジ媒体に記録済みのデータ容量と、カートリッジ媒体に更に記録可能なデータ容量とを対応付けた管理情報テーブル133aを生成する。例えば、生成部203は、同一のVOL名が存在しない場合、管理情報テーブル133aのアドレスy列を決定し、新たなVOL名を管理情報テーブル133aに記録する。
また、生成部203は、判定部202による検索の結果、読出したカートリッジ媒体の識別子と一致する管理情報テーブル133aが存在しない場合、カートリッジ媒体の識別子と、カートリッジ媒体に記録済みのデータ容量と、カートリッジ媒体に更に記録可能なデータ容量とを対応付けた管理情報テーブル133aを生成する。
計測部204は、入出力命令の実行に応じて、カートリッジ媒体に書込んだデータ容量またはカートリッジ媒体から読出したデータ容量を計測する。計測部204は、計測したデータ容量をメモリ135に退避する。
算出部205は、計測部204により計測されたデータ容量の総計からカートリッジ媒体に記録済みのデータ容量を算出するとともに、カートリッジ媒体をマウントしているドライブからカートリッジ媒体の記録位置を取得する。そして、算出部205は、記録済みのデータ容量とカートリッジ媒体の記録位置とに基づいて、カートリッジ媒体に更に記録可能なデータ容量を算出する。
例えば、算出部205は、入出力命令を実行して、データの書込みが終了したことを示す終了情報を書込みまたは読出した場合に、カートリッジ媒体に記録済みのデータ容量の総計である総記録済容量を算出する。また、算出部205は、記録済のテープ長を示す記録済物理位置をCM121bから読み出す。
そして、算出部205は、記録済みのデータ容量と記録済みの媒体長とから、カートリッジ媒体の長さあたりの記録済みデータ容量を算出する。続いて、算出部205は、算出したカートリッジ媒体の長さあたりの記録済みデータ容量とカートリッジ媒体に未記録の媒体の長さとからカートリッジ媒体に更に記録可能なデータ容量を算出する。
更新部206は、算出部205により算出されたカートリッジ媒体に記録済みのデータ容量とカートリッジ媒体に更に記録可能なデータ容量とで、フラッシュメモリ133が記憶する管理情報テーブル133aを更新する。
更新部206は、判定部202による検索の結果、読出したカートリッジ媒体の識別子と一致する管理情報テーブル133aが存在する場合、以下の処理を実行する。すなわち、更新部206は、該管理情報テーブル133aを、算出部205により算出されたカートリッジ媒体に記録済みのデータ容量とカートリッジ媒体に更に記録可能なデータ容量とで更新する。
送信部207は、VOL名を指定して管理情報テーブル133aの取得要求をホストから受信した場合、フラッシュメモリ133から該当するVOL名の管理情報テーブル133aを読出してホストに送信する。例えば、送信部207は、SDIAGコマンドを受信した場合、総記録済容量と、未記録容量をEBSDIC(Extended Binary Coded Decimal Interchange Code)変換してホストに転送する。なお、ホストに転送する際のデータの変換は、EBSDICに限定されるものではない。
[テープ装置によるカートリッジ媒体へのアクセス動作]
次に、図5を用いて、テープ装置100によるカートリッジ媒体へのアクセス動作について説明する。図5は、テープ装置によるカートリッジ媒体へのアクセス動作の一例を示す図である。ここでは、テープ装置100によるカートリッジ媒体への書込み動作と読み込み動作について説明する。なお、アクセス動作は、メモリ135に記憶される状態フラグにより管理される。
(書込み動作)
テープ装置100は、状態フラグ10において、未使用のカートリッジ媒体がドライブ121にマウントされると、先頭に80バイトのVOLを書込む(S10)。テープ装置100は、このVOLの後には、ファイル単位にユーザデータを書込むが、この書込みは、後述する状態フラグ11〜状態フラグ14の動作を繰り返すことで実行される。
テープ装置100は、状態フラグ11において、VOLに続いて80バイトのHDRを書込み、その後ろにTMを書込む(S11)。そして、テープ装置100は、状態フラグ12において、HDR、TMに続いて、任意のデータ長のユーザデータを書込む(S12)。
テープ装置100は、状態フラグ13において、ユーザデータの最後に続いて、TMと80バイトのEOFを書込み、その後ろにTMを書込む(S13)。テープ装置100は、状態フラグ14において、1つのファイルを書き終わると、テープの最後を示すために、TMを書込む(S14)。
このように、テープ装置100は、状態フラグ13でEOFとTMとを書込むので、状態フラグ14で書込むTMと合せて、EOFとTMとに続いたTMにより、テープの最後を検出できる。また、テープ装置100は、テープにファイルデータを追加書込みする場合は、テープの最後を検出した後、最後のTMを消去し、状態フラグ11から状態フラグ14の動作を繰り返し実行する。
(読込み動作)
テープ装置100は、状態フラグ20において、既に使用されたCMTをマウントすると、先頭に80バイトのVOLを読込む(S20)。そして、テープ装置100は、状態フラグ21において、VOLに続いて、最初のファイルデータのHDRとTMとを読込む(S21)。
テープ装置100は、状態フラグ22において、任意のデータのユーザデータを読込む(S22)。テープ装置100は、状態フラグ23において、ユーザデータの最後に、TM、EOF、TMを読込む(S23)。テープ装置100は、状態フラグ24において、テープの最後であれば、TMを読込む(S24)。テープ装置100は、次のファイルがあれば、上述した状態フラグ21〜状態フラグ23を繰り返し実行する。
[実施例1に係るテープ装置による処理動作]
次に、図6から図13を用いて、実施例1に係るテープ装置100による処理動作について説明する。図6では、イニシャライズ処理の処理動作について説明し、図7から図9では、ファイルの追加処理の処理動作について説明し、図10では、ファイルの削除処理の処理動作について説明する。また、図11から図13では、ヘッド位置付け処理の処理動作について説明する。
(イニシャライズ)
図6は、イニシャライズ処理の処理動作の一例を示す図である。なお、ここでいうイニシャライズ処理とは、未使用のカートリッジ媒体がドライブ121にマウントされた場合に、カートリッジ媒体にVOLを書込む処理を示す。
図6に示すように、処理実行前のヘッド位置6aは、カートリッジ媒体の先頭に位置する。テープ装置100は、ホストからWTコマンドを検出した場合、WTコマンドからバイトカウントを読出す。ここで、テープ装置100は、バイトカウントが80バイトの場合は、データバッファ134からライトデータを取り出し、ライトデータのVOL名を確認し、状態フラグを10にセットする。そして、テープ装置100は、WTコマンドを実行してVOLをカートリッジ媒体に書込む。
そして、テープ装置100は、WTコマンド処理終了後のアイドルルーチンで、VOL名を管理情報テーブル133aに書込む。例えば、テープ装置100は、WTコマンド処理終了後のアイドルルーチンで、管理情報テーブル133aに書込むVOL名と同一のVOL名が存在するか否かを判定する。そして、テープ装置100は、同一のVOL名が存在しない場合、管理情報テーブル133aのアドレスy列を決定し、新たなVOL名を管理情報テーブル133aに記録する。また、テープ装置100は、管理情報テーブル133aのアドレス位置をインクリメントする。なお、イニシャライズ処理の実行後のヘッド位置6bは、VOLの後方に位置する。
(ファイル追加)
図7は、ファイル追加処理の処理動作の一例を示す図である。なお、ここでは、VOLが書込まれた後に、ファイルデータAが追加される場合を例にする。図7に示すように、処理実行前のヘッド位置7aは、VOLの後方に位置する。
テープ装置100は、ファイルデータの書込みを実行する前に、コマンドシーケンス7b「RWD、RD」を実行し、カートリッジ媒体を巻き戻してからVOLを読込み、状態フラグ20に遷移する。また、テープ装置100は、管理情報テーブル133aのアドレス位置をインクリメントする。
そして、テープ装置100は、図7に示すヘッド位置7aから、ファイルを追加する場合、以下手順により処理を行う。テープ装置100は、コマンドシーケンス7c「WT、WTM、WT、WT、・・・、WT、WT、WTM、WT、WTM、WTM」を実行し、「HDR、TM、ファイルデータ、TM、EOF、TM、TM」を書込む。以下にコマンドシーケンス7cの処理の具体例を示す。
まず、テープ装置100は、WTコマンド受信時、VOLの後方へのライトは、ヘッダ領域のライトのため、HDR名を管理情報テーブル133aに記憶する。そして、テープ装置100は、WTMコマンド実行後、状態フラグを11から12に変更し、管理情報テーブル133aのアドレスx列をインクリメントし、ファイルデータの処理バイトカウントのアドレスに位置付ける。
続いて、テープ装置100は、次のWTコマンド以降は、ファイルデータAのライトであるため、処理バイトカウントを加算する。
テープ装置100は、ファイルデータA後方のWTMコマンド実行後にファイルデータ書込み完了のため、処理バイトカウントを管理情報テーブル133aに記憶し、同アドレスx列をインクリメントして、次のHDR名のアドレスに位置付ける。
テープ装置100は、EOFデータを書込み処理で状態フラグ13に変更し、次のWTMコマンドでは状態フラグ14に変更する。そして、テープ装置100は、以下手順で現ヘッド位置の未記録容量を求め管理情報テーブル133aに記録する。例えば、テープ装置100は、記録済のテープ長を示す記録済物理位置をCM121bから読み出し、書込み済テープ長あたりの記録済量を算出する。そして、テープ装置100は、未記録物理領域と記録済量とから、未記録容量を算出する。
テープ装置100は、連続2個目のWTMコマンドでは状態フラグ15の変更を行う。なお、ファイル追加処理実行後のヘッド位置7dは、TMの後ろに位置する。
(ファイル追加)
図8は、ファイル追加処理の処理動作の一例を示す図である。なお、ここでは、実行前のファイルデータAが存在するフォーマットに対して、同図ヘッド位置8aから、ファイルデータBを追加する場合を例にする。処理実行前のヘッド位置8aは、VOLの前方に位置する。
テープ装置100は、まず、ファイルデータBの書込みを実行する前に、コマンドシーケンス8b「RD、SPF、RD、SPF、RD、SPF、RD、BSP」を実行し、ヘッド位置8cをTMとTMの間に位置付ける。以下にコマンドシーケンス8bの処理の具体例を示す。
まず、テープ装置100は、RDコマンド8dを受信すると、ドライブ部120から転送バイトカウントを取得する。ここで、テープ装置100は、バイトカウントが80バイトであることから、データバッファ134のリードデータがVOLであると判定する。テープ装置100は、リードデータのVOLと同一のVOL名が管理情報テーブル133aに存在するか否かを判定し、同一VOL名が存在しない場合、新たなVOL名を管理情報テーブル133aに記録する。
テープ装置100は、SPFコマンドでデータを読み込むとHDRであるため、バイトカウントが80バイトであることを確認し、データバッファ134のHDR名を管理情報テーブル133aに記憶する。
テープ装置100は、SPFコマンドでHDR後方のTMを読み取ると管理情報テーブル133aのアドレスx列をインクリメントし、処理バイトカウントを記憶するアドレスとする。テープ装置100は、ファイルデータの読込みを示す状態フラグ22をセットする。
テープ装置100は、ファイルデータAに対してSPFコマンドを発行すると、データブロックのリードを、TMを読み込むまで処理バイトカウントを加算する。テープ装置100は、TMを読み込むと処理バイトカウントを管理情報テーブル133aに記憶し、同アドレスx列をインクリメントし、次のHDR名のアドレスに位置付ける。テープ装置100は、状態フラグを23に変更する。
テープ装置100は、EOF後方のTMをSPFコマンドでリードすると、状態フラグを24に変更し、以下手順で現ヘッド位置の未記録容量を求め管理情報テーブル133aに記録する。例えば、テープ装置100は、現管理情報テーブル133aのアドレスまで記憶しているデータ量の和を求め、テーブルの総記録済容量との差を未記録容量に加算(ファイル削除後の未記録容量)し、現ヘッド位置の未記録容量を求める。
テープ装置100は、EOF後方2個目のTMをRD及びBSPコマンドで読み込むと状態フラグを25、そして24に変更する。
テープ装置100は、コマンドシーケンス8eに従って、ファイルデータBの書込みを以下の処理で実行する。テープ装置100は、最初のWTコマンドを受信すると、バイトカウントが80であると判定し、EOF後のHDRライト処理を行う。テープ装置100は、状態フラグ24を11に変更する。なお、以降のコマンド処理は、図7に示すコマンドシーケンス7cによるファイル追加処理と同様の処理であるため説明を省略する。なお、ファイル追加処理実行後のヘッド位置8fは、TMの後ろに位置する。
(ファイル追加)
図9は、ファイル追加処理の処理動作の一例を示す図である。なお、ここでは、実行前のファイルデータA及びファイルデータBが存在するフォーマットに対して、同図ヘッド位置9aから、ファイルデータBの第1、第2ブロックを残し、4個のブロックを新規に追加更新する場合を例にする。処理実行前のヘッド位置9aは、VOLの前方に位置する。
テープ装置100は、コマンドシーケンス9bに従って、ファイルデータBのHDR先頭ブロックに位置づける。テープ装置100は、状態フラグ24では、現管理情報テーブル133aのアドレスまでに記憶しているデータ量の和を求め、テーブルの総記録済容量との差を未記録容量に加算し、現ヘッド位置での未記録容量を求める。なお、コマンドシーケンス9b実行後のヘッド位置9cは、TMの後ろに位置する。
テープ装置100は、ホストからファイルデータBの更新処理のためのコマンドシーケンス9dに従って、ファイルデータBの変更データの書込みを以下の処理で実行する。テープ装置100は、RDコマンド9eを実行すると、EOF後方のHDR直前である状態フラグ24により、HDR名を管理情報テーブル133aに記憶する。
テープ装置100は、次のSPFコマンドでは管理情報テーブル133aのアドレスx列をインクリメントし、処理バイトカウントのアドレスとする。状態フラグは21から22に変更する。テープ装置100は、ファイルデータBの先頭から2ブロックを読み取り、処理バイトカウントを加算する。
テープ装置100は、ファイルデータBの先頭から3ブロック目から4ブロックを新規データのライトを実行し、状態フラグを12に変更し、処理バイトカウントをRDコマンドの処理バイトカウントに続き加算する。なお、ファイルデータBの後方のWTMコマンド以降は、図7に示すコマンドシーケンス7cによるファイル追加処理と同様の処理であるため説明を省略する。また、ファイル追加処理実行後のヘッド位置9fは、TMの後ろに位置する。
(ファイル削除)
図10は、ファイル削除処理の処理動作の一例を示す図である。なお、ここでは、実行前のファイルデータA及びファイルデータBが存在するフォーマットに対して、同図ヘッド位置10aから、ファイルデータBを削除する場合を例にする。処理実行前のヘッド位置10aは、VOLの前方に位置する。
テープ装置100は、コマンドシーケンス10bに従って、ファイルデータBのHDR先頭にヘッド位置10cを位置付ける。テープ装置100は、ファイルデータBのHDRのRDコマンド10dを実行すると状態フラグを21に変更し、BSPコマンドを実行するとEOF後方のHDR直前である状態フラグ24に変更する。
テープ装置100は、状態フラグ24になると現管理情報テーブル133aのアドレスまでに記憶しているデータ量の和を求め、テーブルの総記録済容量との差を未記録容量に加算(ファイル削除後の未記録容量)し、現ヘッド位置での未記録容量を求める。
テープ装置100は、コマンドシーケンス10eのWTMコマンドを実行して、ファイルデータAのEOF後方にTMを1個新たに追加し、ファイルを削除する。処理は以下となる。
テープ装置100は、WTMコマンド実行時にファイルデータの終わりを示す状態フラグ25に変更し、記録済のテープ長を示す記録済物理位置をCM121bから読み出し、記録済物理位置と総記録済容量とから、書込み済テープ長あたりの記録済量を算出する。そして、テープ装置100は、未記録物理領域と記録済量とから、未記録容量を算出する。テープ装置100は、総記録済容量と未記録容量を管理情報テーブル133aに記録する。また、テープ装置100は、ファイルデータの終わりのため、管理情報テーブル133aのテーブルのHDRとデータ量の削除処理を実行する。
(ヘッド位置付け)
図11は、ヘッド位置付け処理の処理動作の一例を示す図である。なお、ここでは、実行前のファイルデータA及びファイルデータBが存在するフォーマットに対して、同図ヘッド位置11aから、ファイルデータBのHDRにヘッド位置11bを位置付ける場合、ホストから発行される一般的なコマンド実行例による処理を示す。また、ここでは、ファイルデータBのHDRを読み取れるまで、全てRDコマンドで行い、ファイルデータBのHDRが読み取れたら、BSPコマンドを実行する例を示す。
テープ装置100は、RDコマンド11cでバイトカウントが80バイトでデータバッファ134のデータがVOLの場合、状態フラグ20をセットし、当該VOL名と同一のVOL名が管理情報テーブル133aに存在するか否かを判定し、管理情報テーブル133aのアドレスy列を決定する。テープ装置100は、当該VOL名と同一のVOL名が存在しない場合、新たなVOL名を管理情報テーブル133aに記録する。
テープ装置100は、VOLを読込み後のRDコマンドはHDR名を読み込むため、バイトカウントが80バイトであることを確認後、状態フラグ21をセットし、HDR名を管理情報テーブル133aに記憶する。
テープ装置100は、HDR後方のTMを読み込むと、ファイルデータAの処理バイトカウント記憶のための管理情報テーブル133aにアドレスx列をインクリメントする。テープ装置100は、ファイルデータAへのRDコマンド実行は処理バイトカウントを加算する。
テープ装置100は、ファイルデータ後方のTMをRDコマンドで検出すると、管理情報テーブル133aに処理バイトカウントを記憶し、管理情報テーブル133aのアドレスをインクリメントし、次のHDR名のアドレスに位置づける。テープ装置100は、EOF後方のTMをRDコマンドで検出し、EOF後方のHDR直前である状態フラグを24に変更する。テープ装置100は、アドレスx列をインクリメントまたはデクリメントしない。
テープ装置100は、状態フラグ24に変更すると、現管理情報テーブル133aのアドレスまでに記憶しているデータ量の和を求め、テーブルの総記録済容量との差を未記録容量に加算(ファイル削除後の未記録容量)し、現ヘッド位置での未記録容量を求める。
テープ装置100は、次のRDコマンドはHDRの読み込みのため、バイトカウントが80バイトであることを確認後、状態フラグ21をセットし、HDR名を管理情報テーブル133aに記憶する。テープ装置100は、BSPコマンドはブロックのバックリード処理のみで、管理情報テーブル133aのアドレスはインクリメントまたはデクリメントしない。
(ヘッド位置付け)
図12は、ヘッド位置付け処理の処理動作の一例を示す図である。なお、ここでは、図11と同様に、実行前のファイルデータA及びファイルデータBが存在するフォーマットに対して、同図ヘッド位置12aから、ファイルデータBのHDRにヘッド位置12bを位置付ける場合、ホストから発行される一般的なコマンド実行例による処理を示す。なお、TMにSPFコマンドを実行する以外の発行コマンドは、図11と同じ処理で行う。以下にSPFコマンド実行時の処理を記載する。
テープ装置100は、HDR後方のTMにSPFコマンドを実行すると以下の処理を実行する。テープ装置100は、HDRを読込んだ後、TM読込み、管理情報テーブル133aのアドレスをインクリメントし、処理バイトカウントを記憶するアドレスに位置付ける。
テープ装置100は、ファイルデータA後方のTMにSPFコマンドを実行すると以下の処理を実行する。テープ装置100は、管理情報テーブル133aに処理バイトカウントを記憶し、管理情報テーブル133aのアドレスをインクリメントし、次のHDR名のアドレスに位置付ける。
テープ装置100は、EOF後方のTMにSPFコマンドを実行すると以下の処理を実行する。テープ装置100は、EOF後方のTMを示す状態フラグを24に変更する。なお、テープ装置100は、管理情報テーブル133aのアドレスはインクリメントまたはデクリメントしない。
テープ装置100は、図11で説明したのと同様の方法で、現ヘッド位置での未記録容量を求める。テープ装置100は、ファイルデータBのHDRのRDコマンドは、HDR名を管理情報テーブル133aに記憶する。
テープ装置100は、ファイルデータBのHDRのBSPコマンドは、EOF後方のTMを示す状態フラグを24に変更する。
(ヘッド位置付け)
図13は、ヘッド位置付け処理の処理動作の一例を示す図である。なお、ここでは、ヘッド位置13aをファイルデータB後方の2個のTM後方から、前方のファイルデータBのHDRであるヘッド位置13bに位置付ける場合、ホストから発行される一般的なコマンド例に対する処理を示す。なお、現行ヘッド位置13aは、読み込みまたは、書込みが完了しているものとする。
テープ装置100は、2個連続のTM部後方からBSPFコマンドを実行すると、EOF前方のTMを読み取る。ここで、テープ装置100は、ファイルデータBに入ると管理情報テーブル133aのアドレスをデクリメントし、処理バイトカウントを記憶するアドレスに位置付ける。
テープ装置100は、ファイルデータB前方のTMにBSPFコマンドを実行すると以下の処理を行う。テープ装置100は、管理情報テーブル133aのアドレスをマイナスし、HDR名のアドレスとする。テープ装置100は、HDR領域を示す状態フラグ21に変更する。
テープ装置100は、HDR前方のTMにBSPFコマンドを実行すると以下の処理を実行する。テープ装置100は、管理情報テーブル133aのアドレスは変更しない。テープ装置100は、EOF領域を示す状態フラグ23に変更する。
テープ装置100は、EOF後方のTMにSPFコマンドを実行すると以下の処理を実行する。テープ装置100は、EOF後方のTMを示す状態フラグ24に変更する。テープ装置100は、管理情報テーブル133aのアドレスは変更しない。そして、テープ装置100は、図11で説明したのと同様の方法で、現ヘッド位置での未記録容量を求める。
テープ装置100は、HDRブロックのRDコマンド、BSPコマンドの処理は図11で説明したのと同様の方法である。
[実施例1に係るテープ装置による処理手順]
次に図14から図21を用いて、実施例1に係るテープ装置による処理手順を説明する。ここでは、図14を用いてWTコマンド処理の処理手順を説明し、図15を用いてRDコマンド処理の処理手順を説明する。また、図16を用いてアイドル処理の処理手順を説明し、図17を用いてSPF/SPコマンド処理の処理手順を説明し、図18を用いてBSPF/BSPコマンド処理の処理手順を説明する。また、図19を用いてWTMコマンド処理の処理手順を説明し、図20を用いてRWDコマンド処理の処理手順を説明し、図21を用いてSDIAGコマンド処理の処理手順を説明する。
(WTコマンド処理)
図14は、実施例1に係るテープ装置によるWTコマンド処理の処理手順を示すフローチャートである。図14に示すように、テープ装置100は、WTコマンドを受信した場合、状態フラグが12または22であるか否かを判定する(ステップS101)。すなわち、テープ装置100は、ファイルデータの書込み状態やファイルデータの読込み状態であるか否かを判定する。
テープ装置100は、状態フラグが12または22ではないと判定した場合(ステップS101、No)、バイトカウントが80であるか否かを判定する(ステップS102)。すなわち、テープ装置100、VOL、HDR、EOFの書込みや読込み状態であるか否かを判定する。
ここで、テープ装置100は、状態フラグが12または22であると判定した場合(ステップS101、Yes)、またはバイトカウントが80ではないと判定した場合(ステップS102、No)、状態フラグを12にセットする(ステップS103)。
また、テープ装置100は、バイトカウントが80であると判定した場合(ステップS102、Yes)、状態フラグが10、14、20または24のいずれかであるか否かを判定する(ステップS104)。テープ装置100は、状態フラグが10、14、20または24のいずれでもないと判定した場合(ステップS104、No)、データバッファ134のデータがVOLであるか否かを判定する(ステップS105)。
テープ装置100は、データバッファ134のデータがVOLではないと判定した場合(ステップS105、No)、状態フラグを13にセットする(ステップS106)。一方、テープ装置100は、データバッファ134のデータがVOLであると判定した場合(ステップS105、Yes)、状態フラグを10にセットし、データバッファ134内のVOL名をメモリ135に退避する(ステップS107)。
テープ装置100は、状態フラグが10、14、20または24のいずかであると判定した場合(ステップS104、Yes)、状態フラグを11にセットし、データバッファ134内のHDR名をメモリ135に退避する(ステップS108)。
続いて、テープ装置100は、処理バイトカウントを加算する(ステップS109)。そして、テープ装置100は、ライト処理を実行する。例えば、テープ装置100は、データバッファ134からデータバッファ122へデータを送信する(ステップS110)。そして、テープ装置100は、ドライブ部120からエラー情報を採取する(ステップS111)。テープ装置100は、このステップS111の終了後、WTコマンド処理を終了する。
(RDコマンド処理)
図15は、実施例1に係るテープ装置によるRDコマンド処理の処理手順を示すフローチャートである。図15に示すように、テープ装置100は、RDコマンドを受信した場合、ドライブ部120から転送バイト数を獲得する(ステップS201)。そして、テープ装置100は、データバッファ134からホストへデータを転送する(ステップS202)。続いて、テープ装置100は、リードブロック番号が正しくインクリメントされているか判定する(ステップS203)。なお、リードブロック番号は、データの書込み時にハードウェアでブロックに番号を付加して書込まれる。そして、テープ装置100は、ドライブ部120からエラー情報を採取する(ステップS204)。
そして、テープ装置100は、状態フラグが22であるか否かを判定する(ステップS205)。すなわち、テープ装置100は、ファイルデータの読込み状態であるか否かを判定する。ここで、テープ装置100は、状態フラグが22ではないと判定した場合(ステップS205、No)、バイトカウントが80であるか否かを判定する(ステップS206)。
テープ装置100は、状態フラグが22であると判定した場合(ステップS205、Yes)、またはバイトカウントが80ではないと判定した場合(ステップS206、No)、TM検出判定処理を実行する(ステップS207)。なお、TM検出判定処理の詳細については後述する。
テープ装置100は、バイトカウントが80であると判定した場合(ステップS206、Yes)、状態フラグが20または24のいずれかであるか否かを判定する(ステップS208)。テープ装置100は、状態フラグが20または24のいずれでもないと判定した場合(ステップS208、No)、データバッファ134のデータがVOLであるか否かを判定する(ステップS209)。
テープ装置100は、データバッファ134のデータがVOLではないと判定した場合(ステップS209、No)、状態フラグを23にセットする(ステップS210)。一方、テープ装置100は、データバッファ134のデータがVOLであると判定した場合(ステップS209、Yes)、状態フラグを20にセットし、データバッファ134内のVOL名をメモリ135に退避する(ステップS211)。
テープ装置100は、状態フラグが20または24のいずかであると判定した場合(ステップS208、Yes)、状態フラグを21にセットし、データバッファ134内のHDR名をメモリ135に退避する(ステップS212)。
続いて、テープ装置100は、処理バイトカウントを加算し(ステップS213)、RDコマンド処理を終了する。
(アイドル処理)
図16は、実施例1に係るテープ装置によるアイドル処理の処理手順を示すフローチャートである。図16に示すように、テープ装置100は、各ホストコマンドを処理する(ステップS301)。そして、テープ装置100は、状態フラグが10〜15のいずれかであるか否かを判定する(ステップS302)。
テープ装置100は、状態フラグが10〜15のいずれかであると判定した場合(ステップS302、Yes)、状態フラグに基づいて、VOL処理、HDR処理、EOF処理のいずれかを実行する(ステップS303)。例えば、テープ装置100は、VOL処理として、退避済みのVOL名のy列を決定して、VOL名を管理情報テーブル133aに格納し、また、アドレスをインクリメントする。テープ装置100は、HDR処理として、HDR名を管理情報テーブル133aに格納する。
また、テープ装置100は、状態フラグが10〜15のいずれでもないと判定した場合(ステップS302、No)、あるいはステップS303の終了後、状態フラグが20〜25のいずれかであるか否かを判定する(ステップS304)。
テープ装置100は、状態フラグが20〜25のいずれかであると判定した場合(ステップS304、Yes)、状態フラグに基づいて、ステップS303と同様に、VOL処理、HDR処理、EOF処理のいずれかを実行する(ステップS305)。
テープ装置100は、状態フラグが20〜25のいずれでもないと判定した場合(ステップS304、No)、あるいは、ステップS305の終了後、以下の処理を実行する。すなわち、テープ装置100は、ホストとドライブ部120の割込みを監視し(ステップS306)、ホストのオンラインまたはオフラインを監視する(ステップS307)。
また、テープ装置100は、ホストからのコマンド処理、データの送信、データの受信、またはコマンドの解析処理を実行する(ステップS308)。そして、テープ装置100は、ホストコマンド終結処理やステイタス報告処理を実行する(ステップS309)。
また、テープ装置100は、ドライブ部120へコマンドコードを発行し(ステップS310)、ドライブ部120に対してデータの送信、データの受信を行う(ステップS311)。そして、テープ装置100は、ドライブ部120の状態を監視し(ステップS312)、ドライブ部120のコマンド終了を監視する(ステップS313)。ステップS313の終了後、テープ装置100は、アイドル処理を終了する。
(SPF/SPコマンド処理)
図17は、実施例1に係るテープ装置によるSPF/SPコマンド処理の処理手順を示すフローチャートである。図17に示すように、テープ装置100は、リードブロック番号が正しくインクリメントされているかを判定する(ステップS401)。そして、テープ装置100は、SPF/SPエラー情報をドライブ部120から採取する(ステップS402)。続いて、テープ装置100は、ドライブGO処理を実行する(ステップS403)。なお、ドライブGO処理とは、ドライブ部120に起動を指示することを示す。
テープ装置100は、ブロックのリードが終了したか否かを判定する(ステップS404)。ここで、テープ装置100は、ブロックのリードが終了していないと判定した場合(ステップS404、No)、リードが終了するまで判定処理を繰り返す。
テープ装置100は、ブロックのリードが終了したと判定した場合(ステップS404、Yes)、処理バイトカウントを積算する(ステップS405)。そして、テープ装置100は、RDコマンド処理を実行する(ステップS406)。例えば、テープ装置100は、図15に示したステップS201〜ステップS204の処理を実行する。続いて、テープ装置100は、アイドル処理を実行する(ステップS407)。例えば、テープ装置100は、図16に示したステップS306〜ステップS313の処理を実行する。そして、テープ装置100は、ステイタス報告処理を実行する(ステップS408)。
続いて、テープ装置100は、以下ステップS409からステップS419に示すTM検出判定処理を実行する。なお、この処理は、図15のステップS207のTM検出判定処理に対応する。例えば、テープ装置100は、TMを検出したか否かを判定する(ステップS409)。ここで、テープ装置100は、TMを検出したと判定した場合(ステップS409、Yes)、状態フラグが23であるか否かを判定する(ステップS410)。
テープ装置100は、状態フラグが23であると判定した場合(ステップS410、Yes)、状態フラグ24をセットする(ステップS411)。そして、テープ装置100は、処理バイト及び総記録済容量に処理バイトを加算した値を管理情報テーブル133aに記憶させて、処理バイトカウントをクリアする(ステップS412)。
テープ装置100は、管理情報テーブル133aにおける現在のアドレスまでのデータ量の和を算出して、総記録済み容量との差を未記録容量に加算し、現ヘッド位置での未記録容量を算出して管理情報テーブル133aに記録する(ステップS413)。テープ装置100は、ステップS413の終了後、SPF/SPコマンド処理を終了する。
テープ装置100は、状態フラグが23ではないと判定した場合(ステップS410、No)、状態フラグが21であるか否かを判定する(ステップS414)。テープ装置100は、状態フラグが21ではないと判定した場合(ステップS414、No)、状態フラグが22であるか否かを判定する(ステップS415)。ここで、テープ装置100は、状態フラグが22であると判定した場合(ステップS415、Yes)、処理バイトカウントを管理情報テーブル133aに記録し、処理バイトカウントをクリアする(ステップS416)。
一方、テープ装置100は、状態フラグが21であると判定した場合(ステップS414、Yes)、あるいはステップS416の終了後、以下の処理を実行する。すなわち、テープ装置100は、管理情報テーブル133aのアドレスをインクリメントし、状態フラグを現在の状態フラグに1を加算した状態フラグに遷移させ(ステップS417)、SPF/SPコマンド処理を終了する。
テープ装置100は、状態フラグが22ではないと判定した場合(ステップS415、No)、状態フラグが24であるか否かを判定する(ステップS418)。すなわち、テープ装置100は、TMが連続して2つ検出されたか否かを判定する。ここで、テープ装置100は、状態フラグが24であると判定した場合(ステップS418、Yes)、状態フラグを25にセットする(ステップS419)。テープ装置100は、ステップS419の終了後、SPF/SPコマンド処理を終了する。
テープ装置100は、TMを検出していないと判定した場合(ステップS409、No)、あるいは、状態フラグが24ではないと判定した場合(ステップS418、No)、SPF/SPコマンド処理を終了する。
(BSPF/BSPコマンド処理)
図18は、実施例1に係るテープ装置によるBSPF/BSPコマンド処理の処理手順を示すフローチャートである。図18に示すように、テープ装置100は、リードブロック番号が正しくデクリメントされているかを判定する(ステップS501)。そして、テープ装置100は、BSPF/BSPエラー情報をドライブ部120から採取する(ステップS502)。続いて、テープ装置100は、ドライブGO処理を実行する(ステップS503)。
テープ装置100は、ブロックのリードが終了したか否かを判定する(ステップS504)。ここで、テープ装置100は、ブロックのリードが終了していないと判定した場合(ステップS504、No)、リードが終了するまで判定処理を繰り返す。テープ装置100は、ブロックのリードが終了した場合(ステップS504、Yes)、ステイタス報告処理を実行する(ステップS505)。
続いて、テープ装置100は、TMを検出したか否かを判定する(ステップS506)。ここで、テープ装置100は、TMを検出したと判定した場合(ステップS506、Yes)、処理バイトカウントをクリアする(ステップS507)。
そして、テープ装置100は、状態フラグが11、21、14または24のいずれかであるか否かを判定する(ステップS508)。テープ装置100は、状態フラグが11、21、14または24のいずれかであると判定した場合(ステップS508、Yes)、状態フラグ23をセットし(ステップS509)、BSPF/BSPコマンド処理を終了する。
テープ装置100は、状態フラグが11、21、14または24のいずれかでもないと判定した場合(ステップS508、No)、状態フラグを現在の状態フラグから1を減算した状態フラグに遷移させる(ステップS510)。続いて、テープ装置100は、状態フラグが13、14、23または24のいずれかであるか否かを判定する(ステップS511)。
テープ装置100は、状態フラグが13、14、23または24のいずれかであると判定した場合(ステップS511、Yes)、BSPF/BSPコマンド処理を終了する。一方、テープ装置100は、状態フラグが13、14、23または24のいずれかでもないと判定した場合(ステップS511、No)、管理情報テーブル133aのアドレスをデクリメントし(ステップS512)、BSPF/BSPコマンド処理を終了する。
テープ装置100は、TMを検出していないと判定した場合(ステップS506、No)、状態フラグが21であるか否かを判定する(ステップS513)。ここで、テープ装置100は、状態フラグが21ではないと判定した場合(ステップS513、No)、BSPF/BSPコマンド処理を終了する。
テープ装置100は、状態フラグが21であると判定した場合(ステップS513、Yes)、状態フラグ24をセットする(ステップS514)。そして、テープ装置100は、管理情報テーブル133aにおける現在のアドレスまでのデータ量の和を算出して、総記録済み容量との差を未記録容量に加算し、現ヘッド位置での未記録容量を算出して管理情報テーブル133aに記録する(ステップS515)。テープ装置100は、このステップS515の処理の終了後、BSPF/BSPコマンド処理を終了する。
(WTMコマンド処理)
図19は、実施例1に係るテープ装置によるWTMコマンド処理の処理手順を示すフローチャートである。図19に示すように、テープ装置100は、リードブロック番号のインクリメント処理を実行する(ステップS601)。そして、テープ装置100は、WTMエラー情報をドライブ部120から採取する(ステップS602)。なお、このステップS601及びステップS602の処理は、WTM処理である。
続いて、テープ装置100は、状態フラグが23または13のいずれかであるか否かを判定する(ステップS603)。テープ装置100は、状態フラグが23または13のいずれかであると判定した場合(ステップS603、Yes)、状態フラグ14をセットする(ステップS604)。続いて、テープ装置100は、処理バイト及び総記録済容量に処理バイトを加算した値を管理情報テーブル133aに記憶させて、処理バイトカウントをクリアする(ステップS605)。
そして、テープ装置100は、CM情報の記録済物理位置を読込み、未記録容量を算出し、算出した未記録容量を管理情報テーブル133aに記録する(ステップS606)。例えば、テープ装置100は、CM情報の記録済物理位置から記録済みテープ長あたりの記録済み量を算出し、未記録物理長と、記録済み量とから未記録容量を求める。なお、ここでいう、未記録容量とは、更に媒体に記録可能な容量である。テープ装置100は、このステップS606の処理の終了後、WTMコマンド処理を終了する。
テープ装置100は、状態フラグが23または13のいずれでもないと判定した場合(ステップS603、No)、状態フラグを現在の状態フラグから1加算した状態フラグに遷移させる(ステップS607)。そして、テープ装置100は、状態フラグが12であるか否かを判定する(ステップS608)。
テープ装置100は、状態フラグが12ではないと判定した場合(ステップS608、No)、状態フラグが13であるか否かを判定する(ステップS609)。ここで、テープ装置100は、状態フラグが13であると判定した場合(ステップS609、Yes)、処理バイトカウントを管理情報テーブル133aに記録し、処理バイトカウントをクリアする(ステップS610)。
テープ装置100は、状態フラグが12であると判定した場合(ステップS608、Yes)、あるいは、ステップS610の処理の終了後、管理情報テーブルのアドレスをインクリメントし(ステップS611)、WTMコマンド処理を終了する。
テープ装置100は、状態フラグが13ではないと判定した場合(ステップS609、No)、状態フラグが15または25のいずれかであるか否かを判定する(ステップS612)。ここで、テープ装置100は、状態フラグが15または25のいずれでもないと判定した場合(ステップS612、No)、WTMコマンド処理を終了する。
一方、テープ装置100は、状態フラグが15または25のいずれかであると判定した場合(ステップS612、Yes)、CM情報の記録済物理位置を読込み、未記録容量を算出し、算出した未記録容量を管理情報テーブル133aに記録する(ステップS613)。例えば、テープ装置100は、CM情報の記録済物理位置から記録済みテープ長あたりの記録済み量を算出し、未記録物理長と、記録済み量とから未記録容量を求める。なお、ここでいう、未記録容量とは、更に媒体に記録可能な容量である。
そして、テープ装置100は、管理情報テーブル133aのHDR名、データ量を削除する(ステップS614)。例えば、テープ装置100は、管理情報テーブル133aのHDR名、データ量に対応付けてALL0を記録する。テープ装置100は、このステップS614の処理が終了後、WTMコマンド処理を終了する。
(RWDコマンド処理)
図20は、実施例1に係るテープ装置によるRWDコマンド処理の処理手順を示すフローチャートである。図20に示すように、テープ装置100は、リードブロック番号をリセットする(ステップS701)。そして、テープ装置100は、書込み量、読込み量に関する項目をクリアする(ステップS702)。すなわち、テープ装置100は、処理バイトカウントと、状態フラグとをクリアする。この処理の終了後、テープ装置100は、RWDコマンド処理を終了する。
(SDIAGコマンド処理)
図21は、実施例1に係るテープ装置によるSDIAGコマンド処理の処理手順を示すフローチャートである。図21に示すように、テープ装置100は、診断項目の解析処理を実行する(ステップS801)。そして、テープ装置100は、診断データをドライブ部120に送信し(ステップS802)、診断を開始する(ステップS803)。
テープ装置100は、記録済みデータ量と未記録容量とを要求されたか否かを判定する(ステップS804)。ここで、テープ装置100は、記録済みデータ量と未記録容量とを要求されたと判定した場合(ステップS804、Yes)、VOL名を検索する(ステップS805)。なお、テープ装置100は、記録済みデータ量と未記録容量とを要求されていないと判定した場合(ステップS804、No)、SDIAGコマンド処理を終了する。
テープ装置100は、VOL名を管理情報テーブル133aから検索済みであるか否かを判定する(ステップS806)。テープ装置100は、VOL名を管理情報テーブル133aから検索済みであると判定した場合(ステップS806、Yes)、HDR名の転送を準備し、データ量をEBSDIC変換する(ステップS807)。なお、テープ装置100は、VOL名を管理情報テーブル133aから検索済みではないと判定した場合(ステップS806、No)、ステップS805に移行する。
続いて、テープ装置100は、データをホストに転送し(ステップS808)、全てのデータを転送したか否かを判定する(ステップS809)。ここで、テープ装置100は、全てのデータを転送していないと判定した場合(ステップS809、No)、ステップS807に移行する。
テープ装置100は、全てのデータをホストに転送したと判定した場合(ステップS809、Yes)、総記録済容量と、未記録容量をEBSDIC変換し(ステップS810)、データをホストに転送する(ステップS811)。
テープ装置100は、指定されたVOLに対する処理が終了したか否かを判定し(ステップS812)、指定されたVOLに対する処理が終了していない場合には(ステップS812、No)、ステップS805に移行する。
一方、テープ装置100は、指定されたVOLに対する処理が終了した場合(ステップS812、Yes)、SDIAGコマンド処理を終了する。
[実施例1の効果]
上述してきたように、実施例1に係るテープ装置100は、コマンドを実行する毎に処理したデータ容量を計測し、テープの物理位置と処理したデータ容量の総計とから算出したテープ残量を記憶する。この結果、実施例1に係るテープ装置100は、テープをドライブにロードせずにテープ残量を効率的に管理することができる。
例えば、実施例1に係るテープ装置100は、カートリッジ媒体をドライブ121にロードしなくても管理情報テーブル133aに記憶している該当ボリュームの記録済データ量と未記録データ量をホストが認識可能である。このため、カートリッジ媒体の未記録データ量を管理するための時間を要さない。
また、実施例1に係るテープ装置100は、カートリッジ媒体にファイルデータを書込み中にカートリッジ媒体の書込み不良等による未記録データ量が減少する場合、これから書込もうとするデータが未記録物理領域に収まるか否か判断できる。
ところで、本発明は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例2では、本発明に含まれる他の実施例について説明する。
(システム構成等)
本実施例において説明した各処理のうち自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文章中や図面中で示した処理手順、制御手順、具体的名称については、特記する場合を除いて任意に変更することができる。
また、図示した各構成部は、機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。例えば、テープ装置100では、算出部205と更新部206とが統合されてもよい。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
100 テープ装置
120 ドライブ部
121 ドライブ
121a カートリッジ媒体
121b CM
121c DV/RV
122 データバッファ
123 CPU
130 制御部
131 ホストインターフェース
132 ドライブインターフェース
133 フラッシュメモリ
133a 管理情報テーブル
134 データバッファ
135 メモリ
136 CPU
200 機能部
201 コマンド処理部
202 判定部
203 生成部
204 計測部
205 算出部
206 更新部
207 送信部

Claims (7)

  1. 媒体の識別子と、前記媒体に更に記録可能なデータ容量とを対応付けた管理情報を記憶する記憶部と、
    入出力命令の実行のたびに、前記媒体に書込んだデータ容量または前記媒体から読出したデータ容量を計測する計測部と、
    前記計測部により計測されたデータ容量の総計から前記媒体に記録済みのデータ容量を算出するとともに、前記媒体の開始位置から前記入出力命令の実行により書込みまたは読出されたデータの終了位置までの媒体の長さを示す記録済みの媒体長を、前記媒体をマウントしているドライブから取得し、前記記録済みのデータ容量と前記記録済みの媒体長とに基づいて、前記媒体に更に記録可能なデータ容量を算出する算出部と、
    前記算出部により算出された前記媒体に更に記録可能なデータ容量で、前記媒体の識別子に対応する管理情報を更新する更新部と
    を有することを特徴とするテープ装置。
  2. 前記算出部は、入出力命令を実行して、データの書込みが終了したことを示す終了情報を書込みまたは読出した場合に、前記記録済みのデータ容量と前記記録済みの媒体長とから、媒体の長さあたりの記録済みデータ容量を算出し、算出した前記媒体の長さあたりの記録済みデータ容量と前記媒体に未記録の媒体の長さとから前記媒体に更に記録可能なデータ容量を算出することを特徴とする請求項1に記載のテープ装置。
  3. 媒体がマウントされた時、前記媒体の識別子を含んだ情報の有無に基づいて前記媒体が未使用であるか否かを判定する判定部と、
    前記判定部により前記媒体が未使用であると判定された場合、前記媒体の識別子と、前記媒体に更に記録可能なデータ容量とを対応付けた管理情報を生成する生成部と
    を更に有することを特徴とする請求項1または2に記載のテープ装置。
  4. 前記判定部は、前記媒体が未使用ではないと判定した場合、前記媒体から媒体の識別子を読出して、読出した媒体の識別子と一致する管理情報を検索し、
    前記更新部は、前記判定部による検索の結果、一致する管理情報が存在する場合、前記算出部により算出された前記媒体に更に記録可能なデータ容量で、前記管理情報を更新する
    ことを特徴とする請求項3に記載のテープ装置。
  5. 前記生成部は、前記判定部による検索の結果、前記管理情報が存在しない場合、前記媒体の識別子と、前記媒体に更に記録可能なデータ容量とを対応付けた管理情報を生成することを特徴とする請求項4に記載のテープ装置。
  6. 情報処理装置から前記管理情報の取得要求を受信した場合、前記記憶部から管理情報を読出して前記情報処理装置に送信する送信部を更に有することを特徴とする請求項1−5のいずれか一つに記載のテープ装置。
  7. テープ装置が、
    入出力命令の実行のたびに、媒体に書込んだデータ容量または前記媒体から読出したデータ容量を計測し、
    計測したデータ容量の総計から前記媒体に記録済みのデータ容量を算出するとともに、前記媒体の開始位置から前記入出力命令の実行により書込みまたは読出されたデータの終了位置までの媒体の長さを示す記録済みの媒体長を、前記媒体をマウントしているドライブから取得し、前記記録済みのデータ容量と前記記録済みの媒体長とに基づいて、前記媒体に更に記録可能なデータ容量を算出し、
    算出した前記媒体に更に記録可能なデータ容量で、前記媒体の識別子に対応する管理情報を更新する
    各処理を含んだことを特徴とするテープ装置の制御方法。
JP2012062652A 2012-03-19 2012-03-19 テープ装置及びテープ装置の制御方法 Expired - Fee Related JP5888037B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012062652A JP5888037B2 (ja) 2012-03-19 2012-03-19 テープ装置及びテープ装置の制御方法
US13/747,555 US8947990B2 (en) 2012-03-19 2013-01-23 Tape device and method of controlling tape device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012062652A JP5888037B2 (ja) 2012-03-19 2012-03-19 テープ装置及びテープ装置の制御方法

Publications (2)

Publication Number Publication Date
JP2013196363A JP2013196363A (ja) 2013-09-30
JP5888037B2 true JP5888037B2 (ja) 2016-03-16

Family

ID=49157493

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012062652A Expired - Fee Related JP5888037B2 (ja) 2012-03-19 2012-03-19 テープ装置及びテープ装置の制御方法

Country Status (2)

Country Link
US (1) US8947990B2 (ja)
JP (1) JP5888037B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7179794B2 (ja) * 2020-03-03 2022-11-29 株式会社東芝 磁気ディスク装置、および磁気ディスク装置のメモリ管理方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56137565A (en) * 1980-03-31 1981-10-27 Fujitsu Ltd Managing system of magnetic tape
JP3160413B2 (ja) * 1993-02-22 2001-04-25 アルプス電気株式会社 磁気テープ装置の記録容量算出方法
US5502694A (en) * 1994-07-22 1996-03-26 Kwoh; Daniel S. Method and apparatus for compressed data transmission
JPH08191427A (ja) * 1995-01-09 1996-07-23 Hitachi Ltd 情報記録再生装置
US5634032A (en) * 1995-06-07 1997-05-27 Haddock; Fred T. Dynamic digital identification of storage media
WO1997017652A1 (fr) 1995-11-10 1997-05-15 Sony Corporation Appareil et procede de traitement d'informations
JP3932927B2 (ja) * 2002-02-20 2007-06-20 ヤマハ株式会社 光ディスク記録方法、及び光ディスク記録装置
JP2003323266A (ja) * 2002-05-02 2003-11-14 Matsushita Electric Ind Co Ltd 磁気テープライブラリー装置
US6915374B2 (en) * 2003-02-19 2005-07-05 Dell Products L.P. Method and system for setting optical drive write strategies
US20040160873A1 (en) * 2003-02-19 2004-08-19 Pereira David M. Method and system for creating an optical drive write strategy for an unknown optical media
US7301857B2 (en) * 2003-08-01 2007-11-27 Chrysler Llc Media player including a resume function
US20050193235A1 (en) * 2003-08-05 2005-09-01 Miklos Sandorfi Emulated storage system
US20050030860A1 (en) * 2003-08-08 2005-02-10 Gage Donald B. Method and system for optical medium power calibration
JP4306525B2 (ja) * 2004-04-16 2009-08-05 ソニー株式会社 情報処理装置および方法、並びにプログラム
JP2006065896A (ja) * 2004-08-24 2006-03-09 Victor Co Of Japan Ltd 記録再生装置
US9021197B2 (en) * 2005-06-24 2015-04-28 Hewlett-Packard Development Company, L.P. Drive indicating mechanism for removable media
JP4830433B2 (ja) 2005-09-30 2011-12-07 ソニー株式会社 テレビジョン受信機および残容量管理方法
JP4683092B2 (ja) * 2008-08-18 2011-05-11 ソニー株式会社 情報処理装置、およびデータ処理方法、並びにプログラム
US8332686B2 (en) * 2009-04-16 2012-12-11 Spectra Logic Corp. Tape data recovery
US20100280651A1 (en) * 2009-04-30 2010-11-04 Sun Microsystems, Inc. Data cartridge and tape library including flash memory
US8280855B2 (en) * 2009-11-04 2012-10-02 International Business Machines Corporation Extended logical worm data integrity protection with unique worm identifier in header and database
JP2013069370A (ja) * 2011-09-22 2013-04-18 Hitachi-Lg Data Storage Inc データライブラリ装置、データアーカイブシステム、サーバ

Also Published As

Publication number Publication date
US20130242713A1 (en) 2013-09-19
JP2013196363A (ja) 2013-09-30
US8947990B2 (en) 2015-02-03

Similar Documents

Publication Publication Date Title
US7732700B2 (en) Playback device, contents selecting method, contents distribution system, information processing device, contents transfer method, and storing medium
JP5954751B2 (ja) テープ上のデータをロールバックする方法及びファイルシステム
JP6242326B2 (ja) 情報提供システム、情報提供方法およびプログラム
US8458391B2 (en) Library apparatus and method for controlling the same
US9082431B2 (en) Data archive system and quality inspection method
JP2012094220A (ja) 書込みレコードの重複を排除する記憶装置、及びその書込み方法
US20150046645A1 (en) Method, Storage System, and Program for Spanning Single File Across Plurality of Tape Media
JP2004302505A (ja) データ移行支援システム、プログラム、装置および取外し可能な記憶装置またはデータ移行が完了した記憶媒体の識別方法
US20170125061A1 (en) Method of managing, writing, and reading file on tape
TWI425375B (zh) 伺服器檔案管理之方法
JP2006065999A (ja) 磁気テープ制御装置、方法及びプログラム
JP5888037B2 (ja) テープ装置及びテープ装置の制御方法
US8656094B2 (en) Locating host data records on a physical stacked volume
WO2004112026A1 (ja) 情報処理装置および方法、プログラム、並びに記録媒体
US9685179B2 (en) Tape device and controller thereof
US20150199980A1 (en) Tape apparatus and write processing method
JP5394394B2 (ja) ファイルシステムにおけるファイル管理・編集方法及び装置
JP4948809B2 (ja) 情報処理装置、新計算機の機能検証支援方法、及びコンピュータプログラム
US20100165503A1 (en) Method and apparatus for recording and reading information
JP2012043523A (ja) 取り外し可能なメディアドライブのための診断システム
JP2019067186A (ja) ストレージ制御装置およびプログラム
EP1652186B1 (en) Method for fast reconstruction of content information
JP3641254B2 (ja) コンピュータシステム
JP2010066941A (ja) データ復旧方法及びデータ復旧装置
KR100414616B1 (ko) 파일정보의 별도 저장을 통한 백업된 파일정보의 고속독출 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160201

R150 Certificate of patent or registration of utility model

Ref document number: 5888037

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees