(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-16
(54)【発明の名称】動的テープストレージデバイスデータバッファ
(51)【国際特許分類】
G06F 16/11 20190101AFI20240208BHJP
【FI】
G06F16/11
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023545315
(86)(22)【出願日】2022-01-31
(85)【翻訳文提出日】2023-07-26
(86)【国際出願番号】 IB2022050811
(87)【国際公開番号】W WO2022180462
(87)【国際公開日】2022-09-01
(32)【優先日】2021-02-25
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100118599
【氏名又は名称】村上 博司
(74)【復代理人】
【識別番号】100160738
【氏名又は名称】加藤 由加里
(72)【発明者】
【氏名】安部 敦
(72)【発明者】
【氏名】宮村 剛志
(72)【発明者】
【氏名】板垣 浩
(72)【発明者】
【氏名】長谷川 徹
(72)【発明者】
【氏名】山本 紀子
(72)【発明者】
【氏名】三間 慎介
(72)【発明者】
【氏名】松井 壮介
(57)【要約】
テープがDATA_FULL状態に遷移するところの該テープ上の位置を変更する為の、コンピュータに実装された方法が開示される。該コンピュータに実装された方法は、ファイルが該テープのデータパーティションに書き込まれた後に、該ファイルに関連付けられたメタデータを表すインデックスのサイズを決定することを更に含む。該コンピュータに実装された方法は、該テープが該DATA_FULL状態に遷移するところの該テープの該データパーティション内の位置を、該ファイルに関連付けられたメタデータを表す該インデックスの該サイズに基づいて変更することを更に含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
テープがDATA_FULL状態に遷移するところの前記テープ上の位置を変更する為の、コンピュータに実装された方法であって、
ファイルが前記テープのデータパーティションに書き込まれた後に、前記ファイルに関連付けられたメタデータを表すインデックスのサイズを決定すること;及び、
前記テープが前記DATA_FULL状態に遷移するところの前記テープの前記データパーティション内の位置を、前記ファイルに関連付けられたメタデータを表す前記インデックスの前記サイズに基づいて変更すること
を含む、前記方法。
【請求項2】
前記DATA_FULL状態が、メタデータ書き込み動作のみが許可されるところの前記テープの状態である、請求項1に記載の、コンピュータに実装された方法。
【請求項3】
ファイル動作の間に前記テープの前記データパーティション内のプログラム可能なアーリーウォーニングゾーン(PEWZ)の終わりにテープヘッドが到達したことに応答して、前記DATA_FULL状態が発生する、請求項2に記載の、コンピュータに実装された方法。
【請求項4】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置を変更することが、前記テープの前記データパーティション内の前記PEWZの位置を変更することを更に含む、請求項1に記載の、コンピュータに実装された方法。
【請求項5】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置を変更することが、前記テープの前記データパーティション内の前記PEWZの後に位置するバッファのサイズを変更することを更に含み、ここで、メタデータ書き込み動作のみが前記バッファ内で許される、請求項4に記載の、コンピュータに実装された方法。
【請求項6】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の現在位置と前記テープの前記データパーティションの書き込み可能領域の終わりとの間に配置されるバッファのストレージ領域よりも前記ファイルの前記インデックスの前記サイズが小さい場合に、前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置が、前記テープの前記データパーティションの前記書き込み可能領域の前記終わりに向かって移される、請求項1に記載の、コンピュータに実装された方法。
【請求項7】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の現在位置と前記テープの前記データパーティションの書き込み可能領域の終わりとの間に配置されるバッファのストレージ領域よりも前記ファイルの前記インデックスの前記サイズが大きい場合に、前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置が、前記テープの前記データパーティションの前記書き込み可能領域の前記終わりから遠ざかって移される、請求項1に記載の、コンピュータに実装された方法。
【請求項8】
テープがDATA_FULL状態に遷移するところの前記テープ上の位置を変更する為のコンピュータプログラム製品であって、前記コンピュータプログラム製品が、1以上のコンピュータ可読ストレージ媒体、及び前記1以上のコンピュータ可読ストレージ媒体上に記憶された複数のプログラム命令を備えており、前記複数のプログラム命令が、
ファイルが前記テープのデータパーティションに書き込まれた後に、前記ファイルに関連付けられたメタデータを表すインデックスのサイズを決定し;及び、
前記テープが前記DATA_FULL状態に遷移するところの前記テープの前記データパーティション内の位置を、前記ファイルに関連付けられたメタデータを表す前記インデックスの前記サイズに基づいて変更する
為の命令を含む、前記コンピュータプログラム製品。
【請求項9】
前記DATA_FULL状態が、メタデータ書き込み動作のみが許可されるところの前記テープの状態である、請求項8に記載のコンピュータプログラム製品。
【請求項10】
書き込み動作の間に前記テープの前記データパーティション内のプログラム可能なアーリーウォーニングゾーン(PEWZ)の終わりにテープヘッドが到達したことに応答して、前記DATA_FULL状態が発生する、請求項9に記載のコンピュータプログラム製品。
【請求項11】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置を変更する為の命令が、前記テープの前記データパーティション内の前記PEWZの位置を変更する為の命令を更に含む、請求項8に記載のコンピュータプログラム製品。
【請求項12】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置を変更する為の命令が、前記テープの前記データパーティション内の前記PEWZの後に位置するバッファのサイズを変更する為の命令を更に含み、ここで、メタデータ書き込み動作のみが前記バッファ内で許される、請求項11に記載のコンピュータプログラム製品。
【請求項13】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の現在位置と前記テープの前記データパーティションの書き込み可能領域の終わりとの間に配置されるバッファのストレージ領域よりも前記ファイルの前記インデックスの前記サイズが小さい場合に、前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置が、前記テープの前記データパーティションの前記書き込み可能領域の前記終わりに向かって移される、請求項8に記載のコンピュータプログラム製品。
【請求項14】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の現在位置と前記テープの前記データパーティションの書き込み可能領域の終わりとの間に配置されるバッファのストレージ領域よりも前記ファイルの前記インデックスの前記サイズが大きい場合に、前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置が、前記テープの前記データパーティションの前記書き込み可能領域の前記終わりから遠ざかって移される、請求項8に記載のコンピュータプログラム製品。
【請求項15】
テープがDATA_FULL状態に遷移するところの前記テープ上の位置を変更する為のコンピュータシステムであって、該コンピュータシステムは、
1以上のコンピュータプロセッサ;
1以上のコンピュータ可読ストレージ媒体;及び、
複数のコンピュータプログラム命令、ここで、該複数のコンピュータプログラム命令は、前記1以上のコンピュータプロセッサによって実行される為に前記1以上のコンピュータ可読ストレージ媒体上に記憶される、
を備えており、前記コンピュータプログラム命令は、
ファイルが前記テープのデータパーティションに書き込まれた後に、前記ファイルに関連付けられたメタデータを表すインデックスのサイズを決定し;及び、
前記テープが前記DATA_FULL状態に遷移するところの前記テープの前記データパーティション内の位置を、前記ファイルに関連付けられたメタデータを表す前記インデックスの前記サイズに基づいて変更する
為の命令を含む、前記コンピュータシステム。
【請求項16】
前記DATA_FULL状態が、メタデータ書き込み動作のみが許可されるところの前記テープの状態である、請求項15に記載のコンピュータシステム。
【請求項17】
書き込み動作の間に前記テープの前記データパーティション内のプログラム可能なアーリーウォーニングゾーン(PEWZ)の終わりにテープヘッドが到達したことに応答して、前記DATA_FULL状態が発生する、請求項16に記載のコンピュータシステム。
【請求項18】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置を変更する為の命令が、前記テープの前記データパーティション内の前記PEWZの位置を変更する為の命令を更に含む、請求項15に記載のコンピュータシステム。
【請求項19】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の現在位置と前記テープの前記データパーティションの書き込み可能領域の終わりとの間に配置されるバッファのストレージ領域よりも前記ファイルの前記インデックスの前記サイズが小さい場合に、前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置が、前記テープの前記データパーティションの前記書き込み可能領域の前記終わりに向かって移される、請求項15に記載のコンピュータシステム。
【請求項20】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の現在位置と前記テープの前記データパーティションの書き込み可能領域の終わりとの間に配置されるバッファのストレージ領域よりも前記ファイルの前記インデックスの前記サイズが大きい場合に、前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置が、前記テープの前記データパーティションの前記書き込み可能領域の前記終わりから遠ざかって移される、請求項15に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的にテープストレージシステムの分野に、より特には複数のパーティションを有する磁気テープストレージシステムに、関する。
【背景技術】
【0002】
テープドライブは、磁気テープ上でデータを読み書きするデータストレージデバイスである。現在の磁気テープデータストレージは、テープがパーティションとして知られている個別に書き込み可能な領域へと分割されることができる。例えば、磁気テープは、インデックスパーティション(Index Partition)と1以上のデータパーティションとに分割されうる。テープパーティションの登場により、リニアテープファイルシステム(LTFS:Linear Tape File System)として知られているテープフォーマット及びファイルシステムは、他の外部ストレージデバイス、例えばUSBフラッシュドライブ又は外付けハードディスクドライブ、と同様の様式でテープを利用することを可能にする。従って、LTFSにおいて、ファイルデータ及びファイルシステムのメタデータが該テープ上の別々のパーティション内に記憶され、ここで、インデックスは、ディレクトリ内に編成されているかのようにファイルデータを表示する。
【発明の概要】
【課題を解決するための手段】
【0003】
本発明の1つの実施態様に従うと、テープがDATA_FULL状態に遷移するところの該テープ上の位置を変更する為の、コンピュータに実装された方法が開示される。該コンピュータに実装された方法は、ファイルが該テープのデータパーティションに書き込まれた後に、該ファイルに関連付けられたメタデータを表すインデックスのサイズを決定することを含む。該コンピュータに実装された方法は更に、該テープが該DATA_FULL状態に遷移するところの該テープの該データパーティション内の位置を、該ファイルに関連付けられたメタデータを表す該インデックスの該サイズに基づいて変更することを含む。
【0004】
本発明の別の実施態様に従うと、テープがDATA_FULL状態に遷移するところの該テープ上の位置を変更する為のコンピュータプログラム製品が開示される。該コンピュータプログラム製品は、1以上のコンピュータ可読ストレージ媒体、及び1以上のコンピュータ可読ストレージ媒体上に記憶された複数のプログラム命令を備えている。該複数のプログラム命令は、ファイルが該テープのデータパーティションに書き込まれた後に、該ファイルに関連付けられたメタデータを表すインデックスのサイズを決定する為の命令を含む。該複数のプログラム命令は更に、該テープが該DATA_FULL状態に遷移するところの該テープの該データパーティション内の位置を、該ファイルに関連付けられたメタデータを表す該インデックスの該サイズに基づいて変更する為の命令を含む。
【0005】
本発明の別の実施態様に従うと、テープがDATA_FULL状態に遷移するところの該テープ上の位置を変更する為のコンピュータシステムが開示される。該コンピュータシステムは、1以上のコンピュータプロセッサ、1以上のコンピュータ可読ストレージ媒体、及び、該1以上のコンピュータプロセッサのうちの少なくとも1つによって実行される為に該1以上のコンピュータ可読ストレージ媒体上に記憶された複数のプログラム命令を含む。該複数のプログラム命令は、ファイルが該テープのデータパーティションに書き込まれた後に、該ファイルに関連付けられたメタデータを表すインデックスのサイズを決定する命令を含む。該複数のプログラム命令は更に、該テープが該DATA_FULL状態に遷移するところの該テープの該データパーティション内の位置を、該ファイルに関連付けられたメタデータを表す該インデックスの該サイズに基づいて変更する為の命令を含む。
【図面の簡単な説明】
【0006】
【
図1】
図1は、本発明の少なくとも1つの実施態様に従う、バッファプログラム101の動作の為に適した、一般的に100と指定されるネットワークコンピューティング環境の機能ブロック図である。
【
図2】
図2は、本発明の少なくとも1つの実施態様に従う、一般的に200と指定されるテープ上に記録する例示的なリニア・サーペンタイン(linear serpentine)である。
【
図3A】
図3Aは、本発明の少なくとも1つの実施態様に従う、テープのデータパーティション300A上に記憶されるファイルデータの一例を図示するブロック図である。
【
図3B】
図3Bは、本発明の少なくとも1つの実施態様に従う、
図3Aのデータパーティション300Aにファイルデータを付加した後にテープのデータパーティション300B内に記憶されるファイルデータの一例を図示するブロック図である。
【
図4A】
図4Aは、本発明の少なくとも1つの実施態様に従う、一般的に400Aと指定されるLTFSボリュームの一例を図示するブロック図である。
【
図4B】
図4Bは、本発明の少なくとも1つの実施態様に従う、一般的に400Bと指定される、テープ上のプログラム可能なアーリーウォーニングゾーン(PEWZ:programmable early warning zone)の一例を図示するブロック図である。
【
図5】
図5は、本発明の少なくとも1つの実施態様に従って、テープがDATA_FULL状態に遷移するところの該テープ上の位置を変更する為の動作工程を図示する、一般的に500と指定されるフローチャート図である。
【
図6】
図6は、本発明の少なくとも1つの実施態様に従う、一般的に50と指定されるクラウドコンピューティング環境を図示するブロック図である。
【
図7】
図7は、本発明の少なくとも1つの実施態様に従う、
図6のクラウドコンピューティング環境50によって提供される抽象化モデル層を図示するブロック図である。
【
図8】
図8は、本発明の少なくとも1つの実施態様に従う、バッファプログラム101を実行する為に適した、一般的に800と指定されるコンピュータの構成要素を図示するブロック図である。
【発明を実施するための形態】
【0007】
本発明は、一般的にテープストレージシステムの分野に、より特には複数のパーティションを有する磁気テープストレージシステムに、関する。
【0008】
リニアテープオープン(LTO:Linear tape open)は、磁気テープのデータストレージ技術である。LTOストレージ技術は一般的に、着脱可能なテープカートリッジ内に記憶された単一のリールの磁気テープを有するオープンフォーマットのテープストレージ技術として言及されうる。LTOストレージ技術は、追加のオプションのフォーマットの為の技術、例えば、圧縮、ライトワンスリードメニー(WORM:Write Once Read Many)、暗号化、及びリニアテープファイルシステム(LTFS:Linear Tape File System)、を提供するが、これらに限定されない。典型的に、最新世代のLTOテープカートリッジは、最大4つのデータパーティションを含むようにフォーマットされることが可能である。しかしながら、在りうるデータパーティションの数はLTOテープカートリッジの特定の世代に依存する。
【0009】
LTOフォーマットされたテープカートリッジ内に収容されているテープ媒体は典型的には、該テープの長さを水平方向に延在する4つのデータバンドへと分割される。該4つのデータバンドの各々は、両側の狭いサーボバンドによって分離されている(合計5つの狭いサーボバンドになる)。サーボバンドは、テープヘッドが特定のデータバンド内でデータを読み書きする場合に、位置情報を該テープヘッドに提供する。テープヘッドは一般的に、1つのデータバンドと、隣接する(すなわち、上部及び下部の)サーボバンドとの幅に及び、そして、水平方向のテープの幅を横切って垂直方向に移動する。テープヘッドの位置は、サーボバンドのシステムと、製造時に各サーボバンド内に符号化された情報とによって制御される。該テープヘッドが該テープの幅を垂直方向に移動する一方で、該テープはその長さに沿って水平方向に移動されることができ(すなわち、リール上にテープを巻き取ったり巻き戻したりすることによって)、該テープヘッドが該テープの異なる部分と相互作用することを可能にする。
【0010】
該テープからの読み取り及び該テープへの書き込みを行うテープヘッドアセンブリは、1つのデータバンドと2つの隣接するサーボバンドにまたがっている。該テープヘッドアセンブリは、8、16又は32個のデータ読み取り/書き込みヘッド要素(単一のデータバンド内のトラックの対応する1組に基づく)の1組と2つのサーボ読み取り要素を有することができる。所与の1組における与えられたセット内の全てのトラックで、単一の、一方向の、エンドツーエンド(end-to-end)のパス(すなわち、ラップ)において読み取り又は書き込みが行われる。該テープの全長にわたってパスを行った後に、全てのテープヘッドが横方向にわずかにシフトして、該バンド内の別のラップ(又は他のバンド内のラップ)にアクセスし、逆方向における別のパスを行う。ラップは順方向のパスと逆方向のパスで継続される。この手順はリニア・サーペンタイン・レコーディング(linear serpentine recording)として知られており、該バンド内の全てのトラックが書き込まれるまで繰り返される。該テープの全領域の書き込みが終了した位置が、該テープの論理的な終わりとして識別される。
【0011】
リニアテープファイルシステム(LTFS:linear tape file system)により、LTOテープカートリッジはインデックスパーティション(IP:Index Partition)及びデータパーティション(DP:Data Partition)へと更にパーティショニングされることが可能である。ファイルデータは一般的に、該データパーティションにのみ書き込まれ、メタデータ(すなわち、該データパーティション内に記憶された該ファイルデータを記述するデータ)は該インデックスパーティションに書き込まれる。そのような様式で該テープを編成又はパーティショニングすることにより、該インデックスパーティション内にファイルインデックスを使用することを通じて、該テープが自己記述できることを可能にする。このことにより、テープストレージについてのデータ管理の複雑さを減らし且つデータアクセス時間を短縮することができる。従って、LTFSは、磁気テープストレージデバイスを他のリムーバブルストレージシステム(例えば、USBフラッシュドライブ又は外付けハードディスクドライブ)と同様の様式で使用することを可能にした。
【0012】
本発明の実施態様において、該データパーティションにファイルデータを付加している間に該テープヘッドが該テープの終わりに到達することに応じて、該テープカートリッジがエラーメッセージを返し、そして、データが該テープに更に付加されることを防ぐことが認識される。このシナリオが生じる場合に、該データパーティションに書き込まれた該ファイルデータの終わりにインデックスを付加することが不可能になり、それによって、LTFSフォーマット要件に違反する。
【0013】
本発明の実施態様において、前述された問題に対する1つの在りうる解決策が、該テープの終わりにあるストレージ領域をバッファとして指定することであることが認識される。ファイル動作の間に該バッファに到達することに応じて、DATA_FULL状態に遷移し、メタデータ書き込み動作(例えば、タイムスタンプを修正すること、ファイルを削除すること、ファイルをリネームすること、及びインデックスを書き込むこと)のみが該バッファにおいて許される。該テープヘッドが該バッファに一旦到達すると、通常のデータ書き込み動作、例えば、ファイルデータを該データパーティションに追加すること、は、もはや許されないことが留意されるべきである。
【0014】
本発明の実施態様により、該データパーティションに書き込まれたファイルデータに関連付けられたメタデータを表すインデックスのサイズが、該ファイル内のレコード数及び該ファイルの任意の拡張された属性のサイズに依存することが更に認識される。従って、該インデックスの該サイズが該バッファの該サイズを超える場合、DATA_FULL状態に遷移した後、インデックス全体が該バッファに付加されることができず、それによって最終的に依然としてLTFSフォーマット要件に違反する。
【0015】
本発明の実施態様により、ユーザアプリケーションが該データパーティションの最後のラップをバッファとしてしばしば指定することが更に認識される。しかしながら、該テープ上の単一のラップのサイズは、該テープそれ自体の長さに依存する。例えば、LTO-5テープカートリッジにおけるテープ長はわずか846mであり、一方、LTO-9テープカートリッジにおけるテープ長は1,035mである。仮にLTO-5テープカートリッジのデータパーティション長が811mであり且つLTO-5テープカートリッジのデータパーティション長が1,000mであると仮定すると、該LTO-5テープカートリッジにおける該テープ上の最後のデータラップは、該LTO-9テープカートリッジにおける該テープ上の最後のデータラップよりも189m長い。従って、該テープの終わりに該バッファに付加される該インデックスのサイズ及び該バッファそれ自体のサイズに依存して、該バッファの大きな領域が未使用のまま残されうる。これは、通常のデータ書き込み動作、例えば、該データパーティションにファイルデータを付加すること、が、該バッファ内でもはや許されなくなったという事実に起因する。
【0016】
本発明の実施態様により、テープがDATA_FULL状態に遷移する該テープ上の位置を動的に変更することによって、前述の欠点を改善する。1つの実施態様において、該テープがDATA_FULL状態に遷移するところの該テープ上の位置は、該データパーティションに書き込まれた最も新しいファイルデータを表すインデックスのサイズに基づいて移動される。1つの実施態様において、該テープがDATA_FULL状態に遷移した後にのみメタデータ書き込み動作を行う為のバッファとして、ストレージ領域が確保される。1つの実施態様において、該バッファは、該テープがDATA_FULL状態に遷移するところの該テープ上の位置に続いて配置される。従って、該テープがDATA_FULL状態に遷移するところの該テープ上の点を移動させることは、該バッファのサイズを変更することを更に含む。
【0017】
例えば、500MBのサイズを有するバッファが、テープの該データパーティションの書き込み可能領域において確保されている。該データパーティションに付加された最新のインデックスが200MBのデータを含む場合に、該バッファのサイズは、該テープ上の該データパーティションの該書き込み可能領域におけるストレージの最後の200MBに減少される。従って、本発明の実施態様は有利には、該テープがDATA_FULL状態に遷移する前にテープに付加できるファイルデータの量を最大化し、それによって最終的に、該テープの該データパーティション内の未使用ストレージスペースの量を制限する。
【0018】
通常、DATA_FULL状態への遷移後、通常のファイル動作が禁止される。従って、メタデータ書き込み動作(例えば、インデックスを付加すること)が実行された後に、該バッファにおける追加のストレージスペースが残っている場合、任意の残りのストレージスペースは、通常のファイル動作を行う為に使用できないままである。しかしながら、該テープがDATA_FULL状態に遷移するところの該テープ上の位置を動的に変更することにより、本発明の実施態様は、該テープに書き込まれるデータ量を最大化しながら、何らかの必要なメタデータ書き込み動作を実行する為に十分なバッファ空間が該テープの終わりに残っていることを保証する。
【0019】
本発明は、統合の在りうる任意の技術的詳細レベルでの、システム、方法若しくはコンピュータプログラム製品又はそれらの組み合わせでありうる。該コンピュータプログラム製品は、プロセッサに本発明の観点を実行させる為のコンピュータ可読プログラム命令を有する1以上のコンピュータ可読記憶媒体を包含しうる。
【0020】
該コンピュータ可読記憶媒体は、命令実行デバイスによって使用する為の命令を保持且つ記憶することができる有形のデバイスであることができる。該コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又はこれらの任意の適切な組み合わせでありうるが、これらに限定されない。該コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、下記を包含する:ポータブルのコンピュータディスケット(登録商標)、ハードディスク、ランダムアクセスメモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read only memory)、消去可能なプログラム可能な読み取り専用メモリ(EPROM(erasable programmable read-only memory)又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、ポータブル・コンパクトディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリスティック、フロッピーディスク、機械的に符号化されたデバイス、例えば、パンチカード若しくは命令が記録されている溝内の隆起構造又はこれらの任意の適切な組み合わせ。本明細書において使用される場合、該コンピュータ可読記憶媒体は、一時的な信号それ自体、例えば、電波又は他の自由に伝播する電磁波、導波管若しくは他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は電線を介して送信される電気信号、であると解釈されるべきでない。
【0021】
本明細書において記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から夫々のコンピューティングデバイス/処理デバイスに、又はネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク若しくはワイヤレスネットワーク又はそれらの組み合わせ、を介して外部コンピュータ又は外部記憶デバイスにダウンロードされることができる。該ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ若しくはエッジサーバ又はこれらの組み合わせで構成されうる。各コンピューティングデバイス/処理デバイスにおけるネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そして、該コンピュータ可読プログラム命令を、個々のコンピューティングデバイス/処理デバイス内にコンピュータ可読記憶媒体中に記憶する為に伝送する。
【0022】
本発明の動作を実行する為のコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の為の構成データ、又は、1以上のプログラミング言語、例えばオブジェクト指向プログラミング言語、例えば、Smalltalk、C++等、慣用的な手続き型プログラミング言語(例えば、「C」プログラミング言語又は同様のプログラミング言語)、の任意の組み合わせで書かれているソースコード又はオブジェクトコードのいずれか、でありうる。該コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に、ユーザのコンピュータ上で部分的に且つリモート・コンピュータ上で部分的に、又はリモート・コンピュータ若しくはサーバ上で全体的に、実行されうる。後者のシナリオにおいて、該リモート・コンピュータは、任意の種類のネットワーク、例えば、ローカルエリアネットワーク(LAN:local area network)若しくはワイドエリアネットワーク(WAN:wide area network)、を介してユーザのコンピュータに接続されうるか、又は該接続は(例えば、インターネットサービスプロバイダを使用したインターネットを通じて)外部コンピュータに対して行われうる。幾つかの実施態様において、電子回路、例えば、プログラム可能な論理回路、フィールドプログラム可能なゲートアレイ(FPGA:field-programmable gate arrays)又はプログラム可能なロジックアレイ(PLA:programmable logic arrays)、は、本発明の観点を実行する為に、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行しうる。
【0023】
本発明の観点は、本発明の実施態様に従う、方法、装置(システム)及びコンピュータプログラム製品若しくはコンピュータプログラムのフローチャート図若しくはブロック図又はそれらの組み合わせを参照して本明細書において記載されている。該フローチャート図若しくは該ブロック図又はそれらの組み合わせの各ブロック、並びに該フローチャート図若しくは該ブロック図又はそれらの組み合わせにおける複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されることができることが理解されるであろう。
【0024】
これらのコンピュータ可読プログラム命令は、該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行する命令が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定された機能/動作を実装する為の手段を作成するように、コンピュータのプロセッサ又は他のプログラム可能なデータ処理装置に提供されて、マシンを作り出しうる。記憶された命令を有するコンピュータ可読記憶媒体が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定される機能/動作の観点を実装する命令を含む製造品を含むように、これらのコンピュータ可読プログラム命令はまた、コンピュータプログラム可能なデータ処理装置若しくは他のデバイス又はこれらの組み合わせに特定の様式で機能するように指示することができるコンピュータ可読記憶媒体中に記憶されうる。
【0025】
該コンピュータ可読プログラム命令はまた、コンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上で実行される命令が、該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定される機能/動作を実装するように、上記のコンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上にロードされて、コンピュータ、他のプログラム可能な装置又は他のデバイス上で一連の操作工程を実行させて、コンピュータに実装されたプロセスを生成しうる。
【0026】
図面中のフローチャート図及びブロック図は、本発明の様々な実施態様に従う、システム、方法及びコンピュータプログラム製品若しくはコンピュータプログラムの在りうる実装の、アーキテクチャ、機能及び動作を示す。これに関連して、該フローチャート図又はブロック図における各ブロックは、命令のモジュール、セグメント、又はその一部を表し得、それは、特定された1以上の論理機能を実装する為の1以上の実行可能命令を含む。幾つかの代替の実装において、該ブロックにおいて示されている機能は、図面中に示されている順序とは異なって生じうる。例えば、連続して示されている2つのブロックは、実際には、関与する機能に依存して、同時に、実質的に同時に、部分的又は全体的に時間的に重複する様式で実行される1つの工程として達成されうるか、又は該ブロックは、逆の順序で実行されうる。該ブロック図若しくはフローチャート図又はこれらの組み合わせの各ブロック、並びに該ブロック図若しくはフローチャート図又はこれらの組み合わせの複数のブロックの組み合わせは、特定された機能又は動作を実行する特別な目的のハードウェアベースのシステムによって実装することができ、又は特別な目的のハードウェアとコンピュータ命令との組み合わせを実行することができることに留意されたい。
【0027】
本発明の様々な実施態様の記載は、例示の目的の為に提示されたものであり、網羅的であること又は開示された実施態様に限定されることが意図されたものでない。多くの修正及び変形が、記載された実施態様の範囲及び精神から逸脱することなしに当業者に明らかであろう。本明細書において使用される語は、実施態様の原理、実用的な用途、又は市場において見られる技術に対する技術的改善を最もよく説明する為に、又は当業者が本明細書において開示されている実施態様を理解することができるようにする為に選択された。
【0028】
本明細書において使用されている語は、特定の実施態様を説明する目的のみのものであり、限定することを意図するものでない。それにもかかわらず、本明細書全体を通じて適用される幾つかの定義がここで示されるであろう。
【0029】
本明細書において定義される場合に、単数形「1つ」(a)、「1つ」(an)及び「該」(the)は、文脈が明らかにそうでないことを示していない限り、複数形をまた含む。
【0030】
本明細書において定義される場合に、「別の」は、少なくとも2以上を意味する。
【0031】
本明細書において定義される場合に、「少なくとも1つ」、「1以上」、及び「及び/又は」は、明示的に別段の記載がない限り、動作において接続的及び接続解除的の両方であるオープンエンド表現である。例えば、「A、B及びCの少なくとも1つ」、「A、B又はCの少なくとも1つ」、「A、B及びCの1以上」、「A、B又はCの1以上」、「A、B及び/又はC」という表現の各々は、A単独、B単独、C単独、A及びBが一緒、A及びCが一緒、B及びCが一緒、又はA、B及びCが一緒であることを意味する。
【0032】
本明細書において定義される場合に、「自動的に」及び「動的に」は、ユーザの介入無しにということを意味する。
【0033】
本明細書において定義される場合に、「包含する」、「包含している」、「含む」、及び/又は「含んでいる」は、本明細書に記載された特徴、整数、工程、動作、要素若しくは成分、又はそれらの組み合わせの存在を特定するが、1以上の他の特徴、整数、工程、動作、要素若しくは成分、又はそれらの組み合わせの存在又は追加を排除するものでない。
【0034】
本明細書において定義される場合に、「場合」は、文脈に応じて、「に応答して」又は「に反応して」を意味する。従って、句「決定された場合」は、文脈に応じて、「決定することに応答して」又は「決定することに反応して」を意味すると解釈されうる。同様に、句「[記載された条件又はイベント]が検出された場合」は、文脈に応じて、「[記載された条件又はイベント]を検出することに応じて」又は「[記載された条件又はイベント]を検出することに応答して」又は「[記載された条件又はイベント]を検出することに反応して」と解釈されうる。
【0035】
本明細書において定義される場合に、「1つの実施態様」、「或る実施態様」、「1以上の実施態様において」、「特定の実施態様において」、又は同様の語は、実施態様に関連して記載されている特定の特徴、構造又は特性が、本開示内で記載されている少なくとも1つの実施態様に含まれることを意味する。従って、本開示全体を通じて前述された句、若しくは同様の語又はそれらの組み合わせの出現は、全てが同じ実施態様を云う場合があるが、必ずしもそうであるとは限らない。
【0036】
本明細書において定義される場合に、「に応答して」及び「に反応して」は、アクション又はイベントに対して容易に応答又は反応することを意味する。従って、第2のアクションが第1のアクション「に応答して」及び「に反応して」実行される場合、第1のアクションの発生と第2のアクションの発生との間に因果関係がある。句「に応答して」及び「に反応して」は、因果関係を示す。
【0037】
本明細書において定義される場合に、「リアルタイム」とは、特定の処理又は判断を行う為に十分に即時性があるとユーザ又はシステムが感知する処理応答性のレベル、又はプロセッサが何らかの外部処理に追いつくことを可能にするレベルを意味する。
【0038】
本明細書において定義される場合に、「実質的に」は、記載された特性、パラメータ、又は値が正確に達成される必要はないが、例えば、公差、測定誤差、測定精度の限界、及び当業者に知られている他の要因を包含する逸脱又は変動が、特性が提供しようとした効果を妨げない量で生じうることを意味する。
【0039】
本明細書において定義される場合に、「ユーザ」及び「個人」は、夫々人間を云う。
【0040】
本明細書において、語「第1」、「第2」等は、様々な要素を説明する為に使用されうる。これらの語は、別段の記載があるか、又は文脈が明確に示す場合を除き、1つの要素を別の要素から区別する為にのみ使用される故に、これらの要素は、これらの語によって制限されるべきでない。
【0041】
本明細書において定義される場合に、「プログラム可能なアーリーウォーニングゾーン」(PEWZ:programmable early warning zone)は、テープドライブによって設定されるテープパラメータであり、アーリーウォーニング(EW:early warning)インジケータが発生するまでに何MBあるかを特定する2バイトの数値を含む。書き込み動作の間にPEWZがテープヘッドに到達したときに、標準的な媒体終了EWインジケータに到達する前に該テープ上のバイト数を特定するプログラム可能なアーリーウォーニング(PEW:programmable early warning)が発生する。
【0042】
本明細書において定義される場合に、「アーリーウォーニング」(EW)は、書き込み動作の間にテープヘッドがPEWZの終わりに到達したときに発生する警告である。該EWは、「DATA_FULL状態」に到達したことを示す。
【0043】
本明細書において定義される場合に、「DATA_FULL状態」は、通常のファイル動作がもはや許されず、メタデータの付加動作のみが許されるところのテープの状態である。
【0044】
本明細書において定義される場合に、語「バッファ」は、PEWZの終わりに始まり且つパーティションの書き込み可能領域の終わりに終了するところのテープパーティションのストレージ領域を意味する。該バッファにおいて、メタデータの書き込み動作のみが許される。
【0045】
ここで、本発明の様々な実施態様をより詳細に参照すると、
図1は、本発明の少なくとも1つの実施態様に従うテープバッファプログラム101の動作に適した、一般的に100と指定されるネットワークコンピューティング環境の機能ブロック図である。
図1は、1つの実装の例示に過ぎず、異なる実施態様が実施されうる環境に関していかなる制限も意味するものでない。図示された環境に対する多くの修正が、特許請求の範囲によって記載されている本発明の範囲から逸脱すること無しに、当業者によって行われうる。
【0046】
ネットワークコンピューティング環境100は、ネットワーク140を介して相互接続されたユーザデバイス110、テープライブラリ120、及びサーバ130を備えている。本発明の実施態様において、ネットワーク140は、電気通信ネットワーク、ローカルエリアネットワーク(LAN:local area network)、ワイドエリアネットワーク(WAN:wide area network)、例えばインターネット、又はこれらの組み合わせであることができ、有線、無線、又は光ファイバ接続を備えていることができる。ネットワーク140は、データ、音声、若しくはビデオ信号(例えば、音声、データ、及びビデオ情報を含むマルチメディア信号を包含する)、又はそれらの組み合わせを受信及び送信することが可能な1以上の有線ネットワーク若しくは無線ネットワーク又はそれらの組み合わせを包含しうる。一般的に、ネットワーク140は、ネットワークコンピューティング環境100内の、ユーザデバイス110、テープライブラリ120、サーバ130、及び他のコンピューティングデバイス(図示せず)の間の通信をサポートするところの接続及びプロトコルの任意の組み合わせでありうる。
【0047】
ユーザデバイス110は、ユーザがホストデバイス上で動作するアプリケーションにアクセスしてバッファプログラム101と通信し、そして、ネットワーク、例えばネットワーク140、を介して様々な磁気テープ媒体にデータを書き込み且つ該様々な磁気テープ媒体からデータを取り出す為に、テープライブラリ120と通信することを可能にする。本発明の様々な実施態様において、ユーザデバイス110はコンピューティングデバイスであり、該コンピューティングデバイスは、ラップトップコンピュータ、タブレットコンピュータ、ネットブックコンピュータ、パーソナルコンピュータ(PC:personal computer)、デスクトップコンピュータ、パーソナルデジタルアシスタント(PDA:personal digital assistant)、スマートフォン、スマートウォッチ、又はデータを受信し、送信し及び処理することができる任意のプログラム可能な電子デバイスであることができる。一般的に、ユーザデバイス110は、機械可読プログラム命令を実行し、及びネットワーク、例えばネットワーク140、を介してネットワークコンピューティング環境100内のテープライブラリ120、サーバ130及び他のコンピューティング機器(図示せず)と通信することができる任意のプログラム可能な電子機器又はプログラム可能な電子機器の組み合わせを表す。
【0048】
ユーザデバイス110は、ユーザインタフェース112を備えている。ユーザインタフェース112は、ユーザデバイス110、テープライブラリ120及びサーバ130の間のインタフェースを提供する。幾つかの実施態様において、ユーザインタフェース112は、グラフィカルユーザインタフェース(GUI:graphical user interface)又はウェブユーザインタフェース(WUI:web user interface)であることができ、並びに、テキスト、ドキュメント、ウェブブラウザウィンドウ、ユーザオプション、アプリケーションインタフェース及び動作の為の命令を表示することができ、並びに、プログラムがユーザに提示する情報(例えば、グラフィック、テキスト及びサウンド)及び該ユーザが該プログラムを制御する為に用いる制御シーケンスを含む。他の実施態様において、ユーザインタフェース112は、ユーザデバイス110、テープライブラリ120及びサーバ130の間のインタフェースを提供する、スクリプト、アプリケーションプログラミングインタフェース(API:application programming interface)、又はモバイルアプリケーションソフトウェアであることができる。
【0049】
ユーザデバイス110は、アプリケーション114を更に備えている。アプリケーション114は、ユーザデバイス110上で動作する1以上のアプリケーション(例えば、アプリケーションスイート)の代表であることができる。様々な例示的実施態様において、アプリケーション114は、ユーザデバイス110のユーザがデータ、例えばモバイルデバイスアプリケーション、を送受信する為に利用するアプリケーションであることができる。1つの実施態様において、アプリケーション114は、サーバ130上で動作するアプリケーションに関連付けられたクライアント側アプリケーション(例えば、バッファプログラム101に関連付けられたクライアント側アプリケーション)であることができる。1つの実施態様において、アプリケーション114は、バッファプログラム101の処理工程を実行するように動作することができる(すなわち、アプリケーション114は、ユーザデバイス110上で動作するバッファプログラム101の代表であることができる)。
【0050】
テープライブラリ120は、テープ媒体、例えば、シングルリール又は2リールの磁気テープカートリッジ、に書き込み及びそれから読み取る為の複数のテープドライブを備えている自動化されたテープストレージデバイスである。1つの実施態様において、テープライブラリは、LTO及びLTFSのフォーマット仕様に従ってフォーマットされたテープカートリッジを備えている。1つの実施態様において、テープライブラリ120は、IBM(登録商標)TS3400(商標)テープライブラリ又はIBM(登録商標)TS3500(商標)テープライブラリである。IBM(登録商標)固有のハードウェアコンポーネント若しくはソフトウェアコンポーネント又はそれらの組み合わせのコンポーネントが言及されているが、本発明の観点は、他のテープライブラリ技術にまた同様に適用されうることが理解されるべきである。本発明の実施態様において、テープライブラリ120は、バンク、又はストレージスロットのグループに記憶された複数のテープ媒体を備えている。例えば、テープ媒体は、磁気テープカートリッジ、磁気テープカセット、及び光テープカートリッジを包含することができるが、これらに限定されない。テープライブラリ120は、テープカートリッジを保持する為の複数のスロット、テープカートリッジを識別する為のバーコードリーダ、及びテープをロードする為の自動化された方法(例えば、ロボット)を更に備えている。
【0051】
本発明の様々な実施態様において、サーバ130はコンピューティングデバイスであり、該コンピューティングデバイスは、スタンドアロンデバイス、管理サーバ、ウェブサーバ、アプリケーションサーバ、モバイルデバイス、又はデータを受信し、送信し及び処理することができる任意の他の電子デバイス若しくはコンピューティングシステムであることができる。1つの実施態様において、サーバ130は、サーバシステム、例えばクラウドコンピューティング環境、として複数のコンピュータを利用するサーバコンピューティングシステムを表す。1つの実施態様において、サーバ130は、ネットワークコンピューティング環境100内でアクセスされたときにシームレスなリソースの単一のプールとして機能するクラスタ化されたコンピュータ及びコンポーネント(例えば、データベースサーバコンピュータ、アプリケーションサーバコンピュータ、Webサーバコンピュータ、Webメールサーバコンピュータ、メディアサーバコンピュータ)を利用するコンピューティングシステムを表す。一般的に、サーバ130は、機械可読プログラム命令を実行し、且つ互いに通信することができるだけでなく、ネットワーク、例えばネットワーク140、を介してネットワークコンピューティング環境100内のユーザデバイス110及びテープライブラリ120と通信することができる任意のプログラム可能な電子デバイス又はプログラム可能な電子デバイスの組み合わせを表す。
【0052】
サーバ130は、リニアテープファイルシステム(LTFS:linear tape file system)132を備えている。LTFS 132は、
図1においてサーバ130と一体化されているように図示されているが、代替の実施態様において、LTFS 132はサーバ130からリモートで配置される。例えば、LTFS 132は、ユーザデバイス110上に又はテープライブラリ120内に配置されたデバイス上に配置されうる。
【0053】
LTFS 132は、テープライブラリ内のテープカートリッジ上に記憶されたファイルを、ハードディスク又はフラッシュドライブ上に記憶されたファイルと同様の様式でアクセスされることができるようにするファイルシステムである。それは、テープ媒体上のデータの特定のフォーマットと、該データへのファイルシステムインタフェースを提供する為のソフトウェアとの両方を必要とする。テープライブラリ120における各LTFSフォーマットされたテープカートリッジは、ファイルシステムマウントポイントの下に別のフォルダとして表れる。当業者は、テープドライブにファイルシステムを適用することにより、ユーザがテープ媒体のコンテンツをハードディスク上と同様に編成し且つ検索することを可能にし、テープ媒体上に記憶されたデータについてのアクセス時間が改善されることを理解するであろう。例えば、LTFS 132は、LTFSボリューム(すなわち、テープ媒体)をテープライブラリ、例えばテープライブラリ120、で使用されることを可能にするIBM(登録商標)リニアテープファイルシステム-ライブラリ版(LTFS-LE:Linear Tape File System-Library Edition)である。IBM(登録商標)固有のハードウェアコンポーネント若しくはソフトウェアコンポーネント又はそれらの組み合わせのコンポーネントが言及されているが、本発明の観点は、他のテープライブラリ技術にまた同様に適用されうることが理解されるべきである。
【0054】
サーバ130は、バッファプログラム101を更に備えている。1つの実施態様において、バッファプログラム101は、中央サーバ、例えばサーバ130、上で動作し、並びに、中央サーバ又は第三者アプリケーションストアからのアプリケーションダウンロードを介して、1以上のユーザデバイス、例えばユーザデバイス110、によって利用され、クライアントデバイス110上で実行されることができる。1つの実施態様において、バッファプログラム101は中央サーバ、例えばサーバ130、からダウンロードされ、そして1以上のユーザデバイス、例えばユーザデバイス110、上にインストールされるソフトウェアでありうる。1つの実施態様において、バッファプログラム101は、第三者クラウドサービスプロバイダ(図示せず)によって提供されるソフトウェアサービスとして利用されてもよい。1つの実施態様において、バッファプログラム101は、1以上のユーザデバイス、例えばユーザデバイス110、上にインストールされる1以上のコンポーネント、例えば、アドオン、プラグイン、エージェントプログラム等(図示せず)、を備えていてもよい。
【0055】
本発明の様々な実施態様において、バッファプログラム101は、テープがDATA_FULL状態に遷移するところの、該テープ上の位置を動的に変化させる。1つの実施態様において、該テープがDATA_FULLに遷移するところの該テープ上の位置は、データパーティションに付加されるべきインデックスのサイズに基づいて再配置される。1つの実施態様において、該テープがDATA_FULLに遷移するところの該テープ上の位置は、該データパーティションに付加された最後のインデックスのサイズに基づいて再配置される。1つの実施態様において、該テープがDATA_FULLに遷移するところの該テープ上の位置は、該データパーティションに付加された所定数の以前のインデックスの平均サイズに基づいて再配置される。1つの実施態様において、該テープがDATA_FULLに遷移するところの該テープ上の位置は、該データパーティションに付加された以前の全てのインデックスの平均に基づいて再配置される。
【0056】
1つの実施態様において、該テープがDATA_FULL状態に遷移するところの該テープ上の位置を変更することは、該テープがDATA_FULL状態に遷移した後にのみメタデータ書き込み動作を付加する為に予約されたバッファのサイズを変更することを更に含む。
【0057】
1つの実施態様において、該テープがDATA_FULL状態に遷移するところの該テープ上の位置を変更することは、該テープ上のプログラム可能なアーリーウォーニングゾーン(PEWZ)の位置を変更することを更に含む。書き込み動作の間にテープヘッドがPEWZに一旦到達すると、プログラム可能なアーリーウォーニング(PEW)が発行され、それは、該テープが通常のファイル動作を行う為のスペースを使い果たしつつあることをユーザアプリケーションに警告する。1つの実施態様において、該テープヘッドが書き込み動作を実行している間にPEWが検出された場合に、バッファプログラム101は、テープドライブをDATA_FULL状態に遷移させる。1つの実施態様において、該テープヘッドが書き込み動作を実行している間にPEWが検出された場合に、該テープヘッドがPEWZの終わりに達するまで、通常のファイル動作が許される。この時点で、バッファプログラム101は、該テープをDATA_FULL状態に遷移させる。
【0058】
図2において、本発明の少なくとも1つの実施態様に従う、一般的に200と指定されるテープ上の例示的なリニア・サーペンタイン・レコーディング(linear serpentine recording)が見られることができる。
図2は、1つの実装の例示に過ぎず、異なる実施態様が実施されうる環境に関していかなる制限も意味するものでない。図示された環境に対する多くの修正が、特許請求の範囲によって記載されている本発明の範囲から逸脱すること無しに、当業者によって行われうる。
【0059】
該テープの横方向が複数のラップへと分けられているのに対して、ラップ毎に該テープの縦方向にデータが書き込まれ若しくはデータが読み取られ又はデータが書き込まれ且つ読み取られる。各ラップに、書き込みの順に番号が割り当てられる。典型的に、ラップは、同じ方向に走るラップが互いに隣接するように該テープ上に配置される。例えば、順方向に走るラップ(すなわち、該テープの初めから終わりまで走るラップ)は、互いに隣接している。同様に、逆方向に走るラップ(すなわち、該テープの終わりから初めに走るラップ)は、互いに隣接している。ラップの数及び各ラップ内のトラックの数は、LTOテープカートリッジの世代に依存する。該ラップの横方向における幅(すなわち、トラックピッチ)は、テープ幅と該テープ上のラップの数に依存する。例えば、LTO-2テープカートリッジは、4つのデータバンド及び1バンド当たり16個のラップを有し、従って、埋めるには64個のパスが必要である。一方、LTO-7テープカートリッジは、4つのデータバンド及び1バンド当たり28個のラップを有し、従って、埋めるには112個のパスが必要である。
【0060】
図2に図示されているように、テープ200は、4つのデータバンド(データバンド0、データバンド1、データバンド2及びデータバンド3)に分けられている。
図2において更に図示されているように、データバンド0において、ラップ0、ラップ2N、そしてラップN-2という順方向に走るラップ内に記録されたデータが見られることができる。これらの順方向に走るラップは、データバンド内の偶数番号のラップが互いに隣接するように該テープ上に配置されている。同様に、データバンド0において、ラップ1、ラップ2N-1、そしてラップN-1という逆方向に走るラップ内に記録されたデータが見られることができる。これらの逆方向に走るラップは、データバンド内の奇数番号のラップが互いに隣接するように該テープ上に配置されている。データは共通の記録方向で後続の各ラップに書き込まれる為に、特定の記録方向に関係なく、次に続くラップは該データバンドの中央から該データバンドの周囲に向かって外側に配置されている。
【0061】
図3Aは、本発明の少なくとも1つの実施態様に従う、テープのデータパーティション300A内に記憶されるファイルデータの一例を示すブロック図である。
図3Aは、1つの実装の例示に過ぎず、異なる実施態様が実施されうる環境に関していかなる制限も意味するものでない。図示された環境に対する多くの修正が、特許請求の範囲によって記載されている本発明の範囲から逸脱すること無しに、当業者によって行われうる。
【0062】
当業者は、LTFSに記憶されたデータがハードディスク上に記憶されたデータのように見えるが、テープ媒体へのデータ書き込みの基本的なシーケンシャルな性質は変わらないことを理解するであろう。データは、予め決められた固定サイズのゾーン(すなわち、論理ブロック)に順次書き込まれ、及びファイルは常に、該テープの終わりに付加される。その上、LTFSはライトワンス(write-once)ファイルシステムである。言い換えれば、1以上のデータブロック上に記憶されたファイルが修正され、上書きされ、又はテープイメージから削除された場合でも、関連付けられたデータブロックが解放されることはない。寧ろ、該関連付けられたデータブロックに割り当てられたメモリは無効となり(すなわち、該関連付けられたデータブロックはもはやインデックスで参照されない)、及び新たに追加されたデータは、該テープ上のデータの終わり(EOD:end of data)のマークの後に、別々の非連続のブロックとして書き込まれる。
【0063】
その上、当業者は、ブロックデバイス、例えばハードディスク、の読み取り/書き込み(read/write)コマンドとは異なり、テープドライブに発行される読み取り/書き込みコマンドは、ブロック番号を特定しないことを理解するであろう。しかしながら、読み取り/書き込み要求に対応するデータの位置は、テープヘッドに対する該テープ媒体の現在の位置に基づいて決定されることができる。該テープ媒体の現在位置は、「Read Position」(読み取り位置)コマンドを発行することによって取得されることができる。同様に、「Locate/Space」コマンドを発行することによって、該テープ媒体の現在位置が任意の位置に設定されることができる。読み取り/書き込みコマンドが正常に実行されると、該テープ媒体の現在位置が更新される。
【0064】
本発明の実施態様において、磁気テープに書き込まれたデータは、下記の情報を含む:(i)レコード、(ii)ファイルマーク(FM:file mark)及び(iii)データの終わり(EOD:end of data)のマーク。本明細書において使用される場合に、語「レコード」は、テープ上の可変長データ列を云うものとする。本明細書において使用される場合に、語「ファイルマーク」(FMマーク)は、特定のファイルのデータ(すなわち、レコード)を区切るテープ上のゼロ長セパレータを云うものとする。本明細書において使用される場合に、語「データの終わりのマーク」(EODマーク)は、テープに書き込まれたデータの終わりの指定を云うものとする。
【0065】
図3Aによって図示されているように、データパーティション300Aは、位置_0、位置_1、位置_2、位置_3、位置_4、位置_5、及び位置_6を含む。位置0~6は、データパーティション300Aのデータの物理的な単位(すなわち、データブロック)を画定する。本発明の実施態様において、ブロックは、単一のレコード、レコードの一部、又は複数のレコードを含むことができる。幾つかの実施態様において、データブロックは、サイズが固定されることができる。他の実施態様において、データブロックは、サイズが可変であることができる。データパーティション300Aは更に、下記のレコードを含む:Rec#0、Rec#1、Rec#2、Rec#3、FM#4、及びRec#5。Rec#0、Rec#1、Rec#2、及びRec#3は同じファイルに属し、並びにRec#5は、Rec#3とRec#5との間に位置するFM#4によって示されるように、異なるファイルに属する。Rec#5は、位置_6におけるデータの終わり(データの終わり(EOD)のマークによって示されている)である。本発明の実施態様において、「READ」(読み取り)コマンドが発行されたときに、テープヘッドの現在位置が更新される。例えば、該テープヘッドの現在位置が位置_1にあり、且つRec#3の為に「READ」(読み取り)コマンドが発行された場合に、該テープヘッドは位置_3に移動され、且つRec#3が読み取られる。Rec#3の読み取りの完了に応じて、該テープヘッドの現在位置は位置_4に更新される。
【0066】
図3Bは、本発明の少なくとも1つの実施態様に従う、
図3Aのデータパーティション300Aにファイルデータを付加した後にテープのデータパーティション300B内に記憶されるファイルデータの一例を示すブロック図である。
図3Bは、1つの実装の例示に過ぎず、異なる実施態様が実施されうる環境に関していかなる制限も意味するものでない。図示された環境に対する多くの修正が、特許請求の範囲によって記載されている本発明の範囲から逸脱すること無しに、当業者によって行われうる。
【0067】
図3Bにおけるデータパーティション300Bは、「WRITE」(書き込み)コマンドが発行された後の
図3Aのデータパーティション300Aを示す。1つの実施態様において、「WRITE」(書き込み)コマンドは、下記のうちの1以上を含むことができるが、これらに限定されるものでない:(i)レコードを修正すること、(ii)レコードを上書きすること、及び(iii)新しいデータを追加すること。データパーティション300Bは、位置_0、位置_1、位置_2、位置_3、位置_4、位置_5、位置_6、及び位置_7を含む。
図3Bのデータパーティション300Bの位置0~6は、
図3Aのデータパーティション300Aの位置0~6に対応する。
図3Bのデータパーティション300Bは更に、下記のレコードを含む:Rec#0、Rec#1、Rec#2、Rec#3、FM#4、Rec#5、及びRec#6。
図3Bのデータパーティション300BのRec#0~#5は、
図3Aのデータパーティション300AのRec#0~#5に対応する。1つの実施態様において、「WRITE」(書き込み)動作は、EODマークにデータを付加する。データパーティション300Bによって図示されているように、「WRITE」(書き込み)が発行された。従って、Rec#5は、
図3Aにおける位置_5においてデータパーティション300Aに書き込まれた最後のレコード(位置_6においてEODマークによって示されている)だった故に、Rec#6は位置_6に書き込まれ、FM#7は位置_7に書き込まれ、及びEODマークは、
図3Bのデータパーティション300Bにおける位置_8に更新された。
【0068】
図4Aは、本発明の少なくとも1つの実施態様に従う、一般的に400Aと指定されるLTFSボリュームの一例を示すブロック図である。
図4Aは、1つの実装の例示に過ぎず、異なる実施態様が実施されうる環境に関していかなる制限も意味するものでない。図示された環境に対する多くの修正が、特許請求の範囲によって記載されている本発明の範囲から逸脱すること無しに、当業者によって行われうる。
【0069】
本発明の様々な実施態様において、LTFSボリュームは、LTFSパーティションの一対、すなわち、データパーティション及びインデックスパーティション、を含む。ファイルデータが該データパーティションに付加された後に、(該データパーティションにおけるファイルデータに関連付けられたメタデータを含む)インデックス構成(index construct)が該ファイルデータの終わりに付加され、並びに該インデックスパーティションの該インデックスが該データパーティションに付加されたインデックス構成で上書きされる。
【0070】
各パーティションは、ラベル構成(label construct)と、それに続くコンテント領域とを含む。該ラベル構成は、特定のLTFSボリュームについての識別情報を含む。データパーティションにおいて、該コンテント領域は、データエクステント(data extent)とインデックス構成から形成されている。1つのデータエクステントは、順次の論理ブロックとして書かれたファイルデータを含む。ファイルは、0個以上のデータエクステントと、インデックス構成に記憶された関連付けられたメタデータとから構成されているべきである。インデックス構成は、ファイルとデータエクステントの間のマッピングを記述するXMLデータ構造であるインデックスを含む。
【0071】
インデックスパーティションにおいて、該コンテント領域は、3つの異なる種類の情報、すなわち、世代番号、セルフポインタ及びバックポインタ、から形成されている。世代番号は、ボリューム内の過去のインデックスに対する最新のインデックスの年代を含む。ボリューム内の各インデックスは世代番号を有し、それは、該ボリュームに変更が加えられると増加する非負の整数である。ボリューム上で最大の世代番号を持つインデックスは、ボリューム全体の現在の状態を表す。セルフポインタは、該インデックスが属するボリュームと、そのボリューム内でのインデックスのブロック位置を記録する。バックポインタは、このインデックスが書き込まれる直前にデータパーティション内に存在した最後のインデックスのブロック位置を記録する。
【0072】
図4Aによって図示されているように、データパーティション(DP)420はラベル構成422を含み、及びコンテント領域はインデックス#0、ファイル#1、ファイル#2、インデックス#1、ファイル#3、及びインデックス#2を含む。インデックスパーティション(IP)410は、ラベル構成412及びインデックス#2を含む。DP 420におけるインデックス#2は、IP 410におけるインデックス#2と同じインデックスである。
【0073】
図4Bは、本発明の少なくとも1つの実施態様に従う、テープ上のプログラム可能なアーリーウォーニングゾーン(PEWZ)の一例を示す、一般的に400Bと指定されるブロック図である。
図4Bによって図示されるように、データパーティション450は、パーティションの始まり(BOP:beginning of partition)452で始まり、及びパーティションの終わり(EOP:end of partition)454で終わる。データパーティション450は、PEWZ 456及びバッファ458を含む。ファイル動作の間にテープヘッドがPEWZ 460の初めに到達すると、プログラム可能なアーリーウォーニング(EW)が生成される。1つの実施態様において、ファイル動作の間にテープヘッドがPEWZ 462の終わりに一旦到達すると、アーリーウォーニング(EW)が生成される。
図4Bによって更に図示されているように、該テープがDATA_FULL状態に遷移するところの該テープ上の点は、PEWZ 462の終わりに到達する該テープヘッドに対応する。
【0074】
図5は、本発明の少なくとも1つの実施態様に従って、LTFSフォーマットされたLTOテープカートリッジ上のデータパーティションの最後のデータバンドの終わりにおけるバッファを修正する為の複数の動作工程を図示する、一般的に500と指定されるフローチャート図である。
図5は、1つの実施態様の例示に過ぎず、異なる実施態様が実施されうる環境に関していかなる制限も意味するものでない。図示された環境に対する多くの変更が、特許請求の範囲によって引用されている本発明の範囲から逸脱すること無しに、当業者によって行われうる。添付のフローチャート図は、LTOテープカートリッジの例示であるが、当業者は、本発明の様々な実施態様が、任意の種類のLTFSフォーマットされたテープストレージデバイスで実施されうることを理解するであろうことに留意されるべきである。
【0075】
工程502において、バッファプログラム101は、LTFSフォーマットされたLTOテープをマウントする。
【0076】
工程504において、バッファプログラム101は、テープの該データパーティションにおける利用可能なストレージ領域が所定値(例えば、200MB)よりも大きいかどうかを判断する。バッファプログラム101が、該テープの該データパーティションにおける該利用可能なストレージ領域が所定値未満であると判断した場合(判断工程504「いいえ」の分岐)、バッファプログラム101は工程506に進む。バッファプログラム101が、該テープの該データパーティションにおける該利用可能なストレージ領域が所定値よりも大きいと判断した場合(判断工程504「はい」の分岐)、バッファプログラム101は工程508に進む。
【0077】
工程506において、バッファプログラム101は、DATA_FULL状態に遷移し、該状態において、メタデータ書き込み動作のみが該データパーティションにおいて許される。例えば、バッファプログラム101は、テープドライブのテープヘッドに、メタデータ書き込み動作、例えば、データパーティションにインデックスを書き込むこと、のみを実行するように指示する。別の例において、DATA_FULL状態が発行されたときに、該テープドライブの該テープヘッドが該データパーティションにファイルデータを積極的に書き込んでいる場合、該テープドライブは、該データパーティションへのそれ以上のファイルデータの書き込みを自動的に終了させ、そして、該データパーティションに書き込まれた最新のファイルデータの終わりにインデックスを付し始める。
【0078】
工程508において、バッファプログラム101は、プログラム可能なアーリーウォーニングゾーン(PEWZ:programmable early warning zone)を生成する。1つの実施態様において、PEWZのサイズは、特定のユーザアプリケーションの要件に基づく。例えば、ユーザアプリケーションは、該テープドライブが500MBのサイズを有するPEWZを生成することを要求しうる。該要求に応答して、バッファプログラム101は、該テープがDATA_FULL状態に遷移する前に、何MB(この場合、500MB)あるかを特定する2バイト値を生成する。
【0079】
判断工程510において、バッファプログラム101は、ファイル動作の為の要求が受信されたかどうかを決定する。1つの実施態様において、ファイル動作は、Create Operation(新しいファイルを作成する為の作成動作)、Write Operation(ファイルに関連付けられたデータを書き込む為の書き込み動作)、Re-Position Operation又はSeek Operation(ファイルポインタの前方又は後方に移動する為の再配置動作又はシーク動作)、Delete Operation(ファイルに関連付けられたデータを削除する為の削除動作)、Truncate Operation(ファイルそれ自体を削除すること無しに該ファイルの内部に記憶されている情報を削除する為のトランケート動作)の1以上を含みうるが、これらに限定されない。
【0080】
工程512において、ファイル動作の為の要求が受信されたと判断することに応答して、バッファプログラム101は、該ファイル動作を実行する。例えば、バッファプログラム101は、テープドライブのテープヘッドに、該テープの該データパーティション内で該ファイル動作を実行するように指示する。
【0081】
工程514において、バッファプログラム101は、プログラム可能なアーリーウォーニング(PEW)が、該ファイル動作の実行中に生成されたかどうかを判断する。代替的な1つの実施態様において、バッファプログラム101は、該ファイル動作の実行中に、該テープヘッドが該PEWZに到達したかどうかを判断する。
【0082】
該ファイル動作に従ってファイルデータをデータパーティションに書き込む間にPEWが生成されない場合(判断工程514「いいえ」の分岐)、バッファプログラム101は判断工程510に戻る。代替案において、該ファイル動作の実行中に該テープヘッドが該PEWZに到達しない場合、バッファプログラム101は工程510に戻る。
【0083】
該ファイル動作に従ってファイルデータをデータパーティションに書き込む間にPEWが生成される場合(判断工程514「はい」の分岐)、バッファプログラム101は工程524に進む。代替案において、該ファイル動作の実行中に該テープヘッドが該PEWZに到達したことを検出することに応じて、バッファプログラム101は工程524に戻る。
【0084】
工程516において、バッファプログラム101は、インデックスが該テープの該データパーティションに付される必要があるかを判断する。インデックスが該テープの該データパーティションに付される必要がない場合、バッファプログラム101は、判断工程510に戻る。インデックスが該テープの該データパーティションに付される必要がある場合、バッファプログラム101は工程518に進む。
【0085】
工程518において、バッファプログラム101は、該データパーティションに該インデックスを付す動作を実行する。例えば、バッファプログラム101は、該テープの該データパーティション上の該ファイルデータの終わりにインデックスを付すように、テープドライブのテープヘッドに指示する。
【0086】
判断工程520において、バッファプログラム101は、該データパーティションに該インデックスを付している間に、PEWが生成されたかどうかを判断する。代替的な1つの実施態様において、バッファプログラム101は、該テープの該データパーティションにインデックスを付す間に、該テープヘッドが該PEWZに到達したか否かを判断する。
【0087】
該データパーティションに該インデックスを付している間に、PEWが生成されない場合、バッファプログラム101は工程522に進む。代替案において、該データパーティションに該インデックスを付している間に、該テープヘッドが該PEWZに到達しない場合、バッファプログラム101は工程522に進む。
【0088】
該データパーティションに該インデックスを付している間に、PEWが生成される場合、バッファプログラム101は工程524に進む。代替案において、該データパーティションに該インデックスを付している間に、該テープヘッドが該PEWZに到達する場合、バッファプログラム101は工程524に進む。
【0089】
工程522において、バッファプログラム101は、該データパーティションの書き込み可能領域の終わりに関するPEWZの位置とバッファのサイズとを変更する。該PEWZの該位置を移動することによって、DATA_FULL状態に到達したときにのみメタデータ操作を実行する為に割り当てられたバッファの該サイズがまた変更されることが留意されるべきである。例えば、該テープドライブがDATA_FULL状態に遷移したときにのみメタデータ操作を実行する為に、該データパーティションの該終わりにおいて1GBのバッファが予約されうる。500MBのサイズを有するPEWZが生成される場合に、バッファとして予約された1GBのストレージスペースの直前の500MBのストレージスペースに対応することなるであろう。従って、500MBのサイズを有するPEWZが該データパーティションの該書き込み可能領域の終わりに500MB近くに移動される場合に、DATA_FULL状態に到達したときにのみメタデータ操作を実行する為に予約されているバッファは、最終的に1GBから500MBに減少するであろう。
【0090】
1つの実施態様において、該テープ上の該PEWZの該位置を変更することは、該データパーティションに付された最新のインデックスのサイズに基づく。例えば、該データパーティションに付された該最新のインデックスの該サイズが200MBである場合、バッファプログラム101は、該バッファの該サイズが該データパーティションに付された該最新のインデックスの該サイズ(200MB)と等しくなるように該PEWZの位置を移動する。従って、該テープヘッドが該PEWZの該終わりに到達するときに、該テープドライブは、200MBがメタデータ書き込み動作の実行の為だけに予約されているDATA_FULL状態に遷移するだろう。別の例において、該データパーティションに付された最新のインデックスのサイズが300MBである場合に、該バッファプログラムは、該バッファの該サイズが該データパーティションに付された該最新のインデックス(300MB)のサイズ(600MB)の2倍になるように該PEWZの該位置を移動する。従って、該テープヘッドが該PEWZの該終わりに到達するときに、該テープドライブはDATA_FULL状態に遷移し、該状態において、600MBがメタデータの書き込み動作の為にのみ予約されている。
【0091】
工程524において、バッファプログラム101は、DATA_FULL状態に遷移し、該状態において、メタデータ書き込み動作のみが該データパーティションにおいて許される。例えば、バッファプログラム101は、該テープドライブの該テープヘッドに、メタデータ書き込み動作、例えば、データパーティションにインデックスを書き込むこと、のみを実行するように指示する。別の例において、DATA_FULL状態が発行されたときに、テープドライブの該テープヘッドが該データパーティションにファイルデータを積極的に書き込んでいる場合、該テープドライブは、該データパーティションへのそれ以上のファイルデータの書き込みを自動的に終了させ、そして、該データパーティションに書き込まれた最新のファイルデータの終わりにインデックスを付し始める。
【0092】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書において述べられている教示の実装は、クラウドコンピューティング環境に限定されないことが理解されるべきである。寧ろ、本発明の実施態様は、現在知られている又は後に開発される任意の他の種類のコンピューティング環境と組み合わせて実装されることが可能である。
【0093】
クラウドコンピューティングは、最小限の管理労力又はサービスのプロバイダとの相互作用で迅速にプロビジョニングされ且つ解放されることができる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理(processing)、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にする為のサービス提供のモデルである。このクラウドモデルは、少なくとも5つの特徴、少なくとも3つのサービスモデル、及び少なくとも4つのデプロイメントモデル(deployment model)を含みうる。
【0094】
特徴は下記の通りである。
【0095】
オンデマンドセルフサービス(On-demand self-service):クラウドコンシューマ(cloud consumer)は、サービスのプロバイダとのヒューマンインターラクション(human interaction)を必要とせずに、自動的に必要に応じて、コンピューティング機能、例えばサーバ時間及びネットワークストレージ、を一方的にプロビジョニングすることができる。
【0096】
ブロードネットワークアクセス:機能は、ネットワークを介して利用可能であり、及び異種のシン(thin)クライアント・プラットフォーム又はシック(thick)クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
【0097】
リソースのプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数のコンシューマにサービスを提供する為にプールされ、及び様々な物理リソースと仮想リソースが需要に従って動的に割り当てられ及び再割り当てされる。コンシューマは一般的に、提供されたリソースの正確なロケーションについての制御又は知識を有していないが、より高いレベルの抽象化でのロケーション(例えば、国、州又はデータセンター)を特定できうるという点で、ロケーションに依存しないといえる。
【0098】
迅速な順応性:機能は、迅速且つ弾力的にプロビジョニングされ、場合によっては自動的に、迅速にスケールアウトされ、迅速にリリースされて迅速にスケールインされうる。コンシューマにとって、プロビジョニングに利用可能な機能はしばしば、無制限であり及びいつでも任意の量で購入されることができる。
【0099】
測定されたサービス:クラウド・システムは、サービスの種類(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御し及び最適化する。リソース使用は監視され、制御され、及び報告されることができ、利用されるサービスのプロバイダ及びコンシューマの両方についての透明性を提供することができる。
【0100】
サービスモデルは下記の通りである。
【0101】
サービスとしてのソフトウェア(SaaS:Software as a Service):クラウドインフラストラクチャにおいて実行しているプロバイダのアプリケーションを使用する為に、コンシューマに提供される機能である。該アプリケーションは、シン・クライアント・インタフェース、例えばウェブブラウザ(例えば、ウェブベースの電子メール)、を通じて、様々なクライアント・装置からアクセス可能である。該コンシューマは、制限されたユーザ固有のアプリケーション構成設定の在りうる例外として、基礎をなすクラウドインフラストラクチャ、例えば、ネットワーク、サーバ、オペレーティングシステム、ストレージ、又は個々のアプリケーション機能さえも包含する基礎をなすクラウドインフラストラクチャ、を管理又は制御しない。
【0102】
サービスとしてのプラットフォーム(PaaS:Platform as a Service):プロバイダによってサポートされるプログラミング言語及びツールを用いて生成された、コンシューマが生成した又は取得したアプリケーションを、クラウドインフラストラクチャ上にデプロイする為に、該コンシューマに提供される機能である。該コンシューマは、基礎をなすクラウドインフラストラクチャ、例えば、ネットワーク、サーバ、オペレーティングシステム、又はストレージを包含する基礎をなすクラウドインフラストラクチャ、を管理又は制御しないが、デプロイされたアプリケーション、及び場合によってはアプリケーションホスティング環境構成に対して制御を有する。
【0103】
サービスとしてのインフラストラクチャ(IaaS:Infrastructure as a Service):コンシューマが、オペレーティングシステム及びアプリケーションを含むことができる任意のソフトウェアをデプロイ及び実行することができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティングリソースをプロビジョニングする為に、該コンシューマに提供される機能である。該コンシューマは、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、デプロイされたアプリケーションに対する制御、並びに、場合によっては、ネットワーク・コンポーネント(例えば、ホストのファイアウォール)を選択することの制限された制御を有する。
【0104】
デプロイメントモデル(Deployment Models)は下記の通りである。
【0105】
プライベートクラウド:クラウドインフラストラクチャは、ある組織の為のみに運営される。該クラウドインフラストラクチャは、該組織又は第三者によって管理され得、及びオンプレミス(on-premises)又はオフプレミス(off-premises)に存在しうる。
【0106】
コミュニティクラウド:クラウドインフラストラクチャは、幾つかの組織によって共有され、及び共通の関心事項(例えば、ミッション、セキュリティ要件、ポリシ、及びコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。該クラウドインフラストラクチャは、該組織又は第三者によって管理され得、及びオンプレミス又はオフプレミスに存在しうる。
【0107】
パブリッククラウド:クラウドインフラストラクチャは、一般公衆又は大規模な業界グループに対して利用可能であり、及びクラウドサービスを販売する組織によって所有される。
【0108】
ハイブリッドクラウド:クラウドインフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散の為のクラウド・バースティング)によって一緒にされる2以上のクラウド(プライベート、コミュニティ、又はパブリック)の混成物である。
【0109】
クラウドコンピューティング環境は、無国籍性(statelessness)、低結合性、モジュール性、及びセマンティック相互運用性(semantic interoperability)に焦点を有する指向されたサービスである。クラウドコンピューティングの中核(heart)は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0110】
図6は、本発明の少なくとも1つの実施態様に従うクラウドコンピューティング環境50を図示するブロック図である。クラウドコンピューティング環境50は、クラウドコンシューマ、例えば、パーソナルデジタルアシスタント(PDA:personal digital assistant)又は携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C若しくは自動車コンピュータシステム54N等又はそれらの組み合わせ、によって用いられるローカルコンピューティングデバイスが通信しうる1以上のクラウドコンピューティングノード10を備えている。クラウドコンピューティングノード10は、互いに通信しうる。それらは、1以上のネットワーク、例えば、本明細書において記載されている、プライベートクラウド、コミュニティクラウド、パブリッククラウド、若しくはハイブリッドクラウド、又はそれらの組み合わせ、において物理的又は仮想的にグループ化されていてもよい(図示せず)。これにより、クラウドコンピューティング環境50は、クラウドコンシューマがローカルコンピューティングデバイス上のリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム若しくはソフトウェア又はそれらの組み合わせを提供することができる。図示されているコンピューティングデバイス54A~54Nの種類は、例示のみを意図されていること、並びにコンピューティングノード10及びクラウドコンピューティング環境50は、任意の種類のネットワーク若しくはネットワークアドレス可能接続又はそれらの組み合わせを介して(例えば、ウェブブラウザを使用して)任意の種類のコンピュータ化されたデバイスと通信することが理解される。
【0111】
図7は、本発明の少なくとも1つの実施態様に従って
図6において図示されたクラウドコンピューティング環境50によって提供される機能抽象化モデル層の1組を図示するブロック図である。
図7において示されているコンポーネント、層及び機能は、単に例示であることが意図されていること、並びに本発明の実施態様はそれらに限定されないことが理解されるべきである。図示されている通り、下記の複数の層及び対応する複数の機能が提供される。
【0112】
ハードウェア及びソフトウェア層60は、ハードウェアコンポーネント及びソフトウェアコンポーネントを包含する。ハードウェアコンポーネントの例は、メインフレーム61、RISC(Reduced Instruction Set Computer(縮小命令セット・コンピュータ))アーキテクチャ・ベースのサーバ62;サーバ63;ブレード・サーバ64;ストレージデバイス65;並びに、ネットワーク及びネットワーキングコンポーネント66を包含する。幾つかの実施態様において、ソフトウェアコンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67及びデータベース・ソフトウェア68を包含する。
【0113】
仮想化層70は、抽象化層を提供し、この抽象化層から、仮想エンティティの下記の例が提供されうる:すなわち、仮想サーバ71;仮想ストレージ72;仮想ネットワーク73;例えば仮想プライベートネットワークを包含する上記の仮想ネットワーク73;仮想アプリケーション及びオペレーティングシステム74;並びに、仮想クライアント75。
【0114】
1つの例において、管理層80は、以下で説明される複数の機能を提供しうる。リソース・プロビジョニング81は、クラウドコンピューティング環境内でタスクを実行する為に利用されるコンピューティングリソース及び他のリソースの動的な調達を提供する。計量及び価格決定82は、リソースがクラウドコンピューティング環境内で利用される場合のコスト追跡と、これらのリソースの消費についての課金又は請求とを提供する。1つの例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを包含しうる。セキュリティは、クラウドコンシューマ及びタスクに対する識別検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータル83は、コンシューマ及びシステム管理者の為に、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されるサービスレベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(SLA:Service Level Agreement)の計画及び履行85は、将来の要件がSLAに従って予測されるクラウド・コンピューティング・リソースの為の事前配置及びその調達を提供する。
【0115】
ワークロード層90は、該クラウドコンピューティング環境が利用されうる複数の機能の例を提供する。この層から提供されうる複数のワークロード及び複数の機能の例は、マッピング及びナビゲーション91;ソフトウェア開発及びライフサイクル管理92;仮想教室教育の提供93;データアナリティクス処理94;トランザクション処理95;並びに、複数の通信プラットフォーム間の会話の動的マイグレーション96を包含する。
【0116】
図8は、バッファプログラム101を実行する為に適した、一般的に800と指定されるコンピューティングデバイスの構成要素を図示するブロック図である。例えば、コンピューティングデバイス800は、
図1のユーザデバイス110、テープライブラリ120若しくはサーバ130又はそれらの組み合わせを代表しうる。コンピューティングデバイス800は、1以上のプロセッサ804(1以上のコンピュータプロセッサを包含する)、通信ファブリック802、メモリ806、例えば、RAM 816及びキャッシュ818を包含する上記のメモリ806、永続ストレージ808、通信ユニット812、1以上のI/Oインタフェース814、ディスプレイ822、及び1以上の外部デバイス820を備えている。
図8は、1つの実施態様の例示に過ぎず、異なる実施態様が実装されうる環境に関していかなる制限も意味するものでないことを理解されたい。図示された環境に対する多くの変更がなされうる。
【0117】
図示されているように、コンピューティングデバイス800は、1以上のコンピュータプロセッサ804、メモリ806、永続ストレージ808、通信ユニット812、及び1以上の入力/出力(I/O)インタフェース814の間の通信を提供する通信ファブリック802上で動作する。通信ファブリック802は、1以上のプロセッサ804(例えば、マイクロプロセッサ、通信プロセッサ、及びネットワークプロセッサ)、メモリ806、1以上の外部デバイス820、及びシステム内の他の任意のハードウェアコンポーネントの間でデータ又は制御情報を渡す為に適した任意のアーキテクチャで実装されることができる。例えば、通信ファブリック802は、1以上のバスを用いて実装されることができる。
【0118】
メモリ806及び永続ストレージ808は、コンピュータ可読ストレージ媒体である。図示された実施態様において、メモリ806は、ランダムアクセスメモリ(RAM:random-access memory)816及びキャッシュ818を備えている。一般的に、メモリ806は、任意の適切な揮発性又は不揮発性の1以上のコンピュータ可読ストレージ媒体を備えていることができる。
【0119】
バッファプログラム101についてのプログラム命令は、メモリ806の1以上のメモリを介した夫々のコンピュータプロセッサ804のうちの1以上による実行の為に、永続ストレージ808、又はより一般的には、任意のコンピュータ可読ストレージ媒体内に記憶されることができる。永続ストレージ808は、磁気ハードディスクドライブ、ソリッドステートディスクドライブ、半導体ストレージデバイス、読み取り専用メモリ(ROM:read-only memory)、電子的消去可能なプログラム可能な読み取り専用メモリ(EEPROM:electronically erasable programmable read-only memory)、フラッシュメモリ、又はプログラム命令又はデジタル情報を記憶することができる他の任意のコンピュータ読み取り可能ストレージ媒体であることができる。
【0120】
永続ストレージ808によって使用される媒体はまた、取り外し可能であってもよい。例えば、取り外し可能なハードディスクが、永続ストレージ808の為に使用されうる。他の例は、永続ストレージ808の一部でもある別のコンピュータ可読ストレージ媒体上に転送する為にドライブ内に挿入されるところの、光及び磁気ディスク、サムドライブ、並びにスマートカードを包含する。
【0121】
これらの実施例において、通信ユニット812は、他のデータ処理システム又はデバイスとの通信を提供する。これらの例において、通信ユニット812は、1以上のネットワークインタフェースカードを備えていることができる。通信ユニット812は、物理的及び無線通信リンクのいずれか又は両方の使用を通じて通信を提供しうる。本発明の幾つかの実施態様の文脈において、様々な入力データのソースは、入力データが受信されてもよく且つ出力が通信ユニット812を介して同様に送信されてもよいように、コンピューティングデバイス800に対して物理的に遠隔であってもよい。
【0122】
1以上のI/Oインタフェース814は、コンピューティングデバイス800と連動して動作しうる他のデバイスとのデータの入力及び出力を可能にする。例えば、1以上のI/Oインタフェース814は1以上の外部デバイス820への接続を提供してもよく、それは、キーボード、キーパッド、タッチスクリーン、又は他の適切な入力デバイスとしてありうる。1以上の外部デバイス820はまた、ポータブルなコンピュータ可読ストレージ媒体、例えば、サムドライブ、ポータブル光又は磁気ディスク、及びメモリカード、を包含することができる。本発明の実施態様を実践する為に使用されるソフトウェア及びデータは、そのような携帯型コンピュータ可読ストレージ媒体上に記憶されることができ、且つ1以上のI/Oインタフェース814を介して永続ストレージ808上にロードされうる。1以上のI/Oインタフェース814はまた、同様に、ディスプレイ822に接続されることができる。ディスプレイ822は、データをユーザに表示する為の機構を提供し、例えば、コンピュータモニタでありうる。
【手続補正書】
【提出日】2023-09-01
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
テープがDATA_FULL状態に遷移するところの前記テープ上の位置を変更する為の、コンピュータに実装された方法であって、
ファイルが前記テープのデータパーティションに書き込まれた後に、前記ファイルに関連付けられたメタデータを表すインデックスのサイズを決定すること;及び、
前記テープが前記DATA_FULL状態に遷移するところの前記テープの前記データパーティション内の位置を、前記ファイルに関連付けられたメタデータを表す前記インデックスの前記サイズに基づいて変更すること
を含む、前記方法。
【請求項2】
前記DATA_FULL状態が、メタデータ書き込み動作のみが許可されるところの前記テープの状態である、請求項1に記載の、コンピュータに実装された方法。
【請求項3】
ファイル動作の間に前記テープの前記データパーティション内のプログラム可能なアーリーウォーニングゾーン(PEWZ)の終わりにテープヘッドが到達したことに応答して、前記DATA_FULL状態が発生する、請求項2に記載の、コンピュータに実装された方法。
【請求項4】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置を変更することが、前記テープの前記データパーティション内の前記PEWZの位置を変更することを更に含む、請求項1に記載の、コンピュータに実装された方法。
【請求項5】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置を変更することが、前記テープの前記データパーティション内の前記PEWZの後に位置するバッファのサイズを変更することを更に含み、ここで、メタデータ書き込み動作のみが前記バッファ内で許される、請求項4に記載の、コンピュータに実装された方法。
【請求項6】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の現在位置と前記テープの前記データパーティションの書き込み可能領域の終わりとの間に配置されるバッファのストレージ領域よりも前記ファイルの前記インデックスの前記サイズが小さい場合に、前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置が、前記テープの前記データパーティションの前記書き込み可能領域の前記終わりに向かって移される、請求項1に記載の、コンピュータに実装された方法。
【請求項7】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の現在位置と前記テープの前記データパーティションの書き込み可能領域の終わりとの間に配置されるバッファのストレージ領域よりも前記ファイルの前記インデックスの前記サイズが大きい場合に、前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置が、前記テープの前記データパーティションの前記書き込み可能領域の前記終わりから遠ざかって移される、請求項1に記載の、コンピュータに実装された方法。
【請求項8】
テープがDATA_FULL状態に遷移するところの前記テープ上の位置を変更する為のコンピュータプログラムであって、
ファイルが前記テープのデータパーティションに書き込まれた後に、前記ファイルに関連付けられたメタデータを表すインデックスのサイズを決定すること;及び、
前記テープが前記DATA_FULL状態に遷移するところの前記テープの前記データパーティション内の位置を、前記ファイルに関連付けられたメタデータを表す前記インデックスの前記サイズに基づいて変更すること
を含む方法の各工程をコンピュータに実行させる、前記コンピュータプログラム。
【請求項9】
前記DATA_FULL状態が、メタデータ書き込み動作のみが許可されるところの前記テープの状態である、請求項8に記載のコンピュータプログラム。
【請求項10】
書き込み動作の間に前記テープの前記データパーティション内のプログラム可能なアーリーウォーニングゾーン(PEWZ)の終わりにテープヘッドが到達したことに応答して、前記DATA_FULL状態が発生する、請求項9に記載のコンピュータプログラム。
【請求項11】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置を変更することが、前記テープの前記データパーティション内の前記PEWZの位置を変更することを更に含む、請求項8に記載のコンピュータプログラム。
【請求項12】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置を変更することが、前記テープの前記データパーティション内の前記PEWZの後に位置するバッファのサイズを変更することを更に含み、ここで、メタデータ書き込み動作のみが前記バッファ内で許される、請求項11に記載のコンピュータプログラム。
【請求項13】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の現在位置と前記テープの前記データパーティションの書き込み可能領域の終わりとの間に配置されるバッファのストレージ領域よりも前記ファイルの前記インデックスの前記サイズが小さい場合に、前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置が、前記テープの前記データパーティションの前記書き込み可能領域の前記終わりに向かって移される、請求項8に記載のコンピュータプログラム。
【請求項14】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の現在位置と前記テープの前記データパーティションの書き込み可能領域の終わりとの間に配置されるバッファのストレージ領域よりも前記ファイルの前記インデックスの前記サイズが大きい場合に、前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置が、前記テープの前記データパーティションの前記書き込み可能領域の前記終わりから遠ざかって移される、請求項8に記載のコンピュータプログラム。
【請求項15】
テープがDATA_FULL状態に遷移するところの前記テープ上の位置を変更する為のコンピュータシステムであって、該コンピュータシステムは、
1以上のコンピュータプロセッサ;
1以上のコンピュータ可読ストレージ媒体;及び、
複数のコンピュータプログラム命令、ここで、該複数のコンピュータプログラム命令は、前記1以上のコンピュータプロセッサによって実行される為に前記1以上のコンピュータ可読ストレージ媒体上に記憶される、
を備えており、前記コンピュータプログラム命令は、
ファイルが前記テープのデータパーティションに書き込まれた後に、前記ファイルに関連付けられたメタデータを表すインデックスのサイズを決定し;及び、
前記テープが前記DATA_FULL状態に遷移するところの前記テープの前記データパーティション内の位置を、前記ファイルに関連付けられたメタデータを表す前記インデックスの前記サイズに基づいて変更する
為の命令を含む、前記コンピュータシステム。
【請求項16】
前記DATA_FULL状態が、メタデータ書き込み動作のみが許可されるところの前記テープの状態である、請求項15に記載のコンピュータシステム。
【請求項17】
書き込み動作の間に前記テープの前記データパーティション内のプログラム可能なアーリーウォーニングゾーン(PEWZ)の終わりにテープヘッドが到達したことに応答して、前記DATA_FULL状態が発生する、請求項16に記載のコンピュータシステム。
【請求項18】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置を変更する為の命令が、前記テープの前記データパーティション内の前記PEWZの位置を変更する為の命令を更に含む、請求項15に記載のコンピュータシステム。
【請求項19】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の現在位置と前記テープの前記データパーティションの書き込み可能領域の終わりとの間に配置されるバッファのストレージ領域よりも前記ファイルの前記インデックスの前記サイズが小さい場合に、前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置が、前記テープの前記データパーティションの前記書き込み可能領域の前記終わりに向かって移される、請求項15に記載のコンピュータシステム。
【請求項20】
前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の現在位置と前記テープの前記データパーティションの書き込み可能領域の終わりとの間に配置されるバッファのストレージ領域よりも前記ファイルの前記インデックスの前記サイズが大きい場合に、前記テープが前記DATA_FULL状態に遷移するところの前記テープ上の前記位置が、前記テープの前記データパーティションの前記書き込み可能領域の前記終わりから遠ざかって移される、請求項15に記載のコンピュータシステム。
【国際調査報告】