(57)【特許請求の範囲】
【請求項１】
複数のホストと接続する記憶装置であって、
前記記憶装置は仮想テープ装置とテープライブラリ装置とを有し、
前記仮想テープ装置は階層制御サ−バとディスクアレイ装置を有し、
前記階層制御サ−バは前記テープライブラリ装置の有するドライブとボリュームを前記ディスクアレイ装置の論理ドライブと論理ボリュームとに各々対応づけ、
前記階層制御サ−バは、
前記仮想テープ装置の論理ドライブを前記ホストがアサイン要求するコマンドとして、前記ホストを特定するホスト識別子と前記論理ドライブを特定するドライブ識別子とを含むアサインコマンドを前記ホストから受け付けるアサインコマンド受付部と、
前記仮想テープ装置の前記論理ボリュームを前記ホストが前記論理ドライブにマウント要求するコマンドとして、少なくとも、前記ホスト識別子と前記ドライブ識別子とを含むマウントコマンドを前記ホストから受け付けるマウントコマンド受付部と、
前記アサインコマンドと前記マウントコマンドに含まれる前記ホスト識別子および前記ドライブ識別子をそれぞれ比較する識別子比較部と、
前記ドライブ識別子と前記ドライブをアサインしている前記ホスト識別子とを対応づけて前記ドライブのアサインの有無を記録保持しているアサインテーブルと、
前記ホストへ異常を通知する異常通知送信部とを有し、
前記階層制御サ−バは、
前記ホスト識別子に相違がある場合、
前記ドライブ識別子に相違がある場合、
または、前記アサインテーブルを参照して、前記ドライブがアサインされていない場合には、
前記コマンドを送信したホストに前記異常通知送信部から異常通知を行ない、
いづれの前記場合に該当せず、前記異常通知を行なわない場合、
前記マウントコマンドにもとづき前記論理ボリュームを前記論理ドライブにマウントしたことを報告するマウント完了報告を、前記マウントコマンドを送信したホストに送信し、
引き続き、前記階層制御サ−バは、前記アサインテーブルを参照し、前記論理ボリュームのマウントされている前記論理ドライブのアサインが解除されている場合には、前記マウントコマンドを送信したホストに未アサイン通知を行なうことを特徴とする記憶装置。
【請求項２】
複数のホストと接続するテープライブラリ装置であって、
前記テープライブラリ装置は、
前記テープライブラリ装置を制御する制御部と、
複数のボリュームを格納する格納庫と、
前記格納庫から前記ボリュームを取り出し、前記取り出したボリュームをＲ／Ｗするドライブへマウントするロボットとを有し、
前記制御部は、
前記ドライブを前記ホストがアサイン要求するコマンドとして、前記ホストを特定するホスト識別子と前記ドライブを特定するドライブ識別子とを含むアサインコマンドを前記ホストから受け付けるアサインコマンド受付部と、
前記ボリュームを前記ホストが前記特定ドライブにマウント要求するコマンドとして、少なくとも、前記ホスト識別子と前記ドライブ識別子とを含むマウントコマンドを前記ホストから受け付けるマウントコマンド受付部と、
前記アサインコマンドと前記マウントコマンドに含まれる前記ホスト識別子および前記ドライブ識別子をそれぞれ比較する識別子比較部と、
前記ドライブ識別子と前記ドライブをアサインしている前記ホスト識別子とを対応づけて前記ドライブのアサインの有無を記録保持しているアサインテーブルと、
前記ホストへ異常を通知する異常通知送信部とを有し、
前記制御部は、
前記アサインコマンドと前記マウントコマンドに含まれる前記ホスト識別子および前記ドライブ識別子を前記識別子比較部にて比較し、
前記ホスト識別子に相違がある場合、
前記ドライブ識別子に相違がある場合、
または、前記アサインテーブルを参照して、前記ドライブがアサインされていない場合には、
前記コマンドを送信したホストに前記異常通知送信部から異常通知を行ない、
いづれの前記場合に該当せず、前記異常通知を行なわない場合、
前記マウントコマンドにもとづき前記ボリュームを前記ドライブにマウントしたことを報告するマウント完了報告を、前記マウントコマンドを送信したホストに送信し、
引き続き、前記制御部は、前記アサインテーブルを参照し、前記ボリュームのマウントされている論理ドライブのアサインが解除されている場合には、前記マウントコマンドを送信したホストに未アサイン通知を行なうことを特徴とするテープライブラリ装置。
【請求項３】
複数のホストと接続される、テープライブラリ装置を備える記憶装置の制御方法において、
前記記憶装置は、
前記テープライブラリ装置のドライブのアサインを要求する、ホストを識別するホスト識別子とドライブを識別するドライブ識別子とを含むアサインコマンドを、前記ホストから受信し、
前記テープライブラリ装置のボリュームの前記ドライブヘのマウントを要求する、ホストを識別するホスト識別子とドライブを識別するドライブ識別子とを含むマウントコマンドを、前記ホストから受信し、
前記アサインコマンドと前記マウントコマンドとに含まれる前記ホスト識別子、あるいは前記アサインコマンドと前記マウントコマンドとに含まれる前記ドライブ識別子を比較し、
前記ホスト識別子が相違する場合、
前記ドライブ識別子が相違する場合、
または、前記ドライブ識別子と前記ドライブをアサインしている前記ホスト識別子とを対応づけて前記ドライブのアサインの有無を記録保持しているアサインテーブルを参照して、前記ドライブがアサインされていない場合には、
前記コマンドを送信したホストに異常通知を行ない、
前記記憶装置から前記異常通知を行なわない場合、前記マウントコマンドにもとづき前記ボリュームを前記ドライブにマウントしたことを報告するマウント完了報告を前記記憶装置から前記コマンドを送信したホストに行ない、
引き続き、前記記憶装置は、前記ボリュームのマウントされている前記ドライブがアサインされていない場合は、
前記マウントコマンドを送信したホストに未アサイン通知を送信することを特徴とする記憶装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを保持する磁気テープ媒体を収めた複数のカートリッジテープ（ボリューム）を備えるテープライブラリ装置を有する記憶装置とホストコンピュータとを接続するシステムにおける記憶装置の制御方法、および記憶装置に関する。
【背景技術】
【０００２】
記憶装置としてテープライブラリ装置を有し、ホストコンピュータ（以下、ホストと呼ぶ）と接続して使用するシステム構成の例を、図６の従来の構成例１に示す。説明のため、図６には、ホスト６７として2台のホストＡとホストＢに接続されている記憶装置であるテープライブラリ装置６０を示す。図６に示されている実線矢印は、制御の流れを示す。テープライブラリ装置６０は、テープライブラリ装置６０の制御を行う制御部６１、複数のボリュームを格納する格納庫６３、制御部６１の指示で特定のボリューム６３−１を格納庫６３から取り出してドライブ６４にマウントあるいはドライブ６４からデマウントして格納庫６３へ格納するロボット６２を有する。通常、ドライブは複数あり、マウントされたボリュームからのデータの読み出し（リード）あるいはボリュームへのデータの書き込み（ライト）（以下、Ｒ／Ｗと称す）を行う。
【０００３】
制御部６１は図示省略されているＣＰＵ、メモリ、メモリに記憶されているアサインテ
ーブルを有する。ホスト６７と制御部６１との信号パスは、ロボット６２に関わる信号の
送受等をするアクセッサパス６５と、ドライブに関わる信号の送受等をするドライブパス６６とに大別されている。 
【０００４】
複数のホスト６７のうち、例えばホストＡから制御部６１へボリュームのマウント要求を出す前に、ホストＡからドライブパス６６経由で指定のドライブ６４のアサイン要求が行われてから、ドライブ６４がホストＡにアサインされる。ホスト間によるドライブ６４のアサインが重複することのないように、複数台のホスト間においては排他制御が行われている。そして、ドライブ６４がホストＡにアサインされ、制御部６１が有するアサインテーブルにその旨が記録される。
【０００５】
例えばリード要求の場合であれば、ホストＡが特定するボリュームをホストＡの特定するドライブ６４にマウント要求するためのマウントコマンドがアクセッサパス６５を経由してホストＡから制御部６１へ発行される。ライト要求の場合であれば、制御部６１がボリュームを指定する。制御部６１がマウントコマンドを受領し、マウントが完了してＲ／Ｗ可能な状態（READY状態）になると、ホスト６７に対してドライブパス６６経由でREADY_ATN信号（ドライブまたは論理ドライブに、ボリュームまたは論理ボリュームのマウントが完了し、Ｒ／Ｗ可能なREADY状態になったことを記憶装置からホストへ知らせる信号）を送信する。READY_ATN信号を受け取ったホスト６７は、マウントされたボリューム名をチェックし、ボリューム名がホストＡが特定または制御部６１が指定するボリューム名であれば、そのボリュームにホストＡがＲ／Ｗする。
【０００６】
さらに近年では、ホストとテープライブラリ装置との間に、高速なアクセスが可能なハードディスク上で磁気テープをエミュレートする仮想テープ装置を介在させることが行われている。構成例を、図７の従来の構成例２に示す。
【０００７】
図７は、テープライブラリ装置７２を有する記憶装置７０が複数のホスト７３（ここでは、説明のためにホストＣとホストＤとする）と接続された構成例を示す。仮想テープ装置７１は階層制御サーバ７１−１とディスクアレイ装置７１−２とを有する。
【０００８】
ホストＣ、Ｄと階層制御サーバ７１−１は、ドライブパスおよびアクセッサパスを備えた通信線で結ばれ、階層制御サーバ７１−１とテープライブラリ装置７２もアクセッサパスとドライブパスを備えたケーブルを経由して接続されている。
【０００９】
ホストＣからデータのＲ／Ｗ要求があった場合、階層制御サーバ７１−１はホストＣに対し、テープライブラリ装置として振舞い、各ホストと階層制御サーバ７１−１との間のドライブパスを経由して、ディスクアレイ装置７１−２の論理ドライブにある特定の論理ボリュームにデータをＲ／Ｗするようになっている。その後、階層制御サーバ７１−１はホストＣを介さずにバックグエンドでディスクアレイ装置７１−２に書き込まれたデータを、物理ドライブであるドライブ７２−５にマウントした物理的なボリューム７２−４へ保存（マイグレーション処理）をする。
【００１０】
しかし、図６、図７に示すテープライブラリ装置や記憶装置においては、ホストからアサインコマンド、マウントコマンドを正しく送信しているにもかかわらず、ハードウェア
の故障等によりREADY_ATN信号をホストに返せない場合や、要求しているホストとは別のホストがREADY_ATN信号を受けてＲ／Ｗ要求を送信し、Ｒ／Ｗしてしまう場合がある。
【００１１】
通常、ホストはＲ／Ｗ要求を出すドライブパスを経由してドライブまたは論理ドライブをアサインしてから、アクセッサパスを経由してマウントコマンドを送信するが、ハードウェアの構成上、マウントコマンドを送信するアクセッサパスとＲ／Ｗ要求を出すドライブパスは別々のパスが用意されているため、タイミングのずれ等によりドライブのアサインのミスが起こる可能性がある。
【００１２】
また、ホストがマウントコマンドを発行する時に、アサインされているはずのドライブあるいは論理ドライブがアサインを解除されてしまっていて、未アサイン状態となっていたり、他のホストにアサインされているというミスが起こると、READY_ATN信号に対し、別のホストがＲ／Ｗ要求を送信し、他のホストから指定したボリュームまたは論理ボリュームが使われてしまう恐れがある。
【００１３】
さらに、ホストがマウントコマンドを発行した時に、ドライブあるいは論理ドライブが正しくアサインされていても、マウント完了の時点でハード故障等でアサインが解除されている場合がある。従来は全ホスト（接続されている全パス）にREADY_ATN信号が返されるため、各ホストはREADY_ATN信号を受領したならば、マウントされているボリュームあるいは論理ボリュームをチェックし、自ホストが発行したマウントコマンドに関わるボリュームあるいは論理ボリュームに対して不要なＲ／Ｗはしないようにしている。しかし、未初期化ボリューム、ノンラベルボリューム、スクラッチボリュームなどボリューム名あるいは論理ボリューム名が不定の場合は、複数のホストから同時に使用される可能性があり、ホスト間のデータの保全性が確保できない。テープライブラリ装置や仮想テープ装置に関連する公知例として、例えば下記の特許文献があるが、いずれも上記の問題点に注目したものではない。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００７−３１０６１８号公報
【特許文献２】特開２０００−９９２７６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
テープライブラリ装置を有する記憶装置のハードウェア障害、あるいは信号送受のタイミングのずれ等により、ドライブまたは論理ドライブが他のホストにアサインされている、あるいはアサインされているはずのドライブまたは論理ドライブのアサインが解除されてしまっている場合がある。このような場合には、READY_ATN信号を正しく目的のホストに送信することができず、他のホストによる過誤のＲ／Ｗが行なわれる可能性もある。本発明は、このような問題を解決し、かつ、ホストへのレスポンスを早く行なえることを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するために、記憶装置の一実施形態は、テープライブラリ装置を有する記憶装置が、ホストからのドライブ（または論理ドライブ）のアサインコマンドとボリューム（または論理ボリューム）のマウントコマンドにホストを識別する識別子（ホスト識別子）が付加されたコマンドを受信し、両コマンドに含まれるドライブ（または論理ドライブ）を識別する識別子（ドライブ識別子）とホスト識別子の比較等から異常を検出する。異常が検出された場合は両コマンドに含まれるホスト識別子を有するホストに対して異常が発生していることを知らせる通知を出して、アサインコマンドやマウントコマンドをキャンセルあるいは再発行させる。
【発明の効果】
【００１７】
以上のように開示の記憶装置によれば、正当なドライブ（または論理ドライブ）のアサイン、ボリューム（または論理ボリューム）のドライブへのマウントが間違っている、あるいはアサインが解除されていることが判明した時点で、アサインコマンドとマウントコマンドに含まれているホスト識別子を有するホストに対し、アサイン要求あるいはマウント要求を再度行わせ、READY_ATN信号を目的とするホストに正しく迅速に送信することができる。
【図面の簡単な説明】
【００１８】
【図１】実施形態における第１の実施例
【図２】実施形態における第２の実施例
【図３】実施形態における仮想テープ装置を有する記憶装置のハードウェア構成図
【図４】実施形態におけるホストと階層制御サーバ間の機能ブロック図の例
【図５】実施形態におけるフローチャートの例
【図６】従来の構成例１
【図７】従来の構成例２
【図８】実施形態におけるアサインテーブルの例
【発明を実施するための形態】
【００１９】
以下、図面を参照しつつ一実施形態を説明する。
【００２０】
図１は実施形態における第１の実施例を示す。図１記憶装置としてテープライブラリ装置１０が複数のホスト１６と接続されている例である。
【００２１】
図１には、複数のホスト１６に接続されている記憶装置としてのテープライブラリ装置１０を示す。図中に示されている実線矢印は、制御の流れを示す。
【００２２】
テープライブラリ装置１０は、制御部１１、ロボット１２、カートリッジテープよりなる複数のボリューム（その中の１つをボリューム１４とする）を格納する格納庫１３、複数のドライブ（その中の１つをドライブ１５とする）を有する。制御部１１はホスト１６との情報のやりとりや、テープライブラリ装置１０の制御を行う。ロボット１２は、ボリュームを格納庫１３から取り出してドライブにマウントしたり、ドライにマウントされたボリュームをデマウントして再び格納庫１３の所定の位置に格納する。ドライブは、マウントされたカートリッジテープに収められている磁気テープ媒体のＲ／Ｗ（磁気テーブ媒体からのデータの読み取り、あるいは磁気テーブ媒体へのデータの書き込み）を行う。
【００２３】
ロボットは複数台であっても１台であっても構わないが、ここでは説明のため、１台のロボット１２がテープライブラリ装置１０に設けられているとする。例えばホストＥからの指示により、制御部１１からボリューム１４、ドライブ１５が指定される。制御部１１は、図１の制御部１１の詳細図に示されるように、アサインコマンド受付部１１−１、マウントコマンド受付部１１−２、識別子比較部１１−３、アサインテーブル１１−４、異常通知送信部１１−５、ＣＰＵ１１−６、メモリ１１−７、電源部１１−８、アクセッサパスＩ／Ｆ部１７−１、ドライブパスＩ／Ｆ部１８−１を有する。
【００２４】
ホスト１６と制御部１１との間の信号パスは、主にロボット１２に関係する信号を送受
するアクセッサパス１７と主にドライブに関係する信号を送受するドライブパス１８とに大別される。アクセッサパスＩ／Ｆ部１７−１、ドライブパスＩ／Ｆ部１８−１はホスト１６とのインタフェース部である。 
【００２５】
まず、ホストＥからドライブパス１８経由でテープライブラリ装置１０に特定のドライブ１５のアサインを要求するアサインコマンドを送信する。制御部１１がホストＥからの  アサインコマンドを受信し、制御部１１によってドライブ１５がホストＥにアサインされる。ドライブをアサインするアサインコマンドは、少なくともホストとドライブとをそれぞれ特定するホスト識別子、ドライブ識別子とを含む。識別子は、例えば、ドライブ名、ドライブ番号、ホスト名、ホスト番号等であって、制御部１１が各ドライブやホストを識別できるものであれば足る。
【００２６】
ホストＥからのアサインコマンドは、アサインコマンド受付部１１−１にて受け付けられる。制御部１１は、ドライブ、ボリューム、ロボット等がアサインされているか否かの状態をホスト識別子と対応付けて記録保持するアサインテーブル１１−４を参照し、ドライブ１５が非アサイン状態（いずれのホストにもアサインされていない状態）であることを確認し、アサインテーブル１１−４にアサインされている状態のマークを付け(例えばビットを立てる)、ホストＥにアサインコマンド受領の信号を送信する。
【００２７】
どのホストからの要求かを制御部が知ることなく受領したコマンドを実行かつ全ホストに通知する従来の制御装置と異なり、本実施形態のアサインテーブル１１−４には、ドライブ、ボリューム、ロボット等がアサインされているか否かの状態をホスト識別子と対応づけて記録保持されている。このため、本実施形態ではプロセスの途中段階において、異常が生じたことを、例えばアサインされたホストに絞って通知できるようになっている。
【００２８】
ホストＥの発行するアサインコマンドによってドライブ１５がホストＥにアサインされ、ホストＥが制御部１１からアサインコマンド受領に対する応答を受け取る。
【００２９】
続いてホストＥは、アサインされたドライブ１５にボリューム１４をマウント要求するマウントコマンドを、アクセッサパス１７を経由して制御部１１へ発行する。ボリューム１４は、リード要求の場合であればホストＥが特定するボリュームである。ライト要求の場合は、マウントコマンドを制御部１１が受領してから制御部１１によってボリュームが指定されるので、指定されたボリューム名等が制御部１１によって確定されて通知される間までのこの段階では、例えば無指定である。説明上、制御部６１が指定するボリュームもボリューム１４とする。マウントコマンドには、少なくともホストと、ドライブと、ボリューム（リード要求の場合）とをそれぞれ特定する識別子を含む。これら識別子をそれぞれホスト識別子、ドライブ識別子、ボリューム識別子とする。識別子は、例えば、ドライブ名、ドライブ番号、ボリューム名、ボリューム番号、ホスト名、ホスト番号等であって、制御部１１が各ドライブ、ボリュームおよびホストを識別できるものであれば足る。ホストＥから送信されるマウントコマンドは、マウントコマンド受付部１１−２で受領される。
【００３０】
アサインコマンド受付部１１−１にて受領されたアサインコマンド、およびマウントコマンド受付部１１−２で受領されたマウントコマンドに含まれるホスト識別子、ドライブ識別子、ボリューム識別子等は、制御部１１の指示によりアサインコマンド受付部１１−１、マウントコマンド受付部１１−２にて読み取られる。そして、アサインテーブル１１−４に書き込まれる。それぞれのコマンドは一時的にアサインコマンド受付部１１−１、マウントコマンド受付部１１−２に保存されるようにしてもよい。
【００３１】
制御部１１は、例えばアサインコマンドに含まれるホスト名とドライブ名、マウントコマンドに含まれるホスト名とドライブ名を識別子比較部１１−３にてそれぞれ比較する。１）二つのコマンドに含まれるホスト識別子の間に相違がある場合、２）二つのコマンドに含まれるドライブ識別子の間に相違がある場合、あるいは、アサインテーブル１１−４を参照し、３）ドライブのアサインが解除されている場合には、異常通知送信部１１−５からアサインコマンドとマウントコマンドに含まれるホストの識別子に対応するホストに異常通知を送信する。
【００３２】
１）のホストを特定する識別子の間に相違がある場合とは、一方のホスト識別子がホストＡを特定する識別子であり、他方のホスト識別子がホストＡ以外のホストを特定する識別子である場合、あるいはホスト識別子が読み取れないか空の場合等である。制御部１１は、アサインコマンドとマウントコマンドに含まれるホストの識別子に対応するホストへ異常通知を送信する。ホスト識別子が読み取れないか空の場合等には、ホスト識別子が特定できず、したがって、ホスト識別子が読み取れないか空の場合にはホストへの異常通知を送信することはできないため送信しない。
【００３３】
２）のドライブを特定する識別子の間に相違がある場合とは、ドライブ識別子の間に相違があったり、あるいはドライブ識別子が読み取れないか空の場合等である。これらの場合にも、制御部１１はアサインコマンドとマウントコマンドに含まれるホスト識別子が特定できるホストへ異常通知を送信する。
【００３４】
３) ドライブのアサインが解除されている場合とは、制御部１１がアサインテーブル１１−４を参照して、ドライブのアサインを行なったホストによるドライブのアサインが解除されている場合である。制御部１１はアサインコマンドとマウントコマンドに含まれるホスト識別子に対応するホストへ異常通知を送信する。そして、１）に該当しないホスト(正当ホストと呼ぶ)Ｅにアサインコマンドおよびマウントコマンドを再び発行させ、正当ホストではないホストにはアサインコマンドおよびマウントコマンドの取り消しのためのアンアサインコマンドおよびデマウントコマンドを発行させる。
【００３５】
あるいは、制御部１１は異常通知をホストに送信した後は、受領しているアサインコマンドおよびマウントコマンドを破棄し、正当ホストＥだけにアサインコマンドおよびマウントコマンドを再び発行させるようになっていても構わない。
【００３６】
上記のように、正当ホストＥが異常通知を受信したとき、再びアサインコマンドおよびマウントコマンドを制御部１１へ送信可能としている。ここで、正当ホストＥが再び発行するアサインコマンドおよびマウントコマンドは、先に特定したドライブ、ボリュームと同じであっても異なったものを特定するものであっても構わない。
【００３７】
制御部１１から異常通知をホストに送信する場合を除き、マウントコマンドにもとづきロボット１２はドライブ１５へ指定されたボリューム１４を搬送しマウントする。そして、ボリューム１４をドライブ１５へマウントしたことを報告するマウント完了報告を制御部１１から正当ホストに送信する。
【００３８】
ここで、さらに制御部１１は、ボリューム１４がマウントされているドライブ１５のアサインが解除されている場合は、アサインされているはずのドライブのアサインが解除されている旨を知らせる未アサイン通知を正当ホストＥに送信する。未アサイン通知を受信した正当ホストＥは、アサインコマンドとマウントコマンドを再発行する。再発行するアサインコマンドとマウントコマンドは、先に特定したドライブ、ボリュームと同じドライブ、ボリュームを特定するものであっても、異なったものを特定するものであっても構わない。
【００３９】
正当ホストＥが未アサイン通知を制御部１１から受信しなかった場合には、正当ホストＥは制御部１１からドライブパス１８を経由して通知されるREADY_ATN信号を受領する。
【００４０】
正当ホストＥは、ドライブ１５にボリューム１４の識別子、例えばボリューム番号を読み出させる。マウント要求時に特定したボリューム番号あるいは制御部１１によって指定され通知のあったボリューム番号と読み出したボリューム番号とが一致すれば、正当ホストはＲ／Ｗ要求コマンドを制御部１１に送信し、Ｒ／Ｗ要求コマンドに対する制御部１１からのＲ／Ｗ許可の信号を受領後に、ボリューム１４に対してＲ／Ｗを開始する。
【００４１】
ＣＰＵ１１−６は制御部１１の動作を制御する。メモリ１１−７はテープライブラリ装置１１のボリュームのデータ等が一時的に読み込まれる不揮発性の記憶領域である。
【００４２】
図２は実施形態における第２の実施例を示す。図２は、テープライブラリ装置２１を有する記憶装置２０が複数のホスト２３（ここでは、説明のためにホストＧとホストＨとする）と仮想テープ装置２２を介して接続された構成例である。仮想テープ装置２２は階層制御サーバ２２−１とディスクアレイ装置２２−２とを有する。図２中に示されている実線矢印は、制御の流れを示す。
【００４３】
仮想テープ装置２２は、フロントエンドにおいてはホスト２３からのＲ／Ｗ要求に対する応答、バックエンドにおいてはテープライブラリ装置２１に対するＲ／Ｗ要求を行なう。
【００４４】
階層制御サーバ２２−１は、テープライブラリ装置２１にあるドライブおよびボリュームと、仮想テープ装置２２にあるディスクアレイ装置２２−２に対応づけられ形成されている論理ドライブ、論理ボリュームとの関係づけと制御を行なっている。例えばディスクアレイ装置２２−２の複数の磁気ディスク装置を各論理ドライブ、磁気ディスク装置毎あるいはディスク装置のセクタ領域を論理ボリュームとして、テープライブラリ装置２１にある物理的なドライブおよび物理的なボリュームと対応づけを行なっている。階層制御サーバ２２−１は、ホストＧからのＲ／Ｗ要求において、リード要求の場合は、ディスクアレイ装置２２−２の論理ボリュームにデータが存在すれば、データ読み出しをしてホストＧへ転送し、存在しなければ、例えばテープライブラリ装置２１からディスクアレイ装置２２−２に要求のあったデータの書き込みを行い、データの書き込みが完了した後、データをディスクアレイ装置２２−２からホストＧへ転送する。ライト要求の場合は、ホストＧから転送されたデータはディスクアレイ装置２２−２の所定の論理ボリュームに一旦書き込まれ、書き込みが完了すると、ホストに書き込み完了が報告される。その後、論理ボリュームに一旦書き込まれたデータは、ホストＧを介さずにバックグラウンドで、ディスクアレイ装置２２−２からテープライブラリ装置２１のボリュームへ書き込み保存するマイグレーション処理が行なわれる。
【００４５】
ここで、ホスト２３からのライト要求に関わるデータのデータ量が大きく、ディスクアレイ装置２２−２に膨大な論理ボリュームを必要とする場合や、または、ディスクアレイ装置２２−２にデータを書き込まずにテープライブラリ装置２１のボリュームの幾つかに書き込む方が良い場合が生ずる。このような場合には、例えばライト要求に関わるデータ量に閾値を設定し、閾値より小さな量のデータはディスクアレイ装置２２−２に書き込み、閾値以上の量のデータはテープライブラリ装置２１に書き込むといったことを行なう。このような場合、テープライブラリ装置２１においては、階層制御サーバ２２−１からのマウント指示により、テープライブラリ装置２１の制御部２１−１はロボット２１−２に指定のカートリッジテープ２１−４を格納庫２１−３から取り出して指定のドライブ２１−５へマウントさせ、また、ドライブ２１−５にマウントされているカートリッジテープ２１−４をデマウント指示によりデマウントして再び格納庫２１２−３の所定の場所へ格納させる。
【００４６】
このように、仮想テープ装置２２の階層制御サーバ２２−１からのＲ／Ｗ指示により、テープライブラリ装置２１の制御部２１−１は、例えばドライブ２１−５にマウントされたボリューム２１−４のデータをドライブ２１−５に読み出させてディスクアレイ装置２２−２へ転送させたり、あるいは階層制御サーバ２２−１から転送されるデータをドライブ２１−５にマウントされたボリューム２１−４へ書き込ませる。
【００４７】
階層制御サーバ２２−１は、階層制御サーバ２２−１の詳細図に示すように、アサインコマンド受付部２２−１−１、マウントコマンド受付部２２−１−２、識別子比較部２２−１−３、アサインテーブル２２−１−４、異常通知送信部２２−１−５、ＣＰＵ２２−１−６、メモリ２２−１−７、ホストとのインタフェース部としてのアクセッサパスＩ／Ｆ部２２−１−８とドライブパスＩ／Ｆ部２２−１−９、電源部２２−１−１０を有する。
【００４８】
ホスト２３と階層制御サーバ２２−１との間の信号パスは、マウントに関係する信号等
を送受するアクセッサパス２４と、ドライブに関係する信号等を送受するドライブパス２５とに大別され、これらはホスト２３との間の通信線で互いのインタフェース部に接続されている。 
【００４９】
ホスト２３は、ユーザーにより操作され、階層制御サーバ２２−１に対し、データのＲ／Ｗの指示を行う。階層制御サーバ２２−１では、ホスト２３からの論理ドライブのアサイン指示、論理ボリュームの論理ドライブへのマウント指示は、ホスト間の排他制御により、複数のホストによる同一論理ドライブのアサイン、同一論理ボリュームのマウント指示が同時にはできないようになっている。
【００５０】
まず、ホストＧからドライブパス経由で階層制御サーバ２２−１に特定の論理ドライブをアサイン要求するアサインコマンドを送信する。階層制御サーバ２２−１がアサインコマンド受付部２２−１−１にてホストＧからのアサインコマンドを受信する。アサインコマンドは、少なくとも論理ドライブとホストＧをそれぞれ特定する識別子を含む。識別子は、例えば、論理ドライブ名、論理ドライブ番号、ホスト名、ホスト番号等であって、階層制御サーバ２２−１が各論理ドライブやホストを識別できるものであれば足る。
【００５１】
ここで、アサインテーブル２２−１−４について、図８に示す実施形態におけるアサインテーブルの例をもって説明する。
【００５２】
図８に示されるアサインテーブルにおいて、縦の欄には上から順に、論理ボリューム、物理ボリューム、論理ドライブ、物理ドライブ、ロボット等の見出しを掲げてある。図８に示されるアサインテーブルの横の欄には、縦の欄の見出しに属する各構成要素が記号で示されている。また、縦の欄の各見出しの下には、各見出しの構成要素と関連付けられている他の見出しの構成要素を表す記号、あるいは、アサインしているホスト名が表示されている。
【００５３】
図８に示される表においては、物理ボリューム、物理ドライブ、ロボットはそれぞれテープライブラリ装置２１のカードリッジテープ２１−４の１つ１つ、ドライブ２１−５の１つ１つ、ロボット２１−２（ここにおいては１台と仮定している）に対応している。また、論理ドライブは、例えばディスクアレイ装置２２−２を構成する物理的なハードディスクドライブに１対１に対応付けられ、Ｌ３、Ｌ５、・・・と名付けられている。これらＬ３、Ｌ５、・・・は、さらに内部の複数セクターを幾つかのグループに分けられ、階層制御サーバ２２−１によって、Ｌ３は１０１から１０５の５つの論理ボリュームに、そして、Ｌ５は１０６から１１０の５つの論理ボリュームに分けられ対応付けられている。
【００５４】
以上のように、ディスクアレイ装置２２−２における論理ドライブＬ３、Ｌ５、・・・は、Ｌ３は１０１から１０５へ、Ｌ５は１０６から１１０へと複数の論理ボリュームに分割され、論理ボリューム１０１から１０５はテープライブラリ装置２１のカートリッジテープ３０１から３０５へ、また、論理ボリューム１０６から１１０はテープライブラリ装置２１のカートリッジテープ５０１から５０５へと対応付けられている。これが、論理ボリュームの欄の（関連付け８−１）に示されている。
【００５５】
また、図８に示される表においては、テープライブラリ装置２１のカートリッジテープの中のボリューム５０２は、ホストＧによりアサインされ（アサイン８−２）、テープライブラリ装置２１のドライブＰ１もホストＧによりアサインされていることを示している（アサイン８−４）。
【００５６】
階層制御サーバ２２−１は、上記のようなアサインテーブル２２−１−４を参照し、まず、アサインコマンデで特定された論理ドライブが非アサイン状態であることを確認し、アサインテーブル２２−１−４にアサインされている状態のマークを付け(例えばホストの識別子として記号Ｇを記録する)、ホストＧにアサインコマンド受領の信号を送る。
【００５７】
アサインテーブル２２−１−４は、ディスクアレイ装置２２−２の論理ドライブおよび論理ボリュームがアサインされているか否かの状態を、論理ドライブ識別子および論理ボリューム識別子とホスト識別子とを対応付けて記録保持している。さらに、テープライブラリ装置２１のドライブ、ボリュームとディスクアレイ装置２２−２の論理ドライブ、論理ボリュームとの対応づけも記録保持している。どのホストからの要求かを階層制御サーバ２２−１が知ることなく受領したコマンドを実行かつ全ホストに通知する従来の階層制御サーバ２２−１と異なり、アサインテーブル２２−１−４にはホスト識別子とディスクアレイ装置２２−２の論理ドライブ識別子、論理ボリューム識別子、およびホスト識別子とのテープライブラリ装置２１のドライブ、ボリューム等との対応づけがされている。このため、プロセスの途中段階において、異常が生じたことをアサインコマンドとマウントコマンドに含まれるホスト識別子をもつホストに絞って通知できるようになっている。
【００５８】
ホスト２３に対して仮想テープ装置２２はテープライブラリ装置として振舞い、ホストＧから仮想テープ装置２２にデータのＲ／Ｗ要求をした場合、ホストＧと階層制御サーバ２２−１との間のドライブパスを経由して、ディスクアレイ装置２２−２に形成されている論理ドライブにある特定の論理ボリュームに対してホストＧからＲ／Ｗするようになっている。その後、ホストＧを介さずにバックエンドでディスクアレイ装置２２−２に書き込まれたデータは、ドライブ２１−５にマウントされるボリューム２１−４へ保存（マイグレーション処理）される。
【００５９】
また、ＣＰＵ２２−１−６は階層制御サーバ２２−１の動作を制御する。メモリ２２−１−７は、テープライブラリ装置２１の物理的なボリュームへ書き込まれるデータが一時的に保持されたり、ライト要求に関わるデータ量に対して設けられる閾値等が記録保持されている不揮発性の記憶領域である。
【００６０】
テープライブラリ装置２１は、制御部２１−１、ロボット２１−２、ボリューム２１−４を含む複数のボリュームを格納する格納庫２１−３、複数のドライブ（その中の１つをドライブ２１−５とする）を有する。制御部２１−１はアクセッサパス２４、ドライブパス２５を経由して階層制御サーバ２２−１との情報のやりとりや、テープライブラリ装置２１の制御を行う。ロボット２１−２は、ボリューム２１−４をはじめとする複数のボリュームの中から階層制御サーバ２２−１により制御部２１−１を経由して指定されるボリュームを格納庫２１−３から取り出してドライブ２１−５をはじめとするドライブにマウントしたり、ドライブにマウントされたボリュームをデマウントして再び格納庫２１−３の所定の位置に格納する。ロボットは複数台であっても１台であっても構わないが、ここでは説明のため、１台のロボット２１−２が設けられているものとする。ドライブ２１−５はマウントされたボリューム内のデータのＲ／Ｗを行う。
【００６１】
例えばホストＧからのＲ／Ｗ指示により、階層制御サーバ２２−１から制御部２１−１を経由してボリューム２１−４、ドライブ２１−５が指定されると、ドライブ２１−５はマウントしたボリューム２１−４内に格納されているデータを読み出して階層制御サーバ２２−１へ転送し、あるいは階層制御サーバ２２−１から転送されるデータをボリューム２１−４へ書き込む。
【００６２】
ホストＧは、アサインした論理ドライブに論理ボリュームをマウントするマウントコマンドをアクセッサパスを経由して階層制御サーバ２２−１へ発行する。論理ボリュームは、リード要求の場合にはホストＧにより特定され、ライト要求の場合には階層制御サーバ２２−１により指定される。したがって、ライト要求の場合は、階層制御サーバ２２−１がマウントコマンドを受領してから論理ボリュームが指定されるので、マウントコマンドをホストＧから発行する段階では、例えば論理ボリュームは無指定である。マウントコマンドには、少なくとも論理ドライブと、論理ボリューム（リード要求の場合）と、ホストとをそれぞれ特定する識別子を含む。識別子は、例えば、論理ドライブ名、論理ドライブ番号、論理ボリューム名、論理ボリューム番号、ホスト名、ホスト番号等であって、階層制御サーバ２２−１が各論理ドライブ、論理ボリュームおよびホストを識別できるものであれば足る。ホストＧから送信されたマウントコマンドは、マウントコマンド受付部２２−１−２にて受領される。
【００６３】
階層制御サーバ２２−１は、アサインコマンドとマウントコマンドのそれぞれに含まれるホスト識別子と論理ドライブ識別子を識別子比較部２２−１−２にてそれぞれ比較し、１）ホストを特定する識別子の間に相違がある場合、２）論理ドライブを特定する識別子の間に相違がある場合、あるいは、アサインテーブル２２−１−４を参照して、３）論理ドライブのアサインが解除されている場合には、異常通知送信部２２−１−５からアサインコマンドとマウントコマンドに含まれるホストの識別子に対応するホストに異常通知を送信する。
【００６４】
１）のホストを特定する識別子の間に相違がある場合とは、一方のホスト識別子がホストＧを特定する識別子であり、他方のホスト識別子がホストＧ以外のホストを特定する識別子である場合、あるいはホスト識別子が読み取れないか空の場合等である。これらの場合には、階層制御サーバ２２−１はアサインコマンドとマウントコマンドに含まれるホストの識別子に対応するホストへ異常通知を送信する。ホスト識別子が読み取れないか空の場合等にはホスト識別子が特定できず、したがって、ホスト識別子が読み取れないか空の場合にはホストへの異常通知を送信することはできないため送信しない。
【００６５】
２）の論理ドライブを特定する識別子の間に相違がある場合とは、論理ドライブを特定する識別子の間に相違があったり、あるいは論理ドライブ識別子が読み取れないか空の場合等である。これらの場合には、階層制御サーバ２２−１はアサインコマンドとマウントコマンドに含まれるホスト識別子に対応するホストへ異常通知を送信する。
【００６６】
３) 論理ドライブのアサインが解除されている場合とは、階層制御サーバ２２−１がアサインテーブルを参照して、論理ドライブのアサインを行なったホストによる論理ドライブのアサインが解除されている場合である。
【００６７】
上記の各場合には、階層制御サーバ２２−１はアサインコマンドとマウントコマンドに含まれるホスト識別子に対応するホストへ異常通知を送信する。そして、１）に該当しないホスト(正当ホストと呼ぶ)Ｇにアサインコマンドおよびマウントコマンドを再び発行させ、正当ホストではないホストにはアサインコマンドおよびマウントコマンドの取り消しのためのアンアサインコマンドおよびデマウントコマンドを発行させる。あるいは、階層制御サーバ２２−１は異常通知をホストＧに送信した後は、受領しているアサインコマンドおよびマウントコマンドを破棄し、正当ホストＧだけにアサインコマンドおよびマウントコマンドを再び発行させるようになっていても構わない。
【００６８】
上記のように、正当ホストＧが異常通知を受信したとき、再びアサインコマンドおよびマウントコマンドを階層制御サーバ２２−１へ送信可能としている。ここで、正当ホストＧによるアサインコマンドおよびマウントコマンドの再発行は、先に特定した論理ドライブ、論理ボリュームと同じであっても異なったものを特定するものであっても構わない。
【００６９】
階層制御サーバ２２−１から異常通知をホストＧに送信する場合を除き、マウントコマンドにもとづき特定あるいは指定の論理ボリュームを、アサインされている論理ドライブへマウントしたことを報告するマウント完了報告を階層制御サーバ２２−１から正当ホストＧに送信する。
【００７０】
ここで、さらに階層制御サーバ２２−１は、論理ボリュームがマウントされている論理ドライブのアサインが解除されている場合は、アサインされているはずの論理ドライブのアサインが解除されている旨を知らせる未アサイン通知を正当ホストＧに送信する。未アサイン通知を受信した正当ホストＧは、アサインコマンドとマウントコマンドを再発行する。再発行するアサインコマンドとマウントコマンドは先に特定したドライブ、ボリュームと同じであっても、異なったものを特定するものであっても構わない。
【００７１】
正当ホストＧが未アサイン通知を階層制御サーバ２２−１から受信しなかった場合には、正当ホストＧは階層制御サーバ２２−１から通知されるREADY_ATN信号を受領する。
正当ホストＧは、論理ドライブに論理ボリュームの識別子、例えば論理ボリューム名を読み出させる。正当ホストＧがマウント要求時に特定した論理ボリューム名あるいは階層制御サーバ２２−１によって指定され通知のあった論理ボリューム名と、読み出した論理ボリューム名とが一致すれば、正当ホストＧはＲ／Ｗ要求コマンドを階層制御サーバ２２−１に送信し、Ｒ／Ｗ要求コマンドに対する階層制御サーバ２２−１からのＲ／Ｗ許可の  信号を受領後に、論理ボリュームに対してＲ／Ｗを開始する。
【００７２】
上述のように、仮想テープ装置２２は、ハードウェアはディスクベースのストレージでありながら、搭載されたソフトウェア機能によってテープドライブをエミュレーションし、仮想のテープドライブとしてのストレージ領域を提供している。ハードディスク内にテープライブラリ装置２１のドライブ、ボリュームに対応づけた論理ドライブ、論理ボリュームを作成でき、仮想テープ装置２２のフロントエンドのホスト２３からはテープライブラリ装置として認識される。実際には、ホスト２３からデータのＲ／Ｗ要求があれば、ディスクアレイ装置２２−２を利用してデータのＲ／Ｗを行う。ディスクアレイ装置２２−２をキャッシュとして用いて、ホスト２３から特定され、または階層制御サーバ２２−１によって指定された論理ボリュームへアクセスする。ホスト２３が要求したデータがディスクアレイ装置２２−２内に保持されていない場合には、階層制御サーバ２２−１は、要求されたデータが記憶されているテープライブラリ装置２１にある物理的なボリュームを物理的なドライブにマウントし、物理的なボリュームからデータをディスクアレイ装置２２−２に読み出す。また、ディスクアレイ装置２２―２は、テープライブラリ装置２１へデータを書き込む際にキャッシュとして使用される。  
仮想テープ装置２２へのデータの入出力要求はホスト２３からテープフォーマットで行なうことができ、テープライブラリ装置２１に接続した場合のホスト２３と同様のコマンドが使える。仮想テープ装置２２は、ホスト２３からデータのＲ／Ｗ要求があった場合、ホスト２３に対し、仮想的にテープライブラリ装置として振舞う。仮想テープ装置は、実際には、ディスクアレイ装置２２−２を利用してデータを論理ボリュームにＲ／Ｗする。テープライブラリ装置よりもデータアクセスが速いディスクアレイ装置を用いて、ホストに対して応答するため、テープライブラリ装置のみを使用する場合に比べ、高速に処理を行うことができる。
【００７３】
上述のように、図１、図２の実施例において、ホストから見た記憶装置は、仮想テープ装置の介在するテープライブラリ装置と仮想テープ装置を介在しないテープライブラリ装置で構成されていてもどちらも同じように扱うことができる。図３は実施形態における仮想テープ装置を有する記憶装置のハードウェア構成図を示す。
記憶装置３０は、フロントエンドでドライブパス３０−１、アクセッサパス３０−２によりホストと信号の送受を行なう。ドライブパス３０−１はＲ／Ｗ制御、アクセッサパス３０−２はマウント制御に関わる信号のパスである。バックエンドではドライブパス３２−１、アクセッサパス３２−２によりテープライブラリ装置３２と信号の送受を行なう。
【００７４】
記憶装置３０は、ディスクアレイ装置３１、テープライブラリ装置３２、そして階層制御サーバ３３（図示省略）を有する。
【００７５】
階層制御サーバ３３は、４つのサーバＩＣＰ（Integrated Channel Processor）３３−１、ＶＬＰ（Virtual Library Processor）３３−２、ＩＤＰ（Integrated Drive Processor）  ３３−３、ＰＬＰ（Physical Library Processor）３３−４を有する。
【００７６】
ＩＣＰ３３−１はフロントエンドのドライブパスを制御する階層制御サーバであってＲ／Ｗの制御を行なう。ＶＬＰ３３−２はフロントエンドのアクセッサパスを制御する階層制御サーバであってマウント制御の制御を行なう。ＩＤＰ３３−３はバックエンドのドライブパスを制御する階層制御サーバであってＲ／Ｗの制御を行なう。そして、ＰＬＰ３３−４はバックエンドのアクセッサパスを制御する階層制御サーバでであってロボット（キャリッジ）制御を行なうものである。
【００７７】
図４は実施形態におけるホストと階層制御サーバ間の機能ブロック図の例を示す。ホストとして、ホスト４０１、ホスト４０２を示し、階層制御サーバとして、階層制御サーバ４０３を示す。
【００７８】
ホスト４０１、ホスト４０２の有する機能として、共に同じ、論理ドライブ割り付け制御４１、マウント・デマウント要求４２、ボリューム番号リード４３の機能を図示している。論理ドライブ割り付け制御４１は論理ドライブのアサインコマンドあるいはアンアサインコマンド発行を制御する機能である。マウント・デマウント要求４２は、論理ボリュームを論理ドライブにマウントまたはデマウントすることを要求する機能である。そして、ボリューム番号リード４３は論理ボリュームのボリューム番号を読み取る機能である。
【００７９】
階層制御サーバ４０３の有する機能として、識別子比較等４４は、アサインコマンド、マウントコマンドに含まれるホスト識別子、論理ドライブ識別子をそれぞれ比較する機能、およびアサインテーブル４８を参照して当該論理ドライブのアサイン有無のチェック機能である。アサインテーブル４８は、論理ドライブ、論理ボリューム毎にどのホストにアサインされているかどうかのアサイン状態を記録保持しておくテーブルである。また、アサインテーブル４８には、論理ドライブとドライブ、論理ボリュームとボリュームとの対応を記録しておいても構わない。マウント処理４５は、論理ボリューム４６を論理ドライブ４７にマウントする機能である。論理ボリューム４６はディスクアレイ（図示省略）に論理的に割り付けられた論理ボリュームであり、論理ドライブ４７はディスクアレイに論理的に割り付けられた論理ドライブである。
【００８０】
マウント完了４９は、論理ボリューム４６を論理ドライブ４７にマウント完了したことをホストに通知する機能である。
【００８１】
二重線の枠をもった機能である識別子比較等４４は従来の階層サーバには無い機能、アサインテーブル４８は従来と異なるアサインテーブルであることを示している。階層制御サーバ４０３の中に示す（ＶＬＰ）、（ＩＣＰ）は前述のＶＬＰ（Virtual Library Processor）、ＩＣＰ（Integrated Channel Processor）が持つ機能であることを示している。
【００８２】
図５は実施形態におけるフローチャートの例を示す。前述の図１および図２の構成例に対応している。図中の右側にある制御部／階層制御サーバのプロセス開始にはじまる縦方向の列は、制御部のプロセスまたは階層制御サーバのプロセスである。制御部のプロセスは図１におけるテープライブラリ装置の制御部のプロセスを表し、階層制御サーバのプロセスは図２における階層制御サーバのプロセスを示している。説明上、制御部／階層制御サーバを制御装置と呼ぶことにする。また、図中のホストのプロセス開始にはじまる縦方向の列は、上記の制御装置に接続しているホストのプロセスを表す。図において、ドライブおよびボリュームはそれぞれドライブ／論理ドライブおよびボリューム／論理ボリュームを意味するものとする。
【００８３】
複数のホストのそれぞれは、アサインするドライブの割り付けを他ホストとの排他制御の下に行う（Ｓ５０１）。自ホストは、アサインコマンドをドライブパスを経由して制御装置へ発行する（Ｓ５０２）。アサインコマンドは、アサインするドライブを特定する識別子（ここではドライブ名とする）の他に自ホストを特定する識別子（ここではホスト名とする）が含まれている。
【００８４】
制御装置はアサインコマンドを受領し（Ｓ５０３）、さらに、自ホストからマウントコマンドがアクセッサパスを経由して発行され（Ｓ５０４）、制御装置はマウントコマンドを受領する（Ｓ５０５）。マウントコマンドには、アサインしたドライブを特定するドライブ名、自ホストのホスト名、READ要求の場合には要求するデータが含まれる特定のボリュームの識別子（WRITE要求の場合には制御装置がボリュームを指定するので、この段階ではボリュームの識別子の部分は例えば空白）が含まれる。ボリュームの識別子はここではボリューム名とする。
【００８５】
制御装置はアサインコマンドおよびマウントコマンドに含まれるホスト名とドライブ名を読み出し、ホスト名の間、ドライブ名の間をそれぞれ比較する（Ｓ５０６）。１）ホスト名の間に相違がある場合、２）ドライブ名の間に相違がある場合、さらに、３）制御装置がアサインテーブルを参照して当該ドライブのアサインが解除されている場合（Ｓ５０７）には、制御装置はアサインコマンドおよびマウントコマンドに含まれるホスト名に対応するホストへ異常通知を送信する（Ｓ５０８）。異常通知には、１）に該当しない、すなわち正当ホストにアサインコマンドおよびマウントコマンドを再び発行させるリトライ処理を行なわせ（Ｓ５０９）、他のホストにはアサインコマンドおよびマウントコマンドの取り消しのためのアンアサインコマンドおよびデマウントコマンドを発行させる指示をする。あるいは、制御装置はホストに異常通知を送信した後に、受領しているアサインコマンドおよびマウントコマンドを破棄し、正当ホストにアサインコマンドおよびマウントコマンドを再び発行させるようになっていても構わない。
【００８６】
上記の１）乃至３）に該当せず、異常通知を発行しない正常な場合には、制御装置はマウントを実行し、マウントが完了したら、マウント完了報告を正当ホストに送信する（Ｓ５１０）。マウント完了報告を受領（Ｓ５１１）し、かつ、制御装置がボリュームのマウントされているドライブのアサインがアサインテーブルを参照して（Ｓ５１２）、解除されている場合は、正当ホストに未アサイン通知を送信する（Ｓ５１３）。未アサイン通知を受信（Ｓ５１４）した正当ホストは、アサインコマンド、マウントコマンドを再発行する（Ｓ５１５）。再発行するアサインコマンドとマウントコマンドは先に特定したドライブ、ボリュームと同じであっても異なったものを特定するものであっても構わない。
【００８７】
正当ホストが未アサイン通知を制御装置から受信しなかった場合には、正当ホストは制御装置が発信するREADY_ATN信号（Ｓ５１６）を受領し（Ｓ５１７）、ドライブにボリューム名を読み出させ（Ｓ５１８）、マウント要求時に特定したボリューム名あるいは制御装置によって指定され通知のあったボリューム名と一致すれば（Ｓ５１９）、Ｒ／Ｗ要求コマンドを制御装置に送信（Ｓ５２１）し、制御装置からの許可後にボリュームから、またはボリュームへＲ／Ｗを開始する（Ｓ５２２）。Ｓ５１９において、マウント要求時に特定したボリューム名あるいは制御装置によって指定され通知のあったボリューム名と一致しない場合は、アンアサイン、デマウント要求のコマンドを制御装置に送る（Ｓ５２０）。
【００８８】
ここで、図５のフローチャートにおいて、二重線の枠が付けられたプロセス、（Ｓ５０２）、（Ｓ５０４）、（Ｓ５０６）、（Ｓ５０７）、（Ｓ５０８）、（Ｓ５０９）、（Ｓ５１２）、（Ｓ５１３）、（Ｓ５１４）、（Ｓ５１５）は、従来においては行なわれていなかったプロセスである。
【００８９】
上述のように、テープライブラリ装置を有する記憶装置において、仮想テープ装置ある
いはテープライブラリ装置のハードウェア障害、あるいはアクセッサパスとドライブパスとの分離に起因する信号送受のタイミングのずれ等により、ドライブまたは論理ドライブが他のホストにアサインされている、あるいはアサインされているはずのドライブまたは論理ドライブのアサインが解除されてしまって、READY_ATN信号が正しく目的のホストに送信されない場合が従来において発生していた。従来は、制御装置がホストから受信するアサインコマンド、マウントコマンド、また、制御装置がホストへ送信するマウント完了報告、READY_ATN信号には、ホストを特定する情報は付加されておらず、各ホストはREADY_ATN信号を受取り、ドライブまたは論理ドライブにマウントされた、ボリュームまたは論理ボリューム名を読み取り、自ホストの要求したものと異なることが判明してからリトライを行なわざるを得なかった。
【００９０】
上記で説明した実施態様によれば、前述のような問題点を解決し、他のホストによる過誤のＲ／Ｗを防止し、さらには、リトライを早期に行なわせることにより、ホストへのレスポンスを早くすることができる。
【００９１】
請求項において、ドライブおよびボリュームは、特に断りのない限り、それぞれ論理ドライブと論理ボリュームを含むものとする。
【符号の説明】
【００９２】
１０、２１、３２、６０、７２  テープライブラリ装置
１１、６１                    制御部
１２、６２                    ロボット
１３、６３                    格納庫
１４                          ボリューム
１５、６４                    ドライブ
１６、６７、７３、４０１      ホスト
１７、６５、７４              アクセッサパス
１８、６６、７５              ドライブパス
２０、３０、７０              記憶装置
２２、７１                    仮想テープ装置
３１                          ディスクアレイ装置
４１                          論理ドライブ割り付け制御
４２                          マウント・デマウント要求
４３                          ボリューム番号リード
４４                          ホストＩＤ・論理ドライブ名・アサイン有無比較
４５                          マウント処理
４６                          論理ボリューム
４７                          論理ドライブ
４８                          アサインテーブル
４９                          マウント完了
４０３                        階層制御サーバ
【図１】
0005482315.tif 000002
【図２】
0005482315.tif 000003
【図３】
0005482315.tif 000004
【図４】
0005482315.tif 000005
【図５】
0005482315.tif 000006
【図６】
0005482315.tif 000007
【図７】
0005482315.tif 000008
【図８】
0005482315.tif 000009