(57)【要約】  【課題】十分に大きいキャッシュ領域を確保しない場合に発生してしまう、見かけ上転送が停止することを回避することにある。  【解決手段】ファイルシステム２０が、テープライブラリ５０にアクセスすることを制御する。キャッシュ３０にキャッシュされているデータの転送レートを、テープライブラリ５０においてアーカイブされていたデータにアクセスすることを開始できる起動の完了のタイミングに適合させる。テープライブラリにアクセスするリクエストを受信し、初期に予想される起動の完了のタイミングと、ファイルシステム中のキャッシュ上における転送されるべき残りデータ容量とから、初期データ転送レートの見積りをし、テープライブラリにアクセスすることを開始する。初期データ転送レートから変化させることを基本にして、データ転送レートを、テープライブラリにおいて予想される起動の完了のタイミングに適合させる。【選択図】  図１
2015022345.tif 000002
【特許請求の範囲】
【請求項１】
テープライブラリにアクセスすることを制御するファイルシステムにおいて、キャッシュされているデータの転送レートを、テープライブラリにおいてアーカイブされていたデータにアクセスすることを開始できる起動の完了のタイミングに適合させる方法であって、
ファイルシステムが、テープライブラリにアクセスするリクエストを受信するステップと、
ファイルシステムが、初期に予想される起動の完了のタイミングと、ファイルシステム中のキャッシュ上における転送されるべき残りデータ容量とから、初期データ転送レートの見積りをするステップと、
ファイルシステムが、テープライブラリにアクセスすることを開始するステップと、
ファイルシステムが、初期データ転送レートから変化させることを基本にして、データ転送レートを、テープライブラリにおいて予想される起動の完了のタイミングに適合させるステップとを有する、
方法。
【請求項２】
ファイルシステムが、初期データ転送レートから変化させることを基本にして、データ転送レートを、テープライブラリにおいて予想される起動の完了のタイミングに適合させるステップが、
初期データ転送レートを途中で更新することを含む、
請求項１に記載の方法。
【請求項３】
ファイルシステムが、初期データ転送レートから変化させることを基本にして、データ転送レートを、テープライブラリにおいて予想される起動の完了のタイミングに適合させるステップが、
ファイルシステムにおけるキャッシュ上の残りデータ容量の検査を更新することを含む、
請求項１に記載の方法。
【請求項４】
更新されたファイルシステムにおけるキャッシュ上の残りデータ容量が、基準となる残りデータ容量の７５％に達したことに応答して、初期データ転送レートを更新する、
請求項３に記載の方法。
【請求項５】
ファイルシステムが、初期データ転送レートから変化させることを基本にして、データ転送レートを、テープライブラリにおいて予想される起動の完了のタイミングに適合させるステップが、
さらに、
テープライブラリにおいてアーカイブされていたデータにアクセスすることを開始して、テープの頭出しが完了したかどうかを判断するステップと、
テープの頭出しが完了したものと判断される場合には、アーカイブされていたデータを読み出すステップと、
キャッシュ上における転送されるべき残りデータの送出が終了することに続けて、テープライブラリ側から読み出されてくるデータの送出へと、データを送出する対象を切換えるステップとを有する、
請求項１に記載の方法。
【請求項６】
ファイルシステムが、初期データ転送レートから変化させることを基本にして、データ転送レートを、テープライブラリにおいて予想される起動の完了のタイミングに適合させるステップが、
キャッシュ上における転送されるべき残りデータの転送を（見かけ上）停止してしまうことなく、テープライブラリ側から読み出されてくるデータの送出へと、データを送出する対象を連続的に切換えられることによって実行される、
請求項１に記載の方法。
【請求項７】
初期に予想される起動の完了のタイミングが、（１）カートリッジのアンロードの時間およびカートリッジのドライブからスロットへの移動時間、（２）カートリッジのストレージスロットからドライブへの移動時間およびカートリッジのロードの時間、並びに、（３）ロードされたカートリッジ内で対象となるファイルの先頭の、頭出しのための時間として、（１）＋（２）＋（３）の総和による予測時間によって求められる、
請求項１に記載の方法。
【請求項８】
キャッシュされているデータの転送レートを、テープライブラリにおいてアーカイブされていたデータにアクセスすることを開始できる起動の完了のタイミングに適合させることができる、テープライブラリにアクセスすることを制御する、ファイルシステムであって、
テープライブラリにアクセスするリクエストを受信し、
初期に予想される起動の完了のタイミングと、ファイルシステム中のキャッシュ上における転送されるべき残りデータ容量とから、初期データ転送レートの見積りをし、
テープライブラリにアクセスすることを開始し、
初期データ転送レートから変化させることを基本にして、データ転送レートを、テープライブラリにおいて予想される起動の完了のタイミングに適合させる、
ファイルシステム。
【請求項９】
請求項８のファイルシステムを含み、さらに、
このファイルシステムの制御によって、複数のカートリッジが複数のストレージスロットに収納されているテープライブラリ側から読み出されてくるデータをファイルシステムへ送出するためのドライブに対して、複数のカートリッジを選択的にロードしアンロードする、テープライブラリを含む、
ファイルシステムとテープライブラリとの組合せ。
【請求項１０】
テープライブラリにアクセスすることを制御するファイルシステムにおいて実行されるプログラムとして、キャッシュされているデータの転送レートを、テープライブラリにおいてアーカイブされていたデータにアクセスすることを開始できる起動の完了のタイミングに適合させるプログラムであって、
ファイルシステムが、テープライブラリにアクセスするリクエストを受信するステップと、
ファイルシステムが、初期に予想される起動の完了のタイミングと、ファイルシステム中のキャッシュ上における転送されるべき残りデータ容量とから、初期データ転送レートの見積りをするステップと、
ファイルシステムが、テープライブラリにアクセスすることを開始するステップと、
ファイルシステムが、初期データ転送レートから変化させることを基本にして、データ転送レートを、テープライブラリにおいて予想される起動の完了のタイミングに適合させるステップとが実行される、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テープライブラリのファイルシステムに関する。
【０００２】
より詳しくは、テープライブラリから読み出されるアーカイブされていたデータの転送と、キャッシュされているデータの転送とを、適合させる技術に関する。
【背景技術】
【０００３】
図１は、テープライブラリ、ファイルシステム、アプリケーションの関係を示す模式図である。
【０００４】
テープライブラリ５０においては、複数のテープがストレージされており、大容量のデータがアーカイブされている。
【０００５】
テープライブラリ５０全体の制御は、ファイルシステム２０を経由して行われるが、IBM Linear Tape File System (LTFS) Library Edition は、そのようなファイルシステムを代表するソフトウエア（製品）である。
【０００６】
ファイルシステム２０がテープライブラリ５０の制御を代行してくれるため、アプリケーション１０側でライブラリを意識する必要がなく、アプリケーション１０側のユーザにとっては、従来よりも容易にテープデバイス（ドライブ４０）を使用することができる。
【０００７】
また、テープが本来からもつ低コストで大容量という特性から、クラウドシステムのストレージとして使うというユースケースが考えられている。
【０００８】
アプリケーション１０がテープライブラリ５０にアクセスしたい場合、アプリケーション１０がテープライブラリ５０にアクセスするリクエストを出すと、ファイルシステム２０がそのリクエストを受信する。
【０００９】
テープライブラリ５０の動作の開始するタイミングは、ファイルシステム２０がそのリクエストを受信した時点となる。
【００１０】
一般的に、テープライブラリ５０は、要求されるカートリッジを移動させるために、テープデバイス（ドライブ４０）内にすでにロードされている不要なカートリッジをアンロードして、そして必要なカートリッジをロードする。
【００１１】
従って、テープデバイス（ドライブ４０）からアンロードしたり、テープデバイス（ドライブ４０）へロードするという物理的な移動作業を行うため、実際にテープカートリッジにアーカイブされているデータにアクセスするまでには、数十秒〜数分の時間が必要になる場合がある。
【００１２】
このようなアクセスリクエストから実際にアクセスが始まるまでの時間差を解消するため、例えば、ディスク上にファイルをキャッシュするという従来手法が考えられている。
【００１３】
ファイルシステム２０に含まれるキャッシュ３０がその役割を担う。キャッシュするためのディスクとしては、ハードディスクドライブ（ＨＤＤ）が一般的であろうが、半導体メモリ等の他の種類のメモリであってもよい。
【００１４】
図２は、十分に大きいキャッシュをもって、テープライブラリ動作による実際のアクセス開始までの時間差を隠蔽する従来手法を説明する模式図である。
【００１５】
この従来手法では、図２の（Ａ）のように、あるファイルへのアクセスがリクエストされた際に、あらかじめディスク上にキャッシュしておいた該当ファイルをデータ転送して送出していけばよい。
【００１６】
キャッシュ上のデータを送出することを続けていくと、図２の（Ｂ）のように、キャシュ上の残りデータ量は次第に減少していく。
【００１７】
テープライブラリの動作を完了させて、テープデバイス（ドライブ）からのデータ読み取りを開始するためには時間がかかるが、キャッシュにあるデータを全て送り出すまでには、時間的猶予がある。
【００１８】
従って、その時間的猶予を利用すると、その途中でテープデバイス（ドライブ）から読み出されたアーカイブされていたデータを受け入れてしまうことができる。
【００１９】
このようにして、図２の（Ｃ）のように、テープライブラリ動作による実際のアクセス開始までの時間差を隠蔽することができる。すなわち、データ転送を停止しないで済む状況を維持することができる。
【００２０】
この手法を用いると、あらかじめキャッシュしておくデータ量を多くすればするほど、より大きな時間差を隠蔽することができることが理解できる。
【００２１】
しかし、より多くのディスクスペースをキャッシュのために使用することになるので、全てのファイルについて、見込まれる最大の時間差を隠蔽できるだけのキャッシュデータを保存しようとすることは、巨大なキャッシュ容量を必要とすることを意味し、非現実的な状況が生じる。
【００２２】
図３は、小さいキャッシュをもって、テープライブラリ動作による実際のアクセス開始までの時間に対応する場合に生じ得る状況を説明する模式図である。
【００２３】
キャッシュが扱うことのできるデータ容量を小さくしてディスクスペースを節約しても、図３の（Ａ）〜図３の（Ｂ）〜図３の（Ｃ）のように、データ量が残っている限りは、データ転送を続けることができる。
【００２４】
しかし、図３の（Ｄ）のように、テープライブラリの動作の完了を待っている間に、見かけ上、キャシュされているデータが枯渇し、データ転送が停止してしまうという状況が起こり得る。
【００２５】
ここで、図３の（Ｅ）のように、データ転送が再開できるためには、読み出されたアーカイブされていたデータが、枯渇されている状態のキャッシュに届く必要がある。
【００２６】
すなわち、キャッシュのデータ量を小さくしてディスクスペースを節約してしまうと、ライブラリ動作が完了する前にキャッシュのデータを全て送出してしまうケースが起こり得る。
【００２７】
これを、アクセスしているユーザ側から見た場合、データの転送レートが、（１）ディスクからの読み出し転送レート  ⇒  （２）転送停止（ライブラリの動作完了待ち）  ⇒  （３）テープからの読み出し転送レート、という形で遷移することになる。
【００２８】
このとき、（２）の期間（図３の（Ｄ））は、見かけ上転送が停止したように見えるので、クラウド上のストレージをアクセスしているユーザは、クラウドとの接続に異常が発生したケースと見分けることができない。
【００２９】
また、同様に、転送レートを監視して接続の継続を確認しているような管理ソフトウエアが実行されていた場合は、間違って再接続の処理を開始してしまうかもしれない。
【００３０】
その場合、そもそも転送が開始されているべきであったにもかかわらず、再度接続処理をした後、転送を開始しなければならないことになり、ファイルシステムの処理全体で見た場合に非効率になってしまう。
【００３１】
つまり、キャッシュ上における転送されるべき残りデータの送出が終了することに続けて、テープライブラリ側から読み出されてくるデータの送出へと、データを送出する対象を連続的に切換えることが、キャッシュ容量を最大限生かすという点では、最適なタイミングでの適合ということになる。
【００３２】
特許文献１は、バックアップにかかる負荷を調節するもので、バックアップの際のデータ転送量などもパラメータになっている。しかし、制御する対象が、コンピュータ負荷を低減することであって、転送レートの維持ではない。
【００３３】
特許文献２および特許文献３は、ネットワークで転送するデータ量を制限するものであって、許可した転送レート以上の速度が出ないように調整するものである。
【００３４】
特許文献４は、ある帯域を確保するために転送レートの上限を定めるものである。
【００３５】
特許文献２〜４のいずれにおいても、本発明のように、転送レートがゼロにならないように調整するという技術的思想は見られない。
【００３６】
特許文献５は、ストリームデータを送信する際に、通知された目標量および遅延時間に基づいて送信速度を制御する。
【００３７】
特許文献６は、ＡＶ機器に蓄積された情報を転送する際に、情報蓄積装置とデータ転送装置との間の転送能力を実測し、実測結果に基づきデータ転送能力の推定値を演算することが記載されている。
【００３８】
特許文献５または特許文献６は、本発明において部分的に採用する要素技術を説明するにすぎず、参考程度のものにすぎない。
【先行技術文献】
【特許文献】
【００３９】
【特許文献１】特開２００９−２０５５４８
【特許文献２】特開２００４−４８６６２
【特許文献３】特表２００９−５２５６４１（国際公開 WO2007/090028 の国内公表）
【特許文献４】特表２０１０−５３８５８１（国際公開 WO2009/032259 の国内公表）
【特許文献５】特許第４５９６６９３号
【特許文献６】特開２００６−１８０３８３
【発明の概要】
【発明が解決しようとする課題】
【００４０】
本発明の目的は、十分に大きいキャッシュ領域を確保しない場合に発生してしまう、見かけ上転送が停止することを回避することにある。模式図に従うと、図３の（Ｄ）に示す状況を回避することにある。
【課題を解決するための手段】
【００４１】
あらかじめキャッシュしておいたデータを送出している間に、テープライブラリの動作を完了させるために、キャシュからのデータの送出速度を意図的に遅くする。
【００４２】
テープライブラリの動作の完了時間をおおまかに予測することはできるが、正確に予測することはできない。従って、おおまかな予測時間とキャッシュ上の残りデータ量から単位時間あたりのデータ転送量を、途中で更新することまでを含め、選択していく仕組みを用いる。
【発明の効果】
【００４３】
テープライブラリの動作が完了する前にキャッシュ上のデータが無くなることを回避することができる。
【００４４】
より少ないキャッシュスペースを用いながら、見かけ上の転送が停止してしまう状態を回避することができ、転送レートをモニタしている管理ソフトウエアやユーザに対して、転送が継続していることを認識させることができる。
【００４５】
特に、クラウドストレージのように、ユーザが直接物理デバイスを意識していない場合に本発明の手法は有効である。
【００４６】
それは、ＬＴＦＳが提供するファイルシステムと、ハードディスクドライブ（ＨＤＤ）が提供するファイルシステムとの区別が、通常ユーザからは区別できないので、ＬＴＦＳ特有の転送停止状態はより顕著になることで、異常として取り扱われる可能性も高くなり得るためである。
【図面の簡単な説明】
【００４７】
【図１】図１は、テープライブラリ、ファイルシステム、アプリケーションの関係を示す模式図である。
【図２】図２は、十分に大きいキャッシュをもって、テープライブラリ動作による実際のアクセス開始までの時間差を隠蔽する従来手法を説明する模式図である。
【図３】図３は、小さいキャッシュをもって、テープライブラリ動作による実際のアクセス開始までの時間に対応する場合に生じ得る状況を説明する模式図である。
【図４】図４は、本発明が考慮に入れているテープライブラリの動作について説明する模式図である。
【図５】図５は、本発明を実施するフローチャートである。
【図６】図６は、本発明を適用した計算によるシミュレーションのグラフである。
【発明を実施するための形態】
【００４８】
（テープライブラリの動作）
図４は、本発明が考慮に入れているテープライブラリの動作について説明する模式図である。
【００４９】
図４の（１）は、カートリッジのアンロードに伴う動作を説明する模式図である。
【００５０】
ドライブには、通常は１つのカートリッジがロードされた状態（占有された状態）になっているため、テープライブラリにアクセスするリクエストに対応して、アーカイブされているデータがそのロードされたカートリッジに含まれていない場合には、アンロードに伴う動作が必要となってくる。
【００５１】
すなわち、カートリッジをドライブからアンロードして、そのアンロードされたカートリッジをテープライブラリの所定のストレージスロットまで移動させる動作が必要となる。通常であれば、カートリッジはロボットアームなどによって移動される。
【００５２】
よって、図４の（１）では、「カートリッジのアンロードの時間」＋「カートリッジのドライブからストレージスロットへの移動時間」が、アンロードに伴う動作にかかる予測時間となる。
【００５３】
ドライブからストレージスロットまでの距離は一定ではないため、移動時間にはバラツキが生じることが理解できる。このため、平均予測時間などを導入する解決が一案となってくる。
【００５４】
図４の（２）は、カートリッジのロードに伴う動作を説明する模式図である。
【００５５】
ファイルシステムが、アーカイブされているデータが含まれているカートリッジを特定して、そのカートリッジの位置までロボットアームを移動させて、そのカートリッジをストレージスロットからドライブまで移動させ、カートリッジをドライブにロードする。
【００５６】
よって、図４の（２）では、「カートリッジのストレージスロットからドライブへの移動時間」＋「カートリッジのロードの時間」が、ロードに伴う動作にかかる予測時間となる。
【００５７】
図４の（３）は、ロードされたカートリッジ内で対象となるファイルの先頭の、頭出しに伴う動作を説明する模式図である。
【００５８】
カートリッジ内には、テープが巻き取られて収納されているため、テープライブラリにアクセスするリクエストに対応して、アーカイブされているデータがそのロードされたカートリッジ中のテープのどの位置にあるかを特定した上で、機械的にその位置まで巻き取ってヘッドで読み取る必要がある。
【００５９】
図示のものでは、リールがカートリッジに２つ入っているので、アンロード時に巻き戻す必要がなく、ロード時のテープの位置も可変なので、目的のデータへの時間も可変になってくる。
【００６０】
図示のものの他、カートリッジの種類によっては、リールが１つしかなく、ドライブ内のリールに巻き取られるものがある。かかる種類のカートリッジでは、アンロードするときには、必ず巻き戻さなければならず、結果として、ロードしてから目的のデータへの時間は毎回ほぼ同じになってくる。
【００６１】
よって、図４の（３）では、「ロードされたカートリッジ内で対象となるファイルの先頭の、頭出しのための時間」が、頭出しにかかる予測時間となる。
【００６２】
ファイルシステムが、ドライブから対象ファイルの物理的な位置情報を得ることが出来る場合には、予測時間の精度を高めることができるであろう。もっとも、予測時間を求める詳細については、当業者であれば容易に工夫することができるので、この明細書ではこれ以上の詳細な説明を省略する。
【００６３】
図４の「（１）＋（２）＋（３）」という総和を、平均的な頭出し時間として用いてもよい。
【００６４】
（転送レートの見積り）
転送を開始するときには、ファイルシステムが、初期に予想される起動の完了のタイミングと、ファイルシステム中のキャッシュ上における転送されるべき残りデータ容量とから、初期データ転送レートの見積り（計算）をする。
【００６５】
データ転送レートは、キャッシュ上における転送されるべき残りデータ容量／予測時間［（１）＋（２）＋（３）］  で見積り（計算）することができる。
【００６６】
キャッシュの残り容量が、例えば、７５％を下回った段階で、その時点の残りデータ容量／予測時間  に修正するべく、初期データ転送レートを更新してもよい。
【００６７】
さらに、予測時間［（１）＋（２）＋（３）］の各ステップのうちの、現在の動作が進んでいるステップ以降の予測時間を、見積り（計算）に使用してもよい。
【００６８】
例えば、実際のテープライブラリの動作が（２）まで進んでいたような場合には、予測時間は「（２）＋（３）」となり、また、この時点での残りデータ容量を次の見積り（計算）のための基準残り容量とすればよい。
【００６９】
さらに、キャッシュの残りデータ容量が、先の「基準残りデータ容量」の７５％になった段階で、同様にその時点の残り容量／予測時間に修正し、基準残りデータ容量を更新してもよい。
【００７０】
以降、このサイクルを繰返せばよい。
【００７１】
このような見積り（計算）例は一例にすぎず、例えば、より多様なパラメータを使用して、見かけ上の転送停止を起こさない範囲で、より高い転送レートを算出するアルゴリズムや、転送レートのバラツキを低減して、できるだけ一定速度を保つアルゴリズムなども、目的に応じて適用してもよいであろう。
【００７２】
図５は、本発明を実施するフローチャートである。
【００７３】
以上説明してきた転送レートの見積り（計算）は、このフローチャートにまとめて表すことができる。本発明の技術的思想としては、部分的に採用したものであってもよい。
【００７４】
図６は、本発明を適用した計算によるシミュレーションのグラフである。
【００７５】
従来技術における転送レートの変遷を点線で示し、本発明を適用した転送レートの変遷を実線で示している。
【００７６】
従来技術における転送レートでは、転送レートがゼロになり、見かけ上転送が停止してしまう状況が現われている。
【００７７】
すなわち、データの転送レートが、（１）ディスクからの読み出し転送レート  ⇒  （２）転送停止（ライブラリの動作完了待ち）  ⇒  （３）テープからの読み出し転送レート、という形で遷移している。
【００７８】
一方で、本発明に従えば、転送レートがゼロにならないように調整されており、ファイルシステムが、初期データ転送レートから変化させることを基本にして、データ転送レートを、テープライブラリにおいて予想される起動の完了のタイミングに適合させることに成功している。
【００７９】
本発明は、ファイルシステムにおいて実行される方法の発明、ファイルシステム、方法の各ステップが実行されるプログラムとしての態様も可能である。
【００８０】
また、ファイルシステムとテープライブラリとの組合せとしても、さらにはテープデバイス（ドライブ）を含めた大きなシステム構成としても提供することができる。
【図１】
2015022345.tif 000003
【図２】
2015022345.tif 000004
【図３】
2015022345.tif 000005
【図４】
2015022345.tif 000006
【図５】
2015022345.tif 000007
【図６】
2015022345.tif 000008