(57)【要約】【課題】ＨＳＭ（階層型ストレージ管理）システムで二次ストレージにおける記録媒体の着脱を行う頻度をより抑えつつ、要求をスケジューリングするための技術を提供する。【解決手段】 階層制御装置は、二次ストレージに搭載されたテープドライブ装置３７毎に、そのドライブ装置３７で実行させた要求を履歴とすることで参照し、その要求として、カートリッジ３８からデータを読み出すリード要求が所定数、連続したテープドライブ装置３７をリード要求の専用とする。リード要求の専用としたテープドライブ装置３７では、それが実行可能な要求を優先して実行させる。それにより、カートリッジ３８を交換する回数を抑えたスケジューリングを行う。そのリード要求の専用とするテープドライブ装置３７には上限数を設けることにより、リード要求以外の要求にも対応可能とさせる。【選択図】図３
2008217354.tif 000002
【特許請求の範囲】
【請求項１】
複数のドライブ装置を搭載し、それぞれのドライブ装置に記録媒体を着脱可能なストレージを二次ストレージとする階層型ストレージ管理システムにおける該二次ストレージへの要求のスケジューリング方法であって、
前記ドライブ装置毎に、該ドライブ装置で処理させた要求を参照し、
装着された記録媒体からデータを読み出すリード要求の参照結果に基づき、前記ドライブ装置を該リード要求の専用ドライブ装置に設定して、該要求のスケジューリングを行う、
ことを特徴とする要求スケジューリング方法。
【請求項２】
前記専用ドライブ装置の設定は、前記リード要求を所定数、連続して処理させたドライブ装置に対して行う、
ことを特徴とする請求項１記載の要求スケジューリング方法。
【請求項３】
前記ドライブ装置毎に、該ドライブ装置に記録媒体を前記要求の処理のために装着させてから経過した経過時間を計時し、
該計時した経過時間が所定時間を超えていないドライブ装置に対し、該ドライブ装置で処理可能な要求を優先して処理させるスケジューリングを併せて行う、
ことを特徴とする請求項１記載の要求スケジューリング方法。
【請求項４】
複数のドライブ装置を搭載し、それぞれのドライブ装置に記録媒体を着脱可能なストレージを二次ストレージとする階層型ストレージ管理システムで該二次ストレージへの要求のスケジューリングを行う要求スケジューリング装置において、
前記ドライブ装置毎に、該ドライブ装置で処理させた要求を参照する参照手段と、
前記参照手段により、装着された記録媒体からデータを読み出すリード要求に基づき、前記ドライブ装置を該リード要求の専用ドライブ装置に設定して、該要求のスケジューリングを行うスケジューリング手段と、
を具備することを特徴とする要求スケジューリング装置。
【請求項５】
複数のドライブ装置を搭載し、それぞれのドライブ装置に記録媒体を着脱可能なストレージを二次ストレージとする階層型ストレージ管理システムで該二次ストレージへの要求のスケジューリングを行わせるコンピュータに、
前記ドライブ装置毎に、該ドライブ装置で処理させた要求を参照する参照機能と、
前記参照機能により、装着された記録媒体からデータを読み出すリード要求に基づき、前記ドライブ装置を該リード要求の専用ドライブ装置に設定して、該要求のスケジューリングを行うスケジューリング機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のドライブ装置を搭載し、それぞれのドライブ装置に記録媒体を自動的に着脱可能なストレージを二次ストレージとする階層型ストレージ管理システムでその二次ストレージへの要求のスケジューリングをコンピュータに実行させるための技術に関する。
【背景技術】
【０００２】
近年、情報のデジタル化が進み、これまでシステムで取り扱ったことのない情報もデジタル化されるようになってきている。それにより、保管するデータ量は急速に増加し、そのデータ量の増加に伴い維持コストも増大している。このようなことから最近では、アクセス速度を維持しつつ、大量のデータをより低コストに蓄積できる階層型ストレージ管理（ＨＳＭ：Hierarchical Storage Management）システムが利用されている。
【０００３】
そのＨＳＭシステムでは、アクセス速度の異なる少なくとも２種類のストレージをそれぞれ一次ストレージ、及び二次ストレージとして用意し、アクセス頻度（必要性）の高いファイルは高速な一次ストレージに、アクセス頻度の低いファイルは低速な二次ストレージに自律的に移動させる。それにより、システム全体を仮想化しつつ、アクセスを高速に行える環境を実現させている。
【０００４】
アクセス速度の速いストレージは高価であり、アクセス速度の遅いストレージは安価であるのが普通である。このため、アクセス速度の遅い安価なストレージを二次ストレージとして採用することにより、システム全体のコストを抑えつつ、大容量のデータを蓄積することができる。通常、一次ストレージとしては、ハードディスク装置等のディスク装置（内蔵のディスクを駆動するドライブ装置）を複数、搭載したディスクアレイ装置が採用され、二次ストレージとしては、ＤＶＤ、或いは磁気テープ等の記録媒体を自動的に交換可能なドライブ装置、或いはそのドライブ装置を複数、搭載したものが採用される。磁気テープは、コスト面、データ保存性に優れている点が着目されている。
【０００５】
一次ストレージに存在しないデータにアクセスがあると、そのデータを読み出すための要求（リード要求）が発行される。そのリード要求により、二次ストレージからデータが読み出され、一次ストレージに送信される。
【特許文献１】特開平０５−１２８００４号公報
【特許文献２】Ｗ０９９／５６２１１
【特許文献３】特開平０６−４４１０７号公報
【特許文献４】特開昭６０−１４７８５５号公報
【特許文献５】特開平３−１３６１４８号公報
【特許文献６】特開平１０−２６９１１５号公報
【特許文献７】特開平１１−１０２３１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
二次ストレージでは、一次ストレージと比較して、各処理の所要時間が非常に長い。そのリード要求を処理するときには、データを記録した記録媒体をドライブ装置に装着しなければならない。その装着には長い時間が必要なため、データが読み出されるまでの待ち時間も非常に長くなる。ドライブ装置が別の処理で使用中になっている場合には、待ち時間は更に長くなり、ユーザの運用に大きな悪影響を与えることになる。このことから、二
次ストレージで要求を実行する順序（スケジューリング）は性能（アクセス速度）に大きな影響を及ぼす可能性がある。
【０００７】
二次ストレージに対して発行される要求としては、上記リード要求の他に、データを記録媒体に書き込むためのライト要求、ミラーリングにより論理ボリュームを構成している記録媒体の一つに不具合が発生した場合に、冗長性を復旧するためのリビルド要求、及び記録媒体中の不要領域を無くすためのガーベジコレクション要求、等がある。それらの要求には優先度が定められており、要求のスケジューリングを行う従来の要求スケジューリング装置は基本的に、優先度の高い要求から順次、処理させるようになっていた（特許文献４）。それにより、記録媒体の着脱が多発して性能を低下させるという状況が発生しやすいという問題点があった。
【０００８】
図５は、ＨＳＭシステムで要求が発行される発生率の時間変化を示す図である。その図５は、１日における一次ストレージ、及び二次ストレージへの要求の発生率の変化を矢印の数で示している。矢印の向きはデータが転送される方向を示している。それにより、例えば一次ストレージから二次ストレージに向いた矢印は、一次ストレージのデータを二次ストレージに格納するライト要求を表している。
【０００９】
上述したように、二次ストレージへのアクセスには長い時間がかかる。このため、図５に示すように、二次ストレージにアクセスする要求は、業務によるアクセスが少なくなる時間帯（夜間）に発行して処理し、翌日の業務が開始する時間には一次ストレージに用意しておくべきデータを用意しておくようになっているのが普通である。それにより、二次ストレージへの要求は或る程度、集中することが予想される。
【００１０】
二次ストレージへの要求が集中する場合、記録媒体の着脱の多発は要求の処理に要する平均の所用時間を著しく増大させる原因となる。着脱の多発は、記録媒体の消耗をより早くさせる原因ともなる。このようなこともあり、要求のスケジューリングでは、記録媒体を着脱（交換）する頻度に着目することは非常に重要と考えられる。
【００１１】
本発明は、ＨＳＭ（階層型ストレージ管理）システムで二次ストレージにおける記録媒体の着脱を行う頻度をより抑えつつ、要求をスケジューリングするための技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の第１の態様の階層型ストレージ管理システムにおける要求スケジューリング方法は、複数のドライブ装置を搭載し、それぞれのドライブ装置に記録媒体を着脱可能なストレージを二次ストレージとする階層型ストレージ管理システムにおける該二次ストレージへの要求のスケジューリング方法であって、ドライブ装置毎に、該ドライブ装置で処理させた要求を参照し、装着された記録媒体からデータを読み出すリード要求の参照結果に基づき、ドライブ装置を該リード要求の専用ドライブ装置に設定して、該要求のスケジューリングを行う。
【００１３】
第２の態様の要求スケジューリング方法は、上記第１の態様における工程に加えて、ドライブ装置毎に、該ドライブ装置に記録媒体を要求の処理のために装着させてから経過した経過時間を計時し、該計時した経過時間が所定時間を超えていないドライブ装置に対し、該ドライブ装置で処理可能な要求を優先して処理させるスケジューリングを併せて行う。
【００１４】
本発明の要求スケジューリング装置は、複数のドライブ装置を搭載し、それぞれのドライブ装置に記録媒体を着脱可能なストレージを二次ストレージとする階層型ストレージ管
理システムで該二次ストレージへの要求のスケジューリングを行うことを前提とし、ドライブ装置毎に、該ドライブ装置で処理させた要求を参照する参照手段と、参照手段により、装着された記録媒体からデータを読み出すリード要求に基づき、ドライブ装置を該リード要求の専用に設定して、該要求のスケジューリングを行うスケジューリング手段と、を具備する。
【００１５】
本発明のプログラムは、複数のドライブ装置を搭載し、それぞれのドライブ装置に記録媒体を着脱可能なストレージを二次ストレージとする階層型ストレージ管理システムで該二次ストレージへの要求のスケジューリングを行わせるコンピュータに、ドライブ装置毎に、該ドライブ装置で処理させた要求を参照する参照機能と、参照機能により、装着された記録媒体からデータを読み出すリード要求に着目し、ドライブ装置を該リード要求の専用ドライブ装置に設定して、該要求のスケジューリングを行うスケジューリング機能と、を実現させる。
【発明の効果】
【００１６】
本発明では、二次ストレージに搭載されたドライブ装置毎に、そのドライブ装置で処理させた要求を参照し、その要求として、装着された記録媒体からデータを読み出すリード要求の参照結果に基づき（着目し）、ドライブ装置をリード要求の専用ドライブ装置に設定して、要求のスケジューリングを行う。
【００１７】
上記リード要求は、ランダムに発生する場合もあるが、古い複数のデータ（ファイル）を一度にアクセスしようとして発生する場合も多い。その場合、特定の記録媒体へのリード要求が連続して発生することになる。このため、リード要求に着目して、ドライブ装置をリード要求の専用とすることにより、記録媒体を交換することなく、より多くの要求を処理させることができる。
【００１８】
ドライブ装置毎に、そのドライブ装置に記録媒体を要求の処理のために装着させてから経過した経過時間を計時し、計時した経過時間が所定時間を超えていないドライブ装置に対し、ドライブ装置で処理可能な要求を優先して処理させるスケジューリングを行う場合には、記録媒体を交換することなく、処理可能な要求を処理させることができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図１は、本実施の形態による要求スケジューリング装置が適用された階層型ストレージ管理（ＨＳＭ）システムの構成図である。そのＨＳＭシステムは、通信ネットワークと接続されたホスト（Ｈｏｓｔ）コンピュータ（以降「ホスト」）１を用いて構築したものであり、一次ストレージ２としてディスクアレイ装置、二次ストレージ３として、磁気テープ３８を着脱可能な複数のテープドライブ装置３７を搭載したテープライブラリ装置を備えている。一次ストレージ２はホスト１に対して、搭載されているディスク容量よりも大容量の論理ボリュームを提供する。一次ストレージ２、及び二次ストレージ３とそれぞれ接続された階層制御装置４は、一次ストレージ２と連携して二次ストレージ３との間のデータの移動を自律的に行い、階層間でデータの管理を行えるものである。一次ストレージ２及び二次ストレージ３の仮想化は、その一次ストレージ２と階層制御装置４によって実現される。本実施の形態による二次ストレージ３の要求スケジューリング装置は、その階層制御装置４に搭載されている。
【００２０】
上記ホスト１は、ＣＰＵ１１、インターフェース（Ｉ／Ｆ）１２、メモリ１４、及びディスク装置１５をそれぞれバスに接続した構成のコンピュータである。Ｉ／Ｆ１２は一次ストレージ２との接続に用いられる。ディスク装置１５には、ＣＰＵ１１が実行するプログラムが格納されている。通信ネットワークとの接続に用いるＩ／Ｆ等は省略している。
【００２１】
一次ストレージ２は、ＣＰＵ２１、ディスク装置２２、コントローラ２３、メモリ２４、及び２つのＩ／Ｆ２５及び２６をそれぞれバスに接続し、コントローラ２３に複数のディスク装置２８から成るディスクアレイ２７を接続した構成である。ディスク装置２２は、メタ情報の格納に用いられ、ＣＰＵ２１が実行する、データアクセス用のプログラムや、階層制御装置４と連携してホスト１に大容量の論理ボリュームを提供するための連携プログラムはメモリ２４に格納されている。２つのＩ／Ｆ２５及び２６のうちの一方はホスト１との接続に用いられ、他方は階層制御装置４との接続に用いられる。コントローラ２３は、ＣＰＵ２１からの指示に従って、ホスト１の要求するデータが何れかのディスク装置２８に存在すればそのディスク装置２８にアクセスし、データがディスク装置２８に存在しなければ二次ストレージ３から取得するために、階層制御装置４にデータを要求する。
【００２２】
二次ストレージ３は、Ｉ／Ｆ３１、カートリッジ群３２、ロボット３３、コントローラ３４、不揮発性メモリ３５、及び磁気テープ３８を脱着可能な複数のテープドライブ装置３７からなるテープドライブ装置群３６を備えた構成である。
【００２３】
Ｉ／Ｆ３１は、階層制御装置４との接続に用いられる。磁気テープ３８としては、扱いやすさから、カートリッジタイプのものが採用されている。カートリッジ群３２は、テープドライブ装置３７に搭載可能な磁気テープ３８から構成される。実際には、複数の磁気テープ３８を収納可能な収納部、及びその収納部に収納された一つ以上の磁気テープ３８に相当する。ロボット３３は、その収納部とテープドライブ装置３７間の磁気テープ３８の移動を実現させる。コントローラ３４は、ロボット３３を制御して、各テープドライブ装置３７に装着すべき磁気テープ３８を装着させ、その磁気テープ３８へのアクセスを行う。そのアクセスを行うために、磁気テープ３８のメタ情報を不揮発性メモリ３５に保存する。保存するメタ情報は、例えば磁気テープ３８の識別情報（例えばＩＤ）、累積データ量、及び格納ファイル情報などである。以降、磁気テープ３８は「カートリッジ」と呼ぶことにする。
【００２４】
階層制御装置４は、ＣＰＵ４１、２つのＩ／Ｆ４３、４４、メモリ４５をそれぞれバスに接続した構成のコンピュータである。ＣＰＵ４１が実行するプログラムはメモリ４５に格納されている。２つのＩ／Ｆ４３、４４はそれぞれ、一次ストレージ２、及び二次ストレージ３との接続に用いられる。
【００２５】
階層制御装置４には一次ストレージ２及び二次ストレージ３を仮想化し、データ管理を行うための階層制御プログラムがメモリ４５にインストールされている。ホスト１にはファイル管理を行うためのプログラムであるファイルシステムがディスク装置１５にインストールされており、一次ストレージ２と二次ストレージ３から成る論理ボリュームにファイルを格納することができる。
【００２６】
ホスト１の一次ストレージ２へのアクセスは、上記ファイルシステムによって行われる。アクセスしたデータ（ファイル）に関するアクセス情報は、連携プログラムによって階層制御プログラムに通知される。それにより階層制御プログラムは、一次ストレージ２に格納されたデータのアクセス頻度等を認識する。一次ストレージ２の空き容量等は、例えば一次ストレージ２への問い合わせにより確認する。それにより、ホスト１による一次ストレージ２へのアクセス状況、その一次ストレージ２の空き容量に応じた階層制御を行う。その階層制御により、ファイルシステム（ホスト１）が一次ストレージ２に格納されていないデータにアクセスしようとしている場合には、該当するデータを二次ストレージ３から読み出し、一次ストレージ２に転送する。一次ストレージ２の空き容量が少なくなった場合には、アクセス頻度の少ない、最終アクセスの古いデータを一次ストレージ２から
読み出して二次ストレージ３に格納させる。それらの階層間のデータ移動は、一次ストレージ２と階層制御装置４間で直接、データを送受信することで行われる。
【００２７】
二次ストレージ３へのアクセスは、要求を発行することで行われる。階層制御プログラムは、メモリ４５に格納したメタ情報を参照し、カートリッジ３８毎に要求を発行する。発行した要求は、例えばその要求からコマンドを生成し、そのコマンドを二次ストレージ３に出力することにより、実行される。
【００２８】
そのコマンドはＩ／Ｆ３１を介して入力されるコントローラ３４によって処理される。コントローラ３４は、不揮発性メモリ３５に保存されたメタ情報を参照しつつ、階層制御装置４からコマンドにより指示された処理のための制御を行う。その処理を行った結果は階層制御装置４に通知する。
【００２９】
二次ストレージ２への要求としては、データを読み出すためのリード要求、一次ストレージ２のデータを書き込むためのライト（Ｗｒｉｔｅ）要求、ミラーリングにより論理ボリュームを構成しているカートリッジ３８の一つに不具合が発生した場合に、冗長性を復旧するためのリビルド要求、カートリッジ３８中の不要領域を無くすためのガーベジコレクション要求、古くなったカートリッジ３８やエラー発生率の高いカートリッジ３８から、別のカートリッジ３８にデータをコピーさせることにより、データの保全性を確保するための冗長コピー要求等がある。
【００３０】
ライト要求には、一次ストレージ２の空き容量が少なくなった場合に、空き容量を増やすために自動発生するもの、一次ストレージ２上に書き込まれたデータがカートリッジ３８にライトされずに一定時間が経過した場合に自動発生するもの、及びシステム管理者の指示によって発生するもの、がある。それらのライト要求には優先度が定められている。最も優先度の高いものは、一次ストレージ２の空き容量を増やすために自動発生させるライト要求である。
【００３１】
リード要求には、二次ストレージ３に格納されているデータにホスト１がアクセスする場合に自動発生するもの、システム管理者の指示によって発生するもの、がある。優先度は前者のほうが高く設定されている。
【００３２】
論理ボリュームを構成するカートリッジ３８は、例えばミラーリングにより冗長化されている。リビルド要求は、一方のカートリッジ３８に故障等の不具合が発生した場合に、他方のカートリッジ３８から空いているカートリッジ３８にデータをコピーするために自動発生される。
【００３３】
ガーベジコレクション要求は、システム管理者の操作（指示）によって発生する。カートリッジ３８は、追記型で用いており、一度カートリッジ３８に書き込まれたデータは削除されない。従って、同じデータ（ファイル）を二度、三度と書き込んだ場合、最後にデータを書き込んだ領域以外はユーザから参照されない不要領域となる。ガーベジコレクション要求は、このような不要領域を残して必要な領域のデータだけを別の空いているカートリッジ３８にコピーすることにより、コピー元のカートリッジ３８に不要領域を無くすためのものである。冗長コピー要求は、システム管理者の指示によって発生する。
【００３４】
システム管理者の操作による要求の発生には、システム管理者が要求を発生させるべき条件を設定し、その条件を満たした場合に自動発生させるもの、システム管理者が論理ボリューム、或いはカートリッジ３８を選択し、直接、発生させるもの、がある。前者では、例えばガーベジコレクション要求では、「不要領域が全体の５０％を越えたカートリッジ３８に対して、午後１８：００〜翌朝８：００の間にガーベジコレクション要求を実行
する」ということを実現させるために、不要領域が全体に占める割合、それを実行する時間帯等を条件としてシステム管理者が設定する。実際の操作は、階層制御装置４と接続された入力装置、或いはその制御装置４と通信ネットワークを介して接続された端末装置により行われる。
【００３５】
要求の自動発生は、一次ストレージ２の連携プログラムからの通知によって随時、行われる。連携プログラムからの通知により、二次ストレージ３から必要なデータを読み出すためのリード要求、或いは一次ストレージ２の空き容量を増やすためのライト要求が発行される。コントローラ３４からの通知により、一定時間経過によるライト要求、リビルド要求が発行される。
【００３６】
上記ライト要求、及びリード要求は、論理ブロック長単位で処理が行われる。他の要求は、カートリッジ３８単位で処理が行われる。優先度は、ユーザのシステム利用に与える影響が大きい要求ほど優先度は高く設定されている。基本的には、優先度は高いほうから以下のような順になっている。
・一次ストレージ２の空き領域を確保するための一次ストレージ２から二次ストレージ３へのライト要求
・ユーザアクセスによって発生する二次ストレージ３から一次ストレージ２へのリード要求
・その他の要求
図５に示すように、二次ストレージ３への要求は集中する場合がある。上記ガーベジコネクション要求は、システム管理者の意図に反して大量に発生する場合がある。カートリッジ３８の架け替えを多く行うほど、性能が低下し、カートリッジ３８の消耗も早くなる。このことから本実施の形態では、以下のようにして、カートリッジ３８の架け替えを行う回数を抑えたスケジューリングを行っている。
【００３７】
図２は、要求のスケジューリングのために管理する要求管理情報を説明する図である。その要求管理情報は、メモリ４５に確保された領域に格納されるものであり、待ちキュー、及びドライブ情報を備えている。
【００３８】
要求は、カートリッジ３８毎に随時、発行（発生）される。実行（処理）していない要求は、メモリ４５に確保した領域である待ちキューで管理される。その待ちキューには、図２に示すように、カートリッジ３８毎に、要求が優先度順に並べられる。優先度が同じ要求は、発生時刻が古いほうが優先される。カートリッジ３８自体は、ＩＤで管理されている。
【００３９】
ドライブ情報は、テープドライブ装置３７毎に、その状況を示すデータをまとめたものである。テープドライブ装置３７毎に、その識別情報であるＩＤ（カートリッジ３８のものと区別するために以降「ドライブＩＤ」と記す。カートリッジ３８のものは「テープＩＤ」と記す）、カウントされているカートリッジ３８のテープＩＤ、実行（処理）中の要求の有無を示すフラグ情報、及びリード（Ｒｅａｄ）待ち用か否かを示す設定情報を有している。それにより、各テープドライブ装置３７にマウント（装着）されているカートリッジ３８、空いているテープドライブ装置３７、リード待ち用か否かを特定できるようになっている。
【００４０】
本実施の形態では、次のルールに従って要求のスケジューリングを行っている。
（ａ）一度、要求の処理のためにテープドライブ装置３７に装着したカートリッジ３８は、一定時間（規定時間Ａ分）はそのカートリッジ３８を使用する要求を優先して実行する（ｂ）リード要求を連続して実行したテープドライブ装置３４はリード待ち専用（リード要求の専用）とする
上記ルール（ａ）により、要求はカートリッジ３８単位でまとめられる形となって、複数の要求は対象となるカートリッジ３８が装着されることで連続して実行されるようにスケジューリングされる。このため、カートリッジ３８を架け替える回数はより抑えることができ、単位時間当たりの実行可能な要求数はより多くすることができるようになる。時間の計時は、例えばＣＰＵ４１に内蔵のハードタイマを用いて行われる。
【００４１】
二次ストレージ３に対するリード要求は、一次ストレージ２でデータへのアクセスが行えなかった場合に発生する。そのリード要求は、ランダムに発生する場合もあるが、古い複数のデータ（ファイル）を一度にアクセスしようとして発生する場合も多い。その場合、特定のカートリッジ３８へのリード要求が連続して発生することになる。上記ルール（ｂ）は、そのようなリード要求に適切に対応したスケジューリングを行えるように設定したものである。このルール（ｂ）により、他に要求が発生している、或いは発生する可能性の高いカートリッジ３８をテープドライブ装置３７から外すのを高い確率で回避させることができる。それにより、要求はより効率的に実行することができ、二次ストレージ３にアクセスすることによる性能の低下もより抑えられることとなる。上記ドライブ情報中のリード待ち用か否かを示す設定情報は、このルール（ｂ）によりリード待ち用とさせているか否かを示すものである。
【００４２】
上記ルール（ａ）及び（ｂ）に従ったスケジューリングを行うために、ドライブ情報ではテープドライブ装置３７毎に、例えば現在、マウントしているカートリッジ３８をマウントとしたマウント時刻、実行させた要求の履歴、最後の要求を実行した時刻（実施時刻）も管理するようにしている。それにより、上記一定時間が経過したか否かの判定や、実行させた要求の参照を可能とさせている。履歴は、ルール（ｂ）に従ったスケジュールを行える分のみとしている。実施時刻は、後述するように、リード待ち用の設定を解除するための情報である。
【００４３】
二次ストレージ３への要求は、リード要求だけではない。ライト要求やリビルド要求等も存在する。このことから、他の要求を確実に実行できるように、リード待ち用とするテープドライブ装置３７の数には上限数を設けている。それにより、図３に示すように、全てのテープドライブ装置３７がリード要求を実行できない状況となるのを回避して、リード待ち用と設定していないテープドライブ装置３７でリード要求以外の要求を実行できるようにしている。
【００４４】
上記上限数、及びリード待ち用を設定するためにリード要求が連続すべき回数（所定回数）は共に、システム管理者が変更可能とさせている。それにより、状況に応じた対応を可能とさせている。また上記一定時間等もシステム管理者が変更可能とさせている。
【００４５】
図４は、スケジューリング処理のフローチャートである。そのスケジューリング処理は、階層制御装置４のＣＰＵ４１が上記階層制御プログラムをメモリ４５から読み出して実行することで実現され、テープドライブ装置３７毎に実行される。その起動は、例えば新たな要求の待ちキューへの登録、或いは要求の実行の終了によって行われる。この図４を参照して、上記スケジューリングを実現させる階層制御装置４の動作について詳細に説明する。
【００４６】
先ず、ステップＳ１では、対象とするテープドライブ装置３７はリード待ち用か否か判定する。そのテープドライブ装置３７のドライブ情報中の設定情報がリード待ち用を示すものでなかった場合、判定はＮｏとなってステップＳ１３に移行する。そうでない場合には、つまりそのテープドライブ装置３７がリード待ち用と設定されていた場合には、判定はＹｅｓとなってステップＳ２に移行する。
【００４７】
ステップＳ２では、テープドライブ装置３７にカートリッジ（図中「テープ」と表記）３８が装着（マウント）済みか否か判定する。カートリッジ３８がマウントされていない場合、判定はＮｏとなってステップＳ７に移行する。そうでない場合には、つまりカートリッジ３８がマウント済みであった場合には、判定はＹｅｓとなってステップＳ３に移行する。
【００４８】
ステップＳ３では、マウント済みのカートリッジ３８で要求を連続実行している時間が規定時間Ａ分を経過しているか否か判定する。その時間は通常、そのカートリッジ３８をマウントしてから経過した経過時間であり、その時間が規定時間Ａ分を超えていない場合、判定はＹｅｓとなってステップＳ７に移行する。そうでない場合には、判定はＮｏとなってステップＳ４に移行する。
【００４９】
ステップＳ４では、マウント済みのカートリッジ３８に対して発行された要求のなかで最も優先度の高いリード要求を待ちキューより検索する。続くステップＳ５では、その検索によりリード要求が見つかったか否か判定する。リード要求が見つかった場合、判定はＹｅｓとなってステップＳ６に移行し、テープドライブ装置３７でそのリード要求の実行を開始させた後、このスケジューリング処理を終了する。一方、そうでない場合には、判定はＮｏとなって上記ステップＳ７に移行する。
【００５０】
上記ステップＳ２、若しくはＳ５でのＮｏの判定、或いは上記ステップＳ３でのＹｅｓの判定によって移行するステップＳ７では、そのステップＳ３でのＹｅｓの判定によって移行したか否かにより、異なる処理が行われる。
【００５１】
ステップＳ３でのＹｅｓの判定により移行した場合、カートリッジ３８はマウント済みであり、そのカートリッジ３８に対して未実行のリード要求が存在する可能性がある。このことから、そのカートリッジ３８に対する最も優先度の高いリード要求を待ちキューより検索し、その検索によってリード要求が見つからなかった場合、テープドライブ装置３７にマウント可能なカートリッジ３８を対象に、そのカートリッジ３８で待ちキューに登録されているリード要求のなかで最も優先度の高いリード要求（最も古いリード要求に相当する）を検索する。それ以外のケースで移行した場合は、カートリッジ３８がマウントされていない、或いはマウント済みのカートリッジ３８には対象となるリード要求が存在していないことが確認されている。このことから、テープドライブ装置３７にマウント可能なカートリッジ３８を対象に、そのカートリッジ３８で待ちキューに登録されているリード要求のなかで最も優先度の高いリード要求を検索する。そのような検索を状況に応じて行った後、ステップＳ８に移行する。
【００５２】
ステップＳ８では、検索により要求が見つかったか否か判定する。リード要求が見つかった場合、判定はＹｅｓとなってステップＳ９に移行し、テープドライブ装置３７でそのリード要求の実行を開始させた後、このスケジューリング処理を終了する。一方、そうでない場合には、判定はＮｏとなってステップＳ１０に移行する。
【００５３】
ステップＳ１０では、一つ前の要求の実行を開始させた実施時刻から規定時間Ｂ分経過しているか否か判定する。その規定時間Ｂ分が経過していた場合、判定はＹｅｓとなってステップＳ１２に移行し、リード待ち用の設定を解除して、他の要求も割り当て可能とする。そうでない場合には、判定はＮｏとなってステップＳ１１に移行し、新たな要求が待ちキューに追加されるのを待つことを決定した後、このスケジューリング処理を終了する。リード待ち用の設定の解除は、リード待ち用か否かを示す設定情報を書き換えることで行われる。
【００５４】
このようにして本実施の形態では、リード待ち用に設定したテープドライブ装置３７で
は、最後の要求の実行を開始してから規定時間Ｂ分の経過を条件に、そのリード待ち用の設定を解除するようにしている。リード待ち用を設定している状況では、リード要求のみを対象に実行するようにしている。それにより、連続して発生するリード要求に対応できるようにしている。リード待ち用の設定、その解除は、ドライブ情報中の対象とするテープドライブ装置３７の設定情報を書き換えることで行われる（図２）。
【００５５】
上記ステップＳ１の判定がＮｏとなることでステップＳ１３に移行する。ステップＳ１３〜Ｓ２０では、上記ステップＳ２〜Ｓ９と同様の処理が実行される。異なっているのは基本的に、検索、或いは実行の対象をリード要求に限定しているか否かという点のみである。このことから、ステップＳ１３〜Ｓ２０についての説明は省略する。ステップＳ２０の判定がＮｏとなって移行するステップＳ２１では、ステップＳ１１と同様に、新たな要求が待ちキューに追加されるのを待つことを決定した後、このスケジューリング処理を終了する。
【００５６】
マウントされていないカートリッジ３８のマウントは、ステップＳ９、或いはＳ２０で行われる。特には図示していないが、規定時間Ａ分と比較する経過時間を計時するための上記マウント時刻は、ステップＳ９、或いはＳ２０の実行時に、要求の処理のためにカートリッジ３８の交換（架け替え）を指示した場合に書き換える。それにより、現在時刻との差から経過時間を特定可能とさせている。このときには、テープＩＤ、実行（処理）中の要求の有無を示すフラグ情報、及び実施時刻の書き換えや、実行した要求の履歴としての格納も併せて行われる。二次ストレージ２では、コントローラ３４がロボット３３を駆動して、該当するテープドライブ装置３７にマウントすべきカートリッジ３８がマウントされることになる。フラグ情報、及び実施時刻の書き換え、並びに実行した要求の格納はステップＳ６及びＳ１７でも同様に行われる。
【００５７】
リード待ち用の設定は、上記したように、所定回数以上、同じカートリッジ３８へのリード要求を連続して実行した場合に行われる。このため、その設定は、同一のテープドライブ装置３７でステップＳ１７を（所定回数−１）回以上、連続して実行した場合に行われる。このとき、上記上限数を超えないようにするために、既に上限数のテープドライブ装置３７がリード待ち用と設定されている場合には、新たなリード待ち設定は行わない、或いはその設定を行うのであれば、例えば最も前にリード待ち設定としたテープドライブ装置３７、或いは現在、空いているテープドライブ装置３７のその設定を解除する。そのようなテープドライブ装置３７の設定を解除することにより、リード要求が連続する可能性がより高いテープドライブ装置３７を優先的にリード待ち用に設定できるようになる。
【００５８】
なお、本実施の形態では、二次ストレージ３としてテープライブラリ装置３をそれぞれ採用しているが、別のストレージを採用しても良い。例えば二次ストレージ３としては、ＤＶＤ等の光ディスクを交換可能なものを採用しても良い。上述したような要求のスケジューリングは、三次ストレージ以上のストレージを対象に行っても良い。
【００５９】
本実施の形態による要求スケジューリング装置は、階層制御プログラムを階層制御装置（コンピュータ）４にインストールすることにより、その階層制御装置４上で実現させている。しかし、その要求スケジューリング装置は、階層制御装置４のような装置に搭載されるのではなく、ホスト１等として用いられる別の装置（コンピュータ）に搭載させても良い。上記階層制御プログラムは、メモリ４５に予め格納するのではなく、光ディスク、或いはフラッシュメモリ等に格納することでインストール可能とさせても良い。或いは通信ネットワークを介して配信可能としても良い。このことから、階層制御プログラムのような要求のスケジューリングを行うことが可能なプログラムは、通信ネットワークと接続された装置がアクセス可能な記録媒体に格納しても良い。
【００６０】
（付記１）
複数のドライブ装置を搭載し、それぞれのドライブ装置に記録媒体を着脱可能なストレージを二次ストレージとする階層型ストレージ管理システムにおける該二次ストレージへの要求のスケジューリング方法であって、
前記ドライブ装置毎に、該ドライブ装置で処理させた要求を参照し、
装着された前記記録媒体からデータを読み出すリード要求の参照結果に基づき、前記ドライブ装置を該リード要求の専用ドライブ装置に設定して、該要求のスケジューリングを行う、
ことを特徴とする要求スケジューリング方法。
【００６１】
（付記２）
前記専用ドライブ装置の設定は、前記リード要求を所定数、連続して処理させたドライブ装置に対して行う、
ことを特徴とする付記１記載の要求スケジューリング方法。
【００６２】
（付記３）
前記専用ドライブ装置の設定は、予め設定の上限数に制限して行う、
ことを特徴とする付記１、または２記載の要求スケジューリング方法。
【００６３】
（付記４）
前記ドライブ装置毎に、該ドライブ装置に記録媒体を前記要求の処理のために装着させてから経過した経過時間を計時し、
該計時した経過時間が所定時間を超えていないドライブ装置に対し、該ドライブ装置で処理可能な要求を優先して処理させるスケジューリングを併せて行う、
ことを特徴とする付記１記載の要求スケジューリング方法。
【００６４】
（付記５）
複数のドライブ装置を搭載し、それぞれのドライブ装置に記録媒体を着脱可能なストレージを二次ストレージとする階層型ストレージ管理システムにおける該二次ストレージへの要求のスケジューリング方法であって、
前記ドライブ装置毎に、該ドライブ装置に記録媒体を前記要求の処理のために装着させてから経過した経過時間を計時し、
該計時した経過時間が所定時間を超えていないドライブ装置に対し、該ドライブ装置で処理可能な要求を優先して処理させるスケジューリングを行う、
ことを特徴とする要求スケジューリング方法。
【００６５】
（付記６）
複数のドライブ装置を搭載し、それぞれのドライブ装置に記録媒体を自動的に着脱可能なストレージを二次ストレージとする階層型ストレージ管理システムで該二次ストレージへの要求のスケジューリングを行う要求スケジューリング装置において、
前記ドライブ装置毎に、該ドライブ装置で処理させた要求を参照する参照手段と、
前記参照手段により、装着された記録媒体からデータを読み出すリード要求に基づき、前記ドライブ装置を該リード要求の専用ドライブ装置に設定して、該要求のスケジューリングを行うスケジューリング手段と、
を具備することを特徴とする要求スケジューリング装置。
【００６６】
（付記７）
複数のドライブ装置を搭載し、それぞれのドライブ装置に記録媒体を着脱可能なストレージを二次ストレージとする階層型ストレージ管理システムで該二次ストレージへの要求のスケジューリングを行う要求スケジューリング装置において、
前記ドライブ装置毎に、該ドライブ装置に記録媒体を前記要求の処理のために装着させてから経過した経過時間を計時する計時手段と、
前記計時手段により計時する経過時間が所定時間を超えていないドライブ装置に対し、該ドライブ装置で処理可能な要求を優先して処理させるスケジューリングを行うスケジューリング手段と、
を具備することを特徴とする要求スケジューリング装置。
【００６７】
（付記８）
複数のドライブ装置を搭載し、それぞれのドライブ装置に記録媒体を着脱可能なストレージを二次ストレージとする階層型ストレージ管理システムで該二次ストレージへの要求のスケジューリングを行わせるコンピュータに、
前記ドライブ装置毎に、該ドライブ装置で処理させた要求を参照する参照機能と、
前記参照機能により、装着された記録媒体からデータを読み出すリード要求に基づき、前記ドライブ装置を該リード要求の専用ドライブ装置に設定して、該要求のスケジューリングを行うスケジューリング機能と、
を実現させるためのプログラム。
【００６８】
（付記９）
複数のドライブ装置を搭載し、それぞれのドライブ装置に記録媒体を着脱可能なストレージを二次ストレージとする階層型ストレージ管理システムで該二次ストレージへの要求のスケジューリングを行わせるコンピュータに、
前記ドライブ装置毎に、該ドライブ装置に記録媒体を前記要求の処理のために装着させてから経過した経過時間を計時する計時機能と、
前記計時機能により計時する経過時間が所定時間を超えていないドライブ装置に対し、該ドライブ装置で処理可能な要求を優先して処理させるスケジューリングを行うスケジューリング機能と、
を実現させるためのプログラム。
【図面の簡単な説明】
【００６９】
【図１】本実施の形態による要求スケジューリング装置が適用された階層型ストレージ管理システムの構成図である。
【図２】要求のスケジューリングのために管理する要求管理情報を説明する図である。
【図３】テープドライブ装置群３６を構成するテープドライブ装置３７に対して行われるリード待ち用の設定を説明する図である。
【図４】スケジューリング処理のフローチャートである。
【図５】ＨＳＭシステムで要求が発行される発生率の時間変化を示す図である。
【符号の説明】
【００７０】
１      ホストコンピュータ
２      一次ストレージ
３      二次ストレージ
４      階層制御装置
１１、２１、４１      ＣＰＵ
１２、２５、２６、３１、４３〜４４      インターフェース（Ｉ／Ｆ）
１４、２４、４５      メモリ
１５、２２、２８      ディスク装置
２３、３４      コントローラ
２７      ディスクアレイ
３２      カートリッジ群
３３      ロボット
３５      不揮発性メモリ
３６      テープドライブ装置群
３７      テープドライブ装置
３８      磁気テープ（カートリッジ）
【図１】
2008217354.tif 000003
【図２】
2008217354.tif 000004
【図３】
2008217354.tif 000005
【図４】
2008217354.tif 000006
【図５】
2008217354.tif 000007