(57)【要約】【課題】排出対象のデータを可搬型記録媒体に排出する排出処理を効率的に実施する。【解決手段】複数のアクセス部４１のうちの書込データを可搬型記録媒体４３に書き込むアクセス部の書込速度を、当該書込データのサイズに応じて制御する制御部４４を有するストレージ装置４を制御する制御装置３であって、排出処理の実行要求に基づき、記憶装置２１に記憶されていない一以上の排出対象データのリストをデータサイズに基づきソートした第１リスト３１４と、前記記憶装置に記憶されている一以上の排出対象のデータのリストをデータサイズに基づきソートした第２リスト３１３とを生成し、ソート順に従い前記第１リスト内の排出対象データを前記制御部を介して格納先可搬型記録媒体から読み出して前記記憶装置に格納し、ソート順に従い前記第２リスト内の排出対象データを前記記憶装置から読み出して前記制御部を介して排出先可搬型記録媒体に書き込む。【選択図】図５
2019204164.tif 000002
【特許請求の範囲】
【請求項１】
複数のアクセス部のうちの書込データを可搬型記録媒体に書き込むアクセス部の書込速度を、当該書込データのサイズに応じて制御する制御部を有するストレージ装置と、
複数の可搬型記録媒体に格納されるデータを記憶する記憶装置と、
前記ストレージ装置及び前記記憶装置を制御する制御装置と、をそなえ、
前記制御装置は、
複数の排出対象のデータを排出対象の可搬型記録媒体へ排出する排出処理の実行要求を受信すると、前記実行要求に基づき、前記記憶装置に記憶されていない一以上の排出対象のデータのリストをデータサイズに基づきソートした第１リストと、前記記憶装置に記憶されている一以上の排出対象のデータのリストをデータサイズに基づきソートした第２リストと、を生成する生成部と、
前記第１リストのソート順に従って、前記制御部に対して、前記第１リスト内の排出対象のデータを当該データの格納先可搬型記録媒体から読み出す制御を行ない、読み出された排出対象のデータを前記記憶装置に格納する読出部と、
前記第２リストのソート順に従って、前記第２リスト内の排出対象のデータを前記記憶装置から読み出し、前記制御部に対して、読み出したデータを前記排出対象の可搬型記録媒体に書き込む制御を行なう書込部と、をそなえる、ストレージシステム。
【請求項２】
前記第１リスト及び前記第２リストの各々のソート順は、データサイズが大から小へと変動する順、データサイズが小から大へと変動する順、又は、データサイズが大から小へと変動する順と小から大へと変動する順とのそれぞれを繰り返す順、である、請求項１に記載のストレージシステム。
【請求項３】
前記読出部は、前記記憶装置に格納した排出対象のデータの情報を前記第１リストから前記第２リストに移動させ、
前記書込部は、前記第２リスト内の排出対象のデータを前記排出対象の可搬型記録媒体に書き込む制御を行なう都度、前記第２リストをデータサイズに基づきソートする、請求項１又は請求項２に記載のストレージシステム。
【請求項４】
前記第１リスト内の排出対象のデータの合計サイズと、前記第２リスト内の排出対象のデータの合計サイズとを比較し、比較結果に基づき、前記書込部による処理の実行タイミングを制御する実行制御部をそなえる、請求項３に記載のストレージシステム。
【請求項５】
前記実行制御部は、前記第１リストに係る合計サイズが、前記第２リストに係る合計サイズ以下になるまで、前記書込部による処理の実行を抑止する、請求項４に記載のストレージシステム。
【請求項６】
前記実行制御部は、前記第１リストに係る合計サイズが、前記第２リストに係る合計サイズ以下になると、前記読出部による処理と並行して、前記書込部による処理を実行させる、請求項４又は請求項５に記載のストレージシステム。
【請求項７】
複数のアクセス部のうちの書込データを可搬型記録媒体に書き込むアクセス部の書込速度を、当該書込データのサイズに応じて制御する制御部を有するストレージ装置と、複数の可搬型記録媒体に格納されるデータを記憶する記憶装置と、を制御する制御装置であって、
複数の排出対象のデータを排出対象の可搬型記録媒体へ排出する排出処理の実行要求を受信すると、前記実行要求に基づき、前記記憶装置に記憶されていない一以上の排出対象のデータのリストをデータサイズに基づきソートした第１リストと、前記記憶装置に記憶されている一以上の排出対象のデータのリストをデータサイズに基づきソートした第２リストと、を生成する生成部と、
前記第１リストのソート順に従って、前記制御部に対して、前記第１リスト内の排出対象のデータを当該データの格納先可搬型記録媒体から読み出す制御を行ない、読み出された排出対象のデータを前記記憶装置に格納する読出部と、
前記第２リストのソート順に従って、前記第２リスト内の排出対象のデータを前記記憶装置から読み出し、前記制御部に対して、読み出したデータを前記排出対象の可搬型記録媒体に書き込む制御を行なう書込部と、をそなえる、制御装置。
【請求項８】
複数のアクセス部のうちの書込データを可搬型記録媒体に書き込むアクセス部の書込速度を、当該書込データのサイズに応じて制御する制御部を有するストレージ装置と、複数の可搬型記録媒体に格納されるデータを記憶する記憶装置と、を制御するコンピュータに、
複数の排出対象のデータを排出対象の可搬型記録媒体へ排出する排出処理の実行要求を受信すると、前記実行要求に基づき、前記記憶装置に記憶されていない一以上の排出対象のデータのリストをデータサイズに基づきソートした第１リストと、前記記憶装置に記憶されている一以上の排出対象のデータのリストをデータサイズに基づきソートした第２リストと、を生成し、
前記第１リストのソート順に従って、前記制御部に対して、前記第１リスト内の排出対象のデータを当該データの格納先可搬型記録媒体から読み出す制御を行ない、読み出された排出対象のデータを前記記憶装置に格納し、
前記第２リストのソート順に従って、前記第２リスト内の排出対象のデータを前記記憶装置から読み出し、前記制御部に対して、読み出したデータを前記排出対象の可搬型記録媒体に書き込む制御を行なう、
処理を実行させる、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、制御装置、及び制御プログラムに関する。
【背景技術】
【０００２】
テープライブラリ装置と仮想テープ装置とをそなえる仮想テープシステムが知られている。テープライブラリ装置は磁気テープカートリッジや光ディスクカートリッジ等の物理ボリューム（Physical Volume；以下、ＰＶと表記する）を複数収納する。物理ボリュームは可搬型記録媒体の一例である。
【０００３】
仮想テープ装置はホスト装置とテープライブラリ装置との間に設けられ、各種サーバと、ホスト装置において認識可能なボリュームである論理ボリューム（Logical Volume；以下、ＬＶと表記する）のデータを格納するディスクアレイ装置とをそなえる。なお、ディスクアレイ装置は例えばＲＡＩＤ（Redundant Arrays of Inexpensive Disks）等の冗長化構成の記憶装置により実現されてよい。
【０００４】
仮想テープシステムは、ホスト装置に対して、仮想テープ装置内のディスクアレイ装置や各種サーバをテープライブラリとして仮想的に見せることで、ホスト装置にテープライブラリ装置が接続されているように認識させることができる。
【０００５】
仮想テープ装置は、ホスト装置で実行させる業務ＪＯＢによってＬＶのデータ書き込みが行なわれると、書込データをディスクアレイ装置に格納する。また、仮想テープ装置は、ホスト装置で動作する仮想テープ制御用のソフトウェアから、ＬＶの排出（ＥＸＰＯＲＴ；エクスポート）指示が発行されると、ディスクアレイ装置に格納されたＬＶを、テープライブラリ装置内のＰＶに書き込む。書き込み対象のＰＶとしては、例えば、予め登録（指定）された排出用のＰＶのうちの１本が選択される。この機能により、管理者は、排出が行なわれたＰＶをテープライブラリ装置から取り出し、データを仮想テープシステムの外部等に保管することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１８５６１８号公報
【特許文献２】特開２０１７−３３１１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
排出指示においては、複数のＬＶが排出対象として指定されることがある。複数のＬＶに対する排出処理は、排出対象のＬＶのデータサイズや仮想テープ装置におけるＬＶの状態等の要因によって、トータルの排出処理時間が延び、処理効率が低下する場合がある。
【０００８】
なお、仮想テープ装置におけるＬＶの状態としては、例えば、ＬＶが仮想テープ装置のディスクアレイ装置に格納されているか否か（オンキャッシュかオフキャッシュか）を示すキャッシュ状態が挙げられる。
【０００９】
１つの側面では、本発明は、排出対象のデータを可搬型記録媒体に排出する排出処理を効率的に実施することを目的とする。
【課題を解決するための手段】
【００１０】
１つの態様では、ストレージシステムは、ストレージ装置と、記憶装置と、制御装置と、をそなえてよい。前記ストレージ装置は、複数のアクセス部のうちの書込データを可搬型記録媒体に書き込むアクセス部の書込速度を、当該書込データのサイズに応じて制御する制御部を有してよい。前記記憶装置は、複数の可搬型記録媒体に格納されるデータを記憶してよい。前記制御装置は、前記ストレージ装置及び前記記憶装置を制御してよく、生成部と、読出部と、書込部と、をそなえてよい。前記生成部は、複数の排出対象のデータを排出対象の可搬型記録媒体へ排出する排出処理の実行要求を受信すると、前記実行要求に基づき、第１リストと、第２リストと、を生成してよい。前記第１リストは、前記記憶装置に記憶されていない一以上の排出対象のデータのリストをデータサイズに基づきソートしたリストであってよい。前記第２リストは、前記記憶装置に記憶されている一以上の排出対象のデータのリストをデータサイズに基づきソートしたリストであってよい。前記読出部は、前記第１リストのソート順に従って、前記制御部に対して、前記第１リスト内の排出対象のデータを当該データの格納先可搬型記録媒体から読み出す制御を行ない、読み出された排出対象のデータを前記記憶装置に格納してよい。前記書込部は、前記第２リストのソート順に従って、前記第２リスト内の排出対象のデータを前記記憶装置から読み出し、前記制御部に対して、読み出したデータを前記排出対象の可搬型記録媒体に書き込む制御を行なってよい。
【発明の効果】
【００１１】
１つの側面では、排出対象のデータを可搬型記録媒体に排出する排出処理を効率的に実施することができる。
【図面の簡単な説明】
【００１２】
【図１】ＰＶのデータフォーマットの一例を示す図である。
【図２】リポジショニングの有無に応じたテープマーク間のギャップを説明する図である。
【図３】一実施形態の一例としての仮想テープシステムの構成例を示すブロック図である。
【図４】図３に示す制御サーバ及びテープライブラリ装置のハードウェア構成例を示すブロック図である。
【図５】図３に示す制御サーバの機能構成例を示すブロック図である。
【図６】マスタＬＶリストの一例を示す図である。
【図７】一実施形態に係る制御サーバの動作例を示すフローチャートである。
【図８】エクスポート対象ＬＶリストの一例を示す図である。
【図９】オンキャッシュＬＶリストの一例を示す図である。
【図１０】オフキャッシュＬＶリストの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１４】
〔１〕一実施形態
上述のように、複数のＬＶに対する排出処理は、排出対象のＬＶのデータサイズや仮想テープ装置におけるＬＶの状態等の要因によって、処理効率が低下する場合がある。処理効率低下の要因としては、以下の（ｉ）及び（ii）に例示するものが挙げられる。
【００１５】
（ｉ）ＬＶのデータサイズに関連する要因。
テープライブラリ装置においてＰＶに対するデータの書き込み及び読み出しを行なうドライブ或いはコントローラは、「スピードマッチング」機能を有することがある。
【００１６】
「スピードマッチング」機能とは、データパターンに合わせてドライブの動作速度を最適化する機能である。例えば、スピードマッチング機能では、「リポジショニング」を考慮し、ドライブが、排出処理で使用されるＰＶに対して、サイズの大きいデータを高速で書き込み、サイズの小さいデータを低速で書き込む。
【００１７】
まず、「リポジショニング」について説明する。テープライブラリ装置で使用されるＰＶのデータフォーマットを図１に示す。図１に例示するように、ＰＶには、ＰＶの先頭に設定されるＰＶヘッダ、ＬＶの区切りを示すテープマーク（ＴＭ）、ＬＶごとに設定されるＬＶヘッダ、及び、ＬＶのデータを所定サイズ（図１の例では２５６バイト）で区切った１以上のＬＶブロックが含まれる。
【００１８】
ドライブは、各ＬＶのデータの終端にデータの書き込み完了を示すテープマークを書き込むと書き込み動作を停止する。
【００１９】
また、ドライブは、モータ等の駆動機構によりＰＶのテープを送りながら（走行させながら）、ヘッドによりテープにデータを書き込むが、駆動機構の動作速度、換言すればテープの走行速度が規定値になるまでは、ＰＶへのデータの書き込みを開始しない。
【００２０】
このため、ドライブがデータを書き終えて駆動機構の動作が停止すると、次のデータの書き込みを開始するまでに、駆動機構の動作速度を規定値まで上げる助走期間が発生する。従って、図２（ａ）に示すように、ＰＶに書き込まれるＬＶのデータ間に助走期間分の「隙間」が発生することがある。
【００２１】
「リポジショニング」は、このような「隙間」を最小限に抑えるために、次のデータの書き込みを開始する前に、駆動機構によりテープを書込方向とは逆の巻戻方向に戻す（換言すればヘッドの位置を巻き戻し方向へ戻す）処理である（図２（ｂ）参照）。ドライブを高速で動作させる場合、長い助走期間を取ることになるため、リポジショニングにかかる時間は長くなる。
【００２２】
例えば、小さいサイズの複数のＬＶを連続して書き込む場合のように、小さいサイズが連続するデータパターンでドライブを高速動作させた場合、長いリポジショニングが頻繁に発生する状態となり、トータルの書き込み性能が低下する。そこで、スピードマッチング機能は、小さいサイズが連続するデータパターンの場合、ドライブを低速動作させる。
【００２３】
一方、大きいサイズの複数のＬＶを連続して書き込む場合のように、大きいサイズが連続するデータパターンでドライブを低速動作させた場合、リポジショニングは短時間で済むが、書込時間が長くなる。そこで、スピードマッチング機能は、大きいサイズが連続するデータパターンの場合、ドライブを高速動作させる。
【００２４】
なお、排出処理では、仮想テープ装置は、ホスト装置から命令された排出対象のＬＶの指定順序（例えば排出対象のＬＶを指定するリストにおける記載順）に従って、テープライブラリ装置に対して、排出対象のＬＶをＰＶに書き込む指示を行なう。また、スピードマッチング機能による書き込み速度の切り替えをＬＶのデータサイズに応じて変更することは困難である。
【００２５】
このため、ＰＶに対して、サイズの大きい第１データを書き込んだ後にサイズの小さい複数の第２データを数回に亘って書き込む場合、第１データの高速書き込み後、第２データの複数の書き込みが高速になり、長いリポジショニング処理が発生することがある。
【００２６】
また、ＰＶに対して、サイズの小さい第２データを書き込んだ後にサイズの大きい第１データを数回に亘って書き込む場合、第２データの低速書き込み後、第１データの複数の書き込みが低速になり、書き込み時間が長くなってしまう。
【００２７】
（ii）ＬＶの状態に関連する要因。
仮想テープ装置は、排出処理の実行中に、排出対象となったＬＶがディスクアレイ装置上に存在しないオフキャッシュ状態の場合、排出対象のＬＶのデータをディスクアレイ装置上に格納するオンキャッシュ処理の実行後に、排出用ＰＶに書き込む処理を行なう。オンキャッシュ処理では、仮想テープ装置は、排出対象のＬＶのデータを格納するテープライブラリ装置上のＰＶからＬＶのデータを読み出し、ディスクアレイ装置上に格納することで、排出対象のＬＶをオンキャッシュ状態にする。
【００２８】
このため、オフキャッシュ状態のＬＶに対してオンキャッシュ処理を実行する間、排出用ＰＶに対する当該ＬＶの書き込み処理が停滞してしまう。
【００２９】
また、排出用ＰＶへの書き込みが停滞した場合、一時的に排出用ＰＶがアンマウントされ、ＬＶのオンキャッシュ処理完了後に再度排出用ＰＶのマウントが実行される。このため、排出用ＰＶに対するＬＶの書き込みを、オンキャッシュ処理の完了後にスムーズに再開することが困難になることがある。
【００３０】
そこで、一実施形態においては、ＬＶのデータサイズや状態に応じて、効率の良い排出処理をスケジュールする手法について説明する。当該手法により、トータルの排出処理時間を最適化することができる。
【００３１】
〔１−１〕仮想テープシステムの構成例
図３は一実施形態の一例としての仮想テープシステム１の構成例を示すブロック図である。仮想テープシステム１は、ストレージシステムの一例であり、図３に示すように、例示的に、仮想テープ装置２及びテープライブラリ装置４をそなえてよい。仮想テープ装置２には、ホスト装置５が接続されてよい。なお、仮想テープシステム１は、複数のテープライブラリ装置４をそなえてもよい。
【００３２】
仮想テープ装置２は、テープライブラリ装置４とホスト装置５との間に介設され、ホスト装置５からの要求に応じてテープライブラリ装置４に対する種々の制御を行なう。
【００３３】
図３に示すように、仮想テープ装置２は、例示的に、ディスクアレイ装置２１と、複数（図３の例では２台）の制御サーバ３−１及び３−２と、をそなえてよい。なお、以下の説明において、制御サーバ３−１及び３−２を区別しない場合には、単に制御サーバ３と表記する。
【００３４】
制御サーバ３は、制御装置の一例であり、仮想テープ装置２において種々の制御を行なう。一実施形態において、制御サーバ３は、ホスト装置５からＬＶ２２を指定した排出指示を受信すると、ディスクアレイ装置２１及びテープライブラリ装置４に対する排出処理の制御を行なう。
【００３５】
なお、制御サーバ３−１及び３−２のうちの一方（図３の例では制御サーバ３−１）はプライマリとして動作し、他方（図３の例では制御サーバ３−２）はプライマリに障害が発生した場合に動作するセカンダリ（スタンバイ）として待機してよい。例えば、セカンダリの制御サーバ３−２は、プライマリの制御サーバ３−１に異常が発生したときに自身がプライマリに昇格して制御サーバ３の処理を引き継いでよい。
【００３６】
ディスクアレイ装置２１は、複数のＰＶ４３に格納されるデータを記憶する記憶装置の一例であり、ホスト装置５とテープライブラリ装置４との間のアクセスに係るＬＶ２２のデータを記憶する。
【００３７】
ディスクアレイ装置２１は、複数の記憶部を含んでよく、これらの記憶部によりＲＡＩＤを構成してよい。記憶部としては、ＨＤＤ（Hard Disk Drive）等の磁気ディスク装置、或いは、ＳＳＤ（Solid State Drive）等の半導体ドライブ装置等が挙げられる。ディスクアレイ装置２１は、ＲＡＩＤ等のディスクグループを用いてファイルシステムを提供してもよい。
【００３８】
なお、図３において、便宜上図示を省略しているが、仮想テープ装置２は、上述した装置に加えて、例えば、制御サーバ３とは異なる機能を有するサーバ、通信装置、及び電源装置等の種々の装置をそなえてよい。
【００３９】
仮想テープ装置２内の少なくとも一部の装置間、及び、仮想テープ装置２とテープライブラリ装置４との間は、ＦＣ（Fibre Channel）ケーブル等を介したＳＡＮ（Storage Area Network）等のネットワークにより相互に通信可能に接続されてよい。また、仮想テープ装置２内の他の装置間は、ＬＡＮ（Local Area Network）等のネットワークにより相互に通信可能に接続されてよい。
【００４０】
テープライブラリ装置４は、ストレージ装置の一例であり、ＰＶ４３を複数収納し、仮想テープ装置２からの指示に応じてＰＶ４３に対するアクセスを行なう。なお、ＰＶ４３はデータを記憶する記録媒体の一例である。ＰＶ４３としては、ＬＴＯ（Linear Tape Open）カートリッジ等の磁気テープや、光ディスクカートリッジ等が挙げられる。
【００４１】
図３に示すように、テープライブラリ装置４は、例示的に、複数（図１の例では３台以上）のドライブ４１、２台以上（図１の例では２台）のロボット４２、及び、コントローラ４４をそなえてよい。
【００４２】
複数のドライブ４１は、可搬型記録媒体の一例としてのＰＶ４３に対するデータの記録及び再生等を行なう媒体処理装置の一例であり、ＰＶ４３にアクセスする複数のアクセス部の一例である。ロボット４２は、ＰＶ４３の媒体カートリッジのピックアップ、搬送、ドライブ４１への挿入等を行なう運搬装置の一例である。なお、ドライブ４１の台数やロボット４２の台数は例示であり、それぞれ任意の台数がテープライブラリ装置４にそなえられてよい。
【００４３】
コントローラ４４は、テープライブラリ装置４における種々の制御を行なう。例えば、コントローラ４４は、仮想テープ装置２から受信した指示（例えばコマンド）に応じて、ドライブ４１及びロボット４２の動作を制御してよく、コマンドに対する応答を仮想テープ装置２に送信してよい。
【００４４】
なお、一実施形態において、テープライブラリ装置４は複数のドライブ４１をそなえるため、コントローラ４４は、仮想テープ装置２からの指示に応じて、ＰＶ４３への書き込み及び読み出しが並行して実行されるように、複数のドライブ４１を制御してよい。
【００４５】
例えば、コントローラ４４は、互いに異なるＰＶ４３に対する複数の書込指示、複数の読出指示、又は、１以上の書込指示及び１以上の読出指示を受信した場合、空き状態である（利用されていない）複数のドライブ４１を利用してよい。
【００４６】
また、一実施形態において、コントローラ４４及びドライブ４１は、「リポジショニング」を考慮した「スピードマッチング」機能を有する（図２（ｂ）参照）。すなわち、コントローラ４４は、エクスポート処理で使用されるＰＶ４３に対して、サイズの大きいＬＶ２２のデータについてはドライブ４１を高速動作させ、サイズの小さいＬＶ２２のデータについてはドライブ４１を低速動作させるように制御する。なお、ＰＶ４３のデータフォーマットは図１に例示するものと同様であってよい。
【００４７】
このように、コントローラ４４は、複数のドライブ４１のうちの書込データをＰＶ４３に書き込むドライブ４１の書込速度を、当該書込データのサイズに応じて制御する制御部の一例である。
【００４８】
ホスト装置５は、仮想テープ装置２を介したテープライブラリ装置４へのアクセスを行なう情報処理装置の一例である。ホスト装置５としては、例えば、ＰＣ（Personal Computer）、サーバ、或いはメインフレーム等が挙げられる。
【００４９】
ホスト装置５では、例えば、仮想テープシステム１の運用に関する種々の制御を行なうソフトウェアが実行されてよい。当該ソフトウェアによる制御には、例えば、仮想テープ装置２におけるＬＶ２２のマウント・アンマウントに関する制御や、ＬＶ２２のエクスポート（排出）に関する制御等が含まれてよい。ホスト装置５と仮想テープ装置２との間は、例えば、ＬＡＮ等のネットワークにより相互に通信可能に接続されてよい。
【００５０】
〔１−２〕ハードウェア構成例
次に、図４を参照して、図３に示す仮想テープシステム１における制御サーバ３及びテープライブラリ装置４のハードウェア構成例について説明する。
【００５１】
図４に示すように、制御サーバ３は、例示的に、プロセッサ３ａ、メモリ３ｂ、記憶部３ｃ、テープＩＦ（Interface）３ｄ−１、入出力ＩＦ３ｄ−２、ホストＩＦ３ｄ−３、ディスクＩＦ３ｄ−４、及び読取部３ｅをそなえてよい。
【００５２】
プロセッサ３ａは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ３ａは、各ブロック３ｂ〜３ｅとバス３ｉで相互に通信可能に接続されてよい。プロセッサ３ａとしては、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ（例えばＦＰＧＡ）等の集積回路（ＩＣ；Integrated Circuit）が用いられてもよい。なお、ＣＰＵはCentral Processing Unitの略称であり、ＭＰＵはMicro Processing Unitの略称であり、ＤＳＰはDigital Signal Processorの略称である。また、ＡＳＩＣはApplication Specific Integrated Circuitの略称であり、ＰＬＤはProgrammable Logic Deviceの略称であり、ＦＰＧＡはField Programmable Gate Arrayの略称である。
【００５３】
メモリ３ｂは、種々のデータやプログラムを格納するハードウェアの一例である。メモリ３ｂとしては、揮発性メモリ、例えば、ＤＲＡＭ（Dynamic RAM）等のＲＡＭが挙げられる。なお、ＲＡＭはRandom Access Memoryの略称である。
【００５４】
記憶部３ｃは、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、記憶部３ｃは、制御サーバ３の二次記憶装置として使用されてよく、ＯＳ（Operating System）やファームウェア、アプリケーション等のプログラム、及び各種データが格納されてよい。記憶部３ｃとしては、例えば、ＨＤＤ等の磁気ディスク装置、ＳＳＤ等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、ＳＣＭ（Storage Class Memory）、ＲＯＭ（Read Only Memory）等が挙げられる。記憶部３ｃは、制御サーバ３の各種機能の全部若しくは一部を実現するプログラム３ｆを格納してもよい。
【００５５】
テープＩＦ３ｄ−１、入出力ＩＦ３ｄ−２、ホストＩＦ３ｄ−３、及びディスクＩＦ３ｄ−４は、それぞれ、テープライブラリ装置４、入出力装置３ｇ、ホスト装置５、及びディスクアレイ装置２１との間の接続及び通信の制御等を行なう通信ＩＦの一例である。なお、入出力装置３ｇは、例えば、マウス、キーボード、タッチパネル、操作ボタン等の入力部、及び、ディスプレイやプリンタ等の出力部、の一方又は双方を含んでよい。
【００５６】
なお、制御サーバ３は、管理者の管理端末との間の接続及び通信の制御等を行なう通信ＩＦをそなえてもよく、当該通信ＩＦを用いて、図示しないネットワークからプログラム３ｆをダウンロードしてもよい。
【００５７】
読取部３ｅは、記録媒体３ｈに記録されたデータやプログラムを読み出しプロセッサ３ａに出力するリーダの一例である。読取部３ｅは、記録媒体３ｈを接続又は挿入可能な接続端子又は装置を含んでもよい。読取部３ｅとしては、例えばＵＳＢ（Universal Serial Bus）等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、ＳＤカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体３ｈにはプログラム３ｆが格納されてもよい。
【００５８】
記録媒体３ｈとしては、例示的に、磁気／光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気／光ディスクとしては、例示的に、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク、ＨＶＤ（Holographic Versatile Disc）等が挙げられる。フラッシュメモリとしては、例示的に、ＵＳＢメモリやＳＤカード等の半導体メモリが挙げられる。なお、ＣＤとしては、例示的に、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ等が挙げられる。また、ＤＶＤとしては、例示的に、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等が挙げられる。
【００５９】
上述した制御サーバ３のハードウェア構成は例示である。従って、制御サーバ３内でのハードウェアの増減（例えば任意のブロックの追加や削除）、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
【００６０】
また、仮想テープ装置２がそなえる他の装置は、図４に示す制御サーバ３と同様のハードウェア構成をそなえてもよい。
【００６１】
図４に示すように、テープライブラリ装置４は、例示的に、上述した複数のドライブ４１（図４の例では４１−１〜４１−ｎ；ｎは２以上の整数）、複数のロボット４２、及びコントローラ４４に加えて、ＰＶ４３を格納する格納部４５をそなえてよい。
【００６２】
なお、コントローラ４４は、例えば、プロセッサ、メモリ、記憶部等のハードウェア構成をそなえてよく、これらの少なくとも一部が集積回路として実装されてもよい。
【００６３】
〔１−３〕機能構成例
次に、一実施形態に係る制御サーバ３の機能構成例を説明する。一実施形態に係る機能に着目すると、図５に示すように、制御サーバ３は、例示的に、メモリ部３１、エクスポート制御部３２、書込処理部３３、及び読出処理部３４をそなえてよい。
【００６４】
なお、メモリ部３１は、制御サーバ３のメモリ３ｂ及び記憶部３ｃ（図４参照）の少なくとも一方により実現されてよい。また、エクスポート制御部３２、書込処理部３３、及び読出処理部３４は、制御サーバ３のプロセッサ３ａがプログラム３ｆをメモリ３ｂに展開して実行することにより実現されてよい。
【００６５】
メモリ部３１は、マスタＬＶリスト３１１、エクスポート対象ＬＶリスト３１２、オンキャッシュＬＶリスト３１３、及びオフキャッシュＬＶリスト３１４の各情報を記憶する記憶領域を有してよい。
【００６６】
図６にマスタＬＶリスト３１１の一例を示す。図６に示すように、マスタＬＶリスト３１１は、例示的に、「ＬＶ名」、「キャッシュ状態」、「ＬＶデータ格納先ＰＶ名」、「ＬＶサイズ」、「エクスポート開始時刻」、及び「エクスポート回数」の項目を含んでよい。
【００６７】
ＬＶ名には、ホスト装置５が認識するＬＶ２２の名称が設定されてよく、キャッシュ状態には、オンキャッシュ状態を示す“ＯＮ”又はオフキャッシュを示す“ＯＦＦ”が設定されてよい。ＬＶデータ格納先ＰＶ名には、ＬＶ２２のデータを格納するＰＶ４３の名称が設定されてよく、ＬＶサイズには、当該ＬＶ２２のデータサイズが設定されてよい。
【００６８】
エクスポート開始時刻及びエクスポート回数には、ＬＶ２２ごとのエクスポート処理の開始時刻及びエクスポート処理の実行回数が設定されてよい。なお、エクスポート回数が２以上の場合、エクスポート開始時刻には、最新のエクスポート処理の開始時刻が設定されてもよいし、複数のエクスポート処理の各々の開始時刻が設定されてもよい。
【００６９】
マスタＬＶリスト３１１は、後述するエクスポート制御部３２、書込処理部３３、及び読出処理部３４による各処理によって、ＬＶ２２に関する情報が変化する都度、制御サーバ３により更新されてよい。
【００７０】
エクスポート制御部３２は、ホスト装置５からエクスポート指示を受信すると、エクスポート処理の実施に係る制御を行なう。当該制御には、書込処理部３３の制御、及び、読出処理部３４の制御、が含まれてよい。エクスポート制御部３２の詳細は後述する。
【００７１】
書込処理部３３は、ホスト装置５からのＬＶ２２のデータの書込指示を受信すると、書込対象のＬＶ２２のキャッシュ状態に応じた書込処理を行なう。
【００７２】
読出処理部３４は、ホスト装置５からＬＶ２２のデータの読出指示を受信する、又は、書込処理部３３から読出指示（オンキャッシュ指示）を受信すると、読出対象のＬＶ２２のキャッシュ状態に応じた読出処理を行なう。
【００７３】
ここで、ディスクアレイ装置２１がＬＶ２２のデータを記憶する場合、当該ＬＶ２２は「オンキャッシュ」の状態である。ホスト装置５からのアクセスに係るＬＶ２２がオンキャッシュの場合、仮想テープ装置２は、ディスクアレイ装置２１上のオンキャッシュのＬＶ２２に対して処理を行ない、ホスト装置５に応答を返してよい。
【００７４】
例えば、書込処理部３３は、ホスト装置５からの書込指示に係る書込対象のＬＶ２２がオンキャッシュの場合、ディスクアレイ装置２１内のＬＶ２２に対してデータを書き込む。また、読出処理部３４は、ホスト装置５からの読出指示に係る読出対象のＬＶ２２がオンキャッシュの場合、ディスクアレイ装置２１内のＬＶ２２からデータを読み出す。
【００７５】
一方、ディスクアレイ装置２１に存在しないＬＶ２２は「オフキャッシュ」の状態である。ホスト装置５からのアクセスに係るＬＶ２２がオフキャッシュの場合、仮想テープ装置２は、当該ＬＶ２２に係るデータをテープライブラリ装置４のＰＶ４３からディスクアレイ装置２１上に読み出してよい。
【００７６】
このように、オフキャッシュのＬＶ２２をオンキャッシュにした上で、仮想テープ装置２は、ディスクアレイ装置２１上のＬＶ２２に対して処理を行ない、ホスト装置５に応答を返してよい。オフキャッシュのＬＶ２２のデータをテープライブラリ装置４のＰＶ４３からディスクアレイ装置２１に読み出す処理を「オンキャッシュ処理」又は「リコール」という。
【００７７】
例えば、読出処理部３４は、ホスト装置５からの読出指示に係る読出対象のＬＶ２２がオフキャッシュの場合、当該ＬＶ２２に係るデータをテープライブラリ装置４のＰＶ４３からディスクアレイ装置２１上に読み出すオンキャッシュ処理を行なう。そして、オンキャッシュ処理によりオンキャッシュとなったＬＶ２２に対して、読出処理を行なう。
【００７８】
また、書込処理部３３は、ホスト装置５からの書込指示に係る書込対象のＬＶ２２がオフキャッシュの場合、当該ＬＶ２２に対するオンキャッシュ処理の指示（読出指示）を読出処理部３４に発行する。そして、書込処理部３３は、オンキャッシュ処理によりオンキャッシュとなったＬＶ２２に対して、書込処理を行なう。
【００７９】
また、一実施形態に係る読出処理部３４は、エクスポート制御部３２から、エクスポート処理に伴うテープライブラリ装置４内のＰＶ４３からのＬＶ２２のデータの読出指示（オンキャッシュ指示）を受信する。エクスポート制御部３２から読出指示を受信すると、読出処理部３４は、読出指示に係るＬＶ２２のオンキャッシュ処理を実行する。
【００８０】
例えば、読出処理部３４は、テープライブラリ装置４のコントローラ４４に、ＰＶ４３からの読出対象のＬＶ４６のデータの読み出しを指示し、取得した当該ＬＶ４６のデータをＬＶ２２としてディスクアレイ装置２１に格納する（図５の矢印（１）参照）。なお、コントローラ４４は、ＬＶ４６のデータを格納するオンキャッシュ用のＰＶ４３−１を空きドライブ４１−１にセットし、ドライブ４１−１により読出対象のＬＶ４６のデータを読み出して、読み出したデータを読出処理部３４に応答してよい。
【００８１】
さらに、一実施形態に係る書込処理部３３は、エクスポート制御部３２から、エクスポート処理に伴うテープライブラリ装置４内のＰＶ４３に対するＬＶ２２のデータの書込指示を受信する。エクスポート制御部３２から書込指示を受信すると、書込処理部３３は、ディスクアレイ装置２１から書込対象のＬＶ２２を読み出し、テープライブラリ装置４内のＰＶ４３に対する当該ＬＶ２２のデータの書込処理を行なう。
【００８２】
例えば、書込処理部３３は、テープライブラリ装置４のコントローラ４４に対して、エクスポート対象のＰＶ４３に対するＬＶ２２のデータの書き込みを指示する（図５の矢印（２）参照）。なお、コントローラ４４は、空きドライブ４１−２にエクスポート用のＰＶ４３−２をセットし、ドライブ４１−２により書込対象となる１以上のＬＶ２２のデータをＰＶ４３−２に書き込み、書込結果を書込処理部３３に応答してよい。
【００８３】
〔１−４〕エクスポート処理の説明
エクスポート制御部３２は、エクスポート対象のＬＶ２２のリストをパラメータとして含むエクスポート指示をホスト装置５から受信すると、エクスポート処理を行なう。以下、一実施形態に係るエクスポート処理について説明する。なお、エクスポート処理は、仮想テープ装置２の独自形式のフォーマットに基づくエクスポート処理であってもよいし、ＳＬ（Standard Label）形式でエクスポートを行なうネイティブエクスポート（Native Export）処理であってもよい。
【００８４】
例えば、エクスポート制御部３２は、エクスポート指示に含まれるエクスポート対象のＬＶ２２のリストと、マスタＬＶリスト３１１とに基づいて、オンキャッシュ状態であるＬＶ２２のリストと、オフキャッシュ状態であるＬＶ２２のリストとを生成する。
【００８５】
なお、エクスポート処理において、エクスポート対象のＰＶ４３に対するＬＶ２２の書込順序は、便宜上、ホスト装置５からの命令順となる場合が多いが、書込順序が当該命令順に制限されるわけではない。換言すれば、命令順に書き込むことは必須ではない。
【００８６】
そこで、エクスポート制御部３２は、書込処理の対象となるオンキャッシュ状態のＬＶ２２のリスト、及び、読出処理の対象となるオフキャッシュ状態のＬＶ２２のリストを、ＬＶサイズをキーとしてソートする。
【００８７】
これにより、後述する書込処理部３３による書込処理において、ＰＶ４３へのＬＶ２２の書込速度の大きな変動が抑止される。このため、書込速度を緩やかに変化させることができ、リポジショニングによる書込処理の遅延を最小限に抑えることができる。
【００８８】
次いで、エクスポート制御部３２は、オンキャッシュ状態のＬＶ２２の総データ量Ｓｏｎと、オフキャッシュ状態のＬＶ２２の総データ量Ｓｏｆｆとを比較する。ＳｏｆｆがＳｏｎよりも大きい場合、エクスポート制御部３２は、ＳｏｎがＳｏｆｆ以上になるまで、読出処理部３４に対して、リストの先頭から順にＬＶ２２のデータをＰＶ４３から読み出してディスクアレイ装置２１に格納することを指示する。
【００８９】
このように、読出処理部３４は、ＳｏｆｆがＳｏｎよりも大きい間はオンキャッシュ処理を優先して実施することで、オフキャッシュ状態のＬＶ２２のオンキャッシュ処理が、エクスポート対象のＰＶ４３への書込処理よりも先に完了する状態にする。
【００９０】
ＳｏｎがＳｏｆｆ以上になると、エクスポート制御部３２は、書込処理部３３及び読出処理部３４に対して、エクスポート対象のＰＶ４３への書込処理及びオフキャッシュ状態のＬＶ２２のオンキャッシュ処理、を並行して実行させる。
【００９１】
例えば、エクスポート制御部３２は、書込処理部３３に対して、オンキャッシュのリストの先頭から順にＬＶ２２のデータをエクスポート対象のＰＶ４３に書き込むことを指示する。また、エクスポート制御部３２は、書込処理と並行して、読出処理部３４に対して、リストの先頭から順にＬＶ２２のデータをＰＶ４３から読み出してディスクアレイ装置２１に格納することを指示する。
【００９２】
なお、エクスポート制御部３２は、オフキャッシュ状態のＬＶ２２が読出処理によりオンキャッシュ状態になった場合、当該ＬＶ２２をオフキャッシュのリストからオンキャッシュのリストに移動させ、オンキャッシュのリストを再度ソートする。
【００９３】
このように、テープライブラリ装置４において複数のドライブ４１が使用可能である場合、オンキャッシュ状態のＬＶ２２をＰＶ４３に書き込む書込処理と、オフキャッシュ状態のＬＶ２２をＰＶ４３から読み出す読出処理とは、並行して実施可能である。書込処理と読出処理との並行実施は、ＳｏｎがＳｏｆｆ以上の場合に実行されるため、オフキャッシュ状態の全ＬＶ２２のオンキャッシュ処理が、エクスポート対象の全ＬＶ２２の書込処理よりも先に終了することが期待できる。従って、オンキャッシュ処理中（ＰＶ４３からＬＶ２２のデータの読出処理中）に、エクスポート対象のＰＶ４３への書込処理において、オンキャッシュ処理待ちによる書込処理の停滞が発生することを抑制できる。
【００９４】
〔１−５〕動作例
次に、図７を参照して、上述の如く構成された仮想テープシステム１（制御サーバ３）の動作例の説明を行なう。
【００９５】
エクスポート対象のＬＶ２２のリスト（例えばＬＶ名の一覧）をパラメータとしたエクスポート指示をホスト装置５から受信すると、エクスポート制御部３２は、エクスポート処理を実行する。エクスポート処理において、エクスポート制御部３２は、受信したリストに基づいて、エクスポート対象ＬＶリスト３１２（以下、「Ｌｅ」と表記する場合がある）を作成する（ステップＳ１）。
【００９６】
図８は、エクスポート対象ＬＶリスト３１２の一例を示す図である。図８に示すように、リストＬｅは、例示的に、エクスポート対象のＬＶ２２の「ＬＶ名」、当該ＬＶ２２の「キャッシュ状態」、「ＬＶデータ格納先ＰＶ」、及び「ＬＶサイズ」の項目を含んでよい。
【００９７】
例えば、エクスポート制御部３２は、マスタＬＶリスト３１１から、エクスポート指示に含まれるエクスポート対象のＬＶ名に対応するエントリの情報を抽出することで、リストＬｅを作成してよい。マスタＬＶリスト３１１から情報される情報としては、例えば、「キャッシュ状態」、「ＬＶデータ格納先ＰＶ」、及び「ＬＶサイズ」の情報が挙げられる。
【００９８】
図７の説明に戻り、エクスポート制御部３２は、作成したリストＬｅにオフキャッシュ状態のＬＶ２２が存在するか否かを判定する（ステップＳ２）。
【００９９】
リストＬｅにオフキャッシュ状態のＬＶ２２が存在する場合（ステップＳ２でＹｅｓ）、エクスポート制御部３２は、リストＬｅに含まれるＬＶ２２をキャッシュ状態に基づき分類する。そして、エクスポート制御部３２は、分類結果に基づき、オンキャッシュＬＶリスト３１３（以下、「Ｌｏｎ」と表記する場合がある）及びオフキャッシュＬＶリスト３１４（以下、「Ｌｏｆｆ」と表記する場合がある）を作成する。
【０１００】
例えば、エクスポート制御部３２は、リストＬｅからオフキャッシュ状態のＬＶ２２のエントリを抽出して、リストＬｏｆｆを作成し、当該リストＬｏｆｆ内の総ＬＶサイズＳｏｆｆを取得する（ステップＳ３）。また、エクスポート制御部３２は、作成したリストＬｏｆｆ内のエントリを、ＬＶサイズ順にソートする（ステップＳ４）。このように、リストＬｏｆｆは、ディスクアレイ装置２１に記憶されていない１以上の排出対象のデータのリストをデータサイズに基づきソートした第１リストの一例である。
【０１０１】
また、エクスポート制御部３２は、リストＬｅからオンキャッシュ状態のＬＶ２２のエントリを抽出して、リストＬｏｎを作成し、当該リストＬｏｎ内の総ＬＶサイズＳｏｎを取得する（ステップＳ５）。また、エクスポート制御部３２は、作成したリストＬｏｎのエントリを、ＬＶサイズ順にソートする（ステップＳ６）。このように、リストＬｏｎは、ディスクアレイ装置２１に記憶されている１以上の排出対象のデータのリストをデータサイズに基づきソートした第２リストの一例である。
【０１０２】
なお、ステップＳ３及びＳ５において、エクスポート制御部３２は、リストＬｏｆｆ又はＬｏｎ内の全てのエントリのＬＶサイズを合計することにより、総ＬＶサイズＳｏｆｆ又はＳｏｎを算出してよい。ステップＳ５及びＳ６は、ステップＳ３及びＳ４よりも前に実施されてもよいし、複数のプロセスにより、ステップＳ３及びＳ４と並行して実行されてもよい。
【０１０３】
以上のように、エクスポート制御部３２は、複数の排出対象のデータを排出対象のＰＶ４３へ排出する排出処理の実行要求を受信すると、実行要求に基づき、第１リストと第２リストとを生成する生成部の一例である。
【０１０４】
図９及び図１０は、それぞれ、ソートされたオンキャッシュＬＶリスト３１３及びオフキャッシュＬＶリスト３１４の一例を示す図である。図９に例示するように、リストＬｏｎは、リストＬｅのうちのキャッシュ状態が“ＯＮ”であるＬＶ２２のエントリを抽出し、ＬＶサイズをキーに降順でソートしたリストであってよい。また、図１０に例示するように、Ｌｏｆｆは、Ｌｅのうちのキャッシュ状態が“ＯＦＦ”であるＬＶ２２のエントリを抽出し、ＬＶサイズをキーに降順でソートしたリストであってよい。
【０１０５】
なお、図９及び図１０の例では、ＬＶサイズが大から小へと変動する順（すなわち降順）でエントリがソートされているが、これに限定されるものではなく、エントリは、ＬＶサイズが小から大へと変動する順（すなわち降順）でソートされてもよい。
【０１０６】
或いは、エントリは、ＬＶサイズが大から小へと変動する順と小から大へと変動する順とのそれぞれを繰り返すようにソートされてもよい。一例として、エントリは、ＬＶサイズが、リストの先頭及び末尾では小さく、リストの中央では大きくなるようにソートされてもよいし、或いは、リストの先頭及び末端では大きく、リストの中央では小さくなるようにソートされてもよい。また、他の例として、エントリは、ＬＶサイズが、リストの先頭から末尾に向かって「波形」を描くように（大から小、及び、小から大、を繰り返すように）ソートされてもよい。
【０１０７】
このように、エクスポート制御部３２は、Ｌｏｎ及びＬｏｆｆの各々に対して、ＬＶサイズが緩やかに変化するようにソートを行なう。これにより、後述するように、Ｌｏｎに基づくＰＶ４３へのＬＶ２２の書込処理において、ＬＶサイズによるＰＶ４３へのＬＶ２２の書込速度の大きな変動を抑止できる。このため、書込速度を緩やかに変化させることができるため、リポジショニングによる書込処理の遅延を最小限に抑えることができる。
【０１０８】
なお、エクスポート制御部３２は、Ｌｏｎ及びＬｏｆｆのソートに上記のいずれのソート規則を用いてもよく、ＬｏｎとＬｏｆｆとで同じソート規則を用いてよい。ＬｏｎとＬｏｆｆとで同じソート規則を用いることにより、後述するステップＳ９及びＳ１５の処理でＬｏｎに追加される、オンキャッシュ処理が実施されたＬＶ２２のＬＶサイズと、Ｌｏｎ内のＬＶ２２のＬＶサイズとの間の差分を小さくできる。このため、オンキャッシュ処理が実施された後にも、書込速度の大きな変動を抑止することができる。
【０１０９】
図７の説明に戻り、エクスポート制御部３２は、Ｌｏｎ及びＬｏｆｆの各々について取得した総ＬＶサイズＳｏｎ及びＳｏｆｆを比較し、Ｓｏｆｆ＜Ｓｏｎか否かを判定する（ステップＳ７）。Ｓｏｆｆ＜Ｓｏｎではない場合（ステップＳ７でＮｏ）、エクスポート制御部３２は、読出処理部３４に対してオンキャッシュ処理の実行を指示する。
【０１１０】
例えば、エクスポート制御部３２は、リストＬｏｆｆの先頭のエントリのＬＶ名及びＬＶデータ格納先ＰＶ名（図１０参照）を取得し、ＬＶデータ格納先ＰＶ名からＬＶ名のＬＶ４６を読み出す読出指示（オンキャッシュ指示）を読出処理部３４に発行する。
【０１１１】
読出指示を受けた読出処理部３４は、テープライブラリ装置４のコントローラ４４に対して、ＬＶデータ格納先ＰＶ名（換言すれば、オンキャッシュ用ＰＶ４３）からＬＶ名のＬＶ４６のデータの読み出しを指示する。そして、読出処理部３４は、コントローラ４４から応答されたＬＶ４６のデータをＬＶ２２としてディスクアレイ装置２１に書き込み（ステップＳ８）、エクスポート制御部３２にオンキャッシュ処理の完了を応答する。
【０１１２】
エクスポート制御部３２は、完了の応答を受けると、当該ＬＶ２２のエントリをリストＬｏｆｆからリストＬｏｎに移動（リストＬｏｆｆから削除するとともにリストＬｏｎに追加）し（ステップＳ９）、処理がステップＳ６に移行する。ステップＳ９において、リストＬｏｆｆにエントリ（エクスポート対象且つオフキャッシュ状態のＬＶ２２）が存在しなくなった場合、エクスポート制御部３２は、リストＬｏｆｆを削除してもよい。
【０１１３】
なお、ステップＳ９から移行したステップＳ６において、エクスポート制御部３２は、ステップＳ９でエントリが追加された後のＬｏｎをＬＶサイズ順にソートする。このように、ステップＳ６〜Ｓ９において、Ｓｏｆｆ＜Ｓｏｎになるまで、リストＬｏｆｆからＬＶ２２が１つずつ選択され、選択されたＬＶ２２のオンキャッシュ処理が行なわれる。
【０１１４】
換言すれば、エクスポート制御部３２は、Ｌｏｆｆに係る合計サイズが、Ｌｏｎに係る合計サイズ以下になるまで、書込処理の実行を抑止するといえる。このように、エクスポート制御部３２は、Ｌｏｆｆ内の排出対象のデータの合計サイズと、Ｌｏｎ内の排出対象のデータの合計サイズとを比較し、比較結果に基づき、書込処理の実行タイミングを制御する実行制御部の一例である。
【０１１５】
ステップＳ７において、Ｓｏｆｆ＜Ｓｏｎの場合（ステップＳ７でＹｅｓ）、処理がステップＳ１０に移行する。ステップＳ１０では、エクスポート制御部３２は、オフキャッシュ状態のＬＶ２２が存在するか否かを判定する。例えば、エクスポート制御部３２は、ステップＳ１０の処理として、リストＬｏｆｆが存在するか否か、或いは、リストＬｏｆｆ内にエントリが存在するか否か、を判定してよい。
【０１１６】
オフキャッシュ状態のＬＶ２２が存在する場合（ステップＳ１０でＹｅｓ）、処理がステップＳ１３（ステップＳ１３〜Ｓ１６）の読出処理（オンキャッシュ処理）、及び、ステップＳ１７（ステップＳ１７〜Ｓ２１）の書込処理、の双方に移行する。
【０１１７】
エクスポート制御部３２は、ステップＳ１３（ステップＳ１３〜Ｓ１６）の読出処理、及び、ステップＳ１７（ステップＳ１７〜Ｓ２１）を並行して実行してよい。換言すれば、エクスポート制御部３２は、Ｌｏｆｆに係る合計サイズが、Ｌｏｎに係る合計サイズ以下になると、読出処理と並行して、書込処理を実行するといえる。
【０１１８】
読出処理と書込処理とを並行して実施することにより、オンキャッシュ処理待ちによるＰＶ４３への書き込み停滞の回避、及び、ドライブ４１等のリソースの有効活用等を図ることができる。
【０１１９】
また、Ｌｏｎに係る合計サイズがＬｏｆｆに係る合計サイズを上回るまで、読出処理を実行することにより、事前に十分な量のエクスポート対象のＬＶ２２をオンキャッシュ状態にすることができる。このように、読出処理が書込処理よりも先に終わる状態を作ることにより、オンキャッシュ処理待ちによりエクスポート用のＰＶ４３がアンマウトされることを回避することができる。
【０１２０】
一方、オフキャッシュ状態のＬＶ２２が存在しない場合（ステップＳ１０でＮｏ）、処理がステップＳ１７（ステップＳ１７〜Ｓ２１）の書込処理に移行する。
【０１２１】
なお、ステップＳ２において、リストＬｅにオフキャッシュ状態のＬＶ２２が存在しない場合（ステップＳ２でＮｏ）、エクスポート制御部３２は、ステップＳ５及びＳ６と同様のステップＳ１１及びＳ１２の処理を実行し、処理がステップＳ１７に移行する。例えば、エクスポート制御部３２は、ステップＳ１１において、リストＬｅからオンキャッシュ状態のＬＶ２２のエントリ（この場合、リストＬｅ内の全エントリ）を抽出して、リストＬｏｎを作成し、当該リストＬｏｎ内の総ＬＶサイズＳｏｎを取得する。また、エクスポート制御部３２は、ステップＳ１２において、作成したリストＬｏｎのエントリを、ＬＶサイズ順にソートする。
【０１２２】
読出処理において、エクスポート制御部３２は、リストＬｏｆｆから処理対象のＬＶ２２を１つ選択する（ステップＳ１３）。例えば、エクスポート制御部３２は、リストＬｏｆｆの先頭のエントリを選択してよい。
【０１２３】
次いで、エクスポート制御部３２は、選択したエントリのＬＶ名及びＬＶデータ格納先ＰＶ名（図１０参照）を取得し、ＬＶデータ格納先ＰＶ名からＬＶ名のＬＶ４６を読み出す読出指示（オンキャッシュ指示）を読出処理部３４に発行する。
【０１２４】
読出指示を受けた読出処理部３４は、テープライブラリ装置４のコントローラ４４に対して、ＬＶデータ格納先ＰＶ名（換言すれば、オンキャッシュ用ＰＶ４３）からＬＶ名のＬＶ４６のデータの読み出しを指示する。そして、読出処理部３４は、コントローラ４４から応答されたＬＶ４６のデータをＬＶ２２としてディスクアレイ装置２１に書き込み（ステップＳ１４）、エクスポート制御部３２にオンキャッシュ処理の完了を応答する。
【０１２５】
エクスポート制御部３２は、完了の応答を受けると、当該ＬＶ２２のエントリをリストＬｏｆｆからリストＬｏｎに移動し（ステップＳ１５）、処理がステップＳ１６に移行する。なお、リストＬｏｆｆにエントリが存在しなくなった場合、エクスポート制御部３２は、ステップＳ９と同様にリストＬｏｆｆを削除してもよい。
【０１２６】
ステップＳ１６において、エクスポート制御部３２は、オフキャッシュ状態のＬＶ２２が存在するか否か（例えば、リストＬｏｆｆが存在するか否か、或いは、リストＬｏｆｆ内にエントリが存在するか否か）を判定する。
【０１２７】
オフキャッシュ状態のＬＶ２２が存在する場合（ステップＳ１６でＹｅｓ）、処理がステップＳ１３に移行する。一方、オフキャッシュ状態のＬＶ２２が存在しない場合（ステップＳ１６でＮｏ）、読出処理が終了し、エクスポート制御部３２は、読出処理及び書込処理の双方の終了を待ち合わせて（ステップＳ２２）、エクスポート処理が終了する。
【０１２８】
このように、ステップＳ８及びＳ９、並びに、ステップＳ１３〜Ｓ１６のそれぞれにおいて読出処理を行なうエクスポート制御部３２及び読出処理部３４は、以下の処理を行なう読出部の一例である。当該処理は、Ｌｏｆｆのソート順に従って、テープライブラリ装置４に対して、Ｌｏｆｆ内の排出対象のデータを当該データの格納先ＰＶ４３から読み出す制御を行ない、読み出された排出対象のデータをディスクアレイ装置２１に格納する処理を含んでよい。
【０１２９】
書込処理において、エクスポート制御部３２は、リストＬｏｎから処理対象のＬＶ２２を１つ選択する（ステップＳ１７）。例えば、エクスポート制御部３２は、リストＬｏｎの先頭のエントリを選択してよい。
【０１３０】
次いで、エクスポート制御部３２は、選択したエントリのＬＶ名（図９参照）を取得し、ＬＶ名のＬＶ２２のデータをエクスポート対象のＰＶ４３に書き込む書込指示を書込処理部３３に発行する。
【０１３１】
書込指示を受けた書込処理部３３は、テープライブラリ装置４のコントローラ４４に対して、エクスポート用のＰＶ４３に対するＬＶ名のＬＶ２２のデータの書き込みを指示する（ステップＳ１８）。そして、書込処理部３３は、コントローラ４４から書き込み完了の応答を受信すると、エクスポート制御部３２に書込処理の完了を応答する。
【０１３２】
エクスポート制御部３２は、完了の応答を受けると、当該ＬＶ２２のエントリをリストＬｏｎから削除する（ステップＳ１９）。なお、リストＬｏｎにエントリが存在しなくなった場合、エクスポート制御部３２は、リストＬｏｎを削除してもよい。
【０１３３】
また、書込処理中にオンキャッシュ処理の完了したＬＶ２２がリストＬｏｎに追加されている可能性があるため、エクスポート制御部３２は、リストＬｏｎをＬＶサイズ順にソートし（ステップＳ２０）、処理がステップＳ２１に移行する。このように、エクスポート制御部３２及び書込処理部３３は、Ｌｏｎ内の排出対象のデータを排出対象のＰＶ４３に書き込む制御を行なう都度、Ｌｏｎをデータサイズに基づきソートする。
【０１３４】
書込処理において、ＬＶ２２をデータサイズ順に処理することにより、ドライブ４１において、書込速度が大幅に変動することを抑制でき、リポジショニングによるエクスポート処理遅延の影響を最小限に抑えることができる。
【０１３５】
ステップＳ２１において、エクスポート制御部３２は、オンキャッシュ状態のＬＶ２２が存在するか否か（例えば、リストＬｏｎが存在するか否か、或いは、リストＬｏｎ内にエントリが存在するか否か）を判定する。
【０１３６】
オンキャッシュ状態のＬＶ２２が存在する場合（ステップＳ２１でＹｅｓ）、処理がステップＳ１７に移行する。一方、オンキャッシュ状態のＬＶ２２が存在しない場合（ステップＳ２１でＮｏ）、書込処理が終了し、エクスポート制御部３２は、読出処理及び書込処理の双方の終了を待ち合わせて（ステップＳ２２）、エクスポート処理が終了する。
【０１３７】
このように、ステップＳ１７〜Ｓ２１において書込処理を行なうエクスポート制御部３２及び書込処理部３３は、以下の処理を行なう書込部の一例である。当該処理は、Ｌｏｎのソート順に従って、Ｌｏｎ内の排出対象のデータをディスクアレイ装置２１から読み出し、テープライブラリ装置４に対して、読み出したデータを排出対象のＰＶ４３に書き込む制御を行なう、処理を含んでよい。
【０１３８】
なお、上述した説明では、コントローラ４４が、読出処理及び書込処理において、それぞれドライブ４１を１台ずつ利用する場合を例に挙げたが、これに限定されるものではない。例えば、複数の空きドライブ４１が存在する場合、エクスポート制御部３２、並びに、書込処理部３３及び読出処理部３４は、ステップＳ８、Ｓ１４、及びＳ１８の処理において、複数の空きドライブ４１を利用した書込処理及び読出処理を制御してもよい。
【０１３９】
この場合、エクスポート制御部３２は、ステップＳ８、Ｓ１３及びＳ１４、並びに、Ｓ１７及びＳ１８において、書込処理又は読出処理に利用可能な空きドライブ４１の台数に応じた数のＬＶ２２のエントリを選択してよい。利用可能な空きドライブ４１の台数は、例えば、コントローラ４４から通知されてもよい。
【０１４０】
以上の処理により、制御サーバ３は、テープライブラリ装置４のスピードマッチング機能を効果的に使用することができる。これにより、テープライブラリ装置４のドライブ４１等のリソースの有効活用や、読出処理及び書込処理の最適化を行なうことができ、エクスポート処理時間を短縮することができる。
【０１４１】
〔２〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【０１４２】
例えば、図５に示す制御サーバ３の各機能ブロックは、それぞれ任意の組み合わせで併合してもよく、分割してもよい。
【０１４３】
また、エクスポート制御部３２は、エクスポート指示に応じて、エクスポート対象ＬＶリスト３１２を作成するものとして説明したが、これに限定されるものではない。例えば、エクスポート制御部３２は、エクスポート指示に含まれるエクスポート対象のＬＶ２２のリストと、マスタＬＶリスト３１１とに基づき、Ｌｏｆｆ及びＬｏｎを作成してもよく、この場合、エクスポート対象ＬＶリスト３１２の作成は省略されてもよい。
【０１４４】
〔３〕付記
以上の実施形態に関し、更に以下の付記を開示する。
【０１４５】
（付記１）
複数のアクセス部のうちの書込データを可搬型記録媒体に書き込むアクセス部の書込速度を、当該書込データのサイズに応じて制御する制御部を有するストレージ装置と、
複数の可搬型記録媒体に格納されるデータを記憶する記憶装置と、
前記ストレージ装置及び前記記憶装置を制御する制御装置と、をそなえ、
前記制御装置は、
複数の排出対象のデータを排出対象の可搬型記録媒体へ排出する排出処理の実行要求を受信すると、前記実行要求に基づき、前記記憶装置に記憶されていない一以上の排出対象のデータのリストをデータサイズに基づきソートした第１リストと、前記記憶装置に記憶されている一以上の排出対象のデータのリストをデータサイズに基づきソートした第２リストと、を生成する生成部と、
前記第１リストのソート順に従って、前記制御部に対して、前記第１リスト内の排出対象のデータを当該データの格納先可搬型記録媒体から読み出す制御を行ない、読み出された排出対象のデータを前記記憶装置に格納する読出部と、
前記第２リストのソート順に従って、前記第２リスト内の排出対象のデータを前記記憶装置から読み出し、前記制御部に対して、読み出したデータを前記排出対象の可搬型記録媒体に書き込む制御を行なう書込部と、をそなえる、ストレージシステム。
【０１４６】
（付記２）
前記第１リスト及び前記第２リストの各々のソート順は、データサイズが大から小へと変動する順、データサイズが小から大へと変動する順、又は、データサイズが大から小へと変動する順と小から大へと変動する順とのそれぞれを繰り返す順、である、付記１に記載のストレージシステム。
【０１４７】
（付記３）
前記読出部は、前記記憶装置に格納した排出対象のデータの情報を前記第１リストから前記第２リストに移動させ、
前記書込部は、前記第２リスト内の排出対象のデータを前記排出対象の可搬型記録媒体に書き込む制御を行なう都度、前記第２リストをデータサイズに基づきソートする、付記１又は付記２に記載のストレージシステム。
【０１４８】
（付記４）
前記第１リスト内の排出対象のデータの合計サイズと、前記第２リスト内の排出対象のデータの合計サイズとを比較し、比較結果に基づき、前記書込部による処理の実行タイミングを制御する実行制御部をそなえる、付記３に記載のストレージシステム。
【０１４９】
（付記５）
前記実行制御部は、前記第１リストに係る合計サイズが、前記第２リストに係る合計サイズ以下になるまで、前記書込部による処理の実行を抑止する、付記４に記載のストレージシステム。
【０１５０】
（付記６）
前記実行制御部は、前記第１リストに係る合計サイズが、前記第２リストに係る合計サイズ以下になると、前記読出部による処理と並行して、前記書込部による処理を実行させる、付記４又は付記５に記載のストレージシステム。
【０１５１】
（付記７）
複数のアクセス部のうちの書込データを可搬型記録媒体に書き込むアクセス部の書込速度を、当該書込データのサイズに応じて制御する制御部を有するストレージ装置と、複数の可搬型記録媒体に格納されるデータを記憶する記憶装置と、を制御する制御装置であって、
複数の排出対象のデータを排出対象の可搬型記録媒体へ排出する排出処理の実行要求を受信すると、前記実行要求に基づき、前記記憶装置に記憶されていない一以上の排出対象のデータのリストをデータサイズに基づきソートした第１リストと、前記記憶装置に記憶されている一以上の排出対象のデータのリストをデータサイズに基づきソートした第２リストと、を生成する生成部と、
前記第１リストのソート順に従って、前記制御部に対して、前記第１リスト内の排出対象のデータを当該データの格納先可搬型記録媒体から読み出す制御を行ない、読み出された排出対象のデータを前記記憶装置に格納する読出部と、
前記第２リストのソート順に従って、前記第２リスト内の排出対象のデータを前記記憶装置から読み出し、前記制御部に対して、読み出したデータを前記排出対象の可搬型記録媒体に書き込む制御を行なう書込部と、をそなえる、制御装置。
【０１５２】
（付記８）
前記第１リスト及び前記第２リストの各々のソート順は、データサイズが大から小へと変動する順、データサイズが小から大へと変動する順、又は、データサイズが大から小へと変動する順と小から大へと変動する順とのそれぞれを繰り返す順、である、付記７に記載の制御装置。
【０１５３】
（付記９）
前記読出部は、前記記憶装置に格納した排出対象のデータの情報を前記第１リストから前記第２リストに移動させ、
前記書込部は、前記第２リスト内の排出対象のデータを前記排出対象の可搬型記録媒体に書き込む制御を行なう都度、前記第２リストをデータサイズに基づきソートする、付記７又は付記８に記載の制御装置。
【０１５４】
（付記１０）
前記第１リスト内の排出対象のデータの合計サイズと、前記第２リスト内の排出対象のデータの合計サイズとを比較し、比較結果に基づき、前記書込部による処理の実行タイミングを制御する実行制御部をそなえる、付記９に記載の制御装置。
【０１５５】
（付記１１）
前記実行制御部は、前記第１リストに係る合計サイズが、前記第２リストに係る合計サイズ以下になるまで、前記書込部による処理の実行を抑止する、付記１０に記載の制御装置。
【０１５６】
（付記１２）
前記実行制御部は、前記第１リストに係る合計サイズが、前記第２リストに係る合計サイズ以下になると、前記読出部による処理と並行して、前記書込部による処理を実行させる、付記１０又は付記１１に記載の制御装置。
【０１５７】
（付記１３）
複数のアクセス部のうちの書込データを可搬型記録媒体に書き込むアクセス部の書込速度を、当該書込データのサイズに応じて制御する制御部を有するストレージ装置と、複数の可搬型記録媒体に格納されるデータを記憶する記憶装置と、を制御するコンピュータに、
複数の排出対象のデータを排出対象の可搬型記録媒体へ排出する排出処理の実行要求を受信すると、前記実行要求に基づき、前記記憶装置に記憶されていない一以上の排出対象のデータのリストをデータサイズに基づきソートした第１リストと、前記記憶装置に記憶されている一以上の排出対象のデータのリストをデータサイズに基づきソートした第２リストと、を生成し、
前記第１リストのソート順に従って、前記制御部に対して、前記第１リスト内の排出対象のデータを当該データの格納先可搬型記録媒体から読み出す制御を行ない、読み出された排出対象のデータを前記記憶装置に格納し、
前記第２リストのソート順に従って、前記第２リスト内の排出対象のデータを前記記憶装置から読み出し、前記制御部に対して、読み出したデータを前記排出対象の可搬型記録媒体に書き込む制御を行なう、
処理を実行させる、制御プログラム。
【０１５８】
（付記１４）
前記第１リスト及び前記第２リストの各々のソート順は、データサイズが大から小へと変動する順、データサイズが小から大へと変動する順、又は、データサイズが大から小へと変動する順と小から大へと変動する順とのそれぞれを繰り返す順、である、付記１３に記載の制御プログラム。
【０１５９】
（付記１５）
前記コンピュータに、
前記記憶装置に格納した排出対象のデータの情報を前記第１リストから前記第２リストに移動させ、
前記第２リスト内の排出対象のデータを前記排出対象の可搬型記録媒体に書き込む制御を行なう都度、前記第２リストをデータサイズに基づきソートする、
処理を実行させる、付記１３又は付記１４に記載の制御プログラム。
【０１６０】
（付記１６）
前記コンピュータに、
前記第１リスト内の排出対象のデータの合計サイズと、前記第２リスト内の排出対象のデータの合計サイズとを比較し、比較結果に基づき、前記書き込む制御の実行タイミングを制御する、
処理を実行させる、付記１５に記載の制御プログラム。
【０１６１】
（付記１７）
前記コンピュータに、
前記第１リストに係る合計サイズが、前記第２リストに係る合計サイズ以下になるまで、前記書き込む制御の実行を抑止する、
処理を実行させる、付記１６に記載の制御プログラム。
【０１６２】
（付記１８）
前記コンピュータに、
前記第１リストに係る合計サイズが、前記第２リストに係る合計サイズ以下になると、前記読み出す制御と並行して、前記書き込む制御を実行させる、付記１６又は付記１７に記載の制御プログラム。
【符号の説明】
【０１６３】
１    仮想テープシステム
２    仮想テープ装置
２１    ディスクアレイ装置
２２、４６    ＬＶ
３、３−１、３−２    制御サーバ
３１    メモリ部
３１１    マスタＬＶリスト
３１２    エクスポート対象ＬＶリスト
３１３    オンキャッシュＬＶリスト
３１４    オフキャッシュＬＶリスト
３２    エクスポート制御部
３３    書込処理部
３４    読出処理部
４    テープライブラリ装置
４１、４１−１〜４１−ｎ    ドライブ
４２    ロボット
４３、４３−１、４３−２    ＰＶ
４４    コントローラ
４５    格納部
５    ホスト装置
【図１】
2019204164.tif 000003
【図２】
2019204164.tif 000004
【図３】
2019204164.tif 000005
【図４】
2019204164.tif 000006
【図５】
2019204164.tif 000007
【図６】
2019204164.tif 000008
【図７】
2019204164.tif 000009
【図８】
2019204164.tif 000010
【図９】
2019204164.tif 000011
【図１０】
2019204164.tif 000012