JP5435143B2 - ドライブ制御装置、ドライブ制御方法およびストレージ装置 - Google Patents

ドライブ制御装置、ドライブ制御方法およびストレージ装置 Download PDF

Info

Publication number
JP5435143B2
JP5435143B2 JP2012536106A JP2012536106A JP5435143B2 JP 5435143 B2 JP5435143 B2 JP 5435143B2 JP 2012536106 A JP2012536106 A JP 2012536106A JP 2012536106 A JP2012536106 A JP 2012536106A JP 5435143 B2 JP5435143 B2 JP 5435143B2
Authority
JP
Japan
Prior art keywords
address
data
tape
drive
unit
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
JP2012536106A
Other languages
English (en)
Other versions
JPWO2012042661A1 (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
Publication of JPWO2012042661A1 publication Critical patent/JPWO2012042661A1/ja
Application granted granted Critical
Publication of JP5435143B2 publication Critical patent/JP5435143B2/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
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • 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/0608Saving storage space on storage systems
    • 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/0673Single storage device
    • G06F3/0682Tape device
    • 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
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1816Testing
    • G11B2020/1826Testing wherein a defect list or error map is generated
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers
    • G11B2220/95Serpentine format, wherein a single track or group of tracks traverses the tape plural times from one end to the other
    • G11B2220/956Linear tape open [LTO] format

Description

本発明はドライブ制御装置、ドライブ制御方法およびストレージ装置に関する。
データのバックアップ等の用途に用いられる記憶装置として、磁気テープが知られている。
磁気テープへの書き込みを管理するコンピュータは、磁気テープ内のデータの書き込み位置を管理することにより、書き込みエラーが発生した場合のデータのリカバリを実行する。リカバリ方法として、例えばテープに対し書き込みエラーが発生した位置を特定し、特定した位置から再度データの書き込みを実行する技術が知られている。
特開平5−54551号公報 特開2005−122433号公報
コンピュータに搭載されるOS(Operating System)やミドルウェア等の仕様、または、テープドライブの磁気ヘッドがテープに書き込めるトラック数等により、ホストコンピュータ側が認識できるテープの容量が決定される。
例えば、OSが22ビット(3FFFFFh)の値でテープの容量を管理しており、テープへのデータの書き込みが、例えば1ブロック32kBのブロック単位で行われる場合、管理できる容量は、137GB(=222×32kB)となる。
しかしながら、近年、記憶容量が800GBを超えるもの等、大容量のテープが主流になってきている。
例えば、22ビットの値でテープの容量を管理するOSを使用して容量が800GBのテープに書き込みを行う場合、OSが管理できる容量である137GBを超えてもテープにデータを書き込むことはできる。
しかしながら、OSが管理できる容量を超えた位置で書き込みエラーが発生した場合、OSは、エラーが発生した位置が特定できずにデータのリカバリができない。従って、リスク管理の観点から、OSが管理できる容量内でテープを使用することになり、大容量のテープの記憶領域を有効に活用できないという問題がある。
本発明はこのような点に鑑みてなされたものであり、記憶媒体の使用領域を増やすことができるドライブ制御装置、ドライブ制御方法およびストレージ装置を提供することを目的とする。
上記目的を達成するために、開示のドライブ制御装置が提供される。このドライブ制御装置は、管理部と、検出部と、通知部とを有している。
管理部は、データがシーケンシャルに書き込まれる媒体のデータの書き込み位置を識別し、当該ドライブ制御装置に接続された接続装置が管理可能な番地より大きい番地を含む第1の番地と接続装置に媒体のデータの書き込み位置を識別させる第2の番地との対応関係を管理する。
検出部は、媒体にデータを書き込むドライブのデータの書き込み失敗を検出する。
通知部は、検出部の検出に応じて書き込みが失敗した媒体の位置の第2の番地を接続装置に通知する。
記憶媒体の使用領域を増やすことができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態のドライブ制御装置の概要を示す図である。 第2の実施の形態のライブラリシステムの構成を示すブロック図である。 磁気テープ装置の構成を示すブロック図である。 ドライブ制御部の機能を示すブロック図である。 ドライブ種別管理情報を示す図である。 仮想ブロックID比率管理情報を示す図である。 ブロックID管理情報を示す図である。 ドライブ制御部の処理を示すフローチャートである。 コマンド処理を示すフローチャートである。 WRコマンド処理を示すフローチャートである。 RDBIDコマンド処理を示すフローチャートである。 LOCATEコマンド処理を示すフローチャートである。 WR再コマンド処理を示すフローチャートである。 ライブラリシステムの処理の具体例を示す図である。
以下、実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態のドライブ制御装置について説明し、その後、実施の形態をより具体的に説明する。
<第1の実施の形態>
図1は、第1の実施の形態のドライブ制御装置の概要を示す図である。
実施の形態のドライブ制御装置(コンピュータ)1は、上位装置4の指示に応じてドライブ3を制御する装置である。
ドライブ制御装置1は、ドライブ3および上位装置4に接続されている。上位装置4は、例えば1ブロック32kBのブロック単位で磁気テープ(以下、単にテープと言う)2の領域を1つのデータに割り当てる。上位装置4は、テープ2に書き込まれた1つのブロックを1つの番地で管理する。
上位装置4が管理できるテープ2の番地は、例えばOSやミドルウェア等の仕様、または、ドライブ3の磁気ヘッドがテープ2に書き込めるトラック数等により定まる。
本実施の形態では、ドライブ制御装置1が、ドライブ3の磁気ヘッドがテープ2に書き込めるトラック数を上位装置4側に予め通知する。上位装置4は、通知されたトラック数に応じて管理できるテープ2の番地を決定する。ここで、「管理できる」とは、テープ2の書き込み位置が特定できることを意味する。例えば、トラック数が36本の場合、上位装置4は、22ビット、すなわち3FFFFFh番地までテープ2を管理できると判断する。本実施の形態では、1ブロックが32kBであるので、上位装置4が管理できる容量は、137GB(222×32kB)になる。例えば、テープ2の容量が256GBである場合、137GBを超えた領域は、管理できないことになる。
第1の実施の形態では説明の便宜上、テープの容量は512kB(16ブロック×32kB)であるものとする。また、上位装置4は、256kB(23×32kB)の容量、すなわち、番地「8h」まで管理できるものとする。この場合、上位装置4は、書き込みエラーが発生した箇所として番地「1h」〜「8h」が通知された場合、エラーが発生した箇所を特定することができる。しかし、上位装置4は、256kBを超えた番地「9h」以降は管理不能であり、書き込みエラーが発生した箇所として番地「9h」が通知されても、エラーが発生した箇所を特定することはできない。
上位装置4は、上位装置4が有するブロック毎に区分けされたデータA〜データPをテープ2に書き込むようドライブ3に指示する。
ドライブ制御装置1は、上位装置4が書き込みを指示したデータA〜データPをテープ2に書き込むようドライブ3に指示する。ドライブ3は、ドライブ制御装置1の指示に応じてデータA〜データPをシーケンシャルにテープ2に書き込む。
ドライブ制御装置1は、管理部1aと、検出部1bと、通知部1cと書き込み指示部1dとを有している。
管理部1aは、第1の番地と第2の番地を管理している。第1の番地は、テープ2に書き込まれる1つのブロックを1つの番地に対応付けた番地である。第1の番地により、ドライブ制御装置1は、テープ2の書き込み位置を識別することができる。また、第1の番地は、上位装置4が識別できない番地「9h」〜「10h」を含んでいる。ここで、第1の番地は、上位装置4の番地を管理する単位と同じ単位である。
第2の番地は、上位装置4にテープ2のデータの書き込み位置を識別させる番地である。本実施の形態では、第2の番地は、テープ2に書き込まれる2つのブロックを1つの番地に対応付けた番地「1h」〜「8h」で構成されている。このような番地構成にすることで、上位装置4は、第2の番地のどの番地が通知されても、通知された番地を識別することができる。
ドライブ制御装置1は、この第1の番地と第2の番地を決定する決定部1eをさらに有することができる。
決定部1eは、テープ2の最大容量に応じて、第1の番地に対する所定の比率で第2の番地を決定する。例えば、ドライブ3にマウントされているテープの最大容量が800GBであれば、このテープに書き込まれる8つのブロックを1つの番地で管理するように第2の番地を決定する。この決定により、1024GB(222×32kB×8)の容量まで第2の番地で管理することができる。
検出部1bは、ドライブ3のテープ2へのデータの書き込み失敗を検出する。ここで書き込み失敗とは、テープ2の不良や、ドライブ3の不良等によりテープ2のあるブロックにデータが書き込めなかったことを言う。図1では、データNの書き込み失敗を検出している様子を図示している。
検出部1bは、管理部1aが管理する第1の番地と第2の番地の対応関係に基づいて、書き込み失敗が発生した第2の番地を特定し、通知部1cに通知する。なお、第2の番地を特定する機能は、通知部1cが有していてもよい。
通知部1cは、検出部1bの書き込み失敗の検出に応じてテープ2の書き込みが失敗した第2の番地を上位装置4に通知する。
図1では、データNの書き込み失敗を検出しているため、通知部1cは、データNの第2の番地「7h」を上位装置4に通知する。なお、上位装置4側は、第1の番地であるか第2の番地であるかを識別できないので、通知部1cは、単に番地「7h」を上位装置4に通知する。
上位装置4は、番地「7h」が通知されたので、この番地「7h」から再度データを書き込む指示をドライブ制御装置1に与える。そして、上位装置4が管理する番地「7h」に存在するデータGをドライブ制御装置1に送信する。
書き込み指示部1dは、上位装置4の番地「7h」からデータをテープ2に書き込む指示に基づいて、上位装置4に通知した番地「7h」に一致する第1の番地「7h」から、第2の番地「7h」に対応する第1の番地「Eh」に至るまではデータをテープに書き込まず、第1の番地「Eh」からデータをテープ2に書き込むようドライブ3に指示する。
具体的には、書き込み指示部1dは、上位装置4から書き込まれるデータが、第1の番地「7h」のデータから開始すると判断し、書き込みを開始する第1の番地「Eh」まで、いくつのデータが送られてくるかを判断する。その結果、第1の番地「7h」から第1の番地「Eh」に至るまで、7個のデータが送られてくると判断する。そして、書き込み指示部1dは、8個目のデータを第1の番地「Eh」に書き込むようドライブ3に指示する。
なお、書き込み指示部1dは、上位装置4から受信したデータGは、既にテープに正常に書き込まれているため、ドライブ3に書き込みを指示せず、正常に書き込みが行われたことを上位装置4に応答する。その後、上位装置4から順次データH、データI、・・・が送られているが、これらのデータも既にテープ2に正常に書き込まれているため、ドライブ3に書き込みを指示せず、正常に書き込みが行われたことを上位装置4に応答する。この処理により、再書き込み処理を高速に実行することができる。その後、上位装置4からデータNが送られてくると、このデータNをテープ2に書き込むようドライブ3に指示する。以降、書き込み指示部1dは、上位装置4から受け付けたデータをシーケンシャルにテープ2に書き込むようドライブ3に指示する。
なお、図1では、書き込みを行わないデータを「空」で表し、書き込みを行うデータを「実」で表している。
このドライブ制御装置1によれば、上位装置4が管理不能な領域にてデータの書き込みが失敗した場合でも第2の番地でその領域を特定し、上位装置4側に第2の番地を伝えることで、上位装置4側のデータの再書き込みを可能とすることができる。この書き込みにより、テープ2の記憶領域を有効に使用することができ、テープ2の使用領域を増やすことができる。
なお、本実施の形態では、通知部1cは、検出部1bの書き込み失敗の検出に応じてテープ2の書き込みが失敗した第2の番地を上位装置4に通知するものとして説明した。しかし、上位装置4が管理不能な領域で書き込み失敗を検出した場合、第2の番地を上位装置4に通知し、上位装置4が管理可能な領域で書き込み失敗を検出した場合、第1の番地を上位装置に通知するようにしてもよい。そして、書き込み指示部1dは、上位装置4の番地を指定したデータをテープ2に書き込む指示に基づいて、指定された番地からデータをテープ2に書き込むようドライブ3に指示するようにしてもよい。上位装置4が管理可能な領域で書き込み失敗を検出した場合の処理と、上位装置4が管理不能な領域で書き込み失敗を検出した場合の処理を区別して行うことにより、上位装置4が管理可能な領域で書き込み失敗を検出したときのテープ2へのデータの再書き込み処理を高速に行うことができる。
また、本実施の形態では、第1の番地と第2の番地を一定比率で管理する方法を説明した。しかし、これに限らず、例えば、第2の番地は、第1の番地から一定数を減算した番地に設定する等、上位装置4が管理不能なテープ2の位置をドライブ制御装置1側で特定可能なように第2の番地を設定すればよい。
また、本実施の形態では、通知部1cは、データNの第2の番地「7h」を上位装置4に通知するようにした。しかし、これに限らず、通知部1cは、書き込み失敗を検出した位置にかかわらず、上位装置4が識別できる番地のうち、最大の番地「8h」を上位装置4に通知するようにしてもよい。この場合、上位装置4からは、この番地「8h」から再度データを書き込む指示がドライブ制御装置1に与えられる。この場合、書き込み指示部1dは、上位装置4に通知した番地「8h」に一致する第1の番地「8h」から、第1の番地「Eh」に至るまではデータをテープに書き込まず、第1の番地「Eh」からデータをテープ2に書き込むようドライブ3に指示する。これにより、上位装置4が送信するデータの数を減らすことができる。
なお、検出部1b、通知部1c、書き込み指示部1dおよび決定部1eは、ドライブ制御装置1が有するCPU(Central Processing Unit)が備える機能により実現することができる。また、管理部1aが記憶する第1の番地と第2の番地の対応関係は、ドライブ制御装置1が有するRAM(Random Access Memory)やハードディスクドライブ(HDD:Hard Disk Drive)等に記憶しておくことができる。
以下、実施の形態をより具体的に説明する。
<第2の実施の形態>
図2は、第2の実施の形態のライブラリシステムの構成を示すブロック図である。
ライブラリシステム100は、ホストコンピュータ10と、磁気テープ装置20、30と、搬送機構部40と、カートリッジテープ収納棚50とを有している。
磁気テープ装置20、30は、ストレージ装置の一例である。これらの磁気テープ装置20、30は、LAN等の通信回線でホストコンピュータ10に接続されている。
ホストコンピュータ10は、磁気テープ装置20および磁気テープ装置30に接続されている。ホストコンピュータ10は、1ブロック32kBのブロック単位で磁気テープ装置20または磁気テープ装置30にマウントされたテープ51の領域を1つのデータに割り当てる。ホストコンピュータ10は、テープに書き込まれた1つのブロックを1つの物理ブロックIDで管理する。なお、テープの種別は、例えばLTO(Liner Tape Open)規格のテープ等が挙げられる。
本実施の形態では、磁気テープ装置20および磁気テープ装置30が、後述するテープドライブの磁気ヘッドがテープ51に書き込めるトラック数をホストコンピュータ10側に予め通知する。ホストコンピュータ10は、通知されたトラック数に応じて管理できるテープ51の物理ブロックIDを決定する。例えば、トラック数が36本の場合、ホストコンピュータ10は、22ビット、すなわち、物理ブロックID=3FFFFFhまでテープ51を管理できると判断する。この場合、1ブロックが32kBであるので、ホストコンピュータ10が管理できる容量は、137GB(222×32kB)になる。他方、トラック数が128本の場合、ホストコンピュータ10は、32ビット、すなわち、物理ブロックID=FFFFFFFFhまでテープ51を管理できると判断する。この場合、ホストコンピュータ10が管理できる容量は、140TB(232×32kB)になる。
このホストコンピュータ10は、磁気テープ装置20および磁気テープ装置30を制御する指令を出力する。
また、ホストコンピュータ10は、磁気テープ装置20または磁気テープ装置30自体の故障、または、テープの不良等の原因により、磁気テープ装置20または磁気テープ装置30からデータをテープに書き込めないエラー(以下、データ書き込みエラーと言う)を受け取ると、DDR(Dynamic Drive Recovery)処理を実行する。このDDR処理は、後述するRDBID(Read Block ID)コマンドおよびLOCATEコマンドを、データ書き込みエラーを通知した磁気テープ装置20または磁気テープ装置30に発行することで、データ書き込みエラーが発生した位置から再度データを書き込む処理である。
磁気テープ装置20、30は、ホストコンピュータ10が出力する指令に基づいて、マウント(搭載)されているテープ51にデータを書き込んだり、テープ51からデータを読み出したりする。
搬送機構部40は、ホストコンピュータ10の要求に基づく磁気テープ装置20または磁気テープ装置30の指示により、カートリッジテープ収納棚50と磁気テープ装置20または磁気テープ装置30との間でテープを搬送する機構を有している。
この搬送機構部40は、バーコードリーダ41を有している。バーコードリーダ41は、テープ51aに付されているバーコードを読み取り、テープ名等のテープに関する情報を取得する。例えば、搬送機構部40は、テープ51aのカートリッジテープ収納棚50への投入時や、ユーザの指示による任意のタイミングで、バーコードリーダ41によりカートリッジテープ収納棚50内をスキャンしてテープに貼り付けられたバーコードを読み取ることにより、テープ51の有無を確認する。そして、確認結果を磁気テープ装置20および磁気テープ装置30に送信する。磁気テープ装置20および磁気テープ装置30は、確認結果を取得してテープを管理する情報の作成や更新を行う。
カートリッジテープ収納棚50は、テープ51a、51b等の複数のテープ51を、それぞれ所定の位置に収納する。なお、カートリッジテープ収納棚50に収納されるテープ51は、複数の世代が混在していてもよい。本実施の形態では第1世代(G1)〜第4世代(G4)のものが混在している。
カートリッジテープ収納棚50に収納されているテープ51は、マウント履歴、記録データ量、エラー情報等の統計情報を記憶する非接触型ICタグであるカートリッジメモリを有する。テープ51には、既定の命名ルールに基づいて作成したバーコードラベルが貼り付けられ、カートリッジテープ収納棚50に収納される。各テープの位置は定められており、テープ51aの使用後は使用前と同一の位置に収納される。
磁気テープ装置20、30は、それぞれ、ホストコンピュータ10が有するテープ51(例えば、テープ51a)に対するデータの読み書きの要求に応じて、テープ51aを搬送機構部40によりカートリッジテープ収納棚50から取得して後述するドライブ装置に搬送し、テープ51aをドライブ装置にマウントする。そして、磁気テープ装置20、30は、ドライブ装置にマウントされたテープ51aのデータに対して、ホストコンピュータ10からの要求に応じてデータの読み書きを行う。そして、磁気テープ装置20、30は、データの読み書きの完了後に、ドライブ装置にテープ51aを排出させる。そして、搬送機構部40にカートリッジテープ収納棚50の元の位置にテープ51aを収納させる。
次に、磁気テープ装置20、30の構成を詳しく説明する。磁気テープ装置20、30の構成は等しいので、代表して磁気テープ装置20の構成を説明する。
図3は、磁気テープ装置の構成を示すブロック図である。
磁気テープ装置20は、ドライブ制御部(MTC)21と、複数のドライブ装置22、23、24、25と、電源制御部26とを有している。
ドライブ制御部21は、ホストコンピュータ10の指示に従いドライブ装置22、23、24、25にそれぞれデータを書き込んだり読み取ったりする指示を与える。ドライブ装置22、23、24、25は、それぞれデータの書き込みおよびデータの読み出しをブロック単位で行う。本実施の形態では、1ブロックは、32kBである。
ドライブ制御部21は、CPU21aと、メモリ21bと、ホストI/F処理部21cと、ドライブI/F制御部21dと、通信処理部21eとを有している。
CPU21aは、ドライブ制御部21全体を制御している。CPU21aには、バス21fを介してメモリ21b、ホストI/F処理部21c、ドライブI/F制御部21dが接続されている。
メモリ21bは、ドライブ制御部21の主記憶装置として使用される。メモリ21bには、CPU21aに実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ21bには、CPU21aによる処理に必要な各種データが格納される。
ホストI/F処理部21cは、ホストコンピュータ10が出力する指令を受け付ける等、ホストコンピュータ10との通信を行う。ホストコンピュータ10から送信された要求は、このホストI/F処理部21cで解釈され、CPU21aに伝えられる。またホストI/F処理部21cは、ホストコンピュータ10からの要求に対して磁気テープ装置20内で処理された結果を示す応答を、ホストコンピュータ10に送信する。
ドライブI/F制御部21dは、ドライブ装置22、23、24、25の各I/F制御部(例えばI/F制御部22b)に接続されている。ドライブI/F制御部21dは、各I/F制御部との間でデータをやりとりする。
通信処理部21eは、CPU21aに接続されている。通信処理部21eは、CPU21aの指示に応じてドライブ制御部31が有する通信処理部31eとの間でデータをやりとりする。
ドライブ装置22、23、24、25は、テープに記憶されたデータの再生機能と、テープにデータを記憶する記憶機能とを有する。
ドライブ装置22は、処理できるテープのトラック数が、最大36トラックである磁気ヘッドを有するテープドライブ22aを有している。処理できるトラック数が、最大36トラックであるテープドライブを有するドライブ装置を以下、「36TRKドライブ装置」と言う。ドライブ装置23は、36TRKドライブ装置である。
ドライブ装置24、25は、処理できるテープのトラック数が最大128トラックである磁気ヘッドを有するテープドライブ(図示せず)を有している。処理できるトラック数が、最大128トラックであるドライブ装置を以下、「128TRKドライブ装置」と言う。
電源制御部26は、ドライブ制御部21およびドライブ装置22、23、24、25に制御用電源および駆動用電源を供給する。
次に、データ書き込みエラーが発生したときのライブラリシステム100のエラー処理を簡単に説明する。
ドライブ制御部21は、ドライブ装置22、23、24、25のいずれかにデータ書き込みエラーが発生した場合、ホストコンピュータ10にエラーを返す。その後、ドライブ制御部21は、エラーが発生したドライブ装置にマウントされているテープを、搬送機構部40を操作して取り出し、磁気テープ装置20が有する別のドライブ装置にマウントする。
また、データ書き込みエラーが発生した場合、ドライブ制御部21は、データ書き込みエラーの発生をホストコンピュータ10に通知する。
ホストコンピュータ10は、DDR処理の実行を開始する。具体的には、ホストコンピュータ10は、RDBIDコマンドをドライブ制御部21に発行する。
RDBIDコマンドを受信したドライブ制御部21は、データ書き込みエラーが発生した物理ブロックIDが、ホストコンピュータ10が管理できる物理ブロックIDである場合、RDBIDコマンドに対し、物理ブロックIDを応答する。他方、データ書き込みエラーが発生した物理ブロックIDが、ホストコンピュータ10が管理できる物理ブロックIDを超えている場合、RDBIDコマンドに対し、後述する仮想ブロックIDを応答する。
その後、ホストコンピュータ10は、データ書き込みエラーが発生したテープに磁気ヘッドを位置づけるLOCATEコマンドをドライブ制御部21に発行する。
LOCATEコマンドを受信したドライブ制御部21は、データ書き込みエラーが発生した物理ブロックIDが、ホストコンピュータ10が管理できる物理ブロックIDである場合、実際にデータ書き込みエラーが発生した物理ブロックIDにより特定されるテープ51の位置に磁気ヘッドを位置づけるようドライブ装置に指示する。他方、データ書き込みエラーが発生した物理ブロックIDが、ホストコンピュータ10が管理できる物理ブロックIDを超えている場合、仮想ブロックIDの番号に一致する番号を備える物理ブロックIDにより特定されるテープ51の位置に磁気ヘッドを位置づける。
そして、再度テープ51への書き込みを実行する。
次に、ドライブ制御部21の機能を詳しく説明する。
図4は、ドライブ制御部の機能を示すブロック図である。
ドライブ制御部21は、搬送機構制御部211と、トラック数判断部212と、仮想ブロックID比率決定部213と、コマンド処理部214と、管理情報格納部215とを有している。
搬送機構制御部211は、ホストコンピュータ10から送信されホストI/F処理部21cを介して受信した要求を、搬送機構部40に送信することにより搬送機構部40への動作指示を行う。この動作指示に基づいて搬送機構部40が動作する。また搬送機構制御部211は、搬送機構部40の動作結果をホストI/F処理部21cに送信する。この動作結果に基づいて、ホストコンピュータ10の要求に対する応答がホストコンピュータ10に送信される。
トラック数判断部212は、ドライブ装置22、23、24、25毎に予め定められた処理可能なテープのトラック数を判断する。これは例えば、磁気ヘッドの規格等により判断することができる。
仮想ブロックID比率決定部213は、ドライブ装置22、23、24、25毎に、データ書き込みエラー時にホストコンピュータ10に通知する仮想ブロックIDの、物理ブロックIDに対する比率を決定する。
この比率は、各ドライブ装置22、23、24、25にマウントされているテープの容量により決定する。
本実施の形態では1ブロック=32kBであるため、前述したようにホストコンピュータ10が管理できる物理ブロックIDが3FFFFFhの場合、ホストコンピュータ10が管理できる容量は、137GB(222×32kB)になる。
例えばG1のテープ51は、圧縮時の容量が200GBである。従って、G1のテープ51の137GBを超えた位置については、ホストコンピュータ10は管理不能になる。
この場合、1つの仮想ブロックIDで2つのブロックを管理すれば、G1のテープ51の全ての位置をドライブ制御部21側で特定することができる。従って、仮想ブロックID比率決定部213は、マウントされているテープ51がG1の場合は、1つの仮想ブロックIDで2つのブロックを管理する意味を示す1:2に決定する。
同様の決定方法により、仮想ブロックID比率決定部213は、マウントされているテープ51がG2のテープ(圧縮時の容量400GB)51の場合は1:4、G3のテープ(圧縮時の容量800GB)51の場合は1:8、G4のテープ51(圧縮時の容量1600GB)の場合は1:16に決定する。
コマンド処理部214は、ホストコンピュータ10が発行するコマンドに応じて、ドライブ装置22、23、24、25を処理する。
管理情報格納部215は、ドライブ装置の種別を管理するドライブ種別管理情報と、仮想ブロックIDの比率を管理する仮想ブロックID比率管理情報と、エラー情報を管理するブロックID管理情報とを格納する。
次に、管理情報格納部215が格納している各管理情報を説明する。
図5は、ドライブ種別管理情報を示す図である。図5では、ドライブ種別管理情報をテーブル化して示している。
ドライブ情報種別管理テーブル215aには、ドライブの欄と種別の欄が設けられている。縦方向に並べられた情報同士が互いに関連づけられている。
ドライブの欄には、ドライブ装置を識別する情報が格納されている。例えば、「#0」は、ドライブ装置22を識別する情報であることを示している。また、「#1」は、ドライブ装置23を識別する情報であることを示している。
種別の欄には、処理可能なテープのトラック数を識別する情報が格納されている。
図6は、仮想ブロックID比率管理情報を示す図である。図6では、仮想ブロックID比率管理情報をテーブル化して示している。
仮想ブロックID比率管理テーブル215bには、ドライブの欄と比率の欄が設けられている。縦方向に並べられた情報同士が互いに関連づけられている。
ドライブの欄には、ドライブ装置を識別する情報が格納されている。
比率の欄には、ドライブ装置に現在マウントされているテープ51の世代に応じてホストコンピュータ10に報告する仮想ブロックIDの、物理ブロックIDに対する比率が格納される。具体的には、G1のテープ51の場合は1:2、G2のテープ51の場合は1:4、G3のテープ51の場合は1:8、G4のテープ51の場合は1:16が格納される。
図6では、ドライブ装置22にG1のテープがマウントされているため、比率の欄には、「1:2」が格納されている。ドライブ装置23にG2のテープがマウントされているため、比率の欄には、「1:4」が格納されている。ドライブ装置24にG3のテープがマウントされているため、比率の欄には、「1:8」が格納されている。ドライブ装置25にG4のテープがマウントされているため、比率の欄には、「1:16」が格納されている。各ドライブ装置に新たなテープがマウントされると、比率の欄はマウントされたテープの世代に応じて書き換えられる。
図7は、ブロックID管理情報を示す図である。図7では、ブロックID管理情報をテーブル化して示している。
ブロックID管理テーブル215cには、ドライブの欄と、物理ブロックIDの欄と仮想ブロックIDの欄とDTCKブロックIDの欄が設けられている。縦方向に並べられた情報同士が互いに関連づけられている。
ドライブの欄には、ドライブ装置を識別する情報が格納されている。
物理ブロックIDの欄には、物理ブロックIDが格納されている。この欄のIDは、コマンド処理部214がWRコマンド受領時にインクリメントされる。
仮想ブロックIDの欄には、物理ブロックIDの欄に格納されている物理ブロックIDを仮想ブロックID比率管理テーブル215bに管理されている比率に応じた仮想ブロックIDで除算した演算結果が格納されている。例えば、仮想ブロックID比率管理テーブル215bに管理されている比率が1:2である場合は、物理ブロックIDの欄に格納されている物理ブロックID/2の演算結果が仮想ブロックIDの欄に格納される。
なお、商に余りが発生した場合は、商に「1」プラスされた値が格納される。
DTCKブロックIDの欄には、データ書き込みエラーが発生したときの物理ブロックIDが格納される。
次に、ドライブ制御部21の処理を説明する。
図8は、ドライブ制御部の処理を示すフローチャートである。
[ステップS1] トラック数判断部212は、ドライブ制御部21に接続されているドライブ装置22、23、24、25のうち未選択の(ステップS1〜S13の処理を行っていない)ドライブ装置を選択する。そして、選択したドライブ装置が36TRKドライブ装置か否かを判断する。選択したドライブ装置が36TRKドライブ装置であると判断すれば(ステップS1のYes)、ステップS2に遷移する。選択したドライブ装置が36TRKドライブ装置ではないと判断すれば(ステップS1のNo)、ステップS3に遷移する。
[ステップS2] トラック数判断部212は、ドライブ情報種別管理テーブル215aの選択したドライブ装置に対応する種別の欄に36TRKを書き込む。その後、ステップS4に遷移する。
[ステップS3] トラック数判断部212は、ドライブ情報種別管理テーブル215aの選択したドライブ装置に対応する種別の欄に128TRKを書き込む。その後、ステップS4に遷移する。
[ステップS4] 仮想ブロックID比率決定部213は、選択したドライブ装置にテープ51がマウントされているか否かを判断する。選択したドライブ装置にテープ51がマウントされている場合(ステップS4のYes)、ステップS5に遷移する。選択したドライブ装置にテープ51がマウントされていない場合(ステップS4のNo)、ステップS14に遷移する。
[ステップS5] 仮想ブロックID比率決定部213は、マウントされているテープ51はG1のテープ51か否かを判断する。G1のテープ51であれば(ステップS5のYes)、ステップS6に遷移する。G1のテープ51ではなければ(ステップS5のNo)、ステップS7に遷移する。
[ステップS6] 仮想ブロックID比率決定部213は、物理ブロックIDに対する仮想ブロックIDの比率を1:2に決定する。そして、仮想ブロックID比率決定部213は、決定した比率を仮想ブロックID比率管理テーブル215bの選択したドライブ装置の比率の欄に書き込む。その後、ステップS14に遷移する。
[ステップS7] 仮想ブロックID比率決定部213は、マウントされているテープ51はG2のテープ51か否かを判断する。G2のテープ51であれば(ステップS7のYes)、ステップS8に遷移する。G2のテープ51ではなければ(ステップS7のNo)、ステップS9に遷移する。
[ステップS8] 仮想ブロックID比率決定部213は、物理ブロックIDに対する仮想ブロックIDの比率を1:4に決定する。そして、仮想ブロックID比率決定部213は、決定した比率を仮想ブロックID比率管理テーブル215bの選択したドライブ装置の比率の欄に書き込む。その後、ステップS14に遷移する。
[ステップS9] 仮想ブロックID比率決定部213は、マウントされているテープ51はG3のテープ51か否かを判断する。G3のテープ51であれば(ステップS9のYes)、ステップS10に遷移する。G3のテープ51ではなければ(ステップS9のNo)、ステップS11に遷移する。
[ステップS10] 仮想ブロックID比率決定部213は、物理ブロックIDに対する仮想ブロックIDの比率を1:8に決定する。そして、仮想ブロックID比率決定部213は、決定した比率を仮想ブロックID比率管理テーブル215bの選択したドライブ装置の比率の欄に書き込む。その後、ステップS14に遷移する。
[ステップS11] 仮想ブロックID比率決定部213は、マウントされているテープ51はG4のテープ51か否かを判断する。G4のテープ51であれば(ステップS11のYes)、ステップS12に遷移する。G4のテープ51ではなければ(ステップS11のNo)、ステップS13に遷移する。
[ステップS12] 仮想ブロックID比率決定部213は、物理ブロックIDに対する仮想ブロックIDの比率を1:16に決定する。そして、仮想ブロックID比率決定部213は、決定した比率を仮想ブロックID比率管理テーブル215bの選択したドライブ装置の比率の欄に書き込む。その後、ステップS14に遷移する。
[ステップS13] 仮想ブロックID比率決定部213は、エラーをホストコンピュータ10に通知する。その後、ステップS14に遷移する。
[ステップS14] 仮想ブロックID比率決定部213は、ドライブ制御部21に接続されているドライブ装置22、23、24、25のうち、未選択のドライブ装置が存在するか否かを判断する。未選択のドライブ装置が存在する場合(ステップS14のYes)、ステップS1に遷移する。そして、ステップS1以降の処理を引き続き行う。未選択のドライブ装置が存在しない場合(ステップS14のNo)、図8の処理を終了する。
次に、コマンド処理を説明する。
図9は、コマンド処理を示すフローチャートである。
[ステップS21] コマンド処理部214は、一定時間が経過する毎にコマンドを受け付けたか否かを判断する。コマンドを受け付けたと判断した場合(ステップS21のYes)、ステップS22に遷移する。コマンドを受け付けていないと判断した場合(ステップS21のNo)、コマンド処理を終了し、コマンドの受け付けを待機する。
[ステップS22] コマンド処理部214は、受け付けたコマンドがWRコマンドか否かを判断する。WRコマンドであると判断した場合(ステップS22のYes)、ステップS23に遷移する。WRコマンドではないと判断した場合(ステップS22のNo)、ステップS26に遷移する。
[ステップS23] コマンド処理部214は、LOCATEコマンド処理後か否かを判断する。LOCATEコマンド処理後であれば(ステップS23のYes)、ステップS24に遷移する。LOCATEコマンド処理後ではなければ(ステップS23のNo)、ステップS25に遷移する。
[ステップS24] コマンド処理部214は、再WRコマンド処理を実行する。その後、コマンド処理を終了し、コマンドの受け付けを待機する。
[ステップS25] コマンド処理部214は、WRコマンド処理を実行する。その後、コマンド処理部214は、コマンド処理を終了し、コマンドの受け付けを待機する。
[ステップS26] コマンド処理部214は、受け付けたコマンドがRDBIDコマンドか否かを判断する。RDBIDコマンドであると判断した場合(ステップS26のYes)、ステップS27に遷移する。RDBIDコマンドではないと判断した場合(ステップS26のNo)、ステップS28に遷移する。
[ステップS27] コマンド処理部214は、RDBIDコマンド処理を実行する。その後、コマンド処理部214は、コマンド処理を終了し、コマンドの受け付けを待機する。
[ステップS28] コマンド処理部214は、受け付けたコマンドがLOCATEコマンドか否かを判断する。LOCATEコマンドであると判断した場合(ステップS28のYes)、ステップS29に遷移する。LOCATEコマンドではないと判断した場合(ステップS28のNo)、ステップS30に遷移する。
[ステップS29] コマンド処理部214は、LOCATEコマンド処理を実行する。その後、コマンド処理部214は、コマンド処理を終了し、コマンドの受け付けを待機する。
[ステップS30] コマンド処理部214は、他のコマンド処理を実行する。
次に、ステップS25に示したWRコマンド処理を説明する。
図10は、WRコマンド処理を示すフローチャートである。
[ステップS25a] コマンド処理部214は、ホストコンピュータ10が指定したドライブ装置にWRコマンドを発行する。これにより、ドライブ装置によりテープにWRコマンドにより指定されたデータが書き込まれる。
[ステップS25b] コマンド処理部214は、書き込み処理が正常に終了したか否かを、ドライブ装置からのデータ書き込みエラー報告の有無により判断する。書き込み処理が正常に終了したと判断した場合(ステップS25bのYes)、ステップS25cに遷移する。処理が異常に終了したと判断した場合(ステップS25bのNo)、ステップS25eに遷移する。
[ステップS25c] コマンド処理部214は、ブロックID管理テーブル215cの物理ブロックIDの欄を更新する。その後、ステップS25dに遷移する。
[ステップS25d] コマンド処理部214は、ホストコンピュータ10に正常終了を報告する。その後、WRコマンド処理を終了する。
[ステップS25e] コマンド処理部214は、ブロックID管理テーブル215cの物理ブロックIDの欄を更新する。また、ブロックID管理テーブル215cのDTCKブロックIDの欄を、書き込み処理が異常に終了したブロックIDに更新する。その後、ステップS25fに遷移する。
[ステップS25f] コマンド処理部214は、ホストコンピュータ10に異常終了を報告する。その後、WRコマンド処理を終了する。
以上でWRコマンド処理の説明を終了する。
次に、ステップS27に示すRDBIDコマンド処理を説明する。
図11は、RDBIDコマンド処理を示すフローチャートである。
[ステップS27a] コマンド処理部214は、ドライブ情報種別管理テーブル215aを参照し、書き込みエラーが発生したテープ51をマウントしているドライブ装置が36TRKドライブ装置か否かを判断する。36TRKドライブ装置である場合(ステップS27aのYes)、ステップS27bに遷移する。36TRKドライブ装置ではない場合(ステップS27aのNo)、ステップS27eに遷移する。
[ステップS27b] コマンド処理部214は、ブロックID管理テーブル215cのDTCKブロックIDの欄を参照し、データ書き込みエラーが発生したテープの物理ブロックIDが、「3FFFFFh」を超えているか否かを判断する。データ書き込みエラーが発生したテープの物理ブロックIDが、「3FFFFFh」を超えていると判断した場合(ステップS27bのYes)、ステップS27cに遷移する。データ書き込みエラーが発生したテープの物理ブロックIDが、「3FFFFFh」以下であると判断した場合(ステップS27bのNo)、ステップS27eに遷移する。
[ステップS27c] コマンド処理部214は、仮想ブロックID比率管理テーブル215bを参照し、書き込みエラーが発生したテープ51をマウントしているドライブ装置の比率の欄に応じた仮想ブロックIDをホストコンピュータ10に応答する。ステップS27dに遷移する。
[ステップS27d] コマンド処理部214は、仮想ブロックIDをホストコンピュータ10に応答した旨と応答した仮想ブロックIDを、通信処理部21eを介してドライブ制御部31に送信する。その後、図11の処理を終了する。
[ステップS27e] コマンド処理部214は、RDBIDコマンドに対し書き込みエラーが発生した位置の物理ブロックIDをホストコンピュータ10に応答する。その後、図11の処理を終了する。
以上で図11の処理の説明を終了する。
次に、ステップS29に示すLOCATEコマンド処理を説明する。
図12は、LOCATEコマンド処理を示すフローチャートである。
[ステップS29a] コマンド処理部214は、ドライブ情報種別管理テーブル215aを参照し、書き込みエラーが発生したテープ51をマウントしているドライブ装置が36TRKドライブ装置であるか否かを判断する。ドライブ装置が36TRKドライブ装置である場合(ステップS29aのYes)、ステップS29bに遷移する。ドライブ装置が36TRKドライブ装置ではない場合(ステップS29aのNo)、ステップS29eに遷移する。
[ステップS29b] コマンド処理部214は、ドライブ制御部31がRDBIDコマンド処理を実行した結果、ドライブ制御部31から仮想ブロックIDをホストコンピュータ10に応答した旨と応答した仮想ブロックIDを受け取っているか否かを判断する。受け取っている場合(ステップS29bのYes)、ステップS29dに遷移する。受け取っていない場合(ステップS29bのNo)、ステップS29cに遷移する。
[ステップS29c] コマンド処理部214は、ブロックID管理テーブル215cのDTCKブロックIDの欄を参照し、データ書き込みエラーが発生したテープの物理ブロックIDが、「3FFFFFh」を超えているか否かを判断する。データ書き込みエラーが発生したテープの物理ブロックIDが、「3FFFFFh」を超えている場合(ステップS29cのYes)、ステップS29dに遷移する。データ書き込みエラーが発生したテープの物理ブロックIDが、「3FFFFFh」以下である場合(ステップS29cのNo)、ステップS29eに遷移する。
[ステップS29d] コマンド処理部214は、ブロックID管理テーブル215cのDTCKブロックIDの欄に格納されているIDをLOCATEコマンドのブロックIDとして書き込みエラーが発生したテープ51をマウントしているドライブ装置に発行する。その後、ステップS29fに遷移する。
[ステップS29e] コマンド処理部214は、ホストコンピュータ10から指示されたIDをLOCATEコマンドのブロックIDとして書き込みエラーが発生したテープ51をマウントしているドライブ装置に発行する。その後、ステップS29fに遷移する。
[ステップS29f] コマンド処理部214は、データの書き込みが正常に終了したか否かを判断する。データの書き込みが正常に終了したと判断した場合(ステップS29fのYes)、ステップS29gに遷移する。データの書き込みが異常に終了したと判断した場合(ステップS29fのNo)、ステップS29hに遷移する。
[ステップS29g] コマンド処理部214は、正常終了をホストコンピュータ10に報告する。その後、図12の処理を終了する。
[ステップS29h] コマンド処理部214は、異常終了をホストコンピュータ10に報告する。その後、図12の処理を終了する。
以上で図12の処理の説明を終了する。
次に、ステップS24に示す再WRコマンド処理を説明する。
図13は、WR再コマンド処理を示すフローチャートである。
[ステップS24a] コマンド処理部214は、ドライブ情報種別管理テーブル215aを参照し、書き込みエラーが発生したテープ51をマウントしているドライブ装置がドライブ装置が36TRKドライブ装置であるか否かを判断する。ドライブ装置が36TRKドライブ装置である場合(ステップS24aのYes)、ステップS24bに遷移する。ドライブ装置が36TRKドライブ装置ではない場合(ステップS24aのNo)、ステップS24dに遷移する。
[ステップS24b] コマンド処理部214は、ブロックID管理テーブル215cのDTCKブロックIDの欄を参照し、データ書き込みエラーが発生したテープの物理ブロックIDが、「3FFFFFh」を超えているか否かを判断する。データ書き込みエラーが発生したテープの物理ブロックIDが、「3FFFFFh」を超えていると判断した場合(ステップS24bのYes)、ステップS24cに遷移する。データ書き込みエラーが発生したテープの物理ブロックIDが、「3FFFFFh」以下であると判断した場合(ステップS24bのNo)、ステップS24dに遷移する。
[ステップS24c] コマンド処理部214は、ホストコンピュータ10から受け取った物理ブロックIDが、ブロックID管理テーブル215cのDTCKブロックIDの欄に格納されているIDに一致するか否かを判断する。DTCKブロックIDの欄に格納されているIDに一致した場合(ステップS24cのYes)、ステップS24dに遷移する。DTCKブロックIDの欄に格納されているIDに一致しない場合(ステップS24cのNo)、ステップS24fに遷移する。
[ステップS24d] コマンド処理部214は、データ書き込みエラーが発生したテープ51をマウントしているドライブ装置にWRコマンドを発行する。これにより、そのドライブ装置により、テープ51にデータが書き込まれる。その後、ステップS24eに遷移する。
[ステップS24e] コマンド処理部214は、ドライブ装置によるテープ51へのデータの書き込みが正常に終了したか否かを判断する。書き込みが正常に終了したと判断した場合(ステップS24eのYes)、ステップS24fに遷移する。書き込みが異常に終了したと判断した場合(ステップS24eのNo)、ステップS24gに遷移する。
[ステップS24f] コマンド処理部214は、正常終了をホストコンピュータ10に報告する。その後、図13の処理を終了する。
[ステップS24g] コマンド処理部214は、異常終了をホストコンピュータ10に報告する。その後、図13の処理を終了する。
以上で図13の処理の説明を終了する。
<具体例>
次に、ライブラリシステム100のコマンド処理の具体例を説明する。
本具体例では、物理ブロックIDに対する仮想ブロックIDの比率が1:2に決定された場合を例にライブラリシステム100の処理を説明する。
図14は、ライブラリシステムの処理の具体例を示す図である。
図14に示すテープ51は、テープドライブ22aにマウントされている。テープ51には、データD1から順にデータが書き込まれ、データD4FFFFFまで書き込みが成功していることを示している。
データD500000のデータエラーチェックが発生したので、コマンド処理部214は、ホストコンピュータ10に異常終了を報告する。
搬送機構制御部211は、ドライブ装置22にマウントされているテープ51をアンマウントし、ドライブ装置を22からドライブ装置23に交換する。そして、テープ51をドライブ装置23にマウントする。
その後、ホストコンピュータ10は、RDBIDコマンドをドライブ制御部21に発行する。
RDBIDコマンドを受け付けたコマンド処理部214は、ドライブ装置23が36TRKドライブ装置であり、かつ、データ書き込みエラーが発生したテープの物理ブロックIDが、「3FFFFFh」を超えているので、仮想ブロックID「280000h」をホストコンピュータ10に応答する。
仮想ブロックID「280000h」を受け付けたホストコンピュータ10は、LOCATEコマンド「LOCATE=280000h」をドライブ制御部21に発行する。
LOCATEコマンド「LOCATE=280000h」を受け付けたコマンド処理部214は、データ書き込みエラーが発生したテープの物理ブロックIDが、「3FFFFFh」を超えているので、実際にデータ書き込みエラーが発生した物理ブロックIDの280000hに位置づける。
次に、ホストコンピュータ10は、280000h番目のデータD280000からデータを順次書き込む再WRコマンドをドライブ制御部21に発行する。
再WRコマンドを受け付けたコマンド処理部214は、データD280000〜D4FFFFFまでのデータは既に書き込み完了済みなので、データD280000〜D4FFFFFをテープ51には書き込まずに、データを1つ受け取る度に、正常に書き込みが終了したことのみホストコンピュータ10に逐次報告する。そして、コマンド処理部214は、データD500000以降からは実際にデータをテープ51に書き込むWRコマンドをドライブ装置23に発行する。これにより、ドライブ装置23により、テープ51にデータが書き込まれる。図14では、書き込みを行わないデータを(空)で表し、書き込みを行うデータを(実)で表している。
以上述べたように、ライブラリシステム100によれば、データ書き込みエラーが発生した場合、物理ブロックIDが22ビット長(3FFFFF)未満であれば、DDRリカバリのRDBIDコマンドは物理ブロックID値を使い、LOCATEコマンドでは実際にデータ書き込みエラーが発生した物理ブロックIDに位置づけ、続きの書き込みを行う。そして、データ書き込みエラーが発生した物理ブロックIDが22ビット長(400000h)以上であれば、RDBIDコマンドは仮想ブロックIDを使うようにした。そして、LOCATEコマンドでは、実際にデータ書き込みエラーが発生した物理ブロックIDに位置づけるようにした。
これにより、OSのブロックID管理制限を超えてデータを書き込みすることができるため、テープ51の使用領域を増やすことができる。
また、OSからの続きの書き込み(仮想ブロックIDからの書き込み)に対しては、実際にデータ書き込みエラーが発生した物理ブロックIDまでの書き込みは不要であるため、全て正常終了を応答するようにした。これにより、再WRコマンド処理を高速に実行することができる。
以上、本発明のドライブ制御装置、ドライブ制御方法およびストレージ装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
また、本発明は、前述した各実施の形態のうちの、任意の2以上の構成(特徴)を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ドライブ制御装置1、磁気テープ装置20、30が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク(FD)、磁気テープ等が挙げられる。光ディスクには、DVD、DVD−RAM、CD−ROM/RW等が挙げられる。光磁気記録媒体には、MO(Magneto-Optical disk)等が挙げられる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)等の電子回路で実現することもできる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
1 ドライブ制御装置
2、51、51a、51b テープ
3 ドライブ
4 上位装置
10 ホストコンピュータ
20、30 磁気テープ装置
21、31 ドライブ制御部
21a、31a CPU
21b、31b メモリ
21c、31c ホストI/F処理部
21d、31d ドライブI/F制御部
21e、31e 通信処理部
21f、31f バス
22、23、24、25、32、33、34、35 ドライブ装置
22a、32a テープドライブ
22b、32b I/F制御部
26、36 電源制御部
40 搬送機構部
41 バーコードリーダ
50 カートリッジテープ収納棚
100 ライブラリシステム
211 搬送機構制御部
212 トラック数判断部
213 仮想ブロックID比率決定部
214 コマンド処理部
215 管理情報格納部
215a ドライブ情報種別管理テーブル
215b 仮想ブロックID比率管理テーブル
215c ブロックID管理テーブル

