以下の説明は、本発明の一般的原理を説明する目的で行われるものであり、本明細書において請求される本発明の概念を限定するように意図されていない。さらに、本明細書に記載された特定の特徴を、さまざまな可能な組み合わせおよび並べ替えの各々において、その他の説明された特徴と組み合わせて使用することができる。
本明細書では、特に具体的に定義されない限り、すべての用語には、本明細書から示される意味、および当業者によって理解される意味、または辞書、論文などにおいて定義された意味、あるいはその両方を含む、最も広い可能な解釈が与えられる。
本明細書および添付の特許請求の範囲において使用されるとき、単数形「ある(a)」、「1つの(an)」および「その(the)」が、特に規定されない限り、複数の指示対象を含むということにも注意しなければならない。
以下の説明は、複数の磁気ストレージ・システム、およびその動作または構成部品あるいはその両方を開示する。本明細書に記載された本発明の実施形態のうちの種々の実施形態は、以下さらに詳細に説明されているように、レコードに到達することまたはレコード自体を読み取ることあるいはその両方の最も有利な方法を決定することによって、読み取り要求の性能を改善することができ、それによって、現在の(例えば、特定の)システム・パラメータに基づくシステム性能を改善し、読み取りアクセス時間を短縮し、テープ・ドライブ上の摩耗を低減する。
本発明の1つの一般的な実施形態では、コンピュータ実装方法は、磁気テープに格納されたデータに対する読み取り要求を受信することであって、このデータが複数の部分を含んでいる、受信することと、要求されたデータの部分のコピーがキャッシュ内にあるかどうかを判定することと、磁気テープ上の、キャッシュ内にないことが決定された要求されたデータの部分にアクセスするようにテープ・ドライブに指示することと、キャッシュ内にない要求されたデータの部分の各々に対して、位置特定コマンドを実行すること、または、読み取りコマンドを複数回実行することのいずれが、より短い時間でキャッシュ内にない要求されたデータの部分を取り出すかを判定することと、より短い時間でキャッシュ内にない要求されたデータの部分を取り出すということが決定されたコマンドを発行することと、キャッシュ内にない要求されたデータの部分を、キャッシュ内にある要求されたデータの部分と組み合わせることと、読み取り要求を満たすこととを含む。
本発明の別の一般的な実施形態では、コンピュータ実装方法は、磁気テープに格納されたデータに対する読み取り要求を受信することであって、このデータが複数の部分を含んでいる、受信することと、磁気テープ上の要求されたデータにアクセスするようにテープ・ドライブに指示することと、要求されたデータの部分ごとに、要求されたデータの部分を磁気テープから読み取るようにテープ・ドライブに指示すること、要求されたデータの部分のコピーがキャッシュ内にあるかどうかを判定すること、要求されたデータの部分のコピーがキャッシュ内にあるということの決定に応答して、磁気テープから読み取られた要求されたデータの部分を破棄するようにテープ・ドライブに指示すること、および要求されたデータの部分のコピーがキャッシュ内にないということの決定に応答して、磁気テープから読み取られた要求されたデータの部分をテープ・ドライブから受信することの反復プロセスを実行することとを含む。
本発明の別の一般的な実施形態では、コンピュータ・プログラム製品は、プログラム命令が具現化されているコンピュータ可読記憶媒体を含む。このコンピュータ可読記憶媒体は、それ自体が一過性の信号ではない。さらに、これらのプログラム命令は、プロセッサに方法を実行させるために、プロセッサによって読み取り可能または実行可能あるいはその両方であり、この方法は、磁気テープに格納されたデータに対する読み取り要求をプロセッサによって受信することであって、このデータが複数の部分を含んでいる、受信することと、磁気テープ上の要求されたデータにアクセスするように、プロセッサによってテープ・ドライブに指示することと、要求されたデータの部分ごとに、要求されたデータの部分を磁気テープから読み取るようにテープ・ドライブに指示すること、要求されたデータの部分のコピーがキャッシュ内にあるかどうかを判定すること、要求されたデータの部分のコピーがキャッシュ内にあるということの決定に応答して、磁気テープから読み取られた要求されたデータの部分を破棄するようにテープ・ドライブに指示すること、および要求されたデータの部分のコピーがキャッシュ内にないということの決定に応答して、磁気テープから読み取られた要求されたデータの部分をテープ・ドライブから受信することの反復プロセスをプロセッサによって実行することとを含む。
本発明のさらに別の一般的な実施形態では、コンピュータ実装方法は、磁気テープに格納されたデータに対する読み取り要求を受信することと、磁気テープを第2の位置から第1の位置に進めるために位置特定動作を実行することに関連する第1の時間が、磁気テープを第2の位置から第1の位置に進めるために複数の読み取り動作を実行することに関連する第2の時間より少ないかどうかを判定することと、第1の時間が第2の時間より少ないということの決定に応答して、位置特定動作を実行するようにテープ・ドライブに指示することと、第1の時間が第2の時間より少なくないということの決定に応答して、複数の読み取り動作を実行するようにテープ・ドライブに指示することと、複数の読み取り動作を実行している間に磁気テープから読み取られたデータを破棄するようにテープ・ドライブに指示することとを含む。本説明によれば、「第2の位置」が、磁気テープに対する相対的な磁気テープ・ヘッドの現在の位置に対応するよう意図されており、「第1の位置」が、要求されたデータの先頭に対応するよう意図されているということに、注意するべきである。
本発明の別の一般的な実施形態では、コンピュータ・プログラム製品は、プログラム命令が具現化されているコンピュータ可読記憶媒体を含む。このコンピュータ可読記憶媒体は、それ自体が一過性の信号ではない。さらに、これらのプログラム命令は、プロセッサに方法を実行させるために、プロセッサによって読み取り可能または実行可能あるいはその両方であり、この方法は、磁気テープに格納されたデータに対する読み取り要求をプロセッサによって受信することと、磁気テープを第2の位置から第1の位置に進めるために位置特定動作を実行することに関連する第1の時間が、磁気テープを第2の位置から第1の位置に進めるために複数の読み取り動作を実行することに関連する第2の時間より少ないかどうかをプロセッサによって判定することと、第1の時間が第2の時間より少ないということの決定に応答して、位置特定動作を実行するようにプロセッサによってテープ・ドライブに指示することと、第1の時間が第2の時間より少なくないということの決定に応答して、複数の読み取り動作を実行するようにプロセッサによってテープ・ドライブに指示することと、複数の読み取り動作を実行している間に磁気テープから読み取られたデータを破棄するようにプロセッサによってテープ・ドライブに指示することとを含む。本説明によれば、「第2の位置」が、磁気テープに対する相対的な磁気テープ・ヘッドの現在の位置に対応するよう意図されており、一方、「第1の位置」が、要求されたデータの先頭に対応するよう意図されているということに、やはり注意するべきである。
図1は、本発明との関連において採用され得る、テープベースのデータ・ストレージ・システムの簡略化されたテープ・ドライブ100を示している。図1ではテープ・ドライブの1つの特定の実装が示されているが、本明細書に記載された本発明の実施形態が、任意の種類のテープ・ドライブ・システムとの関連において実装されてよいということに、注意するべきである。
図に示されているように、テープ122を支えるために、テープ供給カートリッジ120および巻き取りリール121が提供される。リールのうちの1つまたは複数は、取り外し可能なカートリッジの一部を形成してよく、必ずしもシステム100の一部で有る必要はない。図1に示されているようなテープ・ドライブは、テープ122を任意の種類のテープ・ヘッド126の上で移動するためテープ供給カートリッジ120および巻き取りリール121を駆動するための駆動モータをさらに含んでよい。そのようなヘッドは、リーダ、ライタ、またはその両方のアレイを含んでよい。
ガイド125は、テープ・ヘッド126を横切ってテープ122を誘導する。そのようなテープ・ヘッド126は、次いで、ケーブル130を介してコントローラ128に結合される。コントローラ128は、ドライブ100の任意のサブシステムを制御するためのプロセッサまたは任意のロジックあるいはその両方であるか、またはこれらを含んでよい。例えば、コントローラ128は、典型的には、データ書き込み、データ読み取りなどに従って、サーボなどのヘッド機能を制御する。コントローラ128は、少なくとも1つのサーボ・チャネルおよび少なくとも1つのデータ・チャネルを含んでよく、これらのチャネルの各々は、テープ122への書き込みまたはテープ122からの読み取りあるいはその両方が行われる情報を処理するか、または格納するか、あるいはその両方を行うように構成されたデータ・フロー処理ロジックを含む。コントローラ128は、従来技術において知られたロジック、および本明細書で開示された任意のロジックの下で動作してよく、したがって、種々の実施形態では、本明細書に含まれているテープ・ドライブの説明のいずれかに関して、プロセッサと見なされてよい。コントローラ128は、任意の既知の種類のメモリ136に結合されてよく、メモリ136は、コントローラ128によって実行可能な命令を格納してもよい。さらに、コントローラ128は、本明細書において提示された方法の一部または全部を実行または制御するように、構成されるか、またはプログラム可能であるか、あるいはその両方であってよい。したがって、コントローラ128は、1つまたは複数のチップ、モジュールまたはブロック、あるいはその組み合わせにプログラムされたロジック、1つまたは複数のプロセッサで使用可能な、ソフトウェア、ファームウェア、その他の命令、あるいはその組み合わせなど、およびこれらの組み合わせとして、さまざまな動作を実行するように構成されると考えられてよい。
ケーブル130は、テープ122上に記録されるデータをヘッド126に送信するため、および、ヘッド126によってテープ122から読み取られたデータを受信するために、読み取り/書き込み回路を含んでよい。アクチュエータ132は、テープ122に対する相対的なヘッド126の位置を制御する。
インターフェイス134は、当業者によってすべて理解されるであろうように、テープ・ドライブ100とホスト(内部または外部)の間でデータを送受信する通信のため、ならびにテープ・ドライブ100の動作を制御するため、およびテープ・ドライブ100の状態をホストに伝達するために、提供されてもよい。
図2は、本発明の一実施形態に従って、例示的なテープ・カートリッジ150を示している。そのようなテープ・カートリッジ150は、図1に示されているシステムなどのシステムと共に使用されてよい。図に示されているように、テープ・カートリッジ150は、筐体152と、筐体152内のテープ122と、筐体152に結合された不揮発性メモリ156とを含んでいる。一部の方法では、不揮発性メモリ156は、図2に示されているように、筐体152内に組み込まれてよい。その他の方法では、不揮発性メモリ156は、筐体152を変更することなく、筐体152の内側または外側に取り付けられてよい。例えば、不揮発性メモリは、粘着ラベル154内に組み込まれてよい。不揮発性メモリ156は、フラッシュ・メモリ・デバイス、読み取り専用メモリ(ROM:read-only memory)デバイスなどであってよく、テープ・カートリッジ150の内側または外側に組み込まれるか、または結合されてよい。不揮発性メモリは、テープ・ドライブおよびテープ・オペレーティング・ソフトウェア(ドライバ・ソフトウェア)、または別のデバイス、あるいはその組み合わせによってアクセス可能である。
例として、図3は、本発明との関連において実装され得る、フラットラップ型、双方向2モジュールの磁気テープ・ヘッド200の側面図を示している。図に示されているように、ヘッドは、基部202の対を含んでおり、各基部202は、モジュール204を備えており、互いに対して小角度αで固定されている。これらの基部は、一緒に接着結合された「U型桁」であってよい。各モジュール204は、基板204Aおよびクロージャ204Bを、一般に「ギャップ」と呼ばれる薄膜部分と共に含んでおり、このギャップ内に、リーダまたはライタあるいはその両方206が形成される。使用中に、図に示された方法で、リーダおよびライタを使用してテープ208上のデータを読み取るため、および書き込むために、テープ208が、媒体(テープ)支え面209に沿ってモジュール204の上を移動される。平坦な媒体支持面209の上に移動して出るテープ208のエッジでの巻き角度θは、通常、約0.1度〜約3度の範囲内である。
基板204Aは、通常、セラミックなどの耐摩耗材料で構成される。クロージャ204Bは、基板204Aと同じセラミックまたは類似するセラミックで作られていてよい。
リーダおよびライタは、ピギーバック構成または融合構成で配置されてよい。ピギーバック構成は、(磁気的にシールドされた)リーダ変換器(例えば、磁気抵抗リーダなど)の上(または下)に(磁気的に誘導性の)ライタ変換器を備え、ライタの磁極およびリーダのシールドが、通常は分離される。融合構成は、1つのライタの磁極と同じ物理的層内に1つのリーダのシールドを備える(したがって、「融合」されている)。リーダおよびライタは、交互配置された構成で配置されてもよい。代替として、チャネルの各アレイは、リーダのみまたはライタのみであってよい。これらのアレイのいずれかは、媒体上のサーボ・データを読み取るために、1つまたは複数のサーボ・トラック・リーダを含んでよい。
図4は、図3の線2Bから取られたモジュール204のうちの1つのテープ支え面209を示している。代表的なテープ208が、破線で示されている。モジュール204は、ヘッドがデータ・バンド間を移動するときに、テープを支持できるほど十分に長いのが好ましい。
この例では、テープ208は、4本〜32本のデータ・バンドを含み、例えば図4に示されているように、2分の1インチ幅のテープ208上に、16本のデータ・バンドおよび17本のサーボ・トラック210を含む。データ・バンドは、サーボ・トラック210間で定義される。各データ・バンドは、複数のデータ・トラック(例えば、1024本のデータ・トラック(図示されていない))を含んでよい。読み取り/書き込み動作中に、リーダまたはライタあるいはその両方206は、データ・バンドのうちの1つに含まれる特定のトラック位置に配置される。外側のリーダ(サーボ・リーダと呼ばれることがある)が、サーボ・トラック210を読み取る。読み取り/書き込み動作中に、リーダまたはライタあるいはその両方206が特定のトラックのセットに揃えられた状態を保つために、次いで、サーボ信号が使用される。
図5は、図4の円2C内におけるモジュール204上のギャップ218内に形成された、複数のリーダまたはライタあるいはその両方206を示している。図に示されているように、リーダおよびライタのアレイ206は、例えば、16個のライタ214、16個のリーダ216、および2個のサーボ・リーダ212を含んでいるが、これらの素子の数は変更され得る。その例としては、1つのアレイにつき、8個、16個、32個、40個、および64個のアクティブなリーダまたはライタあるいはその両方206が挙げられ、代替として、交互配置された設計は、17個、25個、33個などの奇数個のリーダまたはライタを含む。1つの例は、1つのアレイにつき32個のリーダまたは1つのアレイにつき32個のライタあるいはその両方を含み、変換素子の実際の数は、さらに多い(例えば33個、34個など)ことがある。これによって、テープの移動を遅くすることができ、それによって、速度に起因する追跡の困難および機械的困難を軽減するか、またはテープに対して書き込むもしくは読み取るためにより少ない「巻き」を実行するか、あるいはその両方を行うことができる。図5に示されているように、リーダおよびライタはピギーバック構成で配置されてよいが、リーダ216およびライタ214は、交互配置された構成で配置されてもよい。代替として、リーダまたはライタあるいはその両方206の各アレイは、リーダのみまたはライタのみであってよく、各アレイは、1つまたは複数のサーボ・リーダ212を含んでよい。図3および図4、図5を一緒に考慮することによって示されているように、各モジュール204は、双方向の読み取りおよび書き込み、記録時読出機能、下位互換性などのために、リーダまたはライタあるいはその両方206の補完的セットを含んでよい。
図6は、本発明の一実施形態に従って、磁気テープ・ヘッド200の補完的モジュールの部分的なテープ支え面の図を示している。ここで、各モジュールは、ピギーバック構成で共通基板204A上に形成された複数の読み取り/書き込み(R/W:read/write)対および任意選択的な電気的絶縁層236を含んでいる。書き込み変換器214によって例示されているライタ、および読み取り変換器216によって例示されているリーダは、それを横切るテープ媒体の意図された移動方向に対して平行に揃えられ、R/W対222によって例示されているR/W対を形成する。テープの意図された移動方向は、本明細書ではテープの移動方向と呼ばれることがあり、これらの用語が交換可能なように使用されてよいということに注意されたい。そのようなテープの移動方向は、例えば、ガイドを調べること、基準点に対する相対的な実際のテープの移動方向を観察することなどによって、システムの設計から推測されてよい。さらに、双方向の読み取りまたは書き込みあるいはその両方のために動作可能なシステムでは、両方向のテープの移動方向は、通常、平行であり、したがって、両方向は互いに等価であると見なされてよい。
8個、16個、32個の対などのいくつかのR/W対222が存在してよい。図に示されているR/W対222は、それを横切るテープの移動方向と概ね直角な方向に、直線的に揃えられる。しかしながら、これらの対は、対角線上などに揃えられてもよい。サーボ・リーダ212は、R/W対のアレイの外側に配置され、その機能は周知である。
通常、磁気テープ媒体は、矢印220によって示されているように、順方向または逆方向のいずれかに移動する。磁気テープ媒体およびヘッド・アセンブリ200は、従来技術においてよく知られている方法で、変換関係(transducing relationship)において動作する。ピギーバックされた磁気抵抗(MR:magnetoresistive)ヘッド・アセンブリ200は、概ね同一の構成の2つの薄膜モジュール224および226を含んでいる。
モジュール224および226は、そのクロージャ204B(部分的に示されている)間に存在する空間を含めて一緒に結合され、単一の物理的ユニットを形成し、先行のモジュールのライタ、および、それと相対的なテープの移動方向と平行に、先行のモジュールのライタに揃えられた後続のモジュールのリーダを有効化することによって、記録時読出機能を提供する。ピギーバック・ヘッド200のモジュール224、226が構築されるときに、例えばAlTiCの導電性基板204A(部分的に示されている)の上に作成されたギャップ218内に各層が形成され、R/W対222に関する各層は、一般に、絶縁層236、通常はNiFe(−)、コバルト・ジルコニウム・タンタル(CZT:cobalt zirconium tantalum)またはAl−Fe−Si(センダスト)などの鉄合金の第1のシールド232、磁気媒体上のデータ・トラックを感知するためのセンサ234、通常は鉄ニッケル系合金(例えば、パーマロイとも呼ばれる、約80/20at%のNiFe)の第2のシールド238、第1および第2のライタの磁極先端228、230、ならびにコイル(図示されていない)という順序になる。センサは、MR、GMR、AMR、トンネル磁気抵抗(TMR:tunneling magnetoresistance)などに基づくセンサを含む、任意の既知の種類であってよい。
第1および第2のライタの磁極228、230は、約45/55のNiFeなどの高磁気モーメント材料から製造されてよい。これらの材料が単に例として提供されており、他の材料が使用されてよいということに注意されたい。シールドまたは磁極先端あるいはその両方の間の絶縁体およびセンサを囲む絶縁層などの追加の層が存在してよい。絶縁用の材料は、アルミナおよびその他の酸化物、絶縁性ポリマーなどを含む。
テープ・ヘッド126の構成は、複数の(好ましくは、3つ以上の)モジュールを含んでよい。書き込み−読み取り−書き込み(W−R−W:write-read-write)ヘッドでは、書き込むための外側のモジュールが、読み取るための1つまたは複数の内側のモジュールの側面に位置する。W−R−W構成を示している図7を参照すると、外側のモジュール252、256が、それぞれライタの1つまたは複数のアレイ260を含んでいる。図7の内側のモジュール254は、同様の構成で、リーダの1つまたは複数のアレイ258を含んでいる。複数モジュールのヘッドの変形は、R−W−Rヘッド(図8)、R−R−Wヘッド、W−W−Rヘッドなどを含む。さらに他の変形では、モジュールのうちの1つまたは複数が、変換器の読み取り/書き込み対を含んでよい。さらに、4つ以上のモジュールが存在してよい。さらに他の方法では、2つの外側のモジュールが、例えばW−R−R−W、R−W−W−Rなどの配置で、2つ以上の内側のモジュールの側面に位置してよい。簡単にするために、本明細書では、W−R−Wヘッドが、本発明の実施形態の例示に主に使用される。本明細書における手法を知らされた当業者は、本発明の並べ替えがW−R−W構成以外の構成に当てはまるということを、理解するであろう。
図9は、本発明の一実施形態に従って、平坦であるか、または起伏があるなどであってよいテープ支え面308、310、312をそれぞれ含んでいる第1、第2、第3のモジュール302、304、306を含む、磁気ヘッド126を示している。「テープ支え面」という用語が、テープ315に面している表面がテープ支え面と物理的に接触していることを意味しているように見えるが、必ずしもそうではないということに注意されたい。むしろ、テープの一部のみが、常にまたは断続的にテープ支え面と接触し、テープの他の部分が、空気の層の上で、テープ支え面の上に乗って(または「浮かんで」)いてよい(空気支え(air bearing)と呼ばれることがある)。第1のモジュール302は、示された方向に移動するテープに関する3モジュールの設計において、テープが遭遇する最初のモジュールであるため、「先行の」モジュールと呼ばれる。第3のモジュール306は、「後続の」モジュールと呼ばれる。後続のモジュールは、3モジュールの設計において、中央のモジュールの後に続く、テープが遭遇する最後のモジュールである。先行のモジュール302および後続のモジュール306は、外側のモジュールと総称される。外側のモジュール302、306が、テープ315の移動方向に応じて、先行のモジュールとして交互に入れ替わるということにも注意されたい。
本発明の一実施形態では、第1、第2、および第3のモジュール302、304、306のテープ支え面308、310、312が、ほぼ平行な平面(平行な平面およびほぼ平行な平面(例えば、図10のような平行と正接の間の平面)を含むよう意図されている)上にあり、第2のモジュール304のテープ支え面310が、第1および第3のモジュール302、306のテープ支え面308、312の上にある。以下に説明されているように、このようにすることには、第2のモジュール304のテープ支え面310に対して相対的なテープの望ましい巻き角度α2を作成するという効果がある。
テープ支え面308、310、312が、平行またはほぼ平行であるが、オフセットされた平面に沿って存在する場合、直観的には、テープは、先行のモジュール302のテープ支え面308から剥がれるはずである。しかしながら、先行のモジュール302の剥がれているエッジ318によって作られた真空が、テープを先行のモジュール302のテープ支え面308に接着した状態に保つのに十分であるということが、実験によって分かっている。先行のモジュール302の後続のエッジ320(テープが先行のモジュール302から離れる端部)は、第2のモジュール304のテープ支え面310の上の巻き角度α2を定義する近似的な基準点になる。テープは、先行のモジュール302の後続のエッジ320に近づくまで、テープ支え面に近接した状態を維持する。したがって、読み取りまたは書き込みあるいはその両方の素子322は、外側のモジュール302、306の後続のエッジの近くに位置してよい。これらの実施形態は、書き込み−読み取り−書き込みの適用に特に適している。
この恩恵は、外側のモジュール302、306が第2のモジュール304からずれて決定された位置に固定されるため、モジュール302、304、306が一緒に結合されるか、またはその他の方法でヘッドに固定された場合に、内側の巻き角度α2が固定されるということである。内側の巻き角度α2は、およそtan−1(δ/W)であり、ここで、δは、テープ支え面308、310の平面間の高低差であり、Wは、テープ支え面308、310の対向する端部間の幅である。例示的な内側の巻き角度α2は、約0.3°〜約1.1°の範囲内であるが、設計によって要求される任意の角度であることができる。
テープを受け取るモジュール304の側面(先行のエッジ)の上の内側の巻き角度α2は、テープ315が後続のモジュール306の上に乗るため、後続のエッジの上の内側の巻き角度α3より、有利に大きくなる。この差は通常、α3が小さいほど、従来、出る有効な巻き角度がより急になっていたということに反対する傾向があるため、有益である。
先行のモジュール302の後続のエッジ320で負の巻き角度を実現するように、外側のモジュール302、306のテープ支え面308、312が配置されるということに注意されたい。これは通常、テープ内のヘッドから剥がれる位置で生じるバール領域(crowbar region)の位置が適切に考慮されるという条件で、後続のエッジ320との接触に起因する摩擦を減らすのに役立つということにおいて、有益である。この負の巻き角度は、先行のモジュール302上のフラッタおよび素子に対するこすり傷も減らす。さらに、後続のモジュール306で、テープ315がテープ支え面312の上に浮くため、テープがこの方向に移動しているときに、事実上、素子に対する摩耗がない。特に、テープ315は、空気を引きずるため、第3のモジュール306のテープ支え面312の上に有意に乗らない(一部の接触が発生することがある)。これは、後続のモジュール306がアイドル状態である間に先行のモジュール302が書き込んでいるため、許容可能である。
異なるモジュールによって、書き込み機能および読み取り機能がいつでも実行される。一実施形態では、第2のモジュール304は、複数のデータ・リーダおよび任意選択的なサーボ・リーダ331を含み、ライタを含まない。第1および第3のモジュール302、306は、複数のライタ322を含み、外側のモジュール302、306が任意選択的なサーボ・リーダを含んでよいということを除き、データ・リーダを含まない。サーボ・リーダは、読み取り動作または書き込み動作あるいはその両方の間に、ヘッドを配置するために使用されてよい。各モジュール上のサーボ・リーダは、通常、リーダまたはライタのアレイの端部に向かって位置する。
リーダまたは横に並んだライタおよびサーボ・リーダのみが、基板とクロージャの間のギャップ内に存在することによって、ギャップの長さを大幅に減らすことができる。標準的なヘッドは、ピギーバックされたリーダおよびライタを含み、各リーダの上にライタが形成される。標準的なギャップは、20〜35ミクロンである。しかし、テープ上の凹凸が、ギャップ内に垂れ下がり、ギャップの浸食を引き起こす傾向がある。したがって、ギャップは小さいほど良い。本明細書において有効化されるギャップは、小さいほど、摩耗に関連する問題を示すことが少なくなる。
本発明の一部の実施形態では、第2のモジュール304がクロージャを含み、一方、第1および第3のモジュール302、306はクロージャを含まない。クロージャが存在しない場合、ハード・コーティングがモジュールに追加されるのが好ましい。1つの好ましいコーティングは、ダイヤモンド状炭素(DLC:diamond-like carbon)である。
図9に示されている例では、第1、第2、および第3のモジュール302、304、306がそれぞれ、クロージャ332、334、336を含み、これらのクロージャが関連付けられたモジュールのテープ支え面を拡張し、それによって、読み取り/書き込み素子をテープ支え面のエッジから離れた位置に効果的に配置する。第2のモジュール304上のクロージャ332は、テープ・ヘッド上で通常見られる種類のセラミック・クロージャであることができる。しかし、第1および第3のモジュール302、306のクロージャ334、336は、各モジュール上のテープの移動方向と平行に測定されたときに、第2のモジュール304のクロージャ332より短くてよい。これによって、モジュールを互いに近づけて配置することができる。より短いクロージャ334、336を製造するための1つの方法は、第2のモジュール304の標準的なセラミック・クロージャを、追加の量だけ重ねることである。別の方法は、薄膜の加工時に、薄膜クロージャを素子の上にめっきするか、または成膜することである。例えば、センダストまたは鉄ニッケル系合金(例えば、45/55)などの硬質材料の薄膜クロージャを、モジュール上に形成することができる。
外側のモジュール302、306上で厚さの減少したセラミックまたは薄膜クロージャ334、336を使用するか、またはクロージャを使用せずに、書き込みと読み取りの間のギャップ間隔を、約1mm未満(例えば、約0.75mm)または通常使用されるリニア・テープ・オープン(LTO:linear tape open)テープ・ヘッドの間隔の50%未満に、減らすことができる。モジュール302、304、306の間の空間は、それでも一部の実施形態では、第2のモジュール304の上のテープの動きを安定させるのに最適である、約0.5〜0.6mmに設定することができる。
テープの張力および剛性に応じて、第2のモジュールのテープ支え面に対し相対的に、外側のモジュールのテープ支え面を傾けることが望ましいことがある。図10は、モジュール302、304、306が正接またはほぼ正接(傾斜)構成である例を示している。特に、外側のモジュール302、306のテープ支え面は、第2のモジュール304の望ましい巻き角度α2で、テープとほぼ平行である。言い換えると、外側のモジュール302、306のテープ支え面308、312の平面は、第2のモジュール304に対し相対的なテープ315の望ましい巻き角度α2に略方向づけられている。この例でも、テープは、後続のモジュール306から浮き上がり、それによって、後続のモジュール306の素子上の摩耗を減らす。これらの例は、書き込み−読み取り−書き込みの適用に特に役立つ。これらの実施形態の追加の態様は、前述した態様と同様である。
通常、テープの巻き角度は、図9および10に示されている例のほぼ中間に設定されてよい。
図11は、モジュール302、304、306がオーバーラップ構成である、本発明の実施形態を示している。特に、外側のモジュール302、306のテープ支え面308、312は、第2のモジュール304に対する相対的な望ましい巻き角度α2に設定された場合、テープ315よりわずかに傾けられる。この例では、テープは後続のモジュールから浮き上がらず、後続のモジュールを書き込みまたは読み取りに使用できるようにする。したがって、先行のモジュールおよび中央のモジュールは、両方とも読み取り機能または書き込み機能あるいはその両方を実行することができ、一方、後続のモジュールは、任意のまさに書き込まれたデータを読み取ることができる。したがって、これらの実施形態は、書き込み−読み取り−書き込み、読み取り−書き込み−読み取り、および書き込み−書き込み−読み取りの適用の場合に好ましい。後者の実施形態では、読み取り機能を保証するために、クロージャは、テープ・キャノピーより広くなるべきである。クロージャが広いほど、より広いギャップ間の分離が必要になることがある。したがって、好ましい実施形態は、短縮されたクロージャを使用できるため、より狭いギャップ間の分離を可能にする、書き込み−読み取り−書き込み構成を有する。
図10および11に示された例の追加の態様は、前述した態様と同様である。
他のモジュール・ヘッド126の32チャネル・バージョンは、現在の16チャネル・ピギーバックLTOモジュールと同じまたはより小さいピッチ上にリード線を有するケーブル350を使用してよく、または代替として、モジュール上の接続は、ケーブル長を50%削減するために、オルガンの鍵盤状(organ-keyboarded)であってよい。上下の書き込み対のシールドなしケーブルが、サーボ・リーダを統合していることがあるライタに使用されてよい。
外側の巻き角度α1は、調整可能なローラー、スライドなどの、従来技術において知られた任意の種類のガイドなどによって、または代替として、ヘッドに統合されたアウトリガによって、ドライブ内で設定されてよい。例えば、巻き角度を設定するために、オフセット軸を含んでいるローラーが使用されてよい。オフセット軸は、回転の軌道円弧を作り、巻き角度α1の正確な位置合わせを可能にする。
前述した本発明の実施形態のいずれかを組み立てるために、従来のU型桁アセンブリが使用され得る。したがって、得られるヘッドの質量は、前の世代のヘッドと比較して維持されるか、または減らされてよい。他の方法では、モジュールが単一体として構築されてよい。この知識を持っている当業者は、そのようなヘッドを製造する他の既知の方法が、そのようなヘッドの構築において使用するのに適していることがあるということを、理解するであろう。さらに、特に指定されない限り、本開示を読むときに当業者に明らかになるであろうように、従来技術において知られた種類の工程および材料が、本明細書の内容と一致して、本発明のさまざまな実施形態において使用するのに適していることがある。
読み取りまたは書き込みあるいはその両方が、例えば低い誤り率で、効率的に実行されるように、テープがモジュールの上を進むときに、テープがモジュール上の磁気変換器の十分近くを通るのが好ましい。一部の方法によれば、テープが、磁気変換器を含んでいるモジュールの一部の十分近くを通るのを保証するために、テープ・テンティングが使用されてよい。この工程をよく理解するために、図12〜図14がテープ・テンティングの原理を示している。図12は、対向するエッジ804、806の間に広がる上側テープ支え面802を含んでいるモジュール800を示している。エッジ804、806に巻き付いている静止したテープ808が示されている。図に示されているように、テープ808の曲げ剛性が、テープをテープ支え面802から持ち上げる。図12に示されているように、テープの張力がテープの形状を平らにする傾向がある。テープの張力が最小である場合、テープの曲率は、図に示されているより放物線状になる。
図13は、移動中のテープ808を示している。先行のエッジ(すなわち、移動しているときにテープが遭遇する最初のエッジ)は、空気をテープから剥ぐ働きをすることがあり、それによって、テープ808とテープ支え面802の間に準大気気圧(subambient air pressure)を作り出す。図13では、テープが左から右に移動している場合、先行のエッジが左のエッジであり、右のエッジが後続のエッジである。その結果、テープの上の大気圧が、テープをテープ支え面802の方向に強制し、それによってエッジの各々の近傍でテープ・テンティングを作り出す。テープの曲げ剛性が大気圧の影響に抵抗し、それによって先行のエッジと後続のエッジの両方の近傍にテープ・テンティングを引き起こす。モデル化は、2つのテントの形状が極めて似ているということを予測する。
図14は、後続のガイド810がテープ支え面の平面の上に配置された場合でも、準大気圧がどのようにテープ808をテープ支え面802の方向に強制するかを示している。
したがって、テープがモジュールの上を通るときの進路を方向付けるために、テープ・テンティングが使用されてよい。前述したように、好ましくは、読み取りまたは書き込みあるいはその両方が、例えば低い誤り率で効率的に実行されるように、テープが、磁気変換器を含んでいるモジュールの一部の十分近くを通るのを保証するために、テープ・テンティングが使用されてよい。
磁気テープは、テープ・カートリッジに格納されてよく、ひいては、データ・ストレージ・ライブラリ内のストレージ・スロットなどに格納される。テープ・カートリッジは、物理的に取り出すためにアクセスできるように、ライブラリに格納されてよい。データ・ストレージ・ライブラリは、磁気テープおよびテープ・カートリッジに加えて、データを磁気テープに格納するか、またはデータを磁気テープから取り出すか、あるいはその両方を実行する、データ・ストレージ・ドライブを含んでよい。さらに、テープ・ライブラリおよびそれらに含まれているコンポーネントは、テープおよびテープに格納されたデータにアクセスできるようにするファイル・システムを実装してよい。
ファイル・システムは、データがメモリに格納され、メモリから取り出される方法を制御するために、使用されてよい。したがって、ファイル・システムは、オペレーティング・システムがメモリ内のファイルを追跡するために使用するプロセスおよびデータ構造(例えば、ファイルがメモリ内で構造化される方法)を含んでよい。リニア・テープ・ファイル・システム(LTFS:Linear Tape File System)は、適合するテープにアクセスできるようにするために、既定のライブラリ内で実装され得るファイル・システムの例示的な形式である。本明細書におけるさまざまな実施形態が、例えばIBM Spectrum Archive Library Edition(LTFS LE)を含む、広範囲のファイル・システム形式を使用して実装され得るということが、理解されるべきである。しかし、背景を提供するために、および単に読者を助けるために、以下の実施形態の一部は、ファイル・システム形式の一種であるLTFSを参照して説明されることがある。この参照は、単に例として行われており、特許請求の範囲において定義されている本発明に対する限定であると見なされるべきではない。
テープ・カートリッジは、カートリッジをテープ・ドライブに挿入することによって「装着され」てよく、テープ・カートリッジは、テープ・カートリッジをテープ・ドライブから取り外すことによって「取り出され」てよい。カートリッジ内のテープは、テープ・ドライブ内に装着された後に、テープ・カートリッジからテープ(磁気記録部分)を物理的に引っ張り、テープ・ドライブの磁気テープ・ヘッドの上に通すことによって、ドライブに「通され」てよい。さらに、テープを磁気テープ・ヘッドの上で移動するために、テープが巻き取りリール(例えば、上記の図1の121を参照)に取り付けられてよい。
カートリッジ内のテープは、テープ・ドライブに通された後に、テープ上のメタデータ(例えば、インデックスなど)を読み取り、テープを、LTFSがテープをファイル・システムの構成要素として使用できる状態にすることによって、「マウントされ」てよい。さらに、テープを「アンマウントする」ために、メタデータが(例えば、インデックスとして)最初にテープに書き込まれるのが好ましく、その後、テープが、LTFSがテープをファイル・システムの構成要素として使用できる状態から取り除かれてよい。最後に、テープを「抜き取る」ために、テープが巻き取りリールから取り外され、テープ・カートリッジの内部に再び物理的に配置される。カートリッジは、テープが抜き取られた後でも、例えば別の読み取り要求または書き込み要求あるいはその両方を待ちながら、テープ・ドライブ内に装着されたままであってよい。しかし、他の例では、テープ・カートリッジは、例えば前述したようにテープが抜き取れるときに、テープ・ドライブから取り出されてよい。
磁気テープは、シーケンシャル・アクセス媒体である。したがって、以前に書き込まれたデータの末尾にデータを追加することによって、新しいデータがテープに書き込まれる。したがって、1つのパーティションのみを含んでいるテープにデータが記録される場合、データが頻繁に更新され、それに応じてテープに再び書き込まれるときに、メタデータ(例えば、割り当て情報)が以前に書き込まれたデータの末尾に連続的に追加される。その結果、テープが最初にマウントされたときに、このテープに対応するメタデータの最新のコピーにアクセスするために、最後尾の情報が読み取られる。しかし、この読み取りは、既定のテープをマウントするプロセスに、かなりの量の遅延をもたらす。
単一のパーティションのテープ媒体に起因する遅延を克服するために、LTFS形式は、インデックス・パーティションおよびデータ・パーティションを含んでいる2つのパーティションに分割されたテープを含む。インデックス・パーティションは、例えばファイル割り当て情報(インデックス)などのメタデータ(メタ情報)を記録するように構成されてよく、一方、データ・パーティションは、データの本体(例えば、データ自体)を記録するように構成されてよい。
図15を参照すると、インデックス・パーティション902およびデータ・パーティション904を含んでいる磁気テープ900が示されている。図に示されているように、データ・ファイルおよびインデックスがテープに格納されている。本説明を読むときに当業者によって理解されるであろうように、LTFS形式は、インデックス情報をテープ906の先頭にあるインデックス・パーティション902に記録できるようにする。
インデックス情報が更新されるときに、以前のバージョンのインデックス情報を上書きするのが好ましく、それによって、現在更新されているインデックス情報にテープの先頭にあるインデックス・パーティション内でアクセスできるようにする。図15に示されている特定の例によれば、最新バージョンのメタデータのインデックス3が、テープ906の先頭にあるインデックス・パーティション902に記録される。反対に、3つすべてのバージョンのメタデータのインデックス1、インデックス2、インデックス3、およびデータのファイルA、ファイルB、ファイルC、ファイルDが、テープのデータ・パーティション904に記録される。インデックス1およびインデックス2は古い(例えば、更新されていない)インデックスであるが、前述したように、以前に書き込まれたデータの末尾に情報を追加することによって、情報がテープに書き込まれるため、これらの古いインデックスであるインデックス1、インデックス2は、上書きされずにテープ900上のデータ・パーティション904に格納されたままになる。
インデックス・パーティション902またはデータ・パーティション904あるいはその両方に含まれるメタデータは、望ましい実施形態に応じて、異なって更新されてよい。一部の実施形態によれば、例えば、テープが再びマウントされるときにインデックスをインデックス・パーティションから読み取ることができるように、インデックス・パーティション902のメタデータは、テープがアンマウントされることに応答して更新されてよい。メタデータは、データ・パーティション902に書き込まれてもよいため、例えばバックアップのオプションとして、データ・パーティション902に記録されたメタデータを使用してテープがマウントされてよい。
本発明を限定するよう全く意図されていない1つの例によれば、例えば、突然の停電の発生時にデータ損失を軽減できるように、ユーザがシステムに明示的に指示したとき、またはユーザによって設定できる既定の期間によって指定された時間に、インデックスをデータ・パーティションに書き込む機能を提供するために、LTFS LEが使用されてよい。
前述したように、以前に磁気テープに書き込まれたデータにアクセスすることは、データが書き込まれた磁気テープを特定することと、磁気テープを取り出すことと、磁気テープをテープ・ドライブに装着することと、テープ・ドライブ内の磁気ヘッドを、データが書き込まれている磁気テープの特定の部分に揃えることと、データを実際に読み取ることとを通常は含む。磁気テープのデータ・アクセス時間を短縮しようとする試みにおいて、磁気テープ自体と組み合わせてキャッシュを使用することが導入された。データが磁気テープに書き込まれるか、または磁気テープから読み取られるか、あるいはその両方が行われるときに、データにより簡単に、かつ素早くアクセスできるように、データが一時的にキャッシュに格納される。しかしながら、使用中にキャッシュ内の使用可能な空き容量が減少するにつれて、別のメモリ空間取得要求を受信することに応答して、キャッシュに格納されたデータがフラッシュされ、それによって、この要求に対応する他のデータを格納するためにキャッシュを解放する。したがって、キャッシュの内容は、完全なファイルの単位で、または望ましい割り当て順序で、あるいはその両方で、通常はフラッシュされない。例えば、キャッシュのサイズより大きいサイズを有する特定のファイルを書き込む場合、いずれかの時点で、そのファイルの一部のみがキャッシュ内に残り、それによってそのファイルは、メモリの不連続な領域に割り当てられる。
従来の製品では、メモリの不連続な領域に割り当てられたファイル(例えば、特定のデータのグループ化)を読み取ろうとするときに、アクセス時間の速度低下が発生する。磁気テープの不連続な領域に割り当てられたデータを読み取るために、磁気テープにアクセスするテープ・ドライブにおいて複数の位置特定動作および読み取り動作が実行される。その結果、従来の磁気テープに基づく製品では、メモリの不連続な領域に割り当てられたデータに関して、データ・アクセス時間が望ましくなく遅くなる。
それとは際立って対照的に、本明細書に記載されたさまざまな方法は、状況に応じて異なるデータ・アクセス動作または読み取り動作あるいはその両方を実装することによって、データ・アクセス時間を大幅に削減することができる。例えば、磁気テープ上の要求されたファイルにアクセスするために実行される動作(例えば、データのグループ化)は、例えば以下さらに詳細に説明されているように、磁気テープに対する相対的な磁気テープ・ヘッドの現在の向きと、要求されたファイルの位置とを分離する距離に応じて、変化し得る。
図16を参照すると、データ・ストレージ・システム1000を表す図が示されている。任意選択として、データ・ストレージ・システム1000は、他の図を参照して説明されている特徴などの、本明細書に示されている任意の他の実施形態からの特徴と共に、実装されてよい。ただし、そのようなデータ・ストレージ・システム1000および本明細書において提示されている他のものは、本明細書に示されている実施形態例において具体的に説明されていることもあれば、説明されていないこともあるさまざまな応用または並べ替えにあるいはその両方おいて、使用されてよい。さらに、データ・ストレージ・システム1000は、任意の望ましい環境内で使用されてよい。したがって、図16(および他の図)は、可能性のある任意の並べ替えを含むと見なされてよい。
図に示されているように、データ・ストレージ・システム1000を表す図は、ユーザ領域1002、カーネル・レベル1004、および物理デバイス・レベル1006を含む。ユーザ領域1002は、データ・ストレージ・システム1000に格納されたデータに対する格納(書き込み)、アクセス(読み取り)、更新などを実行するための論理インターフェイスをユーザに提供できるアプリケーション1008を含んでいる。アプリケーション1008は、ユーザが使用できるインターフェイスを提供する電気的コンピューティング・デバイス上で動作して(例えば、実行され)てよい。例えば、アプリケーション1008は、望ましい方法に応じて、パーソナル・コンピュータ上、モバイル・デバイス上、タブレット上などで動作してよい。
アプリケーション1008は、データ・ストレージ・システム1000のカーネル・レベル1004にあるコントローラ1010と通信する。さらに、コントローラ1010は、仮想ファイル・システム(VFS:virtual file system)1012およびファイルシステム1014と通信してよい。データ・ストレージ・システム1000に含まれているコンポーネントのいずれかは、任意の望ましい接続を使用して互いに通信(例えば、情報を交換)できてよいということに、注意するべきである。さまざまな方法によれば、データ・ストレージ・システム1000に含まれているコンポーネントのうちの2つ以上が、無線電気接続(例えば、Bluetooth(登録商標)接続、Wi−Fi(登録商標)接続、セルラー接続など)、有線電気接続(例えば、イーサネット(登録商標)接続、ワイヤ、ケーブルなど)などを使用して、互いに通信できてよい。
VFS1012は、データを少なくとも一時的に格納するために使用されるメモリを含んでいる入出力(I/O:input/output)キャッシュ1016に、さらに結合される。I/Oキャッシュ1016に含まれている要求されたデータは、単に、要求に応答してキャッシュからデータを読み取り、提供することによって、供給されてよい。I/Oキャッシュ1016は、磁気テープと比較してより高性能な(例えば、より高速な)記憶媒体であるため、例えば下でさらに詳細に説明されているように、I/Oキャッシュ1016から要求されたデータにアクセスすることは、磁気テープ上の格納位置から要求されたデータを再計算またはフェッチすることよりも、大幅に高速であることができる。
図16をさらに参照すると、VFS1012およびファイルシステム1014は、互いに結合されており、本説明を読んだ後に当業者に明らかになるいずれかの方法に従って動作してよい。さらに、ファイルシステム1014は、物理デバイス・レベル1006にあるコンポーネントに結合される(通信できる)。したがって、コントローラ1010は、ユーザ領域1002、カーネル・レベル1004、および物理デバイス・レベル1006のいずれかで、さまざまなコンポーネントと通信することができる。本発明を限定するよう全く意図されていない例示的な方法によれば、コントローラ1010は、物理デバイス・レベル1006に含まれているテープ・ドライブと通信すること(例えば、コマンドを発行すること、データを受信すること、データを送信することなど)ができてよい。
物理デバイス・レベル1006を参照すると、磁気テープ1020に格納されたファイル1018を表す図が示されている。好ましい方法によれば、リニア・テープ・ファイル・システム(LTFS)形式に従って、データが磁気テープ1020に格納される。したがってファイル1018は、LTFS形式に従って磁気テープ1020に格納されてよい。しかしデータは、方法に応じて、任意の望ましい形式に従って磁気テープ1020に格納されてよい。
本発明の本実施形態に示されていないが、テープ・ドライブ内の磁気テープ・ヘッドが磁気テープ1020の特定の領域にアクセスすること(読み取ることまたは書き込むことあるいはその両方)ができるように、磁気テープ1020がテープ・ドライブ内に装着されてよい(例えば、図1を参照)。ファイル1018の斜線部分は、I/Oキャッシュ1016に含まれているデータの部分に対応する。言い換えると、破線によって表されているように、ファイル1018の斜線部分に含まれているデータのコピーがI/Oキャッシュ1016に格納される。
前述したように、I/Oキャッシュは、相対的に(例えば、磁気ディスクおよび磁気テープと比較して)高性能な記憶媒体である。したがって、I/Oキャッシュから要求されたデータにアクセスすることは、磁気媒体上の他の格納位置から要求されたデータをフェッチすることよりも著しく高速であることができる。要求されたファイルが磁気媒体の不連続な領域に割り当てられるか、または要求されたファイルの特定の部分のみがI/Oキャッシュ内に残るか、あるいはその両方である状況では(例えば、図16のファイル1018を参照)、要求されたファイルが読み取られるときに、ファイルの一部がI/Oキャッシュからアクセスされることがあり、ファイルの残りの部分が磁気媒体からアクセスされる。磁気媒体が磁気ディスクである状況では、磁気ディスク上のファイル・システムのデータ構造および物理的ディスク・システムの物理的構造に起因して、要求されたファイルの限定された部分のみをディスクから読み取ることは、読み取りが実行される速度の著しい低下を引き起こさない。
しかし、磁気媒体が磁気テープである状況では、要求されたファイルの限定された部分のみをテープから読み取ることは、従来の製品においてデータ・アクセス時間の望ましくない速度低下をもたらす。例えば、磁気テープの不連続な領域に割り当てられたファイル、または要求されたファイルの特定の部分のみがI/Oキャッシュに残っているファイル(例えば、図16のファイル1018を参照)、あるいはその両方が磁気テープ上の開始位置から読み取られる場合、従来の製品は、複数の位置決めコマンド(Locate)および読み取りコマンド(Read)をテープ・ドライブに発行する。したがって、そのようなファイルの読み取りに対応するデータ・アクセス時間は、複数の位置決めコマンドを実行するのにかかる時間によって決まる。磁気テープから一部のファイルを読み取ることが、限られた数の位置決めコマンドのみを実行することを含んでいることがあるが、その他のファイルを読み取ることが、かなりの数の位置決めコマンドを実行することを含んでいることがある。したがって、本明細書に記載された本発明のさまざまな実施形態は、すぐに明らかになるように、さまざまな要因に応じて既定のファイルを読み取るための効率的な方法を決定するプロセスを提供する。
ここで図17を参照すると、方法1100のフローチャートが示されている。方法1100は、さまざまな実施形態において、特に図1〜図16に示された環境のいずれかにおいて本発明に従って実行されてよい。当然、当業者が本説明を読んだときに理解するであろうように、図17において具体的に説明された動作よりも多いか、または少ない動作が方法1100に含まれ得る。
方法1100のステップの各々は、動作環境の任意の適切なコンポーネントによって実行されてよい。例えば、方法1100に含まれている動作のうちの1つまたは複数は、図16のデータ・ストレージ・システム1000のコントローラ1010によって実行されてよい。しかしながら、本発明のさまざまな実施形態では、方法1100は、コントローラ、プロセッサ、コンピュータなど、または1つまたは複数のプロセッサを備えているその他のデバイスによって、部分的に、または全体的に実行されてよい。したがって、本発明の一部の実施形態では、方法1100はコンピュータ実装方法であってよい。本発明のそのような実施形態では、方法の実装に使用されるコンピュータは、テープ・ドライブ自体またはその一部、例えばコントローラ、テープ、外部ホスト、サーバなどを含んでよい。さらに、コンピュータ、プロセッサ、およびコントローラという用語は、本明細書では、本発明の実施形態のいずれかに関して交換可能なように使用されてよく、そのようなコンポーネントは、本発明の多くのさまざまな並べ替えにおいて均等と見なされている。
さらに、プロセッサを含んでいる本発明の実施形態では、ハードウェアまたはソフトウェアあるいはその両方において実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを含んでいるプロセッサ(例えば、処理回路、チップ、またはモジュール、あるいはその組み合わせ)が、方法1100の1つまたは複数のステップを実行するために任意のデバイス内で利用されてよい。プロセッサの例としては、中央処理装置(CPU:central processing unit)、特定用途向け集積回路(ASIC:application specific integrated circuit)、フィールド・プログラマブル・ゲート・アレイ(FPGA:field programmable gate array)など、これらの組み合わせ、または従来技術において知られた任意のその他の適切なコンピューティング・デバイスが挙げられるが、これらに限定されない。
図17に示されているように、方法1100の動作1102は、磁気テープに格納されたデータに対する読み取り要求を受信することを含む。一部の方法によれば、受信された読み取り要求は、要求されたデータにアクセスするためにどのファイルが読み取られるべきか、要求されたデータに対応するオフセット、要求されたデータのサイズ(例えば、量)などを示してよく、これらは、要求されたデータにアクセスする際に磁気テープ・ドライブを支援することができる。例えば、受信された読み取り要求は、read(”FileA”,offset=1MB,size=128KB)という情報を含んでよい。要求されたデータのサイズ(例えば、要求されたデータの量)に依って、要求されたデータ自体が複数の部分を含み得る。例えば、動作1102は、10ギビバイト(GiB)のファイルに対する読み取り要求を受信することを含んでよく、この10GiBのファイルは、複数のデータ・ブロック(例えば、部分)を含む。例示的な方法によれば、データ・ブロック自体の各々のサイズは、約512キビバイト(KiB)であってよいが、さらに大きいか、または小さいことがあり得る。さらに、データは、LTFS形式に従って磁気テープに格納されてよい。
さらに、判定1103は、前述したように、要求されたデータの部分のいずれかのコピーがキャッシュ(例えば、I/Oキャッシュなど)内にあるかどうかを判定することを含む。要求されたデータの1つまたは複数の部分のコピーがキャッシュ内にあるということの決定に応答して、方法1100は、動作1112にジャンプするように示されており、それによって、要求されたデータが読み取りバッファ内で組み合わされてよい。読み取りバッファ内で組み合わされた後に、例えば以下にさらに詳細に説明されるように、読み取り要求が満たされ得る。キャッシュ内にある要求されたデータの部分を組み合わせるために、動作1112にジャンプすることは、キャッシュから部分を要求すること、キャッシュから部分を受信すること、およびキャッシュから受信された部分を読み取りバッファに追加することを含んでよい。要求されたデータのその他の部分がまだ評価されて(例えば、読み取られて)いないかどうかを判定することが、望ましいこともある。評価されていない要求されたデータの1つまたは複数の部分が存在するということの決定に応答して、要求されたデータの残りの部分にキャッシュまたは磁気テープからアクセスできるように、方法1100が判定1106または動作1104に戻ってよい。
図17のフローチャートのこの横断は、磁気テープからデータを読み取らずに読み取り要求を満たすことができるように、要求されたデータのすべてがキャッシュ内にある状況のために予約されてもよいことに、注意するべきである。しかし、一部の方法では、要求されたデータの一部のみのコピーがキャッシュ内にあることがあり、要求されたデータの残りの部分が磁気テープ上だけにあることがある。そのような方法では、例えば本説明を読んだ後の当業者によって理解されるであろうように、方法1100の残りの部分または図18〜図20に含まれているプロセスの一部あるいはその両方が実行され得る。
要求されたデータの1つまたは複数の部分のコピーがキャッシュ(例えば、I/Oキャッシュ)内にないということの決定に応答して、方法1100は、動作1104に進み、動作1104は、磁気テープ上の、キャッシュ内にないということが決定された、要求されたデータの部分にアクセスするように、テープ・ドライブに指示することを含む。上記で暗に示されたように、現在コピーがキャッシュに格納されている、要求されたデータの部分は、磁気テープから読み取られるのとは対照的に、キャッシュから読み取りバッファに直接追加されるのが好ましい。したがって、受信された読み取り要求を満たすプロセスは、例えば本明細書のさまざまな方法で説明されているように、他の部分をキャッシュから集めることに加えて、要求されたデータの部分を磁気テープから集めることを含んでよい。
データ・ストレージ・システムは、任意の数の異なる磁気テープを含んでよい。例えば、データ・ストレージ・システムは、多数の磁気テープを含んでいるテープ・ライブラリを含んでよい。したがって、要求されたデータを含んでいる磁気テープが、テープ・ドライブに対して相対的にどこにあるかに応じて、テープ・ドライブが要求されたデータに実際にアクセスできるようになる前に、追加のプロセスが実行されてよい。本発明を限定するよう全く意図されていない1つの例によれば、データ・ストレージ・システムは、要求されたデータが、テープ・ライブラリのストレージ・スロットに収容されたテープ・カートリッジ内の磁気テープに格納されているということを決定してよい。したがって、磁気テープをテープ・ドライブにマウントできるように、磁気テープを含んでいるテープ・カートリッジをはめ込み(例えば、つかみ)、テープ・ドライブに運ぶために、アクセッサのグリッパ・アセンブリが使用されてよい。しかし、やはり本発明を限定するよう全く意図されていない別の例によれば、データ・ストレージ・システムは、読み取り要求が受信されたときに、要求されたデータが、テープ・ドライブにすでにマウントされている磁気テープ上にあるということを、決定してよい。
要求されたデータを含んでいる磁気テープがテープ・ドライブにマウントされているということが決定された後に、テープ・ドライブ内の磁気テープ・ヘッドが、要求されたデータのほぼ先頭またはその任意の望ましい部分に位置するように、テープ・ドライブが磁気テープを巻くか、または巻き戻すか、あるいはその両方を実行してよい。例示的な方法によれば、動作1104で送信された命令を受信することに応答して、テープ供給カートリッジまたは巻き取りリールあるいはその両方を駆動して、磁気テープを磁気テープ・ヘッドの上で移動するために、1つまたは複数の駆動モータが使用されてよい。
したがって、データが格納されている磁気テープは、状況に応じて、テープ・ドライブにすでに装着されていることもあれば、装着されていないこともある。したがって、図18を一時的に参照すると、磁気テープ上の要求されたデータの先頭にアクセスするために、要求されたデータが格納されている磁気テープがテープ・ドライブに装着されることを保証する例示的なサブプロセスが示されており、これらサブプロセスのうちの1つまたは複数が、図17の動作1104を実行するために使用されてよい。ただし、図18のサブプロセスが、本発明を限定するよう全く意図されていないということに、注意するべきである。
図に示されているように、下位の動作1120は、要求されたデータが格納されている磁気テープを決定することを含んでいる。好ましい方法によれば、磁気テープがテープ・カートリッジに格納され、次いで、このテープ・カートリッジがテープ・ライブラリのストレージ・スロットに格納され得る。したがって、下位の動作1120は、要求されたデータが格納されている磁気テープを格納しているテープ・カートリッジを決定することによって、実際に実行されてよい。テープ・カートリッジは、テープ・カートリッジの筐体の外側で/外側からアクセスできる、バーコード、識別番号、無線自動識別(RFID:radio-frequency identification)チップなどによって識別されてよい。さらに、メモリ内のルックアップ・テーブルが、各テープ・カートリッジに格納されている磁気テープ、およびそのような磁気テープに格納されているデータを追跡してよい。
要求されたデータが格納されている磁気テープが識別された後に、判定1122は、識別された磁気テープがストレージ・ライブラリのテープ・ドライブにすでに装着されているかどうかを判定することを含む。磁気テープがテープ・ドライブにすでに装着されているということの決定に応答して、フローチャートが下の図17の判定1106に進む。ただし、望ましいデータを含んでいる磁気テープがテープ・ドライブにすでに装着されているということの決定に応答して、追加のプロセスが実行されてよいということに、注意するべきである。本発明を限定するよう全く意図されていない例示的な使用中の例によれば、下の図23は、要求されたデータに到達するために磁気テープが巻かれるか、または巻き戻されるか、あるいはその両方が実行される効率的な方法を決定することによって、データ・アクセス時間を最小限に抑えるために実行されてよい、複数のプロセスを含んでいる。
判定1122に戻り、磁気テープがまだテープ・ドライブに装着されていないということの決定に応答して、図18のフローチャートが下位の動作1124に進む。そこでは、下位の動作1124は、要求されたデータが格納されている磁気テープを格納しているテープ・カートリッジを装着する(例えば、マウントする)テープ・ドライブを選択することを含む。さらに、下位の動作1126は、カートリッジを移動する要求を選択されたテープ・ドライブに送信する(例えば、発行する)ことを含む。一部の方法によれば、(例えば、グリッパ・アセンブリを使用して)テープ・カートリッジをはめ込み、現在の位置(例えば、ストレージ・スロット)から選択されたドライブに物理的に運ぶように自動ロボット・アクセッサに指示することによって、下位の動作1126が実行されてよい。
さらに、下位の動作1128は、磁気テープ上の第1のパーティションの先頭にあるインデックスを読み取るようにテープ・ドライブに指示することを含んでいる。磁気テープ上の第1のパーティションの先頭にあるインデックスを読み取ることによって、磁気テープ上の要求されたデータの位置に関する情報が集められてよい。さらに、テープ・ドライブは、テープ・ドライブの磁気ヘッドが要求されたデータの先頭の上に(例えば、垂直に隣接して)配置されるように磁気テープを進めるために、例えば本明細書に記載された方法のいずれかに従って、位置特定動作の任意の望ましい組み合わせを実行してよい。
フローチャートが、下位の動作1128から図17の判定1106に直接進む。したがって、ここで図17に戻ると、判定1106は、キャッシュ内にない要求されたデータの部分の各々に対して、位置特定コマンドを実行すること、または(キャッシュ内にもあることが決定された要求されたデータの部分に対応する返されたデータを破棄しながら)読み取りコマンドを複数回実行することのいずれが、より短い時間でキャッシュ内にない要求されたデータの部分を取り出すかを判定することを含んでいる。言い換えると、判定1106は、位置特定−読み取りの方法を使用してキャッシュ内にない要求されたデータの部分を読み取ることにかかる時間が、連続的読み取りの方法を使用して要求されたデータを読み取ることよりも少ないかどうかを判定することを含んでいる。前述したように、要求されたデータの複数の部分の一部が、磁気テープ上に存在すると同時に、キャッシュ内にも存在していることがあり、一方、要求されたデータの複数の部分の他の部分が、磁気テープ上のみに存在することがある。例えば、図16を一時的に再び参照すると、要求されたファイル1018の斜線部分が磁気テープ1020上に存在し、I/Oキャッシュ1016内にも存在している。しかし、要求されたファイル1018の斜線のない部分は、磁気テープ1020上のみに存在している。したがって、判定1106は、要求されたデータの次の部分に対応する位置にテープを進めるために、位置特定−読み取りの方法を使用すること、または連続的読み取りの方法を使用することのどちらによって、要求されたデータの次の部分の読み取りがより効率的に実行されるかを、判定していてよい。したがって、やはり判定1106は、例えば以下さらに詳細に説明されているように、反復的方法で、要求されたデータの各部分に対して実行されてよい。しかし、一部の方法では、位置特定コマンドを実行すること、または、キャッシュ内にもあることが決定された要求されたデータの部分に対応する返されたデータを破棄しながら読み取りコマンドを複数回実行することに対応する合計時間を判定するために、キャッシュ内にない要求されたデータのすべての部分が全体として評価されてよい。
位置特定−読み取りの方法を使用して要求されたデータを読み取ることは、キャッシュ内にもある要求されたデータの部分を読み飛ばしながら、磁気テープ上のみに格納されている要求されたデータの部分を読み取ることを含む。キャッシュ内にもある要求されたデータの部分は、テープを磁気テープのみに格納されている要求されたデータの次の部分に進める位置特定コマンドを実行することによって、読み飛ばされてよい。前述したように、この方法は、複数の連続的読み取り動作を実行することを含んでいる連続的読み取りの方法よりも大きい処理時間をもたらすことがあるが、このことは複数の異なる要因に依存する。
例えば、要求されたデータ(例えば、ターゲット・レコード)の後続の部分の位置に対する位置特定検索(locate searches)は、その部分がテープ・ドライブ内のバッファにすでに格納されている場合でも、ファームウェアを介して処理される。その結果、位置特定コマンドを処理するには、相対的に長い時間tlがかかる。位置特定コマンドが実行された後でも、テープ・ドライブは、その直後に読み取り動作を実行しなければならない。さらに、位置特定コマンドの直後の読み取りは、ファームウェアにおけるハードウェアの設定時間を含んでおり、したがってその実行には、同様に相対的に長い時間tr1がかかる。しかし、複数の連続的読み取り動作の実行は、ファームウェアではなくハードウェアを使用して処理され、したがってその実行には、極めて少ない時間tr2がかかる。これは、テープ・ドライブが通常、順方向での連続的読み取りに高度に最適化された特性を有しているということに、部分的に起因する。
これらの異なる動作の各々を処理するのにかかる実際の時間は、既定のテープ・ドライブの種類(例えば、世代)、構成などに応じて変化することがある。したがって、これらの異なる処理時間に関連する値を決定するために、テープ・ドライブが、製造された後にテストされてよい。これらの値は、今後の参照のために、テープ・ドライブのメモリ(例えば、ルックアップ・テーブル)にさらに格納されてよい。本発明を限定するよう全く意図されていない1つの例によれば、512キロバイト(KB)のレコードにアクセスするLTO8テープ・ドライブは、11.9msの位置特定コマンドの処理時間tl、9.3msの位置特定の後の読み取りの処理時間tr1、および1.4msの連続的読み取りの処理時間tr2を有することができる。これらの値は、決定された後に、テープ・ドライブの起動後に固定されてよく、またはテープ・ドライブの起動後に、対応するコマンドが発行されたときに、統計計算を介して更新されてよい。
位置特定コマンドおよび複数の連続的読み取り動作の実行に関連する実行時間が相対的に高速であるかまたは低速であるにもかかわらず、これらの実行時間は、磁気テープ上における、現在の位置と、要求されたデータの後続の部分を分離する間隔に、少なくとも多少依存する。式1は、磁気テープを現在の位置から、要求されたデータの後続の部分に進めるために位置特定動作を実行することに関連する第1の時間が、磁気テープを現在の位置から、要求されたデータの後続の部分に進めるために複数の連続的読み取り動作を実行することに関連する第2の時間より少ないかどうかを判定するための例示的な方法を提供する。したがって式1は、一部の方法では、判定1106を実行するために使用されてよい。
(数1)
(PD−PC)tr2+tr2>(PD−PC+1)tr2 式1
したがって、式1は式1.1に簡略化されてよく、本明細書に記載された方法のいずれかに従って、式1.1が使用されてもよい。
(数2)
(PD−PC+1)tr2>tl+tr1 式1.1
ここで、PDは、要求されたデータの後続の部分の開始位置を表し、PCは、磁気テープに対する相対的な磁気テープ・ヘッドの現在の位置(position)(例えば、位置(location))を表す。したがって、複数の連続的読み取り動作を実行する時間が、位置特定動作を実行してから読み取り動作を実行する時間より少ないかどうかは、磁気テープに対し相対的な、要求されたデータの後続の部分の開始位置(「第1の位置」)と、磁気テープ・ヘッドの現在の位置(「第2の位置」)との間の距離に依存する。
したがって、一部の方法では、使用中にPDおよびPCの特定の値に対してオンザフライで式1が真であるかどうかを判定するのではなく、既定のテープ・ドライブに関して真である論理的ステートメントをもたらすPDおよびPCの相対的値の範囲を決定するために、式1が使用されてよい。言い換えると、位置特定コマンドの処理時間tl、位置特定の後の読み取りの処理時間tr1、および連続的読み取りの処理時間tr2がすべて、既定のテープ・ドライブに関して既知であることがある(または、少なくとも決定できる)ため、式1が真になることをもたらす(PD−PC+1)の値の範囲を決定することができる。さらに、決定された範囲内にある(PD−PC+1)の値をもたらすPDおよびPCの値の範囲は、外挿され、例えばルックアップ・テーブルなどのメモリに格納されてもよい。したがって、一部の方法では、判定1106は、ルックアップ・テーブルにアクセスし、「第1の位置」を「第2の位置」から分離する磁気テープの長手方向の長さに沿った距離が、式1が真であることをもたらす既定の範囲内であるかどうかを判定することによって、決定されてよい。
ここで一時的に図21を参照すると、例示的なLTO8テープ・ドライブによって読み飛ばされる部分の種々の数に対して、位置特定−読み取りの方法と連続的読み取りの方法に従うことに関連する処理時間を示すグラフ1200が、提示されている。グラフ1200のプロットを形成するために使用されるデータは、測定された実験結果に基づいて計算された実験に従って生成された。
連続的読み取りの方法を実装することは、キャッシュおよび磁気テープに格納されている、要求されたデータの複数の部分による影響を受けないため、一定の処理時間がもたらされる。しかしながら、要求されたデータの複数の部分が読み飛ばされるときに、位置特定−読み取りの方法が、処理時間における著しい増加を引き起こすことが示されている。明確にするために、X軸に沿った数が、読み飛ばしが発生する、要求されたデータの部分の平均数を表すということに注意するべきである。例えば、X軸に沿った2の値は、読み取り時に、要求されたデータの2つの部分ごとに1つが読み飛ばされる状況を表す。このプロットは、位置特定−読み取りの方法と連続的読み取りの方法の間の関係を表している。したがって、2つのプロットが交差する位置は、2つの方法の効率が切り替わる点を表している。したがって、2つのプロットが交差する正確な位置、またはプロット自体でさえ、特定のテープ・ドライブに応じて変化することがある。
したがって、判定1106に戻ると、状況に応じて、位置特定−読み取りの方法および連続的読み取りの方法のうちの特定の1つを使用して、要求されたデータの後続の部分を読み取ることが、より望ましいことがある。図に示されているように、方法1100は、位置特定−読み取りの方法を使用して要求されたデータの後続の部分を読み取るのにかかる時間が、連続的読み取りの方法を使用して要求されたデータの後続の部分を読み取るのにかかる時間よりも少なくなるということの決定に応答して、動作1108に進む。そこでは、動作1108が、位置特定−読み取りコマンドを発行して、キャッシュ内にない要求されたデータの後続の部分を取り出すことを含んでいる。動作1108は、要求されたデータの後続の部分に対して一度だけ実行されてよいが、他の方法では、動作1108は、要求されたデータの複数の部分に対する反復プロセスの一部として実行されてよい。図19を一時的に参照すると、要求されたデータの後続の部分に対して位置特定−読み取りの方法を実行する例示的な下位の動作が示されており、これらの下位の動作のうちの1つまたは複数が、図17の動作1108を実行するために使用されてよい。ただし、図19の下位の動作が、本発明を限定するよう全く意図されていないということに、注意するべきである。
図に示されているように、図19のフローチャートは、要求されたデータの現在の部分を読み飛ばし、要求されたデータの「後続の部分」にアクセスするために、位置特定コマンドを実行するようにテープ・ドライブに指示することを含んでいる。下位の動作1140を参照する。前述したように、要求されたデータの現在の部分(テープ・ドライブの磁気ヘッドが現在上に配置されている部分)は、複数の理由のためにテープ・ヘッドによって読み込まれないことがある。一部の方法によれば、要求されたデータの現在の部分は、キャッシュに格納されていることがあり、したがって、キャッシュから読み取りバッファに直接追加されることがある。さらに、「後続の部分」という用語が、テープ・ドライブの磁気ヘッドによって現在アクセスできる要求されたデータの1つの部分の後の、磁気テープに格納された要求されたデータの次の部分を指すよう意図されているということに、注意するべきである。したがって、図19に関して「後続の部分」という用語が使用されるたびに、この用語は、要求されたデータの同じ後続の部分を指している。
磁気ヘッドによって現在アクセスできる要求されたデータの部分を読み飛ばす理由にかかわらず、下位の動作1142は、要求されたデータの後続の部分(テープ・ドライブの磁気ヘッドのほぼ下に現在配置されている)を磁気テープから読み取るようにテープ・ドライブに指示することを含んでいる。さらに、図19に示されていないが、フローチャートは、磁気テープから読み取られた要求されたデータの後続の部分を要求することをさらに含んでよい。言い換えると、フローチャートは、動作1142でテープ・ドライブから読み取られたデータを要求することを含んでよい。テープ・ドライブは、有線電気接続(例えば、図16を参照)、無線接続(例えば、アンテナを使用する)、または本明細書に記載されたさまざまなプロセスを実行するコンポーネントに情報を転送する任意のその他の望ましい方法を介して、読み取られたデータを提供してよい。
さらに、下位の動作1144は、テープ・ドライブによって磁気テープから読み取られた,要求されたデータの後続の部分をテープ・ドライブから受信することを含んでいる。下位の動作1146は、テープ・ドライブから受信された(テープ・ドライブによって読み取られた)要求されたデータの後続の部分を読み取りバッファに追加することも含んでいる。
図に示されているように、図19のフローチャートは、下位の動作1146から判定1148に進む。そこでは、判定1148が、まだ評価されて(例えば、読み取られて)いない要求されたデータのその他の部分があるかどうかを判定することを含んでいる。フローチャートは、まだ読み取られていない要求されたデータの少なくとも1つの部分があるということの決定に応答して、判定1106に戻ってよく、図17〜図20に含まれているプロセスのうちの任意のプロセスが、まだ評価されていないと決定された少なくとも1つの部分に対して実行されるか、または繰り返されてよい。しかしながら、評価するための要求されたデータの部分がそれ以上残されていないということの決定に応答して、フローチャートが図17の動作1112に直接戻る。
図17の判定1106に戻ると、方法1100は、代替として、位置特定−読み取りの方法を使用して要求されたデータの後続の部分を読み取るのにかかる時間が、連続的読み取りの方法を使用して要求されたデータの後続の部分を読み取るのにかかる時間よりも少なくならないということの決定に応答して、動作1110に進んでよい。そこでは、動作1110が、連続的読み取りコマンドを発行して、キャッシュ内にない要求されたデータの後続の部分を取り出すことを含んでいる。動作1110は、要求されたデータの後続の部分に対して一度だけ実行されてよいが、他の方法では、動作1110は、要求されたデータの複数の部分に対する反復プロセスの一部として実行されてよい。図20を一時的に参照すると、要求されたデータの後続の部分に対して連続的読み取りの方法を実行する例示的な下位の動作が示されており、これらの下位の動作のうちの1つまたは複数が、図17の動作1110を実行するために使用されてよい。ただし、図20の下位の動作が、本発明を限定するよう全く意図されていないということに、注意するべきである。
図に示されているように、図20のフローチャートは、テープ・ドライブの磁気ヘッドに対する相対的な磁気テープの現在の位置(position)(例えば、位置(location))が、磁気テープ・ヘッドが要求されたデータの「後続の部分」にアクセスできるような位置であるかどうかを判定することを含んでいる。判定1160を参照する。言い換えると、判定1160は、磁気テープの現在の位置が要求されたデータの後続の部分の位置に等しいかどうかを判定することを含んでいる。やはり、要求されたデータの現在の部分(テープ・ドライブの磁気ヘッドが現在上に配置されている部分)は、複数の理由のためにテープ・ヘッドによって読み込まれないことがある。一部の方法によれば、要求されたデータの現在の部分は、キャッシュに格納されていることがあり、したがって、キャッシュから読み取りバッファに直接追加されることがある。さらに、「後続の部分」という用語が、テープ・ドライブの磁気ヘッドによって現在アクセスできる要求されたデータの1つの部分の後の、磁気テープに格納された要求されたデータの次の部分を参照するよう意図されているということに、注意するべきである。したがって、図20に関して「後続の部分」という用語が使用されるたびに、この用語は、要求されたデータの同じ後続の部分を指している。
図に示されているように、磁気テープ・ヘッドに対する相対的な磁気テープの現在の位置が要求されたデータの後続の部分に等しくないということの決定に応答して、フローチャートが下位の動作1162に進む。そこでは、下位の動作1162が、要求されたデータの後続の部分に到達しようとして、要求されたデータの現在の部分を読み飛ばすために、読み取り動作を実行するようにテープ・ドライブに指示することを含んでいる。下位の動作1162の実行後に、フローチャートが、再び実行されてよい判定1160に戻る。
しかしながら、磁気テープ・ヘッドに対する相対的な磁気テープの現在の位置が要求されたデータの後続の部分に等しいということの決定に応答して、フローチャートが下位の動作1164に進む。そこでは、下位の動作1164が、要求されたデータの後続の部分(現在、テープ・ドライブの磁気ヘッドのほぼ下に配置されている)を磁気テープから読み取るようにテープ・ドライブに指示することを含んでいる。さらに、図20に示されていないが、フローチャートは、磁気テープから読み取られた要求されたデータの後続の部分を要求することをさらに含んでよい。言い換えると、フローチャートは、動作1164でテープ・ドライブから読み取られたデータを要求することを含んでよい。テープ・ドライブは、有線電気接続(例えば、図16を参照)、無線接続(例えば、アンテナを使用する)、または本明細書に記載されたさまざまなプロセスを実行するコンポーネントに情報を転送する任意のその他の望ましい方法を介して、読み取られたデータを提供してよい。
さらに、下位の動作1166は、テープ・ドライブによって磁気テープから読み取られた要求されたデータの後続の部分をテープ・ドライブから受信することを含んでいる。下位の動作1168は、テープ・ドライブから受信された(テープ・ドライブによって読み取られた)要求されたデータの後続の部分を読み取りバッファに追加することも含んでいる。
図に示されているように、図20のフローチャートは、下位の動作1168から判定1170にさらに進む。そこでは、判定1170が、まだ評価されて(例えば、読み取られて)いない要求されたデータのその他の部分があるかどうかを判定することを含んでいる。フローチャートは、まだ読み取られていない、要求されたデータの少なくとも1つの部分があるということの決定に応答して、判定1106に戻ってよく、図17〜図20に含まれているプロセスのうちの任意のプロセスが、まだ評価されていないと決定された少なくとも1つの部分に対して実行されるか、または繰り返されてよい。しかしながら、評価するための要求されたデータの部分がそれ以上残されていないということの決定に応答して、フローチャートが図17の動作1112に直接戻る。
図17に戻ると、動作1112が、読み取りバッファに含まれている要求されたデータの部分を組み合わせることを含んでいる。したがって、動作1112は、キャッシュ内にない要求されたデータの部分を、キャッシュ内にある要求されたデータの部分と組み合わせることを含んでいる。さらに、動作1114は、例えば要求されたデータの組み合わされた部分を使用して、受信された読み取り要求を満たすことを含んでいる。読み取りバッファに含まれている要求されたデータの部分は、本説明を読んだ後に当業者に明らかになるいずれかの方法に従って組み合わされてよい。例えば、要求されたデータの部分は、単一のファイルにマージされてよく、その後、受信された要求に応答して提供されてよい。さらに、要求されたデータを、受信された読み取り要求の送信元に送信すること、読み取り要求を発行したユーザに、要求されたデータが使用可能であるということを知らせること、要求されたデータへのアクセスを提供することなどによって、読み取り要求が満たされてよい。
方法1100のさまざまな動作および図18〜図20で説明されたサブプロセスが、互いに関連して実行されているように示されているが、動作またはサブプロセスあるいはその両方のうちの特定の動作またはサブプロセスあるいはその両方が、別々に実行されてよいということに、注意するべきである。例えば、磁気テープを第2の位置から第1の位置に進めるために位置特定動作を実行することに関連する第1の時間、または磁気テープを第2の位置から第1の位置に進めるために複数の連続的読み取り動作を実行することに関連する第2の時間のどちらが少ないかを判定するプロセスは、読み取り要求を満たすこととは別に決定されてよい。例えば、書き込み動作を実行するために磁気テープの望ましい部分にアクセスする最も時間効率の良い方法を決定するように、さまざまな判定または下位の動作あるいはその両方が実装されてよい。
同様に、図18〜図20に含まれているサブプロセスのうちのさまざまなサブプロセスが、示されている順序とは異なる順序で実行されてよいということに、注意するべきである。例えば、部分が読み取られた後に、要求されたデータの単一の部分のコピーがI/Oキャッシュ内にあるかどうかを判定するのではなく(図20の判定1162を参照)、例えば、キャッシュ内にあるということが決定された部分に対する要求を、磁気テープから部分を読み取ることと同時に発行できるように、要求されたデータの複数の部分の各々がキャッシュ内にあるかどうかに関する判定が行われてよい。別の例によれば、要求されたデータの部分の各々を読み取りバッファに個別に追加するのではなく、キャッシュ内にあるということが決定された要求されたデータの部分の全部または一部が、(例えば、システムのスループットを減らすために)キャッシュから一緒に受信され、読み取りバッファに一緒に追加されてよい。一部の方法では、キャッシュから受信された要求されたデータの部分は、磁気テープから読み取られた(破棄されなかった)要求されたデータの部分と共に、読み取りバッファに追加されてよい。
図22を参照すると、インデックス・パーティション1302およびデータ・パーティション1304を含んでいる磁気テープ1300に従って、本発明を限定するよう全く意図されていない使用中の例が示されている。図に示されているように、データ・ファイル(ファイルA〜ファイルD)およびインデックス(インデックス0〜インデックス3)がテープに格納されている。本説明を読むときに当業者によって理解されるであろうように、LTFS形式は、インデックス情報をテープ1306の先頭にあるインデックス・パーティション1302に記録できるようにする。
具体的にファイルAを参照すると、ファイルの詳細な図が、複数の異なる部分(例えば、「レコード」、ブロックなど)を含んでいることを示している。前述したように、これらの部分の一部が、磁気テープに加えてキャッシュに格納され、一方、他の部分が、磁気テープのみに格納される。使用中のこの例では、部分n+1、n+3、n+5、およびn+8が、磁気テープとキャッシュの両方に格納され、これを表すように斜線が付けられている。しかし、部分n、n+2、n+4、n+6、およびn+7は、磁気テープのみに格納されている。
ファイルAの部分n〜n+8に対する要求は、示されているLTFS形式を実装するテープに基づくデータ・ストレージ・システムによって受信されてよい。要求を受信することに応答して、磁気テープ1300がマウントされている磁気テープ・ドライブに電気的に結合されたコントローラ(またはその他の処理コンポーネント)が、以下のプロセスを実行し得る。
1. 部分nの位置を特定する。
2. 部分nを読み取る。
3. LTFSは、キャッシュされており、したがってVFSによって処理される部分n+1の領域に対する要求を受信しない。
4. 部分n+1を読み取り、部分n+1に含まれているデータを破棄する。
5. 部分n+2を読み取る。
6. LTFSは、キャッシュされており、したがってVFSによって処理される部分n+3の領域に対する要求を受信しない。
7. 部分n+3を読み取り、部分n+3に含まれているデータを破棄する。
8. 部分n+4を読み取る。
9. LTFSは、キャッシュされており、したがってVFSによって処理される部分n+5の領域に対する要求を受信しない。
10. 部分n+5を読み取り、部分n+5に含まれているデータを破棄する。
11. 部分n+6を読み取る。
12. 部分n+7を読み取る。
13. LTFSは、キャッシュされており、したがってVFSによって処理される部分n+8の領域に対する要求を受信しない。
前述したように、望ましいデータを含んでいる磁気テープがテープ・ドライブにすでに装着されているということの決定に応答して、追加のプロセスが実行されてよい。本発明を限定するよう全く意図されていない例示的な使用中の例によれば、図23は、要求されたデータに到達するために磁気テープが巻かれるか、または巻き戻されるか、あるいはその両方が実行される効率的な方法を決定することによって、データ・アクセス時間を最小限に抑えるために実行されてよい、複数のプロセスを含んでいる。具体的には、図23は、磁気テープ上の要求されたデータの先頭にアクセスするようにテープ・ドライブに指示する例示的なサブプロセスを含んでいる。図23に含まれているサブプロセスのうちの1つまたは複数が、図17の動作1104を実行するために使用されてよい。ただし、図23のサブプロセスが、本発明を限定するよう全く意図されていないということに、注意するべきである。
図に示されているように、下位の動作1420は、要求されたデータの先頭に対応する磁気テープ上の第1の位置を決定することを含んでいる。本明細書において使用されるとき、「位置」は、磁気テープ自体の上の特定の位置を指定する、任意の形態の情報であってよい。例えば、位置は、磁気テープ上のサーボ・バンドに対応する長手方向の位置(LPOS:longitudinal position)の値であってよい。一部の方法によれば、要求されたデータに関連付けられたオフセット値またはサイズあるいはその両方を使用することによって、第1の位置が決定されてよい。例えば、要求されたデータは、磁気テープ上の基準点からの特定のオフセットで開始し、ファイルのサイズに応じて磁気テープの長さに沿って特定の距離だけ伸びる、磁気テープ上の特定のデータ・バンドの既定のデータ・トラックに格納されているファイルまたはその部分であってよい。この基準点は、望ましい方法に応じて、テープの先頭、テープ上のヘッダー領域の末尾、テープの既定の巻き数の先頭、テープの末尾などであってよい。さらに、要求されたデータに関連付けられたオフセット値またはサイズあるいはその両方は、下位の動作1420を実行するために参照(アクセス)されてよいルックアップ・テーブルに格納されてよい。
判定1422は、テープ・ドライブの磁気テープ・ヘッドが第1の位置にすでに配置されているかどうかを判定することを含んでいる。言い換えると、判定1422は、磁気テープ・ヘッドが第1の位置のほぼ上にすでに配置されているかどうかを判定することを含んでいる。フローチャートは、テープ・ドライブの磁気テープ・ヘッドが第1の位置にすでに配置されているということの決定に応答して、下の図17の判定1106に直接進む。しかしながら、テープ・ドライブの磁気テープ・ヘッドが第1の位置にまだ配置されていないとう決定に応答して、図23のフローチャートが判定1424に進む。そこでは、判定1424が、磁気テープに対する相対的な磁気テープ・ヘッドの現在の位置に対応する磁気テープ上の第2の位置が第1の位置より大きいかどうかを判定することを含んでいる。言い換えると、判定1424は、磁気テープの先頭から磁気テープに対し相対的な磁気テープ・ヘッドの現在の位置までの距離が、磁気テープの先頭から第1の位置までの距離より遠いかどうかを判定することを含んでいる。1つの例によれば、テープの先頭から位置までの距離と線形関係を有する値が、位置の各々に割り当てられてよい。磁気テープの長さに沿った磁気テープの先頭から位置までの距離が遠いほど、各位置に割り当てられる値が大きくなる。したがって、磁気テープに対する相対的な磁気テープ・ヘッドの現在の位置PCに関連付けられた位置の値が、要求されたデータの開始位置PDに関連付けられた位置の値より大きい場合、テープの先頭から第2の位置までの距離が、第1の位置までの距離より遠いということが決定されてよい。
図に示されているように、第2の位置が第1の位置より大きいということの決定に応答して、フローチャートが下位の動作1426に進み、下位の動作1426は、第1の位置に対して位置特定コマンドを実行するようにテープ・ドライブに指示することを含んでいる。この状況では、磁気テープ・ヘッドが第1の位置をすでに通過しており、したがって、第1の部分に再びアクセスするにはテープが巻き戻されなければならないということが決定されたため、第1の位置にアクセスするために位置特定コマンドが使用されるのが望ましい。すぐに明らかになるように、磁気テープ上の特定の位置にアクセスするための代替の方法は、テープを特定の位置に向かう方向に進めるために読み取り動作を実行することを含んでよい。しかし、一部のテープ・ドライブは、1方向のみで読み取り動作を実行できるという点において、単方向である。したがって、第1の位置が磁気テープ・ヘッドによってすでに通過されている場合、第1の位置にアクセスするために、読み取り動作ではなく位置特定動作を実行することが望ましいことがある。しかしながら、本発明の他の実施形態では、テープ・ドライブが、テープの両方の移動方向(供給リールから巻き取りリールへ、および巻き取りリールから供給リールへ)で読み取り動作を実行できる双方向テープ・ヘッドを有してよい。したがって、本発明を限定するよう全く意図されていない一部の例によれば、判定1424が実行されなくてよく、フローチャートが判定1422から判定1428に直接進んでよい。
図23の下位の動作1426をさらに参照すると、位置特定コマンドは、磁気テープの現在アクセスされている領域よりもテープの先頭に近い磁気テープ上の位置にアクセスするために、粗アクチュエータまたは精アクチュエータあるいはその両方を使用してテープを供給リールに巻き戻すことによって、テープ・ドライブによって実行されてよい。テープ・ドライブは、第1の位置を使用して位置特定コマンドを実行してよい。フローチャートが、下位の動作1426から下の図17の判定1106に直接進む。
判定1424に戻ると、第2の位置が第1の位置より大きくない(小さい)ということの決定に応答して、フローチャートが判定1428に進む。前述したように、テープの先頭からの各位置の距離に対応する各位置に、値が割り当てられてよい。したがって、第1の位置よりも第2の位置のほうがテープの先頭に近いということの決定に応答して、フローチャートが判定1428に進んでよい。そこでは、判定1428が、磁気テープを第2の位置から第1の位置に進めるために位置特定動作を実行することに関連する「第1の時間」が、磁気テープを第2の位置から第1の位置に進めるために複数の連続的読み取り動作を実行することに関連する「第2の時間」より少ないかどうかを判定することを含んでいる。第1の位置と第2の位置の間の距離に応じて、磁気テープを進めるために使用されるプロセスによって、磁気テープ・ヘッドが第1の位置のほぼ上に配置されるように磁気テープを進めるのにかかる時間が変化することがある。例えば、第1の位置および第2の位置が大きい距離で分離されている場合、位置特定コマンドを実行することが磁気テープをより効率的に進めることができ、一方、第1の位置および第2の位置が互いに接近して配置されている場合、複数の連続的読み取り動作を実行することが磁気テープをより効率的に進めることができる。
しかしながら、磁気テープ・ヘッドが第1の位置にアクセスできるように磁気テープを進めるために、どのプロセスが最も効率的かに関する詳細は、特定のテープ・ドライブに依存することがある。前述したように、ターゲット・レコードの位置に対する位置特定検索は、ターゲット・レコードがテープ・ドライブ内のバッファにすでに格納されている場合でも、ファームウェアを介して処理される。その結果、位置特定コマンドを処理するには、相対的に長い時間tlがかかる。位置特定コマンドが実行された後でも、テープ・ドライブは、その直後に読み取り動作を実行しなければならない。さらに、位置特定コマンドの直後の読み取りは、ファームウェアにおけるハードウェアの設定時間を含んでおり、したがってその実行には、同様に相対的に長い時間tr1がかかる。しかしながら、複数の連続的読み取り動作の実行は、ファームウェアではなくハードウェアを使用して処理され、したがってその実行には、極めて少ない時間tr2がかかる。これは、テープ・ドライブが通常、順方向での連続的読み取りに高度に最適化された特性を有しているということに、部分的に起因する。
これらの異なる動作の各々を処理するのにかかる実際の時間は、既定のテープ・ドライブの種類(例えば、世代)、構成などに応じて変化することがある。したがって、これらの異なる処理時間に関連する値を決定するために、テープ・ドライブが、製造された後にテストされてよい。これらの値は、今後の参照のために、テープ・ドライブのメモリ(例えば、ルックアップ・テーブル)にさらに格納されてよい。
位置特定コマンドおよび複数の連続的読み取り動作の実行に関連する実行時間が相対的に高速であるか低速であるにもかかわらず、これらの実行時間は、磁気テープ上の第1の位置と第2の位置を分離する間隔に、少なくとも多少依存する。式1は、磁気テープを第2の位置から第1の位置に進めるために位置特定動作を実行することに関連する第1の時間が、磁気テープを第2の位置から第1の位置に進めるために複数の連続的読み取り動作を実行することに関連する第2の時間より少ないかどうかを判定するための例示的な方法を提供する。したがって式1または同等の式1.1(上記)は、一部の方法では、判定1428を実行するために使用されてよい。したがって、複数の連続的読み取り動作の実行時間が、位置特定動作を実行してから読み取り動作を実行する時間より少ないかどうかは、要求されたデータの開始位置(「第1の位置」)と、磁気テープに対する相対的な磁気テープ・ヘッドの現在の位置(「第2の位置」)との間の距離に依存する。
したがって、一部の方法では、使用中にPDおよびPCの特定の値に対してオンザフライに式1が真であるかどうかを判定するのではなく、既定のテープ・ドライブに関して真である論理的ステートメントをもたらすPDおよびPCの相対的値の範囲を決定するために、式1が使用されてよい。言い換えると、位置特定コマンドの処理時間tl、位置特定の後の読み取りの処理時間tr1、および連続的読み取りの処理時間tr2は、すべて既定のテープ・ドライブに関して既知であることがある(または、少なくとも決定できる)ため、式1が真になることをもたらす(PD−PC+1)の値の範囲を決定することができる。さらに、決定された範囲内にある(PD−PC+1)の値をもたらすPDおよびPCの値の範囲は、外挿され、例えばルックアップ・テーブルなどのメモリに格納されてもよい。したがって、一部の方法では、判定1428は、ルックアップ・テーブルにアクセスし、第2の位置を第1の位置から分離する磁気テープの長手方向の長さに沿った距離が、式1が真であることをもたらす既定の範囲内であるかどうかを判定することによって、決定されてよい。同様に、2つの位置間のデータの複数の部分に基づいて判定が行われてよい。例えば、実行される各読み取り要求がデータの1つの部分(例えば、ブロック)を読み取ることに対応すると仮定して、実行される読み取り要求の数に基づいて判定が行われてよい。しかしながら、判定1428は、本説明を読んだ後に当業者にとって明らかになる任意のプロセスを使用して判定されてよい。
引き続き図23を参照すると、複数の連続的読み取り動作を実行する時間が、位置特定動作を実行してから読み取り動作を実行する時間より大きいということの決定に応答して、フローチャートが下位の動作1426に進む。前述したように、下位の動作1426は、本明細書に記載された方法のいずれかに従って第1の位置に対して位置特定コマンドを実行するように、テープ・ドライブに指示することを含んでいる。代替として、複数の連続的読み取り動作を実行する時間が、位置特定動作を実行してから読み取り動作を実行する時間より少ないということの決定に応答して、フローチャートが下位の動作1430に進んでよい。図に示されているように、下位の動作1430は、複数の連続的読み取り動作を実行するようにテープ・ドライブに指示することを含んでいる。一部の方法によれば、実行される各読み取り動作は、データの単一の部分を読み取ることに対応してよい。例えば、実行される各読み取り動作は、磁気テープに格納されたデータの単一のブロックを読み取ることに対応してよい。
さらに、磁気テープを望ましい位置に進めるために複数の連続的読み取り動作が実行されているため、複数の連続的読み取り動作の実行中にテープから実際に読み取られるデータは、望まれていない。したがって、複数の連続的読み取り動作の間に読み取られたデータは、メモリに格納されたり、さらに処理を実行するために使用したり、ユーザに提供されたりなどせず、破棄される(例えば、削除される)のが好ましい。したがって、下位の動作1430は、データが読み取られた直後にデータを破棄する(例えば、削除する)ようにテープ・ドライブに指示することをさらに含んでよい。複数の連続的読み取り動作の各々の間に読み取られたデータは、少なくともある程度メモリに格納されてよいということに、注意するべきである。例えば、磁気テープの既定の部分から読み取られたデータは、読み取られたときに読み取りバッファに追加されてよい。しかしながら、例えば本説明を読んだ後に当業者によって理解されるであろうように、削除される前に読み取り動作を実行すること以外の方法で、データが格納されることも使用されることもないことが好ましい。したがって、一部の方法では、読み取り動作のうちのその後の1つが実行される前に(例えば、データがすべて使用される前に)、複数の連続的読み取り動作の各々の間に読み取られたデータが破棄される。フローチャートが、下位の動作1430から、本明細書に記載された方法のいずれかに従って実行されてよい図17の判定1106に直接進む。
本発明を限定するよう全く意図されていない本発明の使用中の別の実施形態例によれば、図24は、要求されたデータの後続の部分に対して位置特定−読み取りの方法を実行する例示的な下位の動作を含んでおり、これらの下位の動作のうちの1つまたは複数が、上記の図17の動作1108を実行するために使用されてよい。ただし、図24の下位の動作が、本発明を限定するよう全く意図されていないということに、注意するべきである。
図に示されているように、図24のフローチャートは、要求されたデータの部分のコピーがI/Oキャッシュ内にあるかどうかを判定することを含む判定1440を含んでいる。要求されたデータの部分のコピーがI/Oキャッシュ内にないということの決定に応答して、フローチャートが下位の動作1442に進む。そこでは、下位の動作1442が、要求されたデータの部分を磁気テープから読み取るようにテープ・ドライブに指示することを含んでいる。さらに、下位の動作1444は、磁気テープから読み取られた要求されたデータの部分を要求することを含んでいる。言い換えると、下位の動作1444は、動作1442でテープ・ドライブから読み取られたデータを要求することを含んでいる。テープ・ドライブは、有線電気接続(例えば、図16を参照)、無線接続(例えば、アンテナを使用する)、または本明細書に記載されたさまざまなプロセスを実行するコンポーネントに情報を転送する任意のその他の望ましい方法を介して、読み取られたデータを提供してよい。
下位の動作1446は、テープ・ドライブによって磁気テープから読み取られた要求されたデータの部分をテープ・ドライブから受信することを含んでいる。さらに、下位の動作1448は、テープ・ドライブから受信された(テープ・ドライブによって読み取られた)要求されたデータの部分を読み取りバッファに追加することを含んでいる。
判定1440に戻ると、要求されたデータの部分のコピーがI/Oキャッシュ内にあるということの決定に応答して、フローチャートが下位の動作1450に進む。そこでは、下位の動作1450が、要求されたデータの部分を読み飛ばすために位置特定コマンドを実行することを含んでいる。さらに、下位の動作1452は、I/Oキャッシュ内にあることが決定された要求されたデータの部分のコピーを要求することを含んでおり、一方、下位の動作1454は、要求されたデータの部分の要求されたコピーをI/Oキャッシュから受信することを含んでいる。さらに、下位の動作1456は、I/Oキャッシュから受信された要求されたデータの部分の要求されたコピーを読み取りバッファに追加することを含んでいる。要求されたデータの部分のコピーに対するI/Oキャッシュに送信された要求は、一部の方法では、例えば本説明を読んだ後の当業者によって理解されるであろうように、仮想テープ・システム(VTS:virtual tape system)によって実行されてよい。
図に示されているように、図24のフローチャートは、下位の動作1456および下位の動作1448から判定1458に進む。判定1458は、まだ評価されて(例えば、読み取られて)いない要求されたデータのその他の部分があるかどうかを判定することを含んでいる。フローチャートは、まだ読み取られていない要求されたデータの少なくとも1つの部分があるということの決定に応答して、判定1440に戻り、図24に含まれているプロセスのうちの任意のプロセスが、少なくとも1つの部分に対して繰り返されてよい。しかし、評価するための要求されたデータの部分がそれ以上残されていないということの決定に応答して、フローチャートが図17の動作1112に直接戻る。
本発明を限定するよう全く意図されていない本発明の使用中のさらに別の実施形態例によれば、図25は、要求されたデータの後続の部分に対して連続的読み取りの方法を実行する例示的な下位の動作を含んでおり、これらの下位の動作のうちの1つまたは複数が、上記の図17の動作1110を実行するために使用されてよい。ただし、図25の下位の動作が、本発明を限定するよう全く意図されていないということに、注意するべきである。
図に示されているように、図25のフローチャートは、要求されたデータの部分を磁気テープから読み取るようにテープ・ドライブに指示することを含んでいる。下位の動作1460を参照する。前述したように、連続的読み取りの方法は、部分のコピーがキャッシュにも格納されているかどうかにかかわらず、要求されたデータの各部分を読み取ることを含んでいる。したがって、要求されたデータの部分が磁気テープから読み取られた後に、フローチャートは、要求されたデータの部分のコピーがI/Oキャッシュ内にあるかどうかを判定することを含んでいる判定1462に進む。要求されたデータの部分のコピーがI/Oキャッシュ内にあるということの決定に応答して、フローチャートは、磁気テープから読み取られた要求されたデータの部分を、その他の方法で使用せずに破棄する(削除する)ようにテープ・ドライブに指示することを含んでいる、下位の動作1464に進む。
キャッシュ内にもある要求されたデータの部分を読み取り、その後単に削除するこのプロセスは、連続的読み取りの方法の一部として「模倣読み取り(imitation read)」と見なされてよい。やはり、一部の状況では、キャッシュから(例えば、VTSによって)実際に提供されるデータの部分ごとに読み飛ばす(位置特定動作を実行する)のにかかる時間とは対照的に、どの部分がキャッシュから実際に提供されるかにかかわらず、要求されたデータのすべての部分をテープから読み取るのにかかる時間が少ないことがある。したがって、模倣読み取りは、連続的読み取りの方法の一部として、データが磁気テープから読み取られ、その直後に削除されることを含んでよいが、この方法は、完了するためにより少ない時間を消費するという意味で、代替の位置特定−読み取りの方法より望ましいことがある。ただし、磁気ディスクを含んでいるシステムでは一般的であるように、本明細書に記載された方法のうちのさまざまな方法によって有意な改善が達成されないことがあるということに、注意するべきである。前述したように、読み取り動作の実行間の複数の位置特定動作の実行に起因する読み取り速度の低下は、ディスク上のファイル・システムのデータ構造および物理的ディスク・システムの物理的構造のため、無視できる。したがって、例えば本説明を読んだ後の当業者によって理解されるであろうように、磁気ディスクから特定のデータにアクセスする環境内でこれらのプロセスの一部を実装することは、望ましくないことがある。
引き続き図25を参照すると、下位の動作1466は、I/Oキャッシュ内にあることが決定された要求されたデータの部分のコピーを要求することを含んでおり、一方、下位の動作1468は、要求されたデータの部分の要求されたコピーをI/Oキャッシュから受信することを含んでいる。さらに、下位の動作1470は、キャッシュから受信された要求されたデータの部分の要求されたコピーを読み取りバッファに追加することを含んでいる。
判定1462に戻ると、要求されたデータの部分のコピーがI/Oキャッシュ内にないということの決定に応答して、フローチャートが下位の動作1472に進んでよい。そこでは、下位の動作1472が、テープ・ドライブによって磁気テープから読み取られた要求されたデータの部分を要求することを含んでいる。本明細書において説明された方法または提案された方法あるいはその両方のいずれかに従って、下位の動作1472で送信された要求に応答して、テープ・ドライブによって読み取られたデータが提供されてよい。したがって、下位の動作1474は、テープ・ドライブによって磁気テープから読み取られた要求されたデータの部分をテープ・ドライブから受信することをさらに含んでいる。また、下位の動作1476は、キャッシュから受信された要求されたデータの部分の要求されたコピーを読み取りバッファに追加することを含んでいる。
図に示されているように、図25のフローチャートは、下位の動作1476および下位の動作1470から判定1478に進む。判定1478は、まだ評価されて(例えば、読み取られて)いない要求されたデータのその他の部分があるかどうかを判定することを含んでいる。フローチャートは、まだ読み取られていない要求されたデータの少なくとも1つの部分があるということの決定に応答して、下位の動作1460に戻り、図25に含まれているプロセスのうちの任意のプロセスが、少なくとも1つの部分に対して繰り返されてよい。しかし、評価するための要求されたデータの部分がそれ以上残されていないということの決定に応答して、フローチャートが図17の動作1112に直接戻る。
前述したように、図23〜図25に含まれているサブプロセスのうちのさまざまなサブプロセスが、示されている順序とは異なる順序で実行されてよいということに、注意するべきである。例えば、部分が読み取られた後に、要求されたデータの単一の部分のコピーがI/Oキャッシュ内にあるかどうかを判定するのではなく(図25の判定1462を参照)、例えば、キャッシュ内にあるということが決定された部分に対する要求を、磁気テープから部分を読み取ることと同時に発行できるように、要求されたデータの複数の部分の各々がキャッシュ内にあるかどうかに関する判定が行われてよい。別の例によれば、要求されたデータの部分の各々を読み取りバッファに個別に追加するのではなく、キャッシュ内にあるということが決定された要求されたデータの部分の全部または一部が、(例えば、システムのスループットを減らすために)キャッシュから一緒に受信され、読み取りバッファに一緒に追加されてよい。一部の方法では、キャッシュから受信された要求されたデータの部分は、磁気テープから読み取られた(破棄されなかった)要求されたデータの部分と共に、読み取りバッファに追加されてよい。
したがって、本明細書に記載された方法のうちのさまざまな方法は、データの一部が例えばシステムのカーネル・レベルでキャッシュされるテープ・ドライブを使用してデータのグループのストリーム読み取りを実行するときに、従来の製品において発生する性能低下を克服することができる。
前述したように、読み取り要求の受信時に、テープに基づくファイル・システムは、テープに対する相対的な磁気ヘッドの現在の位置と、読み取られるレコードの位置との間の差を計算し、このレコードに到達する最も有利な方法を決定してよい。例えば、システムは、位置特定−読み取りの方法、または、返されたデータのうち、キャッシュからアクセスされるデータを破棄しながらの連続的読み取りの方法から選択してよい。その結果、ファイル・システムは、これらの方法のうちのより望ましい1つを実施することによって、読み取り要求を実行してよく、それによって、現在の(例えば、特定の)システム・パラメータに基づくシステム性能を改善し、読み取りアクセス時間を減らし、テープ・ドライブの摩耗を軽減する。したがって、位置特定コマンドの代わりに模倣読み取りコマンドを使用することの導入は、そうすることが位置特定−読み取りの方法を実施することより有利である特定の状況では、従来の欠点を克服する大幅な改善を実現する。
しかしながら、システム性能、データ・アクセス時間、読み取りスループットなどの改善は、性能の他の領域を多少犠牲にして得られることがあるということに注意するべきである。例えば、一部のオペレーティング・システムは、I/Oキャッシュを制御するコマンドを提供することがある。例えば、既定のオペレーティング・システムは、カーネル内でI/Oキャッシュの内容を破棄するためのメカニズムを提供することがある。しかしながら、このメカニズムが実装された場合、LTFS以外のファイル・システムに関連するキャッシュの内容も破棄し、それによってLTFSの読み取り性能が改善されるが、他のファイル・システムの読み取り性能が低下することがある。したがって、例えば本説明を読んだ後の当業者によって理解されるであろうように、本明細書に記載された方法のうちのさまざまな方法を実施することによって達成される利益を、同じストレージ・システム内の他のファイル・システムに発生することがある抑制と比較検討することが、望ましい場合がある。
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、ROM、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブルロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ実装プロセスを生成するために、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれ、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で一連の動作可能なステップを実行させるものであってもよい。
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
さらに、本発明のさまざまな実施形態に従うシステムは、プロセッサ、およびプロセッサに統合されたロジックまたはプロセッサによって実行可能なロジックあるいはその両方を含むことができ、このロジックは、本明細書において列挙された処理ステップのうちの1つまたは複数を実行するように構成される。統合されるということは、つまり、プロセッサにロジックが、特定用途向け集積回路(ASIC:application specific integrated circuit)、フィールド・プログラマブル・ゲート・アレイ(FPGA)などのハードウェアロジックとして組み込まれるということである。プロセッサによって実行可能であるということは、つまり、ロジックが、プロセッサによってアクセス可能なハードウェアロジック、ソフトウェアロジック(ファームウェア、オペレーティング・システムの一部、アプリケーション・プログラムの一部など)など、またはハードウェアロジックとソフトウェアロジックの何らかの組み合わせであり、プロセッサによって実行されたときに何らかの機能をプロセッサに実行させるように構成されているということである。ソフトウェアロジックは、従来技術において知られた任意のメモリ・タイプの、ローカルまたはリモートあるいはその両方のメモリに格納されてよい。ASIC、FPGA、中央処理装置(CPU:central processing unit)、集積回路(IC:integrated circuit)といった、ソフトウェア・プロセッサ・モジュールまたはハードウェア・プロセッサあるいはその両方などの、従来技術において知られた任意のプロセッサが使用されてよい。
上で提示された説明から複数の組み合わせを作成して、前述のシステムまたは方法あるいはその両方のさまざまな特徴が任意の方法で組み合わせられてよいということが明らかである。
本発明の実施形態が、顧客のために展開されるサービスの形態で提供されてよいということが、さらに理解されるであろう。
本明細書で開示された本発明の概念は、その無数の特徴を示すために、複数の例示的な状況、実施形態、または実装、あるいはその組み合わせにおいて例として提示されている。開示された概念が、通常はモジュールと見なされるべきであり、任意の組み合わせ、並べ替え、またはその統合において実装されてよいということが、理解されるべきである。加えて、本明細書において開示された、本説明を読むときに当業者によって理解されるであろう特徴、機能、および概念の任意の変更、改変、または均等のものも、本開示の範囲に含まれると見なされるべきである。
上ではさまざまな実施形態が説明されたが、これらの実施形態は単に例として提示されており、これらに限定されないということが理解されるべきである。したがって、本発明の実施形態の広さおよび範囲は、前述された本発明の実施形態例のいずれによっても限定されるべきではなく、以下の特許請求の範囲およびそれらと均等のもののみに従って定義されるべきである。