JP2017049817A - Storage device and control program - Google Patents
Storage device and control program Download PDFInfo
- Publication number
- JP2017049817A JP2017049817A JP2015172715A JP2015172715A JP2017049817A JP 2017049817 A JP2017049817 A JP 2017049817A JP 2015172715 A JP2015172715 A JP 2015172715A JP 2015172715 A JP2015172715 A JP 2015172715A JP 2017049817 A JP2017049817 A JP 2017049817A
- Authority
- JP
- Japan
- Prior art keywords
- block number
- recording medium
- control unit
- drive
- access
- 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.)
- Pending
Links
Images
Abstract
Description
本発明はストレージ装置および制御プログラムに関する。 The present invention relates to a storage apparatus and a control program.
コンピュータなどの情報処理装置で扱われるデータを、情報処理装置の外部に取り出せる記録媒体に記録するストレージ装置が利用されている。例えば、データを書込んだ記録媒体を保管し、当該データのバックアップとして利用できる。記録媒体には、磁気テープ媒体や光ディスク媒体などがある。記録媒体は、取扱いの便利のためカートリッジ(cartridge)と呼ばれるケースに収納されていることが多い。記録媒体に記録可能なデータ量は、記録媒体自体の容量の他、情報処理装置で実行される記録処理用のソフトウェアの仕様により制限されることがある。 Storage devices that record data handled by an information processing apparatus such as a computer on a recording medium that can be taken out of the information processing apparatus are used. For example, a recording medium in which data is written can be stored and used as a backup of the data. Examples of the recording medium include a magnetic tape medium and an optical disk medium. The recording medium is often stored in a case called a cartridge for convenience of handling. The amount of data that can be recorded on the recording medium may be limited by the specifications of the recording processing software executed by the information processing apparatus in addition to the capacity of the recording medium itself.
ところで、ストレージ装置では動作異常により、記録媒体に対するデータの書込みや読出しのアクセスでエラーが発生することがある。そこで、仮にアクセスエラーが発生してもアクセスを続行可能にする方法が考えられている。 By the way, in a storage device, an error may occur in data write / read access to a recording medium due to an abnormal operation. Therefore, a method has been considered that allows access to continue even if an access error occurs.
例えば、磁気テープ媒体へのデータの書込みに対して、動的デバイス再配置(DDR:Dynamic Device Reconfiguration)と呼ばれるリカバリ方法が提案されている。DDRでは、磁気テープ媒体へのデータの書込み中に磁気テープ装置でエラーが発生すると、磁気テープ装置がエラー発生時の書込み位置を示すブロック番号を上位装置に報告する。そして、例えば、オペレータなどにより正常なドライブに磁気テープ媒体が移されると、上位装置は、移し先のドライブを用いて、報告されたブロック番号を起点に、未書込みのデータを磁気テープ媒体に追記する。 For example, a recovery method called dynamic device reconfiguration (DDR) has been proposed for writing data to a magnetic tape medium. In DDR, when an error occurs in the magnetic tape device while data is being written to the magnetic tape medium, the magnetic tape device reports the block number indicating the write position at the time of the error to the host device. For example, when the magnetic tape medium is moved to a normal drive by an operator or the like, the higher-level device appends unwritten data to the magnetic tape medium using the reported block number as the starting point using the destination drive. To do.
この提案では、磁気テープ装置が、上位装置で管理可能なブロック番号よりも大きなブロック番号にデータを書込むことも考えられている。すると、上位装置側のソフトウェアの仕様により、磁気テープ媒体の全ての記憶領域を上位装置側で認識できなくても、磁気テープ媒体の利用可能な容量を増やせる。DDR時は、磁気テープ装置が、自身で管理する複数のブロック番号を、上位装置側で管理可能な1つのブロック番号に対応付ける。磁気テープ装置は、エラー発生時、上位装置側で管理可能な範囲内のブロック番号を上位装置に報告する。これにより、DDR時の上位装置側への影響を抑えてDDRを行える。 In this proposal, it is also considered that the magnetic tape device writes data in a block number larger than the block number manageable by the host device. Then, the usable capacity of the magnetic tape medium can be increased even if all the storage areas of the magnetic tape medium cannot be recognized by the upper apparatus side due to the software specification of the upper apparatus side. At the time of DDR, the magnetic tape device associates a plurality of block numbers managed by itself with one block number that can be managed by the host device. When an error occurs, the magnetic tape device reports block numbers within a range that can be managed by the host device to the host device. Thereby, it is possible to perform DDR while suppressing the influence on the host device side during DDR.
なお、テープ状の記録媒体と半導体メモリをカセットに備え、カセットに収められたテープに記録した情報に関する情報(記録プログラム名や検索のためのアドレス番号など)をカセットが備える半導体メモリに記録する提案がある。 Proposal that the cassette has a tape-shaped recording medium and a semiconductor memory, and information (information such as recording program name and address number for searching) recorded on the tape stored in the cassette is recorded in the semiconductor memory provided in the cassette There is.
上記提案のように、例えば、ストレージ装置が、上位装置で管理可能なブロック番号よりも大きなブロック番号にデータを書込むことで、上位装置のソフトウェアに起因する記録媒体の使用容量の制限を緩和し得る。このとき、上記のように、ストレージ装置が、ストレージ装置で管理可能な複数のブロック番号を、上位装置で管理可能な1つのブロック番号に対応付けることで、DDRを行うことが考えられる。しかし、この方法では、ストレージ装置側で保持するブロック番号の対応関係に依存することになり、当該対応関係を保持していないストレージ装置ではDDRによる記録媒体へのアクセス再開を適切に行えない。そこで、ストレージ装置側で保持する情報に依存せずに、記録媒体へのアクセス再開を適切に実行可能にする仕組みをどのようにして実現するかが問題となる。 As described above, for example, the storage device writes data to a block number that is larger than the block number that can be managed by the host device, thereby relaxing the restriction on the usage capacity of the recording medium caused by the software of the host device. obtain. At this time, as described above, the storage apparatus may perform DDR by associating a plurality of block numbers that can be managed by the storage apparatus with one block number that can be managed by the host apparatus. However, this method depends on the correspondence relationship between the block numbers held on the storage device side, and the storage device that does not hold the correspondence relationship cannot properly resume the access to the recording medium by DDR. Therefore, there is a problem of how to realize a mechanism that can appropriately resume the access to the recording medium without depending on the information held on the storage device side.
1つの側面では、本発明は、記録媒体に対するアクセス再開を適切に行えるストレージ装置および制御プログラムを提供することを目的とする。 In one aspect, an object of the present invention is to provide a storage apparatus and a control program that can appropriately resume access to a recording medium.
1つの態様では、記録媒体に対するアクセス先の位置を示すブロック番号を所定のビット数で管理する情報処理装置と接続されるストレージ装置が提供される。このストレージ制御装置は、ドライブと制御部とを有する。ドライブは、記録媒体と当該記録媒体とは異なるメモリとを備えたカートリッジを収納可能であり、当該ビット数によるブロック番号の上限よりも大きなブロック番号により記録媒体にアクセス可能である。制御部は、ドライブにより記録媒体に対して上限よりも大きなブロック番号への書込みを行うと、当該書込みが行われたことを示す管理情報をメモリに格納し、メモリに記憶された管理情報に基づいて、記録媒体のアクセスを実行する。 In one aspect, a storage apparatus connected to an information processing apparatus that manages a block number indicating a position of an access destination for a recording medium with a predetermined number of bits is provided. This storage control device has a drive and a control unit. The drive can store a cartridge including a recording medium and a memory different from the recording medium, and can access the recording medium with a block number larger than the upper limit of the block number according to the number of bits. When writing to the block number larger than the upper limit for the recording medium by the drive, the control unit stores management information indicating that the writing has been performed in the memory, and based on the management information stored in the memory The recording medium is accessed.
また、1つの態様では、コンピュータによって実行される制御プログラムが提供される。この制御プログラムは、記録媒体に対するアクセス先の位置を示すブロック番号を所定のビット数で管理する情報処理装置と接続されるストレージ装置が備えるコンピュータに、記録媒体と当該記録媒体とは異なるメモリとを備えたカートリッジを収納可能であり当該ビット数によるブロック番号の上限よりも大きなブロック番号により記録媒体にアクセス可能なドライブにより記録媒体に対して上限よりも大きなブロック番号への書込みを行うと、当該書込みが行われたことを示す管理情報をメモリに格納し、メモリに記憶された管理情報に基づいて、記録媒体のアクセスを実行する、処理を実行させる。 In one aspect, a control program executed by a computer is provided. The control program stores a recording medium and a memory different from the recording medium in a computer included in a storage apparatus connected to an information processing apparatus that manages a block number indicating a position of an access destination for the recording medium with a predetermined number of bits. If writing to a block number larger than the upper limit is performed on the recording medium by a drive that can store the cartridge provided and can access the recording medium by a block number larger than the upper limit of the block number by the number of bits, the writing The management information indicating that the recording has been performed is stored in the memory, and based on the management information stored in the memory, the process of accessing the recording medium is executed.
1つの側面では、記録媒体に対するアクセス再開を適切に行える。 In one aspect, it is possible to appropriately resume access to the recording medium.
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態のストレージ装置を示す図である。ストレージ装置1は、情報処理装置2に接続されている。ストレージ装置1は、情報処理装置2とネットワークを介して接続されてもよい。ストレージ装置1には、カートリッジ3を収納可能である。カートリッジ3は、記録媒体3aおよびメモリ3bを有する。
Hereinafter, the present embodiment will be described with reference to the drawings.
[First Embodiment]
FIG. 1 illustrates a storage apparatus according to the first embodiment. The
ストレージ装置1は、情報処理装置2による指示に応じて、記録媒体3aに対するアクセス(データの書込みやデータの読出し)を行う。記録媒体3aは、例えば、磁気テープ媒体である。例えば、情報処理装置2の処理に用いられるデータを記録媒体3aに記録しておくことで、記録したデータを業務データのバックアップとして利用できる。メモリ3bは、例えば、フラッシュメモリなどの書き換え可能な不揮発性の記憶装置である。メモリ3bは、カートリッジ3に備えられているため、カートリッジメモリと呼ばれることもある。
In response to an instruction from the
ここで、情報処理装置2は、記録媒体3aに対するアクセス先の位置を示すブロック番号を第1のビット数で管理する。説明を容易化するため、一例として、第1のビット数を4とする。すると、管理可能なブロック番号の範囲は、“0b0000”から“0b1111”まで(すなわち、“0”から“7”まで)となる。ここで、プレフィクス“0b”は後続の数値または数値列が2進数表記であることを示す(プレフィクスがない場合は10進数表記である)。例えば、1ブロック番号当たりに記録可能なデータのサイズ(ブロックサイズ)は32KB(キロバイト)である。この場合、情報処理装置2によって認識可能な記録媒体3aの総記憶容量は、32KB×8=256KBである。
Here, the
ストレージ装置1は、ドライブ1a,1bおよび制御部1cを有する。ドライブ1a,1bは、カートリッジ3を収納可能である。ドライブ1aを第1のドライブ、ドライブ1bを第2のドライブということもできる。例えば、ドライブ1aは、カートリッジ3が収納されると、記録媒体3aに対するアクセスが可能となる。ドライブ1a,1bは、第1のビット数よりも大きな第2のビット数で表わされるブロック番号により、記録媒体3aに対するアクセスを行える。すなわち、ドライブ1a,1bでは、情報処理装置2で管理されるブロック番号の範囲の上限を超えたブロック番号により、記録媒体3aのアクセス位置を特定できる。
The
例えば、第2のビット数を6とする。すると、管理可能なブロック番号の範囲は、“0b000000”から“0b111111”(すなわち、“0”から“31”)までとなる。上記のようにブロックサイズが32KBのとき、ドライブ1a,1bによって記録媒体3aに記録可能なサイズは、32KB×32=1024KBである。すなわち、ストレージ装置1は、記録媒体3aに対し、情報処理装置2によって認識可能な領域(256KB分の領域)よりも大きな領域(1024KB分の領域)を扱える。
For example, the second number of bits is 6. Then, the manageable block number range is from “0b000000” to “0b111111” (ie, “0” to “31”). As described above, when the block size is 32 KB, the size that can be recorded on the
制御部1cは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。制御部1cはプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
The
制御部1cは、ドライブ1aまたはドライブ1bに収納されたカートリッジ3の記録媒体3aに対する、情報処理装置2によるアクセスを制御する。例えば、通常、制御部1cは、記録媒体3aのアクセス位置が、第1のビット数の上限のブロック番号に相当する位置に達すると、ブロック番号が上限に達した旨を情報処理装置2に報告し、アクセスを中止させる。ただし、ドライブ1a,1bは、第1のビット数の上限のブロック番号よりも大きなブロック番号によりアクセス位置を特定可能である。このため、制御部1cは、ブロック番号が第1のビット数の上限のブロック番号に達しても、情報処理装置2に上記報告を行わずにアクセスを継続させる。本例では、制御部1cは、ブロック番号“0b1111”に相当する位置に達してもブロック番号の上限に達した旨の報告を情報処理装置2に対して行わず、ブロック番号“0b111111”に達した時点で上限に達した旨の報告を行う。すると、記録媒体3aに対し、第1のビット数の上限のブロック番号よりも大きなブロック番号に対応する位置にも位置付け可能となる。このため、記録媒体3aの利用可能な記憶容量に対し、情報処理装置2のソフトウェアで管理可能なブロック数が要因となる制限を緩和できる。
The
ところが、この場合、情報処理装置2で認識可能なブロック番号の上限を超えたブロック番号にアクセスしているタイミングでエラーが発生し得る。例えば、ドライブ1aが備える記録媒体3aに対する読み書き用のヘッドやテープのキズなどがエラー原因となり得る。DDRなどのリカバリ処理において、情報処理装置2で認識可能なブロック番号の上限を超えたブロック番号が報告されても、情報処理装置2は当該ブロック番号を適切に認識できない。このため、制御部1cは、次のようにリカバリ処理を行う。まず、ドライブ1aにカートリッジ3を収納しているとき、記録媒体3aに対するアクセスでエラーが発生すると、制御部1cは、図1(A)に示す処理を行う。
However, in this case, an error may occur at the timing when the block number exceeding the upper limit of the block number that can be recognized by the
まず、制御部1cは、ドライブ1aを用いて記録媒体3aに対して書込みを行う際、記録媒体3aに対して第1のビット数の上限よりも大きなブロック番号への書込みを行うと、当該書込みが行われたことを示す管理情報をメモリ3bに格納する。管理情報は、情報処理装置2の管理上限のブロック番号よりも大きなブロック番号への書込みが行われたことを示すフラグであるということもできる。
First, when writing to the
その後、ドライブ1aは、ドライブ1aによる記録媒体3aへのアクセス中に、アクセスエラーが発生すると、エラーが発生したことを制御部1cに通知する。制御部1cは、第1のビット数によるブロック番号の上限よりも大きな第1のブロック番号(エラー時のブロック番号)に対するアクセスでエラーが発生したことを検出する(図1(A)(1))。例えば、第1のブロック番号は“0b111010”である。図1では、ブロック番号を“BLK(BLocK)”と略記している(図1ではBLKの値を2進数で表記している)。制御部1cは、第1のブロック番号“0b111010”を、ドライブ1aから取得可能である(図1(A)(2))。
Thereafter, when an access error occurs during access to the
制御部1cは、第1のビット数で表わされる第2のブロック番号を第1のブロック番号から生成して情報処理装置2に送信する。例えば、制御部1cは、第1のビット数“4”
で表わされる第2のブロック番号“0b1010”を、第1のブロック番号“0b111010”から生成する。より具体的には、制御部1cは、第1のブロック番号“0b111010”の下位4ビット(第1のビット数分)を抽出して、第2のブロック番号“0b1010”とする。制御部1cは、第2のブロック番号“0b1010”を情報処理装置2に送信する(図1(A)(3))。制御部1cは、エラー発生の報告後、情報処理装置2から要求されたタイミングで第2のブロック番号を情報処理装置2に送信してもよいし、エラーが発生した旨の報告とともに、第2のブロック番号を情報処理装置2に送信してもよい。
The
Is generated from the first block number “0b11110”. More specifically, the
制御部1cは、第1のビット数と第1のブロック番号とに応じたオフセット値をメモリ3bに格納する(当該オフセット値を管理情報に含めてもよい)。例えば、制御部1cは、オフセット値“0b110000”をメモリ3bに格納する。より具体的には、制御部1cは、第1のブロック番号“0b111010”の上位2ビット(第1のビット数を除いた上位ビット数分)を取得し、下位4ビットを全て“0”にすることで、オフセット値“0b110000”を生成し、メモリ3bに格納する(図1(A)(4))。図1では、オフセット値を“Offset”と表記している。図1では、オフセット値を2進数で表記している。なお、図1(A)(3)および図1(A)(4)の各ステップの順序は逆でもよいし並列に行われてもよい。
The
その後、カートリッジ3が、ドライブ1aからドライブ1bに移し替えられる。移し替えは、例えば、システムの管理者によって行われてもよいし、ロボットによって行われてもよい。情報処理装置2は、制御部1cからのエラー時のブロック番号の報告を受け付けたことを契機に、カートリッジ3のドライブ1aからドライブ1bへの移し替えを、管理者に報知したり、カートリッジ移動用のロボットに指示したりしてもよい。また、ドライブ1bは、ドライブ1aをストレージ装置1から取り除いて、ドライブ1aが設けられていたスロットに新たに設置されたドライブでもよい。その後、制御部1cは、図1(B)に示す処理を行う。
Thereafter, the
制御部1cは、カートリッジ3がドライブ1bに移し替えられたことを検出すると、その旨を情報処理装置2に報告する。情報処理装置2は当該報告に対して、記録媒体3aのアクセス再開位置を示す第2のブロック番号(上記の例では“1010”)を制御部1cに通知する。制御部1cは、第2のブロック番号を情報処理装置2から受信する(図1(B)(5))。
When detecting that the
制御部1cは、メモリ3bに記憶された管理情報を検出する。これにより、制御部1cは、記録媒体3aには、情報処理装置2により管理される第1のビット数の上限よりも大きなブロック番号によりデータの書込みが行われていることを確認できる。そして、制御部1cは、メモリ3bに記憶されたオフセット値を取得する。例えば、メモリ3bに記憶されたオフセット値は“0b110000”である(図1(B)(6))。制御部1cは、第2のブロック番号とオフセット値とに基づいて、第1のブロック番号をドライブ1bに出力する。例えば、制御部1cは、第2のブロック番号とオフセット値とのOR演算を行うことで、第1のブロック番号を生成する。より具体的には、第2のブロック番号が“0b1010”であり、オフセット値が“0b110000”である場合、制御部1cは、各ビットの同じ桁同士のORをとることで、第1のブロック番号“0b111010”を生成する。当該第1のブロック番号を復元する処理は、情報処理装置2から取得した第2のブロック番号をオフセット値(いわば補正値)により補正することで、第1のブロック番号を生成する処理であるということもできる。制御部1cは、生成した第1のブロック番号“0b111010”をドライブ1bに出力する(図1(B)(7))。
The
すると、ドライブ1bは、第1のブロック番号“0b111010”によって記録媒体3aに対する位置付けを行える。第1のブロック番号“0b111010”は、エラー時にアクセスしていたブロック番号である。すなわち、エラー時にアクセスしていたブロック番号を直接指定して、アクセスを再開できることになる。例えば、情報処理装置2は、エラーが発生したタイミングにおけるデータから、アクセスを再開するようストレージ装置1に指示する。すると、ストレージ装置1は、第1のブロック番号に相当する位置からアクセスを再開する(図1(B)(8))。
Then, the
このように、ストレージ装置1によれば、カートリッジ3をドライブ1aからドライブ1bに移し替えた後に、メモリ3bに記録された情報を基に記録媒体3aのアクセス再開位置を適切に決定できる。ストレージ装置1は、カートリッジ3が備えるメモリ3bに、アクセス再開時のブロック番号の決定に利用される情報を記録する。このため、カートリッジ3を移動させることで、アクセス再開時のブロック位置決定用の情報も移動させることができる。これにより、ストレージ装置側で保持する情報に依存せずに、ブロック番号の決定を適切に行える。
Thus, according to the
また、第1の実施の形態の方法では、アクセス再開時に、第1のブロック番号(エラー時のブロック番号)を復元でき、アクセスを再開するブロック番号を直接指定できる。このため、DDRなどのリカバリ処理を効率的に行える。例えば、ストレージ装置が、自身で管理する複数のブロック番号を、上位装置側で管理可能な1つのブロック番号に対応付ける方法も考えられるが、この方法では、アクセスを再開するブロック番号を直接指定できないことがあるからである。具体的には、実際の書込みを行わずに正常書込みしたことを上位装置(例えば、情報処理装置2)に報告するといった非効率的なアクセス(いわゆる「空書き」)が、アクセス再開時に発生し得る。他方、第1の実施の形態の方法によれば、アクセス再開時のブロック番号を直接指定でき、「空書き」のような非効率的なアクセスを行わずに済む。 In the method according to the first embodiment, when the access is resumed, the first block number (block number at the time of error) can be restored, and the block number at which the access is resumed can be directly designated. For this reason, recovery processing such as DDR can be performed efficiently. For example, a method in which the storage device associates a plurality of block numbers managed by itself with a single block number that can be managed by the host device side is also conceivable. However, this method cannot directly specify a block number for resuming access. Because there is. Specifically, an inefficient access (so-called “empty writing”) such as reporting to the higher-level device (for example, the information processing device 2) that the data has been normally written without actually writing occurs when the access is resumed. obtain. On the other hand, according to the method of the first embodiment, the block number at the time of resuming access can be directly specified, and inefficient access such as “blank writing” is not required.
ここで、メモリ3bに記録されるオフセット値は、“0”であることが明らかな下位4ビットを含まない値でもよい。例えば、図1(A)(4)において、上記のオフセット値“0b110000”に代えて、オフセット値“0b11”のみをメモリ3bに格納してもよい。この場合、制御部1cは、カートリッジ3がドライブ1bに移された後、オフセット値“0b11”に下位4ビットを付加した値と、情報処理装置2から取得したブロック番号“0b1010”とのOR演算により、第1のブロック番号“0b111010”を復元し得る。このようにして、メモリ3bの記憶容量を節約することもできる。
Here, the offset value recorded in the
なお、第1の実施の形態の例では、メモリ3bをカートリッジ3に設けて、オフセット値の格納用としたが、ストレージ装置1が備えるメモリ(図1では図示を省略)にオフセット値を格納してもよい。その場合、当該メモリは不揮発性メモリでもよいし揮発性メモリでもよい。ただし、不揮発性メモリとすることが好ましい。停電などによりストレージ装置1が電源オフになる可能性もあり、その場合にもオフセット値を保持可能だからである。
In the example of the first embodiment, the
また、カートリッジ3のメモリ3bにオフセット値を格納すれば、ストレージ装置1以外の他のストレージ装置が備えるドライブにカートリッジ3を移し替えて、メモリ3bに格納されたオフセット値を基に、当該他のストレージ装置によりリカバリ処理を行える。例えば、ストレージ装置が備えるドライブが1つである場合にも、カートリッジ3を他のストレージ装置のドライブに移し替えることで、DDRを効率的に実行可能となる。
Further, if the offset value is stored in the
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムの例を示す図である。第2の実施の形態の情報処理システムは、テープ装置100,100aおよびサーバ200を含む。テープ装置100,100aは、サーバ200に接続されている。サーバ200は、ネットワーク10に接続されている。ネットワーク10は、例えばLAN(Local Area Network)である。
[Second Embodiment]
FIG. 2 is a diagram illustrating an example of an information processing system according to the second embodiment. The information processing system according to the second embodiment includes
テープ装置100,100aは、カートリッジ300に収められた記録媒体にデータを書込むストレージ装置である。テープ装置100,100aは、筐体内部にカートリッジ300を複数個格納できる、ライブラリ装置やチェンジャ装置などと呼ばれるものでもよい。テープ装置100,100aは、第1の実施の形態のストレージ装置1の一例である。
The
カートリッジ300は、磁気テープ310およびカートリッジメモリ(CM:Cartridge Memory)320を有する。磁気テープ310は、磁気テープ媒体である。磁気テープ310は、CM320と比較して記憶領域のサイズが大きく、大量のデータを格納可能である。磁気テープ310には、シーケンシャルアクセスによりデータの書込みや読出しが行われる。磁気テープ310には、例えば、サーバ200が扱うデータのバックアップが格納される。CM320は、半導体メモリである。CM320は、DDR処理に用いられるデータを記憶する。カートリッジ300は、第1の実施の形態のカートリッジ3の一例である。ここで、カートリッジ300は、LTO(Linear Tape-Open、登録商標)規格に準拠したメディアである。テープ装置100,100aは、LTO型のカートリッジ300(カートリッジ内の磁気テープ310)に対するデータの書込みや読出しを行える。LTO型の磁気テープ310では、例えば、数百GB〜数TBの記憶容量を利用できる。一方、CM320は、磁気テープ310と比べると記憶容量は小さい。
The
サーバ200は、他のサーバ装置やクライアント装置など(図示を省略)に所定の業務サービスを提供するサーバコンピュータである。サーバ200は、テープ装置100,100aを用いて、サーバ200の処理に用いられる業務データのバックアップを行う。ここで、サーバ200はDDRの機能を備えている。サーバ200は、端末装置からの入力に対して処理を実行するホストコンピュータと呼ばれるものでもよい。サーバ200は、第1の実施の形態の情報処理装置2の一例である。
The
ここで、サーバ200の磁気テープ310に対するアクセス方法には、磁気テープ310に対してアクセスするトラック数に応じて複数のモードが存在する。例えば、18トラック(TRK:TRacK)モード、36TRKモードおよび128TRKモードがある。各モードで、サーバ200がDDR処理に利用できるブロック番号の範囲が異なる。
Here, the access method for the
例えば、18TRKモードおよび36TRKモードでは、サーバ200は、ブロック番号を22ビットで管理する。この場合、サーバ200は、222個(約400万)のブロック番号を管理可能である。例えば、1ブロックサイズは、32KBなので、22ビットで表わされるブロック番号によって利用可能な磁気テープ媒体の総サイズは、およそ128GB(=32KB×400万)である。18TRKモードで利用される磁気テープ媒体には、例えば、OPEN型のものがある。OPEN型の磁気テープ媒体のテープ1巻当たりの容量は1.2GB程度なので、ブロック番号を22ビットで管理できれば十分である。同様に、36TRKモードで利用される磁気テープ媒体には、例えば、CMT(Cartridge Magnetic Tape)型のものがある。CMT型の磁気テープ媒体のテープ1巻当たりの容量は2.4GB程度なので、ブロック番号を22ビットで管理できれば十分である。
For example, in the 18 TRK mode and the 36 TRK mode, the
一方、近年では、磁気テープ媒体として前述のLTO型のものが利用されることが多い。LTOには複数の世代(LTO1〜LTO5など)があり、世代によっては、1巻当たりの容量が200GB〜1.6TB(テラバイト)まで書込み可能となっている。ところが、1ブロックサイズが32KBであるとき、ブロック番号を22ビットで管理していると、128GBまでしか利用できない。そこで、LTOへのアクセスには、通常、前述の128TRKモードが用いられる。128TRKモードでは、ブロック番号が32ビットで管理される。この場合、232個(約4億)のブロック番号を管理可能である。32ビットで表わされるブロック番号によって利用可能な磁気テープ媒体の総サイズは、128TB(=32KB×4億)となり、LTO型の磁気テープ媒体の総容量をフルに利用できることになる。 On the other hand, in recent years, the above-mentioned LTO type is often used as a magnetic tape medium. The LTO has a plurality of generations (LTO1 to LTO5, etc.), and depending on the generation, the capacity per volume can be written up to 200 GB to 1.6 TB (terabyte). However, when the block size is 32 KB and the block number is managed with 22 bits, only 128 GB can be used. Therefore, the above-described 128 TRK mode is usually used for accessing the LTO. In the 128 TRK mode, the block number is managed with 32 bits. In this case, it is manageable the block number of 2 to 32 (about 400 million). The total size of the magnetic tape medium that can be used by the block number represented by 32 bits is 128 TB (= 32 KB × 400 million), and the total capacity of the LTO type magnetic tape medium can be fully utilized.
ここで、テープ装置100,100aがLTO型の磁気テープ媒体への書込みをサポートしているにも関わらず、サーバ200側のOS(Operating System)やドライバなどのソフトウェアが18TRK/36TRKモードに対応しているが128TRKモードに対応していないことがある。例えば、既存のサーバ200を使用し続けながら、テープ装置を新型のテープ装置100にリプレースすることもあるからである(テープ装置100aも同様)。この場合、テープ装置100は、サーバ200に合わせて18TRKモードまたは36TRKモードの動作をエミュレートし、LTO型の磁気テープ媒体への書込みを可能とする。
Here, even though the
18TRK/36TRKモードでは、磁気テープ310のアクセス先のブロック番号が22ビットで管理可能な上限以上になると、サーバ200によるDDR処理で使用されるブロック番号上限を超えることになる。このため、テープ装置100は、上記エミュレート処理において、アクセス先のブロック番号が22ビットで表わされる上限以上になると、論理EOT(End Of Tape)エラーをサーバ200に報告し、それ以上のアクセスを抑止することになる。
In the 18TRK / 36TRK mode, when the access destination block number of the
しかし、この場合、LTOでは232以上のブロック番号を扱えるにも関わらず、222以上のブロック番号を利用できないことになる。すると、磁気テープ310の容量をフルに利用することができない。第2の実施の形態の例では、サーバ200は128TRKモードに対応していない。そこで、テープ装置100,100aは、サーバ200が128TRKモードに対応していない場合でも、DDR処理への影響を抑えて、磁気テープ310の容量をフルに利用可能とする機能を提供する。
However, in this case, despite the handle LTO in 2 32 or more block number it will not be available to 2 22 or more block number. Then, the capacity of the
図3は、テープ装置のハードウェア例を示す図である。テープ装置100は、プロセッサ101、RAM102、不揮発性メモリ(NVRAM:Non-Volatile Random Access Memory)103、接続インタフェース104およびドライブ105,106を有する。各ユニットがテープ装置100のバスに接続されている。テープ装置100aもテープ装置100と同様のハードウェアにより実現できる。
FIG. 3 is a diagram illustrating a hardware example of the tape device. The
プロセッサ101は、テープ装置100の情報処理を制御するプロセッサである。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
The
RAM102は、プロセッサ101が実行するファームウェアのプログラムや、各種データを一時的に記憶する揮発性メモリである。RAM102は、磁気テープ310やCM320に格納するデータを一時的に保持するバッファとして利用されることもある。
The
NVRAM103は、プロセッサ101が実行するファームウェアのプログラムを記憶する。NVRAM103は、プロセッサ101が実行する処理に用いられるデータを記憶する。
The
接続インタフェース104は、サーバ200と所定のケーブルを介して接続される通信用のインタフェースである。接続インタフェース104としては、例えば、SAS(Serial Attached SCSI、SCSIはSmall Computer System Interfaceの略)や、OCLINK(Optical Channel LINK、登録商標)などを用いることができる。
The
ドライブ105,106は、カートリッジ300を収納可能である。ドライブ105は、プロセッサ101の命令にしたがって、収納されたカートリッジ300に対するデータの書込み/読出しを行う。ドライブ105は、テープ記録部105aおよびメモリ記録部105bを有する。テープ記録部105aは、磁気テープ310に対するデータの書込み/読出しを行う。メモリ記録部105bは、CM320に対するデータの書込み/読出しを行う。ドライブ106は、テープ記録部106aおよびメモリ記録部106bを有する。テープ記録部106aの機能は、テープ記録部105aと同様である。メモリ記録部106bの機能は、メモリ記録部105bと同様である。
The
ここで、テープ記録部105a,106aそれぞれは、磁気テープ310に対するデータの書込み/読出しを行うための磁気ヘッドを備えている。テープ記録部105a,106aは、磁気テープ310のあるブロック番号に対応する位置にアクセスする際、磁気ヘッドが、磁気テープ310の該当位置に配置されるよう磁気テープ310を巻き取るなどして移動させる。このように、磁気ヘッドに対して磁気テープ310の位置を合わせる処理を「磁気テープ310の位置付け」または単に「位置付け」と称することがある。
Here, each of the tape recording units 105 a and 106 a includes a magnetic head for writing / reading data to / from the
図4は、サーバのハードウェア例を示す図である。サーバ200は、プロセッサ201、RAM202、HDD(Hard Disk Drive)203、接続インタフェース204、画像信号処理部205、入力信号処理部206、媒体リーダ207および通信インタフェース208を有する。各ユニットはサーバ200のバスに接続されている。
FIG. 4 is a diagram illustrating a hardware example of the server. The
プロセッサ201は、サーバ200の情報処理を制御する。プロセッサ201は、マルチプロセッサであってもよい。プロセッサ201は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ201は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
The
RAM202は、サーバ200の主記憶装置である。RAM202は、プロセッサ201に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM202は、プロセッサ201による処理に用いる各種データを記憶する。
The
HDD203は、サーバ200の補助記憶装置である。HDD203は、内蔵した磁気ディスクに対して、磁気的にデータの書込みおよび読出しを行う。HDD203は、OSのプログラム、アプリケーションプログラム、および各種データを記憶する。サーバ200は、フラッシュメモリやSSDなどの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
The
接続インタフェース204は、テープ装置100,100aと所定のケーブルを介して接続される通信用のインタフェースである。
画像信号処理部205は、プロセッサ201からの命令に従って、サーバ200に接続されたディスプレイ11に画像を出力する。ディスプレイ11としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
The
The image
入力信号処理部206は、サーバ200に接続された入力デバイス12から入力信号を取得し、プロセッサ201に出力する。入力デバイス12としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
The input
媒体リーダ207は、記録媒体13に記録されたプログラムやデータを読み取る装置である。記録媒体13として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体13として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。媒体リーダ207は、例えば、プロセッサ201からの命令に従って、記録媒体13から読み取ったプログラムやデータをRAM202またはHDD203に格納する。
The
通信インタフェース208は、ネットワーク10を介して他のコンピュータと通信を行う。通信インタフェース208は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
The
図5は、テープ装置の機能例を示す図である。テープ装置100は、RW(Read / Write)制御部110および記憶部120を有する。RW制御部110は、RAM102に格納されたプログラムをプロセッサ101が実行することで実現される。記憶部120は、RAM102やNVRAM103上に確保された記憶領域により実現される。
FIG. 5 is a diagram illustrating an example of functions of the tape device. The
RW制御部110は、ドライブ105,106によるデータの書込みや読出しの実行を制御する。例えば、ドライブ105にカートリッジ300が収納されている場合、RW制御部110は、サーバ200から書込み指示されたデータを、カートリッジ300の磁気テープ310に書込む。また、RW制御部110は、サーバ200から読出し指示されたデータを、カートリッジ300の磁気テープ310から読出し、サーバ200に提供する。
The
RW制御部110は、ドライブ105またはドライブ106において、あるブロック番号に対するアクセス時にアクセスエラーが発生すると、エラー発生をサーバ200に通知する。その後、RW制御部110は、アクセス時のブロック番号の通知指令をサーバ200から受け付けると、該当のブロック番号をサーバ200に報告する。ただし、RW制御部110は、アクセスエラーの発生したブロック番号が、サーバ200が管理するブロック番号の上限(222)以上である場合、当該ブロック番号から22ビット長のブロック番号を生成して、サーバ200に報告する。RW制御部110は、生成した22ビット長のブロック番号に対する元のブロック番号のオフセット値をCM320に格納する。
When an access error occurs in the
RW制御部110は、その後、正常なドライブ(ドライブ105でエラーが発生した場合、ドライブ106)にカートリッジ300が移されたことを検出すると、エラー時に報告した22ビット長のブロック番号をサーバ200から取得する。当該22ビット長のブロック番号とCM320に記憶されたオフセット値とを基に、磁気テープ310へのアクセス再開位置を決定する。
Thereafter, when the
記憶部120は、RW制御部110による処理に用いられる情報を記憶する。記憶部120は、RW制御部110がサーバ200から受信した書込み対象のデータや、磁気テープ310から読出したデータを一時的に記憶するバッファとして用いられることもある。
The
上記の説明では、テープ装置100の機能について説明したが、テープ装置100aも同様の機能を有する。DDR処理はテープ装置100,100aを跨いで実行されることもある(例えば、テープ装置100でのアクセスでエラーが発生した場合、テープ装置100aを用いて当該アクセスをリカバリするなど)。
In the above description, the function of the
サーバ200は、DDR処理部210および記憶部220を有する。DDR処理部210は、RAM202に記憶されたプログラムをプロセッサ201が実行することで実現される。記憶部220は、RAM202またはHDD203上に確保された記憶領域により実現される。
The
DDR処理部210は、DDR処理を制御する。具体的には、テープ装置100で、ドライブ105に収納されたカートリッジ300の磁気テープ310にアクセス中、アクセスエラーが発生したとする。すると、DDR処理部210は、テープ装置100からアクセスエラーの通知とともに、エラー時のブロック番号をテープ装置100から受信する。DDR処理部210は、カートリッジ300をドライブ106に移し替えるようオペレータに報知する。例えば、DDR処理部210は、カートリッジ300の移し替えを促すメッセージをディスプレイ11に表示させることで、当該報知を行ってもよい。または、DDR処理部210は、オペレータが利用する端末装置に当該メッセージを送信してもよいし、サーバ200に接続されたスピーカから音声により当該メッセージを報知してもよい。
The
その後、DDR処理部210は、カートリッジ300がドライブ106に移し替えられた旨の通知をテープ装置100から受け付ける。DDR処理部210は、エラー時に報告を受けたブロック番号とともに、当該ブロック番号に対応する位置からアクセスを再開するようテープ装置100に指示する。
Thereafter, the
記憶部220は、DDR処理部210による処理に用いられる情報を記憶する。例えば、記憶部220は、テープ装置100から受信したエラー時のブロック番号の情報を記憶する。
The
図6は、DDRに用いられるコマンドのパラメータ例を示す図である。DDRでは、主に2種類のコマンドが利用される。第1のコマンドは、“RDBID(ReaD Block ID)”である。IDはIDentifierの略である。“BID”はブロック番号を示す。RDBIDコマンドは、テープ装置100からサーバ200へアクセスエラーが通知された後に、サーバ200によってテープ装置100に対して発行されるコマンドであり、エラー時のブロック番号の通知を指示するコマンドである。第2のコマンドは、“LOCATE”である。LOCATEコマンドは、サーバ200によりテープ装置100に対して発行されるコマンドであり、アクセス再開時の磁気テープ310の位置をテープ装置100に指示するコマンドである。
FIG. 6 is a diagram illustrating a parameter example of a command used for DDR. In DDR, two types of commands are mainly used. The first command is “RDBID (ReaD Block ID)”. ID is an abbreviation for IDentifier. “BID” indicates a block number. The RDBID command is a command issued to the
RDBIDコマンドおよびLOCATEコマンドの何れも、パラメータとして、ブロック番号が指定される。図6(A)は、RDBIDコマンドにおいてブロック番号を指定するパラメータで使用されるビット数を示している。18TRKモードおよび36TRKモードでは、RDBIDコマンドでブロック番号の指定に使用されるビット数は22である(図6(A)の0番目〜21番目のビットが対応)。一方、128TRKモードでは、RDBIDコマンドでブロック番号の指定に使用されるビット数は32である(図6(A)の0番目〜31番目のビットが対応)。 Both the RDBID command and the LOCATE command specify a block number as a parameter. FIG. 6A shows the number of bits used in a parameter for specifying a block number in the RDBID command. In the 18TRK mode and the 36TRK mode, the number of bits used for specifying the block number in the RDBID command is 22 (corresponding to the 0th to 21st bits in FIG. 6A). On the other hand, in the 128 TRK mode, the number of bits used to specify a block number in the RDBID command is 32 (corresponding to the 0th to 31st bits in FIG. 6A).
図6(B)は、LOCATEコマンドにおいてブロック番号を指定するパラメータで使用されるビット数を示している。18TRKおよび36TRKモードでは、LOCATEコマンドでブロック番号の指定に使用されるビット数は22である(図6(B)の0番目〜21番目のビットが対応)。一方、128TRKモードでは、LOCATEコマンドでブロック番号の指定に使用されるビット数は32である(図6(B)の0番目〜31番目のビットが対応)。 FIG. 6B shows the number of bits used in a parameter for specifying a block number in the LOCATE command. In the 18TRK and 36TRK modes, the number of bits used to specify the block number in the LOCATE command is 22 (corresponding to the 0th to 21st bits in FIG. 6B). On the other hand, in the 128 TRK mode, the number of bits used to specify the block number by the LOCATE command is 32 (corresponding to the 0th to 31st bits in FIG. 6B).
図7は、アクセス可能なブロック番号の上限の例を示す図である。図7では、磁気テープ310の論理的な記憶領域を1つの帯で模式的に表わしている。LTO型の磁気テープ310の記憶領域の先頭(BOT:Beginning Of Tape)のブロック番号は“0”である。終端(EOT)のブロック番号は“232−1”である。ブロック番号“0”の位置には、磁気テープ310を識別するVOL ID(VOLume ID)が書込まれる。以降のブロックにユーザデータがシーケンシャルに書込まれる。ブロックサイズは32KBである。
FIG. 7 is a diagram illustrating an example of the upper limit of accessible block numbers. In FIG. 7, the logical storage area of the
例えば、36TRKモードでは、前述のようにブロック番号は22ビットで管理されるので、ブロック番号の最大値は222−1である。一方、128TRKモードでは、前述のようにブロック番号は32ビットで管理されるので、ブロック番号の最大値は232−1である。 For example, in the 36TRK mode, since the block number is managed with 22 bits as described above, the maximum value of the block number is 2 22 -1. On the other hand, in the 128 TRK mode, since the block number is managed with 32 bits as described above, the maximum value of the block number is 2 32 -1.
36TRKモードをサポートするが128TRKモードをサポートしていないサーバ200からも磁気テープ310の記憶領域をフルに利用可能とするために、テープ装置100の動作モードとして、EX36TRKモード(拡張36TRKモード)を新たに設ける。EX36TRKモードは、テープ装置100があたかも36TRKモードで磁気テープ310にアクセスしているようにサーバ200に認識させるが、テープ装置100内では磁気テープ310に対して128TRKモード相当でアクセスを行うモードである。EX36TRKモードでは、ブロック番号が222に達しても、テープ装置100は、サーバ200へ論理EOTエラーを報告しない。そして、テープ装置100は、EX36TRKモードでは、128TRKモードと同様、32ビットで表わされるブロック番号により位置付けする。このため、EX36TRKモードでは、128TRKモードと同様に磁気テープ310の記憶領域をフルに利用できる。
The EX36TRK mode (extended 36TRK mode) has been newly added as an operation mode of the
図8は、モード管理テーブルの例を示す図である。モード管理テーブル121は、記憶部120に格納される。モード管理テーブル121は、テープ装置動作区分、動作モード、SNS I/O(SeNSe Input / Output)コマンドおよびブロック管理ビット数の項目を含む。
FIG. 8 is a diagram illustrating an example of the mode management table. The mode management table 121 is stored in the
テープ装置動作区分の項目には、テープ装置の動作区分を示す情報が登録される。動作モードの項目には、テープ装置の動作モードを示す情報が登録される。SNS I/Oコマンドの項目には、動作モードに応じたSNS I/Oコマンドに対する応答コードが登録される。ここで、SNS I/Oコマンドは、サーバ200により発行されるコマンドであり、テープ装置100の動作区分を確認するためのコマンドである。テープ装置100は、SNS I/Oコマンドに対して、テープ装置100で現在利用している動作モードに応じた応答コードを、サーバ200に応答することで、テープ装置100の動作区分をサーバ200に報告する。ブロック管理ビット数の項目には、ブロック番号の管理に用いるビット数が登録される。
Information indicating the operation category of the tape device is registered in the item of the tape device operation category. Information indicating the operation mode of the tape device is registered in the operation mode item. In the SNS I / O command item, a response code for the SNS I / O command corresponding to the operation mode is registered. Here, the SNS I / O command is a command issued by the
例えば、モード管理テーブル121には、テープ装置動作区分が“CMT型”、動作モードが“36TRK”、SNS I/Oコマンドが“FF17E236647036”、ブロック管理ビット数が“22”という情報が登録される。 For example, information indicating that the tape device operation classification is “CMT type”, the operation mode is “36TRK”, the SNS I / O command is “FF17E236647036”, and the number of block management bits is “22” is registered in the mode management table 121. .
これは、テープ装置100の動作区分が“CMT型”であり、動作モードが36TRKモードであるとき、サーバ200に“CMT型(36TRKモード)”であることを通知するために、SNS I/Oコマンドの応答コード“FF17E236647036”を報告することを示す。また、36TRKモードでは、ブロック番号の管理に利用可能なビット数が22ビットであることを示す。
This is because when the operation classification of the
また、例えば、モード管理テーブル121には、テープ装置動作区分が“LTO型”、動作モードが“EX36TRK”、SNS I/Oコマンドが“FF17E236647036”、ブロック管理ビット数が“32”という情報が登録される。 Further, for example, in the mode management table 121, information that the tape device operation classification is “LTO type”, the operation mode is “EX36TRK”, the SNS I / O command is “FF17E236647036”, and the number of block management bits is “32”. Is done.
これは、テープ装置100の動作区分が“LTO型”であり、動作モードがEX36TRKモードであるとき、サーバ200に“LTO型”ではなく“CMT型(36TRKモード)”であることを通知するために、SNS I/Oコマンドの応答コード“FF17E236647036”(36TRKモードの応答コード)を報告することを示す。この報告は、テープ装置100の動作区分が“CMT型”である旨を、サーバ200に認識させるためである。また、EX36TRKモードでは、ブロック番号の管理に利用可能なビット数が32ビットであることを示す。
This is because when the operation classification of the
図9は、CMに格納される情報の例を示す図である。CM320には、EX36TRK使用フラグ321(図9(A))およびオフセット値322(図9(B))が格納される。EX36TRK使用フラグ321は、磁気テープ310に対するアクセスにEX36TRKモードが用いられており、かつ、36TRKモードのブロック番号の上限を超えたブロック番号でアクセスが行われた場合に“true”が設定される管理情報である。磁気テープ310に対するアクセスにEX36TRKモードが用いられていない場合、または、アクセス先のブロック番号が36TRKモードのブロック番号の上限を超えていない場合、EX36TRK使用フラグ321は、“false”が設定される。磁気テープ310に対するアクセスにEX36TRKモードが用いられておらず、かつ、アクセス先のブロック番号が36TRKモードのブロック番号の上限を超えていない場合も、EX36TRK使用フラグ321は、“false”が設定される。EX36TRK使用フラグ321は、磁気テープ310に対するアクセス先のブロック番号が22ビットの上限を超えていることを示す管理情報であるということもできる。
FIG. 9 is a diagram illustrating an example of information stored in the CM. The
オフセット値322は、磁気テープ310に対するアクセスエラー時に、RW制御部110によって生成されるオフセット値である。オフセット値322は、エラー時においてアクセスされていた32ビットのブロック番号の下位22ビット分が除去された上位10ビットである。オフセット値322は、当該32ビットのブロック番号の下位22ビットを除去せずに、下位22ビットを全て“0”とした値でもよい(ただし、下位22ビット分を除去した方が、CM320の記憶領域を節約できる)。
The offset
例えば、磁気テープ310のブロック番号“0xA0000100”でアクセスエラーが発生したとする(プレフィクス“0x”は後続の数値または数値列が16進数表記であることを示す)。ブロック番号“0xA0000100”は、22ビットで管理可能な上限のブロック番号を超えている。この場合、例えば、上位10ビット“0b1010000000”がオフセット値322としてCM320に記録される(図9のオフセット値は2進数表記である)。オフセット値322とEX36TRK使用フラグ321との両方を含む情報を管理情報と考えてもよい。
For example, it is assumed that an access error has occurred at the block number “0xA0000100” of the magnetic tape 310 (the prefix “0x” indicates that the subsequent numerical value or numerical value string is expressed in hexadecimal). The block number “0xA0000100” exceeds the upper limit block number that can be managed by 22 bits. In this case, for example, the upper 10 bits “0b1010000000” are recorded in the
次に、以上のような構成のテープ装置100における処理手順を説明する。ここで、テープ装置100には、予め何れの動作モードとするかが(サーバ200側の動作モードと整合した動作モードが)システム管理者によって予め設定されている。例えば、NVRAM103に、予め設定された動作モードの情報が格納される。
Next, a processing procedure in the
図10は、モード報告処理の例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
(S11)RW制御部110は、モード確認コマンド(SNS I/Oコマンド)をサーバ200から受信する。RW制御部110は、NVRAM103を参照して、テープ装置100に設定されている動作モードを取得する。RW制御部110は、取得した動作モードを基に、以下のステップS12,S14,S16,S18の判定を行う。
FIG. 10 is a flowchart illustrating an example of mode report processing. In the following, the process illustrated in FIG. 10 will be described in order of step number.
(S11) The
(S12)RW制御部110は、設定された動作モードが18TRKモードであるか否かを判定する。18TRKモードである場合、処理をステップS13に進める。18TRKモードでない場合、処理をステップS14に進める。
(S12) The
(S13)RW制御部110は、18TRKモードであることを示す応答コード“FF175118647018”をサーバ200に報告する。そして、処理を終了する。動作モードに対して報告すべき応答コードは、モード管理テーブル121から取得可能である。サーバ200は、応答コードから、サーバ200の動作モードがテープ装置100の動作モードと一致していることを確認する。その上で、サーバ200は、テープ装置100に収納されたカートリッジ300へのアクセスを行うことになる(他のモードでも同様)。
(S13) The
(S14)RW制御部110は、36TRKモードであるか否かを判定する。36TRKモードである場合、処理をステップS15に進める。36TRKモードでない場合、処理をステップS16に進める。
(S14) The
(S15)RW制御部110は、36TRKモードであることを示す応答コード“FF17E236647036”をサーバ200に報告する。そして、処理を終了する。
(S16)RW制御部110は、EX36TRKモードであるか否かを判定する。EX36TRKモードである場合、処理をステップS17に進める。EX36TRKモードでない場合、処理をステップS18に進める。
(S15) The
(S16) The
(S17)RW制御部110は、36TRKモードであることを示す応答コード“FF17E236647036”をサーバ200に報告する。そして、処理を終了する。
(S18)RW制御部110は、128TRKモードであるか否かを判定する。128TRKモードである場合、処理をステップS19に進める。128TRKモードでない場合、処理をステップS20に進める。
(S17) The
(S18) The
(S19)RW制御部110は、128TRKモードであることを示す応答コード“FF17E27F64837F”をサーバ200に報告する。そして、処理を終了する。
(S20)RW制御部110は、モードアンマッチエラーをサーバ200に報告する。何れのモードも設定されておらず、モードを確認できなかったからである。
(S19) The
(S20) The
このようにして、サーバ200は、テープ装置100のモードを確認する。特に、テープ装置100は、EX36TRKモードが設定されている場合、36TRKモードであることをサーバ200に報告する。なお、サーバ200は、報告を受けた動作モードが、サーバ200の動作モードと一致しない場合には、システム管理者にエラーを通知してもよい。
In this way, the
図11は、書込み時ブロック番号管理処理の例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。以下の手順は、ドライブ105またはドライブ106を用いた磁気テープ310へのデータ書込み時(データはブロック番号の昇順にシーケンシャルに書込まれる)、ブロック番号がインクリメントされるたびに実行される。
FIG. 11 is a flowchart illustrating an example of a block number management process at the time of writing. In the following, the process illustrated in FIG. 11 will be described in order of step number. The following procedure is executed each time the block number is incremented when data is written to the
(S21)RW制御部110は、テープ装置100の動作モードが18TRKまたは36TRKモードの何れかであるか否かを判定する。18TRKまたは36TRKモードの何れかである場合、処理をステップS22に進める。18TRKまたは36TRKモードの何れでもない場合、処理をステップS24に進める。
(S21) The
(S22)RW制御部110は、書込み対象のブロック番号(書込みブロック番号)が222以上であるか否かを判定する。222以上の場合、処理をステップS23に進める。222以上でない場合、処理を終了する(18TRKまたは36TRKモードでの書込みが継続される)。
(S22) The
(S23)RW制御部110は、論理EOT検出エラーをサーバ200に報告する。そして、処理を終了する。論理EOT検出エラーの報告後、書込み処理は中断されることになる。
(S23) The
(S24)RW制御部110は、テープ装置100の動作モードが128TRKまたはEX36TRKモードの何れかであるか否かを判定する。128TRKまたはEX36TRKモードの何れかである場合、処理をステップS26に進める。128TRKまたはEX36TRKモードの何れでもない場合、処理をステップS25に進める。
(S24) The
(S25)RW制御部110は、モードアンマッチエラーをサーバ200に報告する。そして、処理を終了する。モードアンマッチエラーの報告後、書込み処理は中断されることになる。
(S25) The
(S26)RW制御部110は、書込みブロック番号が232以上であるか否かを判定する。232以上である場合、処理をステップS27に進める。232以上でない場合、処理をステップS28に進める。
(S26) The
(S27)RW制御部110は、論理EOT検出エラーをサーバ200に報告する。そして、処理を終了する。論理EOT検出エラーの報告後、書込み処理は中断されることになる。
(S27) The
(S28)RW制御部110は、テープ装置100の動作モードがEX36TRKモードであるか否かを判定する。EX36TRKモードである場合、処理をステップS29に進める。EX36TRKモードでない場合、処理を終了する。なお、EX36TRKモードでない場合は、128TRKモードであるということになる(128TRKモードでの書込みが継続される)。
(S28) The
(S29)RW制御部110は、書込みブロック番号が222以上であるか否かを判定する。222以上の場合、処理をステップS30に進める。222以上でない場合、処理をステップS31に進める。
(S29) The
(S30)RW制御部110は、EX36TRK使用フラグ321を“true”に設定する。そして、処理を終了する(EX36TRKモード(128TRKモード相当)での書込みが継続される)。
(S30) The
(S31)RW制御部110は、EX36TRK使用フラグ321を“false”に設定する。そして、処理を終了する(EX36TRKモード(128TRKモード相当)での書込みが継続される)。
(S31) The
なお、複数のブロック番号に対してシーケンシャルに連続して書込みを行う場合には、ステップS21,S24,S28のモード確認は1度実行すれば2回目以降は実行しなくてもよい(2回目以降も判定結果は同じになるため)。その場合、RW制御部110は、1回目に実行した手順と同じ手順で、ブロック番号の判定を行うことになる(例えば、1回目にステップS21でYesであった場合、2回目以降はステップS21の判定を行うまでもなくステップS22の判定によりブロック番号の判定を行う)。また、RW制御部110は、2回目以降、設定済のフラグ内容から変更がない場合はステップS30,S31をスキップしてよい(例えば、既に“true”が設定されている場合に上書きして“true”を設定せずにスキップしてよい)。
Note that when sequential writing is sequentially performed on a plurality of block numbers, the mode check in steps S21, S24, and S28 may be executed once and then not executed after the second (after the second time). Because the judgment result will be the same). In that case, the
図12は、読出し時ブロック番号管理処理の例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。以下の手順は、ドライブ105またはドライブ106を用いた磁気テープ310からのデータ読出し時(データはブロック番号の昇順にシーケンシャルに読出される)、ブロック番号がインクリメントされるたびに実行される。
FIG. 12 is a flowchart illustrating an example of a block number management process at the time of reading. In the following, the process illustrated in FIG. 12 will be described in order of step number. The following procedure is executed each time the block number is incremented when data is read from the
(S41)RW制御部110は、テープ装置100の動作モードが18TRKまたは36TRKモードの何れかであるか否かを判定する。18TRKまたは36TRKモードの何れかである場合、処理をステップS42に進める。18TRKまたは36TRKモードの何れでもない場合、処理をステップS44に進める。
(S41) The
(S42)RW制御部110は、読出し対象のブロック番号(読出しブロック番号)が222以上であるか否かを判定する。222以上の場合、処理をステップS43に進める。222以上でない場合、処理を終了する(18TRKまたは36TRKモードでの読出しが継続される)。
(S42) The
(S43)RW制御部110は、論理EOT検出エラーをサーバ200に報告する。そして、処理を終了する。論理EOT検出エラーの報告後、読出し処理は中断されることになる。
(S43) The
(S44)RW制御部110は、テープ装置100の動作モードが128TRKまたはEX36TRKモードの何れかであるか否かを判定する。128TRKまたはEX36TRKモードの何れかである場合、処理をステップS46に進める。128TRKまたはEX36TRKモードの何れでもない場合、処理をステップS45に進める。
(S44) The
(S45)RW制御部110は、モードアンマッチエラーをサーバ200に報告する。そして、処理を終了する。モードアンマッチエラーの報告後、読出し処理は中断されることになる。
(S45) The
(S46)RW制御部110は、読出しブロック番号が232以上であるか否かを判定する。232以上である場合、処理をステップS47に進める。232以上でない場合、処理を終了する(128TRKモードまたはEX36TRKモード(128TRKモード相当)での読出しが継続される)。
(S46) The
(S47)RW制御部110は、論理EOT検出エラーをサーバ200に報告する。そして、処理を終了する。論理EOT検出エラーの報告後、読出し処理は中断されることになる。
(S47) The
なお、複数のブロック番号に対してシーケンシャルに連続して読出しを行う場合には、ステップS41,S44のモード確認は1度実行すれば2回目以降は実行しなくてもよい(2回目以降も判定結果は同じになるため)。その場合、RW制御部110は、1回目に実行した手順と同じ手順で、ブロック番号の判定を行うことになる(例えば、1回目にステップS41でYesであった場合、2回目以降はステップS41の判定を行うまでもなくステップS42の判定によりブロック番号の判定を行う)。
Note that when sequential reading is sequentially performed on a plurality of block numbers, the mode confirmation in steps S41 and S44 may be performed once and then not performed after the second time (the second and subsequent times are also determined). Because the result will be the same). In that case, the
図13は、エラー時ブロック番号報告処理の例を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
(S51)RW制御部110は、ドライブ105に収納されたカートリッジ300の磁気テープ310に対するアクセスでエラーが発生したことを検出する。RW制御部110は、エラー発生をサーバ200に報告する。このとき、カートリッジ300の磁気テープ310に格納されたVOL IDもサーバ200に報告する。報告されたVOL IDは、サーバ200によって保持される。その後、RW制御部110は、RDBIDコマンドをサーバ200から受信する。
FIG. 13 is a flowchart illustrating an example of an error block number reporting process. In the following, the process illustrated in FIG. 13 will be described in order of step number.
(S51) The
(S52)RW制御部110は、アクセスエラーが発生したタイミングにおけるアクセス先のブロック番号(エラー時ブロック番号)をドライブ105から取得する。
(S53)RW制御部110は、ドライブ105にマウントされているカートリッジ300のCM320から、EXT36TRK使用フラグ321を取得する。
(S52) The
(S53) The
(S54)RW制御部110は、EXT36TRK使用フラグ321が“true”であるか否かを判定する。“true”である場合、処理をステップS55に進める。“true”でない(すなわち、“false”である)場合、処理をステップS57に進める。EXT36TRK使用フラグ321が“true”の場合、EXT36TRKモードが用いられており、エラー時ブロック番号が、22ビットで表わされるブロック番号の上限を超過していることになる。一方、EXT36TRK使用フラグ321が“false”の場合、EXT36TRKモードが用いられていない、あるいは、EXT36TRKモードが用いられているがエラー時ブロック番号が22ビットで表わされるブロック番号の上限以下であることになる。
(S54) The
(S55)RW制御部110は、エラー時ブロック番号の下位22ビットを除去した上位10ビット(オフセット値)をCM320に記録する。例えば、エラー時ブロック番号が“0b10100000000000000000000100000000”の場合、オフセット値322は、“0b1010000000”である。
(S55) The
(S56)RW制御部110は、エラー時ブロック番号の下位22ビット(ダミーのブロック番号)をサーバ200(ホスト)に報告する。例えば、ステップS55のエラー時ブロック番号に対して、サーバ200に報告されるダミーのブロック番号は、“0b0000000000000100000000”である。そして、処理を終了する。
(S56) The
(S57)RW制御部110は、エラー時ブロック番号をサーバ200(ホスト)に報告する。この場合、サーバ200では、エラー時ブロック番号として下位22ビットのみが認識される(上位10ビットは全て“0”なので、サーバ200側で当該上位10ビットが破棄されても問題ない)。そして、処理を終了する。
(S57) The
サーバ200は、RDBIDコマンドに対してエラー時ブロック番号をテープ装置100から取得すると、カートリッジ300を別のドライブに移すようオペレータに報知する。オペレータは、ドライブ105からドライブ106へカートリッジ300を移し替える。
When the
図14は、カートリッジ確認処理の例を示す図である。以下、図14に示す処理をステップ番号に沿って説明する。
(S61)RW制御部110は、ドライブ106(他ドライブ)に収納されたカートリッジ300をマウントする。これにより、ドライブ106を用いた磁気テープ310およびCM320へのアクセスが可能となる。RW制御部110は、カートリッジ300がドライブ106にマウントされたことをサーバ200に通知する。
FIG. 14 is a diagram illustrating an example of the cartridge confirmation process. In the following, the process illustrated in FIG. 14 will be described in order of step number.
(S61) The
(S62)RW制御部110は、サーバ200からVOL IDの報告指示を受け付ける。RW制御部110は、磁気テープ310に格納されたVOL IDを取得して、サーバ200に報告する。
(S62) The
サーバ200は、ドライブ106にマウントされたカートリッジ300が、ドライブ105でアクセスエラーになったものと同一であることをVOL IDにより判断する。例えば、サーバ200は、エラー発生時にテープ装置100からカートリッジ300のVOL IDを取得し、保持している(図13のステップS51)。このため、サーバ200は、保持されているVOL IDと、ステップS62で取得したVOL IDとが一致していれば、ドライブ106にマウントされたカートリッジ300がDDR対象のものであると判断できる。一方、両方のVOL IDが一致していなければ、ドライブ106にマウントされたカートリッジ300はDDR対象ではないということになる。
The
サーバ200は、ドライブ106にマウントされたカートリッジ300がDDR対象のものであると判断すると、LOCATEコマンドを用いて、磁気テープ310に対するアクセス再開を行うブロック番号を、テープ装置100に通知する。テープ装置100は、LOCATEコマンドで指定されたブロック番号を基に、磁気テープ310の位置付けを行う。
When the
図15は、位置付け処理の例を示す図である。以下、図15に示す処理をステップ番号に沿って説明する。
(S71)RW制御部110は、サーバ200(ホスト)からブロック番号を指定したLOCATEコマンドを受信する。RW制御部110は、サーバ200から受信したブロック番号を記憶部120に記録する。
FIG. 15 is a diagram illustrating an example of the positioning process. In the following, the process illustrated in FIG. 15 will be described in order of step number.
(S71) The
(S72)RW制御部110は、ドライブ106にマウントされているカートリッジ300のCM320から、EXT36TRK使用フラグ321を取得する。
(S73)RW制御部110は、EXT36TRK使用フラグ321が“true”であるか否かを判定する。“true”である場合、処理をステップS74に進める。“true”でない(すなわち、“false”である)場合、処理をステップS80に進める。
(S72) The
(S73) The
(S74)RW制御部110は、テープ装置100(自テープ装置)の動作モードが、EXT36TRKモードであるか否かを判定する。EXT36TRKモードである場合、処理をステップS77に進める。EXT36TRKモードでない場合、処理をステップS75に進める。
(S74) The
(S75)RW制御部110は、テープ装置100(自テープ装置)の動作モードが、18TRKまたは36TRKモードであるか否かを判定する。18TRKまたは36TRKモードである場合、処理をステップS76に進める。18TRKまたは36TRKモードでない場合(すなわち、128TRKモードの場合)、処理をステップS77に進める。128TRKモードの場合にステップS77へ進める理由は、128TRKモードであれば、EX36TRKモードの全ブロック番号での位置付けが可能だからである。
(S75) The
(S76)RW制御部110は、磁気テープ310の位置付けを行えない旨(位置付け不可)をサーバ200に報告する。そして、処理を終了する。この場合、テープ装置100では、DDR処理を続行することができないことになる。
(S76) The
(S77)RW制御部110は、サーバ200(ホスト)から受信したブロック番号とCM320に格納されたオフセット値322とをOR演算する。ここで、オフセット値322は、エラー時ブロック番号の上位10ビットを抽出し、下位22ビットを除去したものである。このため、RW制御部110は、オフセット値322の下位に22ビット分の“0”を加えた値と、サーバ200から取得したブロック番号とをOR演算する。より具体的には、オフセット値322が“0b1010000000”である場合、まず、下位に22ビット分の“0”を加えたOR演算用のオフセット値“0b10100000000000000000000000000000”を生成する。そして、サーバ200から取得したブロック番号“0b0000000000000100000000”の各桁と上記OR演算用のオフセット値の各桁とのORをとる。その結果、RW制御部110は、エラー時ブロック番号“0b10100000000000000000000100000000”を得る。
(S77) The
(S78)RW制御部110は、CM320に記録されたオフセット値322をクリアする。その結果、オフセット値322は設定なしとなる。
(S79)RW制御部110は、ステップS77のOR演算で求めたブロック番号(エラー時ブロック番号)でドライブ106に位置付けを指示する。これにより、ドライブ106の磁気ヘッドが、磁気テープ310の当該エラー時ブロック番号に対応する位置に配置される。そして、処理を終了する。
(S78) The
(S79) The
(S80)RW制御部110は、サーバ200(ホスト)から受信したブロック番号でドライブ106に位置付けを指示する。EXT36TRK使用フラグが“false”の場合、サーバ200から受信したブロック番号はエラー時ブロック番号(より正確には、エラー時ブロック番号の下位22ビット)に一致するためである(32ビットのうち上位10ビットは全て“0”としてよい)。これにより、ドライブ106の磁気ヘッドが、磁気テープ310の当該エラー時ブロック番号に対応する位置に配置される。
(S80) The
なお、ステップS74,S75,S76は、テープ装置100とは異なるテープ装置で、22ビットのブロック番号上限を超えてアクセスされた磁気テープ310が、DDRのためにテープ装置100に収納された場合を想定したモード確認処理である。22ビットより大きなブロック番号にアクセスされた磁気テープ310は、移動先のテープ装置の動作モードがEXT36TRKモードまたは128TRKモードの場合は、移動先のテープ装置により正しく位置付け可能である。一方、移動先のテープ装置が18TRKモードまたは36TRKモードの場合は、22ビットより大きなブロック番号を利用できないので、位置付け不可となる。後者の場合、仮に、サーバ200から指定されたブロック番号からアクセス再開してしまうと、適切でないブロック番号のデータが上書きされたり、読出されたりするおそれがある。そこで、RW制御部110は、ステップS76で位置付け不可をサーバ200に報告し、このような不具合が起こらないよう制御する。
Steps S74, S75, and S76 are cases in which the
ただし、テープ装置100のみを用いてDDRを行う場合でも、ドライブ105からカートリッジ300を取出した後、テープ装置100のモードがEX36TRKモードから、36TRKモードに変更され、その後にカートリッジ300がドライブ106に移されることも考えられる。このようなケースを考慮すると、ステップS74,S75,S76の処理は、テープ装置100のみを用いてDDRを行う場合にも上記不具合を回避する上でも有用である。
However, even when DDR is performed using only the
次に、以上の手順によるテープ装置100とサーバ200との間のEX36TRKモードでの処理の流れの具体例を説明する。下記では、一例として、カートリッジ300の磁気テープ310に対するデータの書込みを行う場合を説明する。
Next, a specific example of the processing flow in the EX36TRK mode between the
図16は、EX36TRKモードでの書込み時のシーケンス例を示す図である。以下、図16に示す処理をステップ番号に沿って説明する。
(ST1)サーバ200は、テープ装置100に対して書込み対象のデータとともに書込みコマンドを送信する。RW制御部110は、サーバ200から書込みコマンドおよび書込み対象のデータを受信する。RW制御部110は、受信した書込みコマンドに応じて、ドライブ105に収納されたカートリッジ300の磁気テープ310に対するデータの書込みを開始する。データの書込みは、ブロック番号の昇順にシーケンシャルに行われる。例えば、RW制御部110は書込み対象のデータをサーバ200から継続的に受信して記憶部120に格納し、記憶部120からデータを取得して磁気テープ310へ書込む。
FIG. 16 is a diagram showing a sequence example at the time of writing in the EX36TRK mode. In the following, the process illustrated in FIG. 16 will be described in order of step number.
(ST1) The
(ST2)RW制御部110は、(図16ではBLK番号と表記)が22ビットで表わされる上限よりも大きなブロック番号に対応する位置にデータを書込む。
(ST3)RW制御部110は、EX36TRK使用フラグ321を“true”に設定する。
(ST2) The
(ST3) The
(ST4)RW制御部110は、ドライブ105で書込みエラーが発生したことを検出する。
(ST5)RW制御部110は、書込みエラーが発生したことをサーバ200に通知する。RW制御部110は、書込みエラーとともに、磁気テープ310に格納されたVOL IDをサーバ200に通知してもよい。サーバ200は、書込みエラー通知を受信する。サーバ200は、書込み対象のデータのうち、何れの部分でエラーが発生したかを示す情報を記憶部220に記録する。サーバ200は、DDRにより書込みを再開する際に、当該情報で示されるデータ部分から、書込みを再開する。
(ST4) The
(ST5) The
(ST6)サーバ200は、テープ装置100に対してRDBIDコマンドを送信する。テープ装置100は、RDBIDコマンドを受信する。
(ST7)RW制御部110は、32ビットで表わされるエラー時ブロック番号をドライブ105から取得する。
(ST6) The
(ST7) The
(ST8)RW制御部110は、エラー時ブロック番号から上位10ビットを抽出し、当該上位10ビットをオフセット値322として、カートリッジ300のCM320に記録する。
(ST8) The
(ST9)RW制御部110は、エラー時ブロック番号から下位22ビットを抽出し、当該下位22ビット(ダミーのブロック番号)をサーバ200に報告する。サーバ200は、カートリッジ300をドライブ105から他のドライブに移し替えるようオペレータに報知する。
(ST9) The
(ST10)カートリッジ300が、ドライブ105からドライブ106に移し替えられる。ドライブ105からカートリッジ300を取出す際、RW制御部110は、ドライブ105によるカートリッジ300のアンマウント処理を行う。また、ドライブ106にカートリッジ300を収納した際、RW制御部110は、ドライブ106によるカートリッジ300のマウント処理を行う。RW制御部110は、ドライブ106によるカートリッジ300のマウント処理を完了したことをサーバ200に通知する。
(ST10) The
(ST11)RW制御部110は、磁気テープ310に格納されたVOL IDをドライブ106から取得する。
(ST12)RW制御部110は、サーバ200と通信して、カートリッジ300がドライブ105から移し替えられたものであることを相互に確認する。具体的には、エラー時においてサーバ200に報告されたVOL IDと、ドライブ106に移し替えられたカートリッジ300から取得されたVOL IDと、が一致することを確認する。
(ST11) The
(ST12) The
(ST13)サーバ200は、テープ装置100に対してLOCATEコマンドを送信する。LOCATEコマンドは、ステップST9で受け付けた22ビットで表わされるブロック番号の指定を含む。RW制御部110は、LOCATEコマンドを受信する。
(ST13) The
(ST14)RW制御部110は、カートリッジ300のCM320に格納されたオフセット値322をドライブ106から取得する。
(ST15)RW制御部110は、ステップST13で取得したブロック番号(サーバ200に報告されたダミーのブロック番号)と、ステップST14で取得したオフセット値とを基に、エラー時ブロック番号(32ビット)を生成する。
(ST14) The
(ST15) The
(ST16)RW制御部110は、ステップST15で生成した32ビットのエラー時ブロック番号を指定して、磁気テープ310の位置付けをドライブ106に指示する。
(ST17)RW制御部110は、位置付け完了をサーバ200に報告する。サーバ200は、位置付け完了の報告を受信する。
(ST16) The
(ST17) The
(ST18)サーバ200は、テープ装置100に対して書込み対象のデータとともに書込みコマンドを送信する。ここで、サーバ200は、エラーにより書込みが中断されたデータ箇所から、テープ装置100に送信すればよい。例えば、ステップST5で示したように、サーバ200は、エラーにより書込みが中断された箇所を記憶部220に記録しておけば、本ステップST18において、記憶部220に記憶された情報により書込みが中断されたデータ箇所を特定できる。RW制御部110は、サーバ200から書込みコマンドおよび書込み対象のデータを受信する。
(ST18) The
(ST19)RW制御部110は、書込みコマンドに応じて、磁気テープ310に対し、エラー時ブロック番号に対応する位置から、データの書込みを再開する。
このように、テープ装置100によれば、磁気テープ310をドライブ105からドライブ106に移し替えた後に、磁気テープ310に対するアクセス再開位置を適切に決定できる。このため、ドライブ106において磁気テープ310に対する非効率的なアクセス(例えば、実際の書込みを行わずに正常書込みしたことをサーバ200に報告する「空書き」処理など)を行わずに済む。よって、LTO型の磁気テープ310の記憶領域をフルに利用可能としながら、DDRによるリカバリ処理を効率的に行えるようになる。
(ST19) The
As described above, according to the
図17は、DDRの他の例を示す図である。前述のように、サーバ200には、テープ装置100に加えて、テープ装置100aも接続されている。この場合、テープ装置100,100aは、上記と同様に、EX36TRKモードでのDDR処理を行える。具体的には、テープ装置100にカートリッジ300を収納して、磁気テープ310にアクセスしている際に、アクセスエラーが発生した場合を考える。このとき、エラー時ブロック番号が22ビットの上限を超えていると、カートリッジ300のCM320には、EX36TRK使用フラグ321(“true”)およびオフセット値322が格納されることになる。
FIG. 17 is a diagram illustrating another example of the DDR. As described above, in addition to the
すると、テープ装置100aが備えるドライブにカートリッジ300を移し替えることで、テープ装置100aは、EX36TRK使用フラグ321およびオフセット値322をCM320から取得できる。このため、テープ装置100aは、CM320から取得したEX36TRK使用フラグ321およびオフセット値322を基に、図15の手順を実行できる(図16の手順のステップST11以降の処理を、テープ装置100aによって実行する)。このように、EX36TRK使用フラグ321およびオフセット値322をCM320に格納することで、複数のテープ装置を用いてDDRを実行できる。例えば、テープ装置100,100aが備えるドライブが1つの場合にも複数のテープ装置を用いてDDRを実行できる。
Then, the
ところで、例えば、上記のようにストレージ装置(例えば、テープ装置100)が、上位装置(例えば、サーバ200)で管理可能なブロック番号よりも大きなブロック番号にデータを書込むことで、上位装置のソフトウェアに起因する磁気テープの使用容量制限を緩和し得る。このとき、ストレージ装置が、ストレージ装置で管理可能な複数のブロック番号を、上位装置で管理可能な1つのブロック番号に対応付けることで、DDRなどのリカバリ処理を行うことが考えられる(この方法を「比較例の方法」と称する)。しかし、比較例の方法では、カートリッジ300を正常なドライブに移し替えた後の磁気テープ310へのアクセスの再開が問題となる。
By the way, for example, as described above, the storage device (for example, the tape device 100) writes data to a block number larger than the block number that can be managed by the higher-level device (for example, the server 200). It is possible to relax the usage capacity limitation of the magnetic tape due to the above. At this time, it is conceivable that the storage apparatus performs recovery processing such as DDR by associating a plurality of block numbers that can be managed by the storage apparatus with one block number that can be managed by the host apparatus (this method is referred to as “ Referred to as “Comparative Method”). However, in the method of the comparative example, resumption of access to the
例えば、ストレージ装置が管理する連続するブロック番号“A1”、“A2”、“A3”(A1<A2<A3)を、上位装置が管理するブロック番号“B1”に対応付け、エラー時にブロック番号“B1”を上位装置に報告することを考える。この場合、例えば、ストレージ装置は、カートリッジ300の移し替え後、上位装置から指定されるブロック番号“B1”に対し、ストレージ装置が管理するブロック番号“A1”、“A2”、“A3”の先頭の“A1”を、アクセス再開位置と決定する。ところが、例えばエラー発生前にブロック番号“A1”、“A2”へ正常にアクセスした後、ブロック番号“A3”へのアクセスでエラーが発生することもある。ブロック番号“B1”が上位装置から指定されただけでは、正常なドライブに移し替えた後に、エラー時のブロック番号“A3”に直接位置付けすることはできない。
For example, the consecutive block numbers “A1”, “A2”, “A3” (A1 <A2 <A3) managed by the storage device are associated with the block number “B1” managed by the host device, and the block number “ Consider reporting B1 ″ to the host device. In this case, for example, after the transfer of the
そこで、カートリッジ300が正常なドライブに移し替えられた後、ストレージ装置は、上位装置から指定されたブロック番号“B1”に対し、まず、ブロック番号“A1”に位置付けすることになる。その後、ストレージ装置は、正常にアクセス済のブロック番号“A1”、“A2”へのアクセスを、再度疑似的に行って(例えば、実際の書込みを行わずに正常書込みしたことを上位装置に報告するなどの「空書き」処理)、アクセスを再開するブロック番号“A3”に到達する。このように、比較例の方法では、カートリッジ300を正常なドライブに移し替えた後に磁気テープ310に対して「空書き」のような非効率的なアクセスが発生するおそれがある。
Therefore, after the
他方、第2の実施の形態の方法によれば、カートリッジ300を正常なドライブに移し替えた後、CM320に記録されたオフセット値により、サーバ200から指示されるブロック番号を補正して、エラー時のブロック番号に直接位置付けできる。このため、「空書き」のような非効率的なアクセスの発生を抑制できる。
On the other hand, according to the method of the second embodiment, after the
また、第2の実施の形態の方法によれば、カートリッジ300が備えるCM320にEXT36使用フラグ321やオフセット値322を記録する。このため、カートリッジ300を正常なドライブに移し替えさえすれば、移し替え先のストレージ装置によりCM320に記録された情報を基に、アクセス再開位置を適切に特定してDDR処理を継続できる。
Further, according to the method of the second embodiment, the
なお、第1の実施の形態の情報処理は、制御部1cとして用いられるプロセッサにプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。テープ装置100は、プロセッサ101およびRAM102を含むコンピュータを備えていると考えることができる。プログラムは、コンピュータ読み取り可能な記録媒体13に記録できる。
Note that the information processing of the first embodiment can be realized by causing a processor used as the
例えば、プログラムを記録した記録媒体13を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体13に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やNVRAM103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。例えば、テープ装置100が備えるコンピュータは、サーバ200が記録媒体13またはネットワーク10を介して取得したプログラムを、サーバ200から取得して、RAM102やNVRAM103などの記憶装置に格納してもよい。
For example, the program can be distributed by distributing the
1 ストレージ装置
1a,1b ドライブ
1c 制御部
2 情報処理装置
3 カートリッジ
3a 記録媒体
3b メモリ
DESCRIPTION OF
Claims (9)
前記記録媒体と前記記録媒体とは異なるメモリとを備えたカートリッジを収納可能であり、前記ビット数によるブロック番号の上限よりも大きなブロック番号により前記記録媒体にアクセス可能なドライブと、
前記ドライブにより前記記録媒体に対して前記上限よりも大きなブロック番号への書込みを行うと、当該書込みが行われたことを示す管理情報を前記メモリに格納し、
前記メモリに記憶された前記管理情報に基づいて、前記記録媒体の前記アクセスを実行する、制御部と、
を有するストレージ装置。 A storage device connected to an information processing device that manages a block number indicating a position of an access destination for a recording medium with a predetermined number of bits,
A drive capable of storing a cartridge including the recording medium and a memory different from the recording medium, and accessible to the recording medium by a block number larger than an upper limit of a block number by the number of bits;
When writing to the block number larger than the upper limit for the recording medium by the drive, management information indicating that the writing has been performed is stored in the memory,
A control unit that executes the access to the recording medium based on the management information stored in the memory;
A storage device.
前記制御部は、第1のドライブによる前記記録媒体に対するアクセスでエラーが発生すると、前記ビット数とエラー時のブロック番号とに応じたオフセット値を前記メモリに格納し、前記カートリッジが第2のドライブに移された後、前記メモリに記憶された前記管理情報を検出すると、前記メモリに記憶された前記オフセット値に基づいて、前記記録媒体の前記アクセスを再開するブロック番号を前記第2のドライブに出力する、
請求項1記載のストレージ装置。 A plurality of the drives;
When an error occurs in access to the recording medium by the first drive, the control unit stores an offset value corresponding to the number of bits and a block number at the time of error in the memory, and the cartridge is in the second drive. When the management information stored in the memory is detected, the block number for restarting the access to the recording medium is assigned to the second drive based on the offset value stored in the memory. Output,
The storage apparatus according to claim 1.
前記記録媒体と前記記録媒体とは異なるメモリとを備えたカートリッジを収納可能であり前記ビット数によるブロック番号の上限よりも大きなブロック番号により前記記録媒体にアクセス可能なドライブにより前記記録媒体に対して前記上限よりも大きなブロック番号への書込みを行うと、当該書込みが行われたことを示す管理情報を前記メモリに格納し、
前記メモリに記憶された前記管理情報に基づいて、前記記録媒体の前記アクセスを実行する、
処理を実行させる制御プログラム。 A computer provided in a storage device connected to an information processing device that manages a block number indicating a position of an access destination for a recording medium with a predetermined number of bits
The recording medium and a cartridge having a memory different from the recording medium can be stored, and the recording medium can be accessed by the drive that can access the recording medium by a block number larger than the upper limit of the block number by the bit number When writing to a block number larger than the upper limit, management information indicating that the writing has been performed is stored in the memory,
Performing the access to the recording medium based on the management information stored in the memory;
A control program that executes processing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015172715A JP2017049817A (en) | 2015-09-02 | 2015-09-02 | Storage device and control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015172715A JP2017049817A (en) | 2015-09-02 | 2015-09-02 | Storage device and control program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017049817A true JP2017049817A (en) | 2017-03-09 |
Family
ID=58279778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015172715A Pending JP2017049817A (en) | 2015-09-02 | 2015-09-02 | Storage device and control program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017049817A (en) |
-
2015
- 2015-09-02 JP JP2015172715A patent/JP2017049817A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0332210B1 (en) | Backup control method and system in data processing system | |
JP4843604B2 (en) | Method and system for obtaining data storage device specific information from data storage device | |
KR100962883B1 (en) | Method, system, and program for migrating source data to target data | |
US9448943B2 (en) | Partial volume access in a physical stacked volume | |
JP2006134064A (en) | Storage control apparatus and method for detecting writing error in storage medium | |
JP2016149051A (en) | Storage control device, storage control program, and storage control method | |
US11868625B2 (en) | Alert tracking in storage | |
JP2009175824A (en) | Memory controller for mainframe, and virtualization method for mainframe volume | |
US10009574B2 (en) | Transferring multiple records including video data to/from host | |
US8856436B2 (en) | Locating host data records on a physical stacked volume | |
JP2012032962A (en) | Buffer management device, storage device having the same, and buffer management method | |
US8811133B2 (en) | Writing system, writing device, and writing method | |
US7657719B2 (en) | Controller for a copy operation between a host computer and hard disks, a control method thereof, and a recording medium storing a program for executing the control method | |
JP2017049817A (en) | Storage device and control program | |
JP2014071917A (en) | File recorder, file system management method, file recovery method and change drive | |
US8037268B2 (en) | Storage system and operation method thereof | |
JP2001160268A (en) | Substitution processing method for recording medium and device | |
JP2006085243A (en) | Transfer control device | |
JPH08161123A (en) | Disk array device | |
JP4285202B2 (en) | Compound computer system and compound I / O system | |
JPS6013360A (en) | Storage device | |
JP4075790B2 (en) | Compound computer system and compound I / O system | |
JPWO2012042661A1 (en) | Drive control device, drive control method, and storage device | |
JP2006277355A (en) | Path switching system and method for backup system | |
JPH04111030A (en) | Information recorder |