JP5166541B2 - データの再呼び出し順を決定するための装置、方法、及びプログラム - Google Patents

データの再呼び出し順を決定するための装置、方法、及びプログラム Download PDF

Info

Publication number
JP5166541B2
JP5166541B2 JP2010530803A JP2010530803A JP5166541B2 JP 5166541 B2 JP5166541 B2 JP 5166541B2 JP 2010530803 A JP2010530803 A JP 2010530803A JP 2010530803 A JP2010530803 A JP 2010530803A JP 5166541 B2 JP5166541 B2 JP 5166541B2
Authority
JP
Japan
Prior art keywords
request
execution order
waiting time
queue table
requests
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010530803A
Other languages
English (en)
Other versions
JPWO2010035617A1 (ja
Inventor
豊 大石
和弘 鶴田
倫子 武冨
礼江 岩崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2010530803A priority Critical patent/JP5166541B2/ja
Publication of JPWO2010035617A1 publication Critical patent/JPWO2010035617A1/ja
Application granted granted Critical
Publication of JP5166541B2 publication Critical patent/JP5166541B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0682Tape device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0686Libraries, e.g. tape libraries, jukebox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Description

本発明は、仮想テープ・サーバにおけるボリュームの再呼び出しに関し、詳細には、ボリュームの再呼び出し要求の処理順を、該要求をしたホスト装置の平均待ち時間を最小にする観点から最適化する技術に関する。
仮想テープ・ストレージ・システムは、ハードディスク・ドライブを用いて、テープ・ドライブ及びテープ・カートリッジをエミュレートする。例えば、ホスト装置は、テープ・ライブラリをエミュレートする一組のハードディスク・ドライブに対して入力/出力(I/O)操作を行うことによって、テープ・ライブラリに対するI/O操作を行う。International Business Machines(IBM:IBMはIBM Corporationの商標)Magstar仮想テープ・サーバのような従来技術の仮想テープ・ストレージ・システムでは、少なくとも1つの仮想テープ・サーバ(VTS)が、複数のテープ・ドライブ及びテープ・カートリッジを含むテープ・ライブラリに結合される。VTSはまた、相互接続された複数のハード・ディスク・ドライブから構成された直接アクセス記憶装置(Direct Access Storage Device、DASD)にも結合される。
DASDは、テープ・ライブラリ内のボリュームに対するキャッシュとして機能する。VTSは、ホスト装置から要求を受け取ると、要求されたボリュームをキャッシュから読み出してホスト装置へ返す。要求されたボリュームがキャッシュにない場合、VTSは、ボリュームをテープ・ライブラリからキャッシュに呼び戻す。キャッシュは、テープ・ライブラリより迅速にI/O要求を満たすことができる。しかしながら、キャッシュの容量はテープ・ライブラリに比較して相対的に小さいので、頻繁にアクセスされるボリュームのみがキャッシュに保持される。VTSは、LRU(最長時間未使用)等のアルゴリズムを採用して、アクセスされなくなったボリュームを、キャッシュからテープ・ライブラリへ転送する。転送されたボリュームはキャッシュから除去され、一例として、テープ・カートリッジ上のデータを指すポインタに短縮される。
ところで典型的なVTSでは、ボリュームの再呼び出しに使用可能なテープ・ドライブよりも、仮想ボリュームへのアクセスを提供する仮想デバイスの数の方が多い。そのため、テープ・ドライブよりも多くの仮想デバイスが、キャッシュにない仮想ボリュームにアクセスする場合がある。このような場合、後からなされた再呼び出しは処理待ちのためキューに入れられる。一般に、キューに入れられるこれらの再呼び出しは、先入れ先出し順で処理される。ここで問題となるのが、再呼び出しにかかる時間である。
例えば、再呼び出しされたデータを含むテープ・カートリッジが、いずれのテープ・ドライブにもマウントされていない場合、現在マウントされているいずれかのテープ・カートリッジをテープ・ドライブからアンロードしなければならない。このプロセスには1分以上かかる可能性がある。次に、目的のデータを含むテープ・カートリッジをテープ・ドライブにロードし、テープをデータの先頭に位置づける必要がある。このプロセスには1分が費やされる可能性がある。更に、全てのテープ・ドライブが使用中である場合、いずれかのテープ・ドライブにおいて処理が終了するのを待つ必要がある。処理の終了を待つ時間は、実行中の処理に要する時間に依存する。
このような問題を解決し、再呼び出し要求の効率を上げるための従来技術として特許文献1が存在する。特許文献1は、1つまたは複数の最適化規則に従ってキューを再配列することにより、キューの処理を最適化する技術を開示する。最適化規則として、特許文献1は、例えば、単一の実装可能メディア上に常駐する論理ボリュームに対応する最小数又は最大数の再呼び出し要求を、キュー内で順次グループ化することや、グループ化において実装可能メディア上の少なくとも2つの再呼び出し要求の物理的場所に従うことを開示する。特許文献1はまた、第1の再呼び出し要求を第2の再呼び出し要求の状況に基づいて処理し、或いは、特定の再呼び出し要求について最小待機しきい値に達した場合に、該要求を、最適化規則を無視して処理する等により、任意の特定の要求について要求者を長く待たせすぎることがないようにする技術も開示する。
特開2006−190274号公報
上記特許文献1に開示される技術により、再呼び出し要求の効率を上げることが可能となる。しかしこれはVTSからみた再呼び出し要求の効率化であって、ホスト装置からみた効率化ではない。上記特許文献1の技術は、VTSがテープ・ドライブを利用する時間を可能な限り短くする。しかし、ホスト装置の待ち時間は、VTSがホスト装置の要求を受け付けてからその処理が完了するまでの時間であり、VTSによって先に受け付けられた要求の処理にかかる時間にも大きく依存する。
例えば、処理に非常に長い時間を要する要求がVTSによって先に受け付けられると、その直後に発行されキューに入れられた要求は本来短時間で処理できるものであっても、先の要求の長い処理時間を待たなければならない。その結果、ホスト装置の平均待ち時間は長くなる。なお、特許文献1においても、最小待機しきい値等を設ける等により、ホスト装置への応答時間を保証するよう配慮がなされている。しかし上記特許文献1に開示される技術は、あくまで任意の特定の要求について要求者を長く待たせすぎることがないようするものであり、ホスト装置の平均待ち時間を短くするものではない。実際、特許文献1において、各要求の実際の処理時間は何ら考慮されていない。
そこで本発明は、上記の課題、即ち、ホスト装置への応答時間の全要求についての合計を考慮することにより、ホスト装置の平均待ち時間を最小にすることのできる、データの再呼び出し順を決定するための装置、方法、及びプログラムを提供することを目的とする。本発明は更に、実行中の要求をも含めて、ホスト装置への応答時間の全要求についての合計を考慮することにより、ホスト装置の平均待ち時間を最小にすることのできる、データの再呼び出し順を決定するための装置、方法、及びプログラムを提供することを目的とする。
上記の目的を達成するため、本発明は、キュー・テーブルに入れられた全要求の考え得る全実行順の中から、要求が受け付けられてからその処理が完了するまでの待ち時間の平均が最小となる実行順を求め、該実行順に従ってキュー・テーブル内の要求を並び替える。即ち、本発明は、次のようなテープ・ライブラリに接続された、データの再呼び出し順を決定するための装置によって実現される。この装置は、テープ・ライブラリから再呼び出しする必要のあるデータに対するホスト装置の要求を受け付ける要求受付手段と、要求をキュー・テーブルに格納する格納手段と、キュー・テーブルへの要求の格納に応答して、キュー・テーブル内に格納されている全要求の考え得る全実行順のそれぞれについて、該実行順で処理した場合の各要求についての要求受付手段による受け付けからテープ・ライブラリにおける処理の完了までの待ち時間を予測する第1待ち時間予測手段と、第1待ち時間予測手段により予測された待ち時間を実行中の要求を含む全要求について足し合わせた合計が最小となる実行順である第1実行順を、適用すべき実行順として決定する第1実行順決定手段と、決定された適用すべき実行順に従って、キュー・テーブル内の全要求の実行順を並び替える並び替え手段とを含む。
好ましくは、第1実行順決定手段は、第1待ち時間予測手段により予測された待ち時間を実行中の要求を含む全要求について足し合わせた合計が最小となり、かつ、各要求の待ち時間がいずれも最大許容待ち時間を超えない実行順である第1実行順を、適用すべき実行順として決定する。ここで、最大許容待ち時間は、予め管理者により装置に設定されていてもよく、あるいは、ホスト装置から要求と共に指定されるものであってもよい。
更に好ましくは、上記テープ・ライブラリは複数のテープ・ドライブを含む。この場合、キュー・テーブル、第1待ち時間予測手段及び第1実行順決定手段はそれぞれテープ・ドライブ毎に複数用意される。そして、上記格納手段は1つの要求を複数のキュー・テーブルにそれぞれ仮想的に格納する。上記装置はまた、複数の第1実行順決定手段がそれぞれ決定した、複数の第1実行順における複数の待ち時間の合計の中で、最小の待ち時間の合計を決定した第1実行順決定手段を用意されたテープ・ドライブに、1つの要求を割り当てる割り当て先決定手段を更に含む。上記並び替え手段は、要求を割り当てられたテープ・ドライブに対応するキュー・テーブルへの1つの要求の格納を確定し、該キュー・テーブル内の全要求の実行順を、要求を割り当てられたテープ・ドライブに対応する第1実行順決定手段により決定された第1実行順に従って並び替える。
また本発明では、現在実行中の要求の処理を一旦中断して後に受け付けた要求を先に処理する方が、オーバヘッドを考慮してもホスト装置の平均待ち時間を短縮できる場合があることを考慮する。
即ち、好ましくは上記装置は、キュー・テーブルへの要求の格納に応答して、実行中の要求を現在までの処理を行う第1要求と残りの処理を行う第2要求に仮想的に分割し、該第2要求を含むキュー・テーブル内に格納された全要求の考え得る全実行順のそれぞれについて、該実行順で処理した場合の各要求についての待ち時間を予測する第2待ち時間予測手段と、第2待ち時間予測手段により予測された待ち時間を第1要求を含む全要求について足し合わせた合計が最小となる実行順を、第2実行順として決定する第2実行順決定手段と、第2実行順における待ち時間の合計が、第1実行順における待ち時間の合計よりも小さい場合に第2実行順を、それ以外の場合は第1実行順を、適用すべき実行順として再決定する適用実行順決定手段と、適用すべき実行順としての第2実行順の決定に応答して、実行中の要求の処理を中断する中断手段とを更に含む。
更に好ましくは、第1実行順決定手段は、第1待ち時間予測手段により予測された待ち時間を実行中の要求を含む全要求について足し合わせた合計が最小であり、かつ、各要求の待ち時間がいずれも最大許容待ち時間を超えない実行順である第1実行順を、適用すべき実行順として決定する。そして、第2実行順決定手段は、第2待ち時間予測手段により予測された待ち時間を第1要求を含む全要求について足し合わせた合計が最小であり、かつ、各要求の待ち時間がいずれも最大許容待ち時間を超えない実行順を第2実行順として決定する。ここで、最大許容待ち時間は、予め管理者により装置に設定されていてもよく、あるいは、ホスト装置から要求と共に指定されるものであってもよい。
更にまた好ましくは、上記テープ・ライブラリは複数のテープ・ドライブを含む。この場合キュー・テーブル、第1待ち時間予測手段、第1実行順決定手段、第2待ち時間予測手段、第2実行順決定手段、中断手段及び適用実行順決定手段はそれぞれテープ・ドライブ毎に複数用意される。そして、上記格納手段は1つの要求を複数のキュー・テーブルにそれぞれ仮想的に格納する。上記装置はまた、複数の適用実行順決定手段がそれぞれ決定した、複数の適用すべき実行順における複数の待ち時間の合計の中で、最小の待ち時間の合計を決定した適用実行順決定手段を用意されたテープ・ドライブに、1つの要求を割り当てる割り当て先決定手段を更に含む。複数の中断手段はそれぞれ、対応するテープ・ドライブに1つの要求が割り当てられた場合に、適用すべき実行順としての対応する第2実行順の決定に応答して、実行中の要求の処理を中断する。上記並び替え手段は、要求を割り当てられたテープ・ドライブに対応するキュー・テーブルへの1つの要求の格納を確定し、該キュー・テーブル内の全要求の実行順を、要求を割り当てられたテープ・ドライブに対応する適用実行順決定手段により決定された適用すべき実行順に従って並び替える。
以上、データの再呼び出し順を決定するための装置として本発明を説明したが、本発明は、そのような装置において実行される、データの再呼び出し順を決定するための方法又はプログラムとして把握することもできる。
本発明によれば、キュー・テーブルに入れられた各要求は、要求が受け付けられてからテープ・ライブラリにおけるその処理が完了するまでの待ち時間の全要求についての合計が最小となるような実行順に並び替えられる。その結果、本発明に係る装置では、ホスト装置の平均待ち時間を最小にすることができ、ホスト装置からみた再呼び出し要求の効率が上がる。本発明のその他の効果については、各実施の形態の記載から理解される。
本発明の実施の形態において使用可能な仮想テープ・システム100のハードウェア構成の一例を示す図である。 仮想テープ・サーバ(VTS)110の概略ブロックの一例を示す図である。 本発明の第1実施形態に係るデータの再呼び出し順を決定するための装置としてのストレージ・マネージャ300aの機能構成の一例を示す図である。 (a)は、本発明の第1及び第3実施形態に係るキュー・テーブル315の一例を示す図である。(b)は、本発明の第2及び第4実施形態に係るキュー・テーブル315の一例を示す図である。 (a)は、受け付け順に要求を処理する場合の、各要求の待ち時間を示す図である。(b)は、本発明の第1及び第3実施形態における、各要求の待ち時間を示す図である。 (a)は、本発明の第1及び第3実施形態に係る待ち時間算出テーブルの一例を示す図である。(b)は、(a)は、本発明の第2及び第4実施形態に係る待ち時間算出テーブルの一例を示す図である。 本発明の第2実施形態に係るデータの再呼び出し順を決定するための装置としてのストレージ・マネージャ300bの機能構成の一例を示す図である。 実行中の要求を中断して後の要求を先に処理する場合の、各要求の待ち時間を示す図である。 本発明の第3実施形態に係るデータの再呼び出し順を決定するための装置としてのストレージ・マネージャ300cの機能構成の一例を示す図である。 本発明の第4実施形態に係るデータの再呼び出し順を決定するための装置としてのストレージ・マネージャ300dの機能構成の一例を示す図である。 本発明の第1実施形態に係るストレージ・マネージャ300aの処理の流れを示すフローチャートの一例を示す図である。 本発明の第2実施形態に係るストレージ・マネージャ300bの処理の流れを示すフローチャートの一例を示す図である。
以下、本発明を実施するための形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
図1は、本発明の実施の形態において使用可能な仮想テープ・システム100の代表的なハードウェア構成の一例を示す。本実施形態に係る仮想テープ・システム100は、少なくとも1つのホスト装置105、少なくとも1つの仮想テープ・サーバ(Virtual Tape Server、VTS)110、及びライブラリ・システム115を含む。
各ホスト装置105a、bは、パーソナル・コンピュータ、ワークステーション、サーバ、メインフレームのような、当該技術分野において周知のいずれかの計算機とすることができる。また各ホスト装置105a、bは、当該技術分野において周知のいずれかのオペレーティング・システムを含むことができる。ホスト装置105とVTS110の間の接続120は、ストレージ・エリア・ネットワーク(SAN)又は、他の好適な通信チャネル、例えばIBM(商標)メインフレーム・コンピュータで使用されるエンタープライズ・システム接続(ESCOM)(商標)チャネルを使用できる。
VTS110は、当該技術分野において周知のいずれかのサーバ計算機であり、当該技術分野において周知のいずれかのオペレーティング・システムを含む。例えば、本発明の特定の実施において、VTS110は、IBM RS/6000(登録商標)システム、IBM Pシリーズ(IBM Corporationの商標)を含む1つ又は複数のコンピュータにおいて実施することができ、IBM AIX(IBM Corporationの商標)オペレーティング・システムを含むことができる。
VTS110はまた、ストレージの使用を最適化するストレージ・マネージャのようなアプリケーションを含むことができる。ストレージ・マネージャは、独立のアプリケーションとして実装することも、又は複数の他のアプリケーションの一部として実装することもできる。特定の実施においてストレージ・マネージャは、IBM Magstar(IBM Corporationの商標)仮想テープ・サーバ及びIBM ADSTAR(IBM Corporationの商標)分散型管理(ADSM)ソフトウェア又はTivoli(IBM Corporationの商標)ストレージ・マネージャのような自動データ・ストレージ・ライブラリを使用するためのソフトウェアを含むことができる。ストレージ・マネージャは、ホスト装置105、後述するVTS110内のキャッシュ、及びライブラリ・システム115間のデータ移動作業を行うことができる。
ライブラリ・システム115は、Magstar(IBM Corporationの商標)3494テープ・ライブラリのようなテープ・ライブラリ、又は、当該技術分野において周知の他のいずれかの自動データ・ストレージ・ライブラリ・システムとすることができる。特定の実施において、ライブラリ・システム115は、ライブラリ・マネージャ130、テープ・ドライブ・ユニットとすることができる1以上のテープ・ドライブ装置135a、b、c、アクセス機構140、及び複数のテープ・カートリッジ145a、…、nを含む。計算機によって実現されるライブラリ・マネージャ130は、テープ・ドライブ装置135及びアクセス機構140と相互接続され、これらの動作を制御する。
図1には、3つのテープ・ドライブ装置135a、b、cが示されている。本発明は1つ又は複数のテープ・ドライブ装置135を含む仮想テープ・システム100の下において動作可能である。図1において、ライブラリ・マネージャ130と、テープ・ドライブ装置135及びアクセス機構140との相互接続は、ライブラリ・マネージャ130が、テープ・ドライブ装置135或いはアクセス機構140又はその両方に制御信号を送信及び受信するためのものであることを示すため、破線で示している。その一方で、VTS110とテープ・ドライブ装置135との間の相互接続は、格納又は検索されるデータを送信及び受信するためのものであることから、実線で示している。
VTS110とテープ・ドライブ装置135との間の相互接続125は、SAN、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、又はインターネットを介して行うことができる。又は、VTS110とテープ・ドライブ装置135は、ポイント・ツー・ポイント又はマルチドロップ・バス接続、例えば、SmallComputer Storage Interface(SCSI)インター・フェースを介した直接接続を含む、他の好適なタイプのネットワークを介して接続してもよい。
アクセス機構140は、選択されたテープ・カートリッジ145を指定されたテープ・ドライブ装置135へ移送するように構成された、ロボット・アーム又は他の機械的な装置とすることができる。アクセス機構140は、通常はグリッパと、グリッパ上に実装されたバーコード・スキャナまたは同様の読み取りシステムを含む。バーコード・スキャナはテープ・カートリッジ145に貼り付けられたカートリッジ・ラベル上に印刷されたボリュームの通し番号を読み取るために使用される。
オペレータ・インタフェース150が、ライブラリ・マネージャ130に接続される。オペレータ・インタフェース150は、ライブラリ・マネージャ130と通信する計算機とすることができる。ユーザは、ホスト装置105とは独立にライブラリ・システム115のオペレーティング・パラメータを制御することができる。
ホスト装置105は、VTS110とテープ操作を取り交わす。テープ操作の実行は、後述するVTS110内のキャッシュ内に格納された論理ボリュームからデータを検索するか、又は、該論理ボリュームにデータを格納するというものである。VTS110は、キャッシュ内の論理ボリュームを自動的に事前マイグレーション(オフロード)する。特定の実施においては、最長時間未使用の論理ボリュームが、キャッシュからライブラリ・システム115内のテープ・カートリッジ145へ転送される。ホスト装置105が、キャッシュ内にはない論理ボリュームを必要とする場合、VTS110のストレージ・マネージャは、要求される論理ボリュームを含むテープ・カートリッジ145を適当なテープ・ドライブ装置135にマウントするよう、ライブラリ・システム115、即ちライブラリ・マネージャ130に命令する。要求されたデータは、VTS110のキャッシュ内の論理ボリュームとして、上記テープ・カートリッジ145から呼び戻されコピーされる。
図2は、図1に示すVTS110の一実施形態を示す概略ブロック図である。VTS110は、バス、プロセッサ、メモリ、その他を備えた計算機によって実現できる。しかしながらこれらの要素は、本発明に関するVTS110の様々な実行可能モジュール及びデータ・ブロックをより明確に示すために、図2からは省略されている。またVTS110の実装は、当分野で知られた他の実行可能モジュール及びデータ・ブロックが存在してもよいが、本発明に不可欠な要素に焦点を当てるためにそのような要素は図2では省略している。
図2に示されるように、VTS110は、複数の仮想テープ・ドライブ200a、…m、ファイル・システム・マネージャ205、少なくとも1つの直接アクセス記憶装置(Direct Access Storage Device、DASD)キャッシュ210、ストレージ・マネージャ215、及びキュー220を含む。
DASDキャッシュ210は、ホスト装置105からのデータを論理ボリューム上にファイルの形式で一時的に格納する。一例によれば、DASDキャッシュ210は、RAID5などの独立ドライブの冗長アレイ内に配置構成可能な1つまたは複数のハードディスク・ドライブにより実現される。ホスト装置105からの書き込みコマンド及びデータは、仮想テープ・ドライブ200によって受け取られ、処理された後、ファイルとしてDASDキャッシュ210に書き込まれる。その後適当なタイミングで、ストレージ・マネージャ215は、テープ・カートリッジ145へのファイルのコピーを、ライブラリ・マネージャ130に要求する。その後、更新済み論理ボリュームは、ストレージ・マネージャ215により、DASDキャッシュ210からテープ・ドライブ装置135にマウントされた適切なテープ・カートリッジ145へ転送される。なお、仮想テープ・ドライブ200は、ホスト装置105からの制御コマンドも処理する。
ファイル・システム・マネージャ205は、DASDキャッシュ210内のデータ・ストレージを管理及び調整する。ストレージ・マネージャ215は、ファイル・システム・マネージャ205とテープ・ドライブ装置135との間の通信を制御する。ストレージ・マネージャ215はまた、VTS110とライブラリ・マネージャ130との間の通信も制御する。ホスト装置105が、特定の論理ボリュームを要求すると、仮想テープ・ドライブ200を介して該要求を受け取ったストレージ・マネージャ215は、要求された論理ボリュームがDASDキャッシュ210内にあるか否かを判断する。
DASDキャッシュ210内にない場合、ストレージ・マネージャ215は、要求された論理ボリュームの再呼び出しを、ライブラリ・マネージャ130に要求する。その後テープ・ドライブ装置135からVTS110へ戻された要求された論理ボリュームは、DASDキャッシュ210にコピーされるとともに、仮想テープ・ドライブ200を介してホスト装置105へ返される。ストレージ・マネージャ215は、追加の再呼び出し要求を一時的に入れるためのキュー220を含むことができる。従って、ストレージ・マネージャ215は、テープ・ドライブ装置135を用いてテープ・カートリッジ145から論理ボリュームを再呼び出しするための装置である。
なお、図1に示すライブラリ・マネージャ130は、その内部に、論理ボリューム及び物理ボリュームに関する情報を格納するデータ・ベース(図示しない)を有する。VTS110から命令を受け取ると、ライブラリ・マネージャ130は、そのデータ・ベースを参照して、論理ボリュームのコピーが作成される又は検索されることになるテープ・カートリッジ145を見つけ、該テープ・カートリッジ145をマウントするための命令を、適切なテープ・ドライブ装置135あるいはアクセス機構140またはその両方へ送る。
(第1実施形態)図3は、本発明の第1実施形態に係る、データの再呼び出し順を決定するための装置としてのストレージ・マネージャ300aの機能構成の一例を示す図である。なお、第1実施形態では、図1に示すライブラリ・システム115はテープ・ドライブ装置135を1つのみ含むものとする。第1実施形態に係るストレージ・マネージャ300aは、キュー・テーブルに入れられた全要求の考え得る全実行順の中から、要求が受け付けられてからライブラリ・システム115におけるその処理が完了するまでの待ち時間の平均が最小となる実行順を求め、該実行順に従ってキュー・テーブル内の要求を並び替える。
そのような第1実施形態に係るストレージ・マネージャ300aは、要求受付部305、格納部310、キュー・テーブル315、最小待ち時間決定部320a、並び替え部335を含む。ここで、最小待ち時間決定部320aは、第1待ち時間予測部325及び第1実行順決定部330を含む。
要求受付部305は、ライブラリ・システム115から再呼び出しする必要のあるデータに対するホスト装置105の要求Xを受け付ける。このとき、要求受付部305は、要求Xの受信時刻として現在時刻を取得する。要求受付部305はまた、要求Xを一意に識別するためのコマンドIDを、受け付けた要求に割り当てる。なお、要求受付部305が受け付けるホスト装置105の要求Xは、データの読出し又は書込み要求のいずれかであり得るが、本実施例ではデータの読出し要求について説明する。
ホスト装置105からのデータ読出し要求には、目的のデータを識別するための情報が含まれる。そこで、要求受付部305は、目的のデータの識別情報から、目的のデータが記録されているメディアID、即ちテープ・カートリッジの識別子、テープ・カートリッジ上の読出し開始位置、目的のデータの読出しにかかる実行時間、及びテープ・カートリッジ上の読出し終了位置を決定する。ここで、実行時間は、読出し開始位置から読出し終了位置までテープを移動させるために要する時間を意味する。実行時間を求めるに際しては、例えば、デフォルト設定されている読出し時のテープ速度(例えば8.5m/sec)を利用できる。要求受付部305は、受け付けた要求に関する各種情報を、格納部310へ渡す。
格納部310は、要求受付部305により受け付けられた要求Xをキュー・テーブル315に格納する。図4(a)は、本発明に係るキュー・テーブル315の一例を示す。図4(a)に示すように、本実施例におけるキュー・テーブル315は、コマンドIDフィールド、受信時刻フィールド、メディアIDフィールド、開始位置フィールド、実行時間フィールド、及び終了位置フィールドを含む。格納部310は、要求受付部305から渡された各種情報を、キュー・テーブル315の対応するフィールドにそれぞれ格納する。なお、要求Xは、処理のためにキュー・テーブル315から取り出される際にキュー・テーブル315から削除される。しかしながら、取り出された要求Xの各種情報は、その処理開始時刻とともに、要求Xの処理が完了するまでメモリに保持される。図4(a)では、理解を容易にするため、処理中の要求(コマンド#0)のエントリを含む、開始時刻フィールドを有するキュー・テーブル315を示す。
第1待ち時間予測部325は、キュー・テーブル315への要求Xの格納に応答して、キュー・テーブル315内に格納されている全要求の考え得る全実行順のそれぞれについて、該実行順で処理した場合の各要求についての待ち時間を予測する。ここで、待ち時間とは、要求受付部305による要求Xの受け付けから要求Xのライブラリ・システム115における処理の完了までの時間を意味する。このような要求Xの待ち時間Tは、次の式により表すことができる。
=W(o)+A(p、n) ―(1)
式(1)において、W(o)は、要求受付部305において要求Xが受け付けられてから要求Xの処理が開始されるまでの、開始前待ち時間を表す。W(o)は、キュー・テーブル315に格納されている全要求の処理順に依存する関数である。また、A(p、n)は、要求Xの処理が開始されてから終了するまでの処理所要時間を表す。A(p、n)は、直前及び直後に処理される要求に依存する関数である。処理所要時間を表すA(p、n)はまた、次の式により表すことができる。
(p、n)=L(p)+S(p)+C+R(n)+U(n)―(2)
(p)は、要求Xが対象とするデータを記録するメディア、即ちテープ・カートリッジ145をテープ・ドライブ装置135にロードするのに必要なロード時間を表す。ロード時間は、厳密にはテープ・カートリッジ145の格納場所とテープ・ドライブ装置135の物理的な位置関係に依存すると考えられる。しかし、テープドライブ装置135がテープ・カートリッジ145をアンロードしている間に、アクセス機構140が次に使用するテープ・カートリッジ145をテープドライブ装置135のすぐ傍に移動させるライブラリ・システム115の下では、違いはない。本実施例ではL(p)は、予め定めたロード時間、例えば10秒とする。但し、要求Xが対象とするデータが、直前に処理される要求と同じテープ・カートリッジ145に記録されている場合、テープ・カートリッジ145をロードする必要はないため、L(p)は0となる。以上のようにL(p)は、直前に処理される要求に依存する関数である。
(p)は、要求Xが対象とするデータの読出し開始位置にテープを移動させるのに必要な位置合わせ時間を表す。S(p)は、テープの先頭から要求Xが対象とするデータの読出し開始位置までのテープの長さを、テープの移動速度で割ることにより求められる。テープの移動速度は、デフォルト設定されているテープの移動速度(例えば、10m/sec)を利用できる。但し、要求Xが対象とするデータが、直前に処理される要求と同じテープ・カートリッジ145に記録されている場合、関数S(p)は、直前の要求のデータの読出し終了位置から、要求Xが対象とするデータの読出し開始位置までのテープの長さを、テープの移動速度で割ることにより求められる。以上のようにS(p)は、直前に処理される要求に依存する関数である。
は、上述した、目的のデータの読出しに実際にかかる実行時間を表す。R(n)は、目的のデータの読出し終了後に、テープをその先頭まで巻き戻すのに必要な巻き戻し時間を表す。R(n)は、要求Xが対象とするデータの読出し終了位置からテープの先頭からまでのテープの長さを、テープの移動速度で割ることにより求められる。テープの移動速度は、上述したようにデフォルト設定されているテープの移動速度(例えば、10m/sec)を利用できる。但し、要求Xが対象とするデータが、直後に処理される要求と同じテープ・カートリッジ145に記録されている場合、テープの巻き戻しは必要ないため、R(n)は0となる。以上のようにR(p)は、直後に処理される要求に依存する関数である。
最後にU(n)は、データの読出しが終了したテープ・カートリッジ145を、テープ・ドライブ装置135からアンロードするのに必要なアンロード時間を表す。なお、テープ・ドライブ装置135は、テープ・カートリッジ145をアンロードした後は次の処理を行うことができるため、本実施例におけるアンロード時間は、テープ・カートリッジ145をテープ・ドライブ装置135からもとの格納場所まで移動させるに要する時間を含まないものとする。本実施例では、U(p)は、予め定めたアンロード時間、例えば20秒とする。但し、要求Xが対象とするデータが、直後に処理される要求と同じテープ・カートリッジ145に記録されている場合、テープ・カートリッジ145をアンロードする必要はないため、U(p)は0となる。以上のようにU(p)は、直後に処理される要求に依存する関数である。
ここで、図5(a)及び(b)を参照して、W(o)が、キュー・テーブル315に格納されている全要求の処理順に依存することを説明する。図5(a)及び(b)では、現在時刻Tcurにおいて要求(コマンド#0)の再呼び出し要求が処理されており、キュー・テーブル315には、要求(コマンド#1)と、時刻Tcurに受け付けられたばかりの要求(コマンド#2)が格納されているものとする。そして、要求(コマンド#1)の実行時間Cは非常に長く、一方要求(コマンド#2)の実行時間Cは非常に短いとする。
図5(a)及び(b)において、時刻TR0、TR1、TR2はそれぞれ、要求(コマンド#0)〜要求(コマンド#2)の要求受付部305における受付時刻を示す。また時刻TS0は、要求(コマンド#0)の処理開始時刻を、時刻TE0、TE1/T’E1、TE2/T’E2はそれぞれ、要求(コマンド#0)〜要求(コマンド#2)の処理終了時刻を示す。なお、理解を容易にするため、要求(コマンド#0)〜要求(コマンド#2)がそれぞれ目的とするデータは、いずれも同じテープ・カートリッジ145に記録されているものとする。
このような状況において、要求受付部305における受付時刻の早い順に要求を処理する場合の各要求の開始前待ち時間W及び処理所要時間Aを示したのが図5(a)である。図5(a)をみると分かるように、要求(コマンド#1)の処理所要時間A508がその実行時間Cに起因して非常に長いため、要求(コマンド#2)の開始前待ち時間W510は、その処理所要時間A512は非常に短いにも関わらず、長くなっている。
一方、要求(コマンド#1)よりも後に受け付けられた要求(コマンド#2)を先に処理した場合の各要求の開始前待ち時間W及び処理所要時間Aを示したのが図5(b)である。この場合、要求(コマンド#2)は、長い実行時間Cを有する要求(コマンド#1)の処理を待つ必要がないため、その開始前待ち時間W526は、図5(a)における要求2の開始前待ち時間W510よりも非常に短くなっている。一方要求(コマンド#1)の開始前待ち時間W530は、5(a)における要求(コマンド#1)の開始前待ち時間W506よりも長くなっているが、先に処理される要求(コマンド#2)の実行時間Cが非常に短いため、その差はわずかである。結果、要求(コマンド#0)〜要求(コマンド#2)の待ち時間の平均は、図5(a)の場合よりも図5(b)の場合のほうが小さい。このように、要求Xの開始前待ち時間W(o)は、キュー・テーブル315に格納されている全要求の処理順に依存する。
第1待ち時間予測部325は、上述した式(1)及び(2)を用いて、キュー・テーブル315内に格納された全要求の考え得る全実行順のそれぞれについて、該実行順で処理した場合の各要求の待ち時間を予測する。一例として、第1待ち時間予測部325は、次のようにして各要求の待ち時間を算出する。なお、説明のため、現在要求(コマンド#0)の再呼び出しが処理中であり、キュー・テーブル315には、要求(コマンド#1)〜要求(コマンド#N)までのN個の要求が格納されていると仮定する。すると、全要求の考え得る実行順はN!通り存在する。そこで、N!通りの実行順について、図6(a)に示すような待ち時間算出テーブルを順に作成する。
図6(a)に示す複数の待ち時間算出テーブルの各々は、コマンドIDフィールド、受信時刻フィールド、開始時刻フィールド、処理所要時間フィールド、完了時刻フィールド、待ち時間フィールドを有する。ここである1つの実行順Dについて、待ち時間算出テーブルの作成方法を説明する。実行順Dの待ち時間算出テーブルを完成させるため、まず、実行順Dに従って順に、各要求のコマンドIDと受信時刻とを待ち時間算出テーブルに登録する。ここで、登録する要求は現在処理中の要求(コマンド#0)も含む。但し、どの実行順の待ち時間算出テーブルについても、要求(コマンド#0)は実行順0として待ち時間算出テーブルの最初に登録する。
次に、上述した式(2)を用いて、実行順Dに従って順に各要求の処理所要時間を算出し、算出した処理所要時間を待ち時間算出テーブルに登録する。なお、任意の要求Xの処理所要時間A(p、n)は、その前後に実行される要求が定まれば、キュー・テーブル315内の値を使用して、上記式(2)により求めることができることに留意されたい。但し、要求(コマンド#0)の直前に処理された要求のメディアIDと読出し終了位置は、常にメモリに一時的に保持しておくものとし、要求(コマンド#0)の処理所要時間A(p、n)を求める際に参照するものとする。
そして次に、キュー・テーブル315から要求(コマンド#0)の開始時刻TS0を読み出して待ち時間算出テーブルに登録する。また、要求0の開始時刻TS0に要求(コマンド#0)の処理所要時間Aを足し合わせることにより、要求0の完了時刻TE0を求める。最終的に要求(コマンド#0)の待ち時間は、完了時刻TE0から受信時刻TR0を引くことにより求まる。
他の要求についても、要求(コマンド#0)と同様の処理を実行順Dに従って順に行う。但し、他の要求についての開始時刻は、該要求の直前の要求の完了時刻となる。そして上記待ち時間算出テーブル作成処理を、N!通りの実行順それぞれについて行うと、最終的に、全実行順のそれぞれについて、該実行順で処理した場合の各要求の待ち時間が求まる。
第1実行順決定部330は、第1待ち時間予測部325により予測された待ち時間を実行中の要求を含む全要求について足し合わせた合計が最小となる実行順である第1実行順を、適用すべき実行順として決定する。第1実行順決定部330は、第1待ち時間予測部325により作成されたN!個の待ち時間算出テーブルのそれぞれについて、要求0〜Nまでの待ち時間の合計を算出する。そして、第1実行順決定部330は、待ち時間の合計が最小となる待ち時間算出テーブルに対応する実行順である第1実行順を、実際に適用すべき実行順として決定する。
好ましくは第1実行順決定部330は、第1待ち時間予測部325により予測された待ち時間を実行中の要求を含む全要求について足し合わせた合計が最小となり、かつ、各要求の待ち時間がいずれも最大許容待ち時間を超えない実行順である第1実行順を、適用すべき実行順として決定する。こで、最大許容待ち時間は、予め管理者により装置に設定されていてもよく、あるいは、ホスト装置105から要求と共に指定されるものであってもよい。
この場合、第1実行順決定部330は、第1待ち時間予測部325により作成されたN!個のテーブルから、要求(コマンド#0)〜要求(コマンド#N)までの各待ち時間がいずれも最大許容待ち時間を超えていない待ち時間算出テーブルを取り出す。そして第1実行順決定部330は、取り出した待ち時間算出テーブルそれぞれについて、要求(コマンド#0)〜要求(コマンド#N)までの待ち時間の合計を算出する。最後に第1実行順決定部330は、待ち時間の合計が最小となる待ち時間算出テーブルに対応する実行順である第1実行順を、実際に適用すべき実行順として決定する。
並び替え部335は、第1実行順決定部330により決定された適用すべき実行順に従って、キュー・テーブル315内の全要求の実行順を並び替える。
このように第1実施形態に係るストレージ・マネージャ300aでは、キュー・テーブル315に入れられた各要求は、要求が受け付けられてからその処理が完了するまでの待ち時間の全要求についての合計が最小となるような実行順に並び替えられる。その結果、本発明に係る装置では、ホスト装置105の平均待ち時間を最小にすることができ、ホスト装置からみた再呼び出し要求の効率が上がる。
(第2実施形態)図7は、本発明の第2実施形態に係るデータの再呼び出し順を決定するための装置としてのストレージ・マネージャ300bの機能構成の一例を示す図である。なお、第2実施形態においても、図1に示すライブラリ・システム115はテープ・ドライブ装置135を1つのみ含むものとする。第2実施形態に係るストレージ・マネージャ300bは、現在実行中の要求の処理を一旦中断して後に受け付けた要求を先に処理する方が、オーバヘッドを考慮してもホスト装置105の平均待ち時間を短縮できる場合があることを考慮する。
そのように現在実行中の要求の処理を一旦中断した方が、ホスト装置105の平均待ち時間を短縮できる場合を、図5(a)及び図8を参照して説明する。図5(a)及び図8では、現在時刻Tcurにおいて要求(コマンド#0)の再呼び出し要求が処理されており、キュー・テーブル315には、要求(コマンド#1)と、時刻Tcurに受け付けられたばかりの要求(コマンド#2)が格納されているものとする。そして、要求(コマンド#0)の実行時間Cと要求(コマンド#1)の実行時間Cは非常に長く、一方要求(コマンド#2)の実行時間Cは非常に短いとする。
また図5(a)及び図8において、時刻TR0、TR1、TR2はそれぞれ、要求(コマンド#0)〜要求(コマンド#2)の要求受付部305における受付時刻を示す。時刻TS0は、要求(コマンド#0)の処理開始時刻を示す。図5(a)において、時刻TE0、TE1、TE2はそれぞれ、要求(コマンド#0)〜要求(コマンド#2)の処理終了時刻を示す。また、図8において、時刻T’E0は要求(コマンド#0)を中断した時刻(同時に、現在時刻Tcur、要求(コマンド#2)の受付時刻でもある)、T’’E0、T’’E1、T’’E2はそれぞれ、再開した要求(コマンド#0)、要求(コマンド#1)及び要求(コマンド#2)の処理終了時刻を示す。なお、理解を容易にするため、要求(コマンド#0)〜要求(コマンド#2)がそれぞれ目的とするデータは、いずれも同じテープ・カートリッジ145に記録されているものとする。
このような状況において、要求受付部305における受付時刻の早い順に要求を処理する場合の各要求の開始前待ち時間W及び処理所要時間Aを示したのが図5(a)である。図5(a)をみると分かるように、要求(コマンド#0)の処理所要時間A504及び要求(コマンド#1)の処理所要時間A508がその実行時間C、Cに起因してそれぞれ非常に長いため、要求(コマンド#2)の開始前待ち時間W510は、その処理所要時間A512は非常に短いにも関わらず、長くなっている。
一方、要求(コマンド#0)の再呼び出し処理を、要求(コマンド#2)を受け付けた現在時刻Tcurで一旦中断して、要求(コマンド#2)を先に処理した場合の各要求の開始前待ち時間W及び処理所要時間Aを示したのが図8である。この場合、要求(コマンド#2)は、長い実行時間C、Cをそれぞれ有する要求0及び要求1の処理を待つ必要がないため、その開始前待ち時間は0となっている。なお、要求(コマンド#0)と要求(コマンド#2)が、それぞれ異なるテープ・カートリッジ145に記録されているデータを目的とする場合は、要求(コマンド#2)は、要求(コマンド#0)についての巻き戻し時間R(n)及びアンロード時間U(n)を待つ必要がある。
一方、要求(コマンド#0)は、処理の再開を待つため、新たに開始前待ち時間W’808の待ち時間が発生する。また、要求(コマンド#1)も、要求(コマンド#2)の処理を待つ必要があるため、その開始前待ち時間W812は図5(a)の開始前待ち時間W506よりも長くなっている。しかし要求(コマンド#2)の実行時間Cが非常に短いため、その影響はわずかである。結果、要求(コマンド#0)〜要求(コマンド#2)の待ち時間の平均は、図5(a)の場合よりも図8の場合のほうが短い。なお、要求(コマンド#0)の待ち時間は、W802、A’804、W’808及びA’’810の合計となる。このように、現在実行中の要求の処理を一旦中断した方が、ホスト装置105の平均待ち時間を短縮できる場合がある。なお、中断する前に要求(コマンド#0)について読み出したデータは一時的に保持しておいてもよい。そして要求(コマンド#0)を再開する際には、残りのデータのみを読み出すようにしてもよい。
このように現在処理中の要求の中断を考慮する、第2実施形態に係るストレージ・マネージャ300bは、第1実施形態に係るストレージ・マネージャ300と一部同じ機能構成を有する。しかし、第2実施形態に係る最小待ち時間決定部320は、更に、現在実行中の要求の処理を一旦中断すると仮定した場合の最小の待ち時間の平均値を求めるための、第2待ち時間予測部340及び第2実行順決定部345を含む。また、第2実施形態に係る最小待ち時間決定部320は、現在実行中の要求の処理を中断しないと仮定した場合の最小の待ち時間の平均値と、現在実行中の要求の処理を一旦中断すると仮定した場合の最小の待ち時間の平均値とを比較し、中断した方が待ち時間の平均値が小さくなる場合に現在実行中の要求の処理を中断するための、適用実行順決定部350及び中断部355を含む。
そこで以下では、新たに追加される上記複数の構成要素について説明をする。なお、第2待ち時間予測部340及び第2実行順決定部345による処理は、第1待ち時間予測部325及び第1実行順決定部330による処理から独立しており、従って、これらの処理は同時になされてもよく、又はいずれか一方が先になされてもよく、どちらでもよい。
第2待ち時間予測部340は、キュー・テーブル315への要求Xの格納に応答して、実行中の要求を現在までの処理を行う第1要求と残りの処理を行う第2要求に仮想的に分割し、該第2要求を含むキュー・テーブル315内に格納された全要求の考え得る全実行順のそれぞれについて、該実行順で処理した場合の各要求についての待ち時間を予測する。第2待ち時間予測部340による処理の具体的な方法を以下に説明する。
まず、第2待ち時間予測部340は、キュー・テーブル315への要求Xの格納に応答して、キュー・テーブル315のコピーを作成する。但し、キュー・テーブル315のコピーには、第1要求と第2要求のエントリを追加する。例えば、要求Xが要求受付部305により受け付けられたとき、要求(コマンド#0)が処理中であり、図4(a)に示すキュー・テーブル315があったと仮定する。なお第1実施形態に関して説明したように、図4(a)に示すキュー・テーブル315には、説明を容易にするため、要求(コマンド#0)のエントリを残し、また、開始時間フィールドを設けている。実際はこれらのデータは、キュー・テーブル315とは別にメモリに保持されている。すると、第2待ち時間予測部340は、図4(a)に示すキュー・テーブル315を基に、図4(b)に示す新たなキュー・テーブルを作成する。
図4(a)において、現在処理中の要求のコマンドIDはコマンド#0である。また、図4(b)において、現在処理中の要求を分割してできた第1要求と第2要求のコマンドIDはそれぞれ、コマンド#0−1とコマンド#0−2である。第2要求のメディアIDフィールドと終了位置フィールド、また、第1要求の受信時刻フィールド、メディアIDフィールド、開始位置フィールド及び開始時刻フィールドには、元の現在処理中の要求、即ちコマンド#0のエントリの対応する値がそのままコピーされる(図4(a)及び図4(b)参照)。第1要求の残りのフィールド、即ち、第1要求の終了位置フィールドには、要求Xがキュー・テーブル315へ入れられた時点におけるテープ・ドライブ装置135のヘッドの現在位置E’が登録される。第1要求の実行時間フィールドには、開始位置Sから終了位置E’までの距離を、読出し時のテープ速度(例えば8.5m/Sec)で割った値C’が登録される。
一方、第2要求の開始位置フィールドには、第1要求の終了位置E’の値が登録される。また第2要求の実行時間フィールドには、元の現在処理中の要求、即ちコマンド#0の実行時間Cから第1要求の実行時間C’を引いた値C’’が登録される。なお、第2要求の受信時刻フィールドは、空欄のままとする。これは次の理由による。第2要求の受信時刻は、第1要求の処理の完了時刻となる。しかし、第1要求の処理は、現在処理中の要求(コマンド#0)の中断の決定と同時に終了するのではなく、第1要求についてのテープの巻き戻し、及びテープ・カートリッジのアンロードが終了した時点で終了する。そして、巻き戻し時間Rとアンロード時間Uは、上述したように、直後の要求に依存する。そのため、第1要求の次に処理される要求が決定されないことには、第1要求の処理の完了時刻を算出することはできない。
キュー・テーブル315のコピーが作成できると、第2待ち時間予測部340は、第1実施形態に関して説明した待ち時間算出テーブルを、第1実施形態に関して説明したのと基本的に同様の方法で作成する。そのような待ち時間算出テーブルを図6(b)に示す。なお、第2待ち時間予測部340は、処理中の要求(コマンド#0)を仮想的に分割して、実行中の第1要求と処理待ちの第2要求として取り扱う。そのため、キュー・テーブル315内の処理待ちの要求の数が1つ増えたのと等しくなり、第2待ち時間予測部340は、待ち時間算出テーブルを作成するに当たって、キュー・テーブル315ではなく、上記作成したキュー・テーブル315のコピーを利用する。また、全要求について考えられる実行順は(N+1)!通りとなるため、(N+1)!個の待ち時間算出テーブルが作成される。
なお、いずれの待ち時間算出テーブルにおいても、要求2の受信時刻フィールドは、第1要求の処理の完了時刻の算出後に、該完了時刻が登録されることに留意されたい。第2待ち時間予測部340によって、(N+1)!個の待ち時間算出テーブルが作成されると同時に、第2要求を含むキュー・テーブル315内に格納された全要求の考え得る全実行順のそれぞれについて、該実行順で処理した場合の各要求についての待ち時間が求まる。
第2実行順決定部345は、第2待ち時間予測部340により予測された待ち時間を第1要求を含む全要求について足し合わせた合計が最小となる実行順を、第2実行順として決定する。第2実行順決定部345は、第2待ち時間予測部340により作成された(N+1)!個の待ち時間算出テーブルのそれぞれについて、第1要求(コマンド#0−1)、第2要求(コマンド#0−2)、及び要求(コマンド#1)〜要求(コマンド#N)までの待ち時間の合計を算出する。そして、第2実行順決定部345は、待ち時間の合計が最小となる待ち時間算出テーブルに対応する実行順を、第2実行順として決定する。
好ましくは第2実行順決定部345は、第2待ち時間予測部340により予測された待ち時間を第1要求を含む全要求について足し合わせた合計が最小となり、かつ、各要求の待ち時間がいずれも最大許容待ち時間を超えない実行順を、第2実行順として決定する。ここで、最大許容待ち時間は、予め管理者により装置に設定されていてもよく、あるいは、ホスト装置105から要求と共に指定されるものであってもよい。
この場合、第2実行順決定部345は、第2待ち時間予測部340により作成された(N+1)!個の待ち時間算出テーブルから、第1要求(コマンド#0−1)、第2要求(コマンド#0−2)、及び要求(コマンド#1)〜要求(コマンド#N)の各待ち時間がいずれも最大許容待ち時間を超えていない待ち時間算出テーブルを取り出す。そして第2実行順決定部345は、取り出した待ち時間算出テーブルについて、第1要求(コマンド#0−1)、第2要求(コマンド#0−2)、及び要求(コマンド#1)〜要求(コマンド#N)までの待ち時間の合計を算出する。最後に第2実行順決定部345は、待ち時間の合計が最小となる待ち時間算出テーブルに対応する実行順を、第2実行順として決定する。
適用実行順決定部350は、第2実行順決定部345によって決定された第2実行順における待ち時間の合計が、第1実行順決定部330によって決定された第1実行順における待ち時間の合計よりも小さい場合に第2実行順を、それ以外の場合は第1実行順を、適用すべき実行順として再決定する。第2実行順を適用すべき実行順として決定した場合、適用実行順決定部350は、並び替え部335に、第2要求のエントリをキュー・テーブル315に追加するよう通知する。
並び替え部335は、適用実行順決定部350により決定された適用すべき実行順に従って、キュー・テーブル315内の全要求の実行順を並び替える。適用実行順決定部350から第2要求のエントリを追加するよう通知を受けた場合、並び替え部335は、第2待ち時間予測部340により作成されたキュー・テーブル315のコピーを利用して、キュー・テーブル315に第2要求のエントリを追加する。その後、並び替え部335は、キュー・テーブル315内の全要求の実行順の並び替えを実行する。
中断部355は、適用実行順決定部350による適用すべき実行順としての第2実行順の決定に応答して、実行中の要求の処理を実際に中断する。なお、上述したように、再開時には残りのデータのみを読み出せばよいように、中断前に読み出されたデータは一時的にメモリに保存してもよい。
このように第2実施形態に係るストレージ・マネージャ300bでは、オーバヘッドを考慮してもホスト装置105の平均待ち時間を短縮できる場合には、現在実行中の要求の処理を一旦中断して後に受け付けた要求を先に処理する。その結果、本発明に係る装置では、ホスト装置105の平均待ち時間を最小にすることができ、ホスト装置からみた再呼び出し要求の効率が上がる。
(第3実施形態)図9は、本発明の第3実施形態に係るデータの再呼び出し順を決定するための装置としてのストレージ・マネージャ300cの機能構成の一例を示す図である。第3実施形態に係るストレージ・マネージャ300cは、第1実施形態に係るストレージ・マネージャ300aと基本的に同じ機能構成を有する。但し、第3実施形態では、図1に示すライブラリ・システム115は、複数のテープ・ドライブ装置135を含む。即ち、第3実施形態に係るストレージ・マネージャ300cは、第1実施形態に係るストレージ・マネージャ300aを、複数のテープ・ドライブ装置135a、b、…を含むライブラリ・システム115に適用可能なように拡張したものである。
第3実施形態に係るストレージ・マネージャ300cは、テープ・ドライブ装置135毎に、キュー・テーブル315、第1待ち時間予測部325、及び第1実行順決定部330をそれぞれ用意する。第3実施形態に係る格納部310は、1つの要求を、複数のキュー・テーブル315a、b、…にそれぞれ仮想的に格納する。テープ・ドライブ装置135毎に複数用意される上記各構成要素は、仮想的に格納される要求に対し、第1実施形態に関して説明したのと同様に機能する。
即ち、第3実施形態に係る最小待ち時間決定部320cでは、同一のキュー・テーブル315に対応する第1待ち時間予測部325及び第1実行順決定部330のペア毎に、対応するキュー・テーブル315に入れられた全要求の考え得る全実行順の中から、要求が受け付けられてからその処理が完了するまでの待ち時間の平均が最小となる実行順が求められる。なお、最小となる実行順の求め方は第1実施形態に関して説明したので、繰り返しを避けるためここでは説明を省略する。
第3実施形態に係るストレージ・マネージャ300cはまた、割り当て先決定部360を含む。割り当て先決定部360は、第1待ち時間予測部325及び第1実行順決定部330の各ペアによりそれぞれ求められた複数の実行順に基づいて、上記要求を実際に割り当てるテープ・ドライブ装置135を決定する。即ち、割り当て先決定部360は、複数の第1実行順決定部330a、b、…がそれぞれ決定した、複数の第1実行順における複数の待ち時間の合計の中で、最小の待ち時間の合計を決定した第1実行順決定部330を用意されたテープ・ドライブ装置135に、上記1つの要求を割り当てる。
第3実施形態に係る並び替え部335は、割り当て先決定部360により割り当て先として決定されたテープ・ドライブ装置135に対応するキュー・テーブル315への上記要求の格納を確定する。そして、並び替え部335は、上記要求の格納を確定したキュー・テーブル315内の全要求の実行順を、割り当て先として決定された上記テープ・ドライブ装置135に対応する第1実行順決定部330により決定された第1実行順に従って並び替える。
(第4実施形態)図10は、本発明の第4実施形態に係るデータの再呼び出し順を決定するための装置としてのストレージ・マネージャ300dの機能構成の一例を示す図である。第4実施形態に係るストレージ・マネージャ300dは、第2実施形態に係るストレージ・マネージャ300bと基本的に同じ機能構成を有する。但し、第4実施形態では、図1に示すライブラリ・システム115は、複数のテープ・ドライブ装置135を含む。即ち、第4実施形態に係るストレージ・マネージャ300dは、第2実施形態に係るストレージ・マネージャ300bを、複数のテープ・ドライブ装置135a、b、…を含むライブラリ・システム115に適用可能なように拡張したものである。
第4実施形態に係るストレージ・マネージャ300dは、テープ・ドライブ装置135毎に、キュー・テーブル315、第1待ち時間予測部325、第1実行順決定部330、第2待ち時間予測部340、第2実行順決定部345、適用実行順決定部350及び中断部355をそれぞれ用意する。第4実施形態に係る格納部310は、1つの要求を、複数のキュー・テーブル315a、b、…にそれぞれ仮想的に格納する。テープ・ドライブ装置135毎に複数用意される上記各構成要素は、仮想的に格納される要求に対し、第1実施形態及び第2実施形態に関して説明したのと同様に機能する。
即ち、第4実施形態に係る最小待ち時間決定部320dでは、キュー・テーブル315ごとに、対応する適用実行順決定部350が、対応する第1実行順決定部330及び第2実行順決定部345によりそれぞれ決定された第1実行順と第2実行順とを比較して、適用すべき実行順を決定する。なお、最小となる実行順の求め方は第2実施形態に関して説明したので、繰り返しを避けるためここでは説明を省略する。
第4実施形態に係るストレージ・マネージャ300cはまた、割り当て先決定部360を含む。第4実施形態に係る割り当て先決定部360は、複数の適用実行順決定部350a、b、…によりそれぞれ求められた複数の実行順に基づいて、上記要求を実際に割り当てるテープ・ドライブ装置135を最終的に決定する。即ち、第4実施形態に係る割り当て先決定部360は、複数の適用実行順決定部350a、b、…がそれぞれ決定した、複数の適用すべき実行順における複数の待ち時間の合計の中で、最小の待ち時間の合計を決定した適用実行順決定部350に対応するテープ・ドライブ装置135に、上記1つの要求を割り当てる。
第4実施形態に係る並び替え部335は、上記割り当て先決定部360により要求を割り当てられたテープ・ドライブ装置135に対応するキュー・テーブル315への上記要求の格納を確定する。そして、並び替え部335は、上記要求の格納を確定したキュー・テーブル315内の全要求の実行順を、要求を割り当てられた上記テープ・ドライブ装置135に対応する適用実行順決定部350により決定された適用すべき実行順に従って並び替える。
次に、図11のフローチャートを参照して、第1実施形態に係るデータの再呼び出し順を決定するための装置としてのストレージ・マネージャ300aの動作を説明する。図11において処理はステップ100から開始し、ストレージ・マネージャ300aは、ホスト装置105からN番目の要求を受け付け、該要求をキュー・テーブル315に格納する(ステップ105)。このとき実行中の要求のコマンドIDをコマンド#0とし、キュー・テーブル315には、要求(コマンド#1)〜要求(コマンド#(N−1))までの、N−1個の要求が格納されているものとする。
要求(コマンド#N)をキュー・テーブル315に格納すると、ストレージ・マネージャ300aは、キュー・テーブル315内に格納された全要求の考え得る全実行順、即ち、N!通りの並び順のそれぞれについて、該実行順で処理した場合の各要求の待ち時間T(i=0〜N)を算出する(ステップ110)。ここで、各要求の待ち時間とは、各要求のストレージ・マネージャ300aにおける受け付けからテープ・ドライブ装置135における処理の完了までの待ち時間を意味する。
N!通りの並び順のそれぞれについて各要求の待ち時間を算出すると、ストレージ・マネージャ300aは、各要求の待ち時間がいずれも最大許容待ち時間を超えない、そのような並び順をすべて決定する。そして、ストレージ・マネージャ300aは、決定した並び順の中から、実行中の要求(コマンド#0)を含む全要求について待ち時間を足し合わせ、その合計が最小となる実行順を第1実行順として決定する(ステップ115)。なお、全要求の待ち時間がいずれも最大許容待ち時間内である並び順がなかった場合、処理はそこで終了する。
最後にストレージ・マネージャ300aは、第1実行順を適用すべき実行順とし、第1実行順に従ってキュー・テーブル315内の要求を並び替える(ステップ120)。そして処理は終了する。
なお、第3実施形態に係るストレージ・マネージャ300cの動作も、基本的な部分は、図11に示すフローチャートと同じである。しかしながら、第3実施形態に係るストレージ・マネージャ300cの場合、ステップ105において、要求は確定的ではなく、仮想的に複数のキュー・テーブル315a、b、…に格納される。そして、ストレージ・マネージャ300cは、各キュー・テーブル315に対し、ステップ110及びステップ115を実行する。
その後第3実施形態に係るストレージ・マネージャ300cは、ステップ120へ進む前に、各キュー・テーブル315に対してそれぞれ決定した複数の第1実行順の中から、待ち時間の合計が最小となる第1実行順を適用すべき実行順として決定する。そして、ストレージ・マネージャ300cは、適用すべき実行順としての第1実行順を決定されたキュー・テーブル315に対応するテープ・ドライブ装置135に、上記要求を割り当てる。即ち、適用すべき実行順としての第1実行順を決定されたキュー・テーブル315についてのみ、上記要求の格納を確定する。その後処理はステップ120へ進み、ストレージ・マネージャ300cは、適用すべき実行順に従って、上記要求を割り当てられたテープ・ドライブ装置135に対応するキュー・テーブル315内の要求を並び替える。
次に、図12のフローチャートを参照して、第2実施形態に係るデータの再呼び出し順を決定するための装置としてのストレージ・マネージャ300bの動作を説明する。図12において処理はステップ200から開始し、ストレージ・マネージャ300bは、ホスト装置105からN番目の要求を受け付け、該要求をキュー・テーブル315に格納する(ステップ205)。このとき実行中の要求のコマンドIDをコマンド#0とし、キュー・テーブル315には、要求(コマンド#1)〜要求(コマンド#(N−1))までの、N−1個の要求が格納されているものとする。
要求(コマンド#N)をキュー・テーブル315に格納すると、ストレージ・マネージャ300bは、ステップ210からステップ215までの第1の処理と、ステップ220からステップ235までの第2の処理を並列に、または順に実行する。なお、ステップ210及びステップ215の処理については、図11のステップ110及び115を参照して説明した処理と同じであるから、詳細な説明は省略する。第2実施形態に係るストレージ・マネージャ300bは、ステップ215の処理の後、第1実行順Oと該実行順Oに対応する最小の待ち時間の合計値Sとを取得する。但し、ステップ215において、全要求の待ち時間がいずれも最大許容待ち時間内である並び順がなかった場合、処理はステップ245へ進む。
ストレージ・マネージャ300bはまた、実行中の要求(コマンド#0)の中断を仮定して、テープ・ドライブ装置135の読み取りヘッドの現在位置を取得する(ステップ220)。そして、ストレージ・マネージャ300bは、実行中の要求(コマンド#0)を、現在までの処理を行う第1要求(コマンド#0−1)と残りの処理を行う第2要求(コマンド#0−2)に仮想的に分割し、上記ヘッドの現在位置を利用して、要求2を含むキュー・テーブル315のコピーを新たに作成する(ステップ225)。
そしてストレージ・マネージャ300bは、要求2を含むN+1個の要求が格納されたキュー・テーブル315のコピーを基に、(N+1)!通りの並び順のそれぞれについて、該実行順で処理した場合の各要求の待ち時間T(i=0−1、0−2、1〜N)を算出する(ステップ230)。なお、ここでも各要求の待ち時間とは、各要求のストレージ・マネージャ300bにおける受け付けからテープ・ドライブ装置135における処理の完了までの待ち時間を意味する。
(N+1)!通りの並び順のそれぞれについて各要求の待ち時間を算出すると、ストレージ・マネージャ300bは、各要求の待ち時間がいずれも最大許容待ち時間を超えない、そのよな並び順をすべて決定する。そして、ストレージ・マネージャ300bは、決定した並び順の中から、要求1及び要求2を含む全要求について待ち時間を足し合わせ、その合計が最小となる実行順を第2実行順Oとして、また第2実行順Oに対応する最小の待ち時間の合計値Sを決定する(ステップ235)。但し、全要求の待ち時間がいずれも最大許容待ち時間内である並び順がなかった場合、処理はステップ255へ進む。
その後ストレージ・マネージャ300bは、第1実行順Oに対応する最小の待ち時間の合計値Sと、第2実行順Oに対応する最小の待ち時間の合計値Sとを比較する(ステップ240)。合計値SがS以下の場合(ステップ240:NO)、ストレージ・マネージャ300bは、実行中の要求(コマンド#0)の中断をライブラリ・システム115に指示する(ステップ245)。そして、ストレージ・マネージャ300bは、キュー・テーブル315のコピーを用いて元のキュー・テーブル315を更新し、更新後の要求2を含むキュー・テーブル315内の要求を、第2実行順Oに従って並び替える(ステップ250)。そして処理は終了する。
一方、合計値SがSより大きい場合(ステップ240:YES)、ストレージ・マネージャ300bは、キュー・テーブル315内の要求を、第1実行順Oに従って並び替える(ステップ255)。そして処理は終了する。
なお、第4実施形態に係るストレージ・マネージャ300dの動作も、基本的な部分は、図12に示すフローチャートとステップ240まで同じである。しかしながら、第4実施形態に係るストレージ・マネージャ300dの場合、ステップ205において、要求は確定的ではなく、仮想的に複数のキュー・テーブル315a、b、…に格納される。そして、ストレージ・マネージャ300dは、各キュー・テーブル315に対し、ステップ210からステップ240までの処理を実行し、適用すべき実行順を決定する。即ち、ステップ240においてYESであれば、第1実行順Oを採用することになり、ステップ240においてNOであれば、第2実行順Oを採用することになる。
その後第4実施形態に係るストレージ・マネージャ300dは、各キュー・テーブル315に対してそれぞれ決定した複数の実行順の中から、待ち時間の合計が最小となる実行順を適用すべき実行順として決定する。そして、ストレージ・マネージャ300dは、適用すべき実行順を決定されたキュー・テーブル315に対応するテープ・ドライブ装置135に、上記要求を割り当てる。即ち、適用すべき実行順を決定されたキュー・テーブル315についてのみ、上記要求の格納を確定する。最後にストレージ・マネージャ300dは、適用すべき実行順に従って、上記要求を割り当てられたテープ・ドライブ装置135に対応するキュー・テーブル315内の要求を並び替える。
以上、実施形態を用いて本発明の説明をしたが、本発明の技術範囲は上記実施形態に記載の範囲には限定されない。例えば本発明の第1実施形態を、複数のテープ・ドライブ装置135a、b、…を含むライブラリ・システム115に適用可能なように拡張するにあたり、本発明の第3実施形態では、テープ・ドライブ装置135毎に用意された複数のキュー・テーブルそれぞれに対し、新たに受け付けた要求の割り当てを仮定して、平均待ち時間を算出した。しかしながら、計算時間をより短縮するために次のような方法を採用することもできる。
即ち、新たに受け付けた要求が、テープ・ドライブ装置135のいずれかにマウントされたテープ・カートリッジ145に対するものである場合、該テープ・カートリッジ145をマウントされたテープ・ドライブ装置135に要求を割り当てる。新たに受け付けた要求が、テープ・ドライブ装置135にマウントされたテープ・カートリッジ145のいずれに対するものでもない場合、同じテープ・カートリッジ145に対する要求を集めてグループ化する。そして、メンバー数が多いグループから順に、そのキュー・テーブル315に格納される要求が少ないテープ・ドライブ装置135に振り分ける。そして、要求の割り当てが決定した後に、要求を割り当てられたテープ・ドライブ装置135のキュー・テーブル315に対して、第1実施形態に係るストレージ・マネージャ300cによる要求の再配置を実行する。
同様の手法により、第2実施形態を、複数のテープ・ドライブ装置135a、b、…を含むライブラリ・システム115に適用可能なように拡張することができる。このように上記の実施形態に、種々の変更又は改良を加えることが可能であることが当業者に明らかである。従って、そのような変更又は改良を加えた形態も当然に本発明の技術的範囲に含まれる。

Claims (10)

  1. テープ・ライブラリに接続された、データの再呼び出し順を決定するための装置であって、
    前記テープ・ライブラリから再呼び出しする必要のあるデータに対するホスト装置の要求を受け付ける要求受付手段と、
    前記要求をキュー・テーブルに格納する格納手段と、
    前記キュー・テーブルへの前記要求の格納に応答して、前記キュー・テーブル内に格納されている全要求の考え得る全実行順のそれぞれについて、該実行順で処理した場合の各要求についての前記要求受付手段による受け付けから前記テープ・ライブラリにおける処理の完了までの待ち時間を予測する第1待ち時間予測手段と、
    前記第1待ち時間予測手段により予測された前記待ち時間を実行中の要求を含む全要求について足し合わせた合計が最小となる実行順である第1実行順を、適用すべき実行順として決定する第1実行順決定手段と、
    決定された前記適用すべき実行順に従って、前記キュー・テーブル内の前記全要求の実行順を並び替える並び替え手段と、
    を含む装置。
  2. 前記第1実行順決定手段は、前記第1待ち時間予測手段により予測された前記待ち時間を実行中の要求を含む全要求について足し合わせた合計が最小となり、かつ、各要求の前記待ち時間がいずれも最大許容待ち時間を超えない実行順である第1実行順を、適用すべき実行順として決定する、請求項1に記載の装置。
  3. 前記テープ・ライブラリは複数のテープ・ドライブを含み、前記キュー・テーブル、前記第1待ち時間予測手段及び前記第1実行順決定手段はそれぞれ前記テープ・ドライブ毎に複数用意され、
    前記格納手段は1つの前記要求を複数の前記キュー・テーブルにそれぞれ仮想的に格納し、
    複数の前記第1実行順決定手段がそれぞれ決定した、複数の前記第1実行順における複数の前記待ち時間の合計の中で、最小の前記待ち時間の合計を決定した前記第1実行順決定手段を用意された前記テープ・ドライブに、前記1つの要求を割り当てる割り当て先決定手段を更に含み、
    前記並び替え手段は、前記要求を割り当てられた前記テープ・ドライブに対応する前記キュー・テーブルへの前記1つの要求の格納を確定し、該キュー・テーブル内の全要求の実行順を、前記要求を割り当てられた前記テープ・ドライブに対応する前記第1実行順決定手段により決定された前記前記第1実行順に従って並び替える、
    請求項1又は2に記載の装置。
  4. 前記キュー・テーブルへの前記要求の格納に応答して、前記実行中の要求を現在までの処理を行う第1要求と残りの処理を行う第2要求に仮想的に分割し、該第2要求を含む前記キュー・テーブル内に格納された全要求の考え得る全実行順のそれぞれについて、該実行順で処理した場合の各要求についての前記待ち時間を予測する第2待ち時間予測手段と、
    前記第2待ち時間予測手段により予測された前記待ち時間を前記第1要求を含む全要求について足し合わせた合計が最小となる実行順を、第2実行順として決定する第2実行順決定手段と、
    前記第2実行順における前記待ち時間の合計が、前記第1実行順における前記待ち時間の合計よりも小さい場合に前記第2実行順を、それ以外の場合は前記第1実行順を、前記適用すべき実行順として再決定する適用実行順決定手段と、
    前記適用すべき実行順としての前記第2実行順の決定に応答して、前記実行中の要求の処理を中断する中断手段とを更に含む、請求項1に記載の装置。
  5. 前記第1実行順決定手段は、前記第1待ち時間予測手段により予測された前記待ち時間を実行中の要求を含む全要求について足し合わせた合計が最小であり、かつ、各要求の前記待ち時間がいずれも最大許容待ち時間を超えない実行順である第1実行順を、適用すべき実行順として決定し、
    前記第2実行順決定手段は、前記第2待ち時間予測手段により予測された前記待ち時間を前記第1要求を含む全要求について足し合わせた合計が最小であり、かつ、各要求の前記待ち時間がいずれも前記最大許容待ち時間を超えない実行順を前記第2実行順として決定する、
    請求項4に記載の装置。
  6. 前記テープ・ライブラリは複数のテープ・ドライブを含み、前記キュー・テーブル、前記第1待ち時間予測手段、前記第1実行順決定手段、前記第2待ち時間予測手段、前記第2実行順決定手段、前記中断手段及び前記適用実行順決定手段はそれぞれ前記テープ・ドライブ毎に複数用意され、
    前記格納手段は1つの前記要求を複数の前記キュー・テーブルにそれぞれ仮想的に格納し、
    複数の前記適用実行順決定手段がそれぞれ決定した、複数の前記適用すべき実行順における複数の前記待ち時間の合計の中で、最小の前記待ち時間の合計を決定した前記適用実行順決定手段を用意された前記テープ・ドライブに、前記1つの要求を割り当てる割り当て先決定手段を更に含み、
    前記複数の中断手段はそれぞれ、対応する前記テープ・ドライブに前記1つの要求が割り当てられた場合に、対応する前記第2実行順の前記適用すべき実行順としての決定に応答して、前記実行中の要求の処理を中断し、
    前記並び替え手段は、前記要求を割り当てられた前記テープ・ドライブに対応する前記キュー・テーブルへの前記1つの要求の格納を確定し、該キュー・テーブル内の全要求の実行順を、前記要求を割り当てられた前記テープ・ドライブに対応する前記適用実行順決定手段により決定された前記適用すべき実行順に従って並び替える、
    請求項4又は5に記載の装置。
  7. テープ・ライブラリに接続された装置において実行される、データの再呼び出し順を決定するための方法であって、
    前記テープ・ライブラリから再呼び出しする必要のあるデータに対するホスト装置の要求を受け付けるステップと、
    前記要求をキュー・テーブルに格納するステップと、
    前記キュー・テーブルへの前記要求の格納に応答して、前記キュー・テーブル内に格納されている全要求の考え得る全実行順のそれぞれについて、該実行順で処理した場合の各要求についての該要求の受け付けから前記テープ・ライブラリにおける処理の完了までの待ち時間を予測するステップと、
    予測した前記待ち時間を実行中の要求を含む全要求について足し合わせた合計が最小となる実行順である第1実行順を、適用すべき実行順として決定するステップと、
    決定された前記適用すべき実行順に従って、前記キュー・テーブル内の前記全要求の実行順を並び替えるステップと、
    を含む方法。
  8. 前記キュー・テーブルへの前記要求の格納に応答して、前記実行中の要求を現在までの処理を行う第1要求と残りの処理を行う第2要求に仮想的に分割し、該第2要求を含む前記キュー・テーブル内に格納された全要求の考え得る全実行順のそれぞれについて、該実行順で処理した場合の各要求についての前記待ち時間を予測するステップと、
    予測した前記待ち時間を前記第1要求を含む全要求について足し合わせた合計が最小となる実行順を、第2実行順として決定するステップと、
    前記第2実行順における前記待ち時間の合計が、前記第1実行順における前記待ち時間の合計よりも小さい場合に前記第2実行順を、それ以外の場合は前記第1実行順を、前記適用すべき実行順として再決定するステップと、
    前記適用すべき実行順としての前記第2実行順の決定に応答して、前記実行中の要求の処理を中断するステップとを更に含む、請求項7に記載の方法。
  9. テープ・ライブラリに接続された装置において実行される、データの再呼び出し順を決定するためのプログラムであって、前記プログラムは、前記装置に、
    前記テープ・ライブラリから再呼び出しする必要のあるデータに対するホスト装置の要求を受け付けるステップと、
    前記要求をキュー・テーブルに格納するステップと、
    前記キュー・テーブルへの前記要求の格納に応答して、前記キュー・テーブル内に格納されている全要求の考え得る全実行順のそれぞれについて、該実行順で処理した場合の各要求についての該要求の受け付けから前記テープ・ライブラリにおける処理の完了までの待ち時間を予測するステップと、
    予測した前記待ち時間を実行中の要求を含む全要求について足し合わせた合計が最小となる実行順である第1実行順を、適用すべき実行順として決定するステップと、
    決定された前記適用すべき実行順に従って、前記キュー・テーブル内の前記全要求の実行順を並び替えるステップと、
    を実行させるプログラム。
  10. 前記キュー・テーブルへの前記要求の格納に応答して、前記実行中の要求を現在までの処理を行う第1要求と残りの処理を行う第2要求に仮想的に分割し、該第2要求を含む前記キュー・テーブル内に格納された全要求の考え得る全実行順のそれぞれについて、該実行順で処理した場合の各要求についての前記待ち時間を予測するステップと、
    予測した前記待ち時間を前記第1要求を含む全要求について足し合わせた合計が最小となる実行順を、第2実行順として決定するステップと、
    前記第2実行順における前記待ち時間の合計が、前記第1実行順における前記待ち時間の合計よりも小さい場合に前記第2実行順を、それ以外の場合は前記第1実行順を、前記適用すべき実行順として再決定するステップと、
    前記適用すべき実行順としての前記第2実行順の決定に応答して、前記実行中の要求の処理を中断するステップとを更に前記装置に実行させる、請求項9に記載のプログラム。
JP2010530803A 2008-09-29 2009-09-02 データの再呼び出し順を決定するための装置、方法、及びプログラム Active JP5166541B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010530803A JP5166541B2 (ja) 2008-09-29 2009-09-02 データの再呼び出し順を決定するための装置、方法、及びプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008251719 2008-09-29
JP2008251719 2008-09-29
PCT/JP2009/065344 WO2010035617A1 (ja) 2008-09-29 2009-09-02 データの再呼び出し順を決定するための装置、方法、及びプログラム
JP2010530803A JP5166541B2 (ja) 2008-09-29 2009-09-02 データの再呼び出し順を決定するための装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2010035617A1 JPWO2010035617A1 (ja) 2012-02-23
JP5166541B2 true JP5166541B2 (ja) 2013-03-21

Family

ID=42059623

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010530803A Active JP5166541B2 (ja) 2008-09-29 2009-09-02 データの再呼び出し順を決定するための装置、方法、及びプログラム

Country Status (6)

Country Link
US (3) US8732393B2 (ja)
EP (1) EP2352081B1 (ja)
JP (1) JP5166541B2 (ja)
KR (1) KR20110066140A (ja)
CN (1) CN102165408B (ja)
WO (1) WO2010035617A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013538399A (ja) * 2010-08-24 2013-10-10 インターナショナル・ビジネス・マシーンズ・コーポレーション テープ媒体上での総シーク時間を減らすための方法、システム及びプログラム

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010035617A1 (ja) 2008-09-29 2010-04-01 インターナショナル・ビジネス・マシーンズ・コーポレーション データの再呼び出し順を決定するための装置、方法、及びプログラム
JP5617540B2 (ja) * 2010-11-02 2014-11-05 富士通株式会社 仮想テープ装置および仮想テープ装置における物理テープ選択方法
JP5633432B2 (ja) * 2011-03-04 2014-12-03 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
JP5910128B2 (ja) * 2012-02-03 2016-04-27 富士通株式会社 仮想テープ装置及び仮想テープ装置の制御方法
KR101993258B1 (ko) 2012-11-22 2019-09-27 삼성전자주식회사 레지스터 슬라이싱 회로 및 이를 포함하는 시스템 온 칩
JP6191209B2 (ja) * 2013-04-12 2017-09-06 富士通株式会社 ストレージ装置、制御プログラムおよび制御方法
JP2015022345A (ja) * 2013-07-16 2015-02-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データ転送が停止しまうことがないように、キャッシュされているデータの転送レートを適合させる方法、システム、および、プログラム
US9256370B2 (en) 2013-12-05 2016-02-09 International Business Machines Corporation Average response time improvement from a file system for a tape library
JP6242326B2 (ja) * 2014-11-19 2017-12-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報提供システム、情報提供方法およびプログラム
US9477408B1 (en) 2015-04-14 2016-10-25 Samsung Electronics Co., Ltd. Memory systems having improved out-of-order execution of commands and methods for operating the same
US10223179B2 (en) 2016-05-17 2019-03-05 International Business Machines Corporation Timeout processing for messages
US9952770B2 (en) 2016-06-14 2018-04-24 International Business Machines Corporation Responding to recall operations based on file migration time
US10216660B1 (en) * 2017-07-13 2019-02-26 EMC IP Holding Company LLC Method and system for input/output (IO) scheduling in a storage system
US10621448B2 (en) 2017-08-02 2020-04-14 Wing Aviation Llc Systems and methods for determining path confidence for unmanned vehicles
JP2019121342A (ja) * 2017-12-28 2019-07-22 富士通株式会社 情報処理装置、予測方法、及び予測プログラム
JP2020021186A (ja) * 2018-07-31 2020-02-06 富士通株式会社 トランザクション制御装置、トランザクション制御プログラムおよびトランザクション制御方法
JP7287123B2 (ja) * 2019-06-03 2023-06-06 富士通株式会社 仮想テープ装置,キャッシュ制御装置およびキャッシュ制御プログラム
US10929025B2 (en) * 2019-06-25 2021-02-23 Seagate Technology Llc Data storage system with I/O determinism latency optimization
US11256621B2 (en) * 2019-06-25 2022-02-22 Seagate Technology Llc Dual controller cache optimization in a deterministic data storage system
CN111352868B (zh) * 2020-03-30 2021-09-28 厦门科灿信息技术有限公司 串口访问方法、装置、终端设备及存储介质
US11231866B1 (en) * 2020-07-22 2022-01-25 International Business Machines Corporation Selecting a tape library for recall in hierarchical storage
CN112040001A (zh) * 2020-09-07 2020-12-04 平安科技(深圳)有限公司 一种基于分布式存储的请求处理方法及装置
US11809731B2 (en) 2021-09-28 2023-11-07 International Business Machines Corporation Appending data to a tape cartridge during recall operations
US11972148B2 (en) * 2022-06-14 2024-04-30 Western Digital Technologies, Inc. Proactive storage operation management using thermal states

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652025A (ja) * 1992-04-20 1994-02-25 Internatl Business Mach Corp <Ibm> 自動化記憶ライブラリ及び該ライブラリにおけるボリューム取扱機構操作方法、並びにトランスポータ操作方法
JP2002007999A (ja) * 2000-06-19 2002-01-11 Murata Mfg Co Ltd 遺伝的アルゴリズムを用いた最適化方法
JP2004303190A (ja) * 2003-03-20 2004-10-28 Hitachi Ltd プログラム、情報処理装置、情報処理装置の制御方法、及び記録媒体
JP2006512628A (ja) * 2002-06-07 2006-04-13 日本電産サンキョー株式会社 自動誘導式パレットを用いた生産ラインおよび生産ライン設計支援システム本出願は米国特許法(35U.S.C.)第119条に基づく2002年6月7日出願の米国仮出願No.60/387,347の優先権を主張するものであり、当該仮出願の全開示もまた参照により本出願に包含される。
JP2006190274A (ja) * 2005-01-05 2006-07-20 Internatl Business Mach Corp <Ibm> 仮想テープ・サーバにおける論理ボリュームの再呼び出しを最適化するための装置、システム、および方法
JP2007241577A (ja) * 2006-03-07 2007-09-20 Nec Corp 入出力要求制御方法、計算機システム及びコンピュータプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000048549A (ja) * 1998-08-03 2000-02-18 Fujitsu Ltd テープ装置
US7206866B2 (en) * 2003-08-20 2007-04-17 Microsoft Corporation Continuous media priority aware storage scheduler
GB2447688B (en) * 2007-03-22 2011-05-18 Advanced Risc Mach Ltd A data processing apparatus and method for arbitrating between messages routed over a communication channel
WO2010035617A1 (ja) 2008-09-29 2010-04-01 インターナショナル・ビジネス・マシーンズ・コーポレーション データの再呼び出し順を決定するための装置、方法、及びプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652025A (ja) * 1992-04-20 1994-02-25 Internatl Business Mach Corp <Ibm> 自動化記憶ライブラリ及び該ライブラリにおけるボリューム取扱機構操作方法、並びにトランスポータ操作方法
JP2002007999A (ja) * 2000-06-19 2002-01-11 Murata Mfg Co Ltd 遺伝的アルゴリズムを用いた最適化方法
JP2006512628A (ja) * 2002-06-07 2006-04-13 日本電産サンキョー株式会社 自動誘導式パレットを用いた生産ラインおよび生産ライン設計支援システム本出願は米国特許法(35U.S.C.)第119条に基づく2002年6月7日出願の米国仮出願No.60/387,347の優先権を主張するものであり、当該仮出願の全開示もまた参照により本出願に包含される。
JP2004303190A (ja) * 2003-03-20 2004-10-28 Hitachi Ltd プログラム、情報処理装置、情報処理装置の制御方法、及び記録媒体
JP2006190274A (ja) * 2005-01-05 2006-07-20 Internatl Business Mach Corp <Ibm> 仮想テープ・サーバにおける論理ボリュームの再呼び出しを最適化するための装置、システム、および方法
JP2007241577A (ja) * 2006-03-07 2007-09-20 Nec Corp 入出力要求制御方法、計算機システム及びコンピュータプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013538399A (ja) * 2010-08-24 2013-10-10 インターナショナル・ビジネス・マシーンズ・コーポレーション テープ媒体上での総シーク時間を減らすための方法、システム及びプログラム

Also Published As

Publication number Publication date
WO2010035617A1 (ja) 2010-04-01
KR20110066140A (ko) 2011-06-16
JPWO2010035617A1 (ja) 2012-02-23
EP2352081A4 (en) 2012-10-17
EP2352081A1 (en) 2011-08-03
EP2352081B1 (en) 2014-12-31
US9104318B2 (en) 2015-08-11
US20140215146A1 (en) 2014-07-31
US20110179222A1 (en) 2011-07-21
CN102165408B (zh) 2014-08-06
US8732393B2 (en) 2014-05-20
US9477411B2 (en) 2016-10-25
CN102165408A (zh) 2011-08-24
US20160011793A1 (en) 2016-01-14

Similar Documents

Publication Publication Date Title
JP5166541B2 (ja) データの再呼び出し順を決定するための装置、方法、及びプログラム
EP0848321B1 (en) Method of data migration
US6381677B1 (en) Method and system for staging data into cache
JP4375435B2 (ja) 予知型データ移行を行う階層ストレージシステム
US20050216665A1 (en) Storage system and method for controlling block rearrangement
US9606930B2 (en) Tape-managed partition support for effective workload allocation and space management
JP2006190274A (ja) 仮想テープ・サーバにおける論理ボリュームの再呼び出しを最適化するための装置、システム、および方法
JP2007108981A (ja) ストレージ装置及びボリューム間のデータ交換方法
JP4176341B2 (ja) 記憶制御装置
US9244628B2 (en) Reducing elapsed time to access data from a storage medium during a recall operation
JP2005250582A (ja) ネットワークストレージシステム、コマンドコントローラ、ネットワークストレージシステムにおけるコマンド制御方法及びコマンドコントローラにおけるコマンド制御方法
JP3382176B2 (ja) 要求処理方法および要求処理装置
JP2002140233A (ja) 記憶サブシステム及びi/oインタフェースの制御方法ならびに情報処理システム
JP2005165852A (ja) ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法
US10394819B2 (en) Controlling mirroring of tables based on access prediction
US9164885B2 (en) Storage control device, storage control method, and recording medium
US9465745B2 (en) Managing access commands by multiple level caching
JP2017033118A (ja) 制御装置、制御プログラム、及び制御方法
JP2006119786A (ja) ストレージ装置のリソース割り当て方法及びストレージ装置
EP2466446A1 (en) Storage system, method, and program, comprising a plurality of storage devices
WO2016001959A1 (ja) ストレージシステム
JPH0573485A (ja) データ転送制御方式
CN118020055A (en) Attaching data to a tape cartridge during a recall operation
JPH06149717A (ja) 磁気テープ装置システムのパススケジューリング方法
JP2004288213A (ja) データ処理システム及びデータ処理方法

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121220

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5166541

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150