Claims (8)

  1. データがシーケンシャルに書き込まれる媒体のデータの書き込み位置を識別し、当該ドライブ制御装置に接続された接続装置が管理可能な番地より大きい番地を含む第1の番地と前記接続装置に前記媒体のデータの書き込み位置を識別させる第2の番地との対応関係を管理する管理部と、
    前記媒体にデータを書き込むドライブのデータの書き込み失敗を検出する検出部と、
    前記検出部の検出に応じて書き込みが失敗した前記媒体の位置の前記第2の番地を前記接続装置に通知する通知部と、
    を有することを特徴とするドライブ制御装置。
  2. 前記第2の番地からデータを前記媒体に書き込む指示を前記接続装置から受け取ると、受け取ったデータを前記ドライブに書き込ませる書き込み指示部をさらに有することを特徴とする請求の範囲第1項記載のドライブ制御装置。
  3. 前記書き込み指示部は、受け取った指示に含まれる前記第2の番地の値に一致する値の前記第1の番地から前記第2の番地に対応する前記第1の番地に至るまではデータを前記媒体に書き込まず、前記管理部が管理する前記第2の番地に対応する前記第1の番地からデータを前記媒体に書き込むよう前記ドライブに指示することを特徴とする請求の範囲第2項記載のドライブ制御装置。
  4. 前記媒体の容量に応じて、前記第1の番地に対する所定の比率で前記第2の番地を決定する決定部をさらに有することを特徴とする請求の範囲第1項記載のドライブ制御装置。
  5. 前記通知部は、前記第1の番地が予め決定された第3の番地を超えている場合、前記第2の番地を前記接続装置に通知し、前記第1の番地が前記第3の番地未満である場合、前記第1の番地を前記接続装置に通知することを特徴とする請求の範囲第1項記載のドライブ制御装置。
  6. 前記第3の番地は、前記ドライブの規格により決定されることを特徴とする請求の範囲第5項記載のドライブ制御装置。
  7. データがシーケンシャルに書き込まれる媒体にデータを書き込むドライブのデータの書き込み失敗を検出し、
    前記媒体のデータの書き込み位置を識別し、当該ドライブ制御装置に接続された接続装置が管理可能な番地より大きい番地を含む第1の番地と前記接続装置に前記媒体のデータの書き込み位置を識別させる第2の番地との対応関係が管理されており、前記検出に応じて書き込みが失敗した前記媒体の位置の前記第2の番地を前記接続装置に通知する、
    ことを特徴とするドライブ制御方法。
  8. データがシーケンシャルに書き込まれる媒体にデータを書き込むドライブと、
    前記媒体のデータの書き込み位置を識別し、当該ドライブ制御装置に接続された接続装置が管理可能な番地より大きい番地を含む第1の番地と前記接続装置に前記媒体のデータの書き込み位置を識別させる第2の番地との対応関係を管理する管理部と、
    前記媒体にデータを書き込むドライブのデータの書き込み失敗を検出する検出部と、
    前記検出部の検出に応じて書き込みが失敗した前記媒体の位置の前記第2の番地を前記接続装置に通知する通知部と、
    を有することを特徴とするストレージ装置。
JP2012536106A 2010-10-01 2010-10-01 ドライブ制御装置、ドライブ制御方法およびストレージ装置 Expired - Fee Related JP5435143B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/067230 WO2012042661A1 (ja) 2010-10-01 2010-10-01 ドライブ制御装置、ドライブ制御方法およびストレージ装置

Publications (2)

Publication Number Publication Date
JPWO2012042661A1 JPWO2012042661A1 (ja) 2014-02-03
JP5435143B2 true JP5435143B2 (ja) 2014-03-05

Family

ID=45892165

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012536106A Expired - Fee Related JP5435143B2 (ja) 2010-10-01 2010-10-01 ドライブ制御装置、ドライブ制御方法およびストレージ装置

Country Status (3)

Country Link
US (1) US20130215529A1 (ja)
JP (1) JP5435143B2 (ja)
WO (1) WO2012042661A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6089856B2 (ja) * 2013-03-26 2017-03-08 富士通株式会社 仮想テープ装置、テープ制御装置、およびテープ制御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0554551A (ja) * 1991-08-29 1993-03-05 Hitachi Ltd 磁気テ−プ制御装置
JP2005122433A (ja) * 2003-10-16 2005-05-12 Fujitsu Ltd 磁気テープ装置
JP2007293950A (ja) * 2006-04-21 2007-11-08 Sony Corp 光ディスク記録装置及び記録制御方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005724A (ja) * 1999-06-11 2001-01-12 Internatl Business Mach Corp <Ibm> ライト・キャッシュ転送の制御方法およびディスク装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0554551A (ja) * 1991-08-29 1993-03-05 Hitachi Ltd 磁気テ−プ制御装置
JP2005122433A (ja) * 2003-10-16 2005-05-12 Fujitsu Ltd 磁気テープ装置
JP2007293950A (ja) * 2006-04-21 2007-11-08 Sony Corp 光ディスク記録装置及び記録制御方法

