(57)【要約】【課題】ソフトウェアの更新に伴う仮想テープシステムの停止期間を短縮する。【解決手段】キャッシュ装置２１を有するフロントエンド部と、記憶装置３を有するバックエンド部と、前記キャッシュ装置２１に対するアクセスの履歴に基づいて所定時間内に前記キャッシュ装置２１が要求されるデータを予測する予測部６３と、予測したデータを前記記憶装置３から読み出して前記キャッシュ装置２１に格納する制御を行なう格納部６３と、前記フロントエンド部が稼働した状態で、前記バックエンド部に適用されたソフトウェアの更新を制御する更新部６４と、をそなえる。【選択図】図８
2018194947.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュ装置を有するフロントエンド部と、
記憶装置を有するバックエンド部と、
前記キャッシュ装置に対するアクセスの履歴に基づいて所定時間内に前記キャッシュ装置が要求されるデータを予測する予測部と、
予測したデータを前記記憶装置から読み出して前記キャッシュ装置に格納する制御を行なう格納部と、
前記フロントエンド部が稼働した状態で、前記バックエンド部に適用されたソフトウェアの更新を制御する更新部と、をそなえる
ことを特徴とする、ストレージ装置。
【請求項２】
前記予測部は、現在時刻と、前記アクセスの履歴に含まれるアクセス時刻とを比較し、前記キャッシュ装置に対する次回のアクセスが前記所定時間内に発生するデータを予測する、
ことを特徴とする、請求項１に記載のストレージ装置。
【請求項３】
前記キャッシュ装置が要求されるデータは、所定周期でスケジュールされたアクセスの対象となるデータである、
ことを特徴とする、請求項１又は請求項２に記載のストレージ装置。
【請求項４】
前記予測部は、前記予測したデータを前記キャッシュ装置に格納した後に、前記アクセスの履歴に基づいて、現在時刻から、前記記憶装置から前記キャッシュ装置にデータを格納する要求が次に発生するまでの時間である更新可能時間を予測し、
前記バックエンド部に適用されたソフトウェアの更新可否は、前記更新可能時間に基づき判断される、
ことを特徴とする、請求項１〜３のいずれか１項に記載のストレージ装置。
【請求項５】
前記フロントエンド部が有する装置は、前記バックエンド部に適用されたソフトウェアの更新中に、前記記憶装置から前記キャッシュ装置にデータを格納する要求が発生した場合、前記要求の発行元に、当該要求に係る処理を行なう装置が使用中であることを応答する、
ことを特徴とする、請求項１〜４のいずれか１項に記載のストレージ装置。
【請求項６】
キャッシュ装置を有するフロントエンド部と、記憶装置を有するバックエンド部と、をそなえるストレージ装置において、
コンピュータに、
前記キャッシュ装置に対するアクセスの履歴に基づいて所定時間内に前記キャッシュ装置が要求されるデータを予測し、
予測したデータを前記記憶装置から読み出して前記キャッシュ装置に格納する制御を行ない、
前記フロントエンド部が稼働した状態で、前記バックエンド部に適用されたソフトウェアの更新を制御する、
処理を実行させることを特徴とする、制御プログラム。
【請求項７】
キャッシュ装置を有するフロントエンド部と、記憶装置を有するバックエンド部と、をそなえるストレージ装置において、
コンピュータが、
前記キャッシュ装置に対するアクセスの履歴に基づいて所定時間内に前記キャッシュ装置が要求されるデータを予測し、
予測したデータを前記記憶装置から読み出して前記キャッシュ装置に格納する制御を行ない、
前記フロントエンド部が稼働した状態で、前記バックエンド部に適用されたソフトウェアの更新を制御する、
ことを特徴とする、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、制御プログラム、及び制御方法に関する。
【背景技術】
【０００２】
テープライブラリと仮想テープ装置とをそなえる仮想テープシステムが知られている。テープライブラリは磁気テープカートリッジや光ディスクカートリッジ等の物理ボリューム（Physical Volume；以下、ＰＶと表記する）を複数収納する。
【０００３】
仮想テープ装置はホスト装置とテープライブラリとの間に設けられストレージ装置の一例であり、ホスト装置において認識可能なボリュームである論理ボリューム（Logical Volume；以下、ＬＶと表記する）を格納するＴＶＣ（Tape Volume Cache）をそなえる。なお、ＴＶＣは例えばＲＡＩＤ（Redundant Arrays of Inexpensive Disks）構成のストレージ装置等により実現される。
【０００４】
仮想テープ装置は、ホスト装置に対するＩＦ（Interface）を制御するコンポーネント、テープライブラリに対するＩＦを制御するコンポーネント、ＴＶＣやテープライブラリ等の制御を行なうコンポーネント等の種々のコンポーネントをそなえる。これらのコンポーネントは、それぞれ、プロセッサをそなえるサーバが、ソフトウェア（ＳＷ；Software）、例えばファームウェア（ＦＷ；Firmware）を実行することにより実現されてよい。各コンポーネントは、仮想テープシステムの可用性を高めるためにＨＷ（Hardware）レベルで冗長化されてよい。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−２８８５７１号公報
【特許文献２】特開２００７−２１９６９６号公報
【特許文献３】特表２００６−５０１５３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した仮想テープシステムにおいて、コンポーネント（ＴＶＣやテープライブラリを含む）のＦＷが更新される場合、作業員は、例えば、業務を停止させ、全コンポーネントを停止させた状態で、作業を行なうことがある。一例として、各コンポーネントが二重化されており、２人の作業員により片系ずつファームアップ（以下、「ＦＵ」（Firmware Update）と表記する場合がある）作業を行なった場合、６時間程度の業務停止時間が発生することがある。
【０００７】
なお、上述のように、仮想テープ装置のコンポーネントは冗長化されているため、片系の動作中に他系を停止させ、当該他系のコンポーネントのＦＵを行なう（片系ずつＦＵする）ことも考えられる。しかし、コンポーネントの冗長化は、通常運用中（業務中）のコンポーネントの故障に備えたものであるため、ＦＵ実施中は片系での運用が許容されない場合がある。
【０００８】
１つの側面では、本発明は、ソフトウェアの更新に伴う仮想テープシステムの停止期間を短縮することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、ストレージ装置は、キャッシュ装置を有するフロントエンド部と、記憶装置を有するバックエンド部と、予測部と、格納部と、更新部と、をそなえてよい。前記予測部は、前記キャッシュ装置に対するアクセスの履歴に基づいて所定時間内に前記キャッシュ装置が要求されるデータを予測してよい。前記格納部は、予測したデータを前記記憶装置から読み出して前記キャッシュ装置に格納する制御を行なってよい。前記更新部は、前記フロントエンド部が稼働した状態で、前記バックエンド部に適用されたソフトウェアの更新を制御してよい。
【発明の効果】
【００１０】
１つの側面では、ソフトウェアの更新に伴う仮想テープシステムの停止期間を短縮することができる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態の一例としての仮想テープシステムの構成例を示すブロック図である。
【図２】仮想テープシステムの動作例を示す図である。
【図３】仮想テープシステムのフロントエンド部及びバックエンド部の一例を示す図である。
【図４】比較例に係る仮想テープシステムのＦＵの動作例を示すフローチャートである。
【図５】図４に示す各コンポーネントのＦＷ更新処理の動作例を示すフローチャートである。
【図６】比較例に係るＦＵ作業時間と業務停止時間との関係を示す図である。
【図７】一実施形態に係るＦＵ作業時間と業務停止時間との関係の一例を示す図である。
【図８】一実施形態に係る仮想テープシステムの機能構成例を示すブロック図である。
【図９】ＬＶ一覧情報の一例を示す図である。
【図１０】リコール履歴情報の一例を示す図である。
【図１１】一実施形態に係る仮想テープシステムのＦＵの動作例を示すフローチャートである。
【図１２】図１１に示すＶＬＰ（Virtual Library Processor）のＦＷ更新処理の動作例を示すフローチャートである。
【図１３】図１１に示すバックエンド部のＦＷ更新処理の動作例を示すフローチャートである。
【図１４】図１３に示すプレロード判定・ＦＵ実施判定処理の動作例を示すフローチャートである。
【図１５】一実施形態に係るフロントエンド部のＦＵの動作例を示すフローチャートである。
【図１６】一実施形態に係るフロントエンド部のＦＵの動作例を示すフローチャートである。
【図１７】一実施形態に係るコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１３】
〔１〕一実施形態
〔１−１〕仮想テープシステムの構成例
図１は一実施形態の一例としての仮想テープシステム１の構成例を示すブロック図であり、図２は仮想テープシステム１の動作例を示す図である。仮想テープシステム１は、ホスト装置４に対して仮想テープライブラリを提供するストレージ装置の一例であり、例示的に、仮想テープ装置２、複数（図１の例では２台）のテープライブラリ３、運用端末５、及び、監視装置６をそなえてよい。仮想テープ装置２には、ホスト装置４が接続されてよい。
【００１４】
ホスト装置４は、仮想テープ装置２を介したテープライブラリ３へのアクセスを行なう情報処理装置の一例である。ホスト装置４としては、例えば、メインフレーム等が挙げられる。
【００１５】
ホスト装置４では、例えば、ＶＴＣＰ（Virtual Tape Control Program）４１が実行されてよい。ＶＴＣＰ４１は、仮想テープシステム１の運用に関する種々の制御を行なう。ＶＴＣＰ４１による制御には、例えば、仮想テープ装置２におけるボリュームのマウント・デマウントに関する制御等が含まれてよい。
【００１６】
運用端末５は、仮想テープ装置２の各コンポーネントのうちの操作対象となるコンポーネントに対するユーザＩＦを提供する運用コンソールの一例である。運用端末５は、例えば、ＰＣ（Personal Computer）やサーバ等の情報処理装置であってよく、仮想テープ装置２との間でＬＡＮ（Local Area Network）接続されてよい。
【００１７】
監視装置６は、制御装置の一例であり、一実施形態に係るＦＵ短縮処理の制御のための種々の情報の収集や指示の発行を行なってよい。監視装置６は、例えば、ＰＣやサーバ等の情報処理装置であってよく、仮想テープ装置２との間でＬＡＮ接続されてよい。
【００１８】
テープライブラリ３は、記憶装置の一例であり、ＰＶを複数収納し、仮想テープ装置２からの指示に応じてＰＶに対するアクセスを行なう。なお、ＰＶはデータを記憶する記録媒体の一例である。ＰＶとしては、ＬＴＯ（Linear Tape Open）カートリッジ等の磁気テープや、光ディスクカートリッジ等が挙げられる。
【００１９】
図１に示すように、テープライブラリ３は、例示的に、複数（図１の例では３台以上）のドライブ３１と、１台以上（図１の例では１台）のロボット３２とをそなえてよい。ドライブ３１はそれぞれＰＶに対するデータの記録及び再生等を行なう媒体処理装置の一例であり、ロボット３２は媒体カートリッジのピックアップ、搬送、ドライブ３１への挿入等を行なう運搬装置の一例である。なお、ドライブ３１の台数やロボット３２の台数は例示であり、それぞれ任意の個数がテープライブラリ３にそなえられてよい。
【００２０】
仮想テープ装置２は、ホスト装置４とテープライブラリ３との間に設けられ、ホスト装置４からの要求に応じてテープライブラリ３に対する種々の指示を行なう。
【００２１】
図１に示すように、仮想テープ装置２は、例示的に、ＴＶＣ２１、ＦＣスイッチ２２、ＶＬＰ２３、ＬＡＮハブ２４、ＩＣＰ２５、ＩＤＰ２６、ＰＬＰ２７、及び、ＰＣＵ２８をそなえてよい。ＦＣはFibre Channelの略称であり、ＶＬＰはVirtual Library Processorの略称である。また、ＩＣＰはIntegrated Channel Processorの略称であり、ＩＤＰはIntegrated Device Processorの略称であり、ＰＬＰはPhysical Library Processorの略称であり、ＰＣＵはPower Control Unitの略称である。
【００２２】
なお、符号２２〜２８で示すこれらのコンポーネントはいずれも冗長化されてよい。例えば、ブロックに“＃０”又は“＃２”が付されたコンポーネントは、テープライブラリ＃０とともに「０系」或いは「＃０グループ」となる。また、ブロックに“＃１”又は“＃３”が付されたコンポーネントは、テープライブラリ＃１とともに「１系」或いは「＃１グループ」となる。
【００２３】
通常運用においては、＃０グループ及び＃１グループの双方のグループが稼動してよい。なお、いずれかのコンポーネントの故障時には、当該コンポーネントについては片系稼動となる。
【００２４】
ＴＶＣ２１は、キャッシュ装置の一例であり、ホスト装置４とテープライブラリ３との間のアクセスに係るＬＶ２１１（図２参照）のデータを記憶する。
【００２５】
ＴＶＣ２１がＬＶ２１１のデータを記憶する場合、当該ＬＶ２１１は「オンキャッシュ」の状態である。ホスト装置４からのアクセスに係るＬＶ２１１がオンキャッシュの場合、仮想テープ装置２は、ＴＶＣ２１上のオンキャッシュのＬＶ２１１に対してアクセスに係る処理を行ない、ホスト装置４に応答を返してよい。
【００２６】
一方、ＴＶＣ２１に存在しないＬＶ２１１は「オフキャッシュ」の状態である。ホスト装置４からのアクセスに係るＬＶ２１１がオフキャッシュの場合、仮想テープ装置２は、当該ＬＶ２１１に係るデータをテープライブラリ３のＰＶからＴＶＣ２１上に読み出してよい。このように、オフキャッシュのＬＶ２１１をオンキャッシュにした上で、仮想テープ装置２は、ＴＶＣ２１上のＬＶ２１１に対してアクセスに係る処理を行ない、ホスト装置４に応答を返してよい。オフキャッシュのＬＶ２１１のデータをテープライブラリ３のＰＶからＴＶＣ２１に読み出すことを「リコール」という。
【００２７】
ＴＶＣ２１は、複数の記憶装置を含んでよく、これらの記憶装置によりＲＡＩＤを構成してよい。記憶装置としては、ＨＤＤ（Hard Disk Drive）等の磁気ディスク装置、或いは、ＳＳＤ（Solid State Drive）等の半導体ドライブ装置等が挙げられる。ＴＶＣ２１は、ＲＡＩＤ等のディスクグループを用いてファイルシステムを提供してもよい。
【００２８】
ＦＣスイッチ２２は、ＦＣケーブル等を介して接続されたＳＡＮ（Storage Area Network）等のネットワークにおける装置間の通信経路の切り替えを行ない、これらの装置を相互に通信可能に接続する。ＦＣを介した通信では、例えばＬＶ２１１又はＰＶ等のデータ転送が行なわれる。
【００２９】
なお、ＦＣ接続される区間は、図１の例では実線で示す区間となる。例示的に、ＴＶＣ２１−ＦＣスイッチ２２間、ＦＣスイッチ２２間、ＦＣスイッチ２２−ＶＬＰ２３間がＦＣ接続される。また、ＦＣスイッチ２２−ＩＣＰ２５間、ＦＣスイッチ２２−ＩＤＰ２６間、ＩＣＰ２５−ホスト装置４間、ＩＤＰ２６−ドライブ３１間、並びに、ＰＬＰ２７−ロボット３２間もＦＣ接続されてよい。
【００３０】
ＶＬＰ２３は、制御装置の一例であり、ＬＡＮによる制御ＩＦ（図２参照）を介してホスト装置４と接続され、ホスト装置４（例えばＶＴＣＰ４１）との通信、仮想テープ装置２における資源管理、並びに、一実施形態に係るＦＵ短縮処理の制御を行なう。
【００３１】
ＶＬＰ２３による資源管理には、ＬＶ２１１やＰＶの管理、マウントやアンマウントの制御等が含まれてよい。
【００３２】
なお、ＶＬＰ２３はいずれか一方（例えば０系のＶＬＰ２３）がマスタとして動作し、他方（例えば１系のＶＬＰ２３）がスレーブとして待機してもよい。この場合、スレーブのＶＬＰ２３は、マスタのＶＬＰ２３に異常が発生したときに自身がマスタに昇格してＶＬＰ２３の処理を引き継ぐことができる。
【００３３】
ＬＡＮハブ２４は、ＬＡＮケーブル等を介して接続されたＬＡＮにおける装置間の通信経路の切り替えを行ない、これらの装置を相互に通信可能に接続することができる。ＬＡＮを介した通信では、例えばコマンドやデータ等の制御情報等の転送が行なわれる。
【００３４】
なお、ＬＡＮ接続される区間は、図１の例では破線で示す区間となる。例示的に、ＶＬＰ２３、ＩＣＰ２５、ＩＤＰ２６、及び、ＰＬＰ２７の各々が、ＬＡＮハブ２４とＬＡＮ接続されてよい。また、ＬＡＮハブ２４は、ホスト装置４（ＶＴＣＰ４１）、運用端末５、及び、監視装置６との間でＬＡＮ接続されてよい。なお、ＴＶＣ２１及びＦＣスイッチ２２の各々がＬＡＮハブ２４とＬＡＮ接続されてもよい。
【００３５】
ＩＣＰ２５は、ホスト装置４との間のホストＩＦを制御し、仮想ドライブ２５１（図２参照）のエミュレーションや圧縮処理を行なう。例えば、ＩＣＰ２５は、ホスト装置４に対して、ＬＶ２１１を仮想ドライブ２５１としてエミュレーションし、仮想ドライブ２５１に対する書き込みデータを圧縮してＬＶ２１１に格納してよい。
【００３６】
ＩＣＰ２５は、ホスト装置４との通信を行なうＨＢＡ（Host Bus Adapter）を搭載し、例えばＦＣ、ＦＣＬＩＮＫ（登録商標）、ＯＣＬＩＮＫ（登録商標）等のストレージ接続インタフェースを用いてホスト装置４と接続されてよい。ＨＢＡとしては、ＦＣ等に準拠したインタフェースカードが挙げられる。
【００３７】
ＩＤＰ２６は、ＶＬＰ２３からの指示に応じて、ＦＣ等の実ドライブＩＦ（図２参照）を介してテープライブラリ３に対する種々の制御を行なってよい。ＩＤＰ２６による制御には、例えばテープライブラリ３のドライブ３１に対する制御が含まれてよい。
【００３８】
ＰＬＰ２７は、コントローラ２７１をそなえ、コントローラ２７１により、テープライブラリ３のロボット３２を制御してよい。コントローラ２７１は、例えば、ロボット３２の制御用のソフトウェアであってよい。コントローラ２７１による制御には、ロボット３２によるＰＶの搬送、ドライブ３１へのマウント及びアンマウント等の制御が含まれてよい。
【００３９】
ＰＣＵ２８は、仮想テープ装置２の電源制御を行なう。例えば、ＰＣＵ２８は、図１において一点鎖線で示すように、ＬＡＮハブ２４を介して仮想テープ装置２の各コンポーネントの電源制御を行なってよい。
【００４０】
上述した仮想テープシステム１のコンポーネントは、例示的に、図３に網掛けで示すフロントエンド部１１と、斜線で示すバックエンド部１２とに分類されてよい。
【００４１】
フロントエンド部１１は、オンキャッシュのＬＶ２１１に係る処理（例えばホスト装置４からのアクセスに応じた処理）を行なうコンポーネント群の一例である。フロントエンド部１１には、例示的に、ＴＶＣ２１及びＩＣＰ２５が含まれてよい。
【００４２】
バックエンド部１２は、オフキャッシュのＬＶ２１１に係る処理（例えばホスト装置４からのアクセスに応じた処理）を行なうコンポーネント群の一例である。バックエンド部１２には、例示的に、ＶＬＰ２３、ＩＤＰ２６、ＰＬＰ２７、及び、テープライブラリ３が含まれてよい。なお、ＶＬＰ２３は、ホスト装置４からのアクセスに係るＬＶ２１１がオンキャッシュ及びオフキャッシュのいずれの場合にも制御を行なうが、便宜上、バックエンド部１２に属するものとする。
【００４３】
〔１−２〕仮想テープシステムのファームアップについて
次に、仮想テープシステム１のファームアップ（ＦＵ）について、比較例を用いて説明する。図４は比較例に係る仮想テープシステム１のＦＵの動作例を示すフローチャートであり、図５は図４に示す各コンポーネントのＦＷ更新処理の動作例を示すフローチャートである。
【００４４】
図４に示すように、作業員は、仮想テープシステム１の利用者又は管理者（以下、「利用者」と表記する）との間でＦＵ作業のスケジュール調整を行なう（ステップＳ１０１）。スケジュールとしては、例えば、ＦＵ作業を行なう日時及び作業期間、換言すれば、仮想テープシステム１の停止日時及び停止期間等が挙げられる。
【００４５】
次いで、作業員は、仮想テープ装置２の停止確認を行なう（ステップＳ１０２）。停止確認としては、例えば、仮想テープ装置２内でのホスト装置４からのＩ／Ｏ（Input / Output）の有無の確認が含まれてよい。Ｉ／Ｏがある場合（ステップＳ１０３、Ｓ１０３でＹｅｓ）、仮想テープ装置２が停止していないため、処理がステップＳ１０２に移行し、Ｉ／Ｏが無くなるまでステップＳ１０２及びＳ１０３が実行される。
【００４６】
Ｉ／Ｏがない場合（ステップＳ１０３でＮｏ）、仮想テープ装置２が停止しているため、作業者は、仮想テープシステム１の各コンポーネントのＦＷの更新処理を行なう（ステップＳ１０４〜Ｓ１０７）。全てのコンポーネントのＦＷ更新処理が完了すると、ＦＵ作業が終了する。なお、ステップＳ１０４〜Ｓ１０７の処理は、２人の作業員が並行して作業する場合を想定している。図４の例では、作業員Ａによるフロントエンド部１１のＦＵ作業と、作業員Ｂによるバックエンド部１２のＦＵ作業とが並列に実施される。
【００４７】
次に、ステップＳ１０４〜Ｓ１０７における各コンポーネントのＦＷ更新処理について説明する。図５に示すように、作業員は、ＦＷ更新対象のコンポーネント又はＬＡＮハブ２４に作業端末を接続する（ステップＳ１１１）。
【００４８】
作業者は、作業端末からＦＵ更新対象のコンポーネントにログインし（ステップＳ１１２）、コンポーネントに対して更新版のＦＷの読み込みを指示し（ステップＳ１１３）、コンポーネントを再起動させる（ステップＳ１１４）。
【００４９】
また、作業者は、更新版のＦＷの適用に係るログを確認し（ステップＳ１１５）、異常が無ければ、コンポーネントからログアウトし（ステップＳ１１６）、作業端末の接続を解除して（ステップＳ１１７）、ＦＷ更新処理が終了する。
【００５０】
上述した比較例に係る手法では、仮想テープシステム１のＦＵ作業において、作業員は、フロントエンド部１１及びバックエンド部１２の各処理を切り離さずに、仮想テープシステム１の業務を停止し、全コンポーネントを一度にＦＵする。これは、フロントエンド部１１経由でデータが操作される場合、バックエンド部１２が動作する場合があるためである。例えば、フロントエンド部１１のＴＶＣ２１上に無いデータをホスト装置４が指定した場合、仮想テープ装置２では、バックエンド部１２を動作させ、テープライブラリ３からデータを取り出して、フロントエンド部１１のＴＶＣ２１上に配置する処理が行なわれる。
【００５１】
従って、図６に例示するように、フロントエンド部１１のＦＵ作業とバックエンド部１２のＦＵ作業とが完了するまでの間、仮想テープシステム１は業務停止状態となる。一例として、事前作業に２０分、フロントエンド部１１のＦＵ作業（作業員２人の並行作業）に１１０分、バックエンド部１２のＦＵ作業（作業員２人の並行作業）に１１０分の時間がかかるとすると、合計で２４０分（４時間）の業務停止時間となる。
【００５２】
そこで、一実施形態では、以下の手法により、ＦＵのために仮想テープシステム１の業務を停止する業務停止時間の短縮を図る。
【００５３】
例えば、一実施形態に係る仮想テープシステム１は、業務（運用）中に、ＦＵ作業中にリコールが要求されるデータを予測して当該データをフロントエンド部１１のキャッシュ上に配置する。また、仮想テープシステム１は、業務を停止させるＦＵを実施可能なＦＵ可能時間を調整する。
【００５４】
これにより、フロントエンド部１１及びバックエンド部１２を切り離すことができ、フロントエンド部１１及びバックエンド部１２に対して交互にＦＵを実施させることができる。
【００５５】
従って、図７に示すように、例えば、業務中に、バックエンド部１２のＦＵ作業を完了させることができ、仮想テープシステム１が業務停止状態となる期間を、フロントエンド部１１のＦＵ作業が実施される期間に限定できる。
【００５６】
〔１−３〕仮想テープシステムの機能構成例
次に、図８を参照して、仮想テープシステム１のＦＵ制御に係る機能構成例について説明する。
【００５７】
なお、以下の説明において、ＴＶＣ２１が管理するオンキャッシュ又はオフキャッシュのＬＶをＬＶ７０と表記し、テープライブラリ３にそなえられ、ＬＶ７０のデータを格納するデータ蓄積用のＰＶをＰＶ８０と表記する。
【００５８】
〔１−３−１〕監視装置の機能構成例
監視装置６は、業務中にＦＵが可能なコンポーネントを抽出し、作業員（以下、「オペレータ」と表記する場合がある）に通知するとともに、仮想テープシステム１のＦＵに係る各種の処理・制御を行なう。
【００５９】
図８に示すように、監視装置６は、状態調査ツールの一機能として、例示的に、メモリ部６１、情報取得部６２、プレロード制御部６３、及び、ＦＷ更新部６４をそなえてよい。なお、メモリ部６１は監視装置６がそなえるメモリにより実現されてよい。また、情報取得部６２、プレロード制御部６３、及び、ＦＷ更新部６４は監視装置６がそなえるＣＰＵにより制御プログラムが実行されることにより実現されてよい。
【００６０】
メモリ部６１は、ＬＶ一覧情報６１１及びリコール履歴情報６１２等の各情報を記憶する記憶領域を有する。メモリ部６１に格納される情報については後述する。
【００６１】
情報取得部６２は、仮想テープシステム１のＦＵが行なわれる際に、ＦＷの更新対象としてバックエンド部１２のコンポーネントが含まれる場合、ＦＵに用いる情報を仮想テープ装置２から取得する。
【００６２】
例えば、情報取得部６２は、ＶＬＰ２３からＬＶ一覧情報６１１に関する情報を取得し、ＬＶ一覧情報６１１からホストアクセス時刻を取得してよい。ＬＶ一覧情報６１１は、仮想テープ装置２が管理するＬＶ７０の一覧を示す情報である。
【００６３】
ＬＶ一覧情報６１１に関する情報は、例えば、ＶＬＰ２３にログインした状態で、ｖｌｍｃｍｄ  ｑｕｅｒｙコマンドの実行によりＶＬＰ２３から取得されてよい。これにより、ＶＬＰ２３によって管理されるＬＶ７０の情報を取得できる。
【００６４】
図９にＬＶ一覧情報６１１の一例を示す。図９に示すように、ＬＶ一覧情報６１１は、例示的に、「ボリューム名」、「ボリュームグループ名」、ボリューム容量を示す「サイズ」、「最終アクセス日時」、「状態」、及び、「フラグ」の項目を含んでよい。なお、最終アクセス日時は、ホスト装置４からの最終ホストアクセス時刻を示す。ＬＶ一覧情報６１１において、フラグに“Ｍ”が設定されているＬＶ７０は、リコール中であることを示す。
【００６５】
ＬＶ一覧情報６１１は、監視装置６により、ＬＶ７０の状態監視、例えば、リコール対象のＬＶ７０の存在有無の確認や、リコール対象のＬＶ７０の状況監視、例えば、以前のリコール履歴の確認等を行なうために用いられてよい。
【００６６】
例えば、情報取得部６２は、ＬＶ一覧情報６１１に基づいて、リコール履歴情報６１２の情報を取得してよい。
【００６７】
図１０にリコール履歴情報６１２の一例を示す。図１０に示すように、リコール履歴情報６１２は、例示的に、「ボリューム名」、「リコール開始時刻」、及び、「リコール終了時刻」の項目を含んでよい。
【００６８】
情報取得部６２は、一例として、ＬＶ一覧情報６１１のエントリ（ＬＶ７０）ごとに、ＬＶ７０がリコール中か否かを監視し、フラグに“Ｍ”が設定されているＬＶ７０のリコール履歴を採取してよい。リコール履歴の採取は、以下の（ｉ）〜（iv）の手順により実行されてよい。
【００６９】
（ｉ）情報取得部６２は、所定期間（例えば６０秒）ごとに、ＶＬＰ２３上でｖｌｍｃｍｄ  ｑｕｅｒｙコマンドを発行し、ＬＶ７０ごとにフラグに“Ｍ”が設定されているか、設定無し（フラグ未設定）かを監視する。
【００７０】
（ii）情報取得部６２は、フラグの状態が変化しているか否かを監視する。
【００７１】
（iii）情報取得部６２は、フラグの状態が設定無しから“Ｍ”に変化したとき、当該ＬＶ７０の行を取得し、リコール履歴情報６１２にボリューム名を設定するとともに、リコール開始時刻に現在時刻を設定したエントリを追加する。
【００７２】
（iv）情報取得部６２は、フラグの状態が“Ｍ”から設定無しに変化したとき、当該ＬＶ７０の行を取得し、リコール履歴情報６１２の対応するエントリに対して、リコール終了時刻に現在時刻を設定する。
【００７３】
以上の処理により、ＬＶ７０ごとのリコール履歴がリコール履歴情報６１２に記録される。なお、リコール履歴情報６１２には、１つのＬＶ７０について複数のリコール履歴が蓄積されてもよい。
【００７４】
プレロード制御部６３は、ＦＵ制御において、情報取得部６２が取得した情報に基づき、ＴＶＣ２１へのオフキャッシュのＬＶ７０のプレロードを制御する。当該制御には、ＶＬＰ２３に対する、ＬＶ７０を指定したプレロード指示が含まれてよい。なお、「プレロード」は、オフキャッシュのＬＶ７０のデータをテープライブラリ３のＰＶ８０からＴＶＣ２１に読み出す処理を、ホストアクセスの前に実施することである。プレロードは、実行されるタイミングが異なるものの、リコールに準じた（同様の）処理であってよい。
【００７５】
一例として、プレロード制御部６３は、ＬＶ一覧情報６１１の最終アクセス時刻を記録し、記録した最終アクセス時刻と現在時刻とを比較し、現在時刻から所定時間内にリコールされる候補ＬＶ７０を抽出してよい。
【００７６】
他の例として、プレロード制御部６３は、リコール履歴情報６１２のリコール開始時刻を記録し、記録したリコール開始時刻と現在時刻とを比較し、現在時刻から所定時間内にリコールされる候補ＬＶ７０を抽出してもよい。
【００７７】
なお、「所定時間」とは、ＦＵ作業時間に関連する時間であり、例えば、事前作業の２０分と、フロントエンド部１１のＦＵ作業の１１０分と、バックエンド部１２のＦＵ作業の１１０分とを合計した２４０分の時間であってよい。
【００７８】
或いは、バックエンド部１２のＦＵ作業後、時間を置いて（例えば後日）フロントエンド部１１のＦＵ作業が行なわれる場合、「所定時間」は、バックエンド部１２のＦＵ作業時間に関連する時間であってもよい。例えば、「所定時間」は、事前作業の２０分とフロントエンド部１１のＦＵ作業の１１０分とを合計した１３０分の時間であってもよい。
【００７９】
ここで、仮想テープシステム１は、バックアップやアーカイブ先として用いられる場合があり、仮想テープ装置２へのアクセスは、例えば、所定周期でスケジュールされる場合がある。仮想テープ装置２へのアクセスがスケジュールされる場合、アクセスタイミングは、毎日特定の時刻、特定の週或いは曜日の特定の時刻、月内の特定の日にちの特定の時刻等、規則性を有することになる。
【００８０】
そこで、プレロード制御部６３は、仮想テープ装置２へのＬＶ７０ごとのアクセスタイミングに規則性があることに着目し、ＬＶ一覧情報６１１或いはリコール履歴情報６１２に基づいて、現在時刻と「特定の時刻」とを比較し、候補ＬＶ７０を抽出するのである。
【００８１】
プレロード制御部６３は、抽出した候補ＬＶ７０のうちの、最終アクセス時刻又はリコール開始時刻の時刻部分が現在時刻に最も近い候補ＬＶ７０を順に選択し、選択した候補ＬＶ７０についてプレロードの実施を制御してよい。
【００８２】
なお、プレロード制御部６３は、抽出した全ての候補ＬＶ７０についてプレロードが完了すると、再度、ＬＶ一覧情報６１１或いはリコール履歴情報６１２に基づいて、現在時刻と「特定の時刻」とを比較し、候補ＬＶ７０を抽出してもよい。プレロード完了後の現在時刻から所定時間内にリコールの発生するＬＶ７０が存在し得るからである。
【００８３】
また、プレロード制御部６３は、全ての候補ＬＶ７０のプレロードが完了すると、現在時刻から次にＬＶ７０のリコールが発生するまでの時間を算出してもよい。この時間は、リコールが発生しない時間、すなわち、フロントエンド部１１とバックエンド部１２とを切り離すことのできる時間（更新可能時間）を意味する。
【００８４】
プレロード制御部６３は、算出した時間を、ＦＵ実施可能時間としてオペレータに通知してもよい。なお、通知には、モニタ等の表示部への画面出力やメール等によるメッセージ送信等が含まれてよい。
【００８５】
オペレータは、バックエンド部１２又はフロントエンド部１１のＦＵ作業を行なう場合、ＦＵ実施可能時間に基づき、ＦＵ作業遅延等のマージンを考慮して、ＦＵ時間帯にリコールが実行される可能性を検討できる。例えば、オペレータは、ＦＵ作業中にリコールが実行される可能性が低いと判断した場合、ＦＵを実施すると判断し、ＦＷ更新部６４を用いてＦＵ作業を行なってよい。なお、オペレータによる上記の判断は、マージンや閾値等の条件に基づき、プレロード制御部６３により行なわれてもよい。
【００８６】
なお、仮想テープシステム１の導入初日等、ＬＶ一覧情報６１１或いはリコール履歴情報６１２に、候補ＬＶ７０を決定するのに十分な履歴が存在しない場合もある。この場合、オペレータは、ＦＵ作業を行なわない（後日に延期する）、或いは、図４及び図５に示す比較例のような手法によりＦＵ作業を行なうと判断してもよい。
【００８７】
プレロード制御部６３によるプレロードにより、ＦＵ作業中にＬＶ７０のリコール処理が発生することを抑制できる。リコールが発生しない場合、ＩＤＰ２６、ＰＬＰ２７、及び、テープライブラリ３等のバックエンド部１２のコンポーネントはホスト装置４からのアクセスに係る処理に依存しないため、バックエンド部１２については、業務中であっても内部的にＦＵが可能となる。
【００８８】
以下、プレロード制御部６３の処理について、例を挙げて説明する。上述のように、プレロード制御部６３は、リコール実行の可能性を判断するために、オフキャッシュのＬＶ７０のホストアクセス履歴からリコール実行の傾向を見出す。
【００８９】
例えば、オフキャッシュのＬＶ７０として“AAAAAA”、“BBBBBB”、“CCCCCC”、“DDDDDD”の４本が存在し、現在の日時が８／３１（水）ａｍ９：００であると仮定する。また、各ＬＶ７０は、ＬＶ一覧情報６１１又はリコール履歴情報６１２から、以下の傾向が見られるものとする。
【００９０】
“AAAAAA”は毎日ｐｍ９：３０付近でアクセスされている。
“BBBBBB”は毎日ａｍ９：３０付近でアクセスされている。
“CCCCCC”は日付が偶数日のａｍ９：３０付近でアクセスされている。
“DDDDDD”は毎週火曜日のａｍ９：３０付近でアクセスされている。
【００９１】
この場合、プレロード制御部６３は、現在日時において、所定時間内に、“AAAAAA”、“CCCCCC”、“DDDDDD”のリコールが実行される可能性は低いと判断し、“BBBBBB”はリコールが実行される可能性が高いと判断する。
【００９２】
従って、プレロード制御部６３は、“BBBBBB”についてはＦＵ作業中にリコールを実行させないために、予めプレロードを実行し、オンキャッシュにする。
【００９３】
なお、或るＬＶ７０をオンキャッシュにする際に、ＴＶＣ２１がキャッシュフルである場合には、オンキャッシュである他のＬＶ７０をＴＶＣ２１から追い出すことになる。ＬＶ７０のキャッシュ追い出し論理は、ＬＲＵ（Least Recently Used）方式に基づく論理でもよい。或いは、オンキャッシュのＬＶ７０のホストアクセス履歴から、現在日時付近でホストアクセスの可能性が低いＬＶ７０を選択してオフキャッシュにする論理でもよい。以下、後者の論理の一例について説明する。
【００９４】
プレロード制御部６３は、ＬＶ一覧情報６１１或いはリコール履歴情報６１２から、アクセス履歴の一番旧いファイルを検索する。プリロード対象のファイルのファイルサイズよりも、検索したファイルのサイズが大きい場合、プレロード制御部６３は、検索したファイルをキャッシュアウトする（オフキャッシュにする）。
【００９５】
プリロード対象のファイルのファイルサイズよりも、検索したファイルのサイズが小さい場合、プレロード制御部６３は、２番目に旧いファイルを検索する。１番目及び２番目に検索したファイルのサイズの合計が、プリロード対象のファイルのファイルサイズよりも大きい場合、プレロード制御部６３は、１番目及び２番目に検索したファイルをキャッシュアウトする。
【００９６】
同様に、プレロード制御部６３は、検索したリコール履歴の旧いファイルのサイズの合計が、プリロード対象のファイルのサイズよりも大きくなるまで、上記の処理を繰り返し、検索したファイルをキャッシュアウトする。
【００９７】
なお、プレロード制御部６３は、ＬＶ７０においてリコールが実行される可能性の有無を判断するための材料として、現時点のＬＶ７０の状態（オンキャッシュ又はオフキャッシュ）を確認してもよい。オフキャッシュのＬＶ７０が１つも存在しなければ、差し当たってバックエンド部のコンポーネンは稼働しない可能性が高いため、これらを停止してＦＵすることが可能である。そこで、オフキャッシュのＬＶ７０が１つも存在しない場合、現在時刻とアクセス履歴との比較やプレロードの実行を抑止して、ＦＷ更新部６４の処理が移行されてもよい。
【００９８】
以上のように、プレロード制御部６３により、現在日時から所定時間内でのリコールの実行が抑制された状況が整えられることで、ＦＷ更新部６４によるバックエンド部１２のＦＷ更新処理が実行可能となる。
【００９９】
このように、プレロード制御部６３は、ＴＶＣ２１に対するアクセスの履歴に基づいて所定時間内にＴＶＣ２１が要求されるデータを予測する予測部の一例である。また、プレロード制御部６３は、予測したデータをテープライブラリ３から読み出してＴＶＣ２１に格納する制御を行なう格納部の一例である。
【０１００】
ＦＷ更新部６４は、プレロード制御部６３によるプレロードが完了し、ＦＵ作業を行なう場合（例えばオペレータがＦＵ実施可能時間に基づきＦＵ作業の実施を決定した場合）、バックエンド部１２の各コンポーネントのＦＷ更新処理を行なう。なお、ＦＷ更新部６４は、バックエンド部１２のコンポーネントのうちのＶＬＰ２３のＦＷ更新処理については、情報取得部６２及びプレロード制御部６３による処理の前に実行してもよい。上述のように、監視装置６は、ＶＬＰ２３を介して、各種情報の収集やＦＵ作業の制御等を行なうためである。
【０１０１】
バックエンド部１２の各コンポーネントに係るＦＷ更新処理では、以下の（Ｉ）〜（III）の各処理が行なわれてよい。
【０１０２】
（Ｉ）ＦＷ更新部６４は、ＶＬＰ２３、ＩＤＰ２６、ＰＬＰ２７、及び、テープライブラリ３のＦＷの更新処理中は、再起動時のメッセージをオペレータが確認できるようにするため、個別にメンテナンスモードに設定する。メンテナンスモード中は、コンポーネントが再起動した場合、他のコンポーネントでの再起動の検出が抑止される。
【０１０３】
（II）ＦＷ更新部６４は、ＶＬＰ２３のＦＷの更新処理において、待機系のＶＬＰ２３（例えばＶＬＰ＃１）のＦＷ更新処理を行ない、ＶＬＰ＃１のＦＷ更新完了後に、Ｆａｉｌｏｖｅｒを行なって、ＶＬＰ＃１を運用系（例えばマスタ）ＶＬＰ２３に変更する。次いで、ＦＷ更新部６４は、待機系に変更されたＶＬＰ２３（例えばＶＬＰ＃０）のＦＷ更新処理を行ない、ＶＬＰ＃０のＦＷ更新完了後に、Ｆａｉｌｂａｃｋを行なって、ＶＬＰ＃０を運用系（例えばマスタ）ＶＬＰ２３に変更する。このように、ＶＬＰ２３のＦＷ更新処理においては、比較例において運用上制限されていたフェイルオーバ機能を用いることで、運用停止を発生させず、且つ、可用性の低下を最小限の期間に抑えて、ＶＬＰ２３のＦＷ更新処理を実行できる。
【０１０４】
（III）ＦＷ更新部６４は、ＩＤＰ２６、ＰＬＰ２７、及び、テープライブラリ３のＦＷの更新処理中は、物理ライブラリ・物理ドライブ制御プロセス、例えば、ＰＬＳ（Physical Library Service）・ＰＤＳ（Physical Device Service）を停止させる。なお、ＰＬＳはテープライブラリ３とのＩＦ制御を行ない、マウント要求等をＰＬＰ２７に依頼するサービスであり、ＶＬＰ２３で実行される。ＰＤＳはＶＬＰ２３からのアクセス要求に従い、ＰＶ８０からＴＶＣ２１へデータをストアしたり、ＴＶＣ２１からＰＶ８０へデータをセーブしたりするサービスであり、ＩＤＰ２６で実行される。
【０１０５】
なお、上述したＦＷ更新部６４の少なくとも一部の処理は、監視装置６を介してオペレータの操作により実現されてもよいし、上述した処理を行なうコードが書き込まれたプログラムをＣＰＵが実行することにより実現されてもよい。
【０１０６】
このように、ＦＷ更新部６４は、フロントエンド部１１が稼働した状態で、バックエンド部１２に適用されたソフトウェアの更新を制御する更新部の一例である。
【０１０７】
〔１−３−２〕ＶＬＰの機能構成例
図８に示すように、ＶＬＰ２３は、例示的に、ＬＶ情報送信部２３１及びプレロード実行部２３２をそなえてよい。なお、ＬＶ情報送信部２３１及びプレロード実行部２３２はＶＬＰ２３がそなえるＣＰＵにより制御プログラムが実行されることにより実現されてよい。
【０１０８】
ＬＶ情報送信部２３１は、情報取得部６２からのｖｌｍｃｍｄ  ｑｕｅｒｙコマンドに応じて、ＶＬＰ２３が管理するＬＶ７０に関する情報を情報取得部６２に送信（応答）する。
【０１０９】
プレロード実行部２３２は、監視装置６からプレロード指示を受け付けると、ＩＤＰ２６及びＰＬＰ２７と協働して、指定されたオフキャッシュのＬＶ７０のデータをテープライブラリ３のＰＶ８０からＴＶＣ２１に読み出す制御を行なってよい（図８参照）。なお、プレロード実行部２３２は、ＩＤＰ２６やＰＬＰ２７の処理が完了すると、監視装置６にプレロードの完了応答を送信してよい。
【０１１０】
なお、上述した監視装置６による予測が外れ、バックエンド部１２のＦＷ更新処理中にリコール要求が発生した場合、フロントエンド部１１のコンポーネントは、要求元に対して、当該要求に係る処理を行なう機器が使用中である等の応答を送信してよい。これにより、要求元が応答待ちに陥ることを回避できる。
【０１１１】
〔１−４〕仮想テープシステムの動作例
次に、上述の如く構成された仮想テープシステム１におけるＦＵ制御の動作例を、図１１〜図１６を参照して説明する。
【０１１２】
なお、前提として、ＦＵ可能なコンポーネントを検索するために、仮想テープ装置２には監視装置６が接続され、監視装置６内に状態調査ツールが格納されているものとする。
【０１１３】
また、運用者（或いは作業員）がＦＷの更新処理を実施する場合、開発元から運用者にＦＷ更新が依頼される。運用者は、開発元からＦＷ更新を依頼されると、バックエンド部１２のＦＷ更新が含まれるか否かを確認する。依頼されたＦＷ更新にバックエンド部１２のＦＷ更新が含まれる場合、運用者は、監視装置６に対して、ＦＵ可能時間表示モードをＯＮに設定する。上記を前提として、以下、ＦＵ制御の動作例を説明する。
【０１１４】
〔１−４−１〕バックエンド部のＦＵ制御の動作例
図１１に例示するように、監視装置６は、ＦＵ可能時間表示モードがＯＮか否かを判定する（ステップＳ１）。ＯＮではない場合（ステップＳ１でＮｏ）、処理が終了する。
【０１１５】
ＦＵ可能時間表示モードがＯＮの場合（ステップＳ１でＹｅｓ）、監視装置６は、ＶＬＰ２３のＦＷが最新か否かを判定する（ステップＳ２）。最新の場合（ステップＳ２でＹｅｓ）、処理がステップＳ４に移行する。
【０１１６】
一方、最新でない場合（ステップＳ２でＮｏ）、監視装置６のＦＷ更新部６４は、ＶＬＰ２３のＦＷ更新処理を行ない（ステップＳ３）、処理がステップＳ４に移行する。
【０１１７】
ステップＳ４では、監視装置６は、バックエンド部１２のＦＷが最新か否かを判定し、最新の場合（ステップＳ４でＹｅｓ）、処理が終了する。一方、最新でない場合（ステップＳ４でＮｏ）、監視装置６は、バックエンド部１２のＦＷ更新処理を行ない（ステップＳ５）、処理が終了する。
【０１１８】
なお、図１１に例示する処理が終了すると、引き続き、又は、時間を置いて（例えば後日）、図１５又は図１６に例示するフロントエンド部１１のＦＷ更新処理が実行される。
【０１１９】
〔１−４−２〕ＶＬＰのＦＷ更新処理の動作例
次に、図１２を参照して、図１１のステップＳ３に示すＶＬＰ２３のＦＷ更新処理の動作例を説明する。
【０１２０】
図１２に例示するように、ＦＷ更新部６４は、ＶＬＰ＃０及び＃１の双方のメンテナンスモードをＯＮに設定し（ステップＳ１１）、ＶＬＰ＃１（待機系）にログインする（ステップＳ１２）。
【０１２１】
次いで、ＦＷ更新部６４は、ＶＬＰ＃１のＦＵを開始し（ステップＳ１３）、ＦＵの完了を待ち合わせる（ステップＳ１４、Ｓ１５、Ｓ１５でＮｏ）。ＶＬＰ＃１のＦＵが完了すると（ステップＳ１５でＹｅｓ）、ＦＷ更新部６４は、フェイルオーバ機能により、ＶＬＰ＃１をマスタＶＬＰ２３に設定する（ステップＳ１６）。
【０１２２】
次いで、ＦＷ更新部６４は、ＶＬＰ＃０にログインし（ステップＳ１７）、ＶＬＰ＃０のＦＵを開始し（ステップＳ１８）、ＦＵの完了を待ち合わせる（ステップＳ１９、Ｓ２０、Ｓ２０でＮｏ）。ＶＬＰ＃０のＦＵが完了すると（ステップＳ２０でＹｅｓ）、ＦＷ更新部６４は、フェイルオーバ機能により、ＶＬＰ＃０をマスタＶＬＰ２３に設定する（ステップＳ２１）。
【０１２３】
そして、ＦＷ更新部６４は、ＶＬＰ＃０及び＃１の双方のメンテナンスモードをＯＦＦに設定し（ステップＳ２２）、処理が終了する。
【０１２４】
〔１−４−３〕バックエンド部のＦＷ更新処理の動作例
次に、図１３を参照して、図１１のステップＳ５に示すバックエンド部１２のＦＷ更新処理の動作例を説明する。
【０１２５】
図１３に例示するように、監視装置６は、ＩＣＰ２５、ＩＤＰ２６、テープライブラリ３のメンテナンスモードをそれぞれＯＮに設定し（ステップＳ３１）、ＶＬＰ＃０にログインする（ステップＳ３２）。
【０１２６】
次いで、監視装置６の情報取得部６２及びプレロード制御部６３は、プレロード判定・ＦＵ実施判定処理を行ない（ステップＳ３３）、ＦＵを実施するか否かを判定する（ステップＳ３４）。ＦＵを実施しないと判定した場合（ステップＳ３４でＮｏ）、処理がステップＳ４０に移行する。この場合、オペレータは、ＦＵの実行タイミングを調整し、監視装置６により図１３のＦＷ更新処理を改めて実施してもよい。
【０１２７】
ステップＳ３４においてＦＵを実施すると判定した場合（ステップＳ３４でＹｅｓ）、ＦＷ更新部６４は、ＶＬＰ２３のＰＬＳプロセス及びＩＤＰ２６のＰＤＳプロセスを停止させる（ステップＳ３５）。
【０１２８】
次いで、ＦＷ更新部６４は、テープライブラリ３、ＰＬＰ２７、ＩＤＰ２６のＦＵをそれぞれ実施し（ステップＳ３６〜Ｓ３８）、ＦＵの完了後、ＰＬＳ／ＰＤＳプロセスを起動させる（ステップＳ３９）。
【０１２９】
そして、ＦＷ更新部６４は、ＩＤＰ２６、ＰＬＰ２７、テープライブラリ３のメンテナンスモードをそれぞれＯＦＦに設定し（ステップＳ４０）、処理が終了する。
【０１３０】
〔１−４−４〕プレロード判定・ＦＵ実施判定処理の動作例
次に、図１４を参照して、図１３のステップＳ３３に示すプレロード判定・ＦＵ実施判定処理の動作例を説明する。
【０１３１】
監視装置６の情報取得部６２は、テープライブラリ３の各ＬＶ７０のホストアクセス時刻を取得する（ステップＳ４１）。例えば、情報取得部６２は、ＴＶＣ２１からＬＶ一覧情報６１１を取得する。なお、情報取得部６２は、ＬＶ一覧情報６１１からリコール履歴情報６１２を生成してもよい。
【０１３２】
プレロード制御部６３は、取得した各ＬＶ７０の最終ホストアクセス時刻を記録し（ステップＳ４２）、記録した最終ホストアクセス時刻と現在時刻とを比較する（ステップＳ４３）。
【０１３３】
プレロード制御部６３は、現在時刻から所定時間内にリコールされる候補ＬＶ７０を抽出し（ステップＳ４４）、抽出した候補ＬＶ７０（未プレロード）のうちの直近にリコールされる候補ＬＶ７０を１つ選択する（ステップＳ４５）。
【０１３４】
そして、プレロード制御部６３は、選択した候補ＬＶ７０をＴＶＣ２１にプレロードする（ステップＳ４６）。
【０１３５】
プレロード制御部６３は、抽出した候補ＬＶ７０を全てプレロードしたか否かを判定し（ステップＳ４７）、全てプレロードしていない場合（ステップＳ４７でＮｏ）、処理がステップＳ４５に移行する。
【０１３６】
一方、抽出した候補ＬＶ７０を全てプレロードした場合（ステップＳ４７でＹｅｓ）、プレロード制御部６３は、現在時刻から所定時間内にリコールされるＬＶ７０があるか否かを判定する（ステップＳ４８）。現在時刻から所定時間内にリコールされるＬＶ７０がある場合（ステップＳ４８でＹｅｓ）、処理がステップＳ４４に移行する。
【０１３７】
ステップＳ４８において現在時刻から所定時間内にリコールされるＬＶ７０がない場合（ステップＳ４８でＮｏ）、プレロード制御部６３は、現在時刻から次にＬＶ７０のリコールが発生するまでの時間を算出する（ステップＳ４９）。
【０１３８】
そして、プレロード制御部６３は、算出した時間をＦＵ実行可能時間として、オペレータに通知し（ステップＳ５０）、処理が終了する。
【０１３９】
〔１−４−５〕フロントエンド部のＦＷ更新処理の動作例
次に、図１５及び図１６を参照して、フロントエンド部１１のＦＷ更新処理の動作例を説明する。フロントエンド部１１のＦＷ更新処理は、例えば、図１１に示す処理が終了した後、ＦＷ実行可能時間に基づく監視装置６又はオペレータの判断に従って、引き続き或いは時間を置いて（例えば後日）、実施されてよい。
【０１４０】
図１５に例示するように、オペレータは、仮想テープシステム１の利用者との間でＦＵ作業のスケジュール調整を行なう（ステップＳ５１）。スケジュールとしては、例えば、フロントエンド部１１のＦＵ作業を行なう日時及び作業期間、換言すれば、仮想テープシステム１の停止日時及び停止期間等が挙げられる。
【０１４１】
次いで、オペレータは、監視装置６を介して、仮想テープ装置２の停止確認を行なう（ステップＳ５２）。停止確認としては、例えば、仮想テープ装置２内でのホスト装置４からのＩ／Ｏの有無の確認が含まれてよい。Ｉ／Ｏがある場合（ステップＳ５３、Ｓ５３でＹｅｓ）、仮想テープ装置２が停止していないため、処理がステップＳ５２に移行し、Ｉ／Ｏが無くなるまでステップＳ５２及びＳ５３が実行される。
【０１４２】
Ｉ／Ｏがない場合（ステップＳ５３でＮｏ）、仮想テープ装置２が停止しているため、オペレータは、仮想テープシステム１のフロントエンド部１１の各コンポーネントのＦＷの更新処理を行なう（ステップＳ５４及びＳ５５）。フロントエンド部１１の全てのコンポーネントのＦＷ更新処理が完了すると、ＦＵ作業が終了する。
【０１４３】
なお、ステップＳ５４及びＳ５５の処理は、図１５及び図１６にそれぞれ例示するように、２人のオペレータが並行して作業する場合を想定している。図１５の例では、オペレータＡ及びＢにより、冗長化されたコンポーネントを片系ずつＦＵする場合を示し、図１６の例では、オペレータＡ及びＢにより、異なる種類のコンポーネントのＦＵ作業が並列に実施される場合を示す。
【０１４４】
なお、各コンポーネントのＦＷ更新処理の動作例は、図５に示す比較例に係る動作例と同様でよい。
【０１４５】
以上のように、一実施形態によれば、例えば、監視装置６は、状態調査ツールによりＬＶ７０に関する情報をＶＬＰ２３から入手することで、業務中、一定時間以内には稼動しないコンポーネントを予測することができる。これにより、業務中、一定時間以内には稼動しないと予測されるコンポーネントを優先してＦＵすることができる。従って、非活性でのＦＵが行なわれるコンポーネント以外のコンポーネントを事前に（例えば業務中に）ＦＵできるため、業務停止時間を削減できる。
【０１４６】
〔１−５〕ハードウェア構成例
次に、図１７を参照して、図１に示す仮想テープシステム１における監視装置６及びＶＬＰ２３のハードウェア構成例について説明する。なお、監視装置６及びＶＬＰ２３はいずれも同様のハードウェア構成をそなえることができる。以下、便宜上、監視装置６及びＶＬＰ２３をまとめてコンピュータ１０と表記し、コンピュータ１０のハードウェア構成例について説明する。
【０１４７】
図１７に示すように、情報処理装置の一例としてのコンピュータ１０は、例示的に、プロセッサ１０ａ、メモリ１０ｂ、記憶部１０ｃ、ＩＦ部１０ｄ、Ｉ／Ｏ部１０ｅ、及び読取部１０ｆをそなえてよい。
【０１４８】
プロセッサ１０ａは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ１０ａは、各ブロック１０ｂ〜１０ｆとバス１０ｉで相互に通信可能に接続されてよい。プロセッサ１０ａとしては、ＣＰＵ、ＧＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ（例えばＦＰＧＡ）等の集積回路（ＩＣ）が用いられてもよい。なお、ＣＰＵはCentral Processing Unitの略称であり、ＧＰＵはGraphics Processing Unitの略称であり、ＭＰＵはMicro Processing Unitの略称である。ＤＳＰはDigital Signal Processorの略称であり、ＡＳＩＣはApplication Specific Integrated Circuitの略称である。ＰＬＤはProgrammable Logic Deviceの略称であり、ＦＰＧＡはField Programmable Gate Arrayの略称である。
【０１４９】
メモリ１０ｂは、種々のデータやプログラムを格納するハードウェアの一例である。メモリ１０ｂとしては、揮発性メモリ、例えば、ＤＲＡＭ（Dynamic RAM）等のＲＡＭが挙げられる。なお、ＲＡＭはRandom Access Memoryの略称である。
【０１５０】
記憶部１０ｃは、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、記憶部１０ｃは、コンピュータ１０の二次記憶装置として使用されてよく、ＯＳやファームウェア、アプリケーション等のプログラム、及び各種データが格納されてよい。記憶部１０ｃとしては、例えば、ＨＤＤ等の磁気ディスク装置、ＳＳＤ等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、ＳＣＭ（Storage Class Memory）、ＲＯＭ（Read Only Memory）等が挙げられる。記憶部１０ｃは、コンピュータ１０の各種機能の全部若しくは一部を実現するプログラム１０ｇを格納してもよい。
【０１５１】
ＩＦ部１０ｄは、ネットワークを介して、他の装置との間の接続及び通信の制御等を行なう通信インタフェースの一例である。例えばＩＦ部１０ｄとしては、イーサネット（登録商標）、光通信（例えばＦＣ）等に準拠したアダプタが挙げられる。なお、コンピュータ１０は、管理者の管理端末等との間の接続及び通信の制御等を行なう通信インタフェースをそなえてもよく、当該通信インタフェースを用いて、図示しないネットワークからプログラム１０ｇをダウンロードしてもよい。
【０１５２】
Ｉ／Ｏ部１０ｅは、例えば、マウス、キーボード、タッチパネル、操作ボタン等の入力装置、並びに、ディスプレイや、プロジェクタ、プリンタ等の出力装置の少なくとも一方を含んでよい。
【０１５３】
読取部１０ｆは、記録媒体１０ｈに記録されたデータやプログラムを読み出しプロセッサ１０ａに出力するリーダの一例である。読取部１０ｆは、記録媒体１０ｈを接続又は挿入可能な接続端子又は装置を含んでもよい。読取部１０ｆとしては、例えばＵＳＢ（Universal Serial Bus）等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、ＳＤカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体１０ｈにはプログラム１０ｇ等が格納されてもよい。
【０１５４】
記録媒体１０ｈとしては、例示的に、磁気／光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気／光ディスクとしては、例示的に、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク、ＨＶＤ（Holographic Versatile Disc）等が挙げられる。フラッシュメモリとしては、例示的に、ＵＳＢメモリやＳＤカード等の半導体メモリが挙げられる。なお、ＣＤとしては、例示的に、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ等が挙げられる。また、ＤＶＤとしては、例示的に、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等が挙げられる。
【０１５５】
上述したコンピュータ１０のハードウェア構成は例示である。従って、コンピュータ１０内でのハードウェアの増減（例えば任意のブロックの追加や削除）、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
【０１５６】
なお、上述した監視装置６及びＶＬＰ２３のハードウェア構成は例示である。従って、監視装置６又はＶＬＰ２３内でのハードウェアの増減（例えば任意のブロックの追加や省略）、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
【０１５７】
また、ＩＣＰ２５、ＩＤＰ２６、ＰＬＰ２７等のコンポーネントや、運用端末５等の端末も、図１７に示すコンピュータ１０と同様のハードウェア構成をそなえてよい。
【０１５８】
〔２〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【０１５９】
例えば、図８に示す監視装置６又はＶＬＰ２３の各機能ブロックは、それぞれ任意の組み合わせで併合してもよく、分割してもよい。
【０１６０】
また、一実施形態においては、監視装置６が情報の取得、プレロードの制御、及び、ＦＷの更新を行なうものとしたが、これに限定されるものではない。監視装置６の機能の少なくとも一部は、運用端末５、ＶＬＰ２３、或いは他のコンポーネントにそなえられてもよい。監視装置６の機能の少なくとも一部を実行する、監視装置６やＶＬＰ２３等の装置は、仮想テープシステム１の「制御装置」と位置付けられてよい。
【０１６１】
また、一実施形態においては、ストレージ装置として仮想テープシステム１を例に挙げて説明したが、これに限定されるものではない。例えば、一実施形態に係る手法は、キャッシュ装置としてキャッシュメモリをそなえ、記憶装置としてＨＤＤやＳＳＤ等のストレージをそなえる、ディスクストレージシステム等においても適用可能である。
【０１６２】
〔３〕付記
以上の実施形態に関し、更に以下の付記を開示する。
【０１６３】
（付記１）
キャッシュ装置を有するフロントエンド部と、
記憶装置を有するバックエンド部と、
前記キャッシュ装置に対するアクセスの履歴に基づいて所定時間内に前記キャッシュ装置が要求されるデータを予測する予測部と、
予測したデータを前記記憶装置から読み出して前記キャッシュ装置に格納する制御を行なう格納部と、
前記フロントエンド部が稼働した状態で、前記バックエンド部に適用されたソフトウェアの更新を制御する更新部と、をそなえる
ことを特徴とする、ストレージ装置。
【０１６４】
（付記２）
前記予測部は、現在時刻と、前記アクセスの履歴に含まれるアクセス時刻とを比較し、前記キャッシュ装置に対する次回のアクセスが前記所定時間内に発生するデータを予測する、
ことを特徴とする、付記１に記載のストレージ装置。
【０１６５】
（付記３）
前記キャッシュ装置が要求されるデータは、所定周期でスケジュールされたアクセスの対象となるデータである、
ことを特徴とする、付記１又は付記２に記載のストレージ装置。
【０１６６】
（付記４）
前記予測部は、前記予測したデータを前記キャッシュ装置に格納した後に、前記アクセスの履歴に基づいて、現在時刻から、前記記憶装置から前記キャッシュ装置にデータを格納する要求が次に発生するまでの時間である更新可能時間を予測し、
前記バックエンド部に適用されたソフトウェアの更新可否は、前記更新可能時間に基づき判断される、
ことを特徴とする、付記１〜３のいずれか１項に記載のストレージ装置。
【０１６７】
（付記５）
前記所定時間は、前記バックエンド部に適用されたソフトウェアの更新時間以上の時間である、
ことを特徴とする、付記１〜４のいずれか１項に記載のストレージ装置。
【０１６８】
（付記６）
前記フロントエンド部が有する装置は、前記バックエンド部に適用されたソフトウェアの更新中に、前記記憶装置から前記キャッシュ装置にデータを格納する要求が発生した場合、前記要求の発行元に、当該要求に係る処理を行なう装置が使用中であることを応答する、
ことを特徴とする、付記１〜５のいずれか１項に記載のストレージ装置。
【０１６９】
（付記７）
キャッシュ装置を有するフロントエンド部と、記憶装置を有するバックエンド部と、をそなえるストレージ装置において、
コンピュータに、
前記キャッシュ装置に対するアクセスの履歴に基づいて所定時間内に前記キャッシュ装置が要求されるデータを予測し、
予測したデータを前記記憶装置から読み出して前記キャッシュ装置に格納する制御を行ない、
前記フロントエンド部が稼働した状態で、前記バックエンド部に適用されたソフトウェアの更新を制御する、
処理を実行させることを特徴とする、制御プログラム。
【０１７０】
（付記８）
前記予測は、現在時刻と、前記アクセスの履歴に含まれるアクセス時刻とを比較し、前記キャッシュ装置に対する次回のアクセスが前記所定時間内に発生するデータを予測する、
ことを特徴とする、付記７に記載の制御プログラム。
【０１７１】
（付記９）
前記キャッシュ装置が要求されるデータは、所定周期でスケジュールされたアクセスの対象となるデータである、
ことを特徴とする、付記７又は付記８に記載の制御プログラム。
【０１７２】
（付記１０）
前記予測は、前記予測したデータを前記キャッシュ装置に格納した後に、前記アクセスの履歴に基づいて、現在時刻から、前記記憶装置から前記キャッシュ装置にデータを格納する要求が次に発生するまでの時間である更新可能時間を予測し、
前記バックエンド部に適用されたソフトウェアの更新可否は、前記更新可能時間に基づき判断される、
ことを特徴とする、付記７〜９のいずれか１項に記載の制御プログラム。
【０１７３】
（付記１１）
前記所定時間は、前記バックエンド部に適用されたソフトウェアの更新時間以上の時間である、
ことを特徴とする、付記７〜１０のいずれか１項に記載の制御プログラム。
【０１７４】
（付記１２）
前記バックエンド部に適用されたソフトウェアの更新中に、前記記憶装置から前記キャッシュ装置にデータを格納する要求が発生した場合、前記フロントエンド部が有する装置により、前記要求の発行元に、当該要求に係る処理を行なう装置が使用中であることが応答される、
ことを特徴とする、付記７〜１１のいずれか１項に記載の制御プログラム。
【０１７５】
（付記１３）
キャッシュ装置を有するフロントエンド部と、記憶装置を有するバックエンド部と、をそなえるストレージ装置において、
コンピュータが、
前記キャッシュ装置に対するアクセスの履歴に基づいて所定時間内に前記キャッシュ装置が要求されるデータを予測し、
予測したデータを前記記憶装置から読み出して前記キャッシュ装置に格納する制御を行ない、
前記フロントエンド部が稼働した状態で、前記バックエンド部に適用されたソフトウェアの更新を制御する、
ことを特徴とする、制御方法。
【０１７６】
（付記１４）
前記予測は、現在時刻と、前記アクセスの履歴に含まれるアクセス時刻とを比較し、前記キャッシュ装置に対する次回のアクセスが前記所定時間内に発生するデータを予測する、
ことを特徴とする、付記１３に記載の制御方法。
【０１７７】
（付記１５）
前記キャッシュ装置が要求されるデータは、所定周期でスケジュールされたアクセスの対象となるデータである、
ことを特徴とする、付記１３又は付記１４に記載の制御方法。
【０１７８】
（付記１６）
前記予測は、前記予測したデータを前記キャッシュ装置に格納した後に、前記アクセスの履歴に基づいて、現在時刻から、前記記憶装置から前記キャッシュ装置にデータを格納する要求が次に発生するまでの時間である更新可能時間を予測し、
前記バックエンド部に適用されたソフトウェアの更新可否は、前記更新可能時間に基づき判断される、
ことを特徴とする、付記１３〜１５のいずれか１項に記載の制御方法。
【０１７９】
（付記１７）
前記所定時間は、前記バックエンド部に適用されたソフトウェアの更新時間以上の時間である、
ことを特徴とする、付記１３〜１６のいずれか１項に記載の制御方法。
【０１８０】
（付記１８）
前記フロントエンド部が有する装置は、前記バックエンド部に適用されたソフトウェアの更新中に、前記記憶装置から前記キャッシュ装置にデータを格納する要求が発生した場合、前記要求の発行元に、当該要求に係る処理を行なう装置が使用中であることを応答する、
ことを特徴とする、付記１３〜１７のいずれか１項に記載の制御方法。
【符号の説明】
【０１８１】
１    仮想テープシステム
２    仮想テープ装置
２１    ＴＶＣ
２２    ＦＣスイッチ
２３    ＶＬＰ
２３１    ＬＶ情報送信部
２３２    プレロード実行部
２４    ＬＡＮハブ
２５    ＩＣＰ
２６    ＩＤＰ
２７    ＰＬＰ
２８    ＰＣＵ
３    テープライブラリ
３１    ドライブ
３２    ロボット
４    ホスト装置
４１    ＶＴＣＰ
５    運用端末
６    監視装置
６１    メモリ部
６１１    ＬＶ一覧情報
６１２    リコール履歴情報
６２    情報取得部
６３    プレロード制御部
６４    ＦＷ更新部
７０    ＬＶ
８０    ＰＶ
【図１】
2018194947.tif 000003
【図２】
2018194947.tif 000004
【図３】
2018194947.tif 000005
【図４】
2018194947.tif 000006
【図５】
2018194947.tif 000007
【図６】
2018194947.tif 000008
【図７】
2018194947.tif 000009
【図８】
2018194947.tif 000010
【図９】
2018194947.tif 000011
【図１０】
2018194947.tif 000012
【図１１】
2018194947.tif 000013
【図１２】
2018194947.tif 000014
【図１３】
2018194947.tif 000015
【図１４】
2018194947.tif 000016
【図１５】
2018194947.tif 000017
【図１６】
2018194947.tif 000018
【図１７】
2018194947.tif 000019