特許第5963314号(P5963314)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許5963314テープ媒体上での総シーク時間を減らすための方法、システム及びプログラム
<>
  • 特許5963314-テープ媒体上での総シーク時間を減らすための方法、システム及びプログラム 図000002
  • 特許5963314-テープ媒体上での総シーク時間を減らすための方法、システム及びプログラム 図000003
  • 特許5963314-テープ媒体上での総シーク時間を減らすための方法、システム及びプログラム 図000004
  • 特許5963314-テープ媒体上での総シーク時間を減らすための方法、システム及びプログラム 図000005
  • 特許5963314-テープ媒体上での総シーク時間を減らすための方法、システム及びプログラム 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5963314
(24)【登録日】2016年7月8日
(45)【発行日】2016年8月3日
(54)【発明の名称】テープ媒体上での総シーク時間を減らすための方法、システム及びプログラム
(51)【国際特許分類】
   G06F 3/06 20060101AFI20160721BHJP
【FI】
   G06F3/06 301J
【請求項の数】13
【全頁数】16
(21)【出願番号】特願2013-525273(P2013-525273)
(86)(22)【出願日】2011年8月22日
(65)【公表番号】特表2013-538399(P2013-538399A)
(43)【公表日】2013年10月10日
(86)【国際出願番号】EP2011064389
(87)【国際公開番号】WO2012025492
(87)【国際公開日】20120301
【審査請求日】2014年4月11日
(31)【優先権主張番号】12/862,198
(32)【優先日】2010年8月24日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】バット、ケビン、デール
(72)【発明者】
【氏名】グレコ、ポール、メリル
(72)【発明者】
【氏名】フライ、スコット、ミルトン
(72)【発明者】
【氏名】片桐 隆司
(72)【発明者】
【氏名】大石 豊
【審査官】 坂東 博司
(56)【参考文献】
【文献】 国際公開第2010/073776(WO,A1)
【文献】 米国特許出願公開第2007/0136540(US,A1)
【文献】 米国特許出願公開第2001/0034811(US,A1)
【文献】 国際公開第2009/054610(WO,A1)
【文献】 特開2000−048549(JP,A)
【文献】 特開2001−118365(JP,A)
【文献】 特開2014−081988(JP,A)
【文献】 国際公開第2010/035617(WO,A1)
【文献】 米国特許出願公開第2004/0255091(US,A1)
【文献】 米国特許第06763427(US,B1)
【文献】 米国特許第05845316(US,A)
【文献】 特許第5166541(JP,B2)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
テープ媒体上に格納されたデータへのアクセスを管理するための方法であって、
目的テープ媒体から複数のユーザ・データ・セグメントをリストする再順序付きリストを取得する要求を受け取るステップと、
前記目的テープ媒体上の複数のユーザ・データ・セグメントの各々の物理的位置を判定するステップであって、前記物理的位置を判定するステップは、複数のユーザ・データ・セグメントをリストする順序付きリストの当該複数のユーザ・データ・セグメントの各々間の間隔を決定することを含む、前記判定するステップと、
前記順序付きリストに対して再順序付け動作を実行して、当該順序付きリスト中の前記複数のユーザ・データ・セグメントの順序が前記目的テープ媒体上のそれらの物理的位置に従って再順序付けされた前記再順序付リストを生成するステップと、
前記目的テープ媒体からの前記複数のユーザ・データ・セグメントの取得を、前記再順序付リスト上のそれらの順序で開始するステップと
を含み、
前記順序付きリストの前記複数のユーザ・データ・セグメントの各々間の間隔が、下記式によって求められ、
D=|E(A)−S(B)|/V
ここで、Dが、第1のユーザ・データ・セグメントAの終端から第2のユーザ・データ・セグメントBの先頭へのシークに対する時間的間隔であり、
E()は、テープの始まりから前記第1のユーザ・データ・セグメント終端までの長さであり、
S()は、前記テープの前記始まりから前記第2のユーザ・データ・セグメント先頭までの長さであり、及び、
Vはユーザ・データ・セグメントをシークする為のテープ媒体の速度であり、
前記物理的位置を判定するステップが、前記計算された間隔(D)を用いて前記目的ユーザ・データ・セグメントの前記順序付きリストを処理して、前記複数のユーザ・データ・セグメントの各々の前記物理的位置を判定するステップを含む、
前記方法。
【請求項2】
前記再順序付け動作は、前記複数のユーザ・データ・セグメントの前記再順序付けされたリストを生成するように動作可能な処理論理を含むテープ・ドライブによって処理される、請求項1に記載の方法。
【請求項3】
前記再順序付け動作は、前記複数のユーザ・データ・セグメントの前記再順序付けされたリストを生成するように動作可能な処理論理を含むテープ・ライブラリによって処理される、請求項1又は2に記載の方法。
【請求項4】
前記再順序付け動作は、前記複数のユーザ・データ・セグメントの前記再順序付けされたリストを生成するように動作可能な処理論理を含むホストによって処理される、請求項1〜3のいずれか一項に記載の方法。
【請求項5】
個々のユーザ・データ・セグメントが複数のデータ・レコードを含む、請求項1〜4のいずれか一項に記載の方法。
【請求項6】
前記目的テープ媒体上の前記複数のユーザ・データ・セグメントの前記物理的位置は、
テープ・ディレクトリ(TD)、
ファイルマーク・マップ、
高解像度テープ・ディレクトリ(HRTD)、又は
仮想HRTD
のうちの1つに格納されたユーザ・データ・セグメント・テープ媒体位置データを処理することによって判定される、請求項1〜5のいずれか一項に記載の方法。
【請求項7】
テープ媒体上に格納されたデータへのアクセスを管理するためのシステムであって、
プロセッサと、
前記プロセッサに結合されたデータ・バスと、
目的テープ媒体から複数のユーザ・データ・セグメントをリストする再順序付きリストを取得する要求を受け取り、
前記目的テープ媒体上の複数のユーザ・データ・セグメントの各々の物理的位置を判定し、前記物理的位置を判定することは、複数のユーザ・データ・セグメントをリストする順序付きリストの当該複数のユーザ・データ・セグメントの各々間の間隔を決定することを含み、
前記順序付きリストに対して再順序付け動作を実行して、当該順序付きリスト中の前記複数のユーザ・データ・セグメントの順序が前記目的テープ媒体上のそれらの物理的位置に従って再順序付けされた前記再順序付リストを生成し、
前記目的テープ媒体からの前記複数のユーザ・データ・セグメントの取得を、前記再順序付リスト上のそれらの順序で開始するための手段であって、
を含み、
前記順序付きリストの前記複数のユーザ・データ・セグメントの各々間の間隔が、下記式によって求められ、
D=|E(A)−S(B)|/V
ここで、Dが、第1のユーザ・データ・セグメントAの終端から第2のユーザ・データ・セグメント先頭へのシークに対する時間的間隔であり、
E()は、テープの始まりから前記第1のユーザ・データ・セグメント終端までの長さであり、
S()は、前記テープの前記始まりから前記第2のユーザ・データ・セグメント先頭までの長さであり、及び、
Vはユーザ・データ・セグメントをシークする為のテープ媒体の速度であり、
前記物理的位置を判定することが、前記計算された間隔(D)を用いて前記目的ユーザ・データ・セグメントの前記順序付きリストを処理して、前記複数のユーザ・データ・セグメントの各々の前記物理的位置を判定することを含む、
前記システム。
【請求項8】
前記再順序付け動作は、前記複数のユーザ・データ・セグメントの前記再順序付リストを生成するように動作可能な処理論理を含むテープ・ドライブによって処理される、請求項7に記載のシステム。
【請求項9】
前記再順序付け動作は、前記複数のユーザ・データ・セグメントの前記再順序付リストを生成するように動作可能な処理論理を含むテープ・ライブラリによって処理される、請求項7又は8に記載のシステム。
【請求項10】
前記再順序付け動作は、前記複数のユーザ・データ・セグメントの前記再順序付リストを生成するように動作可能な処理論理を含むホストによって処理される、請求項7〜9までのいずれか一項に記載のシステム。
【請求項11】
個々のユーザ・データ・セグメントが複数のデータ・レコードを含む、請求項7〜10のいずれか一項に記載のシステム。
【請求項12】
前記目的テープ媒体上の前記複数のユーザ・データ・セグメントの前記物理的位置は、
テープ・ディレクトリ(TD)、
ファイルマーク・マップ、
高解像度テープ・ディレクトリ(HRTD)、又は
仮想HRTD
のうちの1つに格納されたユーザ・データ・セグメント・テープ媒体位置データを処理することによって判定される、請求項7〜11のいずれか一項に記載のシステム。
【請求項13】
コンピュータ・システムに、請求項1〜6のいずれか一項に記載の方法の各ステップを実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、テープ媒体上に格納されたデータへのアクセスを管理することに関し、より具体的には、リスト内のユーザ・データ・セグメント(UDS)を再順序付けして、UDSシーク時間を減らすことに関する。
【背景技術】
【0002】
データ・ストレージのために用いられるテープ媒体の容量は、対応するフォーム・ファクタに応じて増大を続けている。例えば、リニア・テープ・オープン(LTO)第5世代媒体の非圧縮の(native)容量は、1.5テラバイト(TB)である。テープ媒体の容量が増大するにつれて、その利用法は変化してきた。過去においては、テープ媒体は、主としてデータ・バックアップ及びアーカイビングのために用いられてきた。現在では、テープ媒体は、仮想テープ・サーバ(VTS)、階層型ストレージ管理(HSM)、及び長期ファイル・システム(LTFS)のようなファイル・システムのためにも用いられている。
【0003】
テープ媒体のデータ転送速度も向上し続けてきた。一例として、先に言及したLTO第5世代テープ・ドライブの非圧縮の読み出し及び書き込み転送速度は、140MB/秒である。一部には、データ転送速度の向上は、データ圧縮手法の使用を通して達成される。しかしながら、LTO第5世代テープ・ドライブ上の個々のレコードに対するデータのシーク時間は、平均すると1分である。長いシーク時間の1つの理由は、LTO第5世代テープ媒体の800メートルという長さと、対応するおよそ10メートル/秒という再位置決め速度との組み合わせである。別の理由は、テープ・ドライブは典型的には、テープ媒体上における目的レコードの実際の物理的位置を確実には認識していないということである。
【0004】
長いシーク時間は、一般にはテープ・ドライブの弱点の1つであると考えられるが、個別のレコード、又は、その物理的位置がテープ媒体上で連続的に配置されているレコードのシーケンスにアクセスするときには、それほどの不都合はない。しかしながら、長いシーク時間は、テープ媒体上に連続的に配置されていない目的レコードのシーケンスを読み出すときには、追加の待ち時間をもたらすことがある。これらの状況においては、テープ・ドライブは、目的レコードの位置を検索するためにテープ媒体を巻き取り、かつ巻き戻すことが要求される。その結果、連続的になっていないレコードのシーケンスを読み出すためにかかる時間の総量は、目的レコードの数が増加するに従って著しく増大することがある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の目的は、テープ媒体上に格納されたデータにアクセスするときのシーク時間を減らすためにデータへのアクセスを管理する方法、システム及びプログラムを提供することである。
【課題を解決するための手段】
【0006】
従って、本発明は、第1の態様において、テープ媒体上に格納されたデータへのアクセスを管理するための方法を提供し、この方法は、目的テープ媒体から複数のユーザ・データ・セグメントをリストする再順序付きリストを取得する要求を受け取ることと、目的テープ媒体上の複数のユーザ・データ・セグメントの各々の物理的位置を判定することと、複数のユーザ・データ・セグメントをリストする順序付きリストに対して再順序付け動作を実行して、当該順序付きリスト中の前記複数のユーザ・データ・セグメントの順序が目的テープ媒体上のそれらの物理的位置に従って再順序付けされた前記順序付リスト再順序付けされたリストを生成することと、前記目的テープ媒体からの前記複数のユーザ・データ・セグメントの取得を、前記再順序付きリスト上のそれらの順序で開始することとを含む。
【0007】
好ましくは、再順序付け動作は、ユーザ・データ・セグメントの再順序付けされたリストを生成するように動作可能な処理論理を含むテープ・ドライブによって処理される。好ましくは、再順序付け動作は、ユーザ・データ・セグメントの再順序付けされたリストを生成するように動作可能な処理論理を含むテープ・ライブラリによって処理される。好ましくは、再順序付け動作は、ユーザ・データ・セグメントの再順序付けされたリストを生成するように動作可能な処理論理を含むホストによって処理される。好ましくは、個々のユーザ・データ・セグメントは、複数のデータ・レコードを含む。好ましくは、目的テープ媒体上のユーザ・データ・セグメントの物理的位置は、テープ・ディレクトリ(TD)、ファイルマーク・マップ、高解像度テープ・ディレクトリ(HRTD)、又は仮想HRTDのうちの1つに格納されたユーザ・データ・セグメント・テープ媒体位置データを処理することによって判定される。
【0008】
第2の態様においては、テープ媒体上に格納されたデータへのアクセスを管理するためのシステムが提供され、このシステムは、プロセッサと、プロセッサに結合されたデータ・バスと、目的テープ媒体から複数のユーザ・データ・セグメントをリストする再順序付きリストを取得する要求を受け取り、目的テープ媒体上の複数のユーザ・データ・セグメントの各々の物理的位置を判定し、複数のユーザ・データ・セグメントをリストする順序付きリストに対して再順序付け動作を実行して、当該順序付きリスト中の前記複数のユーザ・データ・セグメントの順序が目的テープ媒体上のそれらの物理的位置に従って再順序付けされた前記順序付リスト再順序付けされたリストを生成し、前記目的テープ媒体からの前記複数のユーザ・データ・セグメントの取得を、前記再順序付きリスト上のそれらの順序で開始するための手段とを含む。
【0009】
好ましくは、再順序付け動作は、ユーザ・データ・セグメントの再順序付けされたリストを生成するように動作可能な処理論理を含むテープ・ドライブによって処理される。好ましくは、再順序付け動作は、ユーザ・データ・セグメントの再順序付けされたリストを生成するように動作可能な処理論理を含むテープ・ライブラリによって処理される。好ましくは、再順序付け動作は、ユーザ・データ・セグメントの再順序付けされたリストを生成するように動作可能な処理論理を含むホストによって処理される。好ましくは、個々のユーザ・データ・セグメントは、複数のデータ・レコードを含む。好ましくは、目的テープ媒体上のユーザ・データ・セグメントの物理的位置は、テープ・ディレクトリ(TD)、ファイルマーク・マップ、高解像度テープ・ディレクトリ(HRTD)、又は仮想HRTDのうちの1つに格納されたユーザ・データ・セグメント・テープ媒体位置データを処理することによって判定される。
【0010】
第3の態様において、コンピュータ・システム内にロードされてそこで実行されたときに、第1の態様による方法の全てのステップをコンピュータ・システムに実行させる、コンピュータ可読媒体上に格納されたコンピュータ・プログラム・コードを含むコンピュータ・プログラムが提供される。
【0011】
第3の態様のコンピュータ・プログラムは、コンピュータ・プログラム・コードを具体化するコンピュータ使用可能媒体の形態で提供することができ、このコンピュータ・プログラム・コードは、目的テープ媒体から複数のユーザ・データ・セグメントをリストする再順序付きリストを取得する要求を受け取り、目的テープ媒体上の複数のユーザ・データ・セグメントの各々の物理的位置を判定し、複数のユーザ・データ・セグメントをリストする順序付きリストに対して再順序付け動作を実行して、当該順序付きリスト中の前記複数のユーザ・データ・セグメントの順序が目的テープ媒体上のそれらの物理的位置に従って再順序付けされた前記順序付リスト再順序付けされたリストを生成し、目的テープ媒体からのユーザ・データ・セグメントの取得を、前記再順序付きリスト上のそれらの順序で開始するように構成された、コンピュータ実行可能命令を含む。第3の態様の好ましいコンピュータ・プログラム要素は、第1の態様の好ましい方法ステップの特徴に対応する。コンピュータ使用可能媒体は、遠隔位置にあるサーバからクライアント・コンピュータに配布することができるコンピュータ実行可能命令を含むことができる。好ましくは、コンピュータ実行可能命令は、サービス・プロバイダによって、オンデマンド方式で顧客に提供される。
【0012】
従って、テープ媒体上に格納されたデータにアクセスするときのシーク時間を減らすためにリスト内のユーザ・データ・セグメント(UDS)を再順序付けするための方法、システム及びコンピュータ使用可能媒体が開示される。種々の実施形態において、ユーザ・データ・セグメント(UDS)リスト再順序付けモジュールは、テープ・ドライブ上、テープ・ライブラリ上、又はホスト内に実装される。これら及び他の実施形態において、UDSリスト再順序付けモジュールは、テープ媒体から取得する目的ユーザ・データ・セグメントの順序付きリストを受け取る。UDSリスト再順序付けモジュールは、次に、典型的には個々のレコード番号とテープ媒体上のその対応する物理的位置との間の関係に関してのテープ・ディレクトリ又は他の情報を含む、目的テープ媒体と対話する。次にテープ媒体は、テープ・ディレクトリ又は他の情報を用いてシーク動作を実行すること、そして次に対応するデータ・レコードを読み出すことが可能な、テープ・ドライブによって読み取られる。種々の実施形態において、テープ・ドライブは、どのテープ媒体が目的ユーザ・データ・セグメントを収容しているのかを認識しているテープ・ライブラリと共に実装される。
【0013】
UDSリスト再順序付けモジュールは、次に、テープ・ディレクトリ又は他の情報を用いて目的ユーザ・データ・セグメントの順序付きリストを処理して、テープ媒体上のユーザ・データ・セグメントの各々の物理的位置を判定する。得られた物理的位置は、次にUDSリスト再順序付けモジュールによって処理されて、ユーザ・データ・セグメントの順序が目的テープ媒体上のその物理的位置に従って再順序付けされたユーザ・データ・セグメントの再順序付けされたリストが生成される。UDSリスト再順序付けモジュールは、次にユーザ・データ・セグメントの再順序付けされたリストを、テープ媒体からユーザ・データ・セグメントを読み出すためのシーク、再位置決め及び読み出し動作を実行することが可能な、ホスト上に実装されたアプリケーションに提供する。
【0014】
本発明の好ましい実施形態を、以下、例示のみを目的として、添付の図面を参照して説明する。
【図面の簡単な説明】
【0015】
図1】本発明を実装することができる、例示的なクライアント・コンピュータを示す。
図2】テープ・ドライブ上に実装されたユーザ・データ・セグメント(UDS)リスト再順序付けモジュールの略ブロック図である。
図3】テープ・ライブラリ上に実装されたUDSリスト再順序付けモジュールの略ブロック図である。
図4】ホスト上に実装されたUDSリスト再順序付けモジュールの略ブロック図である。
図5】UDSリスト再順序付けモジュールの動作の一般化されたフローチャートである。
【発明を実施するための形態】
【0016】
テープ媒体上に格納されたデータにアクセスするときのシーク時間を減らすためにユーザ・データ・セグメント(UDS)リストを再順序付けするための方法、システム及びコンピュータ使用可能媒体が、開示される。当業者により認識されるように、本発明は、方法、システム又はコンピュータ・プログラム製品として具体化することができる。従って、本発明の実施形態は、全体をハードウェアで実施することができ、全体をソフトウェア(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)で実施することができ、又は、ソフトウェアとハードウェアとを組み合わせた実施形態で実施することもできる。これらの種々の実施形態は全て、本明細書において、「回路」、「モジュール」又は「システム」と一般に呼ぶことができる。さらに、本発明は、媒体内に具体化されたコンピュータ使用可能プログラム・コードを有するコンピュータ使用可能ストレージ媒体上のコンピュータ・プログラム製品の形態をとることができる。
【0017】
任意の適切なコンピュータ使用可能媒体又はコンピュータ可読媒体を利用することができる。コンピュータ使用可能媒体又はコンピュータ可読媒体は、例えば、電子的、磁気的、光学的、電磁気的、赤外線又は半導体のシステム、装置又はデバイスとすることができるが、これらに限定されない。コンピュータ可読媒体のより具体的な例(非網羅的なリスト)は、以下のもの、即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、ポータブル・コンパクト・ディスク型読み出し専用メモリ(CD−ROM)、光記憶装置、又は磁気記憶装置を含む。本明細書の文脈において、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置若しくはデバイスによって、又はこれらと関連して用いるためのプログラムを収容し、格納し、伝達し、又は輸送することができる任意の媒体とすることができる。
【0018】
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++等のようなオブジェクト指向プログラミング言語で記述することができる。しかしながら、本発明の動作を実行するためのコンピュータ・プログラム・コードは、Cプログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語でも記述することができる。プログラム・コードは、全体がユーザのコンピュータ上で実行される場合もあり、独立したソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は全体が遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続(例えば、インターネット・サービス・プロバイダを用いるインターネットを通じて)がなされる場合もある。
【0019】
本発明の実施形態を、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して以下で説明する。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ・プログラム命令によって実装することができることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ又は他のプログラム可能データ処理装置のプロセッサに与えて機械を製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するための手段を作り出すようにすることができる。
【0020】
これらのコンピュータ・プログラム命令を、コンピュータ又は他のプログラム可能データ処理装置に特定の方式で機能するよう指示することができるコンピュータ可読メモリ内に格納して、それにより、そのコンピュータ可読メモリ内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する命令手段を含む製品を製造するようにさせることもできる。
【0021】
コンピュータ・プログラム命令をコンピュータ又は他のプログラム可能データ処理装置上にロードして、そのコンピュータ又は他のプログラム可能装置上で一連の動作ステップを実施させてコンピュータにより実装されるプロセスを生成し、それにより、そのコンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するためのステップを提供するようにすることもできる。
【0022】
図1は、本発明をその中で利用することができる例示的なクライアント・コンピュータ102のブロック図である。クライアント・コンピュータ102は、システム・バス106に結合されたプロセッサ・ユニット104を含む。ディスプレイ110を制御するビデオ・アダプタ108もまた、システム・バス106に結合される。システム・バス106は、バス・ブリッジ112を介して、入力/出力(I/O)バス114に結合される。I/Oインターフェース116が、I/Oバス114に結合される。I/Oインターフェース116は、キーボード118、マウス120、コンパクト・ディスク型読み出し専用メモリ(CD−ROM)ドライブ122、テープ・ドライブ124(ライブラリを提供するための1つ又は複数のテープを含むことができる)、及びフラッシュ・ドライブ・メモリ126を含む種々のI/Oデバイスと通信することができる。I/Oインターフェース116に接続されるポートの形態は、コンピュータ・アーキテクチャの分野の当業者に知られた任意の形態とすることができ、ユニバーサル・シリアル・バス(USB)ポートを含むがそれに限定されない。
【0023】
クライアント・コンピュータ102は、システム・バス106に結合されたネットワーク・インターフェース130を用いて、ネットワーク128を介してサービス・プロバイダ・サーバ152と通信することができる。ネットワーク128は、インターネットのような外部ネットワーク、又はイーサネット・ネットワーク若しくは仮想プライベート・ネットワーク(VPN)のような内部ネットワークとすることができる。
【0024】
ハード・ドライブ・インターフェース132もまた、システム・バス106に結合される。ハード・ドライブ・インターフェース132は、ハード・ドライブ134とインターフェースする。好ましい実施形態においては、ハード・ドライブ134は、これもまたシステム・バス106に結合されるシステム・メモリ136にポピュレートする。システム・メモリ136にポピュレートするデータは、クライアント・コンピュータ102のオペレーティング・システム(OS)138及びソフトウェア・プログラム144を含む。
【0025】
OS138は、ソフトウェア・プログラム144のようなリソースに対する透過的なユーザ・アクセスを提供するためのシェル140を含む。一般に、シェル140は、ユーザとオペレーティング・システムとの間のインタプリタ及びインターフェースを提供するプログラムである。より詳細には、シェル140は、コマンド・ライン・ユーザ・インターフェース内に入力されたコマンド又はファイルからのコマンドを実行する。従って、シェル140(UNIX(登録商標)においてはそう呼ばれる)は、Windows(登録商標)ではコマンド・プロセッサとも呼ばれ、一般に、オペレーティング・システム・ソフトウェア階層の最高レベルであり、コマンド・インタプリタとして機能する。シェルは、システム・プロンプトを与え、キーボード、マウス又は他のユーザ入力媒体によって入力されたコマンドを解釈し、解釈されたコマンドを処理のためにオペレーティング・システムの適切な下位レベル(例えば、カーネル142)に送る。シェル140は、一般に、テキスト・ベースの行指向ユーザ・インターフェースであるが、本発明は、画像、音声、ジェスチャ等のような他のユーザ・インターフェース・モードをサポートすることもできる。
【0026】
図示されるように、OS138は、メモリ管理、プロセス及びタスク管理、ディスク管理、並びにマウス及びキーボード管理を含めて、OS138の他の部分及びソフトウェア・プログラム144によって要求される必須のサービスを含む、OS138のための下位レベルの機能を含むカーネル142も含む。
【0027】
ソフトウェア・プログラム144は、ブラウザ146及び電子メール・クライアント148を含むことができる。ブラウザ146は、ワールド・ワイド・ウェブ(WWW)クライアント(即ち、クライアント・コンピュータ102)が、ハイパーテキスト転送プロトコル(HTTP)メッセージングを用いてインターネットとの間でネットワーク・メッセージを送受信することを可能にするプログラム・モジュール及び命令を含み、これによりサービス・プロバイダ・サーバ152との通信を可能にする。ソフトウェア・プログラム144は、ユーザ・データ・セグメント(UDS)リスト再順序付けモジュール150も含む。UDSリスト再順序付けモジュール150は、後述の図2図4で説明されるプロセスを実装するためのコードを含む。一実施形態においては、クライアント・コンピュータ102は、UDSリスト再順序付けモジュール150を、サービス・プロバイダ・サーバ152からダウンロードすることができる。
【0028】
クライアント・コンピュータ102内に描かれたハードウェア要素は、網羅的であることが意図されるものではなく、むしろ、本発明によって用いられるコンポーネントを強調するための代表的なものである。例えば、クライアント・コンピュータ102は、磁気カセット、デジタル多用途ディスク(DVD)、ベルヌーイ・カートリッジ等のような代替的なメモリ・ストレージ・デバイスを含むことができる。これら及び他の変種は、本発明の趣旨及び範囲内に含まれることが意図される。
【0029】
本明細書において用いられる場合、データ・レコードは、テープ・ドライブ・システムによる処理および記録のために(例えば、ホストから)提供される区別できる最小のデータの組として、そしてまた同様に、テープ・ドライブ・システムによってテープから読み出され、再処理され、(例えば、ホストにとって)利用可能なものにすることができる、区別できる最小のデータの組として定義される。種々の実施形態において、ホスト上で動作するアプリケーションは一般に、本明細書においてはユーザ・データ・セグメントと呼ばれる、多重のデータ・レコードの組を一度に読み出し又は書き込む。
【0030】
これら及び他の実施形態において、アプリケーションは、典型的には、ロード・コマンドを呼び出して、複数のユーザ・データ・セグメントを含むテープ媒体をロードする。テープ媒体がロードされると、アプリケーションは、再位置決めコマンドを呼び出して目的ユーザ・データ・セグメントをシークし、その後、読み出しコマンドを呼び出してこれを読み出す。これらのステップは、その後、全ての目的ユーザ・データ・セグメントが読み出されるまで繰り返される。
【0031】
しかしながら、シーク動作を実行することができるようになる前に、テープ・ドライブは、まず目的データ・レコードの物理的位置を推定することを必要とする。テープ媒体は何百万ものデータ・レコードを収容することができるので、テープ媒体上での各レコードの物理的位置それ自体を保存することが必ずしも現実的であるとは限らない。同様に、各データ・レコードは異なるサイズであり得るので、データ・レコードの物理的位置を推定することが難しい場合もある。結果として、データ・レコードの推定物理位置がその実際の位置から離れている場合には、データ・レコードのシーク時間が増大することがある。
【0032】
種々の実施形態において、目的ユーザ・データ・セグメント及びその関連付けられたデータ・レコードの物理的位置は、データ・レコード番号、及び、テープ媒体上の所定の物理的区域又は領域に対して索引付けされたその他の関連情報を処理することによって判定される。これら及び他の実施形態において、データ・レコードの位置情報は、テープ・ディレクトリ(TD)、ファイルマーク・マップ、高解像度テープ・ディレクトリ(HRTD)若しくは仮想HRTD内に格納され、又は、当業者が精通している他のデータ・レコード索引付け手法で格納される。
【0033】
長いシーク時間は、テープ媒体がデータ・バックアップ又はアーカイビングのために用いられるときには典型的には問題にはならない。いくつかの場合には、1つだけ又は数個のユーザ・データ・セグメントが読み出される。他の場合には、もっと多くのユーザ・データ・セグメントが読み出されるが、それらは典型的には連続的な順序でテープ媒体上に存在するので、シーク時間は、一般に最初のユーザ・データ・セグメントの位置を突き止めるために発生する。しかしながら、テープ媒体が仮想テープ記憶(VTS)又はファイル・システムのために用いられる場合には、テープ媒体上の多数のユーザ・データ・セグメントを読み出すことは珍しくない。例えば、VTS上で実行されるテープ媒体上の有効なデータを別のテープ媒体に移動する(reclamation)動作、及びファイル・システム上で実行されるデフラグ動作は、多くのユーザ・データ・セグメントの読み出しを招くことがある。これらの場合には、個々のシーク動作に関連付けられた累積シーク時間が合計され、結果として性能が低下する。
【0034】
種々の実施形態において、ユーザ・データ・セグメント(UDS)リスト再順序付けモジュールは、テープ・ドライブ上、テープ・ライブラリ上、又はホスト内に実装される。これら及び他の実施形態において、UDSリスト再順序付けモジュールは、テープ媒体から取得する目的ユーザ・データ・セグメントの順序付きリストを受け取る。UDSリスト再順序付けモジュールは、次に、典型的には個々のレコード番号とテープ媒体上のその対応する物理的位置との間の関係に関してのテープ・ディレクトリ又は他の情報を含む、目的テープ媒体と対話する。次にテープ媒体は、テープ・ディレクトリ又は他の情報を用いてシーク動作を実行すること、そして次に対応するデータ・レコードを読み出すことが可能な、テープ・ドライブによって読み取られる。種々の実施形態において、テープ・ドライブは、どのテープ媒体が目的ユーザ・データ・セグメントを収容しているのかを認識しているテープ・ライブラリと共に実装される。
【0035】
種々の実施形態において、第1のユーザ・データ・セグメント「A」の終端から第2のユーザ・データ・セグメント「B」の先頭へのシークに対する時間的間隔(「D」)は、以下のアルゴリズムを用いることによって求められる。
D=|E(A)−S(B)|/V
【0036】
このアルゴリズムにおいて、D第1のユーザ・データ・セグメント「A」の終端から第2のユーザ・データ・セグメント「B」の先頭へのシークに対する時間的間隔であり、E()は、テープの始まりから上記第1のユーザ・データ・セグメント終端までの長さであり、S()は、上記テープの上記始まりから上記第2のユーザ・データ・セグメント先頭までの長さであり、Vはユーザ・データ・セグメントをシークする為のテープ媒体の速度である。
【0037】
UDSリスト再順序付けモジュールは、次に、計算された距離(「D」)情報を用いて目的ユーザ・データ・セグメントの順序付きリストを処理して、テープ媒体上のユーザ・データ・セグメントの各々の物理的位置を判定する。得られた物理的位置は、次にUDSリスト再順序付けモジュールによって処理されて、ユーザ・データ・セグメントの順序が目的テープ媒体上のその物理的位置に従って再順序付けされたユーザ・データ・セグメントの再順序付けされたリストが生成される。UDSリスト再順序付けモジュールは、次にユーザ・データ・セグメントの再順序付けされたリストを、テープ媒体からユーザ・データ・セグメントを読み出すためのシーク、再位置決め及び読み出し動作を実行することが可能な、ホスト上に実装されたアプリケーションに提供する。
【0038】
図2は、本発明の実施形態による、テープ・ドライブ上に実装されたユーザ・データ・セグメント(UDS)リスト再順序付けモジュールの略ブロック図である。この実施形態において、テープ・ライブラリ206は、テープ媒体210及びテープ・ドライブ208を含み、このテープ・ドライブは、ユーザ・データ・セグメント(UDS)リスト再順序付けモジュール250を含む。ホスト202は、アプリケーション204を含み、このアプリケーションは、テープ・ライブラリ206、テープ・ドライブ208、UDSリスト再順序付けモジュール250及びテープ媒体210に関連付けられた、シーク、再位置決め及び読み出し動作を実行することが可能である。
【0039】
ここでより詳細に説明されるように、アプリケーション204は、ユーザ・データ・セグメント・リスト212をUDSリスト再順序付けモジュール250に提供し、UDSリスト再順序付けモジュールは、テープ媒体210上の各ユーザ・データ・セグメントの物理的位置を判定する。物理的位置が判定されると、UDSリスト再順序付けモジュール250は、再順序付けされたユーザ・データ・セグメント・リスト216を生成し、これが次にアプリケーション204に提供される。アプリケーションは、次に、再順序付けされたユーザ・データ・セグメント・リスト216を用いて再位置決め動作を実行して、再順序付けされたユーザ・データ・セグメント・リスト216内の最初のユーザ・データ・セグメントに対してテープ媒体210を再位置決めする(218)。その後、アプリケーションは、読み出し動作を実行して、再順序付けされたユーザ・データ・セグメント・リスト216内の最初のユーザ・データ・セグメントを読み出す(220)。最初のユーザ・データ・セグメントが読み出されると、アプリケーション204は、再順序付けされたユーザ・データ・セグメント・リスト216を引き続き用いて再位置決め動作及び読み出し動作を実行し、再順序付けされたユーザ・データ・セグメント・リスト216内の残りのユーザ・データ・セグメントを読み出す。この実施形態においては、将来的にテープ・ドライブ208がテープ・ドライブ208のより新しいモデルで置き換えられても、テープ・ライブラリ206又はアプリケーション204に対する変更は必要ないことを、当業者は認識するであろう。
【0040】
図3は、本発明の実施形態による、テープ・ライブラリ上に実装されたユーザ・データ・セグメント(UDS)リスト再順序付けモジュールの略ブロック図である。この実施形態において、テープ・ライブラリ206は、テープ媒体210、テープ・ドライブ208、ユーザ・データ・セグメント(UDS)リスト再順序付けモジュール350、及びテープ・ディレクトリ又は他のユーザ・データ・セグメント位置情報314を含む。ホスト202は、アプリケーション204を含み、このアプリケーションは、テープ・ライブラリ206、テープ・ドライブ208、UDSリスト再順序付けモジュール350及びテープ媒体210に関連付けられた、シーク、再位置決め及び読み出し動作を実行することが可能である。
【0041】
ここでより詳細に説明されるように、アプリケーション204は、ユーザ・データ・セグメント・リスト212を、UDSリスト再順序付けモジュール350に提供し、UDSリスト再順序付けモジュールは、テープ媒体210上の各ユーザ・データ・セグメントの物理的位置を判定する。物理的位置が判定されると、UDSリスト再順序付けモジュール350は、再順序付けされたユーザ・データ・セグメント・リスト216を生成し、これが次にアプリケーション204に提供される。アプリケーションは、次に、再順序付けされたユーザ・データ・セグメント・リスト216を用いて再位置決め動作を実行して、再順序付けされたユーザ・データ・セグメント・リスト216内の最初のユーザ・データ・セグメントに対してテープ媒体210を再位置決めする(218)。その後、アプリケーションは、読み出し動作を実行して、再順序付けされたユーザ・データ・セグメント・リスト216内の最初のユーザ・データ・セグメントを読み出す(220)。最初のユーザ・データ・セグメントが読み出されると、アプリケーション204は、再順序付けされたユーザ・データ・セグメント・リスト216を引き続き用いて再位置決め及び読み出し動作を実行し、再順序付けされたユーザ・データ・セグメント・リスト216内の残りのユーザ・データ・セグメントを読み出す。当業者は、この実施形態が、所望のユーザ・データ・セグメントが複数のテープ媒体210カートリッジ内に記録されていた場合でもテープ・ライブラリ206が目的テープ媒体210を選択することを可能にすることを認識するであろう。
【0042】
図4は、本発明の実施形態による、ホスト上に実装されたUDSリスト再順序付けモジュールの略ブロック図である。この実施形態において、テープ・ライブラリ206は、テープ媒体210及びテープ・ドライブ208を含む。ホスト202は、ユーザ・データ・セグメント(UDS)リスト再順序付けモジュール450、ユーザ・データ・セグメント・リスト412、及びアプリケーション204を含み、このアプリケーションは、テープ・ライブラリ206、テープ・ドライブ208、UDSリスト再順序付けモジュール450及びテープ媒体210に関連付けられた、シーク、再位置決め及び読み出し動作を実行することが可能である。
【0043】
この実施形態において、アプリケーション204は、テープ・ディレクトリ、テープ・ドライブ及びテープ媒体の情報412を、テープ・ライブラリ206又はテープ・ドライブ208のいずれかから受け取る。UDSリスト再順序付けモジュール450は、次に、テープ・ディレクトリ、テープ・ドライブ及びテープ媒体の情報412を用いて、テープ媒体210上の各ユーザ・データ・セグメントの物理的位置を判定する。物理的位置が判定されると、UDSリスト再順序付けモジュール450は、次に、ユーザ・データ・セグメント・リスト412を処理して、再順序付けされたユーザ・データ・セグメント・リスト416を生成し、これが次にアプリケーション204に提供される。アプリケーションは、次に、再順序付けされたユーザ・データ・セグメント・リスト416を用いて再位置決め動作を実行して、再順序付けされたユーザ・データ・セグメント・リスト416内の最初のユーザ・データ・セグメントに対してテープ媒体210を再位置決めする(218)。その後、アプリケーションは、読み出し動作を実行して、再順序付けされたユーザ・データ・セグメント・リスト416内の最初のユーザ・データ・セグメントを読み出す(220)。最初のユーザ・データ・セグメントが読み出されると、アプリケーション204は、再順序付けされたユーザ・データ・セグメント・リスト416を引き続き用いて再位置決め及び読み出し動作を実行し、再順序付けされたユーザ・データ・セグメント・リスト416内の残りのユーザ・データ・セグメントを読み出す。
【0044】
図5は、本発明の実施形態により実装されるユーザ・データ・セグメント(UDS)リスト再順序付けモジュールの動作の一般化されたフローチャートである。この実施形態において、UDSリスト再順序付け動作は、ステップ502で開始され、その後、ステップ504において、UDSリスト再順序付けモジュールが目的テープ・ドライブ上に実装されているかどうかの判定が行われる。目的テープ・ドライブ上に実装されている場合には、ステップ506において、アプリケーションは、本明細書においてより詳細に説明されているように、目的UDSリストをテープ・ドライブ上のUDSリスト再順序付けモジュールに提出する。そうでない場合には、ステップ508において、UDSリスト再順序付けモジュールが目的テープ・ライブラリ上に実装されているかどうかの判定が行われる。目的テープ・ライブラリ上に実装されている場合には、ステップ510において、アプリケーションは、本明細書においてより詳細に説明されているように、目的UDSリストをテープ・ライブラリ上のUDSリスト再順序付けモジュールに提出する。ステップ506又はステップ510において、UDSリストがUDSリスト再順序付けモジュールにそれぞれ提出されると、ステップ512において、UDSリスト再順序付けモジュールは、目的媒体のテープ・ディレクトリを読み出す。
【0045】
しかしながら、ステップ508において、UDSリスト再順序付けモジュールがテープ・ライブラリ上に実装されていないと判定された場合には、ステップ514において、UDSリスト再順序付けモジュールがホスト上に実装されているかどうかの判定が行われる。ホスト上に実装されていない場合には、UDSリスト再順序付け動作は、ステップ532においいて終了する。そうでない場合には、UDSリスト再順序付けモジュールは、テープ・ディレクトリ、テープ・ドライブ及びテープ媒体の情報を、目的テープ・ドライブ又は目的テープ・ライブラリのいずれかから取得する。その後、又は、ステップ512においてUDSリスト再順序付けモジュールが目的媒体のテープ・ディレクトリを読み出すと、ステップ518において、UDSリスト再順序付けモジュールは、テープ媒体上の各UDSに関連付けられた物理的位置の情報を判定する。
【0046】
その後、ステップ520において、UDSリスト再順序付けモジュールは、物理的位置の情報を処理して、再順序付けされたUDSリストを生成し、このリストは次に、ステップ522において、アプリケーションに提出される。次いで、ステップ524において、アプリケーションは、シーク動作を実行して、再順序付けされたUDSリスト上の最初のUDSの位置に目的媒体を位置決めする。その後、アプリケーションは、読み出し動作を実行して、目的UDSを読み出す。次にステップ528において、再順序付けされたUDSリスト上の最後のUDSが読み出されたかどうかの判定が行われる。最後のUDSが読み出された場合には、UDSリスト再順序付け動作は、ステップ532において終了する。そうでない場合には、ステップ530において、アプリケーションは、シーク動作を実行して、再順序付けされたUDSリスト上の次のUDSの物理的位置にテープ媒体を位置決めする。プロセスは、その後継続され、ステップ526に進む。
【0047】
本発明を詳細に説明したが、添付の特許請求の範囲により定義された本発明の範囲から逸脱することなく、これに種々の変更、置き換え及び修正を行うことができることが、当業者には明らかであろう。
【符号の説明】
【0048】
102:クライアント・コンピュータ
図1
図2
図3
図4
図5