JP6089856B2 - 仮想テープ装置、テープ制御装置、およびテープ制御方法 - Google Patents

仮想テープ装置、テープ制御装置、およびテープ制御方法 Download PDF

Info

Publication number
JP6089856B2
JP6089856B2 JP2013064010A JP2013064010A JP6089856B2 JP 6089856 B2 JP6089856 B2 JP 6089856B2 JP 2013064010 A JP2013064010 A JP 2013064010A JP 2013064010 A JP2013064010 A JP 2013064010A JP 6089856 B2 JP6089856 B2 JP 6089856B2
Authority
JP
Japan
Prior art keywords
tape
block
bid
control unit
error
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
JP2013064010A
Other languages
English (en)
Other versions
JP2014191412A (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 JP2013064010A priority Critical patent/JP6089856B2/ja
Priority to US14/205,503 priority patent/US20140298084A1/en
Priority to EP14160114.6A priority patent/EP2784658A1/en
Publication of JP2014191412A publication Critical patent/JP2014191412A/ja
Application granted granted Critical
Publication of JP6089856B2 publication Critical patent/JP6089856B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0686Libraries, e.g. tape libraries, jukebox

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Description

本発明は、仮想テープ装置、テープ制御装置、およびテープ制御方法に関する。
データのバックアップに用いられる大容量の記憶装置として、磁気テープ装置や仮想テープ装置がある。
磁気テープ装置や仮想テープ装置で使われるテープフォーマットは、ISO、ANSI、JISなどで標準化されている。
例えば、磁気テープ装置や仮想テープ装置で使われる36トラックテープフォーマットは、JIS X6135、ISO/IEC 14251、ファイル構成は、JIS X601に記載されている。
仮想テープ装置や磁気テープ装置で使われる36トラックテープフォーマットには、下記のようなブロックが含まれている。
Volume Block(VOL):ボリューム名、所有者などが記述された80バイトのブロック
Header 1 Block(HDR1):ファイル名、更新日などが記述された80バイトのブロック
Header 2 Block(HDR2):レコード形式、ブロック長などが記述された80バイトのブロック
Data Block(D1,…,DN):データが記述された可変調のブロック
Tape Mark Block(TM):ファイルの区切りを示すマークブロック
End of File 1 Block(EOF1):ファイル名、更新日などが記述された80バイトのブロック
End of File 2 Block(EOF2):レコード形式、ブロック長などが書かれている80バイトのブロック
End of Data Block(EOD):テープボリュームの最後を示すマークブロック。
また、テープボリュームの各ブロックには、磁気テープ上での位置を識別するためのブロック識別子(BID)が付加されている。
従来のBIDは、先頭のブロックに0が割り当てられ、ブロック毎に1ずつ増加する。
磁気テープ装置は、磁気テープのデータの読み書きを行う場合、BIDを用いて読み書きを行うブロックの位置を磁気テープ上から検出する。
図1は、シングルファイルのテープフォーマットとBIDを示す図である。
図1の上部はテープボリュームのブロックを示し、下部は各ブロックに付加されるBIDを示す。
図1は、1ファイル(File-1)が含まれているテープボリュームを示す。
シングルファイルのテープフォーマットでは、先頭にVOLが配置され、次にFile-1の各ブロック(HDR1,HDR2,TM,D1,D2,…,DN,TM,EOF1,EOF2,TM)が配置され、最後にTMとEODが配置されている。
図1の下部に示すように、BIDは、先頭のVOLに0が割り当てられ、ブロックごとに1ずつ増加している。
図2は、マルチファイルのテープフォーマットとBIDを示す図である。
図2の上部はテープボリュームのブロックを示し、下部は各ブロックに付加されるBIDを示す。
図2は、File-1とFile-2の2ファイルが含まれているテープボリュームを示す。
マルチファイルのテープフォーマットでは、先頭にVOLが配置され、次にFile-1の各ブロック(HDR1,HDR2,TM,D1,D2,…,DN,TM,EOF1,EOF2,TM)が配置され、File-1の最後のTMの後ろにFile-2の各ブロック(HDR1,HDR2,TM,D1,D2,…,DN,TM,EOF1,EOF2,TM)が配置され、最後にTMとEODが配置されている。
また、図2の下部に示すように、BIDは、先頭のVOLに0が割り当てられ、ブロック毎に1ずつ増加している。
特開平5−241736号公報 特開平6−302112号公報 国際公開第2012/042661号
BIDはテープフォーマット情報として定義され、テープドライブがテープへ書き込めるブロック数(BID総数)、ブロックサイズにより、ホスト側で認識できるテープの最大容量が決定される。
例えば、仮想テープ装置で扱われるテープフォーマットでは、従来の36トラック磁気テープのテープフォーマットが使用される。36トラックテープフォーマットではBIDのデータ領域は22ビット(3FFFFFh)で定義されており、これらを制御するホストのオペレーティングシステム(OS)もBIDを22ビットとしてテープ容量を管理している。
例えば1ブロック32kbのブロックサイズで書き込みが行われると、ホストが管理できるテープボリューム容量は137GB(32Kb x 4M(22bit))となり、ホストは137GBより大きいテープボリュームを管理できない。
近年記録方式の改良により、テープの一巻当たりの記録容量は200GB、400GB、800GBなど137GBを超える大容量のものが主流なって来ている。これらは新テープフォーマットにより、BIDのデータ領域は32ビット(FFFFFFFFh)で定義されており、例えば1ブロック32kbのブロックサイズで書き込みが行われると、管理できるボリューム容量は、137TB (32Kb x 4G(32bit))となる。
BIDが22ビット、1ブロックのサイズが32kbである場合に、36トラックテープフォーマットを使用するシステムでは、以下のような問題がある。
(1)137GBの超えるテープボリュームを仮想テープ装置の36トラックテープフォーマットでコピーすると複数巻のテープに分かれてしまう。
(2)仮想テープ装置でExport(仮想ボリュームを実テープに出力し、仮想テープ装置外に取り出す処理)すると、大容量(例えば、800GB以上)の実テープに最大137GBのデータしか出力されず、大容量のテープの記憶領域を有効に活用できない。
(3)従来の36トラックテープを制御するOSを使用して、OSの管理できる容量を超えた位置(137GBを超えた領域)で書き込みエラーが発生した場合、エラーが発生した位置が特定できないため、ホストからのデータリカバリができない。
本発明の課題は、ホストが管理できるテープボリュームのサイズを増加させ、記録媒体の使用可能領域を増やすことである。
実施の形態の仮想テープ装置は、上位装置および磁気テープを有するテープライブラリ装置と接続し、仮想的なテープ装置のテープボリュームを格納する。
前記仮想テープ装置は、記憶部と、識別子制御部と、第1の制御部と、第2の制御部と、を備える。
前記記憶部は、複数のブロックを含む前記テープボリュームを格納する。
前記識別子制御部は、前記テープボリュームのブロック毎に番号が増加する第1の識別番号と、前記テープボリュームの先頭ブロックの次のブロック、ファイルの区切りを示すテープマーク、および前記テープマークの次のブロックのみで番号が増加する第2の識別番号とを、前記テープボリュームの各ブロックに付加する。
第1の制御部は、前記仮想テープ装置と前記上位装置との間で、前記第2の識別番号を用いて前記記憶部に格納される前記テープボリュームの読み書きを制御する。
前記第2の制御部は、前記テープボリュームと前記第1の識別番号を前記テープライブラリ装置に書き込み、前記第1の識別番号を用いて前記テープライブラリ装置を制御する。
実施の形態のテープ制御装置は、上位装置および磁気テープを有するテープライブラリ装置と接続し、テープボリュームを格納する。
前記テープ制御装置は、バッファと、識別子制御部と、第1の制御部と、第2の制御部と、を備える。
前記バッファは、複数のブロックを含む前記テープボリュームを格納する。
前記識別子制御部は、前記テープボリュームのブロック毎に番号が増加する第1の識別番号と、前記テープボリュームの先頭ブロックの次のブロック、ファイルの区切りを示すテープマーク、および前記テープマークの次のブロックのみで番号が増加する第2の識別番号とを、前記テープボリュームの各ブロックに付加する。
前記第1の制御部は、前記テープ制御装置と前記上位装置との間で、前記第2の識別番号を用いて前記バッファに格納される前記テープボリュームの読み書きを制御する。
前記第2の制御部は、前記テープボリュームと前記第1の識別番号を前記テープライブラリ装置に書き込み、前記第1の識別番号を用いて前記テープライブラリ装置を制御する。
実施の形態の仮想テープ装置およびテープ制御装置によれば、ホストが管理できるテープボリュームのサイズを増加させることでき、記録媒体の使用可能領域を増やすことである。
シングルファイルのテープフォーマットとBIDを示す図である。 マルチファイルのテープフォーマットとBIDを示す図である。 実施の形態に係るシングルファイルのテープフォーマット、BID、およびF-BIDを示す図である。 実施の形態に係るマルチファイルのテープフォーマット、BID、およびF-BIDを示す図である。 第1の実施の形態に係るシステムの構成図である。 管理テーブルの例を示す図である。 第1の実施の形態に係るホストのライト処理および更新処理のフローチャートである。 第1の実施の形態に係る仮想テープ装置のライト処理および更新処理のフローチャートである。 書き込みエラー検出前および書き込みエラー検出時のデータバッファのF-BIDを示す図である。 第1の実施の形態に係る書き込みエラー発生時のホストの処理を示す図である。 第1の実施の形態に係るエラーリカバリ処理の詳細なフローチャートである。 第1の実施の形態に係る仮想テープ装置のエラーリカバリ処理のフローチャートである。 エラー無し時、エラー発生時、およびエラーリカバリ後のデータバッファ上のF-BIDを示す図である。 第2の実施の形態に係るシステムの構成図である。 第2の実施の形態に係るホストのライト処理および更新処理のフローチャートである。 第2の実施の形態に係るテープ制御装置のライト処理および更新処理のフローチャートである。 書き込みエラー検出前および書き込みエラー検出時のデータバッファのF-BIDを示す図である。 第2の実施の形態に係る書き込みエラー発生時のホストの処理を示す図である。 第2の実施の形態に係るエラーリカバリ処理の詳細なフローチャートである。 第2の実施の形態に係る仮想テープ装置のエラーリカバリ処理のフローチャートである。
以下、図面を参照しながら実施の形態について説明する。
最初に、第1および第2の実施の形態で使用する新しいBID(以下、F-BIDと呼ぶ)の更新ルールについて説明する。
第1および第2の実施の形態では、テープボリュームの各ブロックに、BIDに加えてF-BIDを付加する。実施の形態においてBIDは32ビット、F-BIDはBIDより小さい22ビットとする。
上述のように従来のBIDは、ブロック毎に番号を1ずつ増加させている。
一方、実施の形態のF-BIDは、テープボリュームの先頭のブロック(VOL)に0を付加し、テープボリュームの先頭のブロックの次のブロック、テープマーク、およびテープマークの次のブロックのみで番号が1増加する。
図3は、実施の形態に係るシングルファイルのテープフォーマット、BID、およびF-BIDを示す図である。
図3の上段はシングルファイルのテープフォーマット、中段はBID、下段はF-BIDを示す。
シングルファイルのテープフォーマットおよびBIDについては、図1と同様であるので説明は省略する。
上述のF-BIDの更新ルールに基づいて、F-BIDを各ブロックに付加すると、図3の下段に示すようになる。
すなわち、VOLにF-BID=0、HDR1とHDR2にF-BID=1、HDR2の後ろのTMにF-BID=2、Data BlockにF-BID=3、Data Blockの後ろのTMにF-BID=4、EOF1とEOF2にF-BID=5、EOF2の後ろのTMにF-BID=6、TMの後ろのTMにF-BID=7、EODにF-BID=8がそれぞれ付加されている。
図3の下部に示すように、同一のファイル内のData Blockの各ブロックには、同じF-BID(=3)が付加されている。また、同一のファイル内のHDR1とHDR2には同じF-BID(=1)が付加されており、同一のファイル内のEOF1とEOF2には同じF-BID(=5)が付加されている。
図4は、実施の形態に係るマルチファイルのテープフォーマット、BID、およびF-BIDを示す図である。
図4の上段はマルチファイルのテープフォーマット、中段はBID、下段はF-BIDを示す。
マルチファイルのテープフォーマットおよびBIDについては、図2と同様であるので説明は省略する。
上述のF-BIDの更新ルールに基づいて、F-BIDを各ブロックに付加すると、図4の下段に示すようになる。
すなわち、VOLにF-BID=0が付加されている。また、File-1に関して、HDR1とHDR2にF-BID=1、HDR2の後ろのTMにF-BID=2、Data BlockにF-BID=3、Data Blockの後ろのTMにF-BID=4、EOF1とEOF2にF-BID=5、EOF2の後ろのTMにF-BID=6がそれぞれ付加されている。File-2に関して、HDR1とHDR2にF-BID=7、HDR2の後ろのTMにF-BID=8、Data BlockにF-BID=9、Data Blockの後ろのTMにF-BID=10、EOF1とEOF2にF-BID=11、EOF2の後ろのTMにF-BID=12がそれぞれ付加されている。また、File-2の最後のTMの後ろのTMにF-BID=13、EODにF-BID=14がそれぞれ付加されている。
(第1の実施の形態)
第1の実施の形態では、仮想テープ装置を用いた形態について説明する。
図5は、第1の実施の形態に係るシステムの構成図である。
第1の実施の形態のシステム101は、ホスト(上位装置)201、仮想テープ装置301、およびテープライブラリ(実テープ装置)401を備える。
ホスト201と仮想テープ装置301、仮想テープ装置301とテープライブラリ401は、それぞれ光ケーブルを介して接続されている。
第1の実施の形態のシステム101は、標準化された36トラックテープフォーマットを用いる。例えば、36トラックテープフォーマットは、JIS X6135、ISO/IEC 14251、ファイル構成は、JIS X601に記載されている。
ホスト201は、仮想テープ装置301からテープボリュームのデータを読み出す、または仮想テープ装置301に書き込みデータを送信する。ホスト201は、ブロックのテープ上の位置を示すF-BIDが記載されたF-BID情報を格納し、ホスト201のOSは、ブロックの読み書き時にはF-BIDを用いて、書き込み位置や読み出し位置を制御する。ホスト201は、仮想テープ装置301とファイバチャネルを用いて通信を行う。ホスト201は、例えば、サーバやパーソナルコンピュータ(PC)等の情報処理装置である。
仮想テープ装置301は、テープ運用をディスクアレイ装置上で仮想的に行う装置である。仮想テープ装置301は、仮想テープ装置301内に仮想的なテープ装置(ドライブ)を実現し、ホスト201には、通常のテープ装置と接続しているように見せる。テープボリュームがディスクアレイ装置上に配置されることにより、テープマウント、ロード、アンロードなどの機械的な動作を無くし、高速処理を図っている。
仮想テープ装置301は、Integrated Channel Processor(ICP)311、Integrated Device Processor(IDP)351、およびディスクアレイ装置391を備える。
ICP311は、ホスト201と接続し、ディスクアレイ装置391上のテープボリュームのデータの送受信の制御を行う。ICP311は、ディスクアレイ装置391上に仮想テープドライブの機能を実現する。
ICP311は、Central Processing Unit(CPU)321、メモリ331、およびファイバチャネル(FC)カード341−1、341−2を備える。
CPU321は、メモリ331からプログラムを読み出して実行し、各種処理を実行するプロセッサ(処理装置)である。
CPU321は、ホストIF制御部322、ディスクアレイ制御部324、ID制御部325、およびロボット制御部326を備える。
ホストIF制御部322は、ホスト201とのデータの送受信を制御する。ホストIF制御部322は、CPU321がホストIFドライバ332をメモリ331から読み出して実行することにより実現される。
ディスクアレイ制御部324は、ディスアレイ装置391を制御し、ディスアレイ装置391へデータの書き込みやディスアレイ装置391からのデータの読み出しを行う。詳細には、ディスアレイ装置391への書き込み時には、ディスクアレイ制御部324は、ディスアレイ装置391に書き込む前に、テープボリュームのブロックをデータバッファ333に書き込み、BIDおよびF-BIDがブロックに付加された後、テープボリュームのブロックをデータバッファ333から読み出してディスアレイ装置391に書き込む。ディスクアレイ制御部324は、22ビットのF-BIDを用いて、データバッファ333およびディスクアレイ装置393の読み書きの制御を行う。また、ディスクアレイ制御部324は、管理テーブル393の読み書きを行う。ディスクアレイ制御部324は、CPU321がディスクアレイドライバ334をメモリ331から読み出して実行することにより実現される。
ID制御部325は、F-BIDおよびBIDをテープボリュームの各ブロックに付加する(割り当てる)。ID制御部325は、CPU321がF-BID/BID制御プログラム335をメモリ331から読み出して実行することにより実現される。
ロボット制御部326は、ロボット411を制御する。ロボット制御部326は、CPU321がロボット制御ドライバ336をメモリ331から読み出して実行することにより実現される。
メモリ331は、データやプログラム等を格納する記憶装置である。メモリ331は、例えば、Random Access Memory(RAM)である。
メモリ331は、ホストIFドライバ332、データバッファ333、ディスクアレイドライバ334、F-BID/BID制御プログラム335、およびロボット制御ドライバ336を有する。
ホストIFドライバ332は、ホスト201とのデータの送受信を制御するプログラムである。
データバッファ333は、テープボリューム392のデータをディスクアレイ装置391に書き込む前にデータを一時的に格納する領域である。
ディスクアレイドライバ334は、ディスアレイ装置391を制御するプログラムである。
F-BID/BID制御プログラム335は、F-BIDおよびBIDをテープボリュームの各ブロックに付加する(割り当てる)プログラムである。第1の実施の形態では、F-BIDは22bit、BIDは32bitとする。
ロボット制御ドライバ336は、ロボット411を制御するプログラムである。
FCカード341は、ファイバチャネルにより他の装置と接続するインタフェースカードである。FCカード341−1は、ホスト201と接続する。FCカード341−2は、ディスクアレイ装置391およびテープライブラリ401と接続する。
IDP351は、ディスクアレイ装置391上のテープボリューム351をテープライブラリ401にストアし、またテープライブラリ401からテープボリュームを読み出してディスクアレイ装置391上にリストアする。
IDP351は、CPU361、メモリ371、およびFCカード381−1、381−2を備える。
CPU361は、メモリ371からプログラムを読み出して実行し、各種処理を実行するプロセッサ(処理装置)である。
CPU361は、ディスクアレイ制御部362、テープドライブ制御部364、およびID制御部365を備える。
ディスクアレイ制御部362は、ディスアレイ装置391を制御し、ディスアレイ装置391へデータの書き込みやディスアレイ装置391からのデータの読み出しを行う。ディスクアレイ制御部362は、32ビットのBIDを用いて、ディスクアレイ装置393の読み書きの制御を行う。ディスクアレイ制御部362は、CPU361がディスクアレイドライバ372をメモリ371から読み出して実行することにより実現される。
テープドライブ制御部364は、ドライブ413を制御し、テープドライブ401とのデータの送受信を制御する。テープドライブ制御部364は、32ビットのBIDを用いて、テープライブラリ401の制御を行う。テープドライブ制御部364は、CPU361がテープドライブドライバ374をメモリ371から読み出して実行することにより実現される。
ID制御部365は、F-BIDおよびBIDをテープボリュームの各ブロックに付加する(割り当てる)。ID制御部365は、CPU361がF-BID/BID制御プログラム375をメモリ371から読み出して実行することにより実現される。
メモリ371は、データやプログラム等を格納する記憶装置である。メモリ371は、例えば、RAMである。
メモリ371は、ディスクアレイドライバ372、データバッファ373、テープドライブドライバ374、およびF-BID/BID制御プログラム375を有する。
ディスクアレイドライバ372は、ディスアレイ装置391を制御するプログラムである。
データバッファ373は、テープボリューム392のデータをディスクアレイ装置391に書き込む前にデータを一時的に格納する領域である。
テープドライブドライバ374は、ドライブ413を制御し、テープドライブ401とのデータの送受信を制御するプログラムである。
F-BID/BID制御プログラム375は、F-BIDおよびBIDをテープボリュームの各ブロックに付加する(割り当てる)プログラムである。第1の実施の形態では、F-BIDは22bit、BIDは32bitとする。
FCカード381は、ファイバチャネルにより他の装置と接続するインタフェースカードである。FCカード381−1は、ディスクアレイ装置391と接続する。FCカード381−2は、テープライブラリ401と接続する。
ディスクアレイ装置391は、複数の磁気ディスク装置(ハードディスクドライブ(HDD))を備えるストレージ装置である。
ディスクアレイ装置391は、テープボリューム392および管理テーブル353を格納する。
テープボリューム392は、仮想テープ1巻分のデータに相当するデータファイルである。
テープボリューム392の形式は、例えば、図3や図4に示すような標準化されたテープフォーマットである。テープボリューム392は、複数のブロックと各ブロックに付加されたBIDおよびF-BIDを含んでいる。
管理テーブル393は、テープボリューム392の各ブロック、BID、およびF-BIDの対応関係が記載されたテーブルである。管理テーブル393の詳細については後述する。
テープライブラリ401は、ロボット411、磁気テープ412−i(i=1〜3)、およびドライブ413を備える。
ロボット411は、仮想テープ201により制御され、読み書きを行う対象の磁気テープ412をドライブ413にセットする。
磁気テープ412は、データを記録する記録媒体である。
ドライブ413は、ドライブ413にセットされた磁気テープ412に対するデータの読み書きを行う。ドライブ413は、磁気テープ412から読み出したデータをFCカードに送信、およびFCカードから受信したデータを磁気テープ412に書き込む。
図6は、管理テーブルの例を示す図である。
管理テーブル393は、項目として、ブロックの種類、Type Code、Block Size、Data、BID、およびF-BIDを有する。管理テーブルには、ブロックの種類、Type Code、Block Size、Data、BID、およびF-BIDが対応付けられて記載されている。
ブロックの種類は、ブロックの種類を示す。
Type Codeは、ブロックの種類を示すコードである。
Block Sizeは、ブロックのサイズを示す。
Dataは、ブロックの種類、例えば、ホストから貰ったデータ、または制御装置(例えば仮想テープ装置)で作成したデータを示す情報である。
BIDは、BIDの番号である。
F-BIDは、F-BIDの番号である。
ここで、第1の実施の形態のシステム101で用いられるRead BID(RBID)コマンドおよびLocateコマンドについて説明する。
・Read BIDコマンド
第1の実施の形態において、仮想テープ装置301がホスト201からRead BIDコマンドを受信すると、チャネルBIDとデバイスBIDを含むBID情報をホスト201に応答する。
チャネルBIDは、ホスト201と仮想テープ装置301間の進行状況を示す情報、すなわち、どのブロックまでホスト201が送信(仮想テープ装置301が受信)したかを示す情報である。具体的には、チャネルBIDは、仮想テープ装置301がホスト201から受信したテープボリュームのブロックの内の最後に受信したブロックのF-BIDである。言い換えれば、データバッファ333内にある最後のブロックのF-BIDである。
デバイスBIDは、仮想ドライブのテープヘッダの位置を示す情報であり、ICP311とディスクアレイ装置391間の処理の進行状況を示す情報、すなわちどのブロックまでディスクアレイ装置392に書き込み済みであるかを示す情報である。具体的には、デバイスBIDは、テープヘッダの直前のブロック(ディスクアレイ装置391に最後に書き込まれたブロック)のF-BIDに1を加算した値である。
例えば、例えばチャネルBIDが5で、デバイスBIDが3の場合、F-BID=2までのブロックはディスクアレイ装置391に書き込み済みあり、F-BID=5までのブロックはホスト201から仮想テープ装置301に送信済みであることを示す。すなわち、F-BID=3,F-BID=4,F-BID=5のブロックが未書き込みで仮想テープ装置301のデータバッファ333内に残っていることを示す。
・Locateコマンド
Locateコマンドは、読み書きを行うドライブのテープヘッドを指定された位置に位置付けるためのコマンドである。
第1の実施の形態において、仮想テープ装置301がホスト201からLocateコマンドを受信すると、Locateコマンドで指定されたF-BIDのブロック位置まで仮想テープ装置301に実現された仮想ドライブのテープヘッドを位置付ける。例えばLocate コマンドによりF-BID=5が指定された場合は、仮想テープ装置1301は、仮想ドライブのテープヘッドをテープボリューム392のF-BID=4のブロックとF-BID=5のブロックの間に位置付ける。
これにより、仮想ドライブは、F-BID=5のブロックから書き込みまたは読み込みを行う。
図7は、第1の実施の形態に係るホストのライト処理および更新処理のフローチャートである。
図7では、ホスト201がボリューム名がVOLAAAのテープボリューム(以下、単にVOLAAAと表記する)を書き込みまたは更新する場合について述べる。
ステップS501において、ホスト201は、VOLAAAのマウントコマンドをICP311に送信する。
ステップS502において、ホスト201は、ICP311からの通知をチェックし、VOLAAAがマウントされた通知を受信した場合、制御はステップS503に進む。
ステップS503において、ホスト201が実行しようとしているジョブがファイルを更新するファイル更新ジョブの場合、制御はステップS504に進み、ホスト201が実行しようとしているジョブがファイル更新ジョブでない場合(ファイルを新たに書き込むライトジョブの場合)、制御はステップS505に進む。
ステップS504のファイル更新では、テープボリュームは図4に示すような2ファイルのマルチテープフォーマットであり、File-2を更新する場合について述べる。
ステップS504において、ホスト201は、ファイル更新ジョブを開始し、更新するファイルのData Blockの先頭のブロックへテープヘッドを位置付けるコマンドをICP311に発行する。詳細には、ホスト201は、以前に記憶したF-BID情報を参照し、更新するファイルのData Blockの先頭のブロック(F-BID=9)へテープヘッドを位置付けるため、Locate(9)コマンドをICP311に発行する。図4に示すように、File-2のData Blockの先頭のブロックのF-BIDは9であるので、ホスト201はLocate(9)コマンドを発行している。
ステップS505において、ホスト201は、ライトジョブを開始し、VOLを書き込むWriteコマンド(Write(VOL))を発行する。
ステップS506において、ホスト201は、HDR1を書き込むWriteコマンド(Write(HDR1))を発行する。
ステップS507において、ホスト201は、HDR2を書き込むWriteコマンド(Write(HDR2))を発行する。
ステップS508において、ホスト201は、TMを書き込むWrite Tape Markコマンドを発行する。
ステップS509において、ホスト201は、RBIDコマンドを発行し、仮想テープ装置301から受信したF-BIDを記憶する。受信したF-BIDは、Data Blockの先頭のブロックのF-BIDである。尚、記憶するF-BIDは、仮想テープ装置301から受信したBID情報に含まれるチャネルBIDとデバイスBIDのうちのチャネルBIDである。ステップS509で記憶したF-BIDの情報は、例えば、ファイル更新ジョブ(ステップS504)で用いられる。
ステップS510において、ホスト201は、Data BlockのD1からDNまでのブロックを書き込むWriteコマンド(Write(D1)、Write(D2)、〜、Write(DN))を連続で発行する。
ステップS511において、ホスト201は、TMを書き込むWrite Tape Markコマンドを発行する。
ステップS512において、ホスト201は、EOF1を書き込むWriteコマンド(Write(EOF1))を発行する。
ステップS513において、ホスト201は、EOF2を書き込むWriteコマンド(Write(EOF2))を発行する。
ステップS514において、ホスト201は、TMを書き込むWrite Tape Markコマンドを発行する。
ステップS515において、マルチファイル処理の場合、制御はステップS506に戻り、マルチファイル処理でない場合(シングルファイル処理の場合)、制御はステップS516に進む。
ステップS516において、ホスト201は、TMを書き込むWrite Tape Markコマンドおよびアンロードを行うUnloadコマンドをICP311に送信し、ジョブを終了する。
図8は、第1の実施の形態に係る仮想テープ装置のライト処理および更新処理のフローチャートである。
図8では、図7で述べた処理をホスト201が実行した場合の仮想テープ装置のライト処理および更新処理について説明する。
ステップS601において、ホスト201からマウントコマンドを受信した場合、制御はステップS602に進む。
ここでは、ICP311がボリューム名がVOLAAAのテープボリュームをマウントするマウントコマンドを受信したとする。
ステップS602において、テープドライブ制御部364は、テープライブラリ401からボリューム名がVOLAAAのテープボリュームを読み出し、ディスクアレイ制御部362は、ディスクアレイ装置391にVOLAAAをマウントする。ディスクアレイ制御部324は、VOLAAAがマウントされたことをホスト201に通知する。
ステップS603において、Locateコマンドが受信された場合(ホスト201がファイル更新ジョブを行う場合)、制御はステップS604に進み、Locateコマンド以外のコマンドが受信された場合(ホスト201がライトジョブを行う場合)、制御はステップS605に進む。
ステップS604において、ホスト201では図7のステップS504の処理が実行されたものとする。
ステップS604において、ディスクアレイ制御部324は、Locate(9)コマンドを受信し、ディスクアレイ装置391からVOLAAAを読み出し、F-BID=9のブロックにテープヘッドを位置付ける。尚、該テープヘッドは、VOLAAAの読み書きに使用するディスクアレイ装置391上に仮想的に設けられたドライブ(仮想ドライブ)のテープヘッドである。
ステップS605以降のステップにおいて、ホスト201では図7のステップS505以降の処理が実行されたものとする。
ステップS605において、ID制御部325は、VOLを書き込むWriteコマンド(Write(VOL))を受信し、VOLにBIDおよびF-BIDを付加する。ディスクアレイ制御部324は、VOLをディスクアレイ装置391に書き込む。図3および4に示すようにVOLには、BID=0、F-BID=0が付加される。
ステップS606において、ID制御部325は、HDR1を書き込むWriteコマンド(Write(HDR1))を受信し、HDR1にBIDおよびF-BIDを付加する。ディスクアレイ制御部324は、HDR1をディスクアレイ装置391に書き込む。図3および4に示すようにHDR1がFile-1のHDR1の場合には、BID=1、F-BID=1が付加され、HDR1がFile-2のHDR1の場合には、BID=n+5、F-BID=7が付加される。
ステップS607において、ID制御部325は、HDR2を書き込むWriteコマンド(Write(HDR2))を受信し、HDR2にBIDおよびF-BIDを付加する。ディスクアレイ制御部324は、HDR2をディスクアレイ装置391に書き込む。図3および4に示すようにHDR2がFile-1のHDR2の場合には、BID=2、F-BID=1が付加され、HDR2がFile-2のHDR2の場合には、BID=n+6、F-BID=7が付加される。
ステップS608において、ID制御部325は、TMを書き込むWrite Tape Markコマンドを受信し、TMにBIDおよびF-BIDを付加する。ディスクアレイ制御部324は、TMをディスクアレイ装置391に書き込む。図3および4に示すようにTMがFile-1のTMの場合には、BID=3、F-BID=2が付加され、TMがFile-2のTMの場合には、BID=n+7、F-BID=8が付加される。
ステップS609において、ディスクアレイ制御部324は、RBIDコマンドを受信し、BID情報をホストに送信する。ここでは、BID情報として、F-BIDを使用する。ディスクアレイ制御部324は、File-1の書き込み中の場合はF-BID=3、File-2の書き込み中の場合はF-BID=9をBID情報として送信する。尚、送信するF-BIDは、ディスクアレイ装置391に書き込み済みのブロックを示すF-BIDであり、前述のチャネルBIDに相当する。
ステップS610において、ID制御部325は、Data BlockのD1からDNまでのブロックを書き込むWriteコマンド(Write(D1)、Write(D2)、〜、Write(DN))を受信し、各Data BlockにBIDおよびF-BIDを付加する。ディスクアレイ制御部324は、Data Block D1〜DNをディスクアレイ装置391に書き込む。図3および4に示すようにFile-1のData Blockを書き込む場合には、BID=4〜n、F-BID=3がそれぞれ付加される。また、図4に示すFile-2のData Blockを書き込む場合には、BID=n+8〜m、F-BID=9がそれぞれ付加される。
ステップS611において、ID制御部325は、TMを書き込むWrite Tape Markコマンドを受信し、TMにBIDおよびF-BIDを付加する。ディスクアレイ制御部324は、TMをディスクアレイ装置391に書き込む。図3および4に示すようにTMがFile-1のData Blockの次のTMの場合には、BID=n+1、F-BID=4が付加され、TMがFile-2のData Blockの次のTMの場合には、BID=m+1、F-BID=10が付加される。
ステップS612において、ID制御部325は、EOF1を書き込むWriteコマンド(Write(EOF1))を受信し、EOF1にBIDおよびF-BIDを付加する。ディスクアレイ制御部324は、EOF1をディスクアレイ装置391に書き込む。図3および4に示すようにEOF1がFile-1のEOF1の場合には、BID=n+2、F-BID=5が付加され、EOF1がFile-2のEOF1の場合には、BID=m+2、F-BID=11が付加される。
ステップS613において、ID制御部325は、EOF2を書き込むWriteコマンド(Write(EOF2))を受信し、EOF2にBIDおよびF-BIDを付加する。ディスクアレイ制御部324は、EOF2をディスクアレイ装置391に書き込む。図3および4に示すようにEOF2がFile-1のEOF1の場合には、BID=n+3、F-BID=5が付加され、EOF2がFile-2のEOF2の場合には、BID=m+3、F-BID=11が付加される。
ステップS614において、ID制御部325は、TMを書き込むWrite Tape Markコマンドを受信し、TMにBIDおよびF-BIDを付加する。ディスクアレイ制御部324は、TMをディスクアレイ装置391に書き込む。図3および4に示すようにTMがFile-1のEOF2の次のTMの場合には、BID=n+4、F-BID=6が付加され、TMがFile-2のEOF2の次のTMの場合には、BID=m+4、F-BID=12が付加される。
ステップS615において、TMを書き込むWrite Tape Markコマンドが受信された場合、制御はステップS616に進み、Write Tape Markコマンド以外のコマンド(Writeコマンド)が受信された場合、制御はステップS606に戻る。
ステップS616において、ID制御部325は、TMを書き込むWrite Tape Markコマンドを受信し、TMにBIDおよびF-BIDを付加する。ディスクアレイ制御部324は、TMをディスクアレイ装置391に書き込む。図3に示すようにシングルファイルテープフォーマットの場合には、BID=n+5、F-BID=7が付加され、図4に示すようにマルチファイルテープフォーマットの場合には、BID=m+5、F-BID=13が付加される。
ステップS617において、Unloadコマンドが受信された場合、制御はステップS618に進む。
ステップS618において、ID制御部325は、Unloadコマンドを受信し、EODにBIDおよびF-BIDを付加する。ディスクアレイ制御部324は、EODをディスクアレイ装置391に書き込む。図3に示すようにシングルファイルテープフォーマットの場合には、BID=n+6、F-BID=8が付加され、図4に示すようにマルチファイルテープフォーマットの場合には、BID=m+6、F-BID=14が付加される。
ステップS619において、ディスクアレイ制御部362は、ディスクアレイ装置391からVOLAAAを読み出す。
ステップS620において、テープドライブ制御部364は、テープライブラリ401の磁気テープ412にVOLAAAを書き込む。詳細には、テープドライブ制御部364は、VOLAAAの各ブロックと各ブロックに付加されているBIDを磁気テープ412に書き込む。テープドライブ制御部364は、F-BIDについては磁気テープ412に書き込まない。尚、BIDは、ディスクアレイ装置391に格納されているものを使用しても良いし、磁気テープ412への書き込み時にID制御部365がBIDを各ブロックに付加しても良い。
次に、第1の実施の形態の書き込みエラー発生時のエラーリカバリ処理について説明する。
初めに、ディスクアレイ制御部324のディスアレイ装置391へのテープボリュームの書き込み処理の詳細について説明する。
先ず、ディスクアレイ制御部324は、ホスト201から受信したテープボリュームのデータやディスクアレイ制御部324で生成したブロックをデータバッファ333に書き込む。
ID制御部325は、データバッファ333のテープボリュームの各ブロックにBIDおよびF-BIDを付加する。
そして、ディスクアレイ制御部324は、テープボリュームの各ブロックをデータバッファ333から読み出して、ディスクアレイ装置391に書き込む。
図9は、書き込みエラー検出前および書き込みエラー検出時のデータバッファのF-BIDを示す図である。
図9の上部は、書き込みエラー検出前のF-BIDを示し、下部は書き込みエラー検出時のF-BIDを示す。
データバッファ333には、VOLからDM-1までのブロックが格納され、図9の上部に示すようなF-BIDが付加されているとする。図9の上部に示すように、Data Block(D1〜DM-1)には、F-BID=3が付加されている。
ここで、ディスクアレイ制御部334は、ディスクアレイ装置391へのデータの書き込みをテープボリュームの先頭から順に行っており、ブロックDM-3のディスクアレイ装置391へ書き込み時に書き込みエラーが発生したとする。
ID制御部325は、エラーが発生したブロックからブロックごとにF-BIDを1増加するようにデータバッファ333のF-BIDを更新する。
これにより、図9の下部に示すようにエラーブロック(DM-3)からブロックごとに1ずつ増加するようにF-BIDが更新されている。すなわち、ブロックDM-3、DM-2、DM-1にそれぞれF-BID=4、5、6が付加されている。
F-BID=4〜6のブロック(DM-3〜DM-1)は、ディスクアレイ装置391に書き込まれていないため、これらは未書き込みデータ(ブロック)である。
図10は、第1の実施の形態に係る書き込みエラー発生時のホストの処理を示す図である。
ここでは、ホスト201は、ディスクアレイ装置391上に設けられた仮想ドライブ#0を用いてボリューム名がVOLAAAのテープボリュームを書き込む場合について説明する。
ステップS701において、ホスト201は、VOLAAAのマウントコマンドを仮想ドライブ#0、すなわち仮想ドライブ#0を実現しているICP311に送信する。
ステップS702において、ホスト201は、ICP311からの通知をチェックし、VOLAAAが仮想ドライブ#0にマウントされた通知を受信した場合、制御はステップS703に進む。
ステップS703において、ホスト201は、ライトジョブを開始し、VOLを書き込むWriteコマンド(Write(VOL))を発行する。
ステップS704において、ホスト201は、HDR1を書き込むWriteコマンド(Write(HDR1))を発行する。
ステップS705において、ホスト201は、HDR2を書き込むWriteコマンド(Write(HDR2))を発行する。
ステップS706において、ホスト201は、TMを書き込むWrite Tape Markコマンドを発行する。
ステップS707において、ホスト201は、RBIDコマンドを発行し、仮想テープ装置301から受信したF-BIDを記憶する。受信したF-BIDは、Data Blockの先頭のブロックのF-BIDである。尚、記憶するF-BIDは、仮想テープ装置301から受信したBID情報に含まれるチャネルBIDとデバイスBIDのうちのチャネルBIDである。
ステップS708において、ホスト201は、Data BlockのD1からDNまでのブロックを書き込むWriteコマンド(Write(D1)、Write(D2)、〜、Write(DN))を連続で発行する。
ステップS709において、仮想ドライブ#0でエラーが発生した場合、制御はステップS710に進み、エラーが発生しなかった場合、制御はステップS711に進む。またエラーが発生した場合、ホスト201は、Writeコマンドの発行を中断する。
ステップS710において、ホスト201は、エラーリカバリ処理を行う。尚、エラーリカバリ処理の詳細は後述する。また、ホスト201は、Data BlockのDM以降のブロックを書き込むWriteコマンドの発行を中断したとする。
ステップS711において、ホスト201は、TMを書き込むWrite Tape Markコマンドを発行する。
ステップS712において、ホスト201は、EOF1を書き込むWriteコマンド(Write(EOF1))を発行する。
ステップS713において、ホスト201は、EOF2を書き込むWriteコマンド(Write(EOF2))を発行する。
ステップS714において、ホスト201は、TMを書き込むWrite Tape Markコマンドを発行する。
ステップS715において、マルチファイル処理の場合、制御はステップS506に戻り、マルチファイル処理でない場合(シングルファイル処理の場合)、制御はステップS516に進む。
ステップS716において、ホスト201は、TMを書き込むWrite Tape Markコマンドおよびアンロードを行うUnloadコマンドをICP311に送信し、ジョブを終了する。
図11は、第1の実施の形態に係るエラーリカバリ処理の詳細なフローチャートである。
図11は、図10のステップS710に対応する。
ここでは、書き込みエラーが発生し、図9に示すようにF-BIDが更新された場合について述べる。
ステップS721において、ホスト201は、センスコマンドを発行し、仮想テープ装置301からエラー詳細情報(書き込みエラー)、およびセンス情報として未書き込みデータ量を受信する。
ステップS722において、ホスト201は、RBIDコマンドを発行し、エラーが発生したブロック(エラーブロック)の位置(すなわち、エラーブロックのF-BID(=4))と未書き込みデータブロック数情報(=3)を受信する。尚、エラーブロックのF-BIDは、ホスト1201から受信したBID情報に含まれるデバイスBIDである。
ステップS723において、ホスト201は、未書き込みデータブロック数だけRead Bufferコマンドを発行し(すなわち、Read Bufferコマンドを3回発行し)、仮想テープ装置301から未書き込みデータを受信する。
ここでRead Bufferコマンドについて説明する。
仮想テープ装置301は、Read Bufferコマンドを受け取ると、仮想テープ装置301のデータバッファ333に存在する未書き込みデータ(すなわち、ディスクアレイ装置393に未書き込みであるデータ)をF-BIDの大きい方から順に1ブロック分のデータをホスト201に送信する。
ホスト201は、1回目のRead Bufferコマンドの発行により、F-BID=6のブロックのデータ、2回目のRead Bufferコマンドの発行により、F-BID=5のブロックのデータ、3回目のRead Bufferコマンドの発行により、F-BID=4のブロックのデータを受信する。
ステップS724において、ホスト201は、エラーブロックの位置、未書き込みデータブロック数情報、および未書き込みデータをホスト201内に記憶する。
ステップS725において、ホスト201は、VOLAAAを仮想ドライブ#0からアンマウントするUnloadコマンドを仮想テープ装置301に発行する。
ステップS726において、ホスト201が仮想テープ装置301からアンマウント完了の通知を受信すると、制御はステップS727に進む。
ステップS727において、ホスト201は、VOLAAAを別の仮想ドライブ#1にマウントするマウントコマンドをICP311に送信する。
ステップS728において、ホスト201は、ICP311からの通知をチェックし、VOLAAAが仮想ドライブ#1にマウントされた通知を受信した場合、制御はステップS729に進む。
ステップS729において、ホスト201は、記憶したエラーブロック位置(F-BID=4)を元に、仮想ドライブ#1のテープヘッドをエラーブロック位置に位置付けるLocateコマンド(Locate(4))を発行する。
ステップS730において、ホスト201は、記憶した未書き込みデータブロック数情報および未書き込みデータを元に、該未書き込みデータを書き込むWriteコマンドを未書き込みデータブロック数情報分(すなわち、3回)発行する。詳細には、ホスト201は、1回目のWriteコマンドでF-BID=4の未書き込みデータを書き込むWriteコマンド、2回目のWriteコマンドでF-BID=5の未書き込みデータを書き込むWriteコマンド、3回目のWriteコマンドでF-BID=6の未書き込みデータを書き込むWriteコマンドを発行する。
ステップS731において、ホスト201は、中断したジョブのWriteコマンド、すなわちData BlockのDM〜DNを書き込むWriteコマンド((Write(DM)、Write(DM+1)、〜、Write(DN)))を連続で発行する。
図12は、第1の実施の形態に係る仮想テープ装置のエラーリカバリ処理のフローチャートである。
図12は、ホスト201が図11のエラーリカバリ処理を行ったときの仮想テープ装置301の処理を示す。
先ず、仮想テープ装置301のデータバッファ333には、図9の上部に示すようなF-BIDが付加されたテープボリュームのデータが格納されている。
図9で述べたように、書き込みエラーが発生すると、ID制御部325は、データバッファ333のテープボリュームのエラーが発生したブロックからブロックごとにF-BIDを1増加するようにF-BIDを更新する。
それにより、図9の下部に示すようなF-BIDが付加されたテープボリュームのデータがデータバッファ333に格納されている。
図9で述べたように、F-BID=4のブロックでエラーが発生し、F-BID=4〜6のブロックは、ディスクアレイ装置391に未書き込みであるとする。
ステップS801において、ディスクアレイ制御部324は、センスコマンドを受信し、ディスクアレイ391に未書き込みのデータ(すなわち、F=BID=4〜6のブロック)のサイズの合計(未書き込みデータ量)を算出する。ディスクアレイ制御部324は、センス情報として未書き込みデータ量および詳細エラー情報(書き込みエラー)をホスト201に通知する。
ステップS802において、ディスクアレイ制御部324は、RBIDコマンドを受信し、チャネルBID(=6)およびデバイスBID(=4)をBID情報としてホスト201に通知し、さらに未書き込みデータブロック数(=3)をホスト201に通知する。尚、上記チャネルBIDおよびデバイスBIDは、F-BIDの番号を用いる。
ステップS803において、ディスクアレイ制御部324は、Read Bufferコマンドを3回受信し、1回目のRead Bufferコマンドに対してF-BID=6のブロックのデータをホスト201に送信し、2回目のRead Bufferコマンドに対してF-BID=5のブロックのデータをホスト201に送信し、3回目のRead Bufferコマンドに対してF-BID=4のブロックのデータをホスト201に送信する。
ステップS804において、仮想テープ装置301が仮想ドライブ#0のVOLAAAのアンマウントコマンドを受信した場合、制御はステップS805に進む。
ステップS805において、ディスクアレイ制御部324は、VOLAAAを仮想ドライブ#0からアンマウントする。
ステップS806において、仮想テープ装置301が仮想ドライブ#1へのVOLAAAのマウントコマンドを受信した場合、制御はステップS807に進む。
ステップS807において、ディスクアレイ制御部324は、VOLAAAを仮想ドライブ#1にマウントし、VOLAAAが仮想ドライブ#1にマウントされたことをホスト201に通知する。
ステップS808において、ディスクアレイ制御部324は、Locateコマンド(Locate(4))を受信し、仮想ドライブ#1のテープヘッドをF-BID=3の後端のブロックとエラーブロック(F-BID=4)との間に位置付ける。
ステップS809において、ディスクアレイ制御部324は、F-BID=4の未書き込みデータを書き込むWriteコマンドを受信し、該未書き込みデータをデータバッファ333に再書き込み(上書き)する。ID制御部325は、該未書き込みデータにF-BID=3を付加する。また、ID制御部325は、該未書き込みデータにBIDを付加する。
ステップS810において、ディスクアレイ制御部324は、F-BID=5の未書き込みデータを書き込むWriteコマンドを受信し、該未書き込みデータをデータバッファ333に再書き込み(上書き)する。ID制御部325は、該未書き込みデータにF-BID=3を付加する。また、ID制御部325は、該未書き込みデータにBIDを付加する。
ステップS811において、ディスクアレイ制御部324は、F-BID=6の未書き込みデータを書き込むWriteコマンドを受信し、該未書き込みデータをデータバッファ333に再書き込み(上書き)する。ID制御部325は、該未書き込みデータにF-BID=3を付加する。また、ID制御部325は、該未書き込みデータにBIDを付加する。
ステップS809〜S811において、ID制御部325は、図3、4で述べたF-BIDの更新ルールに従って、F-BIDを付加する。それにより、ID制御部325は、未書き込みデータに、エラーが発生する前に該未書き込みデータに付加されていたF-BID(=3)と同じF-BIDを付加している。
ステップS812において、ディスクアレイ制御部324は、未書き込みデータをディスクアレイ装置391に書き込む。詳細には、ディスクアレイ制御部324は、ステップS809〜S811でデータバッファ333に書き込まれた未書き込みデータをディスクアレイ装置391に書き込む。尚、該未書き込みデータは、新たに付加されたF-BIDおよびBIDを含む。
図13は、エラー無し時、エラー発生時、およびエラーリカバリ後のデータバッファ上のF-BIDを示す図である。
図13の右から3列目はエラー無し時のF-BIDを示し、右から2列目はエラー発生時のF-BIDを示し、右から1列目はエラーリカバリ後のF-BIDを示す。
図13の右から3列目に示すように、エラーブロックが発生しなければ、Data Blockには、同じF-BID(=3)が付加される。
図13の右から2列目に示すように、エラー発生時には、エラーブロックとその後の未書き込みブロックは、ブロック毎にF-BIDの番号が増加する。
図13の右から1列目に示すように、エラーリカバリ後、すなわちエラーブロックと未書き込みブロックの再書き込み後、該エラーブロックと該未書き込みブロックには、エラー無し時と同様に他のData Blockと同じF-BID(=3)が付加される。
第1の実施の形態のシステムによれば、仮想テープ装置とホスト間のディスクアレイ装置の制御では、F-BIDを用いるため、ホストは、137GB以上のテープボリュームを管理できる。
第1の実施の形態のシステムによれば、137GBの超えるテープボリュームを36トラックテープを制御するOS(F-BID22ビット制御)を使用してコピーまたはExportしても、137GB以上のデータを扱える。
第1の実施の形態のシステムによれば、137GBの超えるテープボリュームを36トラックテープを制御するOS(F-BID22ビット制御)を使用してコピーまたはExportしても、TMのブロック位置が特定できる。
第1の実施の形態のシステムによれば、36トラックテープを制御するOS(F-BID22ビット制御)を使用して、22ビットのBIDを用いたOSが管理できる容量を超えた位置(137GBを超えた領域)で書き込みエラーが発生した場合、エラーしたブロック位置およびそれに続く未書き込みブロック位置が特定でき、エラーリカバリが可能となる。
(第2の実施の形態)
第2の実施の形態では、テープ制御装置を用いた形態について説明する。
図14は、第2の実施の形態に係るシステムの構成図である。
第2の実施の形態のシステム1101は、ホスト(上位装置)1201、テープ制御装置1301、およびテープライブラリ(実テープ装置)1401を備える。
ホスト1201とテープ制御装置1301、テープ制御装置1301とテープライブラリ1401は、それぞれ光ケーブルを介して接続されている。
第2の実施の形態のシステム1101は、標準化された36トラックテープフォーマットを用いる。例えば、36トラックテープフォーマットは、JIS X6135、ISO/IEC 14251、ファイル構成は、JIS X601に記載されている。
ホスト1201は、テープ制御装置1301を介してテープライブラリ1401からデータを読み出す、またはテープ制御装置1301を介してテープライブラリ1401に書き込みデータを送信する。ホスト1201は、ブロックのテープ上の位置を示すF-BIDが記載されたF-BID情報を格納し、ホスト1201のOSは、ブロックの読み書き時にはF-BIDを用いて、書き込み位置や読み出し位置を制御する。ホスト1201は、テープ制御装置1301とファイバチャネルを用いて通信を行う。ホスト1201は、例えば、サーバやパーソナルコンピュータ(PC)等の情報処理装置である。
テープ制御装置1301は、テープライブラリ1401を制御する装置である。
テープ制御装置1301は、ホストインタフェース制御部1311、フォーマッタ制御部1351、およびデータバッファ1391を備える。
ホストインタフェース制御部1311は、ホスト1201と接続し、データバッファ1391上のテープボリュームのデータの送受信の制御を行う。
ホストインタフェース制御部1311は、CPU1321、メモリ1331、ホストIF制御回路1341、データバッファ制御回路1342、およびロボットIF制御回路1343を備える。
CPU1321は、メモリ1331からプログラムを読み出して実行し、各種処理を実行するプロセッサ(処理装置)である。
CPU1321は、ホストIF制御部1322、データバッファ制御部1324、ID制御部1325、およびロボットIF制御部1326を備える。
ホストIF制御部1322は、ホストIF制御回路1341を制御し、ホストIF制御回路1341を介してホスト1201とのデータの送受信を制御する。ホストIF制御部1322は、CPU1321がホストIFプログラム1332をメモリ1331から読み出して実行することにより実現される。
データバッファ制御部1324は、データバッファ制御回路1342を制御し、データバッファ制御回路1342を介して、データバッファ1391へデータの書き込みやデータバッファ1391からのデータの読み出しを行う。データバッファ制御部1324は、22ビットのF-BIDを用いて、データバッファ1391の読み書きの制御を行う。また、データバッファ制御部1324は、管理テーブル1393の読み書きを行う。データバッファ制御部1324は、CPU1321がデータバッファ制御プログラム1334をメモリ1331から読み出して実行することにより実現される。
ID制御部1325は、F-BIDおよびBIDをテープボリュームの各ブロックに付加する(割り当てる)。ID制御部1325は、CPU1321がF-BID/BID制御プログラム1335をメモリ1331から読み出して実行することにより実現される。
ロボットIF制御部1326は、ロボットIF制御回路1343を制御し、ロボットIF制御回路1343を介して、ロボット1411を制御する。ロボットIF制御部1326は、CPU1321がロボットIF制御プログラム1336をメモリ1331から読み出して実行することにより実現される。
メモリ1331は、データやプログラム等を格納する記憶装置である。メモリ1331は、例えば、RAMである。
メモリ1331は、ホストIFプログラム1332、データバッファプログラム1334、F-BID/BID制御プログラム1335、およびロボット制御プログラム1336を有する。
ホストIFプログラム1332は、ホストIF制御回路1341を制御し、ホスト1201とのデータの送受信を制御するプログラムである。
データバッファプログラム1334は、データバッファ制御回路1342を制御し、データバッファ1391のデータの読み書きを制御するプログラムである。
F-BID/BID制御プログラム1335は、F-BIDおよびBIDをテープボリュームの各ブロックに付加する(割り当てる)プログラムである。第2の実施の形態では、F-BIDは22bit、BIDは32bitとする。
ロボット制御プログラム1336は、ロボット1411を制御するプログラムである。
ホストIF制御回路1341は、ホスト1201とのデータの送受信を制御する。
データバッファ制御回路1342は、データバッファ1391のデータの読み書きを制御する。
ロボットIF制御回路1343は、ロボット1411を制御する。
フォーマッタ制御部1351は、CPU1361、メモリ1371、およびデータバッファ制御回路1381、およびドライブIF制御回路1382を備える。
CPU1361は、メモリ1371からプログラムを読み出して実行し、各種処理を実行するプロセッサ(処理装置)である。
CPU1361は、データバッファ制御部1362、ドライブIF制御部1364、およびID制御部1365を備える。
データバッファ制御部1362は、データバッファ制御回路1381を制御し、データバッファ制御回路1381を介して、データバッファ1391へデータの書き込みやデータバッファ1391からのデータの読み出しを行う。データバッファ制御部1362は、32ビットのBIDを用いて、データバッファ1391の読み書きの制御を行う。データバッファ制御部1362は、CPU1361がデータバッファ制御プログラム1372をメモリ1371から読み出して実行することにより実現される。
ドライブIF制御部1364は、ドライブIF制御回路1382を制御し、ドライブIF制御回路1382を介してドライブ1413を制御し、テープドライブ1401とのデータの送受信を制御する。ドライブIF制御部1364は、32ビットのBIDを用いて、テープライブラリ1401の読み書きの制御を行う。ドライブIF制御部1364は、CPU1361がドライブIF制御プログラム1374をメモリ1371から読み出して実行することにより実現される。
ID制御部1365は、F-BIDおよびBIDをテープボリュームの各ブロックに付加する(割り当てる)。ID制御部1365は、CPU1361がF-BID/BID制御プログラム1375をメモリ1371から読み出して実行することにより実現される。
メモリ1371は、データやプログラム等を格納する記憶装置である。メモリ1371は、例えば、RAMである。
メモリ1371は、データバッファ制御プログラム1372、ドライブIF制御プログラム1374、およびF-BID/BID制御プログラム1375を有する。
データバッファ制御プログラム1372は、データバッファ制御回路1381を制御し、データバッファ1391のデータの読み書きを制御するプログラムである。
ドライブIF制御プログラム1374は、ドライブIF制御回路1382を制御し、テープドライブ1401とのデータの送受信を制御するプログラムである。
F-BID/BID制御プログラム1375は、F-BIDおよびBIDをテープボリュームの各ブロックに付加する(割り当てる)プログラムである。第2の実施の形態では、F-BIDは22bit、BIDは32bitとする。
データバッファ制御回路1381は、データバッファ1391のデータの読み書きを制御する。
ドライブIF制御回路1382は、ドライブ1413を制御し、テープドライブ1401とのデータの送受信を制御する。
データバッファ1391は、データを格納する記憶装置である。データバッファ1391は、例えば、RAMである。
データバッファ1391は、テープボリューム1392および管理テーブル1393を格納する。
テープボリューム1392の形式は、例えば、図3や図4に示すような標準化されたテープフォーマットである。テープボリューム1392は、複数のブロックと各ブロックに付加されたBIDおよびF-BIDを含んでいる。
管理テーブル1393は、テープボリューム1392の各ブロック、BID、およびF-BIDの対応関係が記載されたテーブルである。管理テーブル1393は、第1の実施の形態の管理テーブル393と同様であるので説明は省略する。
テープライブラリ1401は、ロボット1411、磁気テープ1412−i(i=1〜3)、およびドライブ1413を備える。
ロボット1411は、ロボットIF制御部1326により制御され、読み書きを行う対象の磁気テープ1412をドライブ1413にセットする。
磁気テープ1412は、データを記録する記録媒体である。
ドライブ1413は、ドライブ1413にセットされた磁気テープ1412に対するデータの読み書きを行う。ドライブ1413は、磁気テープ1412から読み出したデータをドライブIF制御回路1382に送信、およびドライブIF制御回路1382から受信したデータを磁気テープ1412に書き込む。
ここで、第2の実施の形態のシステム1101で用いられるRead BID(RBID)コマンドおよびLocateコマンドについて説明する。
・Read BIDコマンド
第2の実施の形態において、テープ制御装置1301がホスト201からRead BIDコマンドを受信すると、チャネルBIDとデバイスBIDを含むBID情報をホスト1201に応答する。
チャネルBIDは、ホスト1201とテープ制御装置1301間の進行状況を示す情報、すなわち、どのブロックまでホスト1201が送信(テープ制御装置11301が受信)したかを示す情報である。具体的には、チャネルBIDは、テープ制御装置1301がホスト201から受信したテープボリュームのブロックの内の最後に受信したブロックのF-BIDである。言い換えれば、データバッファ1391内にあるテープボリュームの最後のブロックのF-BIDである。
デバイスBIDは、ドライブ1413のテープヘッダの位置を示す情報であり、テープ制御装置1301とテープライブラリ1401間の処理の進行状況を示す情報、すなわちどのブロックまでテープライブラリ1401に書き込み済みであるかを示す情報である。具体的には、デバイスBIDは、テープヘッダの直前のブロック(テープライブラリ1401に最後に書き込まれたブロック)のBIDに1を加算したBIDに対応するF-BIDである。
例えば、例えばチャネルBIDが5で、デバイスBIDが3の場合、F-BID=2までのブロックはテープライブラリ1401に書き込み済みあり、F-BID=5までのブロックはホスト1201からテープ制御装置1301に送信済みであることを示す。すなわち、F-BID=3,F-BID=4,F-BID=5のブロックが未書き込みでテープ制御装置1301のデータバッファ1393内に残っていることを示す。
・Locateコマンド
Locateコマンドは、読み書きを行うドライブのテープヘッドを指定された位置に位置付けるためのコマンドである。
第2の実施の形態において、テープ制御装置1301がホスト201からLocateコマンドを受信すると、Locateコマンドで指定されたF-BIDに対応するBIDのブロック位置までドライブ1412のテープヘッドを位置付ける。例えばLocate コマンドによりF-BID=5が指定された場合、ドライブIF制御部1364は、テープヘッドを磁気テープ1412のテープボリュームのF-BID=4に対応するBIDのブロックとF-BID=5に対応するBIDのブロックの間に位置付ける。尚、F-BIDに対応するBIDは、管理テープル1393を参照することにより、取得できる。
これにより、ドライブ1413は、F-BID=5に対応するBIDのブロックから書き込みまたは読み込みを行う。
図15は、第2の実施の形態に係るホストのライト処理および更新処理のフローチャートである。
図15では、ホスト1201がボリューム名がVOLAAAのテープボリューム(以下、単にVOLAAAと表記する)を書き込みまたは更新する場合について述べる。
ステップS1501において、ホスト1201は、VOLAAAのマウントコマンドをホストインタフェース制御部1311に送信する。
ステップS1502において、ホスト1201は、ホストインタフェース制御部1311からの通知をチェックし、VOLAAAがマウントされた通知を受信した場合、制御はステップS1503に進む。
ステップS1503において、ホスト1201が実行しようとしているジョブがファイルを更新するファイル更新ジョブの場合、制御はステップS1504に進み、ホスト1201が実行しようとしているジョブがファイル更新ジョブでない場合(ファイルを新たに書き込むライトジョブの場合)、制御はステップS1505に進む。
ステップS1504のファイル更新では、テープボリュームは図4に示すような2ファイルのマルチテープフォーマットであり、File-2を更新する場合について述べる。
ステップS1504において、ホスト1201は、ファイル更新ジョブを開始し、更新するファイルのData Blockの先頭のブロックへテープヘッドを位置付けるコマンドをホストインタフェース制御部1311に発行する。詳細には、ホスト1201は、以前に記憶したF-BID情報を参照し、更新するファイルのData Blockの先頭のブロック(F-BID=9)へテープヘッドを位置付けるため、Locate(9)コマンドをホストインタフェース制御部1311に発行する。図4に示すように、File-2のData Blockの先頭のブロックのF-BIDは9であるので、ホスト1201はLocate(9)コマンドを発行している。
ステップS1505において、ホスト1201は、ライトジョブを開始し、VOLを書き込むWriteコマンド(Write(VOL))を発行する。
ステップS1506において、ホスト1201は、HDR1を書き込むWriteコマンド(Write(HDR1))を発行する。
ステップS1507において、ホスト1201は、HDR2を書き込むWriteコマンド(Write(HDR2))を発行する。
ステップS1508において、ホスト1201は、TMを書き込むWrite Tape Markコマンドを発行する。
ステップS1509において、ホスト1201は、RBIDコマンドを発行し、テープ制御装置1301から受信したF-BIDを記憶する。受信したF-BIDは、Data Blockの先頭のブロックのF-BIDである。尚、記憶するF-BIDは、テープ制御装置1301から受信したBID情報に含まれるチャネルBIDとデバイスBIDのうちのチャネルBIDである。ステップS1509で記憶したF-BIDの情報は、例えば、ファイル更新ジョブ(ステップS1504)で用いられる。
ステップS1510において、ホスト1201は、Data BlockのD1からDNまでのブロックを書き込むWriteコマンド(Write(D1)、Write(D2)、〜、Write(DN))を連続で発行する。
ステップS1511において、ホスト1201は、TMを書き込むWrite Tape Markコマンドを発行する。
ステップS1512において、ホスト1201は、EOF1を書き込むWriteコマンド(Write(EOF1))を発行する。
ステップS1513において、ホスト1201は、EOF2を書き込むWriteコマンド(Write(EOF2))を発行する。
ステップS1514において、ホスト1201は、TMを書き込むWrite Tape Markコマンドを発行する。
ステップS1515において、マルチファイル処理の場合、制御はステップS1506に戻り、マルチファイル処理でない場合(シングルファイル処理の場合)、制御はステップS1516に進む。
ステップS1516において、ホスト1201は、TMを書き込むWrite Tape Markコマンドおよびアンロードを行うUnloadコマンドをホストインタフェース制御部1311に送信し、ジョブを終了する。
図16は、第2の実施の形態に係るテープ制御装置のライト処理および更新処理のフローチャートである。
図16では、図15で述べた処理をホスト201が実行した場合のテープ制御装置301のライト処理および更新処理について説明する。
ステップS1601において、ホスト1201からマウントコマンドを受信した場合、制御はステップS1602に進む。
ここでは、ホストインタフェース制御部1311がボリューム名がVOLAAAのテープボリュームをマウントするマウントコマンドを受信したとする。
ステップS1602において、ドライブIF制御部1364は、ボリューム名がVOLAAAの磁気テープ1412をドライブ1413にマウントする。データバッファ制御部1324は、VOLAAAがマウントされたことをホスト1201に通知する。
ステップS1603において、Locateコマンドが受信された場合(ホスト1201がファイル更新ジョブを行う場合)、制御はステップS1604に進み、Locateコマンド以外のコマンドが受信された場合(ホスト1201がライトジョブを行う場合)、制御はステップS1605に進む。
ステップS1604において、ホスト1201では図15のステップS1504の処理が実行されたものとする。
ステップS1604において、ホストIF制御部1322は、Locate(9)コマンドを受信する。ドライブIF制御部1364は、管理テーブル1393を参照し、F-BID=9のブロックのうちの先頭のブロックに対応するBID=n+8を取得し、ドライブ1412のテープヘッドをBID=n+8に位置付ける。
ステップS1605以降のステップにおいて、ホスト1201では図15のステップS1505以降の処理が実行されたものとする。
ステップS1605において、ID制御部1325は、VOLを書き込むWriteコマンド(Write(VOL))を受信し、VOLにBIDおよびF-BIDを付加する。データバッファ制御部1324は、VOLをデータバッファ1391に書き込む。図3および4に示すようにVOLには、BID=0、F-BID=0が付加される。
ステップS1606において、ID制御部1325は、HDR1を書き込むWriteコマンド(Write(HDR1))を受信し、HDR1にBIDおよびF-BIDを付加する。データバッファ制御部1324は、HDR1をデータバッファ1391に書き込む。図3および4に示すようにHDR1がFile-1のHDR1の場合には、BID=1、F-BID=1が付加され、HDR1がFile-2のHDR1の場合には、BID=n+5、F-BID=7が付加される。
ステップS1607において、ID制御部1325は、HDR2を書き込むWriteコマンド(Write(HDR2))を受信し、HDR2にBIDおよびF-BIDを付加する。データバッファ制御部1324は、HDR2をデータバッファ1391に書き込む。図3および4に示すようにHDR2がFile-1のHDR2の場合には、BID=2、F-BID=1が付加され、HDR2がFile-2のHDR2の場合には、BID=n+6、F-BID=7が付加される。
ステップS1608において、ID制御部1325は、TMを書き込むWrite Tape Markコマンドを受信し、TMにBIDおよびF-BIDを付加する。データバッファ制御部1324は、TMをデータバッファ1391に書き込む。図3および4に示すようにTMがFile-1のTMの場合には、BID=3、F-BID=2が付加され、TMがFile-2のTMの場合には、BID=n+7、F-BID=8が付加される。
ステップS1609において、ドライブIF制御部1364は、データバッファ1391のデータのうち、磁気テープ1412に未書き込みのデータと該未書き込みのデータのBIDをテープライブラリ1401の磁気テープ1412に書き込む。例えば、図3または図4のFile-1を書き込んでいる場合には、VOL、HDR1、HDR2、およびTM、さらにこれらブロックに付加されているBIDを磁気テープ1412に書き込む。尚、磁気テープ1412に書き込むBIDは、データバッファ1391に格納されているBIDを使用しても良いし、テープライブラリ1401への書き込み時にID制御部1365がBIDを各ブロックに付加しても良い。尚、ドライブIF制御部1364は、F-BIDについては、磁気テープ1412に書き込まない。
ステップS1610において、データバッファ制御部1324は、RBIDコマンドを受信し、BID情報をホストに送信する。ここでは、BID情報として、F-BIDを使用する。データバッファ制御部1324は、File-1の書き込み中の場合はF-BID=3、File-2の書き込み中の場合はF-BID=9をBID情報として送信する。尚、送信するF-BIDは、データバッファ1391に書き込み済みのブロックを示すF-BIDであり、前述のチャネルBIDに相当する。
ステップS1611において、ID制御部1325は、Data BlockのD1からDNまでのブロックを書き込むWriteコマンド(Write(D1)、Write(D2)、〜、Write(DN))を受信し、各Data BlockにBIDおよびF-BIDを付加する。データバッファ制御部1324は、Data Block D1〜DNをデータバッファ1391に書き込む。図3および4に示すようにFile-1のData Blockを書き込む場合には、BID=4〜n、F-BID=3がそれぞれ付加される。また、図4に示すFile-2のData Blockを書き込む場合には、BID=n+8〜m、F-BID=9がそれぞれ付加される。
ステップS1612において、ID制御部2325は、TMを書き込むWrite Tape Markコマンドを受信し、TMにBIDおよびF-BIDを付加する。データバッファ制御部1324は、TMをデータバッファ1391に書き込む。図3および4に示すようにTMがFile-1のData Blockの次のTMの場合には、BID=n+1、F-BID=4が付加され、TMがFile-2のData Blockの次のTMの場合には、BID=m+1、F-BID=10が付加される。
ステップS1613において、ドライブIF制御部1364は、データバッファ1391のデータのうち、磁気テープ1412に未書き込みのデータと該未書き込みのデータのBIDをテープライブラリ1401の磁気テープ1412に書き込む。詳細には、ドライブIF制御部1364は、Data BlockのD1〜DNとTM、さらにこれらブロックに付加されているBIDを磁気テープ1412に書き込む。尚、磁気テープ1412に書き込むBIDは、データバッファ1391に格納されているBIDを使用しても良いし、テープライブラリ1401への書き込み時にID制御部1365がBIDを各ブロックに付加しても良い。尚、ドライブIF制御部1364は、F-BIDについては、磁気テープ1412に書き込まない。
ステップS1614において、ID制御部1325は、EOF1を書き込むWriteコマンド(Write(EOF1))を受信し、EOF1にBIDおよびF-BIDを付加する。データバッファ制御部1324は、EOF1をデータバッファ1391に書き込む。図3および4に示すようにEOF1がFile-1のEOF1の場合には、BID=n+2、F-BID=5が付加され、EOF1がFile-2のEOF1の場合には、BID=m+2、F-BID=11が付加される。
ステップS1615において、ID制御部1325は、EOF2を書き込むWriteコマンド(Write(EOF2))を受信し、EOF2にBIDおよびF-BIDを付加する。データバッファ制御部1324は、EOF2をデータバッファ1391に書き込む。図3および4に示すようにEOF2がFile-1のEOF1の場合には、BID=n+3、F-BID=5が付加され、EOF2がFile-2のEOF2の場合には、BID=m+3、F-BID=11が付加される。
ステップS1616において、ID制御部1325は、TMを書き込むWrite Tape Markコマンドを受信し、TMにBIDおよびF-BIDを付加する。データバッファ制御部1324は、TMをデータバッファ1391に書き込む。図3および4に示すようにTMがFile-1のEOF2の次のTMの場合には、BID=n+4、F-BID=6が付加され、TMがFile-2のEOF2の次のTMの場合には、BID=m+4、F-BID=12が付加される。
ステップS1617において、ドライブIF制御部1364は、データバッファ1391のデータのうち、磁気テープ1412に未書き込みのデータと該未書き込みのデータのBIDをテープライブラリ1401の磁気テープ1412に書き込む。詳細には、ドライブIF制御部1364は、EOF1、EOF2、およびTM、さらにこれらブロックに付加されているBIDを磁気テープ1412に書き込む。尚、磁気テープ1412に書き込むBIDは、データバッファ1391に格納されているBIDを使用しても良いし、テープライブラリ1401への書き込み時にID制御部1365がBIDを各ブロックに付加しても良い。尚、ドライブIF制御部1364は、F-BIDについては、磁気テープ1412に書き込まない。
ステップS1618において、TMを書き込むWrite Tape Markコマンドが受信された場合、制御はステップS1619に進み、Write Tape Markコマンド以外のコマンド(Writeコマンド)が受信された場合、制御はステップS1606に戻る。
ステップS1619において、ID制御部1325は、TMを書き込むWrite Tape Markコマンドを受信し、TMにBIDおよびF-BIDを付加する。データバッファ制御部1324は、TMをデータバッファ1391に書き込む。図3に示すようにシングルファイルテープフォーマットの場合には、BID=n+5、F-BID=7が付加され、図4に示すようにマルチファイルテープフォーマットの場合には、BID=m+5、F-BID=13が付加される。
ステップS1620において、ドライブIF制御部1364は、データバッファ1391のデータのうち、磁気テープ1412に未書き込みのデータと該未書き込みのデータのBIDをテープライブラリ1401の磁気テープ1412に書き込む。詳細には、ドライブIF制御部1364は、TM、さらに該TMに付加されているBIDを磁気テープ1412に書き込む。尚、磁気テープ1412に書き込むBIDは、データバッファ1391に格納されているBIDを使用しても良いし、テープライブラリ1401への書き込み時にID制御部1365がBIDを各ブロックに付加しても良い。尚、ドライブIF制御部1364は、F-BIDについては、磁気テープ1412に書き込まない。
ステップS1621において、Unloadコマンドが受信された場合、制御はステップS1622に進む。
ステップS1622において、ID制御部325は、Unloadコマンドを受信し、EODにBIDおよびF-BIDを付加する。データバッファ制御部1324は、EODをデータバッファ1391に書き込む。図3に示すようにシングルファイルテープフォーマットの場合には、BID=n+6、F-BID=8が付加され、図4に示すようにマルチファイルテープフォーマットの場合には、BID=m+6、F-BID=14が付加される。ドライブIF制御部1364は、EOD、さらにEODに付加されているBIDを磁気テープ1412に書き込む。尚、磁気テープ1412に書き込むBIDは、データバッファ1391に格納されているBIDを使用しても良いし、テープライブラリ1401への書き込み時にID制御部1365がBIDを各ブロックに付加しても良い。尚、ドライブIF制御部1364は、F-BIDについては、磁気テープ1412に書き込まない。磁気テープ1412へのEODの書き込み後、ドライブIF制御部1364は、VOLAAAをアンマウントする。
次に、第2の実施の形態の書き込みエラー発生時のエラーリカバリ処理について説明する。
図17は、書き込みエラー検出前および書き込みエラー検出時のデータバッファのF-BIDを示す図である。
図17の上部は、書き込みエラー検出前のF-BIDを示し、下部は書き込みエラー検出時のF-BIDを示す。
データバッファ1391には、VOLからDM-1までのブロックが格納され、図17の上部に示すようなF-BIDが付加されているとする。図17の上部に示すように、Data Block(D1〜DM-1)には、F-BID=3が付加されている。
ここで、データバッファ制御部1324は、データバッファ1391へのデータの書き込みをテープボリュームの先頭から順に行っており、ブロックDM-3のデータバッファ1391へ書き込み時に書き込みエラーが発生したとする。
ID制御部1325は、エラーが発生したブロックからブロックごとにF-BIDを1増加するようにデータバッファ1391のF-BIDを更新する。
これにより、図17の下部に示すようにエラーブロック(DM-3)からブロックごとに1ずつ増加するようにF-BIDが更新されている。すなわち、ブロックDM-3、DM-2、DM-1にそれぞれF-BID=4、5、6が付加されている。
F-BID=4〜6のブロック(DM-3〜DM-1)は、ディスクアレイ装置391に書き込まれていないため、これらは未書き込みデータ(ブロック)である。
図18は、第2の実施の形態に係る書き込みエラー発生時のホストの処理を示す図である。
ここでは、テープライブラリ1401のドライブ1413は複数あり(ドライブ#0、ドライブ#1)、ホスト1201は、複数のドライブ1413のうちのドライブ#0を用いてボリューム名がVOLAAAのテープボリュームを書き込む場合について説明する。
ステップS1701において、ホスト1201は、VOLAAAのマウントコマンドをテープライブラリ1401のドライブ#0に送信する。
ステップS1702において、ホスト1201は、テープ制御装置1301からの通知をチェックし、VOLAAAがドライブ#0にマウントされた通知を受信した場合、制御はステップS1703に進む。
ステップS1703において、ホスト1201は、ライトジョブを開始し、VOLを書き込むWriteコマンド(Write(VOL))を発行する。
ステップS1704において、ホスト1201は、HDR1を書き込むWriteコマンド(Write(HDR1))を発行する。
ステップS1705において、ホスト1201は、HDR2を書き込むWriteコマンド(Write(HDR2))を発行する。
ステップS1706において、ホスト1201は、TMを書き込むWrite Tape Markコマンドを発行する。
ステップS1707において、ホスト1201は、RBIDコマンドを発行し、テープ制御装置1301から受信したF-BIDを記憶する。受信したF-BIDは、Data Blockの先頭のブロックのF-BIDである。尚、記憶するF-BIDは、テープ制御装置1301から受信したBID情報に含まれるチャネルBIDとデバイスBIDのうちのチャネルBIDである。
ステップS1708において、ホスト1201は、Data BlockのD1からDNまでのブロックを書き込むWriteコマンド(Write(D1)、Write(D2)、〜、Write(DN))を連続で発行する。
ステップS1709において、ドライブ#0でエラーが発生した場合、制御はステップS1710に進み、エラーが発生しなかった場合、制御はステップS1711に進む。またエラーが発生した場合、ホスト1201は、Writeコマンドの発行を中断する。
ステップS1710において、ホスト1201は、エラーリカバリ処理を行う。尚、エラーリカバリ処理の詳細は後述する。また、ホスト1201は、Data BlockのDM以降のブロックを書き込むWriteコマンドの発行を中断したとする。
ステップS1711において、ホスト1201は、TMを書き込むWrite Tape Markコマンドを発行する。
ステップS1712において、ホスト1201は、EOF1を書き込むWriteコマンド(Write(EOF1))を発行する。
ステップS1713において、ホスト1201は、EOF2を書き込むWriteコマンド(Write(EOF2))を発行する。
ステップS1714において、ホスト1201は、TMを書き込むWrite Tape Markコマンドを発行する。
ステップS1715において、マルチファイル処理の場合、制御はステップS1506に戻り、マルチファイル処理でない場合(シングルファイル処理の場合)、制御はステップS1516に進む。
ステップS1716において、ホスト1201は、TMを書き込むWrite Tape Markコマンドおよびアンロードを行うUnloadコマンドをテープ制御装置1301に送信し、ジョブを終了する。
図19は、第2の実施の形態に係るエラーリカバリ処理の詳細なフローチャートである。
図19は、図18のステップS1710に対応する。
ここでは、書き込みエラーが発生し、図17に示すようにデータバッファ1391のF-BIDが更新された場合について述べる。すなわち、F-BID=4〜6のブロックは、テープライブラリ1401に書き込まれていない未書き込みデータである。
ステップS1721において、ホスト1201は、センスコマンドを発行し、テープ制御装置1301からエラー詳細情報(書き込みエラー)、センス情報として未書き込みデータ量を受信する。
ステップS1722において、ホスト1201は、RBIDコマンドを発行し、エラーが発生したブロック(エラーブロック)の位置(すなわち、エラーブロックのF-BID(=4))と未書き込みデータブロック数情報(=3)を受信する。尚、エラーブロックのF-BIDは、ホスト1201から受信したBID情報に含まれるデバイスBIDである。
ステップS1723において、ホスト1201は、未書き込みデータブロック数だけRead Bufferコマンドを発行し(すなわち、Read Bufferコマンドを3回発行し)、テープ制御装置1301から未書き込みデータを受信する。
ここでRead Bufferコマンドについて説明する。
テープ制御装置1301は、Read Bufferコマンドを受け取ると、テープ制御装置1301のデータバッファ1391に存在する未書き込みデータ(すなわち、テープライブラリ1401に未書き込みであるデータ)をF-BIDの大きい方から順に1ブロック分のデータをホスト1201に送信する。
ホスト1201は、1回目のRead Bufferコマンドの発行により、F-BID=6のブロックのデータ、2回目のRead Bufferコマンドの発行により、F-BID=5のブロックのデータ、3回目のRead Bufferコマンドの発行により、F-BID=4のブロックのデータを受信する。
ステップS1724において、ホスト1201は、エラーブロックの位置、未書き込みデータブロック数情報、および未書き込みデータをホスト1201内に記憶する。
ステップS1725において、ホスト1201は、VOLAAAをドライブ#0からアンマウントするUnloadコマンドをテープ制御装置1301に発行する。
ステップS1726において、ホスト1201がテープ制御装置1301からアンマウント完了の通知を受信すると、制御はステップS1727に進む。
ステップS1727において、ホスト1201は、VOLAAAを別のドライブ#1にマウントするマウントコマンドをテープ制御装置1301に送信する。
ステップS1728において、ホスト1201は、テープ制御装置1301からの通知をチェックし、VOLAAAがドライブ#1にマウントされた通知を受信した場合、制御はステップS1729に進む。
ステップS1729において、ホスト1201は、記憶したエラーブロック位置(F-BID=4)を元に、ドライブ#1のテープヘッドをエラーブロック位置に位置付けるLocateコマンド(Locate(4))を発行する。
ステップS1730において、ホスト1201は、記憶した未書き込みデータブロック数情報および未書き込みデータを元に、該未書き込みデータを書き込むWriteコマンドを未書き込みデータブロック数分(すなわち、3回)発行する。詳細には、ホスト1201は、1回目のWriteコマンドでF-BID=4の未書き込みデータを書き込むWriteコマンド、2回目のWriteコマンドでF-BID=5の未書き込みデータを書き込むWriteコマンド、3回目のWriteコマンドでF-BID=6の未書き込みデータを書き込むWriteコマンドを発行する。
ステップS1731において、ホスト1201は、中断したジョブのWriteコマンド、すなわちData BlockのDM〜DNを書き込むWriteコマンド((Write(DM)、Write(DM+1)、〜、Write(DN)))を連続で発行する。
図20は、第2の実施の形態に係る仮想テープ装置のエラーリカバリ処理のフローチャートである。
図20は、ホスト1201が図19のエラーリカバリ処理を行ったときのテープ制御装置1301の処理を示す。
先ず、テープ制御装置1301のデータバッファ1391には、図17の上部に示すようにF-BIDが付加されたテープボリュームのデータが格納されている。
図17で述べたように、書き込みエラーが発生すると、ID制御部1325は、データバッファ1391のテープボリュームのエラーが発生したブロックからブロックごとにF-BIDを1増加するようにF-BIDを更新する。
それにより、図17の下部に示すようなF-BIDが付加されたテープボリュームのデータがデータバッファ1391に格納されている。
図17で述べたように、F-BID=4のブロックでエラーが発生し、F-BID=4〜6のブロックは、テープライブラリ1401の磁気テープ1412に未書き込みである。
ステップS1801において、データバッファ制御部1324は、センスコマンドを受信し、テープライブラリ1401に未書き込みのデータ(すなわち、F=BID=4〜6のブロック)のサイズの合計(未書き込みデータ量)を算出する。データバッファ制御部1324は、センス情報として未書き込みデータ量および詳細エラー情報(書き込みエラー)をホスト1201に通知する。
ステップS1802において、データバッファ制御部1324は、RBIDコマンドを受信し、チャネルBID(=6)およびデバイスBID(=4)をBID情報としてホスト1201に通知し、さらに未書き込みデータブロック数(=3)をホスト1201に通知する。尚、上記チャネルBIDおよびデバイスBIDは、F-BIDの番号を用いる。
ステップS1803において、データバッファ制御部1324は、Read Bufferコマンドを3回受信し、1回目のRead Bufferコマンドに対してF-BID=6のブロックのデータをホスト1201に送信し、2回目のRead Bufferコマンドに対してF-BID=5のブロックのデータをホスト1201に送信し、3回目のRead Bufferコマンドに対してF-BID=4のブロックのデータをホスト1201に送信する。
ステップS1804において、テープ制御装置1301がドライブ#0のVOLAAAのアンマウントコマンドを受信した場合、制御はステップS1805に進む。
ステップS1805において、ドライブIF制御部1364は、VOLAAAをドライブ#0からアンマウントする。
ステップS1806において、テープ制御装置1301がドライブ#1へのVOLAAAのマウントコマンドを受信した場合、制御はステップS1807に進む。
ステップS1807において、ドライブIF制御部1364は、VOLAAAをドライブ#1にマウントし、VOLAAAがドライブ#1にマウントされたことをホスト1201に通知する。
ステップS1808において、ドライブIF制御部1364は、Locateコマンド(Locate(4))を受信し、ドライブ#1のテープヘッドをF-BID=3の後端のブロックとエラーブロック(F-BID=4)との間に位置付ける。すなわち、テープヘッドを書き込み済みのブロックの後ろ、すなわちエラーブロックの先頭に位置付けることにより、エラーブロックの位置から書き込みできるようにする。尚、テープライブラリ1401では、BIDを用いてブロックの位置を管理しているため、ドライブIF制御部1364は、管理テーブル1393を参照して、F-BIDに対応するBIDを取得して、BIDを用いてテープヘッドを位置付けている。
ステップS1809において、ID制御部325は、F-BID=4の未書き込みデータを書き込むWriteコマンドを受信し、該未書き込みデータにF-BID=3を付加し、データバッファ制御部1324は、該未書き込みデータをデータバッファ1391に再書き込み(上書き)する。すなわち、ID制御部325は、エラーリカバリ時にエラーを検出しない場合に付加されるF-BIDと同様のF-BIDを付加する。また、ID制御部325は、BIDについても該未書き込みデータに付加している。
ステップS18109において、ID制御部325は、F-BID=5の未書き込みデータを書き込むWriteコマンドを受信し、該未書き込みデータにF-BID=3を付加し、データバッファ制御部1324は、該未書き込みデータをデータバッファ1391に再書き込み(上書き)する。すなわち、ID制御部325は、エラーリカバリ時にエラーを検出しない場合に付加されるF-BIDと同様のF-BIDを付加する。また、ID制御部325は、BIDについても該未書き込みデータに付加している。
ステップS1811において、ID制御部325は、F-BID=6の未書き込みデータを書き込むWriteコマンドを受信し、該未書き込みデータにF-BID=3を付加し、データバッファ制御部1324は、該未書き込みデータをデータバッファ1391に再書き込み(上書き)する。すなわち、ID制御部325は、エラーリカバリ時にエラーを検出しない場合に付加されるF-BIDと同様のF-BIDを付加する。また、ID制御部325は、BIDについても該未書き込みデータに付加している。
ステップS1809〜S1811において、ID制御部1325は、図3、4で述べたF-BIDの更新ルールに従って、F-BIDを付加する。それにより、ID制御部1325は、未書き込みデータに、エラーが発生する前に該未書き込みデータに付加されていたF-BID(=3)と同じF-BIDを付加している。
ステップS1812において、ドライブIF制御部1364は、未書き込みデータとBIDをテープライブラリ1401に書き込む。詳細には、ドライブIF制御部1364は、ステップS1809〜S1811でデータバッファ1391に書き込まれた未書き込みデータと該未書き込みデータのBIDをテープライブラリ1401に書き込む。尚、BIDは、データバッファ1391に格納されているBIDを用いても良いし、ID制御部1365が付加してもよい。
第2の実施の形態のシステムによれば、テープ制御装置とホスト間のテータバッファの制御では、F-BIDを用いるため、ホストは、137GB以上のテープボリュームを管理できる。
第2の実施の形態のシステムによれば、36トラックテープを制御するOS(F-BID22ビット制御)を使用して、22ビットのBIDを用いたOSが管理できる容量を超えた位置(137GBを超えた領域)で書き込みエラーが発生した場合、エラーしたブロック位置およびそれに続く未書き込みブロック位置が特定でき、エラーリカバリが可能となる。
101 システム
201 ホスト
301 仮想テープ装置
311 ICP
321 CPU
322 ホストIF制御部
324 ディスクアレイ制御部
325 ID制御部
326 ロボット制御部
331 メモリ
332 ホストIFドライバ
333 データバッファ
334 ディスクアレイドライバ
335 F-BID/BID制御プログラム
336 ロボット制御ドライバ
341 FCカード
351 IDP
361 CPU
362 ディスクアレイ制御部
364 テープドライブ制御部
365 ID制御部
371 メモリ
372 ディスクアレイドライバ
373 データバッファ
374 テープドライバ
375 F-BID/BID制御プログラム
381 FCカード
391 ディスクアレイ装置
392 テープボリューム
393 管理テーブル
401 テープライブラリ
411 ロボット
412 磁気テープ
413 ドライブ
1101 システム
1201 ホスト
1301 テープ制御装置
1311 ホストインタフェース制御部
1321 CPU
1322 ホストIF制御部
1324 データバッファ制御部
1325 ID制御部
1326 ロボット制御部
1331 メモリ
1332 ホストIFプログラム
1334 データバッファ制御プログラム
1335 F-BID/BID制御プログラム
1336 ロボットIF制御プログラム
1341 ホストIF制御回路
1342 データバッファ制御回路
1351 フォーマット制御部
1361 CPU
1362 データバッファ制御部
1364 ドライブIF制御部
1365 ID制御部
1371 メモリ
1372 データバッファ制御プログラム
1374 ドライブIF制御プログラム
1375 F-BID/BID制御プログラム
1381 データバッファ制御回路
1382 ドライブIF制御回路
1391 データバッファ
1392 テープボリューム
1393 管理テーブル
1401 テープライブラリ
1411 ロボット
1412 磁気テープ
1413 ドライブ

Claims (8)

  1. 上位装置および磁気テープを有するテープライブラリ装置と接続し、仮想的なテープ装置のテープボリュームを格納する仮想テープ装置であって、
    複数のブロックを含む前記テープボリュームを格納する記憶部と、
    前記テープボリュームのブロック毎に番号が増加する第1の識別番号と、前記テープボリュームの先頭ブロックの次のブロック、ファイルの区切りを示すテープマーク、および前記テープマークの次のブロックのみで番号が増加する第2の識別番号とを、前記テープボリュームの各ブロックに付加する識別子制御部と、
    前記仮想テープ装置と前記上位装置との間で、前記第2の識別番号を用いて前記記憶部に格納される前記テープボリュームの読み書きを制御する第1の制御部と、
    前記テープボリュームと前記第1の識別番号を前記テープライブラリ装置に書き込み、前記第1の識別番号を用いて前記テープライブラリ装置を制御する第2の制御部と、
    を備える仮想テープ装置。
  2. 前記テープボリュームを格納するバッファをさらに備え、
    前記第1の制御部は、前記テープボリュームを前記記憶部に格納する前に、前記バッファに前記テープボリュームを格納し、
    前記識別子制御部は、前記バッファの前記テープボリュームの各ブロックに前記第1の識別番号および前記第2の識別番号を付加し、前記第1の制御部が前記記憶部に前記テープボリュームを書き込む際にエラーが発生した場合、前記バッファの前記エラーが発生したブロックおよび該エラーが発生したブロック以降のブロックの前記第2の識別番号をブロック毎に番号が増加するように更新することを特徴とする請求項1記載の仮想テープ装置。
  3. 前記第1の制御部は、
    前記バッファの前記エラーが発生したブロックおよび該エラーが発生したブロック以降のブロックを前記上位装置に送信し、
    前記上位装置から前記エラーが発生したブロックおよび該エラーが発生したブロック以降のブロックを受信し、
    受信した前記エラーが発生したブロックおよび該エラーが発生したブロック以降のブロックを前記バッファに格納し、
    前記識別子制御部は、前記エラーが発生したブロックおよび該エラーが発生したブロック以降のブロックに、前記エラーが発生する前に付加されていた前記第2の識別番号と同じ番号の前記第2の識別番号を前記エラーが発生したブロックおよび該エラーが発生したブロック以降のブロックに付加することを特徴とする請求項2記載の仮想テープ装置。
  4. 上位装置および磁気テープを有するテープライブラリ装置と接続し、仮想的なテープ装置のテープボリュームを格納する仮想テープ装置が実行するテープ制御方法であって、
    複数のブロックを含む前記テープボリュームを格納し、
    前記テープボリュームのブロック毎に番号が増加する第1の識別番号と、前記テープボリュームの先頭ブロックの次のブロック、ファイルの区切りを示すテープマーク、および前記テープマークの次のブロックのみで番号が増加する第2の識別番号とを、前記テープボリュームの各ブロックに付加し、
    前記仮想テープ装置と前記上位装置との間で、前記第2の識別番号を用いて前記テープボリュームの読み書きを制御し、
    前記テープボリュームと前記第1の識別番号を前記テープライブラリ装置に書き込む、
    処理を備えるテープ制御方法。
  5. 上位装置および磁気テープを有するテープライブラリ装置と接続し、テープボリュームを格納するテープ制御装置であって、
    複数のブロックを含む前記テープボリュームを格納するバッファと、
    前記テープボリュームのブロック毎に番号が増加する第1の識別番号と、前記テープボリュームの先頭ブロックの次のブロック、ファイルの区切りを示すテープマーク、および前記テープマークの次のブロックのみで番号が増加する第2の識別番号とを、前記テープボリュームの各ブロックに付加する識別子制御部と、
    前記テープ制御装置と前記上位装置との間で、前記第2の識別番号を用いて前記バッファに格納される前記テープボリュームの読み書きを制御する第1の制御部と、
    前記テープボリュームと前記第1の識別番号を前記テープライブラリ装置に書き込み、前記第1の識別番号を用いて前記テープライブラリ装置を制御する第2の制御部と、
    を備えるテープ制御装置。
  6. 前記識別子制御部は、前記第2の制御部が前記テープライブラリ装置に前記テープボリュームを書き込む際にエラーが発生した場合、前記エラーが発生したブロックおよび該エラーが発生したブロック以降のブロックの前記第2の識別番号をブロック毎に番号が増加するように更新することを特徴とする請求項5記載のテープ制御装置。
  7. 前記第1の制御部は、
    前記バッファの前記エラーが発生したブロックおよび該エラーが発生したブロック以降のブロックを前記上位装置に送信し、
    前記上位装置から前記エラーが発生したブロックおよび該エラーが発生したブロック以降のブロックを受信し、
    受信した前記エラーが発生したブロックおよび該エラーが発生したブロック以降のブロックを前記バッファに格納し、
    前記識別子制御部は、前記エラーが発生したブロックおよび該エラーが発生したブロック以降のブロックに、前記エラーが発生する前に付加されていた前記第2の識別番号と同じ番号の前記第2の識別番号を前記エラーが発生したブロックおよび該エラーが発生したブロック以降のブロックに付加することを特徴とする請求項6記載のテープ制御装置。
  8. 上位装置および磁気テープを有するテープライブラリ装置と接続し、テープボリュームを格納するテープ制御装置が実行するテープ制御方法であって、
    複数のブロックを含む前記テープボリュームを格納し、
    前記テープボリュームのブロック毎に番号が増加する第1の識別番号と、前記テープボリュームの先頭ブロックの次のブロック、ファイルの区切りを示すテープマーク、および前記テープマークの次のブロックのみで番号が増加する第2の識別番号とを、前記テープボリュームの各ブロックに付加し、
    前記テープ制御装置と前記上位装置との間で、前記第2の識別番号を用いて前記テープボリュームの読み書きを制御し、
    前記テープボリュームと前記第1の識別番号を前記テープライブラリ装置に書き込む、
    処理を備えるテープ制御方法。
JP2013064010A 2013-03-26 2013-03-26 仮想テープ装置、テープ制御装置、およびテープ制御方法 Expired - Fee Related JP6089856B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013064010A JP6089856B2 (ja) 2013-03-26 2013-03-26 仮想テープ装置、テープ制御装置、およびテープ制御方法
US14/205,503 US20140298084A1 (en) 2013-03-26 2014-03-12 Virtual tape device, tape control device, and tape control method
EP14160114.6A EP2784658A1 (en) 2013-03-26 2014-03-14 Virtual tape device, tape control device, and tape control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013064010A JP6089856B2 (ja) 2013-03-26 2013-03-26 仮想テープ装置、テープ制御装置、およびテープ制御方法

Publications (2)

Publication Number Publication Date
JP2014191412A JP2014191412A (ja) 2014-10-06
JP6089856B2 true JP6089856B2 (ja) 2017-03-08

Family

ID=50488972

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013064010A Expired - Fee Related JP6089856B2 (ja) 2013-03-26 2013-03-26 仮想テープ装置、テープ制御装置、およびテープ制御方法

Country Status (3)

Country Link
US (1) US20140298084A1 (ja)
EP (1) EP2784658A1 (ja)
JP (1) JP6089856B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015005089A (ja) * 2013-06-20 2015-01-08 富士通株式会社 ストレージシステム、制御装置および制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450250A (en) 1992-02-28 1995-09-12 E-Systems, Inc. Method for transparently marking the location of data files on recording media
JPH05241736A (ja) 1992-02-28 1993-09-21 Fujitsu Ltd 磁気テープ記憶装置のファイル制御方法
JP2840511B2 (ja) * 1992-12-10 1998-12-24 富士通株式会社 磁気テープ装置を用いたサブシステムのエラー回復処理装置及び方法
CA2244626A1 (en) * 1998-07-31 2000-01-31 Kom Inc. A hardware and software system
US6339810B1 (en) * 2000-01-11 2002-01-15 International Business Machines Corporation Serial data storage system with automatically adjusted data protection to implement worm media with limited overwrite allowing write appending
US6834324B1 (en) * 2000-04-10 2004-12-21 Storage Technology Corporation System and method for virtual tape volumes
JP3456530B2 (ja) * 2000-08-01 2003-10-14 日本電気株式会社 磁気テープ処理装置
US6868487B2 (en) * 2001-10-01 2005-03-15 International Business Machines Corporation Data storage device and method for storing information using alternate information storage architectures
US7761284B2 (en) * 2004-08-30 2010-07-20 Overland Storage, Inc. Tape emulating disk based storage system and method with automatically resized emulated tape capacity
US20070136517A1 (en) * 2005-11-29 2007-06-14 Quantum Corporation Use of directory revision number to validate directory
JP2008083845A (ja) * 2006-09-26 2008-04-10 Hitachi Ltd ストレージ装置及びストレージシステム並びにデータ読出し方法
WO2012042661A1 (ja) * 2010-10-01 2012-04-05 富士通株式会社 ドライブ制御装置、ドライブ制御方法およびストレージ装置

Also Published As

Publication number Publication date
EP2784658A1 (en) 2014-10-01
US20140298084A1 (en) 2014-10-02
JP2014191412A (ja) 2014-10-06

Similar Documents

Publication Publication Date Title
JP5089591B2 (ja) 順次アクセス・データ・ストレージ・サブシステム内で検索操作を実行するためのシステムおよび方法
EP2165262B1 (en) Storage subsystem with configurable buffer
US6098129A (en) Communications system/method from host having variable-length format to variable-length format first I/O subsystem or fixed-length format second I/O subsystem using table for subsystem determination
US7685374B2 (en) Multi-interface and multi-bus structured solid-state storage subsystem
CN1326026C (zh) 将数据净荷从第一扇区格式转换成第二扇区格式的系统和方法
JP5014784B2 (ja) 複数のストレージ装置タイプをサポートするネットワーク接続ストレージシステム、装置、および方法
US7444469B2 (en) Storing information regarding operation of an automated data storage library to memory and to a reserved cartridge
JP2009507304A5 (ja)
US20100049924A1 (en) Offsite management using disk based tape library and vault system
US8549243B2 (en) Regeneration of deleted data
JP2000207137A (ja) 情報記憶装置
US20060047894A1 (en) Data recording apparatus, and data recording control method and program
US8856436B2 (en) Locating host data records on a physical stacked volume
JP6089856B2 (ja) 仮想テープ装置、テープ制御装置、およびテープ制御方法
US20030225966A1 (en) Serverless network data storage operation managed by peripheral device
JP4452269B2 (ja) データ書込みパフォーマンスが改善されたテープ記録装置、及びそのデータ書込み制御方法
JP2014071487A (ja) ファイル記録装置、フィルシステム管理方法およびチェンジャドライブ
JP4732218B2 (ja) 再生装置
WO2014059800A1 (zh) 数据交互方法及装置
JPWO2017090517A1 (ja) ソフトウェアストレージユニット、バックアップ方法、およびバックアップ制御プログラムが記録された記録媒体
JP5621246B2 (ja) ディスクエンクロージャ及びストレージシステムの制御方法
JP4075790B2 (ja) 複合計算機システムおよび複合i/oシステム
JP2005038290A (ja) ディスク制御装置及びディスク制御装置の制御方法
KR20150139107A (ko) 광 디스크 기반 아카이브 시스템에서 데이터 관리 방법
JP2009093570A (ja) 情報記録再生装置、データ記録方法、およびデータ記録プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161202

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: 20170110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170123

R150 Certificate of patent or registration of utility model

Ref document number: 6089856

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees