(57)【要約】【課題】他の処理との競合が発生した書き込み処理を効率的に実行する。【解決手段】第１記録媒体３１に対する書き込み処理の実行待ちの複数のデータに含まれる第１のデータについての書き込み処理である第１の処理と、第１の処理の後のタイミングで実行待ちの第１のデータについての第２の処理とが存在する競合状態が発生しているかを判定する競合処理判定部１０３と、競合処理判定部１０３によって競合状態が発生していると判定された場合に、第１記録媒体３１に対する書き込み処理の実行待ちの複数のデータのうち、第１のデータについての第１の処理を優先して実行する優先処理部１０４と、を備える。【選択図】図２
2017010160.tif 000002
【特許請求の範囲】
【請求項１】
第１記録媒体が格納され前記第１記録媒体に対するデータの読み書きを行なうライブラリ装置と通信可能に接続されるストレージ制御装置であって、
前記第１記録媒体に対する書き込み処理の実行待ちの複数のデータに含まれる第１のデータについての書き込み処理である第１の処理と、当該第１の処理の後のタイミングで実行待ちの前記第１のデータについての第２の処理とが存在する競合状態が発生しているかを判定する競合処理判定部と、
前記競合処理判定部によって前記競合状態が発生していると判定された場合に、前記第１記録媒体に対する書き込み処理の実行待ちの複数のデータのうち、前記第１のデータについての前記第１の処理を優先して実行する優先処理部と、
を備えることを特徴とする、ストレージ制御装置。
【請求項２】
前記競合状態は、前記第１の処理と、前記ライブラリ装置に格納される第２記録媒体に対する前記第１のデータについての書き込み処理とが存在する状態である、
ことを特徴とする、請求項１に記載のストレージ制御装置。
【請求項３】
前記競合状態は、前記第１の処理と、前記ライブラリ装置に格納される第２記録媒体からの前記第１のデータについての読み込み処理とが存在する状態である、
ことを特徴とする、請求項１又は２に記載のストレージ制御装置。
【請求項４】
前記競合状態は、前記第１の処理と、前記第１記録媒体に書き込まれるデータを一時的に記憶する記憶装置からの前記第１のデータについての削除処理とが存在する状態である、
ことを特徴とする、請求項１〜３のいずれか１項に記載のストレージ制御装置。
【請求項５】
前記ライブラリ装置が備える前記第１及び第２記録媒体に対するデータの読み書きを行なう複数のドライブ装置のうち、前記第１の書き込み処理に使用されている第１ドライブ装置の数と、前記第１の書き込み処理に使用されていない第２ドライブ装置の数とを計数するドライブ装置計数部と、
前記ドライブ装置計数部によって、前記第１ドライブ装置の数が２以上であり、前記第２ドライブ装置の数が０であると計数された場合に、前記第１ドライブ装置の数を減少させ、前記第２ドライブ装置の数を増加させるドライブ装置管理部と、
を備えることを特徴とする、請求項２又は３に記載のストレージ制御装置。
【請求項６】
前記ドライブ装置管理部は、前記ドライブ装置計数部によって前記第２ドライブ装置の数が２以上であると計数された場合に、前記第２ドライブ装置の数を減少させ、前記第１ドライブ装置の数を増加させる、
ことを特徴とする、請求項５に記載のストレージ制御装置。
【請求項７】
第１記録媒体が格納され、前記第１記録媒体に対するデータの読み書きを行なうライブラリ装置と、
前記第１記録媒体に対するデータの読み書きを制御するストレージ制御装置と、
を備え、
前記ストレージ制御装置は、
前記第１記録媒体に対する書き込み処理の実行待ちの複数のデータに含まれる第１のデータについての書き込み処理である第１の処理と、当該第１の処理の後のタイミングで実行待ちの前記第１のデータについての第２の処理とが存在する競合状態が発生しているかを判定する競合処理判定部と、
前記競合処理判定部によって前記競合状態が発生していると判定された場合に、前記第１記録媒体に対する書き込み処理の実行待ちの複数のデータのうち、前記第１のデータについての前記第１の処理を優先して実行する優先処理部と、
を備えることを特徴とする、ストレージシステム。
【請求項８】
第１記録媒体が格納され前記第１記録媒体に対するデータの読み書きを行なうライブラリ装置と通信可能に接続されるストレージ制御装置に備えられるコンピュータに、
前記第１記録媒体に対する書き込み処理の実行待ちの複数のデータに含まれる第１のデータについての書き込み処理である第１の処理と、当該第１の処理の後のタイミングで実行待ちの前記第１のデータについての第２の処理とが存在する競合状態が発生しているかを判定し、
前記競合状態が発生していると判定された場合に、前記第１記録媒体に対する書き込み処理の実行待ちの複数のデータのうち、前記第１のデータについての前記第１の処理を優先して実行する、
処理を実行させることを特徴とする、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置，ストレージシステム及び制御プログラムに関する。
【背景技術】
【０００２】
ディスクアレイ装置をホスト装置に対してライブラリ装置として認識させる仮想テープ装置が知られている。
図１０は、従来例としての仮想テープ装置を備えるストレージシステムの機能構成を模式的に示す図である。
ストレージシステム６００は、ホスト装置９に対して記憶領域を提供するものである。ストレージシステム６００は、図１０に示すように、仮想テープ装置６，ライブラリ装置８及びホスト装置９を備える。
【０００３】
ライブラリ装置８は、図１０に示すように、１又は複数（図示する例では３つ）の内部保存用テープ媒体８１及び１又は複数（図示する例では１つ）の外部排出用テープ媒体８２を格納する。また、ライブラリ装置８は、図示しないテープ媒体を搬送するロボットと、内部保存用テープ媒体８１及び外部排出用テープ媒体８２にデータを読み書き可能な１又は複数のドライブとを備える。ロボットが内部保存用テープ媒体８１又は外部排出用テープ媒体８２をドライブへ搬送して投入することにより、内部保存用テープ媒体８１又は外部排出用テープ媒体８２に書き込まれたデータに対するアクセスが可能となる。
【０００４】
ホスト装置９は、例えばサーバ機能を備えたコンピュータである。ホスト装置９は、図示しないCentral Processing Unit（ＣＰＵ）及びメモリを備え、ＣＰＵによってメモリに格納された業務ソフトウェア９１及び仮想テープ制御ソフトウェア９２を実行する。
業務ソフトウェア９１は、仮想テープ装置６に対して、データのライト（書き込み）指示やリード（読み込み）指示，キャッシュ解放（キャッシュオフ）指示を行なう。
【０００５】
仮想テープ制御ソフトウェア９２は、仮想テープ装置６に対して、外部排出用テープ媒体８２にデータを書き込ませるエクスポート（排出）指示や外部排出用テープ媒体８２からデータを読み込ませるインポート（データリストア）指示を行なう。
仮想テープ装置６は、制御サーバ６１（＃０，＃１）及びディスクアレイ装置７を備える。ホスト装置９は、仮想テープ装置６の機能により、ライブラリ装置８が直接接続されているように認識する。
【０００６】
以下、複数の制御サーバのうち１つを特定する必要があるときには「制御サーバ＃０」又は「制御サーバ＃１」と表記するが、任意の制御サーバを指すときには「制御サーバ６１」と表記する。
ディスクアレイ装置７は、図示しない複数の記憶装置を搭載し、ホスト装置９に対して記憶領域を提供する装置であり、例えばRedundant Arrays of Inexpensive Disks（ＲＡＩＤ）を用いて複数の記憶装置にデータを分散又は冗長化した状態で保存する。
【０００７】
制御サーバ６１は、サーバ機能を備えたコンピュータであり、ホスト装置９からのストレージアクセス要求（アクセス制御信号：以下、ホストＩ／Ｏという）に従って、各種制御を行なう。仮想テープ装置６は、制御サーバ＃０をプライマリとし、制御サーバ＃１をセカンダリとすることによって、システムを冗長化させる。例えば、プライマリである制御サーバ＃０が故障した場合には、セカンダリである制御サーバ＃１は、制御サーバ＃０の機能を引き継ぐ。
【０００８】
以下、図１０を用いて、従来例としてのストレージシステム６００におけるマイグレーション処理及びエクスポート処理を説明する。
ホスト装置９の業務ソフトウェア９１からのライト指示（ジョブ）が発行されると（符号Ａ１参照）、仮想テープ装置６の制御サーバ＃０は、データをLogical Volume（ＬＶ；論理ボリューム）としてディスクアレイ装置７に書き込む（符号Ａ２参照）。
【０００９】
制御サーバ＃０は、ディスクアレイ装置７へのＬＶの書き込みが完了するとホスト装置９に対してデータ書き込み完了を応答し、内部保存用テープ媒体８１に対してＬＶの書き込み（マイグレーション）を行なう（符号Ａ３及びＡ４参照）。
また、ホスト装置９の仮想テープ制御ソフトウェア９２からのエクスポート指示が発行されると（符号Ａ５参照）、仮想テープ装置６の制御サーバ＃０は、エクスポート機能を実行する（符号Ａ６参照）。具体的には、制御サーバ＃０は、ディスクアレイ装置７に書き込まれているＬＶを排出用テープ媒体８２に対して書き込む（符号Ａ７参照）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１４−１８６４４１号公報
【特許文献２】特表２００２−５２０６９６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
仮想テープ装置６によるマイグレーション処理中に、ホスト装置９からマイグレーション処理に係るＬＶに対してエクスポート指示が発行されることにより、マイグレーション処理とエクスポート処理とが競合する場合がある。このように、マイグレーション処理とエクスポート処理とが競合した場合には、仮想テープ装置６は、マイグレーション処理が完了した後にエクスポート処理を行なう。
【００１２】
ここで、仮想テープ装置６によって実行されるマイグレーション処理が多くなり、エクスポート処理と競合しているマイグレーション処理が長時間にわたって完了しない場合には、エクスポート処理が停滞してしまうという課題がある。同様に、マイグレーション処理が排出用テープ媒体８２からＬＶを読み出すインポート処理やディスクアレイ装置７に書き込まれたＬＶを削除するキャッシュオフ処理と競合した場合にも、インポート処理やキャッシュオフ処理が停滞してしまうおそれがある。
【００１３】
１つの側面では、本発明は、他の処理との競合が発生した書き込み処理を効率的に実行することを目的とする。
【課題を解決するための手段】
【００１４】
このため、このストレージ制御装置は、第１記録媒体が格納され前記第１記録媒体に対するデータの読み書きを行なうライブラリ装置と通信可能に接続されるストレージ制御装置であって、前記第１記録媒体に対する書き込み処理の実行待ちの複数のデータに含まれる第１のデータについての書き込み処理である第１の処理と、当該第１の処理の後のタイミングで実行待ちの前記第１のデータについての第２の処理とが存在する競合状態が発生しているかを判定する競合処理判定部と、前記競合処理判定部によって前記競合状態が発生していると判定された場合に、前記第１記録媒体に対する書き込み処理の実行待ちの複数のデータのうち、前記第１のデータについての前記第１の処理を優先して実行する優先処理部と、を備える。
【発明の効果】
【００１５】
開示のストレージ制御装置によれば、他の処理との競合が発生した書き込み処理を効率的に実行することができる。
【図面の簡単な説明】
【００１６】
【図１】実施形態の一例としてのストレージシステムの機能構成を模式的に示す図である。
【図２】実施形態の一例としての制御サーバの機能構成を模式的に示す図である。
【図３】実施形態の一例としてのストレージシステムにおけるテープライブラリ管理テーブルを例示する図である。
【図４】実施形態の一例としてのストレージシステムにおけるテープドライブ管理テーブルを例示する図である。
【図５】実施形態の一例としてのストレージシステムにおけるテープ媒体管理テーブルを例示する図である。
【図６】実施形態の関連技術としてのストレージシステムにおけるマイグレーション処理スケジュール管理テーブルを例示する図である。
【図７】実施形態の一例としてのストレージシステムにおけるマイグレーション処理スケジュール管理テーブルの第１の例を示す図である。
【図８】実施形態の一例としてのストレージシステムにおけるマイグレーション処理スケジュール管理テーブルの第２の例を示す図である。
【図９】実施形態の一例としてのストレージシステムにおけるマイグレーション処理を説明するフローチャートである。
【図１０】従来例としての仮想テープ装置を備えるストレージシステムの機能構成を模式的に示す図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照してストレージ制御装置，ストレージシステム及び制御プログラムに係る一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
【００１８】
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
以下、図中において、同一の各符号は同様の部分を示しているので、その説明は省略する。
【００１９】
〔Ａ〕実施形態の一例
〔Ａ−１〕システム構成
図１は、実施形態の一例としてのストレージシステムの機能構成を模式的に示す図である。
ストレージシステム１００は、ホスト装置４に対して記憶領域を提供するものである。ストレージシステム１００は、図１に示すように、仮想テープ装置１，１又は複数（図示する例では１つ）のライブラリ装置３及び１又は複数（図示する例では１つ）のホスト装置４を備える。
【００２０】
ライブラリ装置３は、図１に示すように、１又は複数（図示する例では３つ）の内部保存用テープ媒体３１及び１又は複数（図示する例では１つ）の外部排出用テープ媒体３２を格納する。以下、内部保存用テープ媒体３１と外部排出用テープ媒体３２とをあわせて、テープ媒体３１，３２という場合がある。
また、ライブラリ装置３は、テープ媒体３１，３２を搬送する図示しないロボットと、テープ媒体３１，３２にデータを読み書き可能な１又は複数（図示する例では３つ）のドライブ装置３３とを備える。ロボットがテープ媒体３１，３２をドライブ装置３３へ搬送して投入することにより、テープ媒体３１，３２に書き込まれたデータに対するアクセスが可能となる。
【００２１】
内部保存用テープ媒体３１は、第１記録媒体の一例であり、ストレージシステム１００における２次ストレージとして使用される。
外部排出用テープ媒体３２は、第２記録媒体の一例であり、ライブラリ装置３からデータを排出するための記録媒体として使用される。
テープ媒体３１，３２は、ともに可搬型の記録媒体であり、例えばLinear Tape-Open（ＬＴＯ）カートリッジである。
【００２２】
ホスト装置４は、例えばサーバ機能を備えたコンピュータである。ホスト装置４は、図示しないＣＰＵ及びメモリを備え、ＣＰＵによってメモリに格納された業務ソフトウェア４１及び仮想テープ制御ソフトウェア４２を実行する。
業務ソフトウェア４１は、仮想テープ装置１に対して、データのライト（書き込み）指示やリード（読み込み）指示，キャッシュ解放（キャッシュオフ）指示を行なう。
【００２３】
仮想テープ制御ソフトウェア４２は、仮想テープ装置１に対して、内部保存用テープ媒体３１にデータを書き込ませるマイグレーション処理の指示を行なう。また、仮想テープ制御ソフトウェア４２は、仮想テープ装置１に対して、外部排出用テープ媒体３２にデータを書き込ませるエクスポート（排出）処理の指示や外部排出用テープ媒体３２からデータを読み込ませるインポート（データリストア）処理の指示を行なう。
【００２４】
仮想テープ装置１は、制御サーバ１１（＃０，＃１）及びディスクアレイ装置２を備える。ホスト装置４は、仮想テープ装置１の機能により、ライブラリ装置３が直接接続されているように認識する。
以下、複数の制御サーバのうち１つを特定する必要があるときには「制御サーバ＃０」又は「制御サーバ＃１」と表記するが、任意の制御サーバを指すときには「制御サーバ１１」と表記する。
【００２５】
ディスクアレイ装置２は、図示しない複数の記憶装置を搭載し、ホスト装置４に対して記憶領域を提供する装置であり、例えばＲＡＩＤを用いて複数の記憶装置にデータを分散又は冗長化した状態で保存する。
制御サーバ１１は、サーバ機能を備えたコンピュータであり、ホスト装置４からのストレージアクセス要求（アクセス制御信号：以下、ホストＩ／Ｏという）に従って、各種制御を行なう。仮想テープ装置１は、制御サーバ＃０をプライマリとし、制御サーバ＃１をセカンダリとすることによって、システムを冗長化させる。例えば、プライマリである制御サーバ＃０が故障した場合には、セカンダリである制御サーバ＃１は、制御サーバ＃０の機能を引き継ぐ。
【００２６】
図２は、実施形態の一例としての制御サーバの機能構成を模式的に示す図である。
制御サーバ１１は、図２に示すように、ＣＰＵ１１０及びメモリ１２０を備える。なお、図２に示す例においては、簡単のため、制御サーバ＃１の図示を省略しているが、制御サーバ＃１も制御サーバ＃０と同様の機能構成を備える。また、図２においては、説明のため、ストレージシステム１００が備える一部の構成の図示を省略している。
【００２７】
メモリ１２０は、Read Only Memory（ＲＯＭ）及びRandom Access Memory（ＲＡＭ）を含む記憶装置である。メモリ１２０のＲＯＭには、Basic Input/Output System（ＢＩＯＳ）等のプログラムが書き込まれている。メモリ１２０上のソフトウェアプログラムは、ＣＰＵ１１０に適宜読み込まれて実行される。また、メモリ１２０のＲＡＭは、一次記録メモリあるいはワーキングメモリとして利用される。
【００２８】
メモリ１２０は、図２に示すように、構成情報格納部１２１及びデータ格納部１２２として機能する。
データ格納部１２２は、ディスクアレイ装置２に書き込むデータやディスクアレイ装置２から読み出したデータを一時的に記憶する。
構成情報格納部１２１は、ストレージシステム１００内の構成を示す構成情報を記憶する。構成情報は、例えば、テープライブラリ情報，テープドライブ情報及びテープ媒体情報を含む。
【００２９】
テープライブラリ情報は、ライブラリ装置３の使用状態を示す情報である。
図３は、実施形態の一例としてのストレージシステムにおけるテープライブラリ管理テーブルを例示する図である。
図３に示すテープライブラリ管理テーブルは、テープライブラリ情報をテーブル形式で表わしたものである。テープライブラリ管理テーブルは、項目として、ライブラリ名及びロボット状態を含む。
【００３０】
ライブラリ名は、仮想テープ装置１に接続されたライブラリ装置３を特定するための名前である。ライブラリ名には、例えば、“ＬＩＢ０”が登録される。
ロボット状態は、ライブラリ装置３が備える図示しないロボットの状態を示す。ロボット状態には、例えば、ロボットが使用可能な状態を示す“Ｉｄｌｅ”，ロボットがテープ媒体３１，３２を搬送中である状態を示す“Ｍｏｖｉｎｇ”又はロボットが故障等で使用できない状態を示す“Ｅｒｒｏｒ”が登録される。
【００３１】
テープドライブ情報は、ドライブ装置３３の使用状態を示す情報である。
図４は、実施形態の一例としてのストレージシステムにおけるテープドライブ管理テーブルを例示する図である。
図４に示すテープドライブ管理テーブルは、テープドライブ情報をテーブル形式で表わしたものである。テープドライブ管理テーブルは、項目として、ドライブ名，所属ライブラリ，ドライブ状態，マウント媒体名及び実行ＪＯＢを含む。
【００３２】
ドライブ名は、ライブラリ装置３が備えるドライブ装置３３を特定するための名前である。ドライブ名には、例えば、“ＤＲＶ００”や“ＤＲＶ０１”，“ＤＲＶ０２”，“ＤＲＶ０３”が登録される。
所属ライブラリは、各ドライブ装置３３が備えられているライブラリ装置３を示す。所属ライブラリには、例えば、“ＬＩＢ０”が登録される。
【００３３】
ドライブ状態は、各ドライブ装置３３の使用状態を示す。ドライブ状態には、例えば、テープ媒体３１，３２がドライブ装置３３にマウント中であることを示す“Ｍｏｕｎｔｉｎｇ”又はテープ媒体３１，３２がドライブ装置３３にマウントされておらずドライブ装置３３が使用可能であることを示す“Ｉｄｌｅ”が登録される。
マウント媒体名は、各ドライブ装置３３にマウントされているテープ媒体３１，３２を特定するための名前である。テープ媒体３１，３２がマウントされているドライブ装置３３に対応するマウント媒体名には、例えば、“ＬＴＯ０００”や“ＬＴＯ００１”が登録される。また、テープ媒体３１，３２がマウントされていないドライブ装置３３に対応するマウント媒体名には、例えば、“ＮＯＮ”が登録される。
【００３４】
実行ＪＯＢは、ドライブ装置３３が実行中の処理を示す。テープ媒体３１，３２がマウントされているドライブ装置３３に対応する実行ＪＯＢには、例えば、書き込み処理を実行中であることを示す“Ｗｒｉｔｅ”や読み込み処理を実行中であることを示す“Ｒｅａｄ”が登録される。また、テープ媒体３１，３２がマウントされていないドライブ装置３３に対応する実行ＪＯＢには、例えば、“ＮＯＮ”が登録される。
【００３５】
テープ媒体情報は、テープ媒体３１，３２の使用状態を示す情報である。
図５は、実施形態の一例としてのストレージシステムにおけるテープ媒体管理テーブルを例示する図である。
図５に示すテープ媒体管理テーブルは、テープ媒体情報をテーブル形式で表わしたものである。テープ媒体管理テーブルは、項目として、媒体名，所属ライブラリ，所属グループ，媒体状態，媒体容量，書き込み済みデータ量，マウントドライブ名及び実行ＪＯＢを含む。
【００３６】
媒体名は、ライブラリ装置３に格納されるテープ媒体３１，３２を特定するための名前である。媒体名には、例えば、“ＬＴＯ０００”や“ＬＴＯ００１”，“ＬＴＯ００２”，“ＬＴＯ００３”，“ＴＲＮ０００”，“ＴＲＮ００１”，“ＴＲＮ００２”が登録される。
所属ライブラリは、各テープ媒体３１，３２が格納されているライブラリ装置３を示す。所属ライブラリには、例えば、“ＬＩＢ０”が登録される。
【００３７】
所属グループは、各テープ媒体３１，３２が内部保存用テープ媒体３１であるのか外部排出用テープ媒体３２であるのかを示す。所属グループには、例えば、内部保存用テープ媒体３１であることを示す“ＢＡＳＥ”又は外部排出用テープ媒体３２であることを示す“ＴＲＡＮＳ”が登録される。
媒体状態は、各テープ媒体３１，３２の使用状態を示す。媒体状態には、例えば、テープ媒体３１，３２がドライブ装置３３にマウントされている状態であることを示す“Ｍｏｕｎｔｉｎｇ”又はテープ媒体３１，３２がドライブ装置３３にマウントされていない状態であることを示す“Ｉｄｌｅ”が登録される。
【００３８】
媒体容量は、各テープ媒体３１，３２に書き込むことができる最大のデータ容量を示す。媒体容量には、例えば、“８００ＧＢ”が登録される。
書き込み済みデータ量は、各テープ媒体３１，３２に書き込まれているデータ量を示す。書き込み済みデータ量には、例えば、“１００ＧＢ”や“５００ＧＢ”，“０ＧＢ”が登録される。
【００３９】
マウントドライブ名は、各テープ媒体３１，３２がマウントされているドライブ装置３３を特定するための名前である。ドライブ装置３３にマウントされているテープ媒体３１，３２に対応するマウントドライブ名には、例えば、“ＤＲＶ００”や“ＤＲＶ０１”が登録される。また、ドライブ装置３３にマウントされていないテープ媒体３１，３２に対応するマウントドライブ名には、例えば、“ＮＯＮ”が登録される。
【００４０】
実行ＪＯＢは、各テープ媒体３１，３２を使用して実行されている処理を示す。ドライブ装置３３にマウントされているテープ媒体３１，３２に対応する実行ＪＯＢには、例えば、テープ媒体３１，３２に対してデータの書き込み処理が実行されていることを示す“Ｗｒｉｔｅ”やテープ媒体３１，３２からのデータの読み出し処理が実行されていることを示す“Ｒｅａｄ”が登録される。また、ドライブ装置３３にマウントされていないテープ媒体３１，３２に対応する実行ＪＯＢには、例えば、“ＮＯＮ”が登録される。
【００４１】
ＣＰＵ１１０は、コンピュータの一例であり、制御サーバ１１全体を制御する。ＣＰＵ１１０は、マルチプロセッサであってもよい。また、制御サーバ１１全体を制御するための装置は、ＣＰＵ１１０に限定されるものではなく、例えば、ＭＰＵ（Micro Processing Unit）やＤＳＰ（Digital Signal Processor），ＡＳＩＣ（Application Specific Integrated Circuit），ＰＬＤ（Programmable Logic Device），ＦＰＧＡ（Field Programmable Gate Array）のいずれか一つであってもよい。また、制御サーバ１１全体を制御するための装置は、ＣＰＵ，ＭＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ及びＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００４２】
ＣＰＵ１１０は、メモリ１２０に格納されたOperating System（ＯＳ）やプログラムを実行することにより、種々の機能を実現する。すなわち、ＣＰＵ１１０は、図２に示すように、コマンド制御部１１１，ホストInterface（Ｉ／Ｆ）制御部１１２，診断部１１３及び構成情報制御部１１４として機能する。
なお、これらのコマンド制御部１１１，ホストＩ／Ｆ制御部１１２，診断部１１３及び構成情報制御部１１４としての機能を実現するためのプログラム（制御プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体から図示しない読取装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供してもよい。
【００４３】
コマンド制御部１１１，ホストＩ／Ｆ制御部１１２，診断部１１３及び構成情報制御部１１４としての機能を実現する際には、内部記憶装置（本実施形態ではメモリ１２０）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１１０）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
【００４４】
ホストＩ／Ｆ制御部１１２は、ホスト装置４からの要求を受信する。また、ホストＩ／Ｆ制御部１１２は、ホスト装置４からの要求に対する応答をホスト装置４に対して行なう。ホストＩ／Ｆ制御部１１２は、ホスト装置４からディスクアレイ装置２に対する書き込み要求を受信した場合には、書き込み要求に係るホスト装置４から送信されたデータをメモリ１２０のデータ格納部１２２に一時的に格納する。また、ホストＩ／Ｆ制御部１１２は、ホスト装置４からディスクアレイ装置２に対する読み込み要求を受信した場合には、ディスクアレイ装置２から読み出したデータとともにメモリ１２０のデータ格納部１２２に格納されているデータも適宜ホスト装置４に対して送信する。
【００４５】
診断部１１３は、ホストＩ／Ｆ制御部１１２によって受信されたホスト装置４からの要求を診断し、種々の処理を行なう。診断部１１３は、例えば、構成情報制御部１１４に対して、構成情報の変更（フラグのＯＮ／ＯＦＦ等）の依頼を行なう。また、診断部１１３は、コマンド制御部１１１に対して、ディスクアレイ装置２又はライブラリ装置３へのコマンド発行を依頼する。更に、診断部１１３は、コマンド制御部１１１から応答されたコマンドの実行結果及びデータ格納部１２２に格納されたデータの診断を行なう。また、診断部１１３は、ホストＩ／Ｆ制御部１１２に対して、ホスト装置４からの要求に対する応答依頼を行なう。
【００４６】
構成情報制御部１１４は、診断部１１３からの要求により、構成情報格納部１２１に格納されている構成情報の更新又は読み出しを行なう。
コマンド制御部１１１は、診断部１１３からの要求により、ディスクアレイ装置２又はライブラリ装置３に対してコマンドを発行する。コマンド制御部１１１は、図２に示すように、ディスクアレイ読み書き部１０１，テープライブラリ読み書き部１０２，競合処理判定部１０３，優先処理部１０４，ドライブ装置計数部１０５及びドライブ装置管理部１０６として機能する。
【００４７】
ディスクアレイ読み書き部１０１は、ディスクアレイ装置２に対して、データの読み込みコマンド又は書き込みコマンドを発行する。ディスクアレイ読み書き部１０１は、データの書き込みコマンドを発行する場合には、ディスクアレイ装置２に対して、データ格納部１２２に格納されたデータも送信する。また、ディスクアレイ読み書き部１０１は、データの読み込みコマンドを発行する場合には、ディスクアレイ装置２からの応答として送信されてきたデータをデータ格納部１２２に格納する。
【００４８】
ディスクアレイ読み書き部１０１は、キャッシュオフ処理を行なう。ここで、キャッシュオフ処理とは、ディスクアレイ装置２に一時的に格納されているＬＶを削除することにより、ディスクアレイ装置２のデータ格納領域を解放する処理である。
テープライブラリ読み書き部１０２は、ライブラリ装置３に対して、データの読み込みコマンド又は書き込みコマンドを発行する。テープライブラリ読み書き部１０２は、データの書き込みコマンドを発行する場合には、ライブラリ装置３に対して、データ格納部１２２に格納されたデータも送信する。また、テープライブラリ読み書き部１０２は、データの読み込みコマンドを発行する場合には、ライブラリ装置３からの応答として送信されてきたデータをデータ格納部１２２に格納する。
【００４９】
テープライブラリ読み書き部１０２は、マイグレーション処理，エクスポート処理及びインポート処理を行なう。
マイグレーション処理とは、ホスト装置４からの要求により、ディスクアレイ装置２に一時的に格納されているＬＶを内部保存用テープ媒体３１に書き込む処理である。テープライブラリ読み書き部１０２は、マイグレーション処理を行なったＬＶについて、ＬＶのデータがホスト装置４から書き込まれた時刻である最終マイグレーション時刻を記録する。
【００５０】
エクスポート処理とは、ホスト装置４からの要求により、ディスクアレイ装置２に一時的に格納されているＬＶを外部排出用テープ媒体３２に書き込み処理である。テープライブラリ読み書き部１０２は、最終マイグレーション時刻を付加したエクスポート処理の対象となったＬＶを外部排出用テープ媒体３２に書き込む。
インポート処理とは、ホスト装置４からの要求により、外部排出用テープ媒体３２に書き込まれているＬＶを読み出して、ディスクアレイ装置２に一時的に格納する処理である。テープライブラリ読み書き部１０２は、インポート処理の対象となったＬＶに付加された最終マイグレーション時刻を参照することにより、ＬＶのデータがいつホスト装置４から書き込まれたのかを認識することができる。
【００５１】
仮想テープ装置１においてマイグレーション処理が完了していないＬＶについてエクスポート処理，インポート処理又はキャッシュオフ処理の指示がホスト装置４から発生する場合がある。この場合に、仮想テープ装置１として各処理の指示は受け付けるが、最終マイグレーション時刻によってＬＶのデータがいつホスト装置４から書き込まれたのかを認識できるようにするために、各処理はマイグレーション処理の完了を待ってから開始される。
【００５２】
エクスポート処理の対象となったＬＶのマイグレーション処理が長時間できない場合には、エクスポート処理も長時間停滞してしまう。ここで、マイグレーション処理が長時間できない理由としては、例えば、先に実行する必要があるマイグレーション処理が多数存在する場合がある。マイグレーション処理の優先度は、例えば、ＬＶのデータ量と、ＬＶがホスト装置４によって更新された時刻からの経過時間とによって決定される（図６を用いて詳述）。
【００５３】
競合処理判定部１０３は、各マイグレーション処理について競合状態が発生しているかを判定する。なお、競合処理判定部１０３の機能の詳細については、図７を用いて後述する。
優先処理部１０４は、競合状態が発生しているマイグレーション処理を優先して実行する。なお、優先処理部１０４の機能の詳細については、図７を用いて後述する。
【００５４】
ドライブ装置計数部１０５は、ライブラリ装置３に備えられる複数のドライブ装置３３を使用して実行中の処理毎のドライブ装置３３の台数を計数する。なお、ドライブ装置計数部１０５の機能の詳細については、図８を用いて後述する。
ドライブ装置管理部１０６は、ドライブ装置計数部１０５による計数の結果に基づき、各ドライブ装置３３を使用して実行する処理を管理する。なお、ドライブ装置管理部１０６の機能の詳細については、図８を用いて後述する。
【００５５】
図６は、実施形態の関連技術としてのストレージシステムにおけるマイグレーション処理スケジュール管理テーブルを例示する図である。
図６に示すマイグレーション処理スケジュール管理テーブルは、ホスト装置４から指示されたマイグレーション処理の処理順序を示すものである。マイグレーション処理スケジュール管理テーブルは、項目として、処理順序，ＬＶ名，ＬＶサイズ，ホスト更新時刻，実行状況及びテープ媒体保存箇所を含む。
【００５６】
本実施形態の一例としての制御サーバ１１は、図６に示すマイグレーション処理スケジュール管理テーブルに関する情報を用いてマイグレーション処理を実行することも可能である。
処理順序は、マイグレーション処理が行なわれる順序を示す。例えば、ホスト装置４から発行された未完了のマイグレーション処理の指示が１０個である場合には、図６に示すように、処理順序には、“１”〜“１０”の自然数が登録される。処理順序は、登録されている数字が小さいほどマイグレーション処理が先に実行されることを示す。
【００５７】
ＬＶ名は、マイグレーション処理の対象であるＬＶ（データ）を特定するための名前である。ＬＶ名には、例えば、“Ａ００００”や“Ａ０００１”，“Ａ０００２”が登録される。
ＬＶサイズは、マイグレーション処理の対象であるＬＶのデータ量を示す。ＬＶサイズには、例えば、“９００ＭＢ”や“７００ＭＢ”，“４００ＭＢ”が登録される。
【００５８】
ホスト更新時刻は、マイグレーション処理のＬＶがホスト装置４によって更新された時刻を示す。ホスト更新時刻には、例えば、“２０１４．０７．１０−００：００：００”や“２０１４．０７．１０−００：００：１０”，“２０１４．０７．１０−００：００：２０”が登録される。
上述した処理順序は、ＬＶサイズ及びホスト更新時刻に基づいて決定される。処理順序には、例えば、式（ＬＶサイズ）＋（現在時刻−ホスト更新時刻）×１０によって求められる評価値が大きい順に、小さい数字が対応づけられる。つまり、上記式は、ＬＶサイズが大きいほど評価値が大きく、ホスト更新時刻からの経過時間が大きいほど評価値が大きいことを示している。なお、上記式において、「現在時刻」及び「ホスト更新時刻」は、秒単位で計算する。
【００５９】
図６に示す例において、現在時刻は、２０１４年７月１０日０時２分０秒であるとする。この場合に、ＬＶ名“Ａ００００”についてのマイグレーション処理は、（ＬＶサイズ）＋（現在時刻−ホスト更新時刻）×１０＝９００＋１２０×１０＝２１００ポイントとなる。また、ＬＶ名“Ａ０００１”についてのマイグレーション処理は、（ＬＶサイズ）＋（現在時刻−ホスト更新時刻）×１０＝７００＋１１０×１０＝１８００ポイントとなる。更に、ＬＶ名“Ａ０００３”についてのマイグレーション処理は、（ＬＶサイズ）＋（現在時刻−ホスト更新時刻）×１０＝４００＋１００×１０＝１４００ポイントとなる。よって、評価値は、大きいものから順にＬＶ名“Ａ００００”，“Ａ０００１”，“Ａ０００２”のマイグレーション処理となる。そして、ＬＶ名“Ａ００００”，“Ａ０００１”及び“Ａ０００２”のマイグレーション処理には、それぞれ処理順序“１”，“２”及び“３”が対応づけられる。以下、処理順序“４”以降のマイグレーション処理についても、処理順序“１”〜“３”のマイグレーション処理と同様に、処理順序の決定することができる。
【００６０】
従って、上記式により求めた評価値に基づく処理順序の決定方法では、ＬＶサイズが小さいＬＶについてのマイグレーション処理は、同時刻に更新されたＬＶサイズが大きいＬＶについてのマイグレーション処理よりも、優先度が低くなる。また、ＬＶサイズが小さいＬＶについてのマイグレーション処理は、後から更新されたよりＬＶサイズが大きいＬＶについてのマイグレーション処理よりも、優先度が低くなる。
【００６１】
実行状況は、マイグレーション処理の実行状況を示す。実行状況には、マイグレーション処理が実行中であることを示す“ＥＸＥＣＵＴＩＮＧ”及び実行待ちであることを示す“ＷＡＩＴＩＮＧ”が登録される。図６においては、処理順序が“１”のマイグレーション処理が実行中であり、処理順序が“２”以降のマイグレーション処理は実行待ちであることを示している。
【００６２】
テープ媒体保存箇所は、マイグレーション処理に係るＬＶが保存される内部保存用テープ媒体３１を示す。テープ媒体保存箇所には、例えば、“ＬＴＯ０００”が登録される。図６においては、処理順序が“１”で実行中であるマイグレーション処理に係るＬＶは“ＬＴＯ００１”に保存され、処理順序が“２”以降であり実行待ちであるマイグレーション処理に係るＬＶの保存先は未定であることを示している。
【００６３】
図７は、実施形態の一例としてのストレージシステムにおけるマイグレーション処理スケジュール管理テーブルの第１の例を示す図である。
テープライブラリ読み書き部１０２は、図７に示すマイグレーション処理スケジュール管理テーブルに基づき、処理順序の数字が小さいマイグレーション処理から順番に実行する。マイグレーション処理スケジュール管理テーブルに関する情報（スケジュール管理情報）は、例えば、メモリ１２０の構成情報格納部１２１に格納される。
【００６４】
さて、本仮想テープ装置１においては、上記式を用いた手法に加えて、競合処理の有無に基づいて処理順序の決定を行なう。
図７に示すマイグレーション処理スケジュール管理テーブルは、図６に示したマイグレーション処理スケジュール管理テーブルの各項目に加えて、項目として、競合処理を含む。図７に示すマイグレーション処理スケジュール管理テーブルにおいて、競合処理以外の各項目は図６に示したマイグレーション処理スケジュール管理テーブルの各項目と同様であるので、その説明は省略する。
【００６５】
競合処理は、同一のＬＶに対するＩ／Ｏが存在することにより、他の処理と競合が発生しているマイグレーション処理を示す。他の処理とは、例えば、エクスポート処理やインポート処理，キャッシュオフ処理である。競合処理には、他の処理との競合が発生していることを示す“有”又は他の処理との競合が発生していないことを示す“無”が登録される。
【００６６】
競合処理判定部１０３は、各マイグレーション処理について競合状態が発生しているかを判定する。競合状態とは、内部保存用テープ媒体３１に対する書き込み処理であるマイグレーション処理と、マイグレーション処理の後に実行されるマイグレーション処理の対象と同一のＬＶについての処理とが存在する状態である。競合処理判定部１０３は、スケジュール管理情報を参照することにより、競合状態が発生しているかを判定する。
【００６７】
具体的には、競合処理判定部１０３は、マイグレーション処理と、外部排出用テープ媒体３２に対するマイグレーション処理の対象と同一のＬＶについての書き込み処理であるエクスポート処理とが存在するかを判定する。また、競合処理判定部１０３は、マイグレーション処理と、外部排出用テープ媒体３２からのマイグレーション処理の対象と同一のＬＶについての読み込み処理であるインポート処理とが存在するかを判定する。更に、競合処理判定部１０３は、マイグレーション処理と、ディスクアレイ装置２からのマイグレーション処理の対象と同一のＬＶについての削除処理であるキャッシュオフ処理とが存在するかを判定する。
【００６８】
優先処理部１０４は、競合状態が発生しているマイグレーション処理を優先して実行する。具体的には、優先処理部１０４は、ホスト装置４からの要求により発生している複数のマイグレーション処理のうち、競合処理判定部１０３によって競合状態が発生していると判定されたマイグレーション処理を優先して実行する。すなわち、優先処理部１０４は、競合処理判定部１０３によって競合状態が発生していると判定されたマイグレーション処理について、スケジュール管理情報における処理順序を上位にする。複数の競合状態が発生しているマイグレーション処理がある場合には、優先度処理部１０４は、図６を用いて上述したように、ＬＶサイズとホスト更新時刻とに基づいて、これらの競合するＬＶについてのマイグレーション処理間で優先度を決定する。
【００６９】
優先処理部１０４は、図７に示す例において、競合処理が“無”であるＬＶ名“Ａ００００１”〜“Ａ００００７”についての処理に優先して、競合処理が“有”であるＬＶ名“Ａ０００８”及び“Ａ０００９”についてのマイグレーション処理を実行する。具体的には、優先処理部１０４は、競合処理が“無”であっても、実行状況が“ＥＸＥＣＵＴＩＮＧ”であるＬＶ名“Ａ０００１”についてのマイグレーション処理は中止させずに継続させる。また、優先処理部１０４は、競合処理が“無”であって、実行状況が“ＷＡＩＴＩＮＧ”であるＬＶ名“Ａ０００１”〜“Ａ００００７”についての処理よりも前に、競合処理が“有”であるマイグレーション処理を実行する。つまり、優先処理部１０４は、ＬＶ名“Ａ００００８”及び“Ａ００００９”についてのマイグレーション処理を処理順序“２”及び“３”にそれぞれ対応づける（符号Ｂ１及びＢ２参照）。また、優先処理部１０４は、ＬＶ名“Ａ００００１”〜“Ａ００００７”についてのマイグレーション処理を処理順序“４”〜“１０”にそれぞれ対応づける。
【００７０】
図８は、実施形態の一例としてのストレージシステムにおけるマイグレーション処理スケジュール管理テーブルの第２の例を示す図である。
図８においては、競合処理が“有”のマイグレーション処理が複数あり、使用可能なドライブ装置３３及び内部保存用テープ媒体３１がある場合には、同時に実行するマイグレーション処理を追加してスケジュールする例を示している。
【００７１】
処理順序“２”のＬＶ名“Ａ００００８”についてのマイグレーション処理は、図８に示す例において、図７に示した例と比べて、実行状況が“ＥＸＥＣＵＴＩＮＧ”に更新され、テープ媒体保存箇所が“ＬＴＯ００１”に更新されている（符号Ｃ１参照）。
以下、ドライブ装置計数部１０５及びドライブ装置管理部１０６によるマイグレーション処理に使用するドライブ装置の台数の変更処理について説明する。
【００７２】
ドライブ装置計数部１０５は、複数のドライブ装置３３を使用して実行中の処理毎に、ドライブ装置３３の台数を計数する。具体的には、ドライブ装置計数部１０５は、ライブラリ装置３に備えられる複数のドライブ装置３のうち、マイグレーション処理に使用されているドライブ装置３３の数と、マイグレーション処理に使用されていないドライブ装置３３の数とを計数する。
【００７３】
ドライブ装置計数部１０５は、例えば、マイグレーション処理スケジュール管理テーブルにおいて実行状況が“ＥＸＥＣＵＴＩＮＧ”であるマイグレーション処理の数をマイグレーション処理に使用されているドライブ装置３３の数として計数する。また、ドライブ装置計数部１０５は、例えば、図４に示したテープドライブ管理テーブルに登録されているドライブ装置３３の数から、マイグレーション処理に使用されているドライブ装置３３の数を減算する。そして、ドライブ装置計数部１０５は、減算により求まった値をマイグレーション処理に使用されていないドライブ装置３３の数として計数する。
【００７４】
ドライブ装置管理部１０６は、ドライブ装置計数部１０５による計数の結果に基づき、各ドライブ装置３３を使用して実行する処理を管理する。
例えば、ドライブ装置計数部１０５によってマイグレーション処理に使用されていないドライブ装置３３の数が２以上であると計数される場合がある。この場合に、ドライブ装置管理部１０６は、マイグレーション処理以外の処理であるエクスポート処理又はインポート処理に使用するドライブ装置３３の数を１つ減少させ、マイグレーション処理に使用するドライブ装置３３の数を１つ増加させる。
【００７５】
図７に示した例において、マイグレーション処理に使用されていないドライブ装置３３が２以上あるとする。この場合に、ドライブ装置管理部１０６は、マイグレーション処理に使用されていないドライブ装置３を使用したエクスポート処理又はインポート処理の終了後に、エクスポート処理又はインポート処理に使用されていたドライブ装置３３の１つをマイグレーション処理に割り当てる。つまり、ドライブ装置管理部１０６は、図８に示すように、処理順序“１”のＬＶ名“Ａ０００００”についてのマイグレーション処理に加えて、処理順序“２”のＬＶ名“Ａ００００８”についてのマイグレーション処理の実行状況を“ＥＸＥＣＵＴＩＮＧ”に設定する。
【００７６】
つまり、競合状態が発生しているマイグレーション処理が複数ある場合には、マイグレーション処理に使用中のドライブ装置３３及び内部保存用テープ媒体３１以外に、未使用状態のドライブ装置３３及び内部保存用テープ媒体３１をマイグレーション処理に優先的に使用する。これにより、仮想テープ装置１は、複数のマイグレーション処理を同期間に並行して実行する並行マイグレーション処理を行なう。
【００７７】
また、例えば、ドライブ装置計数部１０５によって、マイグレーション処理に使用しているドライブ装置３３の数が２以上であり、マイグレーション処理に使用されていないドライブ装置３３の数が０であると計数される場合がある。この場合に、ドライブ装置管理部１０６は、マイグレーション処理に使用するドライブ装置３３の数を１つ減少させ、マイグレーション処理以外の処理であるエクスポート処理又はインポート処理に使用するドライブ装置３３の数を１つ増加させる。
【００７８】
ここで、「マイグレーション処理に使用されていないドライブ装置３３」とは、マイグレーション処理以外の処理であるエクスポート処理やインポート処理に使用されているドライブ装置３３又はいずれの処理にも使用されていないドライブ装置３３を示す。また、以下、「マイグレーション処理に使用されていないドライブ装置３３」を「空きドライブ」という場合がある。
【００７９】
図８に示す例において、マイグレーション処理に使用されているドライブ装置３３が２以上あり、マイグレーション処理に使用されていないドライブ装置３３が０であるとする。この場合に、ドライブ装置管理部１０６は、マイグレーション処理の終了後に、マイグレーション処理に使用されていたドライブ装置３３の１つをマイグレーション処理以外のエクスポート処理又はインポート処理に割り当てる。例えば、処理順序“２”のＬＶ名“Ａ０００８”についてのマイグレーション処理が処理順序“１”のＬＶ名“Ａ０００００”についてのマイグレーション処理よりも先に完了したとする。この場合に、ドライブ装置管理部１０６は、処理順序“１”のＬＶ名“Ａ０００００”についてのマイグレーション処理が完了するまで、処理順序“３”のＬＶ名“Ａ００００９”のマイグレーション処理の実行状況を“ＷＡＩＴＩＮＧ”のままにする。
【００８０】
つまり、マイグレーション処理の完了後に競合状態が発生したエクスポート処理又はインポート処理を行なうため、エクスポート処理又はインポート処理を実行するためのドライブ装置３３がなくなるような並列マイグレーション処理は行なわない。
【００８１】
〔Ａ−２〕動作
上述の如く構成された実施形態の一例としてのストレージシステムにおける並列マイグレーション処理を、図９に示すフローチャート（ステップＳ１〜Ｓ１３）に従って説明する。
ホスト装置４は、仮想サーバ１１によるマイグレーション処理の実行中において、エクスポート処理，インポート処理又はキャッシュオフ処理の指示を発行する（ステップＳ１）。
【００８２】
競合処理判定部１０３は、マイグレーション処理の対象と同一のＬＶについての処理である競合処理が存在するかを判定する（ステップＳ２）。
競合処理が存在しない場合には（ステップＳ２のＮｏルート参照）、テープライブラリ読み書き部１０２はエクスポート処理若しくはインポート処理を開始し、又はディスクアレイ読み書き部１０１はキャッシュオフ処理を開始する（ステップＳ３）。そして、処理は終了する。
【００８３】
一方、競合処理がある場合には（ステップＳ２のＹｅｓルート参照）、優先処理部１０４は、複数のマイグレーション処理のうち、競合処理が発生しているＬＶについてのマイグレーション処理を優先して実行する（ステップＳ４）。
ドライブ装置計数部１０５は、マイグレーション処理に使用されていないドライブ装置３３である空きドライブが存在するかを判定する（ステップＳ５）。
【００８４】
空きドライブが存在する場合には（ステップＳ５のＹｅｓルート参照）、ドライブ装置計数部１０５は、空きドライブが１台であるかを判定する（ステップＳ６）。
空きドライブが１台である場合には（ステップＳ６のＹｅｓルート参照）、エクスポート処理又はインポート処理に割り当てる空きドライブを維持するため、マイグレーション処理に使用するドライブ装置３３の台数は変更されない。つまり、処理はステップＳ８へ移行する。
【００８５】
一方、空きドライブが１台ではない（２台以上である）場合には（ステップＳ６のＮｏルート参照）、ドライブ装置管理部１０６は、並列マイグレーション処理に使用するドライブ装置３３の台数を「＋１」する（ステップＳ７）。具体的には、ドライブ装置管理部１０６は、空きドライブであるマイグレーション処理に使用していないドライブ装置３３の台数を１台減少させ、マイグレーション処理に使用するドライブ装置３３の台数を１台増加させる。
【００８６】
ドライブ装置管理部１０６は、空きドライブをエクスポート処理又はインポート処理の実行に割り当てる（ステップＳ８）。
競合処理が存在するＬＶについてのマイグレーション処理が完了後、テープライブラリ読み書き部１０２はエクスポート処理若しくはインポート処理を開始し、又はディスクアレイ読み書き部１０１はキャッシュオフ処理を開始する（ステップＳ９）。そして、処理は終了する。
【００８７】
ステップＳ５において、空きドライブが存在しない場合には（ステップＳ５のＮｏルート参照）、ドライブ装置計数部１０５は、マイグレーション処理との競合処理がキャッシュオフ処理であるかを判定する（ステップＳ１０）。
競合処理がキャッシュオフ処理である場合には（ステップＳ１０のＹｅｓルート参照）、キャッシュオフ処理はドライブ装置３３を使用しないため、マイグレーション処理に使用しているドライブ装置３３の解放は行なわれない。つまり、処理はステップＳ９へ移行する。
【００８８】
一方、競合処理がキャッシュオフ処理でない場合には（ステップＳ１０のＮｏルート参照）、ドライブ装置計数部１０５は、並列マイグレーション処理が実行中であるか（マイグレーション処理に使用しているドライブ装置３３が２台以上あるか）を判定する（ステップＳ１１）。
並列マイグレーション処理が実行中でない場合には（ステップＳ１１のＮｏルート参照）、マイグレーション処理に使用するドライブ装置３３を維持するため、マイグレーション処理に使用するドライブ装置３３の台数は変更されない。つまり、処理はステップＳ１３へ移行する。
【００８９】
一方、並列マイグレーション処理が実行中である場合には（ステップＳ１１のＹｅｓルート参照）、並列マイグレーション処理に使用しているドライブ装置３３の台数を「−１」する（ステップＳ１２）。具体的には、ドライブ装置管理部１０６は、マイグレーション処理に使用しているドライブ装置３３の台数を１台減少させ、マイグレーション処理に使用しないドライブ装置３３である空きドライブの台数を１台増加させる。
【００９０】
ドライブ装置管理部１０６は、空きドライブに設定されたドライブ装置３３における直前の処理が完了して解放された後、解放された空きドライブをエクスポート処理又はインポート処理の実行に割り当てる（ステップＳ１３）。そして、処理はステップＳ９へ移行する。
【００９１】
〔Ａ−３〕効果
競合処理判定部１０３は、内部保存用テープ媒体３１に対する書き込み処理であるマイグレーション処理と、マイグレーション処理の後に実行されるマイグレーション処理の対象と同一のＬＶについての処理とが存在する競合状態が発生しているかを判定する。また、優先処理部１０４は、競合処理判定部１０３によって競合状態が発生していると判定された場合に、複数のマイグレーション処理のうち、競合状態が発生しているマイグレーション処理を優先して実行する。
【００９２】
これにより、他の処理との競合が発生した書き込み処理（マイグレーション処理）を効率的に実行することができる。つまり、マイグレーション処理と競合が発生した他の処理の開始時刻を早めることができる。
また、マイグレーション処理前に行なわれるディスクアレイ装置２へのＬＶの書き込み処理の完了から、同一のＬＶに対する他の処理の指示が発行されるまでの間隔が短い場合がある。このような場合においても、競合が発生したマイグレーション処理を優先して行なうため、マイグレーション処理と競合が発生した他の処理の開始時刻を早めることができる。
【００９３】
更に、図６等を用いて上述したように、マイグレーション処理の優先度は、ＬＶサイズとホスト更新時刻とに基づいて決定される。このため、１つのＬＶあたりのデータ量や１本のテープ媒体３１，３２あたりのデータ容量が増大した場合に、極端にＬＶサイズの小さいＬＶについてのマイグレーション処理が長時間行なわれないおそれが増大する。このような場合においても、競合が発生したマイグレーション処理を優先して行なうため、マイグレーション処理と競合が発生した他の処理の開始時刻を早めることができる。
【００９４】
競合状態は、マイグレーション処理と、外部排出用テープ媒体３２に対するマイグレーション処理の対象と同一のＬＶについてのエクスポート処理とが存在する状態である。
これにより、エクスポート処理との競合が発生したマイグレーション処理を効率的に実行することができる。つまり、マイグレーション処理と競合が発生したエクスポート処理の開始時刻を早めることができる。
【００９５】
競合状態は、マイグレーション処理と、外部排出用テープ媒体３２からのマイグレーション処理の対象と同一のＬＶについてのインポート処理とが存在する状態である。
これにより、インポート処理との競合が発生したマイグレーション処理を効率的に実行することができる。つまり、マイグレーション処理と競合が発生したインポート処理の開始時刻を早めることができる。
【００９６】
競合状態は、マイグレーション処理と、ディスクアレイ装置２からのマイグレーション処理の対象と同一のＬＶについてのキャッシュオフ処理とが存在する状態である。
これにより、キャッシュオフ処との競合が発生したマイグレーション処理を効率的に実行することができる。つまり、マイグレーション処理と競合が発生したキャッシュオフ処の開始時刻を早めることができる。
【００９７】
ドライブ装置計数部１０５は、複数のドライブ装置３３のうち、マイグレーション処理に使用されているドライブ装置３３の数と、マイグレーション処理に使用されていないドライブ装置３３の数とを計数する。例えば、ドライブ装置計数部１０５は、マイグレーション処理に使用されているドライブ装置３３の数が２以上であり、マイグレーション処理に使用されていないドライブ装置３３の数が０であると計数する。この場合に、ドライブ装置管理部１０６は、マイグレーション処理に使用されているドライブ装置３３の数を減少させ、マイグレーション処理に使用されないドライブ装置３３の数を増加させる。
これにより、エクスポート処理やインポート処理等のマイグレーション処理以外の処理について、開始時刻を早め、マイグレーション処理と並行して実行することができる。
【００９８】
例えば、ドライブ装置計数部１０５は、マイグレーション処理に使用されていないドライブ装置３３の数が２以上であると計数する。この場合に、ドライブ装置管理部１０６は、マイグレーション処理に使用されていないドライブ装置３３の数を減少させ、マイグレーション処理に使用されるドライブ装置３３の数を増加させる。
これにより、ドライブ装置３３をマイグレーション処理に使用する資源として追加することで、複数のＬＶについてのマイグレーション処理に要する時間であるトータルマイグレーション時間を短縮することができる。
【００９９】
〔Ｂ〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１００】
〔Ｃ〕付記
（付記１）
第１記録媒体が格納され前記第１記録媒体に対するデータの読み書きを行なうライブラリ装置と通信可能に接続されるストレージ制御装置であって、
前記第１記録媒体に対する書き込み処理の実行待ちの複数のデータに含まれる第１のデータについての書き込み処理である第１の処理と、当該第１の処理の後のタイミングで実行待ちの前記第１のデータについての第２の処理とが存在する競合状態が発生しているかを判定する競合処理判定部と、
前記競合処理判定部によって前記競合状態が発生していると判定された場合に、前記第１記録媒体に対する書き込み処理の実行待ちの複数のデータのうち、前記第１のデータについての前記第１の処理を優先して実行する優先処理部と、
を備えることを特徴とする、ストレージ制御装置。
【０１０１】
（付記２）
前記競合状態は、前記第１の処理と、前記ライブラリ装置に格納される第２記録媒体に対する前記第１のデータについての書き込み処理とが存在する状態である、
ことを特徴とする、付記１に記載のストレージ制御装置。
【０１０２】
（付記３）
前記競合状態は、前記第１の処理と、前記ライブラリ装置に格納される第２記録媒体からの前記第１のデータについての読み込み処理とが存在する状態である、
ことを特徴とする、付記１又は２に記載のストレージ制御装置。
【０１０３】
（付記４）
前記競合状態は、前記第１の処理と、前記第１記録媒体に書き込まれるデータを一時的に記憶する記憶装置からの前記第１のデータについての削除処理とが存在する状態である、
ことを特徴とする、付記１〜３のいずれか１項に記載のストレージ制御装置。
【０１０４】
（付記５）
前記ライブラリ装置が備える前記第１及び第２記録媒体に対するデータの読み書きを行なう複数のドライブ装置のうち、前記第１の書き込み処理に使用されている第１ドライブ装置の数と、前記第１の書き込み処理に使用されていない第２ドライブ装置の数とを計数するドライブ装置計数部と、
前記ドライブ装置計数部によって、前記第１ドライブ装置の数が２以上であり、前記第２ドライブ装置の数が０であると計数された場合に、前記第１ドライブ装置の数を減少させ、前記第２ドライブ装置の数を増加させるドライブ装置管理部と、
を備えることを特徴とする、付記２又は３に記載のストレージ制御装置。
【０１０５】
（付記６）
前記ドライブ装置管理部は、前記ドライブ装置計数部によって前記第２ドライブ装置の数が２以上であると計数された場合に、前記第２ドライブ装置の数を減少させ、前記第１ドライブ装置の数を増加させる、
ことを特徴とする、付記５に記載のストレージ制御装置。
【０１０６】
（付記７）
第１記録媒体が格納され、前記第１記録媒体に対するデータの読み書きを行なうライブラリ装置と、
前記第１記録媒体に対するデータの読み書きを制御するストレージ制御装置と、
を備え、
前記ストレージ制御装置は、
前記第１記録媒体に対する書き込み処理の実行待ちの複数のデータに含まれる第１のデータについての書き込み処理である第１の処理と、当該第１の処理の後のタイミングで実行待ちの前記第１のデータについての第２の処理とが存在する競合状態が発生しているかを判定する競合処理判定部と、
前記競合処理判定部によって前記競合状態が発生していると判定された場合に、前記第１記録媒体に対する書き込み処理の実行待ちの複数のデータのうち、前記第１のデータについての前記第１の処理を優先して実行する優先処理部と、
を備えることを特徴とする、ストレージシステム。
【０１０７】
（付記８）
前記ライブラリ装置は、第２記録媒体が格納され、前記第２記録媒体に対するデータの読み書きを行ない、
前記競合状態は、前記第１の処理と、前記第２記録媒体に対する前記第１のデータについての書き込み処理とが存在する状態である、
ことを特徴とする、付記７に記載のストレージシステム。
【０１０８】
（付記９）
前記競合状態は、前記第１の処理と、前記ライブラリ装置に格納される第２記録媒体からの前記第１のデータについての読み込み処理とが存在する状態である、
ことを特徴とする、付記７又は８に記載のストレージシステム。
【０１０９】
（付記１０）
前記第１記録媒体に書き込まれるデータを一時的に記憶する記憶装置を備え、
前記競合状態は、前記第１の処理と、前記記憶装置からの前記第１のデータについての削除処理とが存在する状態である、
ことを特徴とする、付記７〜９のいずれか１項に記載のストレージシステム。
【０１１０】
（付記１１）
前記ライブラリ装置は、前記第１及び第２記録媒体に対するデータの読み書きを行なう複数のドライブ装置を備え、
前記ストレージ制御装置は、
前記複数のドライブ装置のうち、前記第１の書き込み処理に使用されている第１ドライブ装置の数と、前記第１の書き込み処理に使用されていない第２ドライブ装置の数とを計数するドライブ装置計数部と、
前記ドライブ装置計数部によって、前記第１ドライブ装置の数が２以上であり、前記第２ドライブ装置の数が０であると計数された場合に、前記第１ドライブ装置の数を減少させ、前記第２ドライブ装置の数を増加させるドライブ装置管理部と、
を備えることを特徴とする、付記８又は９に記載のストレージシステム。
【０１１１】
（付記１２）
前記ドライブ装置管理部は、前記ドライブ装置計数部によって前記第２ドライブ装置の数が２以上であると計数された場合に、前記第２ドライブ装置の数を減少させ、前記第１ドライブ装置の数を増加させる、
ことを特徴とする、付記１０に記載のストレージシステム。
【０１１２】
（付記１３）
前記第１記録媒体は、当該ストレージシステムにおける２次ストレージとして使用され、
前記第２記録媒体は、前記ライブラリ装置からデータを排出するための記録媒体として使用される、
ことを特徴とする、付記８，９，１１又は１２に記載のストレージシステム。
【０１１３】
（付記１４）
第１記録媒体が格納され前記第１記録媒体に対するデータの読み書きを行なうライブラリ装置と通信可能に接続されるストレージ制御装置に備えられるコンピュータに、
前記第１記録媒体に対する書き込み処理の実行待ちの複数のデータに含まれる第１のデータについての書き込み処理である第１の処理と、当該第１の処理の後のタイミングで実行待ちの前記第１のデータについての第２の処理とが存在する競合状態が発生しているかを判定し、
前記競合状態が発生していると判定された場合に、前記第１記録媒体に対する書き込み処理の実行待ちの複数のデータのうち、前記第１のデータについての前記第１の処理を優先して実行する、
処理を実行させることを特徴とする、制御プログラム。
【０１１４】
（付記１５）
前記競合状態は、前記第１の処理と、前記ライブラリ装置に格納される第２記録媒体に対する前記第１のデータについての書き込み処理とが存在する状態である、
ことを特徴とする、付記１４に記載の制御プログラム。
【０１１５】
（付記１６）
前記競合状態は、前記第１の処理と、前記ライブラリ装置に格納される第２記録媒体からの前記第１のデータについての読み込み処理とが存在する状態である、
ことを特徴とする、付記１４又は１５に記載の制御プログラム。
【０１１６】
（付記１７）
前記競合状態は、前記第１の処理と、前記第１記録媒体に書き込まれるデータを一時的に記憶する記憶装置からの前記第１のデータについての削除処理とが存在する状態である、
ことを特徴とする、付記１４〜１６のいずれか１項に記載の制御プログラム。
【０１１７】
（付記１８）
前記ライブラリ装置が備える前記第１及び第２記録媒体に対するデータの読み書きを行なう複数のドライブ装置のうち、前記第１の書き込み処理に使用されている第１ドライブ装置の数と、前記第１の書き込み処理に使用されていない第２ドライブ装置の数とを計数し、
前記第１ドライブ装置の数が２以上であり、前記第２ドライブ装置の数が０であると計数された場合に、前記第１ドライブ装置の数を減少させ、前記第２ドライブ装置の数を増加させる、
処理を前記コンピュータに実行させることを特徴とする、付記１５又は１６に記載の制御プログラム。
【０１１８】
（付記１９）
前記第２ドライブ装置の数が２以上であると計数された場合に、前記第２ドライブ装置の数を減少させ、前記第１ドライブ装置の数を増加される、
処理を前記コンピュータに実行させることを特徴とする、付記１８に記載の制御プログラム。
【符号の説明】
【０１１９】
１００  ストレージシステム
１      仮想テープ装置
１１    制御サーバ
１１０  ＣＰＵ
１１１  コマンド制御部
１０１  ディスクアレイ読み書き部
１０２  テープライブラリ読み書き部
１０３  競合処理判定部
１０４  優先処理部
１０５  ドライブ装置計数部
１０６  ドライブ装置管理部
１１２  ホストＩ／Ｆ制御部
１１３  診断部
１１４  構成情報制御部
１２０  メモリ
１２１  構成情報格納部
１２２  データ格納部
２      ディスクアレイ装置
３      ライブラリ装置
３１    内部保存用テープ媒体
３２    外部排出用テープ媒体
３３    ドライブ装置
４      ホスト装置
４１    業務ソフトウェア
４２    仮想テープ制御ソフトウェア
６００  ストレージシステム
６      仮想テープ装置
６１    制御サーバ
７      ディスクアレイ装置
８      ライブラリ装置
８１    内部保存用テープ媒体
８２    外部排出用テープ媒体
８３    ドライブ装置
９      ホスト装置
９１    業務ソフトウェア
９２    仮想テープ制御ソフトウェア
【図１】
2017010160.tif 000003
【図２】
2017010160.tif 000004
【図３】
2017010160.tif 000005
【図４】
2017010160.tif 000006
【図５】
2017010160.tif 000007
【図６】
2017010160.tif 000008
【図７】
2017010160.tif 000009
【図８】
2017010160.tif 000010
【図９】
2017010160.tif 000011
【図１０】
2017010160.tif 000012