Also Published As

Publication number Publication date
JPWO2012042661A1 (ja) 2014-02-03
US20130215529A1 (en) 2013-08-22
WO2012042661A1 (ja) 2012-04-05

Similar Documents

Publication Publication Date Title
US7930474B2 (en) Automated on-line capacity expansion method for storage device
US8381029B2 (en) Processing method, storage system, information processing apparatus, and computer-readable storage medium storing program
US20090150629A1 (en) Storage management device, storage system control device, storage medium storing storage management program, and storage system
US8539147B2 (en) Apparatus and method for controlling storage system
JP5102915B2 (ja) ストレージ装置及びそのデータ検証方法
US8032702B2 (en) Disk storage management of a tape library with data backup and recovery
US20140075240A1 (en) Storage apparatus, computer product, and storage control method
US20140379983A1 (en) Storage system, control apparatus, and control method
JP2016149051A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
JP2012198639A (ja) 制御装置、制御方法およびストレージ装置
JP2009175824A (ja) メインフレーム用記憶制御装置及びメインフレーム用ボリュームの仮想化方法
US8521953B2 (en) Storage device and a method for expanding the same
JPWO2009084071A1 (ja) Raid制御装置及びraidシステム
US8327043B2 (en) Buffer management device which manages buffer transfer, storage apparatus comprising the same device, and buffer management method
JP5435143B2 (ja) ドライブ制御装置、ドライブ制御方法およびストレージ装置
JP2006146302A (ja) 情報処理システム,ストレージ装置,ストレージ制御プログラム,及びストレージ制御プログラムを記録したコンピュータ読取可能な記録媒体
JP2006004078A (ja) ディスク制御装置、ディスクパトロール方法およびディスクパトロールプログラム
US8730771B2 (en) Recording/reproducing device
JP5661313B2 (ja) 記憶装置
JPWO2008126169A1 (ja) ストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置
CN102549550B (zh) 一种数据访问方法及系统
JP2012194867A (ja) ストレージ装置および制御装置
JP6051737B2 (ja) ライブラリ装置、パーティション制御方法およびパーティション制御プログラム
JP5636703B2 (ja) ブレードサーバ
JP2015191407A (ja) ストレージ制御装置、制御プログラム、および制御方法

Legal Events

Date Code Title Description
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: 20131112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131125

R150 Certificate of patent or registration of utility model

Ref document number: 5435143

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees