JP2016071766A - 情報処理装置、情報処理システムおよび書き込み制御プログラム - Google Patents
情報処理装置、情報処理システムおよび書き込み制御プログラム Download PDFInfo
- Publication number
- JP2016071766A JP2016071766A JP2014202768A JP2014202768A JP2016071766A JP 2016071766 A JP2016071766 A JP 2016071766A JP 2014202768 A JP2014202768 A JP 2014202768A JP 2014202768 A JP2014202768 A JP 2014202768A JP 2016071766 A JP2016071766 A JP 2016071766A
- Authority
- JP
- Japan
- Prior art keywords
- command
- data
- write
- tape
- magnetic tape
- 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
- 230000010365 information processing Effects 0.000 title claims description 39
- 238000000034 method Methods 0.000 claims description 184
- 238000007726 management method Methods 0.000 claims description 22
- 238000001514 detection method Methods 0.000 claims description 8
- 238000013500 data storage Methods 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 claims 3
- 230000004044 response Effects 0.000 description 35
- 238000010586 diagram Methods 0.000 description 12
- 230000000052 comparative effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 2
- 238000007599 discharging Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0682—Tape device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】磁気テープへの書き込み処理全体にかかる時間を短縮する。
【解決手段】書き込み制御部12は、複数のデータのそれぞれの書き込みを要求するデータ書き込み要求をテープドライブ2に送信する際に、バッファメモリ22の残量が所定のしきい値より大きい場合には、書き込み対象のデータをバッファメモリ22に格納させ、当該データを磁気テープ21に書き込まずに書き込み完了を通知させる第1の書き込みモードでデータ書き込み要求を送信する。一方、バッファメモリ22の残量がしきい値以下である場合には、バッファメモリ22に格納されたデータと書き込み対象のデータとを磁気テープ21に書き込ませる第2の書き込みモードでデータ書き込み要求を送信する。
【選択図】図1
【解決手段】書き込み制御部12は、複数のデータのそれぞれの書き込みを要求するデータ書き込み要求をテープドライブ2に送信する際に、バッファメモリ22の残量が所定のしきい値より大きい場合には、書き込み対象のデータをバッファメモリ22に格納させ、当該データを磁気テープ21に書き込まずに書き込み完了を通知させる第1の書き込みモードでデータ書き込み要求を送信する。一方、バッファメモリ22の残量がしきい値以下である場合には、バッファメモリ22に格納されたデータと書き込み対象のデータとを磁気テープ21に書き込ませる第2の書き込みモードでデータ書き込み要求を送信する。
【選択図】図1
Description
本発明は、情報処理装置、情報処理システムおよび書き込み制御プログラムに関する。
磁気テープは、低コストかつ大容量の可搬型記録媒体として広く利用されている。例えば、LTO Ultrium 6(LTO:Liner Tape-Open)規格では、1つのテープカートリッジに非圧縮時で2.5テラバイトのデータを記録可能である。
また、一般的に、記録媒体にデータを記録する際、そのデータは一時記憶手段に一時的に記憶される。これに関連する技術の例として、キャッシュメモリに記憶された情報が光ディスクに記録され終わるまで、光ディスクのイジェクトを禁止するようにした情報記録システムが提案されている。また、キャッシュメモリの対象領域への入出力が一定未満となったことを契機に、ライトアフター方式からライトスルー方式に切り替えてキャッシュメモリを経由してデータを転送するストレージシステムが提案されている。
ところで、テープドライブでは、磁気テープへのデータ書き込みを開始する際、磁気テープにおける書き込み開始位置に磁気ヘッドを位置合わせする“リポジショニング”が行われる。このリポジショニングにかかる時間は、磁気テープへの書き込み処理全体にかかる時間の中で比較的大きな割合を占める。
特に近年、テープドライブの小型化が進むのに伴い、磁気テープを走行させるモータの駆動力が低くなる傾向にある。これにより、リポジショニングにかかる時間が長くなり、その結果、磁気テープへの書き込み処理全体にかかる時間が長くなってしまうという問題がある。
1つの側面では、本発明は、磁気テープへの書き込み処理全体にかかる時間を短縮することが可能な情報処理装置、情報処理システムおよび書き込み制御プログラムを提供することを目的とする。
1つの案では、磁気テープに対する複数のデータの書き込みをテープドライブに要求する情報処理装置が提供される。この情報処理装置は、残量検出部と書き込み制御部とを有する。残量検出部は、テープドライブが備えるバッファメモリの残量を検出する。書き込み制御部は、複数のデータのそれぞれの書き込みを要求するデータ書き込み要求をテープドライブに送信する際に、残量が所定のしきい値より大きい場合には、書き込み対象のデータをバッファメモリに格納させ、当該データを磁気テープに書き込まずに書き込み完了を通知させる第1の書き込みモードでデータ書き込み要求を送信し、残量がしきい値以下である場合には、バッファメモリに格納されたデータと書き込み対象のデータとを磁気テープに書き込ませる第2の書き込みモードでデータ書き込み要求を送信する。
また、1つの案では、テープドライブと、上記情報処理装置と同様の処理を実行する情報処理装置とを有する情報処理システムが提供される。
さらに、1つの案では、上記情報処理装置と同様の処理をコンピュータに実行させる書き込み制御プログラムが提供される。
さらに、1つの案では、上記情報処理装置と同様の処理をコンピュータに実行させる書き込み制御プログラムが提供される。
1つの側面では、磁気テープへの書き込み処理全体にかかる時間を短縮できる。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。図1に示す情報処理システムは、情報処理装置1とテープドライブ2とを含む。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。図1に示す情報処理システムは、情報処理装置1とテープドライブ2とを含む。
テープドライブ2は、磁気テープ21の記録再生動作を行う。また、テープドライブ2は、磁気テープ21に書き込むデータを一時的に記憶するバッファメモリ22を備える。
情報処理装置1は、磁気テープ21に対するデータの書き込みをテープドライブ2に要求する。情報処理装置1は、残量検出部11と書き込み制御部12とを有する。なお、残量検出部11および書き込み制御部12の処理は、例えば、情報処理装置1が備えるプロセッサが所定のプログラムを実行することで実現される。
情報処理装置1は、磁気テープ21に対するデータの書き込みをテープドライブ2に要求する。情報処理装置1は、残量検出部11と書き込み制御部12とを有する。なお、残量検出部11および書き込み制御部12の処理は、例えば、情報処理装置1が備えるプロセッサが所定のプログラムを実行することで実現される。
残量検出部11は、テープドライブ2のバッファメモリ22の残量を検出する。
書き込み制御部12は、テープドライブ2に書き込み要求を送信することで、磁気テープ21へのデータの書き込みを制御する。書き込み制御部12は、磁気テープ21への複数のデータの書き込みを要求する際、データごとに書き込み要求をテープドライブ2に送信する。その際、残量検出部11によるバッファメモリ22の残量の検出結果に基づいて次のような処理を行う。
書き込み制御部12は、テープドライブ2に書き込み要求を送信することで、磁気テープ21へのデータの書き込みを制御する。書き込み制御部12は、磁気テープ21への複数のデータの書き込みを要求する際、データごとに書き込み要求をテープドライブ2に送信する。その際、残量検出部11によるバッファメモリ22の残量の検出結果に基づいて次のような処理を行う。
書き込み制御部12は、書き込み要求を送信する際に、バッファメモリ22の残量が所定のしきい値より大きい場合には、書き込み対象のデータをバッファメモリ22に格納させ、当該データを磁気テープ21に書き込まずに書き込み完了を通知させるバッファモード(第1の書き込みモード)で書き込み要求を送信する。一方、書き込み制御部12は、バッファメモリ22の残量が上記のしきい値以下である場合には、バッファメモリ22に格納されたデータと書き込み対象のデータとを磁気テープ21に書き込ませるダイレクトモード(第2の書き込みモード)で書き込み要求を送信する。
例えば、図1に示すように、データD1,D2,D3,D4,D5,D6,・・・を磁気テープ21に書き込むものとする。書き込み制御部12は、まず、データD1の書き込みを要求する際に、バッファメモリ22の残量をチェックする。残量がしきい値より大きかったとすると、書き込み制御部12は、データD1の書き込み要求をバッファモードで送信する。テープドライブ2は、受信したデータD1をバッファメモリ22に書き込むものの、磁気テープ21には書き込まずに書き込み制御部12に書き込み完了を通知する。
次に、書き込み制御部12は、データD2の書き込みを要求する際に、バッファメモリ22の残量をチェックする。残量がしきい値より大きかったとすると、書き込み制御部12は、データD2の書き込み要求をバッファモードで送信する。このようにして、書き込み制御部12は、バッファメモリ22の残量がしきい値より大きい間、書き込み要求をバッファモードで送信する。
そして、データD5の書き込みを要求する際に、バッファメモリ22の残量がしきい値以下になったとする。この状態では、バッファメモリ22にはデータD1〜D4が格納されている。書き込み制御部12は、データD5の書き込み要求をダイレクトモードで送信する。テープドライブ2は、リポジショニングを行った後、バッファメモリ22に格納されたデータD1〜D4と、情報処理装置1から送信されたデータD5とを、磁気テープ21に一度に書き込む。
以上の第1の実施の形態によれば、書き込み制御部12は、バッファメモリ22に対して書き込み対象のデータを格納できる最大限の期間において、データの書き込み要求をバッファモードで送信する。書き込み要求をバッファモードで送信した場合には、テープドライブ2でリポジショニングが実行されない。したがって、書き込み制御部12の処理により、リポジショニングが実行される回数を、バッファメモリ22の容量から決まる限度まで減らすことができる。その結果、データの書き込み処理全体にかかる時間を短縮することができる。
〔第2の実施の形態〕
図2は、第2の実施の形態に係る情報処理システムの構成例を示す図である。図2に示す情報処理システムは、サーバ装置100、テープドライブ200および端末装置300を含む。
図2は、第2の実施の形態に係る情報処理システムの構成例を示す図である。図2に示す情報処理システムは、サーバ装置100、テープドライブ200および端末装置300を含む。
サーバ装置100は、端末装置300を操作するユーザに対して所定のサービスを提供する。また、サーバ装置100は、内部の記憶領域に記憶されたデータをテープドライブ200内の磁気テープにバックアップする機能を備える。
テープドライブ200は、ロードされたテープカートリッジ内の磁気テープを用いてデータの読み書きを行う。テープドライブ200は、例えば、LTO Ultriumに準拠した磁気テープの読み書きを行うことができる。
また、テープドライブ200は、バッファメモリ201を備える。バッファメモリ201は、RAM(Random Access Memory)などの不揮発性記憶装置として実現される。テープドライブ200は、サーバ装置100から磁気テープへのデータの書き込みが要求されたとき、サーバ装置100から送信されたデータをバッファメモリ201に一時的に格納した後、そのデータをバッファメモリ201から磁気テープへ書き込む。
端末装置300は、サーバ装置100が提供するサービスの提供対象となるユーザによって操作されるコンピュータである。
ここで、サーバ装置100は、例えば、次のようなハードウェア構成のコンピュータとして実現することができる。
ここで、サーバ装置100は、例えば、次のようなハードウェア構成のコンピュータとして実現することができる。
サーバ装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
プロセッサ101には、バス109を介して、RAM(Random Access Memory)102と複数の周辺機器が接続されている。
RAM102は、サーバ装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
RAM102は、サーバ装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、読み取り装置106、ネットワークインタフェース107およびテープインタフェース108がある。
HDD103は、サーバ装置100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
グラフィック処理装置104には、表示装置104aが接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像を表示装置104aの画面に表示させる。表示装置としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
ネットワークインタフェース107は、図示しないネットワークを介して、端末装置300などの他の装置との間でデータの送受信を行う。テープインタフェース108は、テープドライブ200との間でデータの送受信を行う。
なお、端末装置300についても、図2のサーバ装置100と同様のハードウェア構成を有するコンピュータとして実現可能である。
図3は、サーバ装置の処理機能の例を示すブロック図である。サーバ装置100は、OS110、バックアップ処理部120および記憶部130を有する。
図3は、サーバ装置の処理機能の例を示すブロック図である。サーバ装置100は、OS110、バックアップ処理部120および記憶部130を有する。
OS110の処理は、OSプログラムがプロセッサ101に実行されることで実現される。OS110は、バックアップ処理部120に対して所定のデータを磁気テープへバックアップするよう要求する。バックアップ対象のデータとしては、例えば、サーバ装置100のHDD103に格納されたデータが適用される。
また、OS110は、バックアップ処理部120に対して、複数のファイルのバックアップを1回のバックアップコマンドの出力によって要求する場合と、1つのファイルのバックアップを1回のバックアップコマンドの出力によって要求する場合とがある。以下、前者の要求に応じて実行されるバックアップ処理を“複数ファイル指定によるバックアップ処理”と呼び、後者の要求に応じて実行されるバックアップ処理を“単独ファイル指定によるバックアップ処理”と呼ぶ場合がある。
また、OS110は、磁気テープからのデータの読み出しや、テープカートリッジの排出をバックアップ処理部120に要求することもできる。データの読み出しは、例えば、リストアやダンプなどのコマンドによって要求される。
バックアップ処理部120は、OS110からのバックアップ要求に応じて、テープドライブ200にロードされた磁気テープに対してデータを書き込むようテープドライブ200に要求し、バックアップ対象のデータをテープドライブ200へ送信する。また、バックアップ処理部120は、OS110からデータの読み出しが要求された場合、テープドライブ200に対してデータの読み出しを要求し、テープドライブ200から読み出されたデータをOS110に引き渡す。
このバックアップ処理部120の処理は、例えば、バックアップ処理を行うためのアプリケーションプログラムがプロセッサ101に実行されることで実現される。また、バックアップ処理部120は、コマンド処理部121とコマンド発行制御部122とを有する。
コマンド処理部121は、OS110から受信したコマンドを、テープドライブ200に送信するためのコマンドに変換する。また、コマンド処理部121は、複数ファイル指定によるバックアップ処理と単独ファイル指定によるバックアップ処理のどちらがOS110から要求されたかをコマンド発行制御部122に通知する機能を有する。
コマンド発行制御部122は、コマンド処理部121によって変換されたコマンドをテープドライブ200に発行する処理を制御する。例えば、コマンド発行制御部122は、変換されたコマンドに、そのコマンドに基づく処理を後述するバッファモードとダイレクトモードのどちらで実行させるかを示すモード情報を付加して送信する。
また、コマンド発行制御部122は、残量判定部123を有する。残量判定部123は、テープドライブ200に対する書き込み要求の発行回数と、書き込み対象のブロックのサイズとに基づいて、テープドライブ200のバッファメモリ201の残量の推定値を算出する。
記憶部130は、例えば、サーバ装置100内のRAM102の記憶領域によって実現される。記憶部130には、コマンド発行制御部122の処理の際に利用される情報として、バッファサイズ情報131、BID管理テーブル132、エラーメモ133およびEMフラグ134が格納される。
バッファサイズ情報131は、テープドライブ200のバッファメモリ201のサイズを示す。なお、バッファサイズ情報131は、サーバ装置100の不揮発性記憶装置(例えば、HDD103)にあらかじめ格納され、コマンド発行制御部122の処理の際にRAM102にロードされる。
BID管理テーブル132には、磁気テープの記憶領域における各ブロックのID(BID)と、後述するtm1コマンドの発行回数とが対応付けて登録される。BID管理テーブル132は、例えば、複数ファイル指定によるバックアップ処理を実行する場合に、磁気テープで正常に書き込みが行われたファイルを認識できるようにするために使用される。
エラーメモ133には、単独ファイル指定によるバックアップ処理を実行した場合に、磁気テープで書き込みエラーが発生したブロックIDが登録される。
EMフラグ134には、単独ファイル指定によるバックアップ処理の実行の際に、後述するtm2コマンドの発行のエミュレーションが行われたか否かを示すフラグ情報が登録される。
EMフラグ134には、単独ファイル指定によるバックアップ処理の実行の際に、後述するtm2コマンドの発行のエミュレーションが行われたか否かを示すフラグ情報が登録される。
<複数ファイル指定によるバックアップ処理>
次に、OS110から複数ファイル指定によるバックアップ処理が要求された場合の処理について説明する。まず、図4、図5を用いて、複数ファイル指定によるバックアップ処理の比較例とその問題点について説明する。そして、図6以降で本実施の形態でのバックアップ処理について説明する。また、以下の説明では、サーバ装置100からテープドライブ200へ発行される書き込みコマンドを“wrコマンド”と記載する場合がある。
次に、OS110から複数ファイル指定によるバックアップ処理が要求された場合の処理について説明する。まず、図4、図5を用いて、複数ファイル指定によるバックアップ処理の比較例とその問題点について説明する。そして、図6以降で本実施の形態でのバックアップ処理について説明する。また、以下の説明では、サーバ装置100からテープドライブ200へ発行される書き込みコマンドを“wrコマンド”と記載する場合がある。
図4は、複数ファイル指定によるバックアップ処理の比較例を示す図である。
テープドライブ200に対するデータの書き込み要求は、所定サイズのブロックを単位として行われる。すなわち、バックアップ処理部120は、テープドライブ200に対してブロックごとにwrコマンドを送信する。ブロックのサイズは、バックアップを要求するOS110から指定される。図4の例では、ブロックのサイズとして32キロバイトが指定されたものとする。
テープドライブ200に対するデータの書き込み要求は、所定サイズのブロックを単位として行われる。すなわち、バックアップ処理部120は、テープドライブ200に対してブロックごとにwrコマンドを送信する。ブロックのサイズは、バックアップを要求するOS110から指定される。図4の例では、ブロックのサイズとして32キロバイトが指定されたものとする。
また、図4において、“テープフォーマット”の欄には、上記のバックアップコマンドに応じて磁気テープに書き込まれるデータの構成例を示す。また、“発行されたコマンド”の欄には、対応する磁気テープ上のブロックへの書き込みのためにバックアップ処理部120からテープドライブ200に発行されたコマンド名を示す。“発行されたコマンド”の欄に示された“(B)”は、コマンドがバッファモードで発行されたことを示し、“(D)”は、コマンドがダイレクトモードで発行されたことを示す。
図4では、例として、ファイルaaa、ファイルbbb、ファイルccc、ファイルdddという4つのファイルのバックアップが、OS110から1つのバックアップコマンドによって要求されたものとする。ファイルaaa、ファイルbbb、ファイルccc、ファイルdddは、それぞれ32キロバイトのブロックに分割されて磁気テープに記録される。図4の例では、ファイルaaaは4つのブロックに分割され、ファイルbbbは2つのブロックに分割され、ファイルcccは3つのブロックに分割され、ファイルdddは5つのブロックに分割されたものとする。
また、1つのファイルの次のブロックには、テープマークTM1が記録される。テープマークTM1は、1つのファイルの記憶領域の終端であることを示すファイル終端識別子である。テープマークTM1は、バックアップ処理部120からのtm1コマンドに応じて磁気テープに記録される。さらに、磁気テープ上の最後に記録されたファイルについてのテープマークTM1の次のブロックには、テープマークTM2が記録される。テープマークTM2は、磁気テープ上に記録されたデータ全体の記憶領域の終端であることを示すデータ終端識別子である。磁気テープに記録されたデータを有効にする(すなわち、どのテープドライブでも読み出し可能にする)ためには、データの記憶領域の終端にテープマークTM2が記録されている必要がある。
ここで、バッファモードおよびダイレクトモードについて説明する。コマンドがバッファモードで発行された場合、テープドライブ200は、該当するブロックをバッファメモリ201に書き込むが、そのブロックを磁気テープには書き込まずにコマンド発行元へ完了応答を送信する。一方、コマンドがダイレクトモードで発行された場合、テープドライブ200は、該当するブロックを磁気テープに書き込んだ後、コマンド発行元へ完了応答を送信する。また、バッファメモリ201に未書き込みのブロックが存在する場合には、テープドライブ200は、バッファメモリ201内のブロックを磁気テープに書き込んだ後、受信コマンドに対応するブロックを磁気テープに続けて書き込み、コマンド発行元へ完了応答を送信する。
テープドライブ200は、バッファモードでコマンドが発行された場合、ダイレクトモードで発行された場合と比較してはるかに短時間で完了応答を送信することができる。このため、テープドライブ200に対するデータの書き込み処理では、すべてのブロックについてダイレクトモードでコマンドを発行するのではなく、ダイレクトモードでのコマンド発行をある程度間隔を空けて行い、その間ではバッファモードでコマンドを発行することが行われる。例えば、図4に示すように、ファイルを分割したブロックの書き込みをバッファモードで要求し、1つのファイルの書き込み領域の終端を示すテープマークTM1の書き込み時に、ダイレクトモードでコマンドを発行する方法がある。
図5は、バッファメモリおよび磁気テープに関する動作の例を示すタイミングチャートである。この図5を用いて、バッファモードおよびダイレクトモードでの処理時間について説明する。
例えば、バッファモードでwrコマンドが発行された場合、テープドライブ200は、受信したブロックをバッファメモリ201へ格納し、コマンド発行元へ完了応答を送信する。wrコマンドを受信してから完了応答を送信するまでの処理時間は、数ミリ秒程度である。
一方、図5に示すタイミングT11において、1つのファイルの書き込み要求が終了して、tm1コマンドがダイレクトモードで発行されたとする。この場合、テープドライブ200は、まず、磁気テープのリポジショニングを行う。リポジショニングとは、磁気ヘッドによる磁気テープへの書き込み開始位置に正確に合わせるための動作である。具体的には、リポジショニングには、データの書き込み開始位置より前の位置まで磁気テープを巻き戻す動作、その位置から磁気テープを正方向に走行させ、データ書き込み時の速度になるまで走行速度を加速させる動作などが含まれる。
テープドライブ200は、リポジショニングの後、バッファメモリからブロックを読み出して磁気テープに書き込み、さらに、テープマークTM1を磁気テープに書き込む。テープドライブ200は、これらの動作が完了した時点で、コマンド発行元へ完了応答を送信する(タイミングT12)。このように、ダイレクトモードでは、磁気テープに対するデータ書き込み時間だけでなくリポジショニングの時間もかかるので、バッファモードよりコマンド受信からの応答までの時間が非常に長くなる。なお、テープドライブ200は、磁気テープへの書き込みが終了した後、磁気テープの走行速度を減速させ、やがて磁気テープを停止させる。
ところで、近年、テープドライブの小型化が進み、それに伴ってテープドライブに搭載される磁気テープ走行用のモータも小型化されつつある。モータが小型化されると、モータの動力も小さくなる。このため、リポジショニング時の磁気テープの走行速度が低くなり、その結果、リポジショニングに要する時間が長くなるという問題があった。
例えば、CMT(Cartridge Magnetic Tape)のテープドライブでは、リポジショニングの時間は300ミリ秒程度であった。ところが、テープカートリッジやテープドライブがより小型化されたLTO Ultriumのテープドライブでは、リポジショニングに5秒程度かかってしまう場合があり、このことがバックアップ全体に要する時間を長くする大きな原因になってしまう。
そこで、第2の実施の形態では、バックアップ処理部120は、次のようにして複数ファイル指定によるバックアップ処理を行う。
(1−1)指定された各ファイルの書き込みを要求する間、wrコマンドだけでなくtm1コマンドもバッファモードで発行し、最後のtm2コマンドのみダイレクトモードで発行する。
(1−1)指定された各ファイルの書き込みを要求する間、wrコマンドだけでなくtm1コマンドもバッファモードで発行し、最後のtm2コマンドのみダイレクトモードで発行する。
(1−2)ただし、テープドライブ200のバッファメモリ201の残量が所定量以下になった場合には、ダイレクトモードでコマンドを発行する。
図6は、第2の実施の形態での複数ファイル指定によるバックアップ処理例を示す図である。図6では例として、図4と同様に、ファイルaaa、ファイルbbb、ファイルccc、ファイルdddという4つのファイルのバックアップが、OS110からバックアップ処理部120に対して1つのバックアップコマンドによって要求されたものとする。
図6は、第2の実施の形態での複数ファイル指定によるバックアップ処理例を示す図である。図6では例として、図4と同様に、ファイルaaa、ファイルbbb、ファイルccc、ファイルdddという4つのファイルのバックアップが、OS110からバックアップ処理部120に対して1つのバックアップコマンドによって要求されたものとする。
バックアップコマンドを受信したコマンド処理部121は、ファイルaaaを4つのブロックに分割し、ファイルbbbを2つのブロックに分割し、ファイルcccを3つのブロックに分割し、ファイルdddを5つのブロックに分割する。そして、ファイルaaaの4つのブロックにそれぞれ対応するwrコマンド、tm1コマンド、ファイルbbbの2つのブロックにそれぞれ対応するwrコマンド、tm1コマンド、ファイルcccの3つのブロックにそれぞれ対応するwrコマンド、tm1コマンド、ファイルdddの5つのブロックにそれぞれ対応するwrコマンド、tm1コマンド、tm2コマンドの発行を、コマンド発行制御部122に対して順に依頼する。これとともに、コマンド処理部121は、複数ファイル指定によるバックアップ処理が要求されたことをコマンド発行制御部122に通知する。
残量判定部123は、バッファサイズ情報131に登録された、テープドライブ200のバッファメモリ201のサイズを読み込む。コマンド発行制御部122は、発行を依頼されたコマンドを順にバッファモードでテープドライブ200に発行する。残量判定部123は、1つのブロックの書き込みが要求される際に、書き込みを要求済みのブロックの総サイズとバッファメモリ201のサイズとに基づいて、バッファメモリ201の残量を算出する。
ここで、すべてのファイルに対応するブロックの書き込みを要求する間に、バッファメモリ201の残量が所定のしきい値以下にならなかったとする。この場合、図6(A)に示すように、コマンド発行制御部122は、最後のtm2コマンドを除くすべてのコマンドをバッファモードでテープドライブ200に発行する。そして、コマンド発行制御部122は、tm2コマンドをダイレクトモードでテープドライブ200に発行する。tm2コマンドの発行に応じて、バッファメモリ201に蓄積されていたデータが磁気テープに書き込まれる。この図6(A)の例では、磁気テープのリポジショニングが1回しか発生しないため、図4の例と比較してバックアップ処理全体に要する時間が大幅に短縮される。
一方、バックアップ処理の途中でバッファメモリ201の残量が所定のしきい値以下になった場合は、次のような処理が行われる。例えば、図6(B)に示すように、データdddの1つ目のブロックの書き込みを要求した後のタイミングT21において、バッファメモリ201の残量が所定のしきい値以下になったとする。
このケースでは、コマンド発行制御部122は、タイミングT21より前のすべてのコマンドをバッファモードでテープドライブ200に発行する。そして、コマンド発行制御部122は、タイミングT21でバッファメモリ201の残量が所定のしきい値以下になったと判定すると、次のブロックの書き込みを要求するためのwrコマンドをダイレクトモードでテープドライブ200に発行する。これにより、バッファメモリ201に蓄積されていたデータが磁気テープに書き込まれ、さらに、コマンド発行制御部122から送信された、データdddに対応する2つ目のブロックも磁気テープに書き込まれる。
また、コマンド発行制御部122は、それ以後のブロックの書き込みを要求するコマンドをバッファモードでテープドライブ200に発行する。そして、コマンド発行制御部122は、最後のtm2コマンドをダイレクトモードでテープドライブ200に発行する。
以上の図6(B)の例のように、コマンド発行制御部122は、バッファメモリ201の残量がしきい値以下になるまでの間、コマンドをバッファモードで発行し、残量がしきい値以下になった時点で、次のコマンドをダイレクトモードで発行し、磁気テープへの書き込みを実行させる。これにより、リポジショニングの発生回数を極力抑えながらも、書き込みを要求したブロックがバッファメモリ201からあふれて失われる事態を防止することができる。したがって、バックアップ時間の短縮とデータ書き込みの信頼性とを高い次元で両立させることができる。
次に、上記の図6のようにバックアップ処理を行った場合の新たな問題点について説明する。
テープドライブ200は、磁気テープに対するデータの書き込みに失敗する場合がある。ここで、図4の例では、ファイルごとに磁気テープへの書き込み処理が発生する。このため、バックアップ処理部120は、磁気テープへの書き込みに失敗したことがテープドライブ200から通知された場合に、書き込みを要求したブロックのうち、どのブロックまでの書き込みに成功し、どのブロックから書き込みが行われていないかを、ファイル単位で特定することができる。
テープドライブ200は、磁気テープに対するデータの書き込みに失敗する場合がある。ここで、図4の例では、ファイルごとに磁気テープへの書き込み処理が発生する。このため、バックアップ処理部120は、磁気テープへの書き込みに失敗したことがテープドライブ200から通知された場合に、書き込みを要求したブロックのうち、どのブロックまでの書き込みに成功し、どのブロックから書き込みが行われていないかを、ファイル単位で特定することができる。
ところが、図6のような方法でバックアップ処理を行った場合、バックアップ処理部120は、書き込みに成功したブロックおよび失敗したブロックを、ファイル単位で特定することができない。例えば、図6(B)のタイミングT21においてwrコマンドがダイレクトモードで発行されたとき、テープドライブ200において書き込みエラーが発生したとする。この場合、コマンド発行制御部122は、それより前にテープドライブ200へ送信済みのファイルaaa、ファイルbbb、ファイルcccのうち、どのファイルまで磁気テープへの書き込みに成功しているかを判別できない。このため、ファイルの書き込み漏れを防ぐためには、コマンド発行制御部122は、例えば、送信済みの3つのファイルのすべてについて書き込みに失敗したと見なし、これらの3つのファイルの書き込みをテープドライブ200に再度要求しなければならない。
このような問題点に対して、コマンド発行制御部122は、さらに次のような処理を行うことで、書き込みに成功したブロックをファイル単位で特定できるようにする。
(1−3)磁気テープにおける書き込み先のブロックIDと、それらのうちのどのブロックIDのブロックにテープマークTM1が書き込まれたかを、BID管理テーブル132を用いて管理する。
(1−3)磁気テープにおける書き込み先のブロックIDと、それらのうちのどのブロックIDのブロックにテープマークTM1が書き込まれたかを、BID管理テーブル132を用いて管理する。
(1−4)テープドライブ200から書き込みエラーが通知されたとき、書き込みエラーが発生したブロックのブロックIDをテープドライブ200から取得し、取得したブロックIDとBID管理テーブル132の登録情報とを用いて、書き込みに成功したファイルを特定する。
図7は、BID管理テーブルのデータ構成例を示す図である。BID管理テーブル132には、カウント値BID_CNTとカウント値TM1_CMTとが対応付けて登録される。カウント値BID_CNTおよびカウント値TM1_CMTは、いずれもコマンド発行制御部122によってカウントされて、BID管理テーブル132に登録される。
カウント値BID_CNTは、テープドライブ200にwrコマンドまたはtm1コマンドを発行するたびにカウントアップされる値である。したがって、カウント値BID_CNTの項目には、先頭から1ずつインクリメントされた値が登録される。
コマンド発行制御部122は、複数ファイル指定によるバックアップ処理の開始時に、テープドライブ200から磁気ヘッドが現在位置しているブロックのブロックIDを取得する。ここで取得されるブロックIDは、磁気ヘッドがあるブロックの末尾に位置している場合に、そのブロックを示すブロックIDである。コマンド発行制御部122は、取得したブロックIDをカウント値BID_CNTの初期値としてカウントを開始する。これにより、カウント値BID_CNTは、コマンド発行制御部122がwrコマンドまたはtm1コマンドを発行したときの磁気テープにおける書き込み先のブロックIDを示す。
カウント値TM1_CNTは、複数ファイル指定によるバックアップ処理が開始されてから、テープドライブ200にtm1コマンドを発行するたびにカウントアップされる値である。これにより、カウント値TM1_CNTは、1つのファイルの全ブロックの書き込みがテープドライブ200に要求された直後のコマンド発行時にカウントアップされることから、実質的に、書き込み要求済みのファイル数を示す値となる。
なお、以下の説明では、カウント値BID_CNTの値が“X”であることをBID_CNT“X”と表記する場合がある。同様に、カウント値TM1_CNTの値が“Y”であることをTM1_CNT“Y”と表記する場合がある。
図8は、BID管理テーブルを用いた書き込み成功ファイルの判定方法の例を示す図である。図8では、例として、図6(A)のようにコマンドが発行された場合を想定する。また、図8では、例として、磁気テープの先頭から書き込みが開始されるものとする。この場合、コマンド発行制御部122がバックアップ処理の開始時にテープドライブ200から取得したブロックIDは“0”となり、カウント値BID_CNTの初期値も“0”となる。なお、磁気テープにおいては、先頭ブロックの次のブロックからデータが書き込まれる。
コマンド発行制御部122は、テープドライブ200にコマンドを発行するごとに、カウント値BID_CNTをカウントアップし、BID管理テーブル132に登録する。また、コマンド発行制御部122は、tm1コマンドの発行時にカウント値TM1_CNTをカウントアップし、BID管理テーブル132に登録する。これにより、BID管理テーブル132には、カウント値BID_CNTとカウント値TM1_CNTとが対応付けて登録される。
すべてのファイルに対応するブロックの書き込みを要求する間に、バッファメモリ201の残量が所定のしきい値以下にならなかったとすると、コマンド発行制御部122は、最後のtm2コマンドを除くすべてのコマンドをバッファモードでテープドライブ200に発行する。そして、コマンド発行制御部122は、tm2コマンドをダイレクトモードでテープドライブ200に発行する。tm2コマンドの発行に応じて、テープドライブ200では、バッファメモリ201に蓄積されていたデータが磁気テープに書き込まれる。
ここで、例えば、テープドライブ200がブロックID“10”のブロックにおける書き込み処理に失敗したとする。この場合、テープドライブ200からコマンド発行制御部122に対して書き込みエラーが通知される。コマンド発行制御部122は、現在の書き込み対象ブロックのブロックIDの通知を要求するためのRDBIDコマンドを、テープドライブ200に発行する。これにより、コマンド発行制御部122は、書き込みエラーが発生したブロックのブロックID“10”をテープドライブ200から取得する。
コマンド発行制御部122は、BID管理テーブル132を参照し、BID_CNT“10”に対応付けられたカウント値TM1_CNTを読み出す。図8の例では、TM1_CNT“2”が読み出される。この場合、コマンド発行制御部122は、先頭から2番目のファイルbbbまでが磁気テープに正常に書き込まれ、3番目以降のファイルについては磁気テープへの書き込みが完了していないと判断することができる。したがって、コマンド発行制御部122は、ファイルaaa、ファイルbbbの書き込みが正常に完了し、ファイルccc、ファイルdddの書き込みに失敗したことを、コマンド処理部121を介してOS110に報告する。
以上の処理により、リポジショニングの発生回数が抑制されてバックアップの処理時間を短縮可能でありながらも、コマンド発行制御部122は、磁気テープへの書き込みに成功したブロックをファイル単位で特定することができる。これにより、実際には書き込みに成功しているファイルを磁気テープに再度書き込むという事態が回避され、磁気テープへの書き込みエラーが発生した場合でも、バックアップ処理全体にかかる時間を短縮することができる。
次に、複数ファイル指定によるバックアップ処理手順について、フローチャートを用いて説明する。
図9は、コマンド発行依頼処理手順の例を示すフローチャートである。図9の処理は、コマンド処理部121によって実行される。
図9は、コマンド発行依頼処理手順の例を示すフローチャートである。図9の処理は、コマンド処理部121によって実行される。
[ステップS11]コマンド処理部121は、OS110から、バックアップ対象として複数のファイルが指定されたバックアップ要求コマンドを受信する。なお、受信したバックアップ要求コマンドには、ブロックサイズが指定されている。コマンド処理部121は、複数ファイル指定によるバックアップ処理が要求されたことをコマンド発行制御部122に通知する。
[ステップS12]コマンド処理部121は、バックアップが要求された複数のファイルの中から、処理対象のファイルを1つ選択する。
[ステップS13]コマンド処理部121は、選択したファイルをバックアップ要求コマンドにより指定されたブロックサイズで分割して得られる1つのブロックについて、wrコマンドの発行をコマンド発行制御部122に依頼する。コマンド発行制御部122からwrコマンドに対応する処理の完了応答が通知されると、次のステップS14の処理が実行される。
[ステップS13]コマンド処理部121は、選択したファイルをバックアップ要求コマンドにより指定されたブロックサイズで分割して得られる1つのブロックについて、wrコマンドの発行をコマンド発行制御部122に依頼する。コマンド発行制御部122からwrコマンドに対応する処理の完了応答が通知されると、次のステップS14の処理が実行される。
[ステップS14]コマンド処理部121は、ステップS12で選択したファイルから得られる全ブロックについて、wrコマンドの発行を依頼済みかを判定する。wrコマンドの発行を依頼済みでないブロックがある場合、ステップS13の処理が実行される。一方、全ブロックについてwrコマンドの発行を依頼済みである場合、ステップS15の処理が実行される。
[ステップS15]コマンド処理部121は、tm1コマンドの発行をコマンド発行制御部122に依頼する。コマンド発行制御部122からtm1コマンドに対応する処理の完了応答が通知されると、次のステップS16の処理が実行される。
[ステップS16]コマンド処理部121は、バックアップが要求された全ファイルを選択済みかを判定する。未選択のファイルがある場合、ステップS12の処理が実行される。一方、全ファイルを選択済みである場合、ステップS17の処理が実行される。
[ステップS17]コマンド処理部121は、tm2コマンドの発行をコマンド発行制御部122に依頼する。コマンド発行制御部122からtm2コマンドに対応する処理の完了応答が通知されると、次のステップS18の処理が実行される。
[ステップS18]コマンド処理部121は、OS110に対してバックアップ処理が完了したことを報告する。
図10および図11は、コマンド発行制御処理手順の例を示すフローチャートである。図10および図11の処理は、コマンド発行制御部122によって実行される。
図10および図11は、コマンド発行制御処理手順の例を示すフローチャートである。図10および図11の処理は、コマンド発行制御部122によって実行される。
[ステップS21]図9のステップS11で、コマンド処理部121が複数ファイル指定によるバックアップ処理が要求されたことをコマンド発行制御部122に通知すると、このステップS21の処理が開始される。コマンド発行制御部122は、テープドライブ200に対してRDBIDコマンドを発行し、磁気ヘッドの現在位置を示すブロックIDをテープドライブ200から取得する。ここでは、ブロックIDとして“N”が通知されたものとする。
[ステップS22]コマンド発行制御部122は、N=0であるか、すなわち、書き込み開始位置が磁気テープの先頭であるかを判定する。N=0である場合、ステップS23の処理が実行される。N=0でない場合、ステップS24の処理が実行される。
[ステップS23]コマンド発行制御部122は、カウント値BID_CNTに初期値として“0”を設定する。
[ステップS24]コマンド発行制御部122は、磁気ヘッドをEOD(End Of Data)に位置合わせするように指示するコマンドをテープドライブ200に発行する。EODとは、磁気テープにおける書き込み済みブロックのうち、最終ブロックにおける末尾の位置を示す。
[ステップS24]コマンド発行制御部122は、磁気ヘッドをEOD(End Of Data)に位置合わせするように指示するコマンドをテープドライブ200に発行する。EODとは、磁気テープにおける書き込み済みブロックのうち、最終ブロックにおける末尾の位置を示す。
ステップS21で取得されたブロックIDが“0”でない場合、磁気テープには書き込み済みのデータがあり、終端位置にテープマークTM2が記録されている。このため、上記コマンドの発行により、磁気ヘッドはタイムマークTM2が記録されたブロックの末尾に位置合わせされる。
上記コマンドに対する完了応答を受信すると、コマンド発行制御部122は、さらに、磁気ヘッドを現在より1ブロック分だけ前のブロックに位置合わせするように指示するBSPF(Backspace File)コマンドをテープドライブ200に発行する。これにより、磁気ヘッドはテープマークTM2の直前のテープマークTM1のブロックの末尾に位置合わせされ、テープマークTM1の次のブロックから書き込みを開始できるようになる。
[ステップS25]コマンド発行制御部122は、テープドライブ200に対してRDBIDコマンドを発行し、磁気テープにおける書き込み開始位置を示すブロックIDをテープドライブ200から取得する。ここでは、ブロックIDとして“M”が通知されたものとする。コマンド発行制御部122は、カウント値BID_CNTに初期値として“M”を設定する。
[ステップS26]コマンド発行制御部122は、カウント値TM1_CNTに初期値として“0”を設定する。
[ステップS27]残量判定部123は、バッファサイズ情報131からテープドライブ200のバッファメモリ201のサイズを読み出す。残量判定部123は、バッファメモリ201の残量を示す変数A_BUFF(以下、「バッファ残量A_BUFF」と記載する)に、初期値として読み出したサイズの値を設定する。
[ステップS27]残量判定部123は、バッファサイズ情報131からテープドライブ200のバッファメモリ201のサイズを読み出す。残量判定部123は、バッファメモリ201の残量を示す変数A_BUFF(以下、「バッファ残量A_BUFF」と記載する)に、初期値として読み出したサイズの値を設定する。
なお、バッファサイズ情報131には、テープドライブの機種ごとにバッファメモリのサイズが登録されていてもよい。この場合、ステップS26では、残量判定部123は、接続されているテープドライブの機種を判別し、判別された機種に対応するバッファメモリのサイズをバッファサイズ情報131から読み出す。
[ステップS28]コマンド発行制御部122は、コマンド処理部121からコマンドの発行依頼を受ける。コマンド発行制御部122は、発行が依頼されたコマンドがwrコマンドかを判定する。発行が依頼されたコマンドがwrコマンドである場合、ステップS29の処理が実行され、wrコマンドでない場合、図11のステップS41の処理が実行される。
[ステップS29]コマンド発行制御部122は、カウント値BID_CNTをカウントアップし、カウントアップ後のカウント値BID_CNTをBID管理テーブル132に登録する。また、コマンド発行制御部122は、現在のカウント値TM1_CNTを、カウントアップ後のカウント値BID_CNTに対応付けてBID管理テーブル132に登録する。
[ステップS30]コマンド発行制御部122は、バッファ残量A_BUFFが所定のしきい値以下かを判定する。なお、しきい値は、“0”以上の値として設定される。バッファ残量A_BUFFがしきい値以下である場合、ステップS33の処理が実行され、しきい値より大きい場合、ステップS31の処理が実行される。
[ステップS31]コマンド発行制御部122は、発行が依頼されたwrコマンドをバッファモードでテープドライブ200に発行する。
[ステップS32]残量判定部123は、現在のバッファ残量A_BUFFから1ブロック分のデータサイズを減算することで、バッファ残量A_BUFFを更新する。
[ステップS32]残量判定部123は、現在のバッファ残量A_BUFFから1ブロック分のデータサイズを減算することで、バッファ残量A_BUFFを更新する。
[ステップS33]コマンド発行制御部122は、発行が依頼されたwrコマンドをダイレクトモードでテープドライブ200に発行する。
[ステップS34]コマンド発行制御部122は、テープドライブ200からの応答に基づいて、磁気テープへの書き込みエラーが発生したかを判定する。書き込みエラーが発生した場合、ステップS35の処理が実行される。書き込みエラーが発生せず、ステップS33で発行したコマンドに応じた処理が正常に終了した場合、ステップS27の処理が実行される。
[ステップS34]コマンド発行制御部122は、テープドライブ200からの応答に基づいて、磁気テープへの書き込みエラーが発生したかを判定する。書き込みエラーが発生した場合、ステップS35の処理が実行される。書き込みエラーが発生せず、ステップS33で発行したコマンドに応じた処理が正常に終了した場合、ステップS27の処理が実行される。
[ステップS35]コマンド発行制御部122は、テープドライブ200に対してRDBIDコマンドを発行し、書き込みエラーが発生したブロックのブロックIDをテープドライブ200から取得する。ここで、取得したブロックIDを“L”とする。
[ステップS36]コマンド発行制御部122は、BID管理テーブル132を参照し、BID_CNT“L”に対応付けられたカウント値TM1_CNTを読み出す。ここで、読み出したカウント値TM1_CNTを“P”とする。
コマンド発行制御部122は、OS110からバックアップが要求された複数のファイルのうち、1番目からP番目までのファイルの書き込みに成功し、(P+1)番目以降のファイルの書き込みに失敗したことを、コマンド処理部121に通知する。コマンド処理部121は、コマンド発行制御部122からの通知に基づいて、例えば、書き込みに成功したファイルのファイル名と書き込みに失敗したファイルのファイル名をOS110に報告する。
[ステップS41]コマンド発行制御部122は、ステップS28で発行が依頼されたコマンドがtm1コマンドかを判定する。発行が依頼されたコマンドがtm1コマンドである場合、ステップS42の処理が実行され、それ以外のコマンドである場合、ステップS47の処理が実行される。
[ステップS42]コマンド発行制御部122は、カウント値BID_CNTをカウントアップし、カウントアップ後のカウント値BID_CNTをBID管理テーブル132に登録する。また、コマンド発行制御部122は、カウント値TM1_CNTもカウントアップし、カウントアップ後のカウント値TM1_CNTを、カウントアップ後のカウント値BID_CNTに対応付けてBID管理テーブル132に登録する。
[ステップS43]コマンド発行制御部122は、バッファ残量A_BUFFが所定のしきい値以下かを判定する。バッファ残量A_BUFFがしきい値以下である場合、ステップS45の処理が実行され、しきい値より大きい場合、ステップS44の処理が実行される。
[ステップS44]コマンド発行制御部122は、tm1コマンドをバッファモードでテープドライブ200に発行する。この後、図10のステップS28の処理が実行される。
なお、tm1コマンドをバッファモードで発行した場合、このコマンド発行によりバッファメモリ201に格納されるデータのサイズは、ファイルを分割して得られたブロックのサイズより十分に小さいと考えられる。このため、図10の例では、tm1コマンドをバッファモードで発行した場合に、バッファ残量A_BUFFを減算していない。
[ステップS45]コマンド発行制御部122は、tm1コマンドをダイレクトモードでテープドライブ200に発行する。
[ステップS46]コマンド発行制御部122は、テープドライブ200からの応答に基づいて、磁気テープへの書き込みエラーが発生したかを判定する。書き込みエラーが発生した場合、図10のステップS35の処理が実行される。書き込みエラーが発生せず、ステップS46で発行したコマンドに応じた処理が正常に終了した場合、図10のステップS27の処理が実行される。
[ステップS46]コマンド発行制御部122は、テープドライブ200からの応答に基づいて、磁気テープへの書き込みエラーが発生したかを判定する。書き込みエラーが発生した場合、図10のステップS35の処理が実行される。書き込みエラーが発生せず、ステップS46で発行したコマンドに応じた処理が正常に終了した場合、図10のステップS27の処理が実行される。
[ステップS47]コマンド発行制御部122は、ステップS28で発行が依頼されたコマンドがtm2コマンドかを判定する。発行が依頼されたコマンドがtm2コマンドである場合、ステップS49の処理が実行され、それ以外のコマンドである場合、ステップS48の処理が実行される。
[ステップS48]コマンド発行制御部122は、発行が依頼されたコマンドをテープドライブ200に発行し、そのコマンドに応じた処理を実行させる。処理が完了すると、その旨がコマンド処理部121を介してOS110に通知され、バックアップ処理部120の処理が終了する。
[ステップS49]コマンド発行制御部122は、tm2コマンドをダイレクトモードでテープドライブ200に発行する。
[ステップS50]コマンド発行制御部122は、テープドライブ200からの応答に基づいて、磁気テープへの書き込みエラーが発生したかを判定する。書き込みエラーが発生した場合、S51の処理が実行される。書き込みエラーが発生せず、ステップS50で発行したコマンドに応じた処理が正常に終了した場合、ステップS52の処理が実行される。
[ステップS50]コマンド発行制御部122は、テープドライブ200からの応答に基づいて、磁気テープへの書き込みエラーが発生したかを判定する。書き込みエラーが発生した場合、S51の処理が実行される。書き込みエラーが発生せず、ステップS50で発行したコマンドに応じた処理が正常に終了した場合、ステップS52の処理が実行される。
[ステップS51]コマンド発行制御部122は、テープマークTM2の書き込みエラーが発生したことをコマンド処理部121に通知する。コマンド処理部121は、例えば、磁気テープの書き込み完了処理で異常が発生したことを、OS110に報告する。
[ステップS52]コマンド発行制御部122は、書き込みが完了したことをコマンド処理部121に通知する。コマンド処理部121は、要求されたすべてのファイルのバックアップ処理が正常に完了したことをOS110に報告する。
なお、上記処理では、ステップS25においてカウント値BID_CNTの初期値を“0”以外に設定可能になっている。しかし、例えば、必ず磁気テープの先頭から書き込みを開始するという運用がなされる場合には、カウント値BID_CNTの初期値を“0”に固定し、ステップS21〜S25の処理を省略してもよい。換言すると、図10のようにカウント値BID_CNTの初期値を“0”以外に設定可能にすることで、データを書き込み済みの磁気テープに対して、バックアップが要求された複数のファイルを追記することが可能になる。
<単独ファイル指定によるバックアップ処理>
次に、OS110から単独ファイル指定によるバックアップ処理が要求された場合の処理について説明する。まず、図12、図13を用いて、単独ファイル指定によるバックアップ処理の比較例とその問題点について説明する。そして、図14以降で本実施の形態でのバックアップ処理について説明する。
次に、OS110から単独ファイル指定によるバックアップ処理が要求された場合の処理について説明する。まず、図12、図13を用いて、単独ファイル指定によるバックアップ処理の比較例とその問題点について説明する。そして、図14以降で本実施の形態でのバックアップ処理について説明する。
図12は、単独ファイル指定によるバックアップ処理の比較例を示す図である。図12では、ファイルaaaのバックアップ処理、ファイルbbbのバックアップ処理、ファイルcccのバックアップ処理が、それぞれ個別のバックアップ要求コマンドによってOS110から要求されたものとする。また、ブロックサイズとして、ファイルaaaについては32キロバイトが、ファイルbbbについては20キロバイト、ファイルcccについては12キロバイトがそれぞれ指定されたものとする。
バックアップ処理部120は、ファイルaaaのバックアップ処理が要求されると、ファイルaaaを32キロバイトごとに分割して得られた4つのブロックの書き込みを、各ブロックに対応するwrコマンドによってテープドライブ200に要求する。これらのwrコマンドはバッファモードで発行される。また、バックアップ処理部120は、4つのブロックの書き込みが完了すると、テープマークTM1,TM2の書き込みをtm1コマンド、tm2コマンドによってテープドライブ200に要求する。tm1コマンドおよびtm2コマンドはダイレクトモードで発行される。ここで、テープマークTM2の書き込みを要求する理由は、ファイルの書き込みが終了した時点で、このファイルが記録された磁気テープを、他のテープドライブでも読み書き可能な状態にしておく必要があるからである。
次に、バックアップ処理部120は、ファイルbbbのバックアップ処理が要求されると、ファイルbbbを20キロバイトごとに分割して得られた4つのブロックの書き込みを、各ブロックに対応するwrコマンドによってテープドライブ200に要求する。これらのwrコマンドはバッファモードで発行される。また、バックアップ処理部120は、4つのブロックの書き込みが完了すると、テープマークTM1,TM2の書き込みをtm1コマンド、tm2コマンドによってテープドライブ200に要求する。tm1コマンドおよびtm2コマンドはダイレクトモードで発行される。
このようなファイルbbbのバックアップ処理では、ファイルbbbから得られた先頭ブロックの書き込み位置が、テープマークTM1の次のブロックとされ、この先頭ブロックによってテープマークTM2が上書きされる。これにより、ファイルbbbの書き込み完了後の磁気テープにおいては、ファイルaaaに対応するブロックの次に、テープマークTM1が記録され、その後にファイルbbbに対応するブロックが記録される。これにより、ファイルとファイルとの間にテープマークTM2が記録されて異常な書き込み状態になることが防止される。
その後、バックアップ処理部120は、ファイルcccのバックアップ処理が要求されると、ファイルcccを12キロバイトごとに分割して得られた4つのブロックの書き込みを、各ブロックに対応するwrコマンドによってテープドライブ200に要求する。これらのwrコマンドはバッファモードで発行される。また、バックアップ処理部120は、4つのブロックの書き込みが完了すると、テープマークTM1,TM2の書き込みをtm1コマンド、tm2コマンドによってテープドライブ200に要求する。tm1コマンドおよびtm2コマンドはダイレクトモードで発行される。
ファイルcccのバックアップ処理でも、ファイルbbbの場合と同様に、ファイルcccから得られた先頭ブロックの書き込み位置がテープマークTM1の次のブロックとされ、この先頭ブロックによってテープマークTM2が上書きされる。
図13は、1つのファイルに続いて次のファイルが磁気テープに書き込まれる場合の処理例について示す図である。図13では例として、図12の処理のうち、ファイルaaaの次にファイルbbbが書き込まれる場合を示す。なお、図13に示す太線矢印は、磁気ヘッドが位置合わせされる位置が1ブロック分移動する動作を示し、太線矢印の方向は磁気テープの走行方向(すなわち、順方向への移動か、巻き戻し方向への移動か)を示す。
単独ファイル指定によりバックアップ処理が行われる場合、上記のように、次のファイルの先頭ブロックの書き込み位置は、前のファイルに対応するテープマークTM1の次のブロックとされる。このような位置合わせを行うために、バックアップ処理部120からテープドライブ200に対して「EODチェック」と呼ばれる動作が要求される。EODチェックの要求は、図10のステップS24にも示したように、EODへの位置合わせを指示するためのコマンドと、BSPSコマンドとによって行われる。
EODへの位置合わせが指示されると、テープドライブ200は、磁気テープを1ブロック分ずつ巻き戻しながらブロックの記録内容を読み出し、ファイルの最後尾ブロックの位置を検出する。図13の例では、テープドライブ200は、テープマークTM2の読み出し、テープマークTM1の読み出し、ファイルaaaの最後尾ブロックの読み出しを順に行う。これらの1回1回の読み出しのために、その都度リポジショニングが行われることになる。
次に、テープドライブ200は、テープマークTM2の次のブロック位置を検出するために、磁気テープを順方向に走行させながら各ブロックの内容を読み出す。図13の例では、テープドライブ200は、ファイルaaaの最後尾ブロックの読み出し、テープマークTM1の読み出し、テープマークTM2の読み出し、その次のブロックの読み出しを行う。これらの1回1回の読み出しのために、その都度リポジショニングが行われることになる。テープドライブ200は、テープマークTM2の次に何も記録されていないことを確認して、磁気ヘッドをテープマークTM2のブロックの末尾、すなわちEODに位置合わせする。
次に、テープドライブ200は、バックアップ処理部120からのBSPFコマンドに応じて、磁気ヘッドを1ブロック分だけ前のテープマークTM1のブロックの末尾に位置合わせする。この位置合わせの際にもリポジショニングが行われる。
以上の例のように、ファイルごとにバックアップ処理が要求される場合には、1つのファイルに続いて次のファイルを書き込む際に多数回のリポジショニングが発生する。前述のように、近年、1回のリポジショニングにかかる時間が長くなる傾向にあり、例えば、CMTのテープドライブでは300ミリ秒程度だったのに対し、LTO Ultriumのテープドライブでは5秒程度かかってしまう場合がある。このため、多数回のリポジショニングの発生により、バックアップ処理全体の時間が大幅に長くなってしまうという問題がある。
なお、上記の図13の例では、位置合わせのために多数回のリポジショニングが行われたが、これは位置合わせの精度を高めるための処理の一例である。磁気ヘッドの位置をテープマークTM1のブロックの末尾に位置合わせするためには、テープマークTM2を読み取るためのリポジショニングと、読み取ったテープマークTM2の前に位置合わせするためのリポジショニングという、最低2回のリポジショニングが必要となる。このような最低2回のリポジショニングの発生により、バックアップ処理全体の時間が長くなってしまう。
このような問題に対し、コマンド発行制御部122は、次のような処理を行うことで、単独ファイル指定によるバックアップ処理が連続して要求された場合のリポジショニングの発生回数を抑制する。
(2−1)1つのファイルの書き込み後のtm2コマンドの発行を非同期のタイミングで行う。
(2−2)tmコマンド発行の契機として、リストアやダンプなどの磁気テープからのデータ読み出しを伴う処理が要求された場合、磁気テープの排出が要求された場合、バックアップ系コマンドの発行から一定時間処理が要求されずにタイムアウトが発生した場合とする。
(2−2)tmコマンド発行の契機として、リストアやダンプなどの磁気テープからのデータ読み出しを伴う処理が要求された場合、磁気テープの排出が要求された場合、バックアップ系コマンドの発行から一定時間処理が要求されずにタイムアウトが発生した場合とする。
(2−3)コマンド発行による書き込み先ブロックのブロックIDをカウント値BID_CNTを用いて管理し、新たなファイル書き込み時にテープドライブ200から取得したブロックIDと照合する。
(2−1)および(2−2)の処理により、単独ファイル指定によるバックアップ処理が、タイムアウトが発生しない時間間隔で連続して要求された場合、ファイル書き込み後のtm2コマンドの発行が省略され、テープマークTM2が磁気テープへ書き込まれなくなる。そして、次のファイルは前のファイルの終端のテープマークTM1の次のブロックから書き込まれる。このとき、テープマークTM2の位置から磁気テープを巻き戻してテープマークTM1を検出することが行われなくなり、その結果、リポジショニングが行われなくなる。
また、(2−2)に示すようなタイミングでテープマークTM2が書き込まれることで、磁気テープを正常に利用できる状態に遷移させた後に、読み出しや排出が行われるようになる。また、(2−3)の処理は、新たなファイルの書き込みを、リポジショニングを行わずに開始できるかを判定するための処理である。
図14は、tm2コマンドの発行が省略される場合の例を示す図である。図14では例として、ファイルaaaのバックアップ処理、ファイルbbbのバックアップ処理が、それぞれ個別のバックアップ要求コマンドによってOS110から要求されたものとする。
まず、OS110からファイルaaaのバックアップ処理が要求されると、コマンド処理部121は、図12の例と同様に、ファイルaaaから得られる4つのブロックについてのwrコマンドと、tm1コマンドと、tm2コマンドの発行をコマンド発行制御部122に依頼する。コマンド発行制御部122は、4つのwrコマンドとtm1コマンドについては、図12の例と同様にテープドライブ200に発行する。すなわち、4つのwrコマンドはそれぞれバッファモードでテープドライブ200に発行され、tm1コマンドはダイレクトモードでテープドライブ200に発行される。これにより、磁気テープには、ファイルaaaから得られる4つのブロックと、テープマークTM1とが書き込まれる。
しかし、コマンド発行制御部122は、tm2コマンドをテープドライブ200に発行せずに、コマンド処理部121に対してtm2コマンドの発行完了を通知する。また、コマンド発行制御部122は、tm2コマンドを発行しない代わりに、EMフラグ134を“1”にする。以下、コマンド発行制御部122が、tm2コマンドを発行せずにEMフラグ134を“1”にし、コマンド処理部121にtm2コマンドの発行完了を通知することを、“tm2コマンド発行のエミュレーション”と記載する場合がある。
コマンド処理部121は、コマンド発行制御部122からtm2コマンドの発行完了が通知されると、OS110に対してファイルaaaのバックアップが完了したことを報告する。この時点で、磁気テープには、ファイルaaaから得られた4つのブロックとテープマークTM1とが記録された状態となり、磁気ヘッドはテープマークTM1の次のブロックから書き込み可能な状態となっている。
なお、コマンド発行制御部122は、前述の“複数ファイル指定によるバックアップ処理”と同様の手順で、カウント値BID_CNTをカウントする。ファイルaaaの書き込みが磁気テープの先頭から行われたものとすると、ファイルaaaのバックアップ完了がOS110に報告された時点で、カウント値BID_CNTの値は“5”となっている。
次に、OS110からファイルbbbのバックアップ処理が要求されると、コマンド処理部121は、図12の例と同様に、ファイルbbbから得られる4つのブロックについてのwrコマンドと、tm1コマンドと、tm2コマンドの発行をコマンド発行制御部122に依頼する。コマンド発行制御部122は、ファイルbbbに対応する最初のwrコマンドの発行依頼を受けると、次のような処理を行う。
コマンド発行制御部122は、テープドライブ200にRDBIDコマンドを発行して、磁気ヘッドの位置を示すブロックIDを取得する。コマンド発行制御部122は、取得したブロックIDと現在のカウント値BID_CNTとを比較する。もし、ファイルaaaのバックアップ処理の後に磁気テープに対するアクセス処理が行われていない場合、取得したブロックIDと現在のカウント値BID_CNTとは一致する。この場合、テープドライブ200は、リポジショニングを行うことなく、テープマークTM1の次のブロックから書き込みを開始できる状態にある。
このため、コマンド発行制御部122は、テープドライブ200にEODチェックを要求せずに、発行が依頼されたwrコマンドをバッファモードでテープドライブ200に発行する。さらに、コマンド発行制御部122は、残りのwrコマンドもバッファモードでテープドライブ200に発行し、さらにtm1コマンドをダイレクトモードでテープドライブ200に発行する。これにより、テープドライブ200では、リポジショニングが行われずに、ファイルbbbから得られた4つのブロックとテープマークTM1とが磁気テープに書き込まれる。
なお、コマンド発行制御部122は、ファイルaaaのバックアップ処理と同様に、ファイルbbbのバックアップ処理でもtm2コマンドについてはエミュレーションを行う。ただし、EMフラグ134はすでに“1”であるので、この値が維持される。これにより、磁気テープにテープマークTM2が書き込まれないまま、OS110にファイルbbbのバックアップの完了が報告される。
以上の処理により、OS110がファイルbbbのバックアップを要求してからバックアップの完了報告を受けるまでの間に、リポジショニングが発生しなくなり、ファイルbbbのバックアップにかかる時間が短縮される。
また、コマンド発行制御部122は、新たなファイルの書き込みを開始する時点で、テープドライブ200から取得したブロックIDと現在のカウント値BID_CNTとを照合する。そして、これらの値が一致していた場合に、EODチェックを要求せずにwrコマンドを発行する。これにより、リポジショニングを行わなくても、新たなファイルの書き込みをテープマークTM1の次のブロックから開始できることを判定でき、データ書き込みの信頼性を向上させることができる。
なお、上記の処理では、OS110からバックアップ要求を受けてその要求に応答するコマンド処理部121の処理手順は、図12の比較例での処理手順と同じとなる。これにより、コマンド処理部121を実現するプログラムを変更せず、このプログラムに対して、コマンド発行制御部122を実現する新たなプログラムを追加するだけで、リポジショニングの発生回数を抑制する。したがって、バックアップ処理部120を実現するプログラムの開発コストの上昇を抑制できる。
図15は、エミュレーション後のtm2コマンドの発行タイミングの例を示す図である。図14に示した処理が終了した時点で、磁気テープには、ファイルaaaから得られた4つのブロック、テープマークTM1、ファイルbbbから得られた4つのブロック、テープマークTM1の順にデータが記録されている。この状態では、末尾にテープマークTM2が記録されていないため、この磁気テープはどのテープドライブでも読み書き可能な有効な状態になっていない。そこで、コマンド発行制御部122は、この磁気テープがバックアップ処理以外の用途で利用されるタイミングの直前に、tm2コマンドをテープドライブ200に発行し、磁気テープを有効化する。
上記の(2−2)に記載したように、tm2コマンドの発行タイミングとしては、リストアやダンプなどの磁気テープからのデータ読み出しを伴う処理が要求された場合、磁気テープの排出が要求された場合、バックアップ系コマンドの発行から一定時間処理が要求されずにタイムアウトが発生した場合がある。図15では例として、データ読み出しまたは磁気テープの排出が要求された場合について示す。なお、ここではデータ読み出しおよびテープ排出はOS110から要求されるものとするが、例えば、他のアプリケーションプログラムの実行に伴ってデータ読み出しおよびテープ排出が要求されてもよい。
OS110からデータ読み出しまたはテープ排出が要求されると、コマンド処理部121は、要求に応じた処理を実行するためのコマンドの発行をコマンド発行制御部122に依頼する。コマンド発行制御部122は、EMフラグ134を読み出す。ここで、EMフラグ134が“1”である場合、テープドライブ200にロードされた磁気テープについてtm2コマンド発行のエミュレーションが実行済みであり、この磁気テープにはテープマークTM2が記録されていない。この場合、コマンド発行制御部122は、tm2コマンドをテープドライブ200に発行する。これにより、磁気テープにおけるデータ記録済み領域の末尾にテープマークTM2が書き込まれ、この磁気テープが有効化される。
コマンド発行制御部122は、テープマークTM2の書き込みが正常に完了したことの通知を受けると、コマンド処理部121から依頼されたコマンドをテープドライブ200に発行する。データ読み出しが要求された場合、テープドライブ200から要求されたデータが読み出される。また、テープ排出が要求された場合、テープドライブ200からテープカートリッジが排出される。
発行したコマンドに対応する処理が正常に完了すると、コマンド発行制御部122は、コマンド処理部121にコマンドに応じた処理の実行完了を通知する。コマンド処理部121は、OS110に対して、要求された処理が正常に完了したことを報告する。
なお、図示しないが、テープドライブ200がテープマークTM2の書き込みに失敗した場合には、コマンド発行制御部122は、現在のカウント値BID_CNTをエラーメモ133に登録し、そのまま上記と同様の処理を継続する。この場合、磁気テープにテープマークTM2が記録されないまま、OS110から要求された処理が継続する。エラーメモ133は、その後の書き込み処理や読み出し処理の際に参照される。エラーメモ13を利用した処理については後述する。
次に、単独ファイル指定によるバックアップ処理手順について、フローチャートを用いて説明する。
図16は、コマンド発行依頼処理手順の例を示すフローチャートである。図16の処理は、コマンド処理部121によって実行される。
図16は、コマンド発行依頼処理手順の例を示すフローチャートである。図16の処理は、コマンド処理部121によって実行される。
[ステップS71]コマンド処理部121は、OS110から、バックアップ対象として1つのファイルが指定されたバックアップ要求コマンドを受信する。なお、受信したバックアップ要求コマンドには、ブロックサイズが指定されている。コマンド処理部121は、単独ファイル指定によるバックアップ処理が要求されたことをコマンド発行制御部122に通知する。
[ステップS72]コマンド処理部121は、指定されたファイルを、指定されたブロックサイズで分割して得られる1つのブロックについて、wrコマンドの発行をコマンド発行制御部122に依頼する。コマンド発行制御部122からwrコマンドに対応する処理の完了応答が通知されると、次のステップS73の処理が実行される。
[ステップS73]コマンド処理部121は、指定されたファイルから得られる全ブロックについて、wrコマンドの発行を依頼済みかを判定する。wrコマンドの発行を依頼済みでないブロックがある場合、ステップS72の処理が実行される。一方、全ブロックについてwrコマンドの発行を依頼済みである場合、ステップS74の処理が実行される。
[ステップS74]コマンド処理部121は、tm1コマンドの発行をコマンド発行制御部122に依頼する。コマンド発行制御部122からtm1コマンドに対応する処理の完了応答が通知されると、次のステップS75の処理が実行される。
[ステップS75]コマンド処理部121は、tm2コマンドの発行をコマンド発行制御部122に依頼する。コマンド発行制御部122からtm2コマンドに対応する処理の完了応答が通知されると、次のステップS76の処理が実行される。
[ステップS76]コマンド処理部121は、OS110に対してバックアップ処理が完了したことを報告する。
以上の図16によれば、コマンド処理部121は、コマンド発行制御部122においてtm2コマンド発行のエミュレーションが行われたことを全く認識せずに処理を行う。
以上の図16によれば、コマンド処理部121は、コマンド発行制御部122においてtm2コマンド発行のエミュレーションが行われたことを全く認識せずに処理を行う。
図17および図18は、コマンド発行制御処理手順の例を示すフローチャートである。図17および図18の処理は、コマンド発行制御部122によって実行される。
[ステップS81]図16のステップS71で、コマンド処理部121が単独ファイル指定によるバックアップ処理が要求されたことをコマンド発行制御部122に通知すると、このステップS81の処理が開始される。コマンド発行制御部122は、テープドライブ200に対してRDBIDコマンドを発行し、磁気ヘッドの現在位置を示すブロックIDをテープドライブ200から取得する。ここでは、ブロックIDとして“N”が通知されたものとする。
[ステップS81]図16のステップS71で、コマンド処理部121が単独ファイル指定によるバックアップ処理が要求されたことをコマンド発行制御部122に通知すると、このステップS81の処理が開始される。コマンド発行制御部122は、テープドライブ200に対してRDBIDコマンドを発行し、磁気ヘッドの現在位置を示すブロックIDをテープドライブ200から取得する。ここでは、ブロックIDとして“N”が通知されたものとする。
[ステップS82]コマンド発行制御部122は、現在のカウント値BID_CNTが“N”であるかを判定する。カウント値BID_CNTが“N”でない場合、ステップS83の処理が実行される。カウント値BID_CNTが“N”である場合、ステップS85の処理が実行される。
[ステップS83]カウント値BID_CNTが“N”でない場合、前回のバックアップ処理の後に、バックアップ処理以外の処理が実行され、それによって磁気テープに対する磁気ヘッドの位置が変化してしまったと考えられる。このため、コマンド発行制御部122は、次のような処理により、カウント値BID_CNTを磁気テープにおける書き込み済みの最終ブロックのブロック番号に合わせる。
まず、コマンド発行制御部122は、磁気ヘッドをEODに位置合わせするように指示するコマンドをテープドライブ200に発行する。テープドライブ200では、磁気ヘッドをEODに位置合わせするためのリポジショニングが行われる。ここで、バックアップ処理が実行されている間、磁気テープにはテープマークTM2が記録されない。このため、テープドライブ200からは、最終のテープマークTM1が記録されたブロックのブロックIDが通知される。
[ステップS84]コマンド発行制御部122は、通知されたブロックIDをカウント値BID_CNTに設定する。
なお、ステップS82でカウント値BID_CNTが“N”である場合、前回のバックアップ処理の後にバックアップ処理以外の処理が実行されておらず、磁気ヘッドの位置が最終のテープマークTM1が記録されたブロックの末尾になっている。このため、コマンド発行制御部122は、ステップS83,S84の処理を行わずに、ステップS85以降の処理を実行する。これにより、単独ファイル指定によるバックアップ処理が連続して要求される場合には、リポジショニング(具体的には、テープマークTM2のブロックを探索した後、その直前のテープマークTM1のブロックを探索する動作)を行わずに次のファイルの書き込みを開始できる。したがって、バックアップ処理にかかる時間を短縮できる。
なお、ステップS82でカウント値BID_CNTが“N”である場合、前回のバックアップ処理の後にバックアップ処理以外の処理が実行されておらず、磁気ヘッドの位置が最終のテープマークTM1が記録されたブロックの末尾になっている。このため、コマンド発行制御部122は、ステップS83,S84の処理を行わずに、ステップS85以降の処理を実行する。これにより、単独ファイル指定によるバックアップ処理が連続して要求される場合には、リポジショニング(具体的には、テープマークTM2のブロックを探索した後、その直前のテープマークTM1のブロックを探索する動作)を行わずに次のファイルの書き込みを開始できる。したがって、バックアップ処理にかかる時間を短縮できる。
[ステップS85]コマンド発行制御部122は、コマンド処理部121からコマンドの発行依頼を受ける。コマンド発行制御部122は、発行が依頼されたコマンドがwrコマンドかを判定する。発行が依頼されたコマンドがwrコマンドである場合、ステップS86の処理が実行され、wrコマンドでない場合、図18のステップS91の処理が実行される。
[ステップS86]コマンド発行制御部122は、エラーメモ133に現在のカウント値BID_CNTの値が登録されているかを判定する。登録されている場合、ステップS89の処理が実行され、登録されていない場合、ステップS87の処理が実行される。
[ステップS87]コマンド発行制御部122は、発行が依頼されたwrコマンドをバッファモードでテープドライブ200に発行する。
[ステップS88]コマンド発行制御部122は、カウント値BID_CNTをカウントアップする。この後、ステップS85の処理が実行される。
[ステップS88]コマンド発行制御部122は、カウント値BID_CNTをカウントアップする。この後、ステップS85の処理が実行される。
[ステップS89]コマンド発行制御部122は、エラーメモ133に登録された値をクリアする。
[ステップS90]コマンド発行制御部122は、書き込みエラーが発生したことをコマンド処理部121に通知する。コマンド処理部121は、バックアップ処理が異常終了したことをOS110に報告する。
[ステップS90]コマンド発行制御部122は、書き込みエラーが発生したことをコマンド処理部121に通知する。コマンド処理部121は、バックアップ処理が異常終了したことをOS110に報告する。
[ステップS91]コマンド発行制御部122は、ステップS85で発行が依頼されたコマンドがtm1コマンドかを判定する。発行が依頼されたコマンドがtm1コマンドである場合、ステップS92の処理が実行され、それ以外のコマンドである場合、ステップS94の処理が実行される。
[ステップS92]コマンド発行制御部122は、発行が依頼されたtm1コマンドをダイレクトモードでテープドライブ200に発行する。
[ステップS93]コマンド発行制御部122は、テープドライブ200からの応答に基づいて、磁気テープへの書き込みエラーが発生したかを判定する。書き込みエラーが発生せず、ステップS92で発行したコマンドに応じた処理が正常に終了した場合、図17のステップS88の処理が実行される。一方、書き込みエラーが発生した場合、図17のステップS90の処理が実行される。
[ステップS93]コマンド発行制御部122は、テープドライブ200からの応答に基づいて、磁気テープへの書き込みエラーが発生したかを判定する。書き込みエラーが発生せず、ステップS92で発行したコマンドに応じた処理が正常に終了した場合、図17のステップS88の処理が実行される。一方、書き込みエラーが発生した場合、図17のステップS90の処理が実行される。
[ステップS94]コマンド発行制御部122は、ステップS85で発行が依頼されたコマンドがtm2コマンドかを判定する。発行が依頼されたコマンドがtm2コマンドである場合、ステップS96の処理が実行され、それ以外のコマンドである場合、ステップS95の処理が実行される。
[ステップS95]コマンド発行制御部122は、発行が依頼されたコマンドをテープドライブ200に発行し、そのコマンドに応じた処理を実行させる。処理が完了すると、その旨がコマンド処理部121を介してOS110に通知され、バックアップ処理部120の処理が終了する。
[ステップS96]コマンド発行制御部122は、EMフラグ134を“1”に設定する。なお、EMフラグ134がすでに“1”である場合、その値が維持される。
[ステップS97]コマンド発行制御部122は、書き込みが完了したことをコマンド処理部121に通知する。コマンド処理部121は、ファイルのバックアップ処理が正常に完了したことをOS110に報告する。
[ステップS97]コマンド発行制御部122は、書き込みが完了したことをコマンド処理部121に通知する。コマンド処理部121は、ファイルのバックアップ処理が正常に完了したことをOS110に報告する。
なお、ステップS96,S97により、“tm2コマンド発行のエミュレーション”が行われる。
次に、ファイルのバックアップ処理以外の処理について説明する。
次に、ファイルのバックアップ処理以外の処理について説明する。
図19は、データ読み出しまたは磁気テープ排出が要求された場合のコマンド発行制御処理手順の例を示すフローチャートである。
[ステップS101]OS110からバックアップ処理部120に対して、ファイルの読み出し、または磁気テープの排出が要求される。なお、これらの要求は、バックアップ処理プログラム以外のアプリケーションプログラムの実行によって要求されてもよい。コマンド処理部121は、コマンド発行制御部122に対して、データ読み出しまたはテープ排出を要求するためのコマンド発行を依頼する。
[ステップS101]OS110からバックアップ処理部120に対して、ファイルの読み出し、または磁気テープの排出が要求される。なお、これらの要求は、バックアップ処理プログラム以外のアプリケーションプログラムの実行によって要求されてもよい。コマンド処理部121は、コマンド発行制御部122に対して、データ読み出しまたはテープ排出を要求するためのコマンド発行を依頼する。
[ステップS102]コマンド発行制御部122は、EMフラグ134が“1”であるかを判定する。EMフラグ134が“1”である場合、ステップS103の処理が実行され、“0”である場合、ステップS107の処理が実行される。
[ステップS103]コマンド発行制御部122は、EMフラグ134を“0”に更新する。また、コマンド発行制御部122は、カウント値BID_CNTをカウントアップする。
[ステップS104]コマンド発行制御部122は、tm2コマンドをダイレクトモードでテープドライブ200に発行する。
[ステップS105]コマンド発行制御部122は、テープドライブ200からの応答に基づいて、磁気テープへの書き込みエラーが発生したかを判定する。書き込みエラーが発生せず、ステップS92で発行したコマンドに応じた処理が正常に終了した場合、ステップS107の処理が実行される。一方、書き込みエラーが発生した場合、ステップS106の処理が実行される。
[ステップS105]コマンド発行制御部122は、テープドライブ200からの応答に基づいて、磁気テープへの書き込みエラーが発生したかを判定する。書き込みエラーが発生せず、ステップS92で発行したコマンドに応じた処理が正常に終了した場合、ステップS107の処理が実行される。一方、書き込みエラーが発生した場合、ステップS106の処理が実行される。
[ステップS106]コマンド発行制御部122は、エラーメモ133に現在のカウント値BID_CNTの値を上書きして登録する。
[ステップS107]コマンド発行制御部122は、コマンド処理部121から依頼されたコマンドをテープドライブ200に発行する。このステップS107では、ステップS101でOS110などから要求された内容に対応する1つ以上のコマンドの発行がコマンド処理部121から依頼され、コマンド発行制御部122は、依頼された各コマンドをテープドライブ200に発行する。
[ステップS107]コマンド発行制御部122は、コマンド処理部121から依頼されたコマンドをテープドライブ200に発行する。このステップS107では、ステップS101でOS110などから要求された内容に対応する1つ以上のコマンドの発行がコマンド処理部121から依頼され、コマンド発行制御部122は、依頼された各コマンドをテープドライブ200に発行する。
ここで、ステップS107の処理には、コマンド処理部121からのBSB(Backspace Block)コマンドの発行依頼が含まれる。BSBコマンドは、磁気ヘッドの位置を前のブロックの末尾に移動させることを要求するものであり、ステップS107の処理の中ではテープマークTM2のブロックの確認に用いられる。しかし、上記のステップS105でエラーが発生した場合、磁気テープにはテープマークTM2が記録されていないため、テープドライブ200ではBSBコマンドの受信に応じてエラーが発生する。そこで、次の図20を用いて、このようなエラーが発生した場合の対処方法について説明する。
図20は、図19のステップS107でBSBコマンドの発行が依頼された場合の処理手順の例を示すフローチャートである。
[ステップS107a]コマンド発行制御部122は、コマンド処理部121からの発行依頼に応じて、BSBコマンドをテープドライブ200に発行する。
[ステップS107a]コマンド発行制御部122は、コマンド処理部121からの発行依頼に応じて、BSBコマンドをテープドライブ200に発行する。
[ステップS107b]テープドライブ200でエラーが発生した場合には、ステップS107cの処理が実行される。一方、エラーが発生しなかった場合、図20の処理は終了し、図19のステップS107の処理が継続される。
[ステップS107c]コマンド発行制御部122は、エラーメモ133に現在のカウント値BID_CNTの値が登録されているかを判定する。登録されている場合、ステップS107dの処理が実行され、登録されていない場合、ステップS107eの処理が実行される。
[ステップS107d]コマンド発行制御部122は、BSBコマンドに対応する処理が正常に終了したことをコマンド処理部121に報告する。これにより、ステップS107の処理が継続される。
[ステップS107e]コマンド発行制御部122は、BSBコマンドに対応する処理のエラーが発生したことをコマンド処理部121に報告する。コマンド処理部121は、OS110に対して異常発生を報告し、処理が終了される。
図21は、タイムアウト発生時の制御処理手順の例を示すフローチャートである。
[ステップS121]コマンド発行制御部122は、最後にバックアップ系コマンドを発行してから一定時間、コマンド処理部121からコマンドの発行が依頼されていない場合に、ステップS122以降の処理を実行する。なお、バックアップ系コマンドが発行されたタイミングとは、図17のステップS87または図18のステップS92である。
[ステップS121]コマンド発行制御部122は、最後にバックアップ系コマンドを発行してから一定時間、コマンド処理部121からコマンドの発行が依頼されていない場合に、ステップS122以降の処理を実行する。なお、バックアップ系コマンドが発行されたタイミングとは、図17のステップS87または図18のステップS92である。
[ステップS122]コマンド発行制御部122は、EMフラグ134が“1”であるかを判定する。EMフラグ134が“1”である場合、ステップS123の処理が実行される。一方、EMフラグ134が“0”である場合、図21の処理が終了される。
[ステップS123]コマンド発行制御部122は、EMフラグ134を“0”に更新する。また、コマンド発行制御部122は、カウント値BID_CNTをカウントアップする。
[ステップS124]コマンド発行制御部122は、tm2コマンドをダイレクトモードでテープドライブ200に発行する。
[ステップS125]コマンド発行制御部122は、テープドライブ200からの応答に基づいて、磁気テープへの書き込みエラーが発生したかを判定する。書き込みエラーが発生せず、ステップ124で発行したコマンドに応じた処理が正常に終了した場合、図21の処理が終了される。一方、書き込みエラーが発生した場合、ステップS126の処理が実行される。
[ステップS125]コマンド発行制御部122は、テープドライブ200からの応答に基づいて、磁気テープへの書き込みエラーが発生したかを判定する。書き込みエラーが発生せず、ステップ124で発行したコマンドに応じた処理が正常に終了した場合、図21の処理が終了される。一方、書き込みエラーが発生した場合、ステップS126の処理が実行される。
[ステップS126]コマンド発行制御部122は、エラーメモ133に現在のカウント値BID_CNTの値を上書きして登録する。
以上で説明したように、コマンド発行制御部122は、1つのファイルのバックアップの終了時に、テープマークTM2を磁気テープに書き込まずに、バックアップ処理が正常に終了したことをコマンド処理部121に報告させる(図18のステップS95,S96)。これにより、次のファイルの磁気テープへの書き込み開始時にリポジショニングが発生する確率が低減し、複数のファイルについてのバックアップ処理にかかる時間が短縮される。
以上で説明したように、コマンド発行制御部122は、1つのファイルのバックアップの終了時に、テープマークTM2を磁気テープに書き込まずに、バックアップ処理が正常に終了したことをコマンド処理部121に報告させる(図18のステップS95,S96)。これにより、次のファイルの磁気テープへの書き込み開始時にリポジショニングが発生する確率が低減し、複数のファイルについてのバックアップ処理にかかる時間が短縮される。
また、コマンド発行制御部122は、バックアップ時の書き込み先ブロックのブロックIDをカウント値BID_CNTで管理する。そして、次のファイルの書き込み開始時に、テープドライブ200から読み出したブロックIDとカウント値BID_CNTとが一致した場合に、リポジショニングを省略してファイルの書き込みを開始させる。これにより、リポジショニングを行わずにファイルの書き込みを開始した場合でも、ファイルの書き込み開始位置の正確性を向上させることができる。
また、コマンド発行制御部122は、ファイルのバックアップ処理が終了した後、バックアップ対象の磁気テープが利用されるタイミングの直前、具体的にはデータ読み出しの直前やテープ排出の直前に、磁気テープにテープマークTM2を書き込む(図19のステップS104)。これにより、ファイルのバックアップ処理にかかる時間に影響を与えないタイミングで、テープマークTM2を書き込むことができる。これとともに、有効化された状態で磁気テープを利用させることができる。
また、コマンド発行制御部122は、ファイルのバックアップ処理が終了してから一定時間処理が要求されなかったタイミングでも、磁気テープにテープマークTM2を書き込む(図21のステップS124)。これにより、ファイルのバックアップ処理にかかる時間に影響を与えないタイミングで、テープマークTM2を書き込むことができる。
また、コマンド発行制御部122は、磁気テープへのテープマークTM2の書き込みに失敗した場合でも、この磁気テープを用いた処理を継続させる(図19のステップS106、図21のステップS126)。テープマークTM2の書き込み処理は、実際に書き込みを要求する時点ではすでに正常に完了したことを報告済みの処理である。このため、コマンド発行制御部122は、書き込みに失敗した場合でも、そのことを報告せずに処理を継続することで、処理の整合をとる。また、テープマークTM2の書き込みに失敗しても、OS110から書き込みが要求されたファイルの内容について書き込みに成功していれば、ユーザにとって実害はない。このため、テープマークTM2が書かれていない磁気テープを継続して利用可能にすることで、ユーザの利便性を高めることができる。
また、コマンド発行制御部122は、テープマークTM2の書き込みに失敗したブロックのブロックIDをエラーメモ133に登録しておく。そして、エラーメモ133に基づき、BSBコマンドの発行に応じて当該ブロックでの読み出しエラーが発生したことを検知した場合にも、エラーの発生をOS110に通知せずに処理を継続させる(図20のステップS107d)。これにより、上記のテープマークTM2の書き込み失敗時と同様、処理の整合がとられるとともに、この磁気テープを継続して利用可能にし、ユーザの利便性が高められる。
なお、図19のステップS101でテープ排出が要求された場合には、図20のステップS107dでは、例えばサーバ装置100の管理者に、テープマークTM2が記録されていない磁気テープが排出されたことが通知されることが望ましい。あるいは、テープ排出が要求された場合には、ステップS107cの判定処理が行われずに、無条件でステップS107eの処理が実行されてもよい。
<複数ファイル指定と単独ファイル指定との併存>
ところで、バックアップ処理部120は、次の図22に示すような処理により、複数ファイル指定によるバックアップ処理がOS110から要求された場合と、単独ファイル指定によるバックアップ処理がOS110から要求された場合のどちらにも対応できる。
ところで、バックアップ処理部120は、次の図22に示すような処理により、複数ファイル指定によるバックアップ処理がOS110から要求された場合と、単独ファイル指定によるバックアップ処理がOS110から要求された場合のどちらにも対応できる。
図22は、2種類のファイル指定方法に対応したコマンド発行制御処理手順の例を示すフローチャートである。
[ステップS141]図9のステップS11または図16のステップS71で、コマンド処理部121がバックアップ処理が要求されたことをコマンド発行制御部122に通知すると、このステップS141の処理が開始される。コマンド発行制御部122は、複数ファイル指定と、単独ファイル指定のどちらによってバックアップ処理が要求されたかを判定する。
[ステップS141]図9のステップS11または図16のステップS71で、コマンド処理部121がバックアップ処理が要求されたことをコマンド発行制御部122に通知すると、このステップS141の処理が開始される。コマンド発行制御部122は、複数ファイル指定と、単独ファイル指定のどちらによってバックアップ処理が要求されたかを判定する。
ここで、複数ファイル指定によるバックアップ処理が要求された場合、ステップS142に進む。ステップS142以降では、図10および図11に示した処理のうちの最初の部分のみが変形された処理が実行される。一方、単独ファイル指定によるバックアップ処理が要求された場合、図17の処理が最初のステップS81から実行される。
[ステップS142]コマンド発行制御部122は、テープドライブ200に対してRDBIDコマンドを発行し、磁気ヘッドの現在位置を示すブロックIDをテープドライブ200から取得する。ここでは、ブロックIDとして“N”が通知されたものとする。
[ステップS143]コマンド発行制御部122は、N=0であるか、すなわち、書き込み開始位置が磁気テープの先頭であるかを判定する。N=0である場合、ステップS144の処理が実行される。N=0でない場合、ステップS145の処理が実行される。
[ステップS144]コマンド発行制御部122は、カウント値BID_CNTに初期値として“0”を設定する。
[ステップS145]コマンド発行制御部122は、磁気ヘッドをEODに位置合わせするように指示するコマンドをテープドライブ200に発行する。テープドライブ200からこのコマンドに対する完了応答が送信されると、次のステップS146の処理が実行される。
[ステップS145]コマンド発行制御部122は、磁気ヘッドをEODに位置合わせするように指示するコマンドをテープドライブ200に発行する。テープドライブ200からこのコマンドに対する完了応答が送信されると、次のステップS146の処理が実行される。
[ステップS146]コマンド発行制御部122は、EMフラグ134が“1”であるかを判定する。EMフラグ134が“0”の場合、ステップS147の処理が実行される。一方、EMフラグ134が“1”の場合、ステップS148の処理が実行される。
[ステップS147]コマンド発行制御部122は、BSPFコマンドをテープドライブ200に発行する。これにより、磁気ヘッドはテープマークTM2の直前のテープマークTM1のブロックの末尾に位置合わせされ、テープマークTM1の次のブロックから書き込みを開始できるようになる。
なお、ステップS146で“Yes”の場合には、磁気テープの最終ブロックにはテープマークTM2ではなくテープマークTM1が記録されているので、ステップS145の処理により磁気ヘッドはテープマークTM1の末尾に位置している。このため、ステップS147の処理はスキップされる。
[ステップS148]コマンド発行制御部122は、テープドライブ200に対してRDBIDコマンドを発行し、磁気テープにおける書き込み開始位置を示すブロックIDをテープドライブ200から取得する。ここでは、ブロックIDとして“M”が通知されたものとする。コマンド発行制御部122は、カウント値BID_CNTに初期値として“M”を設定する。
ステップS144またはステップS148の実行後、図10のステップS26の処理が実行される。
なお、上記の各実施の形態に示した装置(情報処理装置1およびサーバ装置100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
なお、上記の各実施の形態に示した装置(情報処理装置1およびサーバ装置100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
1 情報処理装置
2 テープドライブ
11 残量検出部
12 書き込み制御部
21 磁気テープ
22 バッファメモリ
2 テープドライブ
11 残量検出部
12 書き込み制御部
21 磁気テープ
22 バッファメモリ
Claims (10)
- 磁気テープに対する複数のデータの書き込みをテープドライブに要求する情報処理装置において、
前記テープドライブが備えるバッファメモリの残量を検出する残量検出部と、
前記複数のデータのそれぞれの書き込みを要求するデータ書き込み要求を前記テープドライブに送信する際に、前記残量が所定のしきい値より大きい場合には、書き込み対象のデータを前記バッファメモリに格納させ、当該データを前記磁気テープに書き込まずに書き込み完了を通知させる第1の書き込みモードで前記データ書き込み要求を送信し、前記残量が前記しきい値以下である場合には、前記バッファメモリに格納されたデータと前記書き込み対象のデータとを前記磁気テープに書き込ませる第2の書き込みモードで前記データ書き込み要求を送信する書き込み制御部と、
を有する情報処理装置。 - 前記複数のデータのそれぞれは、複数のファイルを一定サイズに分割して得られる分割データであり、
前記書き込み制御部は、前記複数のファイルに対応する分割データのうち最後の分割データの前記データ書き込み要求を送信した後、前記磁気テープ上の有効データの記憶領域の終端を示す識別子の書き込みを要求する第1識別子書き込み要求を前記第2の書き込みモードで前記テープドライブに送信する、
請求項1記載の情報処理装置。 - 前記書き込み制御部は、前記複数のファイルのうちの1つのファイルに対応するすべての分割データの前記データ書き込み要求を送信した後、前記残量が前記しきい値より大きい場合には、前記磁気テープ上のファイル記憶領域の終端を示す識別子の書き込みを要求する第2識別子書き込み要求を前記第1の書き込みモードで前記テープドライブに送信し、前記残量が前記しきい値以下である場合には、前記第2識別子書き込み要求を前記第2の書き込みモードで前記テープドライブに送信する、請求項2記載の情報処理装置。
- 前記書き込み制御部は、
前記データ書き込み要求または前記第2識別子書き込み要求を前記テープドライブに送信するたびに、前記磁気テープにおける書き込み先ブロックのブロック番号を示す第1のカウント値をカウントアップするとともに、前記第2識別子書き込み要求を前記テープドライブに送信するたびに、第2のカウント値をカウントアップし、前記第1のカウント値と前記第2のカウント値とを対応付けて管理情報に登録し、
前記第2の書き込みモードで前記データ書き込み要求、前記第1識別子書き込み要求または前記第2識別子書き込み要求のいずれかを送信したときに前記テープドライブから書き込みエラーが通知された場合、前記書き込みエラーが発生したブロックのブロック番号を前記テープドライブから取得し、前記管理情報から当該ブロック番号と同じ前記第1のカウント値に対応付けられた前記第2のカウント値を取得し、当該第2のカウント値に基づいて前記複数のファイルの中から前記磁気テープの書き込みに成功したファイルを特定する、
請求項3記載の情報処理装置。 - 前記複数のファイルのそれぞれの前記磁気テープへの書き込みがファイルごとに第2の制御コマンドによって要求される場合に、前記書き込み制御部は、
前記複数のファイルのそれぞれに対応する分割データの書き込みを要求する前記データ書き込み要求を前記第1の書き込みモードで前記テープドライブに送信し、
1つのファイルに対応するすべての分割データの前記データ書き込み要求を送信した後のタイミングで、前記磁気テープ上のファイル記憶領域の終端を示す識別子の書き込みを要求する第2識別子書き込み要求を前記第2の書き込みモードで前記テープドライブに送信するとともに、前記第1識別子書き込み要求の送信を省略し、
前記磁気テープからのデータの読み出しを要求するコマンド、または、前記磁気テープの排出を要求するコマンドを受信したとき、前記第1識別子書き込み要求を前記第2の書き込みモードで前記テープドライブに送信した後、受信したコマンドに応じた処理を実行する、
請求項2記載の情報処理装置。 - 前記書き込み制御部は、
前記第1識別子書き込み要求の送信を省略したとき、フラグ情報に送信回避を示す値を設定し、
前記磁気テープからのデータの読み出しを要求するコマンド、または、前記磁気テープの排出を要求するコマンドを受信したとき、前記フラグ情報に前記送信回避を示す値が設定されていた場合に、前記第1識別子書き込み要求を前記第2の書き込みモードで前記テープドライブに送信する、
請求項5記載の情報処理装置。 - 前記書き込み制御部は、ファイルの書き込みが要求されてから一定時間、前記磁気テープを用いた処理を要求するコマンドを受信しなかった場合に、前記第1識別子書き込み要求を前記第2の書き込みモードで前記テープドライブに送信する、請求項5記載の情報処理装置。
- 前記書き込み制御部は、
前記データ書き込み要求または前記第2識別子書き込み要求を前記テープドライブに送信するたびに、前記磁気テープにおける書き込み先ブロックのブロック番号を示すカウント値をカウントアップし、
前記第2の制御コマンドを受信したとき、前記磁気テープにおける磁気ヘッドの現在位置を示す第1のブロック番号を前記テープドライブから取得し、前記第1のブロック番号と前記カウント値とが一致しなかった場合には、前記磁気ヘッドの位置を前記磁気テープにおける有効データの記憶領域の終端位置に位置合わせさせる位置合わせ要求を前記テープドライブに送信し、前記磁気テープにおける磁気ヘッドの現在位置を示す第2のブロック番号を前記テープドライブから取得して前記カウント値に前記第2のブロック番号を設定し、前記第1のブロック番号と前記カウント値とが一致した場合には、前記位置合わせ要求の送信を省略する、
請求項5〜7のいずれか1項に記載の情報処理装置。 - バッファメモリを備えたテープドライブと、
磁気テープに対する複数のデータの書き込みを前記テープドライブに要求する情報処理装置と、
を有し、
前記情報処理装置は、前記複数のデータのそれぞれの書き込みを要求するデータ書き込み要求を前記テープドライブに送信する際に、前記バッファメモリの残量が所定のしきい値より大きい場合には、書き込み対象のデータを前記バッファメモリに格納させ、当該データを前記磁気テープに書き込まずに書き込み完了を通知させる第1の書き込みモードで前記データ書き込み要求を送信し、前記残量が前記しきい値以下である場合には、前記バッファメモリに格納されたデータと前記書き込み対象のデータとを前記磁気テープに書き込ませる第2の書き込みモードで前記データ書き込み要求を送信する、
情報処理システム。 - 磁気テープに対する複数のデータの書き込みをテープドライブに要求するコンピュータに、
前記複数のデータのそれぞれの書き込みを要求するデータ書き込み要求を前記テープドライブに送信する際に、前記テープドライブが備えるバッファメモリの残量が所定のしきい値より大きい場合には、書き込み対象のデータを前記バッファメモリに格納させ、当該データを前記磁気テープに書き込まずに書き込み完了を通知させる第1の書き込みモードで前記データ書き込み要求を送信し、前記残量が前記しきい値以下である場合には、前記バッファメモリに格納されたデータと前記書き込み対象のデータとを前記磁気テープに書き込ませる第2の書き込みモードで前記データ書き込み要求を送信する、
処理を実行させる書き込み制御プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014202768A JP2016071766A (ja) | 2014-10-01 | 2014-10-01 | 情報処理装置、情報処理システムおよび書き込み制御プログラム |
US14/849,760 US9740405B2 (en) | 2014-10-01 | 2015-09-10 | Information processing device and information processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014202768A JP2016071766A (ja) | 2014-10-01 | 2014-10-01 | 情報処理装置、情報処理システムおよび書き込み制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016071766A true JP2016071766A (ja) | 2016-05-09 |
Family
ID=55632837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014202768A Pending JP2016071766A (ja) | 2014-10-01 | 2014-10-01 | 情報処理装置、情報処理システムおよび書き込み制御プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9740405B2 (ja) |
JP (1) | JP2016071766A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11823709B2 (en) | 2021-08-12 | 2023-11-21 | International Business Machines Corporation | Write performance by enabling host data transfer immediately after a reposition command |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019083371A (ja) * | 2017-10-27 | 2019-05-30 | オリンパス株式会社 | 画像端末装置、送信方法およびプログラム |
US10585761B2 (en) * | 2018-02-01 | 2020-03-10 | EMC IP Holding Company LLC | Methods and systems for energy efficient data backup |
CN112511848B (zh) * | 2020-11-09 | 2023-06-20 | 网宿科技股份有限公司 | 直播方法、服务端及计算机可读存储介质 |
CN113220650B (zh) * | 2021-04-27 | 2024-04-09 | 北京百度网讯科技有限公司 | 数据存储方法、装置、设备、存储介质及程序 |
US11437062B1 (en) * | 2021-08-23 | 2022-09-06 | International Business Machines Corporation | Reducing time to reposition tape to write index |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08255418A (ja) | 1995-03-20 | 1996-10-01 | Toshiba Corp | 情報記録システム |
US6332197B1 (en) * | 1998-08-04 | 2001-12-18 | International Business Machines Corp. | System for updating data in a multi-adaptor environment |
JP2005122433A (ja) * | 2003-10-16 | 2005-05-12 | Fujitsu Ltd | 磁気テープ装置 |
JP4903415B2 (ja) * | 2005-10-18 | 2012-03-28 | 株式会社日立製作所 | 記憶制御システム及び記憶制御方法 |
WO2011114384A1 (en) | 2010-03-19 | 2011-09-22 | Hitachi, Ltd. | Storage system and method for changing configuration of cache memory for storage system |
-
2014
- 2014-10-01 JP JP2014202768A patent/JP2016071766A/ja active Pending
-
2015
- 2015-09-10 US US14/849,760 patent/US9740405B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11823709B2 (en) | 2021-08-12 | 2023-11-21 | International Business Machines Corporation | Write performance by enabling host data transfer immediately after a reposition command |
Also Published As
Publication number | Publication date |
---|---|
US9740405B2 (en) | 2017-08-22 |
US20160098192A1 (en) | 2016-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2016071766A (ja) | 情報処理装置、情報処理システムおよび書き込み制御プログラム | |
US9477681B2 (en) | File management among different zones of storage media | |
US20130254457A1 (en) | Methods and structure for rapid offloading of cached data in a volatile cache memory of a storage controller to a nonvolatile memory | |
US20140013068A1 (en) | Information processing apparatus, storage system, and write control method | |
WO2018153251A1 (zh) | 一种快照的处理方法及分布式块存储系统 | |
JP2005301497A (ja) | ストレージ管理装置、リストア方法及びそのプログラム | |
EP2703989A2 (en) | Information processing apparatus, computer program, and copy control method | |
US7330410B2 (en) | Information recording method and apparatus, information processing apparatus, information recording system and computer-readable storage medium using dummy data | |
US20130080725A1 (en) | Control apparatus, control method, and storage apparatus | |
US8605560B2 (en) | Storage system and storage control method | |
US20060085614A1 (en) | Data management apparatus | |
GB2416070A (en) | Tape drive apparatus | |
US8482875B2 (en) | Tape library control apparatus and tape library control method | |
JP2006343923A (ja) | ディスク記録装置 | |
US8707089B2 (en) | Storage control device for formatting to storage media, storage control method for formatting to storage media, and medium for storing storage control program for formatting to storage media | |
JP5786739B2 (ja) | 書込みシステム、書込み装置および書込み方法 | |
US7984236B2 (en) | Data transfer | |
CN113568559B (zh) | 硬盘写错误的处理方法、装置、设备和介质 | |
US8347051B2 (en) | Storage apparatus, backup apparatus, and backup method | |
US8627157B2 (en) | Storing apparatus | |
US8037268B2 (en) | Storage system and operation method thereof | |
US20090063770A1 (en) | Storage control apparatus, storage control program, and storage control method | |
US20070271436A1 (en) | Method and apparatus for allocating disc space for recording files | |
US20160357479A1 (en) | Storage control apparatus | |
KR20100052041A (ko) | 로더와 펌웨어 자동 복구 방법 |