JP2016004413A - テープ上へのファイル書き込み方法 - Google Patents

テープ上へのファイル書き込み方法 Download PDF

Info

Publication number
JP2016004413A
JP2016004413A JP2014124161A JP2014124161A JP2016004413A JP 2016004413 A JP2016004413 A JP 2016004413A JP 2014124161 A JP2014124161 A JP 2014124161A JP 2014124161 A JP2014124161 A JP 2014124161A JP 2016004413 A JP2016004413 A JP 2016004413A
Authority
JP
Japan
Prior art keywords
tape
file
index information
files
combined file
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.)
Granted
Application number
JP2014124161A
Other languages
English (en)
Other versions
JP6391061B2 (ja
Inventor
剛志 宮村
Tsuyoshi Miyamura
剛志 宮村
浩 板垣
Hiroshi Itagaki
浩 板垣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2014124161A priority Critical patent/JP6391061B2/ja
Priority to US14/702,191 priority patent/US10025507B2/en
Publication of JP2016004413A publication Critical patent/JP2016004413A/ja
Application granted granted Critical
Publication of JP6391061B2 publication Critical patent/JP6391061B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0682Tape device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/328Table of contents on a tape [TTOC]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers
    • G11B2220/95Serpentine format, wherein a single track or group of tracks traverses the tape plural times from one end to the other
    • G11B2220/956Linear tape open [LTO] format

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ファイルシステムにおいて、小さいサイズのファイルを大量にテープ上に書き込むような場合でも、上述のオーバーヘッドを軽減し高速に書き込みができる仕組み(方法)を提案する。
【解決手段】本発明の方法では、複数のファイルを1つの結合ファイルとなるように連続してテープ上に書き込むステップと、テープ上の結合ファイルの開始位置およびサイズを含む第1のインデックス情報をテープ上に書き込むステップと、テープ上の結合ファイル中の複数のファイルの各々についての開始位置およびサイズを含む第2のインデックス情報をテープ上に書き込むステップと、を含む。
【選択図】図5

Description

本発明は、テープ上へのファイル書き込み方法に関し、より具体的には、ファイルシステムにおいてテープ上へファイルを書き込むための方法に関する。
テープドライブ上のデータをファイルシステムにおけるファイルとしてアクセスする仕組みとして、例えばLTFS(Linear Tape File System)が実用化されている。LTFSでは、ファイルを構成するデータ領域がテープ上のどこに存在するか等のメタ情報をインデックス情報として関連付けることにより、ファイルシステムを実現している。その仕組みにより、コンピュータ上で実行されるアプリケーション・プログラムから直接テープドライブ上のファイルへのアクセスができるようになっている。
データをテープに書き込む速度は、テープドライブの規格により決定される。例えばLTO規格の1つであるLTO5のテープドライブの場合は、データの転送速度は一般的なハードディスクよりも速く、非圧縮時の最高速度は約140MB/secであるが、そのほかにヘッドを移動する時間が加算される。LTFSの場合には、加えてファイルを構成するデータとともに上記したインデックス情報も保存することや、ファイルシステムではファイル単位ごとに”open”と”write”と”close” のAPIコール(システムコール)を発生させる必要があることから、更にデータの転送速度(データをテープに書き込む速度)が遅くなることが知られている。
この問題は、特にLTFSで小さいサイズのファイルを大量にテープ上に書き込む場合に顕著になることが指摘されている。例えば、LTO6のテープドライブでの検証では、ファイルサイズが512KBより小さくなるにつれてデータの転送速度(MB/sec)が低下していく傾向があることがわかっている。
この転送速度の低下は、ファイルの”open”と”close” の APIコールによるオーバーヘッド、あるいはファイルの追加によるインデックス情報の更新のオーバーヘッド等が主な原因として起こると考えられる。また、ひとつのファイルをクローズした後、次のファイルをオープンするまでのやり取りの間にもテープは走行し続けるために、書き込み速度を低速にして調整する必要もあり、その事も転送のパフォーマンスを低下させる原因となる。
特開2003-15941号公報
本発明の目的は、上記した従来技術の問題を解決あるいは軽減しつつ、ファイルシステムにおけるテープ上へのデータ転送速度を向上させることであり、より具体的には、ファイルシステムにおいて、小さいサイズのファイルを大量にテープ上に書き込むような場合でも、上述のオーバーヘッドを軽減し高速に書き込みができる仕組み(方法)を提案することである。
本発明の一態様では、ファイルシステムにおいてテープ上へファイルを書き込むための方法を提供する。その方法では、
複数のファイルを1つの結合ファイルとなるように連続してテープ上に書き込むステップと、
テープ上の結合ファイルの開始位置およびサイズを含む第1のインデックス情報をテープ上に書き込むステップと、
テープ上の結合ファイル中の複数のファイルの各々についての開始位置およびサイズを含む第2のインデックス情報をテープ上に書き込むステップと、を含む。
本発明の一態様によれば、複数のファイルを1つの結合ファイルとなるように連続してテープ上に書き込むことにより、テープ上へのデータ書き込み時間を短くする、言い換えれば、書き込み時のオーバーヘッドを軽減することができる。さらに、本発明の一態様によれば、テープ上に記憶された、テープ上の結合ファイル中の複数のファイルの各々についての開始位置およびサイズを含む第2のインデックス情報により、結合ファイル中の個々のファイル単位でデータの読み出しをおこなうことができる。
本発明の他の一態様では、結合ファイルに含まれる複数のファイルの各々についてのパス名、オフセット位置、及びサイズを含むメタ情報を取得するステップと、テープ上の結合ファイルの開始位置とメタ情報とを用いて第2のインデックス情報を作成するステップと、をさらに含む。
本発明の他の一態様によれば、テープ上へのファイルの書き込みとは別個に(並行して)テープ上の結合ファイルの開始位置とメタ情報とを用いて第2のインデックス情報を作成することができる。その結果、ファイルシステムにおいてテープ上へファイルを書き込む際のパフォーマンス(処理時間等)をさらに向上させることが可能となる。
本発明の他の一態様では、結合ファイル、第1のインデックス情報、及び第2のインデックス情報は、いずれもテープのデータパーティションに書きこまれ、第1のインデックス情報は結合ファイルのデータ領域の後ろに書き込まれ、第2のインデックス情報は第1のインデックス情報の後ろに書き込まれる。
本発明の他の一態様によれば、LTO規格のテープドライブにおけるパーティションの概念を利用して、本発明の方法を実行することができる。
本発明の他の一態様では、ファイルシステムにおいて利用可能なテープドライブにおいて読み書き可能なテープ上のデータ構造が提供される。そのデータ構造は、
テープのデータパーティションにおいて記憶された、連続した複数のファイルを含む結合ファイル領域と、
結合ファイル領域の後ろに記憶された、結合ファイルの開始位置およびサイズを含む第1のインデックス情報領域と、
第1のインデックス情報領域の後ろに記憶された、結合ファイル中の複数のファイルの各々についての開始位置およびサイズを含む第2のインデックス情報領域と、を含む。
本発明の他の一態様によれば、LTO規格のテープドライブにおいて利用可能な形態でデータを保管したテープを提供することができる。
本発明のファイルシステムの構成例を示す図である。 本発明のテープドライブの構成例を示す図である。 本発明のホスト(サーバー)、PCの構成例を示す図である。 従来のデータパーティションの構成例(データ構造)を示す図である。 本発明の方法のフローを示す図である。 本発明の方法において結合される複数のファイルの例を示す図である。 本発明で利用するデータパーティションへのファイル保管の実施例(データ構造)を示す図である。
図面を参照しながら本発明の実施の形態を説明する。図1は、本発明の方法が実施されるファイルシステムの構成例を示す図である。ファイルシステム100は、ネットワーク36を介して相互に通信可能なテープドライブ10、ホスト(サーバー)30、PC(端末)32、34からなる。図1では、テープドライブ10とホスト(サーバー)30は、それぞれ1つしか描かれていないが、これはあくまで例示であって、2以上のテープドライブ10やホスト(サーバー)30を含むことができることは言うまでもない。
ファイルシステム100は、例えばLTFSとすることができる。LTFSでは、HDDやUSBメモリ、あるいはCD−Rを始めとする他のリムーバブルな記録媒体同様に、テープカートリッジをテープドライブに挿入すれば、そのテープカートリッジ(テープ)に保存されたファイルに直接アクセスできる。テープドライブ上でファイルシステムを構築するためには、テープドライブがパーティション(データパーティション、インデックスパーティション)を有していることが必要である。このパーティションについてはさらに後述する。なお、本明細書における以下の説明では、各種データを含む“ファイル”を単にデータと表記し、両者を同様な意味で用いる場合がある(“データ”=“ファイル”)。
図2は、本発明のテープドライブの構成例を示す図である。テープドライブ10は、ホストインターフェイス(以下、「ホストI/F」という)11と、バッファ12と、チャネル13と、ヘッド14と、モータ15とを含む。また、コントローラ16と、ヘッド位置制御システム17と、モータドライバ18とを含む。更に、テープドライブ10には、テープカートリッジ20が挿入されることにより装填可能となっているので、ここでは、テープカートリッジ20も図示している。このテープカートリッジ20は、リール21、22に巻かれたテープ23を含む。テープ23は、リール21、22の回転に伴い、リール21からリール22の方向へ、又は、リール22からリール21の方向へ、長手方向に移動する。なお、テープ23としては、磁気テープが例示されるが、磁気テープ以外のテープ媒体でもよい。
また、テープカートリッジ20は、カートリッジメモリ(CM)24も含む。このCM24は、例えば、テープ23上にどのようにデータが書かれたかの情報を記録する。そして、例えばRFインターフェイスを用いて非接触でテープ23に書かれたデータのインデックスやテープ23の使用状況等を調べることにより、データへの高速アクセスを可能としている。なお、図2では、このRFインターフェイスのようなCM24へのアクセスを行うためのインターフェイスを、カートリッジメモリインターフェイス(以下、「CMI/F」という)19として示している。
ここで、ホストI/F11は、ホスト(サーバー)30や他のPC32等との通信を行う。例えば、ホスト30のOSから、テープ23へのデータの書込みを指示するコマンド、テープ23を目的の位置に移動させるコマンド、テープ23からのデータの読出しを指示するコマンドを受け取る。上述したLTFSの例では、デスクトップOSなどから直接、テープドライブ内のデータを参照でき、HD内のファイルを扱うのと同様に、ダブルクリックでファイルを実行したり、ドラッグアンドドロップでコピーしたりできる。
バッファ12は、テープ23に書き込むべきデータやテープ23から読み出されたデータを蓄積するメモリである。例えば、DRAMによって構成される。また、バッファ12は、複数のバッファセグメントからなり、各バッファセグメントが、テープ23に対する読み書きの単位であるデータセットを格納している。
チャネル13は、テープ23に書き込むべきデータをヘッド14に送ったり、テープ23から読み出されたデータをヘッド14から受け取ったりするために用いられる通信経路である。ヘッド14は、テープ23が長手方向に移動するとき、テープ23に対して情報を書き込んだり、テープ23から情報を読み出したりする。モータ15は、リール21、22を回転させる。なお、図2では、1つの矩形でモータ15を表しているが、モータ15としては、リール21、22の各々に1つずつ、合計2個設けるのが好ましい。
一方、コントローラ16は、テープドライブ10の全体を制御する。例えば、ホストI/F11で受け付けたコマンドに従って、データのテープ23への書込みやテープ23からの読出しを制御する。また、ヘッド位置制御システム17やモータドライバ18の制御も行う。ヘッド位置制御システム17は、所望のラップを追跡するシステムである。ここで、ラップとは、テープ23上の複数のトラックのグループである。ラップを切り換える必要が生じると、ヘッド14を電気的に切り換える必要も生じるので、このような切り換えの制御を、このヘッド位置制御システム17で行う。
モータドライバ18は、モータ15を駆動する。尚、上述したように、モータ15を2個使用する場合であれば、モータドライバ18も2個設けられる。CMI/F19は、例えば、RFリーダライタにより実現され、CM24への情報の書込みや、CM24からの情報の読出しを行う。
図3は、図1のホスト(サーバー)30、PC(端末)32、34の構成例を示すブロック図である。ホスト(サーバー)または端末は、バス330を介して相互に接続された演算処理装置(CPU)300、記憶手段310、及び各種I/F320を含む。
各種I/F320は、入力I/F、出力I/F、外部記憶I/F、外部通信I/F等を含む総称として用いられ、各I/Fが、それぞれ対応するタッチキー、タッチパネル、キーボード等の入力手段340、LCD等の表示手段350、無線あるいは有線の通信手段360、USB接続の半導体メモリやHDD等の外部記憶手段370等に接続する。記憶手段310は、RAM、ROM、Flash等の半導体メモリ、HDD等を含むことができる。
図4を参照しながら、本発明が実施されるLTFSにおけるパーティションおよびインデックスの構成について説明する。LTFSでは、LTO5からサポートされるようになったパーティションと呼ばれるテープ上の論理的な区切りを使用している。パーティションには、インデックスパーティションとデータパーティションの2つがある。データパーティションは、ファイルを構成するデータそのものと、ファイルの書き込み完了後に一定の条件が整ったときに書き込むインデックス情報とで構成されている。インデックスパーティションには、最新のインデックス情報が格納されていて、カートリッジがロードされたときに読み込まれて、メディア上のどの位置にファイルを構成するデータが存在するかが判別できるようになっている。
図4にデータパーティションの構成例を示す。図4は、1つのファイルAが、データ(data)と付随するインデックス(index)とから構成される。インデックス(index)の一部には、ファイルを構成する要素として、partition ID、start block、 byte offset、byte count、file offset等があり、これらをまとめてextentと呼んでいる。各要素の内容は下記に示す通りである。なお、以下の説明では、1つのファイルを構成するデータをデータあるいはデータ領域と呼ぶ。また、インデックス(index)に含まれるデータ領域の情報をインデックス情報またはメタ情報と呼ぶ。
(a)partition ID:データパーティション及び/又はインデックスパーティションに割り振られた論理的なIDである。複数のIDを持てることになっているが、現時点のLTFSではひとつのデータパーティションのみを使用している。従って、partition IDは常に一意である。
(b)start block:ファイルを構成するデータの先頭部分が含まれているブロック番号を示す。テープ上のデータの位置を示すのにブロックという概念を使用しており、1つのブロックのサイズはデフォルトで512KBに設定されている。
(c)byte offset:データの先頭位置がそのブロック上のどの位置から始まっているかを示すオフセットである。
(d)byte count:そのデータを構成するバイト数を示している。
(e)file offset:このextentを構成するデータ領域がファイル全体でどの位置にあるかを示す。
LTFSのインデックス情報では、ファイルをテープ上に書き込むと、ファイル全体がひとつのextentとして書き込まれる。これによって、次に読み出すときに一度のアクセスで効率的に読み出すことができる。ここでは、図4に例示されるように、簡略化のためひとつしか存在しないpartition ID は表記せず、start blockとbyte offsetから求められるファイルの先頭位置をX1、データを構成するバイト数L1で表現する。その結果、ファイルAのデータ領域は、インデックス情報として(X1、L1)と表すことができる。
図5を参照しながら本発明のテープ上へファイルを書き込むための方法のフローについて説明する。図5のフローは、図1のファイルシステム100において、より具体的には、ホスト(サーバー)30、PC(端末)32、34、及びテープドライブ10で実行されるソフトウェアにより実施される。なお、以下の説明では、主にLTFSでの実施形態について説明するが、本発明の方法はこの実施形態に限定されるものではない。
ステップS1において、テープドライブ10内のテープ上で保管すべき複数のファイル中のファイルの順番に従った、各々のファイルについてのパス情報、オフセット位置、及びサイズを含むメタ情報を取得する。LTSFのコピーツール(Copy Tool)を用いた場合は例えば以下のように実施される。
(1)コピー元の全てのファイルをコピーする順番を確定する。テープからテープ(tape to tape)の場合には、コピー元のファイルのテープ上の位置から順番を確定するが、HDDからテープ(disk to tape)の場合には、順番は特に問わない。
(2)全てのファイルを結合した際の個々のファイルのパス名、先頭からのオフセット位置、及びファイルのサイズを全てのファイルについて取得して、LTFSに通知する。この通知により、LTFSは本発明の方法によってファイルの書き込みが始まることを認識する。
(3)通知されるパス情報、オフセット位置、及びサイズを含むメタ情報は、例えば以下のように構成される。ここでは、図6に示される5つのファイルFile A〜Eをコピーする場合についての例を示している。

File A、0、150KB:ここでは、ファイルパス、オフセット位置、ファイルサイズの順に並べている。
File B、150KB、150KB:同上
abc/File C、300KB、150KB:ファイル名をコピーするファイルの存在するフォルダからの相対パスで指定している。
abc/File D、450KB、200KB:同上
temp/File E、650KB、180KB:同上
図5に戻って、次のステップS2において、テープドライブ10で保管すべき複数のファイルをテープドライブ10へ転送する。LTSFのコピーツール(Copy Tool)を用いた場合は、コピーする複数のファイルがコピー元から順に読み出されて、メモリ上のバッファにブロックサイズ単位で先頭から順に詰めて書き込まれ、それをブロックサイズ単位でコピー元からテープドライブ10へ転送される。
ステップS3において、テープドライブ10が、受信した複数のファイルからなる1つのファイル(結合ファイル)をテープ上に書き込む。LTSFのコピーツール(Copy Tool)を用いた場合は例えば以下のように実施される。
(4)ファイルシステムのAPIでファイルを書き込むためにオープンする。
(5)オープンしたときの識別子(ファイルデスクリプタやFILEポインタなど)を使用して、ファイルを構成するデータをブロック単位で書き込む。ファイルサイズが小さいときには、一度に結合ファイルを一つのブロックにまとめて書ける場合もある。この操作は、通常のファイル書き込みの場合と同様である。
(6)そのファイルの続きがある場合は、上記(5)に進む。
(7)次に書き込むファイルがある場合は、そのファイルに対して上記(5)及び(6)の操作を繰り返す。
(8)ファイルをクローズする。
ステップS4において、テープドライブ10が、ステップS3で書き込まれたテープ上の結合ファイルの開始位置およびファイルサイズを含む第1のインデックス情報をテープ上に書き込む。図7の(a)に、ステップS4において、図6に示される5つのファイルFile A〜Eが1つの結合ファイルとして書き込まれた後に、この第1のインデックス情報Index_1を書き込んだ場合の例を示している。図7の(a)の例では、第1のインデックス情報Index_1は、結合ファイルの開始位置(オフセット位置)として“0”、及びファイルサイズとして5つのファイルの合計値である”830KB”の情報を少なくとも含んでいる。第1のインデックス情報Index_1は、図に示すように、結合ファイルのデータ領域の後ろに書き込まれる。
ステップS5において、ステップS1で取得されたメタ情報と、ステップS3で得られる結合ファイルの開始位置とを用いて、テープ上の結合ファイル中の複数のファイルの各々についてのファイルパス、開始位置およびファイルサイズを含む第2のインデックス情報を作成する。第2のインデックス情報は、最初のファイル書き込みにより先頭ブロック番号が確定すると、テープドライブへの書き込みとは独立にステップS1で取得されたメタ情報から構築することができる。ステップS3のテープドライブへの書き込み中には、ホスト30側のシステムの負荷は余りかかっていない。そこで、ステップS3の書き込みと並行してインデックスを作成することができる。LTSFのコピーツール(Copy Tool)を用いた場合は例えば以下のように実施される。
(9)第2のインデックス情報の作成用に新規スレッドを作成する。元スレッドからの通知を受けられる状態にしておく。
(10)テープ上に書き込みを行う元スレッドでは、内部にキャッシュを持っていて、アプリケーションから書き込まれたデータがキャッシュに保存され、ある条件に到達したら、まとめてキャッシュからメディアへの書き込みを行う。先頭のブロックの書き込みを行って、そのブロック位置が確定した段階で、上記(9)で起動したインデックスの作成用スレッドに先頭ブロック番号を通知する。
(11)インデックス作成用スレッドが通知を受け取ったら、ステップS1で取得済みのメタ情報からディレクトリ情報の実体の作成(ここでは、実際のディレクトリ情報から独立している)を開始する。同時に、このディレクトリ情報からxml形式のインデックスファイルを作成する。作成したインデックスファイルは、メモリ310上、もしくは、ディスク370上に保管しておく。なお、この例では、スレッド間通信を行っているが、ステップS3で最初に書き込むファイルの先頭ブロックが確定した後にステップS5のスレッドを作成すれば、スレッド間通信をせずに実現することも可能である。
上記(11)のxml形式のインデックスファイル(第2のインデックス情報)の作成は、ステップS1で通知されたメタ情報とステップS3での結合ファイルの第1のインデックス情報を元に、新たなインデックスとして作成される。例えば、ステップS3で作成したファイルがテープ上のxブロックのオフセットyから書き込まれているとする。そして、ステップS1でメタ情報として通知された、ファイルのオフセットaからbバイト分がファイルAであるとする。この場合、ファイルA は、ブロックx+(y+a)/kの(y+a)%kバイト目から始まる、bバイトのファイルになる。ここで、kはLTFSがメディアに書き込む際のブロックサイズとする。また、%は剰余を表す。
具体的には例えば以下のようになる。
ブロックサイズが512KBであるときに、ブロック10のオフセット400KBからステップ3においてファイルが書かれていたとする。この時、図6に例示したFile Dがオフセット450KBから書かれた200KBのファイルだとする。このFile Dは、ブロック11のオフセット338KBから始まる200KBのファイルとして、すなわち、ブロック12のオフセット26KBまでのデータでファイルが構成されているとして、インデックスに記録される。
次のステップS6において、テープドライブ10が、ステップS5で作成された第2のインデックス情報をテープ上に書き込む。図7の(b)に、ステップS5において、テープ上に第1のインデックス情報Index_1を書き込んだ後に、第2のインデックス情報Index_2を書き込んだ場合の例を示している。第2のインデックス情報Index_2は、図に示すように、第1のインデックス情報Index_1の後ろに書き込まれる。なお、第1のインデックス情報を第2のインデックス情報で上書きしてもよい。
本発明の実施形態について、図を参照しながら説明をした。しかし、本発明はこれらの実施形態に限られるものではない。さらに、本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正、変形を加えた態様で実施できるものである。
10 テープドライブ
11 ホストI/F
12 バッファ
13 チャネル
14 ヘッド
15 モータ
16 コントローラ
17 ヘッド位置制御システム
18 モータドライバ
19 カートリッジメモリI/F
20 テープカートリッジ
21、22 リール
23 テープ
24 カートリッジメモリ(CM)
30 サーバー(ホスト)
32、34 PC(端末)
36 ネットワーク
100 ファイルシステム(LTFS)

Claims (12)

  1. ファイルシステムにおいてテープ上へファイルを書き込むための方法であって、
    複数のファイルを1つの結合ファイルとなるように連続してテープ上に書き込むステップと、
    前記テープ上の前記結合ファイルの開始位置およびサイズを含む第1のインデックス情報を前記テープ上に書き込むステップと、
    前記テープ上の前記結合ファイル中の前記複数のファイルの各々についての開始位置およびサイズを含む第2のインデックス情報を前記テープ上に書き込むステップと、を含む方法。
  2. 前記結合ファイルに含まれる前記複数のファイルの各々についてのパス名、オフセット位置、及びサイズを含むメタ情報を取得するステップと、
    前記テープ上の前記結合ファイルの開始位置と前記メタ情報とを用いて前記第2のインデックス情報を作成するステップと、をさらに含む請求項1に記載の方法。
  3. 前記結合ファイル、前記第1のインデックス情報、及び前記第2のインデックス情報は、いずれも前記テープのデータパーティションに書きこまれ、
    前記第1のインデックス情報は前記結合ファイルの後ろに書き込まれ、前記第2のインデックス情報は前記第1のインデックス情報の後ろに書き込まれる、請求項1または2に記載の方法。
  4. テープドライブにおいてテープ上へファイルを書き込むための方法であって、
    複数のファイルを1つの結合ファイルとなるように連続してテープ上に書き込むステップと、
    前記テープ上の前記結合ファイルの開始位置およびサイズを含む第1のインデックス情報を前記テープ上に書き込むステップと、
    前記テープ上の前記結合ファイル中の前記複数のファイルの各々についての開始位置およびサイズを含む第2のインデックス情報を前記テープ上に書き込むステップと、を含む方法。
  5. 前記結合ファイルに含まれる前記複数のファイルの各々についてのパス名、オフセット位置、及びサイズを含むメタ情報を取得するステップをさらに含み、
    前記第2のインデックス情報は、前記テープ上の前記結合ファイルの開始位置と前記メタ情報とを用いて作成される、請求項4に記載の方法。
  6. 前記結合ファイル、前記第1のインデックス情報、及び前記第2のインデックス情報は、いずれも前記テープのデータパーティションに書きこまれ、
    前記第1のインデックス情報は前記結合ファイルの後ろに書き込まれ、前記第2のインデックス情報は前記第1のインデックス情報の後ろに書き込まれる、請求項4または5に記載の方法。
  7. コンピュータと、当該コンピュータと通信可能に接続された少なくとも1つのテープドライブとを利用するファイルシステムにおいてファイルの保管を行う方法であって、
    前記コンピュータが、前記テープドライブで保管すべき複数のファイル中のファイルの順番に従った、各々のファイルについてのパス情報、オフセット位置、及びサイズを含むメタ情報を取得するステップと
    前記コンピュータが、前記複数のファイルを含む1つの結合ファイルとしてテープドライブへ転送するステップと、
    前記テープドライブが、受信した前記1つの結合ファイルをテープ上に書き込むステップと、
    前記テープドライブが、前記テープ上の前記結合ファイルの開始位置およびサイズを含む第1のインデックス情報を前記テープ上に書き込むステップと、
    前記コンピュータが、前記メタ情報と前記テープ上の前記結合ファイルの開始位置とを用いて、前記テープ上の前記結合ファイル中の前記複数のファイルの各々についての開始位置およびサイズを含む第2のインデックス情報を作成するステップと、
    前記テープドライブが、前記コンピュータから取得した前記第2のインデックス情報を前記テープ上に書き込むステップと、を含む方法。
  8. 前記メタ情報を取得するステップは、前記コンピュータが、前記テープドライブで保管すべき前記複数のファイル中のファイルの順番を確定するステップを含む、請求項7に記載の方法。
  9. 前記結合ファイル、前記第1のインデックス情報、及び前記第2のインデックス情報は、いずれも前記テープのデータパーティションに書きこまれ、
    前記第1のインデックス情報は前記結合ファイルのデータ領域の後ろに書き込まれ、前記第2のインデックス情報は前記第1のインデックス情報の後ろに書き込まれる、請求項7または8に記載の方法。
  10. ファイルシステムにおいて利用可能なテープドライブにおいて読み書き可能なテープ上のデータ構造であって、
    前記テープのデータパーティションにおいて記憶された、連続した複数のファイルを含む結合ファイル領域と、
    前記結合ファイル領域の後ろに記憶された、前記結合ファイルの開始位置およびサイズを含む第1のインデックス情報領域と、
    前記第1のインデックス情報領域の後ろに記憶された、前記結合ファイル中の前記複数のファイルの各々についてのパス名、開始位置およびサイズを含む第2のインデックス情報領域と、を含むデータ構造。
  11. 請求項1〜3のいずれか1項の各ステップを実行するためのコンピュータ・プログラム。
  12. 請求項4〜6のいずれか1項の各ステップを実行するデープドライブ用の制御プログラム。
JP2014124161A 2014-06-17 2014-06-17 テープ上へのファイル書き込み方法 Expired - Fee Related JP6391061B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014124161A JP6391061B2 (ja) 2014-06-17 2014-06-17 テープ上へのファイル書き込み方法
US14/702,191 US10025507B2 (en) 2014-06-17 2015-05-01 Method of writing file onto tape

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014124161A JP6391061B2 (ja) 2014-06-17 2014-06-17 テープ上へのファイル書き込み方法

Publications (2)

Publication Number Publication Date
JP2016004413A true JP2016004413A (ja) 2016-01-12
JP6391061B2 JP6391061B2 (ja) 2018-09-19

Family

ID=54836171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014124161A Expired - Fee Related JP6391061B2 (ja) 2014-06-17 2014-06-17 テープ上へのファイル書き込み方法

Country Status (2)

Country Link
US (1) US10025507B2 (ja)
JP (1) JP6391061B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019181949A1 (ja) 2018-03-22 2019-09-26 富士フイルム株式会社 記録装置、読取装置、記録方法、記録プログラム、読取方法、読取プログラム、及び磁気テープ
WO2020183899A1 (ja) 2019-03-13 2020-09-17 富士フイルム株式会社 記録装置、読取装置、記録方法、記録プログラム、読取方法、読取プログラム、および磁気テープ
JPWO2021054243A1 (ja) * 2019-09-17 2021-03-25
US11750008B2 (en) 2017-08-02 2023-09-05 Doubleday Acquisitions Llc Active container with data bridging

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6052812B2 (ja) * 2014-07-11 2016-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation テープ上のファイルの管理、書き込み、及び読み出し方法
US10120612B2 (en) * 2017-01-10 2018-11-06 International Business Machines Corporation Apparatus, method, and program product for tape copying
US11238021B2 (en) * 2018-12-18 2022-02-01 International Business Machines Corporation Creating a search index within a data storage library

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010020845A (ja) * 2008-07-10 2010-01-28 Canon Inc 記録媒体初期化方法及び記録媒体初期化装置
JP2010267352A (ja) * 2009-05-18 2010-11-25 Panasonic Corp データテープ制御装置
US9063666B2 (en) * 2010-03-25 2015-06-23 International Business Machines Corporation File index, metadata storage, and file system management for magnetic tape

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06191626A (ja) 1992-12-28 1994-07-12 Ntn Corp パーツフィーダ
JP2003015941A (ja) 2001-06-29 2003-01-17 Ricoh Co Ltd 文書のデータ構造、記憶媒体及び情報処理装置
JP4915981B2 (ja) 2005-07-14 2012-04-11 エスペック株式会社 熱処理装置
JP4888743B2 (ja) 2009-07-09 2012-02-29 アイシン精機株式会社 静電容量検出装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010020845A (ja) * 2008-07-10 2010-01-28 Canon Inc 記録媒体初期化方法及び記録媒体初期化装置
JP2010267352A (ja) * 2009-05-18 2010-11-25 Panasonic Corp データテープ制御装置
US9063666B2 (en) * 2010-03-25 2015-06-23 International Business Machines Corporation File index, metadata storage, and file system management for magnetic tape

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11750008B2 (en) 2017-08-02 2023-09-05 Doubleday Acquisitions Llc Active container with data bridging
WO2019181949A1 (ja) 2018-03-22 2019-09-26 富士フイルム株式会社 記録装置、読取装置、記録方法、記録プログラム、読取方法、読取プログラム、及び磁気テープ
US11227635B2 (en) 2018-03-22 2022-01-18 Fujifilm Corporation Recording device, readout device, recording method, recording program, readout method, readout program, and magnetic tape
WO2020183899A1 (ja) 2019-03-13 2020-09-17 富士フイルム株式会社 記録装置、読取装置、記録方法、記録プログラム、読取方法、読取プログラム、および磁気テープ
US11495247B2 (en) 2019-03-13 2022-11-08 Fujifilm Corporation Recording device, reading device, recording method, recording program, reading method, reading program, and magnetic tape
JPWO2021054243A1 (ja) * 2019-09-17 2021-03-25

Also Published As

Publication number Publication date
US10025507B2 (en) 2018-07-17
US20150363119A1 (en) 2015-12-17
JP6391061B2 (ja) 2018-09-19

Similar Documents

Publication Publication Date Title
JP6391061B2 (ja) テープ上へのファイル書き込み方法
JP5954751B2 (ja) テープ上のデータをロールバックする方法及びファイルシステム
JP5782364B2 (ja) 複数のファイルを列挙した情報を生成する装置及び方法
JP6075571B2 (ja) 階層型ストレージ・システムでのファイルの移動方法
US9852756B2 (en) Method of managing, writing, and reading file on tape
WO2019181949A1 (ja) 記録装置、読取装置、記録方法、記録プログラム、読取方法、読取プログラム、及び磁気テープ
JP2016099949A (ja) メタ情報書込方法、メタ情報読出方法、ファイル管理システム、コンピュータ・システム、プログラムおよびデータ構造
JP2010152603A (ja) 記録媒体に記録されたデータの移行のための装置及び方法
US8009541B2 (en) Device, method, and computer program product for data migration
JP5636115B2 (ja) テープドライブでのデータ改ざん検知方法、ファイルシステム
JP2013161185A (ja) 磁気テープ装置及びその制御方法
JP2006065999A (ja) 磁気テープ制御装置、方法及びプログラム
US10656853B2 (en) Tape having multiple data areas
JP2015088199A (ja) テープメディア上に複数のアクセスパターンを持つデータの書き込み、及び、読み出し
US8656094B2 (en) Locating host data records on a physical stacked volume
JP2005202942A (ja) 情報記録媒体、データ処理装置及びデータ処理方法
US20160026389A1 (en) Tape drive buffer utilization
JP6928249B2 (ja) ストレージ制御装置およびプログラム
US20170115926A1 (en) Information processing device, information processing method and program
JP2004078445A (ja) ファイルシステム、ファイル管理方法およびファイル管理装置
JP2011081744A (ja) 階層記憶システム、方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180716

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180726

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20180726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180814

R150 Certificate of patent or registration of utility model

Ref document number: 6391061

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees