(57)【要約】【課題】データのアクセス元にマイグレーションを意識させることなく、マイグレーション先の記憶媒体のデータへのアクセスを可能にして、アクセス効率の向上を図る。【解決手段】記憶部１ａは、管理情報を記憶管理する。ストレージ部１ｃは、ストレージ制御装置１に接続され、記憶媒体１ｃ−１、・・・、１ｃ−ｎにアクセス可能である。制御部１ｂは、複数の第１の記憶媒体のデータを第２の記憶媒体にマイグレーションする場合、マイグレーション元の第１の記憶媒体のデータに対応するマイグレーション先の第２の記憶媒体上の物理位置を示す管理情報を生成する。そして、制御部１ｂは、第２の記憶媒体にマイグレーションされたデータへのアクセスが発生した際、管理情報にもとづいて第２の記憶媒体上に位置するデータを検出し、アクセス時に発行された所定コマンドのエミュレーションを行ってデータにアクセスする。【選択図】図１
2019067186.tif 000002
【特許請求の範囲】
【請求項１】
管理情報を記憶する記憶部と、
複数の第１の記憶媒体から１の第２の記憶媒体にマイグレーションする場合、各第１の記憶媒体と各データに対応する前記第２の記憶媒体上の物理位置を示す前記管理情報を生成して前記記憶部に記憶させ、前記第２の記憶媒体にマイグレーションされた複数のうちのいずれかの前記第１の記憶媒体のデータへのアクセスが発生した場合、前記管理情報にもとづいて前記第２の記憶媒体上のアクセス対象のデータの位置を検出し、アクセス時に発行された所定コマンドのエミュレーションを行って前記第２の記憶媒体上の前記アクセス対象のデータの位置にアクセスする制御を行う制御部と、
を有するストレージ制御装置。
【請求項２】
前記制御部は、
前記所定コマンドとして、前記第１の記憶媒体の先頭領域にアクセス開始点を位置付けるための第１のコマンドを受信した場合、
前記第２の記憶媒体における前記第１の記憶媒体の先頭領域に対応する開始物理位置をパラメータにして、前記アクセス対象のデータのアクセス開始点を位置付けるための第２のコマンドを生成し、前記第１のコマンドを前記第２のコマンドに変換して前記第２のコマンドを実行する、
請求項１記載のストレージ制御装置。
【請求項３】
前記制御部は、
前記所定コマンドとして、前記第１の記憶媒体からデータ読み出しのためのコマンドを受信した場合、
前記第２の記憶媒体における前記アクセス対象データの終端を検出するまでデータ読み出しを行い、前記終端を検出した場合は、前記コマンドの発行元へ前記終端を検出したことを通知する請求項１記載のストレージ制御装置。
【請求項４】
前記制御部は、
前記所定コマンドとして、前記第１の記憶媒体に対するアクセス開始点を所定値前進させるためのコマンドを受信した場合、
前記第２の記憶媒体に対するアクセス開始点を前記所定値前進させて、前記所定値前進させたときの前記第２の記憶媒体上の物理位置を取得し、前記物理位置が、前記第２の記憶媒体にマイグレーションされた前記アクセス対象データの範囲を外れる場合、前記コマンドの発行元へ前記第１の記憶媒体の後尾領域を検出したことを通知する、
請求項１記載のストレージ制御装置。
【請求項５】
前記制御部は、
前記所定コマンドとして、前記第１の記憶媒体に対するアクセス開始点を所定値後進させるためのコマンドを受信した場合、
前記第２の記憶媒体に対するアクセス開始点を前記所定値後進させて、前記所定値後進させたときの前記第２の記憶媒体上の物理位置を取得し、前記物理位置が、前記第２の記憶媒体にマイグレーションされたアクセス対象の前記データの範囲を外れる場合、前記コマンドの発行元へ前記第１の記憶媒体の先頭領域を検出したことを通知する、
請求項１記載のストレージ制御装置。
【請求項６】
前記制御部は、
前記所定コマンドとして、前記第１の記憶媒体に対する第１のアクセス開始点を位置付けるためのコマンドを受信した場合、
前記第２の記憶媒体の前記アクセス対象データの開始物理位置の値に、受信した前記コマンドで指示された前記第１のアクセス開始点の値を加えて第２のアクセス開始点を求め、前記第２のアクセス開始点を前記コマンドのパラメータにする、
請求項１記載のストレージ制御装置。
【請求項７】
前記制御部は、
前記所定コマンドとして、前記第１の記憶媒体のデータ開始点を読み出すためのコマンドを受信した場合、
前記第２の記憶媒体の前記データの現在のアクセス開始点の値から、前記第２の記憶媒体の前記アクセス対象データの開始物理位置の値を引いた値を前記コマンドの発行元へ通知する、
請求項１記載のストレージ制御装置。
【請求項８】
コンピュータに、
複数の第１の記憶媒体から１の第２の記憶媒体にマイグレーションする場合、各第１の記憶媒体と各データに対応する前記第２の記憶媒体上の物理位置を示す前記管理情報を生成してメモリに記憶させ、
前記第２の記憶媒体にマイグレーションされた複数のうちのいずれかの前記第１の記憶媒体のデータへのアクセスが発生した場合、前記管理情報にもとづいて前記第２の記憶媒体上のアクセス対象のデータの位置を検出し、アクセス時に発行された所定コマンドのエミュレーションを行って前記第２の記憶媒体上の前記アクセス対象のデータの位置にアクセスする制御を行う、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置およびプログラムに関する。
【背景技術】
【０００２】
ストレージシステムは、一般的に、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等を用いたディスクストレージと、磁気テープを用いたテープストレージとを併用化して情報処理データを記憶管理する。
【０００３】
例えば、テープストレージは、ストレージシステムにおけるバックエンドの大容量記憶領域を実現するために利用されている。また、テープの規格としては、ＬＴＯ（Linear Tape Open）と呼ばれるオープンな規格が、データのバックアップやアーカイブ等の用途に広く採用されている。
【０００４】
テープへのアクセスはドライブ（テープドライブ）によって行われる。ドライブは、上位のホスト等からの指示にもとづいて、カートリッジに収納されているテープを引き出し、ヘッド（磁気ヘッド）でデータをリード／ライトする。
【０００５】
一方、テープにアーカイブされているデータは、解析データやログデータ等の長期に渡って保存されているコールドデータであることが多いので、現状導入されているドライブと、アーカイブデータが書き込まれているテープとには世代間の差が生じやすい。
【０００６】
ドライブとテープとの世代間に差がある場合、ドライブによるテープへのアクセスが不可になる可能性がある。例えば、ＬＴＯの仕様では、ドライブとテープとの間に３世代以上の差があると、テープへのアクセスが不可となってデータのリード／ライトができない。
【０００７】
このため、ドライブの世代が、今あるテープの世代よりも新しい場合、この旧世代のテープの全データを、該ドライブでアクセス可能な世代のテープにコピーして移行するマイグレーション（Migration）の処理が行われる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平０５−５４５５１号公報
【特許文献２】特開２００５−１２２４３３号公報
【特許文献３】特開２００９−１５９２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記のようなマイグレーションが行われることで、ドライブとテープとの世代間の差を無くすことができる（または世代間の差を小さくすることができる）。
しかし、１つのテープに複数のテープのデータがマイグレーションされ、マイグレーション先のテープに記憶された該データへのアクセスが実行される場合、上位のホストは、例えば、マイグレーション先のテープに記憶されている該データの物理位置の検出等を行ってアクセスを実行することになる。
【００１０】
このため、上位のホストは、物理位置検出等の処理が追加されるので、マイグレーションが実行される以前のテープへアクセスしていた時と同じ運用で、マイグレーション先のテープにアクセスしてリード／ライトすることが困難であり、アクセス効率が低下する。
【００１１】
１つの側面では、本発明は、データのアクセス元にマイグレーションを意識させることなく、マイグレーション先の記憶媒体のデータへのアクセスを可能にしてアクセス効率の向上を図ったストレージ制御装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、ストレージ制御装置が提供される。ストレージ制御装置は、記憶部と制御部を備える。記憶部は、管理情報を記憶する。制御部は、複数の第１の記憶媒体から１の第２の記憶媒体にマイグレーションする場合、各第１の記憶媒体と各データに対応する第２の記憶媒体上の物理位置を示す管理情報を生成して記憶部に記憶させ、第２の記憶媒体にマイグレーションされた複数のうちのいずれかの第１の記憶媒体のデータへのアクセスが発生した場合、管理情報にもとづいて第２の記憶媒体上のアクセス対象のデータの位置を検出し、アクセス時に発行された所定コマンドのエミュレーションを行って第２の記憶媒体上のアクセス対象のデータの位置にアクセスする制御を行う。
【００１３】
また、上記課題を解決するために、コンピュータに上記ストレージ制御装置と同様の制御を実行させるプログラムが提供される。
【発明の効果】
【００１４】
１側面によれば、データのアクセス元にマイグレーションを意識させることなく、マイグレーション先の記憶媒体のデータへのアクセスを可能にして、アクセス効率の向上を図ることができる。
【図面の簡単な説明】
【００１５】
【図１】ストレージ制御装置の構成の一例を示す図である。
【図２】ドライブとテープとの世代差にもとづくテープへのアクセス可否の一例を示す図である。
【図３】１：１のマイグレーションによってテープの使用率が低下する状態を説明するための図である。
【図４】テープ装置の構成の一例を示す図である。
【図５】テープライブラリ部の構成の一例を示す図である。
【図６】テープコントローラのハードウェア構成の一例を示す図である。
【図７】ＶＯＬ管理情報の生成動作の一例を示す図である。
【図８】ＶＯＬ管理情報の一例を示す図である。
【図９】ＶＯＬ管理情報の生成・記録を含むマイグレーションの動作を示すフローチャートである。
【図１０】ＶＯＬ管理情報の表示制御を示すフローチャートである。
【図１１】要求ＶＯＬの位置付け動作を示すフローチャートである。
【図１２】ＲＷＤコマンドを受信した場合の動作を示すフローチャートである。
【図１３】ＵＮＬＤコマンドを受信した場合の動作を示すフローチャートである。
【図１４】ＲＤコマンドを受信した場合の動作を示すフローチャートである。
【図１５】ＦＳＰＦコマンドを受信した場合の動作を示すフローチャートである。
【図１６】ＢＳＰＦコマンドを受信した場合の動作を示すフローチャートである。
【図１７】ＷＲ系コマンドを受信した場合の動作を示すフローチャートである。
【図１８】ＬＯＣＡＴＥコマンドを受信した場合の動作を示すフローチャートである。
【図１９】ＲＤＢＩＤコマンドを受信した場合の動作を示すフローチャートである。
【図２０】Ｎ：１のマイグレーションの自動制御の一例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態のストレージ制御装置について図１を用いて説明する。図１はストレージ制御装置の構成の一例を示す図である。ストレージ制御装置１は、記憶部１ａおよび制御部１ｂを備え、ストレージ部１ｃに接続される。なお、制御部１ｂには、上位のホスト２または図示しない端末が接続され、制御部１ｂは、ホスト２や端末からの指示にもとづいて、ストレージ部１ｃに対するＩＯ制御を行う。
【００１７】
ストレージ部１ｃは、所定の記憶媒体（記録媒体）１ｃ−１、・・・、１ｃ−ｎにアクセス可能（所定の記憶媒体を取り出し可能）である。記憶媒体１ｃ−１、・・・、１ｃ−ｎは、例えば、磁気テープに該当する。
【００１８】
制御部１ｂは、複数の第１の記憶媒体から１の第２の記憶媒体にマイグレーションする場合、各第１の記憶媒体と各データに対応する第２の記憶媒体上の物理位置を示す管理情報を生成して記憶部１ａに記憶させる。
【００１９】
そして、制御部１ｂは、第２の記憶媒体にマイグレーションされた複数のうちのいずれかの第１の記憶媒体のデータへのアクセスが発生した場合、管理情報にもとづいて第２の記憶媒体上のアクセス対象のデータの位置を検出し、アクセス時に発行された所定コマンドのエミュレーションを行って第２の記憶媒体上のアクセス対象のデータの位置にアクセスする制御を行う。記憶部１ａは、管理情報やその他の制御情報を記憶管理する。
【００２０】
図１に示す例を用いて動作について説明する。制御部１ｂは、１つの記憶媒体ｍ０にＮ個の記憶媒体ｍ１、・・・、ｍＮに格納されているデータをコピーするＮ：１のマイグレーションを実行するものとする。
【００２１】
〔ステップＳ１〕制御部１ｂは、記憶媒体ｍ１に格納されているデータｄ１をリードし、リードしたデータｄ１を記憶媒体ｍ０の領域にコピーするマイグレーションを行う。
〔ステップＳ２〕制御部１ｂは、マイグレーション元の記憶媒体ｍ１のデータｄ１が格納されるマイグレーション先の記憶媒体ｍ０上の物理位置を示す管理情報ｖ１を生成して記憶部１ａに記憶管理させる。また、制御部１ｂは、記憶管理された管理情報ｖ１を記憶媒体ｍ０の特定領域ｒ１に記録する。
【００２２】
〔ステップＳ３〕制御部１ｂは、記憶媒体ｍ２に格納されているデータｄ２をリードし、リードしたデータｄ２を記憶媒体ｍ０の領域にコピーするマイグレーションを行う。
〔ステップＳ４〕制御部１ｂは、マイグレーション元の記憶媒体ｍ２のデータｄ２が格納されるマイグレーション先の記憶媒体ｍ０上の物理位置を示す管理情報ｖ２を生成して記憶部１ａに記憶管理させる。また、制御部１ｂは、記憶管理された管理情報ｖ２を記憶媒体ｍ０の特定領域ｒ１に記録する。
【００２３】
〔ステップＳ５〕制御部１ｂは、記憶媒体ｍＮに格納されているデータｄＮをリードし、リードしたデータｄＮを記憶媒体ｍ０の領域にコピーするマイグレーションを行う。
〔ステップＳ６〕制御部１ｂは、マイグレーション元の記憶媒体ｍＮのデータｄＮが格納されるマイグレーション先の記憶媒体ｍ０上の物理位置を示す管理情報ｖＮを生成して記憶部１ａに記憶管理させる。また、制御部１ｂは、記憶管理された管理情報ｖＮを記憶媒体ｍ０の特定領域ｒ１に記録する。
【００２４】
〔ステップＳ７〕記憶媒体ｍ０にマイグレーションされたデータｄ２に対してホスト２からアクセスが発生したとする。制御部１ｂは、データｄ２のアクセス要求を検出し、ホスト２で発行された所定コマンドを受信する。
【００２５】
〔ステップＳ８〕制御部１ｂは、管理情報ｖ２にもとづいて記憶媒体ｍ０上におけるデータｄ２の存在と位置を確認する。そして、制御部１ｂは、アクセス時にホスト２から発行された所定コマンドのエミュレーションを行ってデータｄ２にアクセスする。
【００２６】
このようにストレージ制御装置１では、記憶媒体に格納されているデータのマイグレーションをＮ：１で行い、マイグレーション後のデータの物理位置を管理し、所定コマンドのエミュレーションを行って、マイグレーション先の記憶媒体へのデータアクセスを実行する。
【００２７】
これにより、ストレージ制御装置１は、マイグレーション先の記憶媒体をデータアクセス元（例えば、上位のホスト２）にマイグレーション元の記憶媒体と見せることができる。すなわち、ストレージ制御装置１は、マイグレーションをデータアクセス元に意識させることなく、マイグレーション後のデータへのアクセスを可能にするので、アクセス効率の向上を図ることができる。
【００２８】
［第２の実施の形態］
次に第２の実施の形態について説明する。第２の実施の形態は、メインフレームのフォーマット等に使用されるＳＬ（Standard Label）形式でテープへのデータ（ファイル）のリード／ライトを行うシステムに対して本発明の機能を適用したものである。また、テープは、ＬＴＯ規格が適用される磁気テープとする。
【００２９】
まず、ドライブとテープとの世代差にもとづくテープへのアクセス可否について、図２を用いて説明する。図２はドライブとテープとの世代差にもとづくテープへのアクセス可否の一例を示す図である。テーブルＴ０は、ドライブによるテープへのアクセス可否の状態を示している。
【００３０】
なお、ドライブは、自身の世代よりも新しい世代のテープへのアクセスはできないので、その場合のドライブとテープの組合せには、テーブルＴ０中に斜線が引かれている。
２世代（以下、ｎ世代をＧｎとも表記）のドライブであるＧ２ドライブは、Ｕｌｔｒｉｕｍ−２のテープにアクセス可能であり、Ｕｌｔｒｉｕｍ−２のテープに対してデータのリード／ライトができる。
【００３１】
なお、Ｕｌｔｒｉｕｍとは、ＬＴＯ規格が適用される磁気テープのシリーズの名称である。また、Ｕｌｔｒｉｕｍ−ｎのテープは、ｎ世代のテープに相当する。
Ｇ３ドライブは、Ｕｌｔｒｉｕｍ−２、３のテープにアクセス可能であり、Ｕｌｔｒｉｕｍ−２、３のテープに対してデータのリード／ライトができる。
【００３２】
Ｇ４ドライブは、Ｕｌｔｒｉｕｍ−２、３、４のテープにアクセス可能である。この場合、Ｇ４ドライブは、Ｕｌｔｒｉｕｍ−３、４のテープに対してデータのリード／ライトができ、Ｕｌｔｒｉｕｍ−２のテープに対してはデータのリードのみができる。
【００３３】
Ｇ５ドライブは、Ｕｌｔｒｉｕｍ−３、４、５のテープにアクセス可能である。この場合、Ｇ５ドライブは、Ｕｌｔｒｉｕｍ−４、５のテープに対してデータのリード／ライトができ、Ｕｌｔｒｉｕｍ−３のテープに対してはデータのリードのみができる。
【００３４】
なお、Ｇ５ドライブは、Ｕｌｔｒｉｕｍ−２のテープへのアクセスは不可であり、Ｕｌｔｒｉｕｍ−２のテープへのデータのリード／ライトはできない。
Ｇ６ドライブは、Ｕｌｔｒｉｕｍ−４、５、６のテープにアクセス可能である。この場合、Ｇ６ドライブは、Ｕｌｔｒｉｕｍ−５、６のテープに対してデータのリード／ライトができ、Ｕｌｔｒｉｕｍ−４のテープに対してはデータのリードのみができる。
【００３５】
なお、Ｇ６ドライブは、Ｕｌｔｒｉｕｍ−２、３のテープへのアクセスは不可であり、Ｕｌｔｒｉｕｍ−２、３のテープへのデータのリード／ライトはできない。
上記のように、ＬＴＯ規格のドライブとテープ間のアクセスにおいて、ドライブは、自身の世代と同一世代または１世代前のテープには、データのリード／ライトができ、自身の世代より２世代前のテープには、データのリードのみができる。また、ドライブは、自身の世代より３世代前のテープになるとアクセスは不可となり、データのリード／ライトはできなくなる。
【００３６】
このように、ドライブとテープには世代差にもとづくアクセス可否が生じる。このため、現状のドライブでアクセスできないテープ、特に３世代以上の差があるテープについては、該テープの全データを、ドライブでアクセス可能な世代のテープにコピーして移行するマイグレーションが行われる。
【００３７】
上記の例では、Ｇ５ドライブのアクセス対象のテープがＵｌｔｒｉｕｍ−２のテープの場合や、Ｇ６ドライブのアクセス対象のテープがＵｌｔｒｉｕｍ−２、３のテープの場合では、マイグレーションが行われることになる。
【００３８】
マイグレーションが行われることで、ドライブは、データが移行されたテープへアクセスすることができ、所定データのリード／ライトを行うことが可能になる。
次に１：１のマイグレーションによってテープ使用率が低下する状態について、図３を用いて説明する。図３は１：１のマイグレーションによってテープの使用率が低下する状態を説明するための図である。Ｇ３テープのデータをＧ６テープにマイグレーションする状態を示している。なお、図中のＶはボリューム（Volume）、Ｈ１はヘッダを意味し、Ｈ１の後の空白部にはユーザデータが格納されているとする。
【００３９】
新しい世代のテープほどテープ容量は増加するので、Ｇ３テープの容量よりもＧ６テープの容量の方が大きい。このため、Ｇ３テープのデータをＧ６テープにマイグレーションした場合、Ｇ６テープの容量には空き領域が生じる。
【００４０】
このように、１つのＧｎテープのデータを他の１つのＧｍ（ｎ＜ｍ）テープに移行する１：１のマイグレーションでは、テープの世代差によるテープ容量の違いにより、無駄な空き領域が多く生じてテープの使用率が低下することになる。また、この場合、テープの保管数に変化は生じないので、テープの保管効率も悪くなる。
【００４１】
次にＮ：１のマイグレーションを行った場合のアクセス効率の低下について説明する。上記のように、１：１のマイグレーションではテープ使用率が低下する。
このため、１つのテープに複数（Ｎ巻）のテープのデータをコピーするＮ：１のマイグレーションを行うことにより、１：１のマイグレーションと比較して空き領域を小さくすることができ、テープ使用率の低下を抑制することができる。
【００４２】
しかし、Ｎ：１のマイグレーションが行われた場合、データのアクセス元（上位のホスト等）では、例えば、マイグレーション先テープ（データ移行先のテープ）上のデータの物理位置を逐一検出して、マイグレーション元テープ（データ移行元のテープ）に格納されていた該データにアクセスすることになる。
【００４３】
このため、データのアクセス元は、マイグレーション元テープのアクセス時と同じ運用で（マイグレーション実行前の運用で）、マイグレーション先テープにアクセスしてデータをリード／ライトすることが困難であり、アクセス効率の低下が生じる。
【００４４】
本発明ではこのような点に鑑みて、データのアクセス元にマイグレーションを意識させることなく、マイグレーション先の記憶媒体のデータへのアクセスを可能にしてアクセス効率の向上を図ったストレージ制御装置およびプログラムを提供するものである。
【００４５】
＜装置構成＞
以下、第２の実施の形態の技術について詳しく説明する。図４はテープ装置の構成の一例を示す図である。テープ装置１０は、テープコントローラ（ＭＴＣ：Magnetic Tape Controller）１１、ドライブ群１２およびテープライブラリ部１３を備える。ドライブ群１２は、任意のｎ台のドライブを含み、図４ではドライブ＃０、＃１、＃２としている。また、テープコントローラ１１には、ホスト２および端末３が接続される。なお、テープコントローラ１１は、図１の制御部１ｂの機能を有し、テープライブラリ部１３は、図１のストレージ部１ｃの機能を有する。
【００４６】
テープコントローラ１１は、ホスト２または端末３からの要求にもとづいて、所定のドライブを駆動して、テープライブラリ部１３内に収納されているテープへのＩＯ制御を行う。
【００４７】
ドライブ群１２は、テープライブラリ部１３内のテープ搬送機構によって搬送されたテープカートリッジをマウントし、テープコントローラ１１の制御の下で、マウントしたテープカートリッジ内のテープに対するデータのリード／ライトを行う。テープライブラリ部１３は、テープの収納ラックやテープ搬送のロボット機構等を有する（図５で後述）。
【００４８】
ホスト２は、システムの上位装置であり、テープ装置１０に対して、テープへのＩＯ制御の指示を与え、指示結果を受信する。端末３は、ユーザにＧＵＩ（Graphical User Interface）を提示して、テープ装置１０に対する操作入力および保守運用状態の表示等を行う。
【００４９】
ここで、Ｎ：１のマイグレーションを行う場合、テープコントローラ１１は、端末３からの指示にもとづき、ドライブ群１２を駆動して、Ｎ：１のマイグレーションを行う。また、テープ装置１０では、Ｎ：１のマイグレーションが行われたテープに対するデータライトは禁止とする。したがって、ホスト２は、テープへのＩＯに関する制御を行うが、Ｎ：１のマイグレーションが行われたテープに対しては、リードアクセスのみ可能とする。
【００５０】
図５はテープライブラリ部の構成の一例を示す図である。なお、図４で上述した構成要素については、同一符号を付して説明は省略する。テープライブラリ部１３は、テープ収納部１３ａ、ロボット駆動部１３ｂおよびライブラリ制御部１３ｃを含む。
【００５１】
テープ収納部１３ａは、テープを収納するラックである。ロボット駆動部１３ｂは、ライブラリ制御部１３ｃの指示にもとづき、テープ搬送のロボット駆動を行う。例えば、ロボット駆動部１３ｂは、テープ収納部１３ａのスロットから所定テープを取り出して所定ドライブへマウントしたり、所定ドライブからテープをアンマウントしてテープ収納部１３ａの元スロットにテープを収納したりする。
【００５２】
ライブラリ制御部１３ｃは、プロセッサ１３ｃ−１、テープ情報管理部１３ｃ−２、インタフェース部１３ｃ−３およびロボット制御部１３ｃ−４を含み、各構成要素は互いにバス接続される。
【００５３】
プロセッサ１３ｃ−１は、ライブラリ制御部１３ｃの全体制御を行う。テープ情報管理部１３ｃ−２は、テープ収納部１３ａに収納されているテープ情報を管理する。例えば、テープ情報管理部１３ｃ−２は、テープ収納部１３ａのスロットｓ０には、マイグレーション元テープａ１、ａ２、ａ３がマイグレーションされたマイグレーション先テープａ０が収納されている等の情報を管理する。
【００５４】
インタフェース部１３ｃ−３は、テープコントローラ１１との通信インタフェース制御を行う。ロボット制御部１３ｃ−４は、テープコントローラ１１からの指示にもとづき、ロボット駆動部１３ｂの駆動制御を行う。
【００５５】
＜ハードウェア構成＞
図６はテープコントローラのハードウェア構成の一例を示す図である。テープコントローラ１１は、プロセッサ１００によって制御されている。すなわち、プロセッサ１００は、テープコントローラ１１の制御部として機能する。プロセッサ１００には、バス１０６を介してメモリ１０１と複数の周辺機器が接続されている。
【００５６】
プロセッサ１００は、マルチプロセッサであってもよい。プロセッサ１００は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１００は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００５７】
メモリ１０１は、テープコントローラ１１の主記憶装置として使用され、例えば、図１に示した管理情報が記憶される。また、メモリ１０１には、プロセッサ１００に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
【００５８】
また、メモリ１０１には、プロセッサ１００による処理に要する各種データが格納される。さらに、メモリ１０１は、例えば、テープからリードされたデータをホスト２へ送信するためのデータバッファとしても機能する。
【００５９】
さらにまた、メモリ１０１は、テープコントローラ１１の補助記憶装置としても使用され、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。メモリ１０１は、補助記憶装置として、フラッシュメモリやＳＳＤ等の半導体記憶装置やＨＤＤ等の磁気記録媒体を含んでもよい。
【００６０】
バス１０６に接続されている周辺機器としては、ホストインタフェース１０２、テープインタフェース１０３、入出力／ネットワークインタフェース１０４およびロボットインタフェース１０５がある。
【００６１】
ホストインタフェース１０２は、ホスト２との間でデータを送受信する通信インタフェースである。例えば、ホスト２とテープコントローラ１１間が光ケーブルで接続されて光通信が行われる場合、Ｏ／Ｅ変換またはＥ／Ｏ変換による光通信インタフェース制御を行う。
【００６２】
テープインタフェース１０３は、ドライブ群１２との間でデータを送受信する通信インタフェースである。例えば、ＳＣＳＩ（Small Computer System Interface）によるインタフェース制御が行われる。
【００６３】
入出力／ネットワークインタフェース１０４は、キーボードやマウス等を含む端末３との間でデータを送受信する通信インタフェースである。また、入出力／ネットワークインタフェース１０４は、端末３以外の周辺機器を接続するための通信インタフェースとしても機能する。
【００６４】
例えば、入出力／ネットワークインタフェース１０４は、レーザ光等を利用して、光ディスクに記録されたメッセージの読み取りを行う光学ドライブ装置を接続することができる。光ディスクは、光の反射によって読み取り可能なようにメッセージが記録された可搬型の記録媒体である。光ディスクには、Ｂｌｕ−ｒａｙＤｉｓｃ（登録商標、以下略）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）等がある。
【００６５】
また、入出力／ネットワークインタフェース１０４は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力／ネットワークインタフェース１０４との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのメッセージの書き込み、またはメモリカードからのメッセージの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
【００６６】
さらに、入出力／ネットワークインタフェース１０４は、ネットワークに接続するための通信インタフェースとしても機能する。例えば、ＮＩＣ（Network Interface Card）、無線ＬＡＮ（Local Area Network）カード等の機能を実現し、ネットワークから送信された信号やメッセージ等は、プロセッサ１００に出力される。
【００６７】
ロボットインタフェース１０５は、テープライブラリ部１３のライブラリ制御部１３ｃ内のインタフェース部１３ｃ−３に接続して、ロボット駆動部１３ｂを駆動制御するための信号を送受信するためのインタフェースである。
【００６８】
以上のようなハードウェア構成によって、テープコントローラ１１の処理機能を実現することができる。例えば、テープコントローラ１１は、プロセッサ１００がそれぞれ所定のプログラムを実行することで本発明の制御を行うことができる。
【００６９】
テープコントローラ１１は、例えば、コンピュータで読み取り可能な記録媒体に記録されたプログラムを実行することにより、本発明の処理機能を実現する。テープコントローラ１１に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
【００７０】
例えば、テープコントローラ１１に実行させるプログラムを補助記憶装置に格納しておくことができる。プロセッサ１００は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。
【００７１】
また、光ディスク、メモリ装置、メモリカード等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ１００からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ１００が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００７２】
＜ボリューム管理情報の生成・記録＞
次にＮ：１のマイグレーションの実行時に生成されるボリューム管理情報について、図７から図９を用いて説明する。ボリューム管理情報は、図１で示した管理情報ｖ１、・・・、ｖＮに該当する。なお、以降では、ボリュームをＶＯＬと表記する場合がある。
【００７３】
図７はＶＯＬ管理情報の生成動作の一例を示す図である。２つのＧ３テープ、１つのＧ４テープおよび１つのＧ５テープそれぞれのデータを、１つのＧ６テープにマイグレーションするものとする。
【００７４】
このようなマイグレーションが行われる場合、例えば、２本のＧ３テープ、１本のＧ４テープおよび１本のＧ５テープのマウント先はドライブ＃０となり、またドライブ＃１に対して、Ｇ６テープがマウントされる。
【００７５】
〔ステップＳ１１〕テープコントローラ１１は、１巻目のＧ３テープのデータをリードする。
〔ステップＳ１２〕テープコントローラ１１は、ＥＯＤ（End Of Data）を検出すると、１巻目のＧ３テープに関するＶＯＬ管理情報を生成する。この場合、１巻目のＧ３テープのヘッダ部に含まれるボリュームラベルＶ１のＧ６テープにおける開始物理位置を示すブロックＩＤ（以下、ＢＩＤと表記）と、該ヘッダ部に含まれるファイル見出しラベルＨ１のＧ６テープにおける開始物理位置を示すＢＩＤを取得する。そして、テープコントローラ１１は、取得したこれらＢＩＤにもとづいてＶＯＬ管理情報を生成する。
【００７６】
〔ステップＳ１３〕テープコントローラ１１は、生成したＶＯＬ管理情報にもとづいて、１巻目のＧ３テープのデータをＧ６テープにライト（コピー）する。
〔ステップＳ１４〕テープコントローラ１１は、生成したＶＯＬ管理情報をＧ６テープのＩＮＤＥＸ（インデックス）パーティション部（図１の特定領域ｒ１に該当）に記録する。
【００７７】
２巻目から４巻目のＧ３、Ｇ４、Ｇ５テープに関しても上記と同様な処理が行われる。すなわち、各テープのＶＯＬ管理情報が生成され、ＶＯＬ管理情報がＧ６テープのＩＮＤＥＸパーティション部に記録され、Ｇ３、Ｇ４、Ｇ５テープの各データがＧ６テープへコピーされるマイグレーションが行われる。
【００７８】
なお、テープの記憶領域は、ＩＮＤＥＸパーティション部とデータパーティション部に分割（パーティショニング）されており、ＩＮＤＥＸパーティション部には、例えば、データの索引テーブル情報等が記録されてデータの直接検索が可能になっている。テープコントローラ１１は、マイグレーション先テープのＩＮＤＥＸパーティション部の領域を利用してＶＯＬ管理情報を記録する。
【００７９】
図８はＶＯＬ管理情報の一例を示す図である。ＶＯＬ管理情報テーブルＴ１は、ＩＮＤＥＸパーティション部に記録されるＶＯＬ管理情報を含む。ＶＯＬ管理情報は、順番、ＶＯＬ名、ＶＯＬ開始位置、ファイル名およびファイル開始位置の項目を少なくとも含む。
【００８０】
順番は、マイグレーションの実行順番に相当する。ＶＯＬ名は、マイグレーション元テープの識別ラベル（ＶＯＬラベル）である（例えば、図７のＶ１に該当）。ＶＯＬ開始位置は、マイグレーション先テープにおけるＶＯＬラベルの開始物理位置を示すＢＩＤである。ファイル名は、マイグレーション元テープに格納されるファイル名である（例えば、図７のＨ１に該当）。ファイル開始位置は、マイグレーション先テープにおけるファイルの開始物理位置を示すＢＩＤである。
【００８１】
図９はＶＯＬ管理情報の生成・記録を含むマイグレーションの動作を示すフローチャートである。なお、テープのフォーマットは、ヘッダ部（前側）、ユーザデータ部およびヘッダ部（後ろ側）を含み、また、ヘッダ部（後ろ側）の後段に２つのテープマーク（ＴＭ：Tape Mark）が配置される。
【００８２】
なお、ＥＯＤは、記憶されているデータの終了を示すが、終了を示すための実体的なデータがあるわけでなく、２つのテープマークが連続配置されることによってＥＯＤであることが示される。
【００８３】
ヘッダ部（前側）は、８０バイトのＶＯＬ名（ＶＯＬｘｘｘ）および８０バイトのファイル名（ＨＤＲｘｘｘ）を含む。ユーザデータ部は、任意バイトのユーザデータが含まれる。ヘッダ部（後ろ側）は、ＥＯＦ（End of File）を含む。
【００８４】
〔ステップＳ２０〕テープコントローラ１１は、端末３からマイグレーション指示を受信する。
〔ステップＳ２１〕テープコントローラ１１は、マイグレーション元テープのマウント要求をドライブ＃０に送信し、ドライブ＃０にマイグレーション元テープをマウントする。また、テープコントローラ１１は、マイグレーション先テープのマウント要求をドライブ＃１に送信し、ドライブ＃１にマイグレーション先テープをマウントする。
【００８５】
〔ステップＳ２２〕テープコントローラ１１は、ドライブ＃０に対して、マイグレーション元テープのＶＯＬ管理情報に関するデータのリードを行う。
〔ステップＳ２３〕テープコントローラ１１は、ＶＯＬ管理情報に関するデータのリードが正常に行われたか否かを判定する。正常にリードできた場合はステップＳ２４へ処理が進み、正常にリードできず異常終了した場合は、その旨を端末３へ通知する。
【００８６】
〔ステップＳ２４〕テープコントローラ１１は、リードした内容がＶＯＬ名（ＶＯＬｘｘｘ）か否かを判定する。ＶＯＬ名の場合はステップＳ２４ａへ処理が進み、ＶＯＬ名でない場合はステップＳ２５へ処理が進む。
【００８７】
〔ステップＳ２４ａ〕テープコントローラ１１は、リードしたマイグレーション元テープのＶＯＬ名をマイグレーション先テープにコピーするためのＢＩＤを取得する。
〔ステップＳ２４ｂ〕テープコントローラ１１は、ＶＯＬ管理情報テーブルＴ１に、ＶＯＬ名（ＶＯＬｘｘｘ）と、取得したＢＩＤとを記録する。ステップＳ２８へ処理が進む。
【００８８】
〔ステップＳ２５〕テープコントローラ１１は、リードした内容がファイル名（ＨＤＲｘｘｘ）か否かを判定する。ファイル名の場合はステップＳ２５ａへ処理が進み、ファイル名でない場合はステップＳ２６へ処理が進む。
【００８９】
〔ステップＳ２５ａ〕テープコントローラ１１は、リードしたマイグレーション元テープのファイル名をマイグレーション先テープにコピーするためのＢＩＤを取得する。
〔ステップＳ２５ｂ〕テープコントローラ１１は、ＶＯＬ管理情報テーブルＴ１に、ファイル名（ＨＤＲｘｘｘ）と、取得したＢＩＤとを記録する。ステップＳ２８へ処理が進む。
【００９０】
〔ステップＳ２６〕テープコントローラ１１は、リードした内容がテープマークか否かを判定する。テープマークの場合はステップＳ２６ａへ処理が進み、テープマークでない場合はステップＳ２７へ処理が進む。
【００９１】
〔ステップＳ２６ａ〕テープコントローラ１１は、マイグレーション先テープへテープマークのライトを行う。
〔ステップＳ２６ｂ〕テープコントローラ１１は、テープマークのライトが正常に行われたか否かを判定する。正常にライトできた場合はステップＳ２２へ処理が戻り、正常にライトできず異常終了した場合は、その旨を端末３へ通知する。
【００９２】
〔ステップＳ２７〕テープコントローラ１１は、ＥＯＤを検出したか否かを判定する。ＥＯＤを検出した場合はステップＳ２７ａへ処理が進み、ＥＯＤを未検出の場合はステップＳ２８へ処理が進む。
【００９３】
〔ステップＳ２７ａ〕テープコントローラ１１は、ＶＯＬ管理情報テーブルＴ１をマイグレーション先テープのＩＮＤＥＸパーティション部にライトする（上書きする）。
〔ステップＳ２７ｂ〕テープコントローラ１１は、マイグレーション元テープをドライブ＃０からアンマウントする。
【００９４】
〔ステップＳ２７ｃ〕テープコントローラ１１は、全巻のマイグレーション元テープのＶＯＬ管理情報の記録およびデータコピーが終了したか否かを判定する。終了した場合はステップＳ２７ｄ−１へ処理が進み、未終了の場合はステップＳ２７ｄ−２へ処理が進む。
【００９５】
〔ステップＳ２７ｄ−１〕テープコントローラ１１は、マイグレーション先テープをドライブ＃１からアンマウントし、正常終了する。
〔ステップＳ２７ｄ−２〕テープコントローラ１１は、次のマイグレーション元テープのマウント要求をドライブ＃０に送信し、次のマイグレーション元テープをドライブ＃０にマウントする。ステップＳ２２へ処理が戻る。
【００９６】
〔ステップＳ２８〕テープコントローラ１１は、マイグレーション元テープのデータをＶＯＬ管理情報にもとづきマイグレーション先テープへライトする。
〔ステップＳ２９〕テープコントローラ１１は、データのライトが正常に行われたか否かを判定する。正常にライトできた場合はステップＳ２２へ処理が戻り、正常にライトできず異常終了した場合は、その旨を端末３へ通知する。
【００９７】
＜ＶＯＬ管理情報の表示＞
図１０はＶＯＬ管理情報の表示制御を示すフローチャートである。
〔ステップＳ３１〕テープコントローラ１１は、所定のマイグレーション先テープに記録されているＶＯＬ管理情報の表示指示を端末３から受信する。
【００９８】
〔ステップＳ３２〕テープコントローラ１１は、マイグレーション先テープをドライブ＃０にマウントする。
〔ステップＳ３３〕テープコントローラ１１は、マイグレーション先テープのＩＮＤＥＸパーティション部に記録されているＶＯＬ管理情報をリードする。
【００９９】
〔ステップＳ３４〕テープコントローラ１１は、リードしたＶＯＬ管理情報を端末３へ送信する。
〔ステップＳ３５〕端末３は、受信したＶＯＬ管理情報を画面表示する。また、端末３は、オペレータの指示にもとづきＶＯＬ管理情報を印刷出力する。
【０１００】
このように、テープコントローラ１１で生成されたＶＯＬ管理情報は、端末３に表示させることができる。したがって、オペレータは、表示されたＶＯＬ管理情報から、１つのマイグレーション先テープにどのテープのデータが格納されているかを容易に認識することができる。
【０１０１】
＜テープボリュームの位置付け処理＞
次にＮ：１のマイグレーションが行われたマイグレーション先テープに格納されるデータに対してアクセス要求が発生した場合のテープボリュームの位置付け処理について説明する。なお、以降では、アクセス要求が発生したマイグレーション先テープに格納されるテープボリュームを要求ＶＯＬとも表記する。
【０１０２】
図１１は要求ＶＯＬの位置付け動作を示すフローチャートである。マイグレーション先テープにＶＯＬ００１、ＶＯＬ００２、ＶＯＬ００３がマイグレーションされている場合、ホスト２からＶＯＬ００２のデータ（例えば、ＶＯＬ００２の２ファイル目）のアクセス要求（リード要求）を受けたとする。この場合、ＶＯＬ００２が要求ＶＯＬになる。
【０１０３】
〔ステップＳ４１〕テープコントローラ１１は、ホスト２から送信された、ＶＯＬ００２の２ファイル目（ｄｄｄブロック）のリード要求を受信する。
〔ステップＳ４２〕テープコントローラ１１は、ＶＯＬ００２のマウント要求が発生したことを示す情報を表示する。例えば、“Ｍ：ＶＯＬ００２”と表示する。この場合、端末３に表示させてもよいし、テープ装置１０が有する表示部に表示させてもよい。
【０１０４】
〔ステップＳ４３〕テープコントローラ１１は、端末３の指示にもとづき、ＶＯＬ００２が格納されているマイグレーション先テープのドライブへのマウントをロボット制御部１３ｃ−４へ依頼する。
【０１０５】
なお、テープコントローラ１１は、テープ情報管理部１３ｃ−２で管理されているテープ情報から、現在マウントされているマイグレーション先テープにＶＯＬ００２がないことを検出した場合、当該マイグレーション先テープをテープ収納部１３ａの元位置に戻す制御を行う。
【０１０６】
そして、テープコントローラ１１は、テープ情報からＶＯＬ００２がマイグレーションされているマイグレーション先テープを検出し、検出したマイグレーション先テープをドライブにマウントする制御を行うことになる。
【０１０７】
〔ステップＳ４４〕テープコントローラ１１は、マイグレーション先テープのＩＮＤＥＸパーティション部に記録されているＶＯＬ管理情報をリードする。
〔ステップＳ４５〕テープコントローラ１１は、ＶＯＬ管理情報からＶＯＬ００２を検索する。ＶＯＬ００２が存在する場合はＶＯＬ００２の開始位置を確認し、ステップＳ４６へ処理が進み、ＶＯＬ００２が存在しない場合はマイグレーション先テープをアンマウントし、他テープの再マウント要求を行う。
【０１０８】
〔ステップＳ４６〕テープコントローラ１１は、マイグレーション先テープのリード位置を、ＶＯＬ００２の開始位置へ位置付けるためのＬＯＣＡＴＥコマンドを発行する。この例の場合、ＶＯＬ００２の開始位置のＢＩＤはｙｙｙであるから、テープコントローラ１１は、ｙｙｙをパラメータにして、ＬＯＣＡＴＥ（ｙｙｙ）コマンドを発行する。
【０１０９】
〔ステップＳ４７〕テープコントローラ１１は、リード処理が可能となったことを示すＮＲＴＲ（Not Ready To Ready）通知をホスト２へ送信する。
上記のような要求ＶＯＬ（この例ではＶＯＬ００２）の位置付け処理が終了すると、テープコントローラ１１は、ＶＯＬ００２の範囲に対してエミュレーションによる閉じた制御を行う。なお、要求ＶＯＬであるＶＯＬ００２のＢＩＤの範囲は、ｙｙｙブロックから、ｚｚｚブロックから１を引いた（ｚｚｚ−１）ブロックまでの範囲となる。
【０１１０】
＜エミュレーション制御＞
テープコントローラ１１は、上記のＮＲＴＲ通知をホスト２へ送信した後に、ホスト２からマイグレーション先テープのＶＯＬ００２に関する所定コマンドを受信した場合、所定コマンドのエミュレーション（以下、ＶＯＬエミュレーションと表記）制御を行う。
【０１１１】
所定コマンドとしては、例えば、ＲＷＤ（Rewind）コマンド、ＵＮＬＤ（Unload）コマンド、ＲＤ（Read）コマンド、ＦＳＰＦ（Forward Space File）コマンド、ＢＳＰＦ（Back Space File）コマンドがある。さらに、ＷＲ（Write）系コマンド、ＬＯＣＡＴＥコマンドおよびＲＤＢＩＤ（Read BID）コマンドがある。以下、各コマンドを受信した際の動作について、図１２から図１９を用いて説明する。
【０１１２】
図１２はＲＷＤコマンドを受信した場合の動作を示すフローチャートである。なお、ＲＷＤコマンドは、テープを巻き戻して、テープに対するドライブのヘッドの位置（アクセス開始点）をテープの先頭に位置付けるためのコマンドである。
【０１１３】
〔ステップＳ１１１〕テープコントローラ１１は、ホスト２から送信されたＲＷＤコマンドを受信する。
〔ステップＳ１１２〕テープコントローラ１１は、ＲＷＤコマンドがマイグレーション先テープに対するコマンドか否かを判定する。マイグレーション先テープに対するコマンドの場合はステップＳ１１３へ処理が進み、マイグレーション先テープに対するコマンドでない場合はステップＳ１１４へ処理が進む。
【０１１４】
〔ステップＳ１１３〕テープコントローラ１１は、ＲＷＤコマンドをＬＯＣＡＴＥコマンドに変換する。具体的には、テープコントローラ１１は、マイグレーション先テープのアクセス対象のＶＯＬｘｘｘの開始位置（ＢＩＤ）の値をＬＯＣＡＴＥコマンドのパラメータに設定し、マイグレーション先テープがマウントされているドライブへＬＯＣＡＴＥコマンドを発行する。
【０１１５】
〔ステップＳ１１４〕テープコントローラ１１は、非マイグレーション先テープ（マイグレーションが行われていない通常のテープ）がマウントされているドライブに対してＲＷＤコマンドを発行する。
【０１１６】
このように、テープコントローラ１１は、ＲWＤコマンドを受信した場合、マイグレーション先テープの要求ＶＯＬの開始物理位置をパラメータにして、該パラメータにアクセス開始点を位置付けるためのＬＯＣＡＴＥコマンドを生成するＶＯＬエミュレーションを行う。
【０１１７】
これにより、ホスト２は、マイグレーションされていることを意識することなく、ＲＷＤコマンドを発行することによって、マイグレーション先テープに格納されている要求ＶＯＬの先頭領域にアクセス開始点を位置付けることができる。
【０１１８】
図１３はＵＮＬＤコマンドを受信した場合の動作を示すフローチャートである。なお、ＵＮＬＤコマンドは、テープをドライブからアンマウントするためのコマンドである。
〔ステップＳ１２１〕テープコントローラ１１は、ホスト２から送信されたＵＮＬＤコマンドを受信する。
【０１１９】
〔ステップＳ１２２〕テープコントローラ１１は、ＵＮＬＤコマンドがマイグレーション先テープに対するコマンドか否かを判定する。マイグレーション先テープに対するコマンドの場合はステップＳ１２３へ処理が進み、マイグレーション先テープに対するコマンドでない場合はステップＳ１２４へ処理が進む。
【０１２０】
〔ステップＳ１２３〕テープコントローラ１１は、マイグレーション先テープに格納される次のデータ（例えば、ＶＯＬ００３のデータ）のリードに備えた待機状態になる。
〔ステップＳ１２４〕テープコントローラ１１は、非マイグレーション先テープがマウントされているドライブに対してＵＮＬＤコマンドを発行する。
【０１２１】
〔ステップＳ１２５〕テープコントローラ１１は、所定時間経過後（例えば、マイグレーション先テープに格納される次のデータに対するリード要求が所定時間経過しても発生しない場合）、ドライブへＵＮＬＤコマンドを発行する。そして、テープコントローラ１１は、図５に示したロボット制御部１３ｃ−４にアンマウントを依頼する。
【０１２２】
図１４はＲＤコマンドを受信した場合の動作を示すフローチャートである。なお、ＲＤコマンドは、テープからデータをリードするためのコマンドである。
〔ステップＳ１３１〕テープコントローラ１１は、ホスト２から送信されたＲＤコマンドを受信する。
【０１２３】
〔ステップＳ１３２〕テープコントローラ１１は、ドライブへＲＤコマンドを発行する。
〔ステップＳ１３３〕テープコントローラ１１は、発行したＲＤコマンドがマイグレーション先テープに対して実行されたか否かを判定する。マイグレーション先テープに対して実行された場合はステップＳ１３４へ処理が進み、非マイグレーション先テープに対して実行された場合はステップＳ１３６へ処理が進む。
【０１２４】
〔ステップＳ１３４〕テープコントローラ１１は、２本連続のテープマークをリードしたか否かを判定する。２本連続のテープマークをリードした場合はステップＳ１３５へ処理が進み、リードしていない場合はステップＳ１３６へ処理が進む。
【０１２５】
〔ステップＳ１３５〕テープコントローラ１１は、アクセス対象データのＥＯＤを検出したことをホスト２へ通知する。
〔ステップＳ１３６〕テープコントローラ１１は、ＲＤコマンドによってリードされた対象ブロックのデータ（アクセス対象データ）をホスト２へ通知する。
【０１２６】
このように、テープコントローラ１１は、ＲＤコマンドを受信した場合、マイグレーション先テープのデータの終端（ＥＯＤ）を検出するまで該データを読み出し、ＥＯＤを検出するとその旨をホスト２へ通知するＶＯＬエミュレーションを行う。
【０１２７】
これにより、ホスト２は、マイグレーションされていることを意識することなく、ＲＤコマンドを発行することによって、マイグレーション先テープからアクセス対象データをリードすることができる。
【０１２８】
図１５はＦＳＰＦコマンドを受信した場合の動作を示すフローチャートである。なお、ＦＳＰＦコマンドは、テープに対するヘッドの位置を、１データブロック分前進させるためのコマンドである。
【０１２９】
〔ステップＳ１４１〕テープコントローラ１１は、ホスト２から送信されたＦＳＰＦコマンドを受信する。
〔ステップＳ１４２〕テープコントローラ１１は、ドライブへＦＳＰＦコマンドを発行する。
【０１３０】
〔ステップＳ１４３〕テープコントローラ１１は、発行したＦＳＰＦコマンドがマイグレーション先テープに対して実行されたか否かを判定する。マイグレーション先テープに対して実行された場合はステップＳ１４４へ処理が進み、非マイグレーション先テープに対して実行された場合は終了する。
【０１３１】
〔ステップＳ１４４〕テープコントローラ１１は、ドライブへＲＤＢＩＤコマンドを発行して、ＦＳＰＦコマンドによってデータブロックが前進された物理位置のＢＩＤを取得する。なお、ＲＤＢＩＤコマンドは、ＢＩＤをリードするためのコマンドである。
【０１３２】
〔ステップＳ１４５〕テープコントローラ１１は、取得したＢＩＤが、マイグレーション先テープに格納されている要求ＶＯＬの範囲を外れるか否かを判定する。範囲を外れる場合はステップＳ１４６へ処理が進み、範囲を外れない場合は終了する。
【０１３３】
〔ステップＳ１４６〕テープコントローラ１１は、後尾領域ＥＯＴを検出したことをホスト２へ通知する。
ここで例えば、取得したＢＩＤがｅｅｅの値を示す場合（図１１のＶＯＬ管理情報を参照）、ＦＳＰＦコマンドによってヘッド位置が前進して、次のＶＯＬ００３にヘッドが位置していることになり、要求ＶＯＬ（ＶＯＬ００２）の範囲を外れることになる。
【０１３４】
このように、ＦＳＰＦコマンドの実行によって、ステップＳ１４４で取得したＢＩＤの値が、要求ＶＯＬの次のＶＯＬの開始位置以上になる場合がある、したがって、テープコントローラ１１は、ＦＳＰＦコマンドの実行によって、ヘッドの位置が要求ＶＯＬの範囲から外れた場合、ＥＯＴを検出したことをホスト２へ通知する。
【０１３５】
このように、テープコントローラ１１は、ＦＳＰＦコマンドを受信した場合、マイグレーション先テープに対するアクセス開始点を所定値前進させて、所定値前進させたときのマイグレーション先テープ上の物理位置を取得する。
【０１３６】
そして、テープコントローラ１１は、取得した物理位置が、要求ＶＯＬの範囲を外れる場合、ＥＯＴを検出したことをホスト２へ通知するＶＯＬエミュレーションを行う。
これにより、ホスト２は、マイグレーションされていることを意識することなく、ＦＳＰＦコマンドを発行することによって、マイグレーション先テープ上でアクセス開始点を所定値前進させることができる。
【０１３７】
図１６はＢＳＰＦコマンドを受信した場合の動作を示すフローチャートである。なお、ＢＳＰＦコマンドは、テープに対するヘッドの位置を、１データブロック分後進させるためのコマンドである。
【０１３８】
〔ステップＳ１５１〕テープコントローラ１１は、ホスト２から送信されたＢＳＰＦコマンドを受信する。
〔ステップＳ１５２〕テープコントローラ１１は、ドライブへＢＳＰＦコマンドを発行する。
【０１３９】
〔ステップＳ１５３〕テープコントローラ１１は、発行したＢＳＰＦコマンドがマイグレーション先テープに対して実行されたか否かを判定する。マイグレーション先テープに対して実行された場合はステップＳ１５４へ処理が進み、非マイグレーション先テープに対して実行された場合は終了する。
【０１４０】
〔ステップＳ１５４〕テープコントローラ１１は、ドライブへＲＤＢＩＤコマンドを発行して、ＢＳＰＦコマンドによってデータブロックが後進された物理位置のＢＩＤを取得する。
【０１４１】
〔ステップＳ１５５〕テープコントローラ１１は、取得したＢＩＤが、マイグレーション先テープに格納されている要求ＶＯＬの範囲を外れるか否かを判定する。範囲を外れる場合はステップＳ１５６へ処理が進み、範囲を外れない場合は終了する。
【０１４２】
〔ステップＳ１５６〕テープコントローラ１１は、ＢＯＴ（Beginning Of Tape）を検出したことをホスト２へ通知する。
ここで例えば、取得したＢＩＤがｂｂｂの値を示す場合（図１１のＶＯＬ管理情報を参照）、ＢＳＰＦコマンドによってヘッド位置が後進して、１つ前のＶＯＬ００１のファイルにヘッドが位置していることになり、要求ＶＯＬ（ＶＯＬ００２）の範囲を外れることになる。
【０１４３】
このように、ＢＳＰＦコマンドの実行によって、ステップＳ１５４で取得したＢＩＤの値が、要求ＶＯＬの開始位置ＢＩＤ未満になる場合がある。したがって、テープコントローラ１１は、ＢＳＰＦコマンドの実行によって、ヘッドの位置が要求ＶＯＬの範囲から外れた場合、ＢＯＴを検出したことをホスト２へ通知する。
【０１４４】
このように、テープコントローラ１１は、ＢＳＰＦコマンドを受信した場合、マイグレーション先テープに対するアクセス開始点を所定値後進させて、所定値後進させたときのマイグレーション先テープ上の物理位置を取得する。
【０１４５】
そして、テープコントローラ１１は、取得した物理位置が、要求ＶＯＬの範囲を外れる場合、ＢＯＴを検出したことをホスト２へ通知するＶＯＬエミュレーションを行う。
これにより、ホスト２は、マイグレーションされていることを意識することなく、ＢＳＰＦコマンドを発行することによって、マイグレーション先テープ上でアクセス開始点を所定値後進させることができる。
【０１４６】
図１７はＷＲ系コマンドを受信した場合の動作を示すフローチャートである。なお、ＷＲ系コマンドは、テープにデータをライトするためのコマンドである。
〔ステップＳ１６１〕テープコントローラ１１は、ホスト２から送信されたＷＲ系コマンドを受信する。
【０１４７】
〔ステップＳ１６２〕テープコントローラ１１は、ＷＲ系コマンドがマイグレーション先テープに対するコマンドか否かを判定する。マイグレーション先テープに対するコマンドの場合はステップＳ１６３へ処理が進み、マイグレーション先テープに対するコマンドでない場合はステップＳ１６４へ処理が進む。
【０１４８】
〔ステップＳ１６３〕テープコントローラ１１は、ライト不可である旨をホスト２へ通知する（Ｎ：１のマイグレーションが行われているマイグレーション先テープへの外部からのデータライトは禁止する）。
【０１４９】
〔ステップＳ１６４〕テープコントローラ１１は、ドライブにＷＲ系コマンドを発行する。
図１８はＬＯＣＡＴＥコマンドを受信した場合の動作を示すフローチャートである。なお、ＬＯＣＡＴＥコマンドの内容は上述したように、ヘッドを位置決めするためのコマンドである。
【０１５０】
〔ステップＳ１７１〕テープコントローラ１１は、ホスト２から送信されたＬＯＣＡＴＥコマンドを受信する。
〔ステップＳ１７２〕テープコントローラ１１は、ＬＯＣＡＴＥコマンドがマイグレーション先テープに対するコマンドか否かを判定する。マイグレーション先テープに対するコマンドの場合はステップＳ１７３へ処理が進み、マイグレーション先テープに対するコマンドでない場合はステップＳ１７４へ処理が進む。
【０１５１】
〔ステップＳ１７３〕テープコントローラ１１は、ＬＯＣＡＴＥコマンドのパラメータのオフセット処理を行う。具体的には、テープコントローラ１１は、ステップＳ１７１で受信したＬＯＣＡＴＥコマンドのパラメータに対応するＢＩＤに、要求ＶＯＬの開始位置を示すＢＩＤを加算し、加算結果のＢＩＤを新たなパラメータにしたＬＯＣＡＴＥコマンドを生成する。
【０１５２】
〔ステップＳ１７４〕テープコントローラ１１は、ステップＳ１７３で生成したＬＯＣＡＴＥコマンドをドライブに発行する。
このように、テープコントローラ１１は、ＬＯＣＡＴＥコマンドを受信した場合、マイグレーション先テープのデータの開始物理位置の値に、受信したＬＯＣＡＴＥコマンドで指示されたアクセス開始点の値を加えて、新たなアクセス開始点を求める。そして、テープコントローラ１１は、求めたアクセス開始点をＬＯＣＡＴＥコマンドのパラメータにするＶＯＬエミュレーションを行う。
【０１５３】
これにより、ホスト２は、マイグレーションされていることを意識することなく、ＬＯＣＡＴＥコマンドを発行することによって、マイグレーション先テープに格納されるアクセス対象データに対してアクセス開始点を位置付けることができる。
【０１５４】
図１９はＲＤＢＩＤコマンドを受信した場合の動作を示すフローチャートである。なお、ＲＤＢＩＤコマンドの内容は上述したように、所定データの開始のＢＩＤをリードするためのコマンドである。
【０１５５】
〔ステップＳ１８１〕テープコントローラ１１は、ホスト２から送信されたＲＤＢＩＤコマンドを受信する。
〔ステップＳ１８２〕テープコントローラ１１は、ドライブへＲＤＢＩＤコマンドを発行する。
【０１５６】
〔ステップＳ１８３〕テープコントローラ１１は、ＲＤＢＩＤコマンドがマイグレーション先テープに対して実行されたか否かを判定する。マイグレーション先テープに対して実行された場合はステップＳ１８４へ処理が進み、非マイグレーション先テープに対して実行された場合はステップＳ１８５へ処理が進む。
【０１５７】
〔ステップＳ１８４〕テープコントローラ１１は、ＲＤＢＩＤコマンドのパラメータのオフセット処理を行う。具体的には、ヘッドが位置しているＢＩＤから要求ＶＯＬの開始位置ＢＩＤを引いたＢＩＤを検出してホスト２へ通知する。
【０１５８】
〔ステップＳ１８５〕テープコントローラ１１は、ヘッドが位置しているＢＩＤをホスト２へ通知する。
このように、テープコントローラ１１は、ＲＤＢＩＤコマンドを受信した場合、マイグレーション先テープのアクセス対象データの現在のアクセス開始点の値から、該アクセス対象データの開始物理位置の値を引いた値を取得する。そして、テープコントローラ１１は、取得したＢＩＤをホスト２へ通知するＶＯＬエミュレーションを行う。
【０１５９】
これにより、ホスト２は、マイグレーションされていることを意識することなく、ＲＤＢＩＤコマンドを発行することによって、マイグレーション先テープに格納されているアクセス対象データに対するＢＩＤを取得することができる。
【０１６０】
＜Ｎ：１のマイグレーションの自動制御＞
図２０はＮ：１のマイグレーションの自動制御の一例を示すフローチャートである。
〔ステップＳ５０〕テープコントローラ１１は、テープライブラリ部１３の通常運用を行う。
【０１６１】
〔ステップＳ５１〕テープコントローラ１１は、未使用テープの残数が所定数以下であるか否かを判定する。未使用テープの残数が所定数以下の場合、ステップＳ５２へ処理が進み、未使用テープの残数が所定数を超える場合、ステップＳ５０の処理へ戻る。
【０１６２】
〔ステップＳ５２〕テープコントローラ１１は、マイグレーション先テープＡをドライブ＃１へマウントし、ドライブ＃１のヘッドをマイグレーション先テープＡのＥＯＤに位置付ける。
【０１６３】
〔ステップＳ５３ａ−１〕テープコントローラ１１は、マイグレーション元テープａ１をドライブ＃０へマウントする。
〔ステップＳ５３ｂ−１〕テープコントローラ１１は、ドライブ＃０にマウントされているマイグレーション元テープａ１のデータをマイグレーション先テープＡにマイグレーションする。
【０１６４】
〔ステップＳ５３ｃ−１〕テープコントローラ１１は、マイグレーション元テープａ１を初期化（未使用化）する。
〔ステップＳ５３ｄ−１〕テープコントローラ１１は、マイグレーション元テープａ１をドライブ＃０からアンマウントして、テープ収納部１３ａの元位置に戻す。
【０１６５】
〔ステップＳ５３ａ−２〕テープコントローラ１１は、マイグレーション元テープａ２をドライブ＃０へマウントする。
〔ステップＳ５３ｂ−２〕テープコントローラ１１は、ドライブ＃０にマウントされているマイグレーション元テープａ２のデータをマイグレーション先テープＡにマイグレーションする。
【０１６６】
〔ステップＳ５３ｃ−２〕テープコントローラ１１は、マイグレーション元テープａ２を初期化する。
〔ステップＳ５３ｄ−２〕テープコントローラ１１は、マイグレーション元テープａ２をドライブ＃０からアンマウントして、テープ収納部１３ａの元位置に戻す。
【０１６７】
〔ステップＳ５４〕テープコントローラ１１は、マイグレーション先テープＡをドライブ＃１からアンマウントして、テープ収納部１３ａの元位置に戻す。
以上説明したように、テープ装置１０は、Ｎ：１のマイグレーションを行うので、１：１のマイグレーションよりもマイグレーション先テープの空き領域を小さくすることができる。これにより、テープ装置１０は、テープの使用率の低下を抑制し、テープの保管効率を向上させることが可能になる。
【０１６８】
さらに、テープ装置１０は、Ｎ：１のマイグレーションが行われたテープへのアクセス要求時、所定コマンドに対するエミュレーションを行ってアクセスを実行する。これにより、テープ装置１０は、上位のホスト２に対して、マイグレーションが行われていない場合のテープに対するアクセスとして見せるので、ホスト２は、マイグレーションが実行される以前のテープへのアクセス処理をそのまま運用できる。したがって、マイグレーションを上位に意識させることなく、マイグレーション後のデータへのアクセスを可能にするので、アクセス効率の向上を図ることができる。
【０１６９】
なお、上記では、マイグレーションを行う記憶媒体を磁気テープとして説明したが、ＤＶＤやＢｌｕ−ｒａｙＤｉｓｃ等のその他の記憶媒体に対しても本発明の機能を適用することが可能である。
【０１７０】
上記で説明した本発明のストレージ制御装置１およびテープ装置１０の処理機能は、コンピュータによって実現することができる。この場合、ストレージ制御装置１およびテープ装置１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【０１７１】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等がある。光ディスクには、ＣＤ−ＲＯＭ／ＲＷ等がある。光磁気記録媒体には、ＭＯ（Magneto Optical disk）等がある。
【０１７２】
プログラムを流通させる場合、例えば、そのプログラムが記録されたＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１７３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【０１７４】
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤ等の電子回路で実現することもできる。
【０１７５】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１７６】
１  ストレージ制御装置
１ａ  記憶部
１ｂ  制御部
１ｃ  ストレージ部
１ｃ−１、・・・、１ｃ−ｎ  記憶媒体
２  ホスト
ｍ０  マイグレーション先の記憶媒体
ｍ１、ｍ２、・・・、ｍＮ  マイグレーション元の記憶媒体
ｄ１、・・・、ｄＮ  データ
ｖ１、・・・、ｖＮ  管理情報
ｒ１  特定領域
【図１】
2019067186.tif 000003
【図２】
2019067186.tif 000004
【図３】
2019067186.tif 000005
【図４】
2019067186.tif 000006
【図５】
2019067186.tif 000007
【図６】
2019067186.tif 000008
【図７】
2019067186.tif 000009
【図８】
2019067186.tif 000010
【図９】
2019067186.tif 000011
【図１０】
2019067186.tif 000012
【図１１】
2019067186.tif 000013
【図１２】
2019067186.tif 000014
【図１３】
2019067186.tif 000015
【図１４】
2019067186.tif 000016
【図１５】
2019067186.tif 000017
【図１６】
2019067186.tif 000018
【図１７】
2019067186.tif 000019
【図１８】
2019067186.tif 000020
【図１９】
2019067186.tif 000021
【図２０】
2019067186.tif 000022