(57)【要約】【課題】自動化されたデータ・ストレージ・ライブラリにおけるデータ・ストレージ・ドライブ【解決手段】自動化されたデータ・ストレージ・ライブラリのデータ・ストレージ・ドライブが、受け取られた要求に割り振られる。ドライブ・リソース・プロバイダが、プールのドライブのすべてが割振り済みであるときにドライブの要求を受け取ると、その要求に関連する可搬データ・ストレージ・カートリッジのマウントを一切、保留し、ドライブが割り振られた場合にその保留を解除する。プールの外で、スペア・ドライブが提供される。要求に応答してスペア・ドライブが割り振られることが可能であり、スペア・データ・ストレージ・ドライブの使用を示すメッセージがポストされる。ポストされたメッセージは、スペア・データ・ストレージ・ドライブをプールに永久に移すアクションを行ってもよいという通知を含むことが可能である。さらに、自動化されたデータ・ストレージ・ライブラリに関する仮想化システムのドライブ・イメージ・プロバイダが、固定識別を有する固定の複数の仮想データ・ストレージ・ドライブのイメージをホスト・アプリケーションに提供する。ドライブ・リソース・プロバイダは、任意の一時点で、「ｎ」個のドライブのプールの任意の「ｍ」個をドライブ・イメージ・プロバイダに割り当て、プールの「ｎ」−「ｍ」個が解放されており、割当てに利用できる。ドライブ・リソース・プロバイダは、ドライブを要求するトリガ・イベントに応答し、プールの「ｎ」−「ｍ」個のドライブの１つを仮想ドライブに専用にする。ドライブ・イメージ・プロバイダは、ホストと、固定の仮想ドライブとしての専用ドライブの間の通信を特徴付け、誘導し、ドライブの専用化に先立ち、要求側ホスト・アプリケーションに対する仮想ドライブを「ノット・レディー」として特徴付ける。【選択図】図１
2005502954.tif 000002
【特許請求の範囲】
【請求項１】
データ・ストレージ・ドライブの少なくとも１つの要求に応答して、ストレージ・シェルフの中に複数の可搬データ・ストレージ・カートリッジを格納し、データ・ストレージ・ドライブにおいて前記可搬データ・ストレージ・カートリッジのマウントおよびマウント解除を行うために前記ストレージ・シェルフと前記データ・ストレージ・ドライブの間で前記可搬データ・ストレージ・カートリッジを運ぶ自動化されたデータ・ストレージ・ライブラリの前記データ・ストレージ・ドライブを割り振るための割振りシステムであって、
複数の前記ライブラリ・データ・ストレージ・ドライブをプールに割り当て、前記プールに対して前記データ・ストレージ・ドライブの割振りおよび割振り解除を行うドライブ・リソース・プロバイダを含み、前記ドライブ・リソース・プロバイダが、前記プールの前記データ・ストレージ・ドライブのすべてが割振り済みであるときにデータ・ストレージ・ドライブの前記要求を受け取ると、前記要求に関連する可搬データ・ストレージ・カートリッジのマウントを一切、保留するように前記ライブラリに指示するシステム。
【請求項２】
前記プールの前記データ・ストレージ・ドライブのすべてが割振り済みであるときにデータ・ストレージ・ドライブの前記要求を受け取ると、マウント済みの可搬データ・ストレージ・カートリッジを必要とする後続のコマンドを完了するのに前記要求されたデータ・ストレージ・ドライブが、現在、利用できないことを示す前記ドライブ・リソース・プロバイダに結合されたドライブ・イメージ・プロバイダをさらに含む請求項１に記載の割振りシステム。
【請求項３】
前記ドライブ・リソース・プロバイダがさらに、前記指示の後、データ・ストレージ・ドライブの割振り解除、および前記割振り解除されたデータ・ストレージ・ドライブにおける可搬データ・ストレージ・カートリッジのマウント解除を待ち、前記割振り解除されたデータ・ストレージ・ドライブを前記要求に割り振り、前記要求に関連する前記マウントの前記保留を解除するように前記ライブラリに指示する請求項１または２に記載の割振りシステム。
【請求項４】
前記ドライブ・リソース・プロバイダがさらに、前記複数のライブラリ・データ・ストレージ・ドライブの少なくとも１つを前記プールの外のスペア・データ・ストレージ・ドライブとして割り当て、前記指示の後、前記少なくとも１つのスペア・データ・ストレージ・ドライブの前記１つを前記要求に割り振り、前記要求に関連する前記マウントの前記保留を解除するように前記ライブラリに指示する請求項１、２、または３に記載の割振りシステム。
【請求項５】
前記ドライブ・リソース・プロバイダが、前記指示の後、所定の期間だけ待ち、データ・ストレージ・ドライブの割振り解除、および前記割振り解除されたデータ・ストレージ・ドライブにおける可搬データ・ストレージ・カートリッジのマウント解除を待ち、前記所定の期間中、前記割振り解除が行われた場合、前記割振り解除されたデータ・ストレージ・ドライブを前記要求に割り振り、行われなかった場合、前記期間の満了後、前記スペア・データ・ストレージ・ドライブを前記要求に割り振り、前記要求に対するデータ・ストレージ・ドライブの前記割振りの後、前記要求に関連する前記マウントの前記保留を解除するように前記ライブラリに指示する請求項４に記載の割振りシステム。
【請求項６】
前記ライブラリが、データ・ストレージ・ドライブの前記少なくとも１つの要求に応答する複数の仮想ライブラリを含み、前記システムが、前記自動化されたデータ・ストレージ・ライブラリのデータ・ストレージ・ドライブを前記複数の仮想ライブラリに割り振り、前記複数の仮想ライブラリの少なくとも１つが、前記仮想ライブラリのその他よりも高い優先順位であり、前記ドライブ・リソース・プロバイダがさらに、データ・ストレージ・ドライブの前記要求の前記仮想ライブラリの前記優先順位を判定し、前記仮想ライブラリが前記より高い優先順位である場合、前記スペア・データ・ストレージ・ドライブを前記要求に割り振り、前記要求に関連する前記マウントの前記保留を解除するように前記ライブラリに指示する請求項４または５に記載の割振りシステム。
【請求項７】
前記ドライブ・リソース・プロバイダがさらに、前記プールの前記データ・ストレージ・ドライブのすべてが割振り済みであるときに前記要求が受け取られた各回にカウントを増分し、前記増分されたカウントを所定の限度と比較し、前記増分されたカウントが前記所定の限度より少ない場合、前記スペア・データ・ストレージ・ドライブを割り振る請求項４、５、または６に記載の割振りシステム。
【請求項８】
前記ドライブ・リソース・プロバイダがさらに、前記スペア・データ・ストレージ・ドライブの前記割振りの後、前記スペア・データ・ストレージ・ドライブの使用を示すメッセージをポストする請求項４、５、または６に記載の割振りシステム。
【請求項９】
前記ドライブ・リソース・プロバイダによってポストされたメッセージが、少なくとも１つの前記スペア・データ・ストレージ・ドライブを前記プールに移すアクションを行うことができるというシステム・オペレータに対する通知を含む請求項８に記載の割振りシステム。
【請求項１０】
前記ドライブ・リソース・プロバイダがさらに、少なくとも１つのスペア・データ・ストレージ・ドライブを前記プールに移す要求に応答し、少なくとも１つの前記スペア・データ・ストレージ・ドライブを前記プールに追加し、前記データ・ストレージ・ドライブをスペア・データ・ストレージ・ドライブとして削除する請求項９に記載の割振りシステム。
【請求項１１】
前記ドライブ・リソース・プロバイダによってポストされたメッセージは、前記スペア・ドライブを前記プールに移すのを怠ることにより、スペア・データ・ストレージ・ドライブが将来、利用できなくなるという通知をさらに含み、前記ドライブ・リソース・プロバイダが、少なくとも１つのスペア・データ・ストレージ・ドライブを前記プールに移す要求がない場合、前記複数のライブラリデータ・ストレージ・ドライブの少なくとも１つのスペア・ドライブとしての割当てを削除し、前記割当て済みのスペア・ドライブが割当て解除されるようにする請求項１０に記載の割振りシステム。
【請求項１２】
前記ドライブ・リソース・プロバイダがさらに、前記マウントに応答して偽の完了応答が提供されるべきことを指示する請求項１ないし１１のいずれか一項に記載の割振りシステム。
【請求項１３】
データ・ストレージ・ドライブの少なくとも１つの要求に応答して、ストレージ・シェルフの中に複数の可搬データ・ストレージ・カートリッジを格納し、データ・ストレージ・ドライブにおいて前記可搬データ・ストレージ・カートリッジのマウントおよびマウント解除を行うために前記ストレージ・シェルフと前記データ・ストレージ・ドライブの間で前記可搬データ・ストレージ・カートリッジを運ぶ自動化されたデータ・ストレージ・ライブラリの前記データ・ストレージ・ドライブを割り振るための割振り方法であって、
複数の前記ライブラリ・データ・ストレージ・ドライブをプールに割り当て、前記プールに対して前記データ・ストレージ・ドライブの割振りおよび割振り解除を行うステップと、
前記プールの前記データ・ストレージ・ドライブのすべてが割振り済みであるときにデータ・ストレージ・ドライブの前記要求を受け取ると、前記要求に関連する可搬データ・ストレージ・カートリッジのマウントを一切、保留するように前記ライブラリに指示するステップとを含む方法。
【請求項１４】
少なくとも１つのホスト・アプリケーションがデータ・ストレージ・ドライブおよび自動化されたデータ・ストレージ・ライブラリに結合された、データ・ストレージ・ドライブの少なくとも１つの要求に応答して、ストレージ・シェルフの中に複数の可搬データ・ストレージ・カートリッジを格納し、前記データ・ストレージ・ドライブにおいて前記可搬データ・ストレージ・カートリッジのマウントおよびマウント解除を行うために前記ストレージ・シェルフと前記データ・ストレージ・ドライブの間で前記可搬データ・ストレージ・カートリッジを運ぶ前記自動化されたデータ・ストレージ・ライブラリの前記データ・ストレージ・ドライブを割り振るためのコンピュータ可読プログラム・コードを内部に実現しているプログラマブル・コンピュータで使用可能なコンピュータ可読媒体のコンピュータ・プログラム製品であって、
コンピュータ・プロセッサが、複数の前記ライブラリ・データ・ストレージ・ドライブをプールに割り当て、前記プールに対して前記データ・ストレージ・ドライブの割振りおよび割振り解除を行うようにさせるコンピュータ可読プログラム・コードと、
コンピュータ・プロセッサが、前記プールの前記データ・ストレージ・ドライブのすべてが割振り済みであるときにデータ・ストレージ・ドライブの前記要求を受け取ると、前記要求に関連する可搬データ・ストレージ・カートリッジのマウントを一切、保留するように前記ライブラリに指示するようにさせるコンピュータ可読プログラム・コードとを含む製品。
【請求項１５】
少なくとも１つのホスト・アプリケーションに結合された自動化されたデータ・ストレージ・ライブラリであって、
複数のデータ・ストレージ・ドライブと、
複数の可搬データ・ストレージ・カートリッジを格納するための複数のストレージ・シェルフと、
前記ストレージ・シェルフと前記データ・ストレージ・ドライブの間で前記可搬データ・ストレージ・カートリッジを運ぶためのアクセス機能ロボットと、
前記アクセス機能ロボットを操作するためのロボット・コントロールと、
複数の前記ライブラリ・データ・ストレージ・ドライブをプールに割り当て、前記プールに対して前記データ・ストレージ・ドライブの割振りおよび割振り解除を行う前記ロボット・コントロールに結合されたドライブ・リソース・プロバイダとを含み、前記ドライブ・リソース・プロバイダが、前記プールの前記データ・ストレージ・ドライブのすべてが割振り済みであるときにデータ・ストレージ・ドライブの前記要求を受け取ると、前記要求に関連する可搬データ・ストレージ・カートリッジのマウントを一切、保留するように前記ロボット・コントロールに指示するライブラリ。
【請求項１６】
固定識別を有する固定の複数の仮想データ・ストレージ・ドライブのイメージをホスト・アプリケーションに提供する自動化されたデータ・ストレージ・ライブラリのための仮想化の方法であって、
「ｎ」個のドライブのプールの任意の「ｍ」個をドライブ・イメージ・プロバイダに割り当て、前記プールの「ｎ」−「ｍ」個が解放され、割当てに利用できるステップと、
ドライブを要求するトリガ・イベントに応答し、前記プールの前記「ｎ」−「ｍ」個のドライブの１つを前記仮想ドライブに専用にするステップと、
前記ホストと固定の仮想ドライブとしての前記専用化されたドライブとの間で通信を誘導するステップと、
ドライブの前記専用化に先立ち、前記要求側ホスト・アプリケーションに対して前記仮想ドライブを「ノット・レディー」として特徴付けるステップとを含む方法。
【請求項１７】
少なくとも１つのホスト・アプリケーションと、ストレージ・シェルフの中に複数の可搬データ・ストレージ・カートリッジを格納し、前記ストレージ・シェルフと物理データ・ストレージ・ドライブの間で前記可搬データ・ストレージ・カートリッジを運ぶ自動化されたデータ・ストレージ・ライブラリの前記物理データ・ストレージ・ドライブとの間で通信を誘導するための仮想化システムであって、
前記少なくとも１つのホスト・アプリケーションに結合され、前記少なくとも１つのホスト・アプリケーションに少なくとも１つの固定の仮想データ・ストレージ・ドライブのイメージを提供し、前記少なくとも１つの固定の仮想データ・ストレージ・ドライブのそれぞれに関して前記少なくとも１つのホスト・アプリケーションに固定識別および固定の１組の応答を提供し、前記少なくとも１つのホスト・アプリケーションと、前記自動化されたデータ・ストレージ・ライブラリの「ｎ」個の前記物理データ・ストレージ・ドライブのプールの物理データ・ストレージ・ドライブとの間で通信を誘導する少なくとも１つのドライブ・イメージ・プロバイダと、
任意の一時点で、物理データ・ストレージ・ドライブの前記プールの任意の「ｍ」個を前記仮想データ・ストレージ・ドライブに割り当て、物理データ・ストレージ・ドライブの前記プールの「ｎ」−「ｍ」個が、解放され、割当てに利用できるとして示される前記少なくとも１つのドライブ・イメージ・プロバイダに結合されたドライブ・リソース・プロバイダとを含み、前記ドライブ・リソース・プロバイダは、前記仮想データ・ストレージ・ドライブの１つを要求する前記少なくとも１つのホスト・アプリケーションのトリガ・イベントに応答し、前記プールの前記「ｎ」−「ｍ」個の物理データ・ストレージ・ドライブの１つを前記１つの仮想データ・ストレージ・ドライブに専用にし、前記仮想物理データ・ストレージ・ドライブの前記ドライブ・イメージ・プロバイダに、前記プールの前記「ｎ」−「ｍ」個の物理データ・ストレージ・ドライブの１つが前記１つの仮想データ・ストレージ・ドライブに専用であることの指示を提供し、前記ドライブ・イメージ・プロバイダが、前記１つの固定の仮想ドライブとして前記要求側ホスト・アプリケーションに前記専用化された物理データ・ストレージ・ドライブを表わし、前記ドライブ・イメージ・プロバイダが、前記要求側ホスト・アプリケーションによる前記仮想データ・ストレージ・ドライブとしての前記専用化された物理データ・ストレージ・ドライブに対する通信を誘導し、前記ドライブ・リソース・プロバイダが前記物理データ・ストレージ・ドライブを専用化するのに先立って前記要求側ホスト・アプリケーションが仮想データ・ストレージ・ドライブを要求すると、前記ドライブ・イメージ・プロバイダが、前記要求側ホスト・アプリケーションに対して前記仮想データ・ストレージ・ドライブを「ノット・レディー」として表わすシステム。
【請求項１８】
前記トリガ・イベントが、
仮想データ・ストレージ・ドライブにおいて前記可搬データ・ストレージ・カートリッジの選択された１つをマウントする前記要求側ホスト・アプリケーションによる要求であって、
前記ドライブ・リソース・プロバイダがさらに、前記プールの前記「ｎ」−「ｍ」個のデータ・ストレージ・ドライブの前記専用化された１つにおいて前記選択された可搬データ・ストレージ・カートリッジがマウントされるべきことを前記ライブラリに示す要求か、
前記ドライブ・イメージ・プロバイダの仮想データ・ストレージ・ドライブに関する前記要求側ホスト・アプリケーションによる「予約」要求であって、
前記ドライブ・イメージ・プロバイダが、前記要求を前記ドライブ・リソース・プロバイダに通知し、前記ドライブ・リソース・プロバイダがさらに、前記仮想データ・ストレージ・ドライブにおいてマウントするために選択された可搬データ・ストレージ・カートリッジをマウントするために前記専用化された物理データ・ストレージ・ドライブが前記仮想データ・ストレージ・ドライブに専用化されていることを前記ライブラリに示す要求か、または
仮想データ・ストレージ・ドライブに関する前記要求側ホスト・アプリケーションによる要求であって、
前記ドライブ・リソース・プロバイダがさらに、前記仮想データ・ストレージ・ドライブにおいてマウントするために選択された可搬データ・ストレージ・カートリッジをマウントするために前記専用化された物理データ・ストレージ・ドライブが前記仮想データ・ストレージ・ドライブに専用化されていることを前記ライブラリに示す要求のいずれかを含む請求項１７に記載の仮想化システム。
【請求項１９】
前記ドライブ・リソース・プロバイダがさらに、前記専用化された物理データ・ストレージ・ドライブを含む前記仮想データ・ストレージ・ドライブに関連するトリガ解除イベントに応答し、前記ドライブ・リソース・プロバイダが、前記物理データ・ストレージ・ドライブが前記仮想データ・ストレージ・ドライブから解放され、前記プールの前記解放された物理データ・ストレージ・ドライブに追加されたことを示す請求項１７または１８に記載の仮想化システム。
【請求項２０】
前記トリガ解除イベントが、
前記仮想データ・ストレージ・ドライブの１つとして特定された前記専用化された物理データ・ストレージ・ドライブから前記可搬データ・ストレージ・カートリッジの前記１つをマウント解除する前記少なくとも１つのホスト・アプリケーションによるコマンドであって、
前記ドライブ・リソース・プロバイダがさらに、前記可搬データ・ストレージ・カートリッジの前記１つがマウント解除されるべきことの指示を前記ライブラリに提供するコマンドか、
前記仮想データ・ストレージ・ドライブの１つを解放する前記少なくとも１つのホスト・アプリケーションによる前記ドライブ・イメージ・プロバイダに対するコマンドであって、
前記ドライブ・イメージ・プロバイダが、前記コマンドを前記ドライブ・リソース・プロバイダに通知し、前記専用化された物理データ・ストレージ・ドライブにマウントされた前記可搬データ・ストレージ・カートリッジをマウント解除するように前記ライブラリにさらに通知するコマンドか、
または所定のタイムアウト期間にわたる前記専用化された物理データ・ストレージ・ドライブの非使用であって、
前記所定のタイムアウト期間の満了後、前記ドライブ・リソース・プロバイダがさらに、前記専用化された物理データ・ストレージ・ドライブにマウントされた前記可搬データ・ストレージ・カートリッジをマウント解除するように前記ライブラリに通知する非使用のうち１つまたは複数を含む請求項１９に記載の仮想化システム。
【請求項２１】
複数の仮想ライブラリをさらに含み、前記仮想ライブラリの少なくとも１つにより高い優先順位が割り当てられ、前記プールの前記物理データ・ストレージ・ドライブのすべてが専用化されていることを意味して「ｍ」−「ｎ」がゼロに等しくなり、前記より高い優先順位の仮想ライブラリに関するトリガ・イベントが生じると、前記ドライブ・リソース・プロバイダが、より低い優先順位の前記仮想ライブラリから物理データ・ストレージ・ドライブを割振り解除し、前記割振り解除を前記ドライブ・イメージ・プロバイダに通知し、前記割振り解除された物理データ・ストレージ・ドライブから可搬データ・ストレージ・カートリッジをマウント解除するように前記ライブラリに通知し、前記割振り解除された物理データ・ストレージ・ドライブを前記より高い優先順位のホスト・アプリケーションに関する前記仮想データ・ストレージ・ドライブに専用にし、前記ドライブ・イメージ・プロバイダが、前記より低い優先順位の仮想ライブラリの前記ホスト・アプリケーションに対して前記割振り解除された物理データ・ストレージ・ドライブの前記仮想データ・ストレージ・ドライブを「ノット・レディー」として特徴付ける請求項１７ないし２０のいずれか一項に記載の仮想化システム。
【請求項２２】
前記ドライブ・リソース・プロバイダが、前記仮想データ・ストレージ・ドライブの１つに対して前記物理データ・ストレージ・ドライブの１つをロックして、前記物理データ・ストレージ・ドライブが解放されたドライブとして利用できないようにする請求項１７ないし２１のいずれか一項に記載の仮想化システム。
【請求項２３】
前記物理データ・ストレージ・ドライブの少なくとも１つの追加、削除、交換が、前記ドライブ・リソース・プロバイダのデータ・ストレージ・ドライブの前記プール内で行われ、前記ドライブ・イメージ・プロバイダが、前記仮想データ・ストレージ・ドライブを無変更として表わす請求項１７ないし２２のいずれか一項に記載の仮想化システム。
【請求項２４】
前記ドライブ・イメージ・プロバイダの表現が、前記無変更の仮想データ・ストレージ・ドライブのそれぞれに関して同じ固有通し番号を使用すること、および前記無変更の仮想データ・ストレージ・ドライブのそれぞれに関して同じアドレスを使用することの１つまたは複数を含む請求項１７ないし２３のいずれかに記載の仮想化システム。
【請求項２５】
前記ドライブ・イメージ・プロバイダが、前記少なくとも１つのホスト・アプリケーションのデバイス・ドライバを含み、前記ドライブ・リソース・プロバイダが、複数の前記ホスト・アプリケーションのデバイス・ドライバを含むこと、
前記ドライブ・リソース・プロバイダが、前記少なくとも１つのホスト・アプリケーションと前記自動化されたデータ・ストレージ・ライブラリの中間の構成要素を含み、前記ドライブ・イメージ・プロバイダが、前記少なくとも１つのホスト・アプリケーションのデバイス・ドライバを含み、前記ドライブ・リソース・プロバイダが、前記自動化されたデータ・ストレージ・ライブラリの構成要素を含むことのいずれか１つまたは両方を含むものである請求項１７ないし２４のいずれか一項に記載の仮想化システム。
【請求項２６】
少なくとも１つのホスト・アプリケーションと、ストレージ・シェルフの中に複数の可搬データ・ストレージ・カートリッジを格納し、前記ストレージ・シェルフと前記物理データ・ストレージ・ドライブの間で前記可搬データ・ストレージ・カートリッジを運ぶ自動化されたデータ・ストレージ・ライブラリの物理データ・ストレージ・ドライブとの間で通信を誘導するための仮想化方法であって、
前記少なくとも１つのホスト・アプリケーションに応答し、少なくとも１つの固定の仮想データ・ストレージ・ドライブのイメージを提供し、前記少なくとも１つの固定の仮想データ・ストレージ・ドライブのそれぞれに関して前記少なくとも１つのホスト・アプリケーションに固定識別および固定の１組の応答を提供し、前記少なくとも１つのホスト・アプリケーションと前記自動化されたデータ・ストレージ・ライブラリの前記物理データ・ストレージ・ドライブの間で通信を誘導するステップと、
前記自動化されたデータ・ストレージ・ライブラリの「ｎ」個の物理データ・ストレージ・ドライブのプールを提供し、任意の一時点で、物理データ・ストレージ・ドライブの前記プールの任意の「ｍ」個を割り当て、データ・ストレージ・ドライブの前記プールの「ｎ」−「ｍ」個が解放され、割当に利用できるとして示されるステップと、
前記仮想データ・ストレージ・ドライブの１つを要求する前記少なくとも１つのホスト・アプリケーションのトリガ・イベントに応答し、前記プールの前記「ｎ」−「ｍ」個の物理データ・ストレージ・ドライブの１つを前記１つの仮想データ・ストレージ・ドライブに専用にするステップと、
前記要求側ホスト・アプリケーションに対して前記専用化された物理データ・ストレージ・ドライブを前記１つの固定仮想ドライブとして特徴付け、前記要求側ホスト・アプリケーションによる前記仮想データ・ストレージ・ドライブとしての前記専用化された物理データ・ストレージ・ドライブに対する通信を誘導するステップと、
前記専用化ステップが前記物理データ・ストレージ・ドライブを専用化するのに先立って前記要求側ホスト・アプリケーションが仮想データ・ストレージ・ドライブを要求すると、前記要求側ホスト・アプリケーションに対して前記仮想データ・ストレージ・ドライブを「ノット・レディー」として特徴付けるステップとを含む方法。
【請求項２７】
少なくとも１つのホスト・アプリケーションと、前記ホスト・アプリケーションが結合された、ストレージ・シェルフの中に複数の可搬データ・ストレージ・カートリッジを格納し、前記ストレージ・シェルフと物理データ・ストレージ・ドライブの間で前記可搬データ・ストレージ・カートリッジを運ぶ自動化されたデータ・ストレージ・ライブラリの前記物理データ・ストレージ・ドライブとの間で仮想化された通信を誘導するためのコンピュータ可読プログラム・コードを内部に実現しているプログラマブル・コンピュータで使用可能なコンピュータ可読媒体のコンピュータ・プログラム製品であって、
コンピュータ・プロセッサが、前記少なくとも１つのホスト・アプリケーションに応答し、少なくとも１つの固定の仮想ドライブのイメージを提供し、前記少なくとも１つの固定の仮想データ・ストレージ・ドライブのそれぞれに関して前記少なくとも１つのホスト・アプリケーションに固定識別子および固定の１組の応答を提供し、前記少なくとも１つのホスト・アプリケーションと前記自動化されたデータ・ストレージ・ライブラリの物理データ・ストレージ・ドライブの間で通信を誘導するようにさせるコンピュータ可読プログラム・コードと、
コンピュータ・プロセッサが、前記自動化されたデータ・ストレージ・ライブラリの「ｎ」個の前記物理データ・ストレージ・ドライブのプールを特定し、任意の一時点で、物理データ・ストレージ・ドライブの前記プールの任意の「ｍ」個を割り当て、物理データ・ストレージ・ドライブの前記プールの「ｎ」−「ｍ」個が解放され、割当てに利用可能であるとして示されるようにすることを行うようにさせるコンピュータ可読プログラム・コードと、
コンピュータ・プロセッサが、前記仮想データ・ストレージ・ドライブの１つを要求する前記少なくとも１つのホスト・アプリケーションのトリガ・イベントに応答し、前記プールの前記「ｎ」−「ｍ」個の物理データ・ストレージ・ドライブの１つを前記１つの仮想データ・ストレージ・ドライブに専用にするようにさせるコンピュータ可読プログラム・コードと、
コンピュータ・プロセッサが、前記要求側ホスト・アプリケーションに対して前記専用化された物理データ・ストレージ・ドライブを前記１つの固定の仮想ドライブとして特徴付け、前記要求側ホスト・アプリケーションによる前記仮想データ・ストレージ・ドライブとしての前記専用化された物理データ・ストレージ・ドライブに対する通信を誘導するようにさせるコンピュータ可読プログラム・コードと、
コンピュータ・プロセッサが、前記物理データ・ストレージ・ドライブの前記専用化に先立って前記要求側ホスト・アプリケーションが仮想データ・ストレージ・ドライブを要求すると、前記要求側ホスト・アプリケーションに対して前記仮想データ・ストレージ・ドライブを「ノット・レディー」として特徴づけるようにさせるコンピュータ可読プログラム・コードとを含む製品。
【請求項２８】
少なくとも１つのホスト・アプリケーションに結合された自動化されたデータ・ストレージ・ライブラリであって、
複数の物理データ・ストレージ・ドライブと、
複数の可搬データ・ストレージ・カートリッジを格納するための複数のストレージ・シェルフと、
前記ストレージ・シェルフと前記物理データ・ストレージ・ドライブの間で前記可搬データ・ストレージ・カートリッジを運ぶためのアクセス機能ロボットと、
前記アクセス機能ロボットを操作するためのロボット・コントロールと、
前記少なくとも１つのホスト・アプリケーションに結合され、少なくとも１つの固定の仮想データ・ストレージ・ドライブのイメージを提供し、前記少なくとも１つの固定の仮想データ・ストレージ・ドライブのそれぞれに関して前記少なくとも１つのホスト・アプリケーションに固定識別と固定の１組の応答を提供し、前記少なくとも１つのホスト・アプリケーションと、「ｎ」個の物理データ・ストレージ・ドライブのプールの物理データ・ストレージ・ドライブとの間で通信を誘導するための少なくとも１つのドライブ・イメージ・プロバイダと、
前記少なくともドライブ・イメージ・プロバイダに結合され、任意の一時点で、物理データ・ストレージ・ドライブの前記プールの任意の「ｍ」個を前記仮想データ・ストレージ・ドライブに割り当て、物理データ・ストレージ・ドライブの前記プールの「ｎ」−「ｍ」個が解放されて、割当てに利用できるとして示されるドライブ・リソース・プロバイダとを含み、前記ドライブ・リソース・プロバイダは、前記仮想データ・ストレージ・ドライブの１つを要求する前記少なくとも１つのホスト・アプリケーションのトリガ・イベントに応答し、前記プールの前記「ｎ」−「ｍ」個の物理データ・ストレージ・ドライブを前記１つの仮想データ・ストレージ・ドライブに専用にし、前記仮想データ・ストレージ・ドライブの前記ドライブ・イメージ・プロバイダに、前記プールの前記「ｎ」−「ｍ」個の物理データ・ストレージ・ドライブが前記１つの仮想データ・ストレージ・ドライブに専用にされていることの指示を提供し、前記ドライブ・イメージ・プロバイダが、前記要求側ホスト・アプリケーションに対して前記専用化された物理データ・ストレージ・ドライブを前記１つの固定の仮想ドライブとして特徴付け、前記ドライブ・イメージ・プロバイダが、前記要求側ホスト・アプリケーションによる前記仮想データ・ストレージ・ドライブとしての前記専用化された物理データ・ストレージ・ドライブに対する通信を誘導し、前記ドライブ・リソース・プロバイダが前記物理データ・ストレージ・ドライブを専用化するのに先立って前記要求側ホスト・アプリケーションが仮想データ・ストレージ・ドライブを要求すると、前記ドライブ・イメージ・プロバイダが、前記要求側ホスト・アプリケーションに対して前記仮想データ・ストレージ・ドライブを「ノット・レディー」として特徴付けるライブラリ。
【請求項２９】
少なくとも１つのホスト・アプリケーションと、ストレージ・シェルフの中に複数の可搬データ・ストレージ・カートリッジを格納し、前記ストレージ・シェルフと物理データ・ストレージ・ドライブの間で前記可搬データ・ストレージ・カートリッジを運ぶ自動化されたデータ・ストレージ・ライブラリの前記物理データ・ストレージ・ドライブとの間で通信を誘導するための仮想化システムであって、
固定の複数の仮想データ・ストレージ・ドライブのイメージを提供する前記仮想データ・ストレージ・ドライブのリストを含む少なくとも１つのドライブ・イメージ・テーブル、およびそれぞれの前記仮想データ・ストレージ・ドライブに関する固定識別子を提供し、任意の一時点で、前記自動化されたデータ・ストレージ・ライブラリの「ｎ」個の前記物理データ・ストレージ・ドライブのプールの物理データ・ストレージ・ドライブの任意の「ｍ」個を割り当て、データ・ストレージ・ドライブの前記プールの「ｎ」−「ｍ」個が解放され、割当てに利用できるとして示され、前記仮想データ・ストレージ・ドライブの１つを要求する前記少なくとも１つのホスト・アプリケーションのトリガ・イベントに応答し、前記プールの前記「ｎ」−「ｍ」個の物理データ・ストレージ・ドライブの１つを前記１つの仮想データ・ストレージ・ドライブに専用にし、前記ドライブ・イメージ・テーブル内で前記専用化された物理データ・ストレージ・ドライブを前記１つの仮想データ・ストレージ・ドライブとして特定するドライブ・リソース・プロバイダと、
前記少なくとも１つのホスト・アプリケーションに結合され、前記ドライブ・リソース・プロバイダに結合された少なくとも１つのドライブ・イメージ・プロバイダであって、
対応する前記ドライブ・イメージ・テーブルから導出された前記固定の仮想データ・ストレージ・ドライブの少なくとも１つのイメージを前記少なくとも１つのホスト・アプリケーションに提供し、前記固定の複数の仮想ドライブのそれぞれに関して前記少なくとも１つのホスト・アプリケーションに前記固定識別および固定の１組の応答を提供し、前記少なくとも１つのホスト・アプリケーションと前記自動化されたデータ・ストレージ・ライブラリの物理データ・ストレージ・ドライブの前記プールの前記物理データ・ストレージ・ドライブとの間で通信を誘導し、前記ドライブ・イメージ・テーブル内の前記物理データ・ストレージ・ドライブの前記専用化および前記特定に応答し、前記要求側ホスト・アプリケーションに対して前記専用化された物理データ・ストレージ・ドライブを前記固定の仮想データ・ストレージ・ドライブとして特徴付け、前記仮想データ・ストレージ・ドライブとしての前記専用化されたデータ・ストレージ・ドライブと前記要求側ホスト・アプリケーションの間の通信を誘導し、前記ドライブ・リソース・プロバイダが前記物理データ・ストレージ・ドライブを専用化することに先立って前記要求側ホスト・アプリケーションが仮想データ・ストレージ・ドライブを要求すると、前記要求側ホスト・アプリケーションに対して前記仮想データ・ストレージ・ドライブを「ノット・レディー」として特徴付けるドライブ・イメージ・プロバイダとを含むシステム。
【請求項３０】
少なくとも１つのホスト・アプリケーションと、ストレージ・シェルフの中に複数の可搬データ・ストレージ・カートリッジを格納し、前記ストレージ・シェルフと物理データ・ストレージ・ドライブの間で前記可搬データ・ストレージ・カートリッジを運ぶ自動化されたデータ・ストレージ・ライブラリの前記物理データ・ストレージ・ドライブとの間で通信を誘導するための仮想化方法であって、
固定の複数の仮想データ・ストレージ・ドライブのイメージを提供する前記仮想データ・ストレージ・ドライブのリストを含む少なくとも１つのドライブ・イメージ・テーブル、およびそれぞれの前記仮想データ・ストレージ・ドライブに関する固定識別を提供するステップと、
前記少なくとも１つのホスト・アプリケーションに応答し、対応する前記ドライブ・イメージ・テーブルから導出された前記固定の仮想データ・ストレージ・ドライブの少なくとも１つのイメージを前記少なくとも１つのホスト・アプリケーションに提供し、前記固定の仮想データ・ストレージ・ドライブのそれぞれに関して前記固定識別および前記固定の１組の応答を前記少なくとも１つのホスト・アプリケーションに提供するステップと、
前記少なくとも１つのホスト・アプリケーションと前記自動化されたデータ・ストレージ・ライブラリの前記複数の物理データ・ストレージ・ドライブとの間で通信を誘導するステップと、
前記自動化されたデータ・ストレージ・ライブラリの「ｎ」個の前記物理データ・ストレージ・ドライブのプールを提供し、任意の一時点で、物理データ・ストレージ・ドライブの前記プールの任意の「ｍ」個を割り当て、物理データ・ストレージ・ドライブの前記プールの「ｎ」−「ｍ」個が解放され、割当てに利用できるとして示されるステップと、
前記仮想データ・ストレージ・ドライブの１つを要求する前記少なくとも１つのホスト・アプリケーションのトリガ・イベントに応答し、前記プールの前記「ｎ」−「ｍ」個の物理データ・ストレージ・ドライブの１つを前記１つの仮想データ・ストレージ・ドライブに専用にし、前記ドライブ・イメージ・テーブル内で前記専用化された物理データ・ストレージ・ドライブを前記１つの仮想データ・ストレージ・ドライブとして特定するステップと、
前記ドライブ・イメージ・テーブル内の前記物理データ・ストレージ・ドライブの前記専用化および前記特定に応答し、前記要求側ホスト・アプリケーションに対して前記専用化された物理データ・ストレージ・ドライブを前記固定の仮想データ・ストレージ・ドライブの１つとして特徴付け、前記仮想データ・ストレージ・ドライブとしての前記専用化された物理データ・ストレージ・ドライブと前記要求側ホスト・アプリケーションの間との通信を誘導するステップと、
前記専用化ステップが前記物理データ・ストレージ・ドライブを専用化するのに先立って前記要求側ホスト・アプリケーションが仮想データ・ストレージ・ドライブを要求すると、前記要求側ホスト・アプリケーションに対して前記仮想データ・ストレージ・ドライブを「ノット・レディー」として特徴付けるステップとを含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ・シェルフ（storage shelf）内に可搬データ・ストレージ・カートリッジを格納し、データ・ストレージ・ドライブにおいて可搬データ・ストレージ・カートリッジのマウントおよびマウント解除を行うためにストレージ・シェルフとデータ・ストレージ・ドライブの間で可搬データ・ストレージ・カートリッジを運ぶ自動化されたデータ・ストレージ・ライブラリのデータ・ストレージ・ドライブに関し、より詳細には、ライブラリと通信するホスト・アプリケーションに関して、これらのデータ・ストレージ・ドライブの割り振ること、およびこれらのデータ・ストレージ・ドライブを仮想化することに関する。
【背景技術】
【０００２】
自動化されたデータ・ストレージ・ライブラリが、大量のデータの記憶のために、通常、ホスト・アプリケーションによって稀にしかアクセスされないデータの記憶のためにますます使用されている。データは、ストレージ・シェルフの中に格納された可搬データ・ストレージ・カートリッジ上に記憶される。可搬データ・ストレージ・カートリッジの例は、ある長さの磁気テープを含む、または光ディスクを含むカートリッジである。
【０００３】
データがライブラリによってアクセスされた際、ライブラリのロボット・コントロールによって操作されるアクセス機能ロボット（accessor robot）が、所望の可搬データ・ストレージ・カートリッジをそれが格納されているストレージ・シェルフから把捉し、データ・ストレージ・ドライブにおいてその可搬データ・ストレージ・カートリッジのマウントおよびマウント解除を行うため、ならびにその可搬データ・ストレージ・カートリッジを同じストレージ・シェルフまたは異なるストレージ・シェルフに戻すために、ストレージ・シェルフとデータ・ストレージ・ドライブの間でその可搬データ・ストレージ・カートリッジを運ぶ。
【０００４】
自動化されたデータ・ストレージ・ライブラリは、ときとして、複数のホスト・アプリケーションが存在する場合でも、そのライブラリおよびデータ・ストレージ・ドライブが、各ホスト・アプリケーションには、そのホスト・アプリケーション独自のライブラリおよびドライブに見えるように構成される。一例では、ライブラリの特定の１組のストレージ・シェルフと少なくとも１つのデータ・ストレージ・ドライブが、各ホスト・アプリケーションに専用である。ホスト・アプリケーションからデータの要求があると、要求のデータを有する可搬データ・ストレージ・カートリッジが、ライブラリのアクセス機能ロボットによってアクセスされ、ホスト・アプリケーションが使用するためにホスト・アプリケーションに専用のデータ・ストレージ・ドライブに届けられる。これにより、ホスト・アプリケーションは、既知のドライブ上に一連のマウントを行うことができる。これは、ホストの見地からは非常に効率的である。というのは、ドライブは常に利用でき、ドライブ・アドレス指定が直接で、即時であるからである。また、ライブラリも、ホスト・アプリケーションに直接に割り当てられているように見えることが可能であるが、アクセス機能ロボットは、実際には共用されている。これは、ドライブ使用の見地からは、ホスト・アプリケーションのそれぞれが、専用のデータ・ストレージ・ドライブを常に使用していない場合、ドライブがしばしば、アイドルであることで、それほど効率的ではない。ドライブは、異なるホスト・アプリケーションに割り当てられるので、特に活動的なホスト・アプリケーションは、別のホスト・アプリケーションからドライブを「借用する」ことができず、例えば、割り当てられたドライブのすべてが利用されており、異なるカートリッジ上のデータが必要とされている場合、ホスト・アプリケーションは、他のカートリッジ上のデータにアクセスするために、そのホスト・アプリケーション自体が１つのカートリッジをマウント解除するまで、または自らのドライブを解放するまで待たなければならない可能性がある。別のホスト・アプリケーションからのドライブの「借用」はすべて、両方のホスト・アプリケーションに関して少なくともデバイス・ドライブを再構成することを必要とする。ホスト・アプリケーションが有するニーズが高まった場合、少なくともそのホスト・アプリケーションを再構成することなく、新しいドライブをそのホスト・アプリケーションに割り当てることができない。
【０００５】
別の例では、ホスト・アプリケーションには、データ・ストレージ・ドライブとの直接通信が許されない。代わりに、ホスト・アプリケーションから受け取られたデータを記憶するのにキャッシュ・ストレージ（通常、ディスク・ドライブ）を使用する「仮想」ライブラリが確立され、あたかもキャッシュ・ストレージがデータ・ストレージ・ドライブであるかのように振舞い、データを可搬データ・ストレージ・カートリッジに書き込む。データは、キャッシュの中にある間、再アクセスすることが可能であり、「キャッシュ・ヒット」と呼ばれる。再アクセスが行われない場合、ライブラリは、ライブラリによって選択されたデータ・ストレージ・ドライブを使用してキャッシュ・ストレージからカートリッジにデータをダウンロードする。データが、ホスト・アプリケーションによって要求され、キャッシュの中にない場合、これは「キャッシュ・ミス」と呼ばれ、ライブラリは、テーブルを使用して、データを記憶しているカートリッジを探し出し、アクセス機能ロボットを操作してそのカートリッジにアクセスし、使用可能なデータ・ストレージ・ドライブを探し出し、アクセス機能ロボットを操作してドライブ上にそのカートリッジをマウントし、カートリッジからのそのデータを読み取り、データをキャッシュにアップロードする。ライブラリの見地からは、ライブラリ構成要素の使用は効率的である。しかし、キャッシュ・ストレージは高価であり、費用および複雑さを増大させる。キャッシュ・ストレージは、大きいデータ・セットを扱うだけ十分に大きくなければならず、過剰な「キャッシュ・ミス」状況を回避するように良好なステージング（staging）・アルゴリズムおよびデステージング（destaging）・アルゴリズムを有していなければならない。ホスト・アプリケーションは、ドライブと直接にではなく、キャッシュと通信し、いずれのホスト・アプリケーションも、共用構成要素の使用のために競う可能性があり、あまり予測できないパフォーマンスがもたらされる。ドライブに障害が生じ、取り替える必要がある場合、ホスト・アプリケーションは、例外条件から回復できない可能性があり、特に、他のドライブがまったく利用できない場合にそうである。ドライブが他のすべての点で同質である場合、通し番号の変更に対する再構成を制限することができる可能性がある。異なる特性に対応する重要な再構成がなければ、異質のドライブ（少なくとも１つの異なる特性のドライブ）のアップグレード、交換、または共用が禁止される。制限されたドライブの共用は、様々なホスト・プロセッサの間でパーティションに分けられたホスト・アプリケーションによって提供することが可能であるが、パーティションは、同期を保つように、ドライブの自らの使用を互いに常に知らせ合わなければならず、ホスト・アプリケーションの外部における共用は許されない。
【特許文献１】
‘０００３８−ＵＳ１出願
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の本実施形態の目的は、共用構成要素を効率的な仕方で使用する自動化されたデータ・ストレージ・ライブラリ・システムを提供することである。
【０００７】
本発明の実施形態の別の目的は、ホスト・アプリケーションまたはライブラリの再構成を必要とすることなく、追加のドライブの恩恵が受けられるようにホスト・アプリケーションまたはライブラリを拡張することを可能にすることである。
【課題を解決するための手段】
【０００８】
自動化されたデータ・ストレージ・ライブラリの物理データ・ストレージ・ドライブを割り振るための割振りシステム、およびコンピュータによって実施される方法が提供される。ライブラリは、ストレージ・シェルフの中に複数の可搬データ・ストレージ・カートリッジを格納し、アクセス機能ロボットが、データ・ストレージ・ドライブにおいて可搬データ・ストレージ・カートリッジのマウントおよびマウント解除を行うためにストレージ・シェルフとデータ・ストレージ・ドライブの間で可搬データ・ストレージ・カートリッジを運ぶ。
【０００９】
割振りシステムは、例えば、ホスト・アプリケーションからのデータ・ストレージ・ドライブの要求に応答する、ライブラリに結合された、またはライブラリのドライブ・リソース・プロバイダを含む。ドライブ・リソース・プロバイダは、同時係属の‘０００３８−ＵＳ１出願に従って複数のライブラリ物理データ・ストレージ・ドライブをプールに割り当て、ホスト・アプリケーションのためにプールからのデータ・ストレージ・ドライブの割振りおよび割振り解除を行う。
【００１０】
本発明によれば、ドライブ・リソース・プロバイダは、プールのデータ・ストレージ・ドライブのすべてが割振り済みであるときにデータ・ストレージ・ドライブの要求を受け取ると、その要求に関連する可搬データ・ストレージ・カートリッジのマウントを一切、保留するようにライブラリに指示する。さらに、ドライブ・イメージ・プロバイダが、ドライブのすべてが割振り済みであるときに要求を受け取ると、要求されたドライブは、マウント済みの可搬データ・ストレージ・カートリッジを必要とする後続のコマンドを完了するのに現在、利用できないという指示を提供する。同時係属の‘０００３８−ＵＳ１出願で述べているとおり、この応答は、同出願で「ノット・レディー（not ready）」と呼んでいる偽の完了応答を含むことが可能である。これにより、ホスト・アプリケーションは、データ・ストレージ・ドライブを有することが保証され、必要な場合、そのドライブに関して再試行すること、または次のコマンドを発行することができる。次のコマンドが、ドライブがレディーであること、または可搬データ・ストレージ・カートリッジがマウントされ、レディーであることを必要としない場合、ライブラリは、そのコマンドに即時に対処できることが可能である。
【００１１】
ドライブ・リソース・プロバイダは、指示を提供した後、データ・ストレージ・ドライブの割振り解除の要求、および割振り解除されたデータ・ストレージ・ドライブにおける可搬データ・ストレージ・カートリッジのマウント解除を待ち、割振り解除されたデータ・ストレージ・ドライブをドライブの要求に割り振り、その要求に関連するマウントの保留を解除するようにライブラリに指示する。
【００１２】
さらに、ドライブ・リソース・プロバイダは、プール以外に、複数のライブラリデータ・ストレージ・ドライブの少なくとも１つをスペア・ドライブとして割り当てる。次に、ドライブ・リソース・プロバイダは、指示を提供した後、少なくとも１つのスペア・ドライブの１つを要求に割り振り、その要求に関連するマウントの保留を解除するようにライブラリに指示する。
【００１３】
ドライブ・リソース・プロバイダは、代替の実施形態では、所定の期間だけ待ち、その所定の時間中にデータ・ストレージ・ドライブの割振り解除の要求、および割振り解除されたデータ・ストレージ・ドライブにおける可搬データ・ストレージ・カートリッジのマウント解除が行われた場合、その割振り解除されたデータ・ストレージ・ドライブを要求に割り振り、行われなかった場合、期間が満了した後、スペア・データ・ストレージ・ドライブをその要求に割り振る。
【００１４】
さらに別の実施形態として、ライブラリは、複数の仮想ライブラリを含み、複数の仮想ライブラリの少なくとも１つが、他の仮想ライブラリよりも高い優先順位を有する。ドライブ・リソース・プロバイダが、仮想ドライブ要求の仮想ライブラリの優先順位を判定し、その仮想ライブラリがより高い優先順位である場合、その要求に応答してスペア・ドライブを割り振り、その要求に関連するマウントの保留を解除するようにライブラリに指示する。
【００１５】
さらなる実施形態では、スペア・ドライブの使用は制限される。ドライブ・リソース・プロバイダは、プールのデータ・ストレージ・ドライブのすべてが割振り済みであるときに要求が受け取られた各回に、カウントを増分する。ドライブ・リソース・プロバイダは、増分されたカウントを所定の限度と比較して、増分されたカウントが所定の限度よりも低ければ、スペア・データ・ストレージ・ドライブを割り振る。
【００１６】
さらなる実施形態として、ドライブ・リソース・プロバイダはさらに、スペア・データ・ストレージ・ドライブを割り振った後、スペア・データ・ストレージ・ドライブの使用を指示するメッセージをポストする。ポストされたメッセージは、一実施形態では、スペア・データ・ストレージ・ドライブをプールに移すアクションを行うことができるというシステム・オペレータに対する通知を含む。例として、スペア・ドライブをプールに移すことにより、ライブラリの費用が増大することがもたらされる。移転が行われる場合、ドライブ・リソース・プロバイダは、スペア・データ・ストレージ・ドライブをプールに加え、そのドライブをスペア・データ・ストレージ・ドライブとして削除する。
【００１７】
別の実施形態では、誘因として、ポストされたメッセージは、スペア・ドライブをプールに移すのを怠ることにより、スペア・データ・ストレージ・ドライブが将来、利用できなくなるという通知をさらに含み、ドライブ・リソース・プロバイダは、少なくとも１つのスペア・データ・ストレージ・ドライブをプールに移す要求がない場合、複数のライブラリ・データ・ストレージ・ドライブの少なくとも１つのスペア・ドライブとしての割当てを削除し、割当て済みのスペア・ドライブが割当て解除されるようにする。
【００１８】
この結果、ホスト・アプリケーションには、ドライブが割振り解除されるとすぐにドライブが割り振られるか、またはスペア・ドライブが割り振られる。さらに、必要とされる場合、システムがスペア・ドライブを備え、システム要件が増大するにつれ、システム・オペレータが、販売員にまず接触する必要なく、プールにスペア・ドライブを永久に追加することによってプール内のデータ・ストレージ・ドライブの数を選択的に増やすことが許される。
【００１９】
本発明の目的は、ホスト・アプリケーションがそれぞれ、自動化されたデータ・ストレージ・ライブラリの１つまたは複数の共用データ・ストレージ・ドライブにアクセスを得ることを可能にし、キャッシュ・ストレージを必要とすることなく、ドライブがホストに専用であるように見えるようにすることである。
【００２０】
本発明の別の目的は、ホスト・アプリケーション・デバイス・ドライバの再構成を必要とすることなく、ドライブの追加、削除、または取替えを可能にすることである。
【００２１】
仮想化システムが、ホスト・アプリケーションと自動化されたデータ・ストレージ・ライブラリの物理データ・ストレージ・ドライブの間の通信を誘導する。ライブラリは、ストレージ・シェルフの中に複数の可搬データ・ストレージ・カートリッジを格納し、ストレージ・シェルフとデータ・ストレージ・ドライブの間で可搬データ・ストレージ・カートリッジを運ぶためのアクセス機能ロボットを提供する。
【００２２】
少なくとも１つのドライブ・イメージ・プロバイダがホスト・アプリケーションに結合され、少なくとも１つの仮想データ・ストレージ・ドライブの少なくとも１つのイメージをホスト・アプリケーションに提供し、仮想ドライブのそれぞれに関して固定識別および固定セットの応答をホスト・アプリケーションに提供し、ホスト・アプリケーションと自動化されたデータ・ストレージ・ライブラリの「ｎ」個のデータ・ストレージ・ドライブのプールのデータ・ストレージ・ドライブの間で通信を誘導する。
【００２３】
ドライブ・リソース・プロバイダが、ドライブ・イメージ・プロバイダに結合される。任意の一時点で、ドライブ・リソース・プロバイダには、「ｎ」個の物理データ・ストレージ・ドライブのプールのうち任意の「ｍ」個をドライブ・イメージ・プロバイダに割り当てており、データ・ストレージ・ドライブのプールの「ｎ」−「ｍ」個が、解放され、割当に利用できるものとして示される。ドライブ・リソース・プロバイダは、ホスト・アプリケーションのために仮想ドライブを要求するトリガ・イベントに応答し、プールの「ｎ」−「ｍ」個のデータ・ストレージ・ドライブの１つを仮想ドライブに専用にし、要求側ホスト・アプリケーションに関して固定の仮想ドライブの１つとしてドライブ・イメージ・プロバイダに対する専用化（dedication）を示す。
【００２４】
ドライブ・イメージ・プロバイダは、要求側ホスト・アプリケーションに対する専用データ・ストレージ・ドライブを固定の仮想ドライブの１つとして特徴付け、仮想ドライブとして要求側ホスト・アプリケーションによる専用データ・ストレージ・ドライブに対する通信を誘導する。
【００２５】
ドライブ・リソース・プロバイダがドライブを専用化することに先立ち、ドライブ・イメージ・プロバイダは、要求側ホスト・アプリケーションに対する仮想ドライブを「ノット・レディー」として特徴付ける。例として、「ノット・レディー」は、ドライブに媒体がまったくロードされていない報告状態を含む。
【００２６】
一実施形態では、トリガ・イベントは、仮想データ・ストレージ・ドライブにおいて可搬データ・ストレージ・カートリッジの選択された１つをマウントする要求側ホスト・アプリケーションによる要求を含む。ドライブ・リソース・プロバイダは、プールの「ｎ」−「ｍ」個のデータ・ストレージ・ドライブのどれが、選択された可搬データ・ストレージ・カートリッジをマウントするためのホスト・アプリケーションに専用のドライブであるかをライブラリに示す。
【００２７】
代替の実施形態として、トリガ・イベントは、ドライブ・イメージ・プロバイダの仮想データ・ストレージ・ドライブに関する要求側ホスト・アプリケーションによる「予約」要求を含む。「予約」要求は、ドライブ・イメージ・プロバイダによって受け取られ、プールのドライブの要求としてドライブ・リソース・プロバイダに通知される。ドライブ・リソース・プロバイダは、専用データ・ストレージ・ドライブが、仮想ドライブとして固定識別子によって特定されたデータ・ストレージ・ドライブに関して選択された可搬データ・ストレージ・カートリッジをマウントするために、要求側ホスト・アプリケーションに専用であることをライブラリにさらに示す。
【００２８】
さらなる代替の実施形態として、トリガ・イベントは、仮想データ・ストレージ・ドライブに対する要求側ホスト・アプリケーションによるコマンドを含む。ドライブ・リソース・プロバイダは、専用データ・ストレージ・ドライブが、仮想ドライブとして固定識別子によって特定されたデータ・ストレージ・ドライブに関して選択された可搬データ・ストレージ・カートリッジをマウントするために、要求側ホスト・アプリケーションに専用であることをライブラリにさらに示す。
【００２９】
ドライブ・リソース・プロバイダは、ホスト・アプリケーションに関連するトリガ解除イベント（detriggering event）に応答し、トリガ解除するホスト・アプリケーションに専用のデータ・ストレージ・ドライブを指定し、そのデータ・ストレージ・ドライブがドライブ・イメージ・プロバイダから解放されたことを示し、そのドライブをプールの解放されたデータ・ストレージ・ドライブに加える。一実施形態では、トリガ解除イベントは、仮想データ・ストレージ・ドライブの１つとして識別された専用データ・ストレージ・ドライブから可搬データ・ストレージ・カートリッジの１つをマウント解除するトリガ解除を行うホスト・アプリケーションによるコマンドを含む。そのようなケースでは、ドライブ・リソース・プロバイダが、可搬データ・ストレージ・カートリッジがマウントされている仮想ドライブとして専用データ・ストレージ・ドライブを特定する指示をライブラリに提供する。別の実施形態では、トリガ解除イベントは、仮想データ・ストレージ・ドライブの１つとして特定された専用データ・ストレージ・ドライブを解放するトリガ解除を行うホスト・アプリケーションによるコマンドを含む。
【００３０】
さらなる実施形態では、トリガ解除イベントは、所定のタイムアウト期間にわたって専用データ・ストレージ・ドライブが使用されないことを含む。所定のタイムアウト期間が満了すると、ドライブ・リソース・プロバイダは、可搬データ・ストレージ・カートリッジの１つが専用データ・ストレージ・ドライブにマウントされたままであるかどうかを判定し、マウントされている可搬データ・ストレージ・カートリッジをマウント解除するようにライブラリに通知する。
【００３１】
別の実施形態では、ライブラリは、複数の仮想ライブラリを含み、その複数の仮想ライブラリの少なくとも１つにより高い優先順位が割り当てられる。これにより、データ・ストレージ・ドライブのすべてが専用化されたことを意味して「ｍ」−「ｎ」がゼロに等しくなり、より高い優先順位の仮想ライブラリの仮想ドライブに関するトリガ・イベントが生じると、ドライブ・リソース・プロバイダは、より低い優先順位の仮想ライブラリからデータ・ストレージ・ドライブを割振り解除し、その割振り解除をドライブ・イメージ・プロバイダに通知し、割振り解除されたデータ・ストレージ・ドライブから可搬データ・ストレージ・カートリッジをマウント解除するようにライブラリに通知し、割振り解除されたデータ・ストレージ・ドライブをより高い優先順位の仮想ライブラリの仮想ドライブに専用化する。
【００３２】
さらに、ドライブ・リソース・プロバイダのデータ・ストレージ・ドライブのプール内でデータ・ストレージ・ドライブの追加、削除、または交換を行うことが可能であるが、ドライブ・イメージ・プロバイダは、仮想ドライブを不変であるものと特徴付ける
【００３３】
一実施形態では、ドライブ・リソース・プロバイダは、イメージを含む仮想データ・ストレージ・ドライブのリストを有し、仮想ドライブとして専用化されたプールのデータ・ストレージ・ドライブを示すドライブ・イメージ・テーブルを使用して、ドライブ・イメージ・プロバイダと通信する。
【００３４】
本発明のより十分な理解のため、添付の図面と併せて考慮されるべき以下の詳細な説明を参照されたい。
【発明を実施するための最良の形態】
【００３５】
本発明を図を参照する以下の説明における好ましい実施形態で説明する。図では、同様の符号が同じ要素または同様の要素を表わしている。本発明を本発明の目的を実現するための最良の形態に関して説明するが、本発明の趣旨および範囲を逸脱することなく、以下の教示に鑑みて変形形態を実施することも可能であることが、当分野の技術者には認められよう。
【００３６】
図１〜３を参照すると、ホスト・アプリケーション１１、１２のなどのホスト・アプリケーションと、自動化されたデータ・ストレージ・ライブラリ１７のデータ・ストレージ・ドライブ１５の間の通信を誘導する仮想化システム１０の実施形態が示されている。ライブラリは、ストレージ・シェルフ１６の中に複数の可搬データ・ストレージ・カートリッジ１４を格納し、ストレージ・シェルフとデータ・ストレージ・ドライブの間で可搬データ・ストレージ・カートリッジを運ぶためのアクセス機能ロボット１８、２０を提供する。
【００３７】
少なくとも１つのドライブ・イメージ・プロバイダ３０が、１つまたは複数のホスト・アプリケーション１１、１２に結合され、少なくとも１つの固定の仮想データ・ストレージ・ドライブのイメージを各ホスト・アプリケーションに提供する一方で、実際には、ホスト・アプリケーションと、自動化されたデータ・ストレージ・ライブラリの「ｎ」個のデータ・ストレージ・ドライブ１５のプールのデータ・ストレージ・ドライブの間で通信を誘導する。これにより、ライブラリのドライブ１５は、ホスト・アプリケーション間で共用される。ドライブ・イメージ・プロバイダは、固定識別子、および仮想ドライブのそれぞれに関するホスト・アプリケーションに対する応答の固定セットを使用することにより、ホストと通信してイメージを描き、ホストの仮想ドライブのすべてが、常時、ホストに専用である見かけがホスト・アプリケーションに提供されるようにする。さらに、基底の物理ドライブは、様々なアクセス時に異なる可能性があり、ドライブを追加すること、削除すること、または取り替えることがすべて、ホスト・アプリケーションのデバイス・ドライバの再構成を必要とすることなく可能である。
【００３８】
ドライブ・リソース・プロバイダ３５が、ドライブ・イメージ・プロバイダ３０に結合される。任意の一時点で、ドライブ・リソース・プロバイダは、「ｎ」個のデータ・ストレージ・ドライブのプールの任意の「ｍ」個をドライブ・イメージ・プロバイダに割り当てており、データ・ストレージ・ドライブのプールの「ｎ」−「ｍ」個は、解放されて、割当てに利用できるものとして示される。
【００３９】
ドライブ・リソース・プロバイダ３５は、ホスト・アプリケーションの仮想ドライブとしてドライブを要求するトリガ・イベントに応答し、プールの「ｎ」−「ｍ」個のデータ・ストレージ・ドライブの１つを仮想ドライブとして専用化し、要求側ホスト・アプリケーションに関して固定の仮想ドライブの１つとしてドライブ・イメージ・プロバイダに対する専用化を示す。
【００４０】
ドライブ・イメージ・プロバイダ３０は、要求側ホスト・アプリケーションに対する専用データ・ストレージ・ドライブを固定の仮想ドライブの１つとして特徴付け、仮想ドライブとして要求側ホスト・アプリケーション１１、１２による専用データ・ストレージ・ドライブ１５に対する通信を誘導する。
【００４１】
物理ドライブの仮想ドライブとしての専用化に先立ち、ドライブ・イメージ・プロバイダ３０は、要求側ホスト・アプリケーションに対する仮想ドライブを「ノット・レディー」として特徴付ける。例として、「ノット・レディー」は、ドライブに媒体がまったくロードされない報告状態の偽の完了応答を含む。
【００４２】
本発明によれば、ドライブ・リソース・プロバイダ３５は、プールのすべてのデータ・ストレージ・ドライブが割振り済みであるときにデータ・ストレージ・ドライブに関する要求を受け取ると、その要求に関連する可搬データ・ストレージ・カートリッジのマウントを一切、保留するようにライブラリに指示する。さらに、ドライブのすべてが割振り済みであるときに要求を受け取ると、要求されたドライブは、可搬データ・ストレージ・カートリッジをマウントするために利用できるが、マウント済みの可搬データ・ストレージ・カートリッジを必要とする後続のコマンドを行うのに現在、利用できないという指示が行われることが可能である。これにより、ホスト・アプリケーション１１、１２は、データ・ストレージ・ドライブを有することが保証され、そのドライブに関して再試行すること、または次のコマンドを発行することができる。次のコマンドが、ドライブがレディーであること、または可搬データ・ストレージ・カートリッジがマウントされ、レディーであることを必要としない場合、ライブラリは、そのコマンドに対応することができることが可能である。
【００４３】
ドライブ・リソース・プロバイダ３５は、指示を提供した後、データ・ストレージ・ドライブの割振り解除の要求、および割振り解除されたデータ・ストレージ・ドライブにおける可搬データ・ストレージ・カートリッジのマウント解除を待ち、割振り解除されたデータ・ストレージ・ドライブをドライブの要求に割り振り、その要求に関してマウントの保留を解除するようにライブラリに指示する。
【００４４】
一例では、１つまたは複数のライブラリ・イメージ・プロバイダ４３も仮想ライブラリに提供することが可能であり、ライブラリ・リソース・プロバイダ３９によって定義される１組の仮想ドライブ、および１組のストレージ・シェルフ１６を含む。データ・ストレージ・ドライブ１５は、仮想ライブラリの間で共用されるが、ストレージ・シェルフ１６は、好ましくは、別々である。
【００４５】
ホスト・アプリケーション１１、１２は、ＩＢＭ  ＲＳ／６０００またはＩＢＭ  ｅＳｅｒｖｅｒ  ｐＳｅｒｉｅｓプロセッサなどのホスト・プロセッサ、およびホスト・プロセッサ上で実行されているすべてのアプリケーションを含むこと、またはホスト・プロセッサ上で実行されている複数のアプリケーションの１つを含むことが可能である。したがって、ホスト・アプリケーションはそれぞれ、プロセッサ３６およびストレージ３８を有する処理システムを含むものとして描いている。
【００４６】
自動化されたデータ・ストレージ・ライブラリ１７は、例として、自動化されたテープ・カートリッジ・ストレージ、ならびにＩＢＭ３５８４などの磁気テープ・カートリッジの物理ボリュームを含むデータ記憶媒体を格納し、その媒体にアクセスするための検索ライブラリを含む。別法として、自動化されたデータ・ストレージ・ライブラリ１７は、光ストレージ、ならびに可搬データ・ストレージ・カートリッジを格納しているものと本明細書でそれぞれ定義される検索ライブラリまたはテープ・カセット・ライブラリ等を含むことが可能である。データ・ストレージ・ドライブ１５は、媒体上でデータを読み取ること、または書き込むこと、あるいはその両方を行い、プロセッサを含むことが可能である。ライブラリは、アクセス機能ロボット１８、２０を操作するためのロボット・コントローラ４１と、ライブラリ・マネージャ４０とをさらに含む。アクセス機能ロボット１８、２０は、選択された可搬データ・ストレージ・カートリッジ１４を捉えるための把持部（gripper）２０と、ストレージ・シェルフ１６とドライブ１５の間で、またはストレージ・シェルフの間で把持部を動かすためのアクセス機構１８とを含む。アクセス機能ロボット１８、２０は、識別カートリッジ・ラベルを「読み取る」ための把持部２０上に取り付けられたバーコード・スキャナ２２、または同様の視覚システムも含むことが可能である。データ・ストレージ・ドライブ１５は、光ディスク・ドライブまたは磁気テープ・ドライブであることが可能であり、可搬データ・ストレージ・カートリッジは、それぞれ、光媒体または磁気媒体を含むカートリッジ、またはカセット、あるいは任意の他の取外し可能なストレージを含むことが可能である。
【００４７】
ロボット・コントローラ４１およびライブラリ・マネージャ４０は、少なくとも１つのコンピュータ・プロセッサ、および関連するストレージを含み、入力／出力インターフェース４２および端末装置２８に結合されている。コンピュータ・プロセッサは、例えば、ＩＢＭ  ＲＳ／６０００プロセッサを含むことが可能である。別法として、ロボット・コントローラ４１およびライブラリ・マネージャ４０がそれぞれ、コンピュータ・プロセッサを含むことが可能であり、そのコンピュータ・プロセッサが互いに接続される。この例では、ライブラリ・マネージャ４０は、コンピュータ・プロセッサ４５、および関連するストレージ４６を含む。端末装置２８は、フロッピー（Ｒ）・ディスクまたはＣＤ−ＲＯＭなどのデータ記憶媒体を読み取るためのステーションを含むことが可能である。
【００４８】
ライブラリ・マネージャ４０は、ドライブ１５に結合され、ドライブ１５のロード／アンロード、および関連するアクションを制御し、またライブラリ・マネージャ４０は、ロボット・コントローラ４１に結合され、ロボット・コントローラ４１の動作を調整する。ライブラリ・マネージャは、インターフェース４２を介してホスト・アプリケーション１１、１２に結合される。ライブラリ・マネージャ２４は、テーブルおよびプログラムのためにストレージ４６（通常、１つまたは複数のハードディスク・ドライブまたはフラッシュＥＥＰＲＯＭ）の中に記憶されたライブラリ・マネージャ・データベースを有する。データ・アクセス・コマンド、および選択された可搬データ・ストレージ・カートリッジ１４上で記憶されるべき、または読み取られるべき情報が、データ・イメージ・プロバイダ３０によって誘導されるとおりにドライブ１５とホスト・アプリケーションの間で伝送される。ライブラリ・マネージャ４０は、通常はボリューム通し番号、つまりＶＯＬＳＥＲである識別子に関連して各可搬データ・ストレージ・カートリッジを定義し、あるいは別法として、各カートリッジの場所に関連して定義する。
【００４９】
ホスト・アプリケーション１１、１２は、通常、ホスト・アプリケーションと自動化されたデータ・ストレージ・ライブラリの中間の１つまたは複数の構成要素によってライブラリ１７に結合される。
【００５０】
中間構成要素の例は、ホスト・バス・アダプタ５０である。一例では、ホスト・バス・アダプタ５０は、ＰＣＩ、ＥＳＣＯＮ、ＦＩＣＯＮ、ＳＣＳＩ、ファイバ・チャネルなどの、ライブラリ、または他の中間構成要素、およびホスト・アプリケーション１１、１２に結合する適切な接続とそれぞれインターフェースをとるインターフェース５２および５３を含む。アダプタは、プロセッサ５４および不揮発性メモリ５５、ならびに適切なバッファおよび相互接続を含む。ホスト・バス・アダプタ５０の例は、ＩＢＭ  ｅＳｅｒｖｅｒ  ｐＳｅｒｉｅｓギガバイト・ファイバ・チャネル・アドレスを含む。ホスト・アプリケーション１２は、図では、アダプタを含むことが可能なインターフェース５３を有している。
【００５１】
中間構成要素の別の例は、前述したような、ネットワーク内の相互接続するいくつかのプロセッサに対する適切な接続を有する複数のインターフェース５７を有するゲートウェイまたはルータ５６を含む。ゲートウェイまたはルータは、オペレーティング・システム等を記憶するための不揮発性メモリ５９を有するプロセッサ５８を含む。ゲートウェイまたはルータの例は、ＩＢＭ  ２１０８  ＳＡＮデータ・ゲートウェイである。当該のアダプタ、ルータ、またはゲートウェイに適切な他の技術は、「コントローラ」、「ディレクタ」、または「インテリジェント・スイッチ」であり、当分野の技術者は、その他のアプリケーションを思い描くこともできる。
【００５２】
プロセッサ５４、５８は、Ｉｎｔｅｌ  ｉ９６０などのマイクロプロセッサを含むことが可能である。
【００５３】
本発明によれば、ドライブ・イメージ・プロバイダ３０またはドライブ・リソース・プロバイダ３５あるいはその両方は、ホスト・アプリケーション１１、１２、中間構成要素５０、５６、または自動化されたデータ・ストレージ・ライブラリ１７のいずれかに組み込むことができる。例として、ドライブ・イメージ・プロバイダ３０はそれぞれ、関連するホスト・アプリケーション１１、１２に組み込まれ、ドライブ・リソース・プロバイダは、ホスト・アプリケーションと自動化されたデータ・ストレージ・ライブラリ１７の中間の構成要素５６に組み込まれる。ドライブ・リソース・プロバイダは、ドライブ・イメージ・プロバイダを有するホストのそれぞれ、またはホストのホスト・バス・アダプタに結合された構成要素に存在しなければならない。さらに別の例として、ドライブ・イメージ・プロバイダ３０は、ホスト・アプリケーション１１、１２と自動化されたデータ・ストレージ・ライブラリ１７の中間の構成要素５０、５６を含み、ドライブ・リソース・プロバイダ３５は、ホスト・バス・アダプタ５０またはホストとライブラリ１７の中間の構成要素５６を含む。さらなる例として、ドライブ・イメージ・プロバイダ３０は、関連するホスト・アプリケーション１１、１２のデバイス・ドライバを含み、ドライブ・リソース・プロバイダ３５は、ライブラリ・マネージャ４０などの自動化されたデータ・ストレージ・ライブラリ１７の構成要素を含む。さらに別の例は、ホスト・アプリケーションと自動化されたデータ・ストレージ・ライブラリの中間の構成要素５０、５６に組み込まれたドライブ・イメージ・プロバイダ３０を含み、ドライブ・リソース・プロバイダ３５は、自動化されたデータ・ストレージ・ライブラリ１７の構成要素を含む。
【００５４】
ライブラリ・イメージ・プロバイダ４３およびライブラリ・リソース・プロバイダ３９は、好ましくは、ともに、自動化されたデータ・ストレージ・ライブラリ１７に組み込まれる。
【００５５】
ホスト・アプリケーション１１、１２のプロセッサ３６、中間構成要素５０、５６のプロセッサ５４、５８、およびライブラリのライブラリ・マネージャ４０のプロセッサ４５のそれぞれは、オペレーティング・システムおよびアプリケーション・プログラムを備えることが可能であり、本発明に従って動作するためのプログラムを含むことが可能である。各プロセッサは、テーブルおよびプログラムのためのストレージ（通常、不揮発性メモリ、または１つまたは複数のハードディスク・ドライブ）を含むデータベース、それぞれ３８、５５、５９、４６を備えることが可能である。アプリケーション・プログラムは、コンピュータ可読プログラム・コードを含む１つまたは複数のコンピュータ・プログラム製品を含むことが可能である。本発明のコンピュータ・プログラム製品は、アプリケーション・プログラムとともに供給され、提供されるストレージの中に記憶されていること、端末装置２８においてディスケットまたはＣＤ−ＲＯＭとともに供給され、製造品を含むこと、ホスト・システム１１、１２の１つから受け取られること、ネットワークから受け取られること、または他の同様な手段によって受け取られることが可能である。記憶媒体またはメモリの要件は、コンピュータ実行可能命令のデジタル表現を含むことである。コンピュータ可読プログラム・コードは、デバイスのコンピュータ・プロセッサまたはコンピュータ・プロセッサ群を介してデバイスを動作させる。
【００５６】
図４および５に、可搬データ・ストレージ・カートリッジ１４の例を示しており、カートリッジ１４は、例えば、磁気テープ・カートリッジを含む。カートリッジ１４は、外縁部６１上に識別ラベル６０を有する。
【００５７】
図６および７は、ドライブ・リソース・プロバイダ３５によって生成され、保持され、図１のドライブ・イメージ・プロバイダ３０に提供されるドライブ・イメージ・テーブル７０、７１の例を示しており、このテーブル７０、７１内で、ドライブ・リソース・プロバイダは、データ・ストレージ・ドライブのプールの割り振られた専用のドライブを各ホスト・アプリケーションの仮想ドライブにマップする。ドライブ・イメージ・テーブルは、ドライブ・リソース・プロバイダにおいて定期的に、例えば、１／２秒毎にドライブ・イメージ・プロバイダによって読み取られ、更新されること、または各ドライブ・イメージ・プロバイダが、必要に応じて関連するドライブ・イメージ・テーブルにアクセスすることが可能である。ドライブ・イメージ・プロバイダは、各回にテーブルをリフレッシュする必要はなく、代わりに、変更を探すことができる。
【００５８】
ドライブ・イメージ・テーブルは、ドライブ・イメージ・プロバイダが報告し、応答を提供すべき仮想ドライブのリスト７５を含む。例として、ＳＣＳＩの用語では、リスト７５は、仮想ドライブのそれぞれに関するテープ・ドライブＬＵＮ識別子などの固定アドレスを含むことが可能である。ドライブ・イメージ・プロバイダは、固定の用語で１つまたは複数の仮想データ・ストレージ・ドライブのホスト・アプリケーションにイメージを提供し、これらのドライブは、リスト７５を使用して特定される。固定リストは、ドライブ・リソース・プロバイダが、仮想ドライブのそれぞれに関するホスト・アプリケーションに固定識別および固定セットの応答を提供することができるように、各仮想ドライブ７６の特性の識別によって補足される。一例として、特性には、仮想ドライブに関する固有通し番号が含まれることが可能である。さらなる例として、特性は、仮想ドライブに関する同一のアドレスを含むことが可能である。さらなる例として、仮想ドライブは、タイプまたは製造業者による名称、およびモデル番号を含む特性を備えることが可能である。これにより、ドライブ・リソース・プロバイダが、データベースから固定セットの応答を決定することができるようになる。代替の実施形態として、ドライブ・リソース・プロバイダのドライブ・イメージ・テーブルが、各仮想ドライブに関する識別子７５だけを含むことが可能であり、ドライブ・イメージ・プロバイダが、各仮想ドライブに関する特性７６を保持することが可能である。
【００５９】
ドライブ・リソース・プロバイダが、ライブラリの物理ドライブのプールからのドライブをホスト・アプリケーションに関するドライブ・イメージ・プロバイダに専用にすると、それらのドライブも、例えば、ＳＣＳＩ用語で、ＬＵＮによって識別される７７。例示した例では、「＊」は、いずれの物理ドライブにも現在、仮想ドライブが割り当てられていないという指示を表わす。また、「Ｗ」は、以下に説明するとおり、物理ドライブが割り当てられるが、現在、いずれも割り当てられていないことを表わす。オプションとして、ドライブ・リソース・プロバイダは、通し番号、タイプ、製造業者による名称、またはモデル番号あるいは以上すべてなどの、それぞれの割り当てられた物理ドライブの特性７８も提供することが可能である。
【００６０】
図８をさらに参照すると、図１のドライブ・リソース・プロバイダ３５またはライブラリ・リソース・プロバイダ３９あるいはその両方が、物理ドライブ８１のドライブ・テーブル８０、および物理ドライブ８１の現在の割当て、つまりステータス８２を保持している。好ましくは、テーブル８０は、前述したとおり、物理ドライブのそれぞれの特性８３も含む。
【００６１】
図９をさらに参照すると、図２および３のライブラリ１７が、ホスト・アプリケーションに直接に結合されるように構成され、例えば、特定された仮想ドライブにおいてストレージ・シェルフ１６から特定された可搬データ・ストレージ・カートリッジ１４をライブラリがマウントする要求を受け取ることが可能である。その要求に対応するため、ライブラリは、少なくとも１つのライブラリ・イメージ・テーブル８５を含む。このテーブルは、仮想ライブラリ群９０、および各仮想ライブラリに専用の仮想ドライブ８７を明らかにする。さらに、ライブラリは、仮想ライブラリの優先順位８８、ならびにいずれの仮想ライブラリまたは仮想ドライブが、スペア・ドライブを使用することを許可されているか８９を示すことも可能である。この情報は、図１のライブラリ・イメージ・プロバイダ４３を使用してホスト・アプリケーションに提示される。
【００６２】
各仮想ライブラリには、１組のストレージ・シェルフ１６が割り当てられる。同一の仮想ライブラリが、複数のホスト・アプリケーションによって共用されること、または各ホスト・アプリケーションに関して別個の仮想ライブラリを含むこと、あるいはその組合せが存在することが可能である。テーブル８５は、列９０で仮想ライブラリを明らかにし、各仮想ライブラリに割り当てられた図２および３のストレージ・シェルフ１６のセットが、列９１で明らかにされている。当分野の技術者には周知のとおり、自動化されたデータ・ストレージ・ライブラリのストレージ・シェルフは、各仮想ライブラリに図３のストレージ・シェルフ９２〜９６のような特定の１組のストレージ・シェルフが割り当てられるように、ライブラリ・マネージャによって区分することが可能である。仮想ライブラリは、図１のライブラリ・リソース・プロバイダ３９によって構成される。好ましくは、仮想ライブラリ、ならびにホスト・アプリケーションは、列９７に描かれるとおり、図２および３のライブラリ１７の物理ドライブ１５のすべて、またはほとんどを共用する。あるデータ・ストレージ・ドライブは、仮想ドライブの要件に合致しないタイプであるとして、仮想ライブラリに関する「ｎ」個のドライブのプールから差し控えられることが可能である。一例は、特定の状況においてだけ有用な低速ドライブである。別の例は、小さいデータ・レコードには使用できないストリーミング・ドライブである。
【００６３】
例として、図６、７、８、および９の例示したテーブル７０、７１、８０、および８５では、物理ドライブ「ＤＲ３」が、ドライブ・イメージ・テーブル７０内で仮想ドライブ「ＡＡ」として割り当てられており、仮想ライブラリ「０」に入っている。このドライブは、ホスト・アプリケーションによって解放された際に、またはホスト・アプリケーションがドライブにマウント済みの可搬データ・ストレージ・カートリッジをマウント解除するコマンドを発行した際に割振り解除される。物理ドライブ「ＤＲ１」は、ドライブ・イメージ・テーブル７１内で仮想ライブラリ「１」に割り当てられ、仮想ドライブ「ＥＥ」として専用化されている。「（Ｌ）」は、その物理ドライブが、ホスト・アプリケーションによって明確に解放されるまで、仮想ドライブとしてホスト・アプリケーションにロックされていることの指示であり、このドライブは、ホスト・アプリケーションが、ドライブにマウント済みの可搬データ・ストレージ・カートリッジをマウント解除するコマンドを発行した際に割振り解除されない。
【００６４】
仮想ライブラリの相対優先順位８８は、プールのすべてのドライブが割当て済みであることを示すプールの「ｎ」−「ｍ」個のデータ・ストレージ・ドライブがゼロに等しくなった状況で、より高い優先順位のホスト・アプリケーション、例えば、優先順位「０」が、より低い優先順位のホスト・アプリケーション、例えば、優先順位「１」に既に専用にされているドライブを取ることができることを意味する。仮想ライブラリを使用して、テーブルは、物理ドライブ９７を仮想ライブラリ９０に割り当てるオプションを描いており、これにより、データ・ストレージ・ドライブのプールを定義している。１つのライブラリだけが使用される場合、スペアを除くすべてのデータ・ストレージ・ドライブが、ドライブのプールを構成する。物理ドライブ「ＤＲ２」は、現時点で、いずれの仮想ドライブにも割り当てられておらず、「解放されている」として示され、割当てに利用できる。物理ドライブ「ＤＲ７」は、「スペア」ドライブとして予約されており、プールのすべてのドライブが割当て済みであることを示して、プールの「ｎ」−「ｍ」個のデータ・ストレージ・ドライブがゼロに等しく、優先順位の割振り変更が行われないか、または割当て変更される可能性があるすべてのドライブが高い優先順位割当てを有する状況においてだけ使用することが可能である。スペアが、列８９で示されるとおり許可されている場合、ドライブ・リソース・プロバイダは、スペア・ドライブの１つを要求に割り振る。別法として、ドライブ・リソース・プロバイダは、所定の期間だけ待ち、その所定の期間中にデータ・ストレージ・ドライブの割振り解除、および割振り解除されたデータ・ストレージ・ドライブにおける可搬データ・ストレージ・カートリッジのマウント解除が完了した場合、割振り解除されたデータ・ストレージ・ドライブをその要求に割り振り、そううでない場合、期間が満了した後、スペア・データ・ストレージ・ドライブを要求に割り振る。
【００６５】
スペア・データ・ストレージ・ドライブを割り振った後、ドライブ・リソース・プロバイダは、スペア・データ・ストレージ・ドライブの使用を示すメッセージをポストする。ポストされたメッセージは、スペア・データ・ストレージ・ドライブをプールに移すアクションを行うことができるというシステム・マネージャに対する通知を含むことが可能である。例として、スペア・ドライブをプールに移すことにより、ライブラリの費用が増大することがもたらされる。移転が行われる場合、ドライブ・リソース・プロバイダは、スペア・データ・ストレージ・ドライブをプールに加え、そのドライブをスペア・データ・ストレージ・ドライブとして削除する。
【００６６】
誘因として、ポストされたメッセージは、スペア・ドライブをプールに移すのを怠ることにより、スペア・データ・ストレージ・ドライブが将来、利用できなくなるという通知をさらに含むことが可能であり、ドライブ・リソース・プロバイダは、少なくとも１つのスペア・データ・ストレージ・ドライブをプールに移す要求がない場合、少なくとも１つの仮想ライブラリに対する複数のライブラリデータ・ストレージ・ドライブのスペア・ドライブとしての割当てを削除し、割当て済みのスペア・ドライブが、仮想ライブラリに対して、あるいは、ライブラリ・システムにおいて割当て解除されるようにする。
【００６７】
仮想ライブラリ０のドライブ・イメージ・テーブル７０内で、仮想ドライブ「ＢＢ」は、まったく専用データ・ストレージ・ドライブを有しておらず、ホスト・アプリケーションが物理ドライブを必要とする状況にある。しかし、物理ドライブは、スペア・ドライブであれ、より低い優先順位の仮想ライブラリまたはより低い優先順位の仮想ドライブからのドライブであれ、利用できない。したがって、「Ｗ」は、データ・ストレージ・ドライブがライブラリの通常の動作において利用可能になるまで、待機が存在することを意味する。
【００６８】
図１０は、図２および３のライブラリ１７のデータ・ストレージ・ドライブ１５を構成するための方法、つまり仮想ライブラリを構成する方法の実施形態を示している。
【００６９】
構成は、ステップ１００において、ライブラリの始動または初期設定で始まる。別法として、物理ドライブの追加、削除、または取替えが行われることが可能であり、ステップ１０１で、再構成が始まる。さらなる別法として、前述したとおり、スペア・データ・ストレージ・ドライブを使用して、メッセージを受け取ったシステム・オペレータが、ステップ１０２から始めて、スペア・ドライブの１つまたは複数をドライブのプールに加えることを選択することが可能である。プール内のスペア・ドライブを使用するか、またはそのドライブを失う選択がシステム・オペレータに提示され、システム・オペレータが、そのドライブを失うことを選択した場合（可能性の低いシナリオ）、ステップ１０２は、旧スペア・ドライブまたは旧スペア・ドライブ群を「未割当て」ステータスに割当て変更することも提供することが可能である。この状況で、ライブラリの再構成は、実際には、まったく必要とされない。
【００７０】
ステップ１０５は、仮想ライブラリの使用がオプションである状況に関して使用することができ、仮想ライブラリが実装されるかどうかを決める。「はい」の仮想ライブラリが実装される場合、ステップ１０６が、構成されるべき次の仮想ライブラリを決める。「いいえ」の仮想ライブラリが実装されない場合、単一セットの仮想ドライブのために物理ライブラリが構成される。このプロセスは、ライブラリ・リソース・プロバイダまたはドライブ・リソース・プロバイダあるいはその両方によって行われることが可能であり、仮想ライブラリが実装される場合、ライブラリ・リソース・プロバイダが必要とされる。仮想ライブラリが実装されない場合、図９のライブラリ・イメージ・テーブル８５は、単一のライブラリだけを含み、列９０がなくなる。
【００７１】
ステップ１１０で、ライブラリに利用可能な物理ドライブが特定される。この情報は、システム・オペレータによって提供されること、または例えば、ドライブの数のすべてがすべての仮想ライブラリによって共用されるデフォルトを含むことが可能である。ステップ１１１で、スペア・ドライブが特定される。スペア・ドライブは、図２および３のライブラリ１７が販売された時点、または設置された時点で確立されること、またはライブラリの代金として支払われる価格を規制するようにシステム・オペレータによって設定することが可能である。仮想ライブラリに関するドライブのプール内の物理ドライブ「ｎ」の数は、用意された物理ドライブＰＤの数からスペア・ドライブＳＤの数を引いたものである。
【００７２】
ステップ１２０で、仮想ドライブの数、および仮想ドライブのそれぞれの固定識別が、例えば、担当のシステム・オペレータから、またはデバイス・ドライバから、各ホスト・アプリケーションとの通信のために特定される。これは、図６および７の列７５、図９の列８７で示すとおり、固定の仮想ドライブをアドレス指定するのにホスト・アプリケーションによって使用される識別子を含み、図８の列８２で示す割振りのために使用される。特性情報７６、８３は、この時点で獲得することも可能である。ステップ１１５で、仮想ライブラリの相対優先順位が、例えば、システム・オペレータによって決定される。別法として、相対優先順位は、仮想ドライブに関して決定することも可能である。結果の相対優先順位は、図９の列８８の中にポストされる。次に、ステップ１２１で、ドライブ・リソース・プロバイダが、各ドライブ・イメージ・プロバイダに関してドライブ・イメージ・テーブル７０、７１を構成する。マスタ・ドライブ・イメージ・テーブルが、ドライブ・リソース・プロバイダの中に保持され、データ・ストレージ・ドライブのプールの割り振られた専用のドライブを各ホスト・アプリケーションの仮想ドライブにマップする。前述したとおり、ドライブ・イメージ・テーブルは、ドライブ・リソース・プロバイダにおいて定期的にドライブ・イメージ・プロバイダによってアクセスおよびリフレッシュまたは更新が行われること、あるいは各ドライブ・イメージ・プロバイダが、必要に応じて関連するドライブ・イメージ・テーブルにアクセスすることが可能である。
【００７３】
ステップ１２５で、ライブラリ・リソース・プロバイダが、仮想ライブラリのすべてが構成されたかどうかを判定する。構成されている場合、または仮想ライブラリが実装されていない場合、プロセスは、ステップ１２６で示されるとおり終了する。仮想ライブラリのすべてが構成済みではない場合、プロセスは、ステップ１０６に循環して戻り、次の仮想ライブラリの構成を開始する。
【００７４】
図１１は、ホスト・アプリケーションが、ステップ１３５で仮想ドライブに関するコマンドを提供した際の図１のドライブ・イメージ・プロバイダ３０のプロセスを示している。イベントの例は、問合せコマンド、マウント済みの可搬データ・ストレージ・カートリッジから特定のデータを探索する探索コマンド、マウント済みの可搬データ・ストレージ・カートリッジからデータを読み取る読取りコマンド、マウント済みの可搬データ・ストレージ・カートリッジにデータを書き込む書込みコマンド、将来の使用のためにデータ・ストレージ・ドライブを予約する予約コマンド、予約済みのデータ・ストレージ・ドライブを解放する解放コマンド、または他の同様なタイプのコマンドである。
【００７５】
ドライブ・イメージ・プロバイダは、ステップ１４１および１４３で、ホスト・アプリケーションから受け取られたコマンドが、トリガ・イベントを構成するか、またはトリガ解除イベントを構成するかを判定する。コマンドがトリガ・イベントを構成する場合、ドライブ・イメージ・プロバイダは、ステップ１４４で、ドライブ・リソース・プロバイダにそのイベントを通知し、仮想ドライブを特定して、ホスト・アプリケーションを特定することができる。コマンドがトリガ解除イベントを構成する場合、ドライブ・イメージ・プロバイダは、ステップ１４９で、そのイベントをドライブ・リソース・プロバイダに通知し、仮想ドライブを特定して、ホスト・アプリケーションを特定することができる。
【００７６】
ステップ１４０で、ドライブ・イメージ・プロバイダは、仮想ライブラリに関する図６、７のドライブ・イメージ・テーブル７０、７１内で仮想ドライブをルックアップする。
【００７７】
ステップ１３６は、ステップ１３５のコマンドが、イベントに対する応答を完了するのに物理ドライブを必要とするかどうかを判定する。例えば、探索コマンド、読取りコマンド、および書込みコマンドはすべて、物理ドライブを必要とする。問合せコマンドは、物理ドライブを必要とせず、応答は、ドライブなしにドライブ・イメージ・プロバイダによって提供することが可能であり、ステップ１３７で、応答が提供される。ドライブ・イメージ・プロバイダは、アドレス指定された仮想ドライブとして応答し、図６、７のドライブ・イメージ・テーブル７０、７１からのドライブの特性、または等価物を使用する。探索コマンド、読取りコマンド、および書込みコマンドは、専用の物理ドライブに可搬データ・ストレージ・カートリッジがマウントされている場合に、ホスト・アプリケーションによって提供され、したがって、マウント・コマンドがライブラリに提供されていることになる。
【００７８】
仮想ドライブに対する物理ドライブの割振りおよび専用化をもたらすコマンドは、トリガ・イベントと呼ばれ、予約コマンド、および「そこにいますか（are you there）」タイプのコマンドなどのドライブ要求の効果を有する他のコマンドを含む。物理ドライブの割振り解除をもたらすコマンドは、トリガ解除イベントと呼ばれ、解放コマンド、およびドライブを解放する効果を有する他のコマンドを含む。予約コマンドおよび解放コマンド、ならびに仮想ドライブを要求する、または解放するコマンドは、ドライブ・イメージ・プロバイダによって受け取られる。
【００７９】
ステップ１４２で、ドライブ・イメージ・プロバイダが、ドライブ・イメージ・テーブルから、物理ドライブがコマンドの仮想ドライブに専用であるかどうかを判定する。「はい」の物理ドライブが仮想ドライブに専用である場合、ドライブ・イメージ・プロバイダは、ステップ１４３で、要求側ホスト・アプリケーションと、自動化されたデータ・ストレージ・ライブラリの「ｎ」個のデータ・ストレージ・ドライブのプールの専用データ・ストレージ・ドライブの間で通信を誘導する。この通信は、ホスト・アプリケーションの見地から、通信がホスト・アプリケーションと仮想ドライブの間で行われているように見えるように、必要に応じてデステージされ、翻訳される。この通信は、コマンドの結果として生じると予期されることすべてを含み、例えば、予期されるヘッダ等を伴うデータの転送等を含む。
【００８０】
ホスト・アプリケーションがマウント・コマンドをライブラリに対して発行している場合、次に、仮想ドライブに対する探索等のコマンドを発行する可能性が高い。コマンドは、ドライブ・リソース・プロバイダによるドライブ・イメージ・テーブルの更新に先立って受け取られることが可能である。したがって、ドライブ・イメージ・プロバイダは、ドライブ・リソース・プロバイダがプールからの物理データ・ストレージ・ドライブを専用化するのに先立ち、ステップ１４２で、ドライブ・イメージ・テーブルから、要求側ホスト・アプリケーションに専用にされている物理ドライブは存在しないことを判定する。ドライブ・イメージ・プロバイダは、ステップ１５０で、偽の完了応答で要求側ホスト・アプリケーションに応答し、この応答は、要求が受け取られたこと、およびマウント済みの可搬データ・ストレージ・カートリッジを必要とするコマンドを完了するのに仮想ドライブが「ノット・レディー」であることをホスト・アプリケーションに知らせる効果を有する。ドライブ・イメージ・プロバイダは、２つのタイプの「ノット・レディー」偽完了応答を報告する。一例では、仮想ドライブが、待機中「ｗ」としてドライブ・イメージ・テーブル内で示されている場合、ドライブ・イメージ・プロバイダは、その仮想ドライブが「今後レディー（coming ready）」であることを報告する。代替の例では、ドライブ・イメージ・プロバイダは、仮想ドライブにおいて「カートリッジが存在しない」ことを報告する。いずれの場合も、「ノット・レディー」応答は、要求された作業が完了したことの指示ではない。むしこ、この応答は、２つの理由のどちらかに基づくコマンド拒否の一形態である。
【００８１】
ステップ１３６が、前述したとおり、問合せコマンド、予約コマンド、または解放コマンドのように、物理ドライブがまったく必要とされないことを示すと、ドライブ・イメージ・プロバイダは、アドレス指定された仮想ドライブとして、図６、７のドライブ・イメージ・テーブル７０、７１からの仮想ドライブの特性を使用して応答する。
【００８２】
図１２および１３を参照すると、ステップ１６０は、ドライブをロックする要求を伴う、または伴わない、マウント・コマンド１６１、予約コマンド１６２、または「そこにいますか」要求のようなドライブの要求１６３の受領などの、トリガ・イベントの出現を指している。要求は、ドライブ・イメージ・プロバイダによって受け取られ、ドライブ・リソース・プロバイダが、図１１のステップ１４４で通知を受け、あるいはマウント・コマンドがライブラリから、または仮想ライブラリから直接に受け取られた場合、このコマンドが、直接トリガ・イベントとしてドライブ・リソース・プロバイダに提供される。
【００８３】
ステップ１７０で、ドライブ・リソース・プロバイダが、要求側ホストによってトリガ・イベントが向けられた仮想ドライブを特定する。これは、通常、通知またはコマンド自体から特定される。ステップ１７２で、ドライブ・リソース・プロバイダは、仮想ドライブに関する図６および７のドライブ・イメージ・テーブル７０、７１を特定する。
【００８４】
ドライブ・イメージ・テーブルを特定すると、ドライブ・リソース・プロバイダは、ステップ１７５でそのドライブ・イメージ・テーブルにアクセスする。ステップ１７６で、ドライブ・リソース・プロバイダは、ドライブ・イメージ・テーブルから、物理ドライブが、そのイベントの仮想ドライブに専用であるかどうかを判定する。ドライブが専用化されている場合、プロセスは、ステップ１７７で終了し、ドライブ・イメージ・プロバイダが、図１１のステップ１４３で示すとおり、要求側ホスト・アプリケーションと、仮想ドライブとしてのデータ・ストレージ・ドライブの間で通信を誘導している。
【００８５】
ドライブが専用化されていない場合、ドライブ・リソース・プロバイダは、ステップ１８０で、例えば図８のドライブ・テーブル８０から、「ｎ」−「ｍ」がゼロより大きいかを判定する。「はい」の「ｎ」−「ｍ」がゼロより大きい場合、物理ドライブのすべてが割振り済みではなく、したがって、要求側ホスト・アプリケーションに割り振り、専用化するために物理ドライブが利用可能である。前述したとおり、ドライブのプールは、仮想ドライブの特性に適合するデータ・ストレージ・ドライブだけを含むことが可能である。例として、物理ドライブの多くは、ストリーミング・ドライブであり、要求される仮想ドライブは、そうではなく、ストップ−スタート式ドライブであることが可能である。
【００８６】
物理ドライブが利用可能であり、したがって、「ｎ」−「ｍ」＞０である場合、ドライブ・リソース・プロバイダは、ステップ１８５で、物理ドライブを仮想ドライブに割り振り、物理ドライブを要求側ホスト・アプリケーションに専用にする。複数のドライブが利用可能である場合、特定のドライブの選択が、任意の適切なアルゴリズムに従って行われることが可能である。一例として、仮想ドライブに最も近い特性を有するドライブを選択することが可能である。別の例として、最も長い間、アイドルであったドライブを選択することが可能である。これにより、ドライブ・リソース・プロバイダは、「ｍ」を値「ｍ」＋１に増分する。
【００８７】
ステップ１８５で物理データ・ストレージ・ドライブを割り振ると、ドライブ・リソース・プロバイダは、図６または７のドライブ・イメージ・テーブル７０、７１を更新する。前述したとおり、ドライブ・リソース・プロバイダは、これにより、データ・ストレージ・ドライブのプールの割り振られた専用のドライブを各ホスト・アプリケーションの仮想ドライブにマップする。更新されたドライブ・イメージ・テーブルは、ドライブ・リソース・プロバイダにおいて定期的にドライブ・イメージ・プロバイダによってアクセスされること、または各ドライブ・イメージ・プロバイダが、必要に応じて関連するドライブ・イメージ・テーブルにアクセスすることが可能である。図８のドライブ・テーブル８０も更新され、ステップ１８５のドライブの割振りを含むことが可能である。ステップ１８７で、ドライブ・リソース・プロバイダが、後に述べるとおり、要求に関連する可搬データ・ストレージ・カートリッジのマウントの保留を解除するようにライブラリに指示する。
【００８８】
プールのデータ・ストレージ・ドライブのすべてが割振り済みであるときにデータ・ストレージ・ドライブの要求が受け取られたことを示す「ｎ」−「ｍ」がゼロに等しいこをと判定するステップ１８０で示されるとおり、「いいえ」の利用できる物理データ・ストレージ・ドライブが存在しない場合、ドライブ・リソース・プロバイダは、ステップ１９０で、その要求に関連する可搬データ・ストレージ・カートリッジのマウントを一切、保留するようにライブラリに指示する。このようにして、ライブラリは、カートリッジをマウントするのに利用可能な物理ドライブが存在しない場合に、所望の可搬データ・ストレージ・カートリッジを選択するアクセス機能ロボットの動きを開始することになるマウントを開始しない。ドライブなしのマウントを防止することにより、別のカートリッジをマウント解除して、マウント解除のドライブを利用可能にするのにアクセス機能ロボットが必要とされる可能性があるのに、１つのドライブにマウントされるべきカートリッジで当該のアクセス機能ロボットがロックアウトされる可能性が防止される。さらに、ステップ１９０で、マウント要求に対して偽の完了応答が提供され、これにより、コマンドを順次にしか扱うことができない場合に、「コマンド」ロックアップの可能性が防止される。ドライブが利用可能になり、いずれかのカートリッジがマウント解除されると、ステップ１８７で、マウントが解除される。ステップ１８０により、ドライブがまったく割り振られていないことが示された場合、ドライブ・リソース・プロバイダは、ステップ２８０で、ドライブ・イメージ・プロバイダに関するドライブ・イメージ・テーブル（例えば、図６のテーブル７０）内に指示「Ｗ」をポストし、ドライブ・リソース・プロバイダが解放されたドライブを待っていることを示す。
【００８９】
単に、現在、割り振られているドライブが割振り解除されるのを待つ代わりに、様々なオプションの代案を使用して、物理ドライブを割り振ることができる。これらの代案を以下に説明する。これらの別法は、任意の順序で実施することができる。
【００９０】
ステップ１８０により、利用可能なドライブが存在しないことが示された場合、コネクタ２０８により、図１３のステップ２１０に導かれる。ステップ２１０は、図９のライブラリ・イメージ・テーブル８５の列８８に描いたとおり、仮想ライブラリまたは仮想ドライブに相対優先順位が割り当てられている状況に関する。したがって、仮想ライブラリの少なくとも１つが、他の仮想ライブラリよりも高い優先順位を有する複数の仮想ライブラリを使用すると、ドライブ・リソース・プロバイダが、ステップ２１０で、仮想ライブラリ、または要求された仮想ドライブの優先順位を判定し、要求の仮想ライブラリまたは仮想ドライブがより高い優先順位であるかどうかを判定する。要求の仮想ライブラリまたは仮想ドライブがより高い優先順位である場合、ドライブ・リソース・プロバイダが、ステップ２１１で、より低い優先順位の仮想ライブラリからデータ・ストレージ・ドライブを選択する。ステップ２１２で、ドライブ・リソース・プロバイダが、より低い優先順位の仮想ライブラリのドライブ・イメージ・テーブルから選択されたデータ・ストレージ・ドライブを割振り解除し、その割振り解除をドライブ・イメージ・プロバイダに通知し、ステップ２１５で、割振り解除されたデータ・ストレージ・ドライブから可搬データ・ストレージ・カートリッジをマウント解除するようにそのライブラリに通知する。ドライブ・イメージ・プロバイダが、ステップ２１６で、ホスト・アプリケーションに対して、割振り解除されたデータ・ストレージ・ドライブの仮想ドライブを「ノット・レディー」として特徴付ける。ステップ２２０で、ドライブ・リソース・プロバイダが、割振り解除されたデータ・ストレージ・ドライブをより高い優先順位の仮想ライブラリに割り振る。コネクタ２２２によりステップ１８６に導かれ、ドライブが、ドライブ・イメージ・テーブル内で要求側ホスト・アプリケーションの仮想ドライブに専用にされ、ステップ１８７で、マウントの保留が解除される。ステップ１５０でドライブ・イメージ・プロバイダによって待ち行列に入れられた作業が、ステップ１８５、１８６、および１８７の結果、待機解除される。
【００９１】
前述したとおり、ドライブ・リソース・プロバイダは、さらに、複数のライブラリ・データ・ストレージ・ドライブの少なくとも１つをいずれのプールからも外れたスペア・ドライブとして割り当てることができる。すると、ドライブ・リソース・プロバイダは、スペア・ドライブを要求に割り振ることができる。一例として、より低い優先順位の状況において物理ドライブがまったく割り当てられていない場合、スペア・ドライブを使用することが可能である。別法として、高い優先順位の仮想ライブラリに関してだけ、スペア・ドライブを要求することも可能である。したがって、ステップ２１０により、要求の仮想ライブラリまたは仮想デバイスが高い優先順位であると判定された場合、ステップ２３０により、スペア・ドライブの使用が許可されるかどうかが判定される。ホスト・アプリケーションの優先順位がその判定に関与するか否かに関わらず、スペアの許可は、例えば、図９のライブラリ・イメージ・テーブル８５の列８９から判定することが可能である。
【００９２】
スペアが許可されたとしても、スペアの使用は制限される可能性がある。一例として、ステップ２４３によって検知されて、データ・ストレージ・ドライブが割振り解除され、解放される時間を見込むように、ステップ２４０でタイムアウトが設定される。ステップ２４３が示すところにより、ドライブが解放された場合、コネクタ２０５により、図１２のステップ１８５に導かれ、解放されたドライブが割り振られる。ステップ２４３が示すところにより、解放されたドライブが存在しない場合、ステップ２４５により、タイムアウト期間が満了したかどうかが判定される。満了していない「いいえ」の場合、プロセスは、ステップ２４３に循環して戻り、解放されたドライブを待つ。
【００９３】
タイムアウト期間が満了した場合、スペアの使用に対するさらに別の制限を使用することができる。一例として、スペア・ドライブの使用は、所定の回数に制限することが可能である。以下に説明するとおり、システム・オペレータが、ドライブを「ｎ」個のドライブのプールに追加するように要求され、スペア・ドライブを無制限に使用することを妨げられることが可能である。具体的には、ステップ２５３で、ドライブ・リソース・プロバイダが、プールのデータ・ストレージ・ドライブのすべてが割振り済みであるときにスペアの要求が受け取られた各回にカウントを増分する。ステップ２５４で、ドライブ・リソース・プロバイダが、増分されたカウントを所定の限度と比較し、増分されたカウントが所定の限度より少ない場合、ステップ２５５で、スペア・データ・ストレージ・ドライブを要求の仮想ライブラリに割り振る。図８のドライブ・テーブル８０、および図９のライブラリ・イメージ・テーブル８５が更新され、ドライブがスペアから解放されたドライブに移動されて、ドライブ「ｎ」のプールが、「ｎ」＋１の値に一時的に増分され、テーブル８５の列９７の中でそのドライブが要求の仮想ライブラリに割り当てられる。コネクタ２０５により、要求側ホスト・アプリケーションの仮想ドライブに現時点で解放されたドライブを割り振るための図１２のステップ１８５に導かれる。
【００９４】
オプションとして、ドライブ・リソース・プロバイダはさらに、スペア・データ・ストレージ・ドライブを割り振った後、ステップ２６０で、スペア・データ・ストレージ・ドライブの使用を示すメッセージをポストする。ポストされたメッセージは、一実施形態では、スペア・データ・ストレージ・ドライブをプールに移すアクションを行うことができるというシステム・マネージャに対する通知を含む。例として、スペア・ドライブをプールに移すことにより、ライブラリの費用が増大することがもたらされる。移転が行われる場合、ドライブ・リソース・プロバイダは、スペア・データ・ストレージ・ドライブをプールに永久に追加し、そのドライブをスペア・データ・ストレージ・ドライブとして削除する。
【００９５】
別の実施形態では、誘因として、ポストされたメッセージは、スペア・ドライブをプールに移すのを怠ることにより、スペア・データ・ストレージ・ドライブが将来、利用できなくなるという通知をさらに含み、ドライブ・リソース・プロバイダは、少なくとも１つのスペア・データ・ストレージ・ドライブをプールに移す要求がない場合、ライブラリデータ・ストレージ・ドライブのスペア・ドライブとしての割当てを削除し、割当て済みのスペア・ドライブが割当て解除されるようにする。前述したとおり、スペア・ドライブの使用は、ステップ２５４の所定の限度によって制限することが可能である。
【００９６】
ステップ２３０で、許可されているスペア・ドライブが存在しない場合、またはステップ２５３の増分されたカウントが、ステップ２５４の所定の限度に達している場合、ドライブ・リソース・プロバイダは、ステップ２８２で、データ・ストレージ・ドライブの割振り解除の要求、および割振り解除されたデータ・ストレージ・ドライブにおける可搬データ・ストレージ・カートリッジのマウント解除を待ち、データ・ストレージ・ドライブを解放する。ステップ２８２の判定により、解放されたドライブが存在しない場合、プロセスは、ループしつづける。ドライブが割振り解除されると、ステップ２８２は、ステップ１８５でドライブを要求しているホスト・アプリケーションに関する仮想ドライブに割振り解除されたデータ・ストレージ・ドライブを割り振るために図１２のコネクタ２０５に進み、ステップ１８７の要求に関連するマウントの保留を解除するようにライブラリに指示する。
【００９７】
保留されたライブラリ・マウントを解除することに加えて、ドライブ・リソース・プロバイダは、保留されたマウント、または将来のマウントが実行されるべき専用物理データ・ストレージ・ドライブの指示も提供する。この指示は、ライブラリによってアクセスされる図８のドライブ・テーブル８０に対するポスティングを含む。保留されたマウントの解除に関する補足の代案として、専用物理データ・ストレージ・ドライブの指示に、ライブラリに伝えられる解除指示を備える。
【００９８】
図１４は、ステップ３００のトリガ解除イベントに関する。トリガ解除イベントの一例は、所定のタイムアウト期間にわたって専用データ・ストレージ・ドライブが使用されないことを含む。一実施形態では、ドライブの使用を含む機能が、ステップ３１０で特定され、ステップ３１１で、そのドライブに関するタイマをリセットする。次に、ステップ３１２により、タイマが追跡され、期間が満了したかどうかが示される。
【００９９】
他のトリガ解除イベントは、仮想ドライブからカートリッジをマウント解除し、ストレージ・シェルフなどの別のポイントにカートリッジを移動するマウント解除要求３１５、予約された仮想データ・ストレージ・ドライブを解放する解放コマンド３１６、およびドライブ解放指示３１７を含む。前述したとおり、マウント解除コマンドは、通常、ライブラリに与えられ、図１１のステップ１３５でドライブ・イメージ・プロバイダによって受け取られるコマンドではない。ライブラリは、マウント解除コマンドを受け取ると、仮想ドライブに専用の物理データ・ストレージ・ドライブを特定し、マウント解除を開始し、そのコマンドをドライブ・リソース・プロバイダに知らせる。解放コマンド、または仮想ドライブの解放を要求するコマンドが、図１１のステップ１３５でドライブ・イメージ・プロバイダによって受け取られる。ドライブ・イメージ・プロバイダは、ステップ１４３で、そのコマンドがトリガ解除イベントであることを判定し、ステップ１４９でドライブ・リソース・プロバイダに通知する。図１４のステップ３２０で、ドライブ・リソース・プロバイダが、要求側ホストがトリガ解除イベントを向けた仮想ドライブを特定する。これは、通常、コマンド自体から特定される。
【０１００】
ステップ３２５により、ドライブに可搬データ・ストレージ・カートリッジがマウントされているかどうかが判定される。これは、例えば、図１のライブラリ・プロセッサ４５から判定することが可能である。マウント解除コマンドは、アクセス機能ロボットによる可搬カートリッジのマウント解除をもたらし、したがって、ステップ３２５により、ドライブにまったくカートリッジがマウントされていないことが示される。その他のトリガ解除イベントは、ドライブに可搬カートリッジがマウントされた状態では生じず、マウント解除を含まない可能性がある。ドライブにカートリッジがマウントされている場合、ドライブ・リソース・プロバイダは、ステップ３２６でカートリッジがマウント解除されるべきことをライブラリに指示する。
【０１０１】
ステップ３３０で、ドライブ・リソース・プロバイダが、仮想ドライブに関する、またはステップ３１０〜３１２が物理ドライブを使用する場合、物理ドライブに関する図６または７のドライブ・イメージ・テーブル７０、７１を特定する。
【０１０２】
ステップ３３１で、ドライブ・リソース・プロバイダは、ホスト・アプリケーションに関する仮想ドライブからドライブを割振り解除する。ドライブ・リソース・プロバイダは、ステップ３４３で、そのドライブが解放されたことを示し、「ｍ」を「ｍ」−１に減分する。オプションとして、スペア・ドライブが使用される場合、ステップ３４０により、割振り解除されたドライブが共用ドライブであったかどうかが判定される。共用ドライブであった場合、ステップ３４１は、そのドライブを元のステータスに戻し、「ｎ」を「ｎ」−１に減分する。ドライブがスペアであった場合、システム・オペレータは、次に、図１３のステップ２６０のメッセージに応答し、１つまたは複数のスペア・ドライブをプールに追加することができる。ドライブがスペア・ドライブではなかった場合、ドライブ・リソース・プロバイダは、ステップ３４５に直接に進む。ステップ３４５で、図８のドライブ・テーブル８０内でドライブをスペア・ドライブとしての元のステータスに戻して、または図８のドライブ・テーブル内でそのドライブが解放されたことを示して、テーブルが更新される。
【０１０３】
図１５〜１７は、データ・ストレージ・ドライブを仮想ライブラリに対してロックすること、およびロック解除することを表わしている。図１５のステップ４００は、ロックを伴ってドライブが要求される図１２のトリガ・イベント１６０を表わしている。ステップ４０１は、ドライブを仮想ドライブに専用にするための図１２のステップ１８５と等価であり、図８のドライブ・テーブル８０のドライブ「ＤＲ１」によって示されるとおり、ドライブ・テーブルに「ロック」を追加することをさらに含む。
【０１０４】
図１６のステップ４１０は、ロックの解除とともにドライブがホスト・アプリケーションによって解放される図１４のトリガ解除イベント３００を表わしている。ステップ４１１は、ステップ３００に続いてすぐに行われることが可能であり、コマンドがロックの解除を含むかどうかの判定を含む。ロックの解除を含む場合、ロックは、ステップ４１２で、図８のドライブ・テーブル８０においてドライブ・リソース・プロバイダによって解除される。
【０１０５】
ステップ４２０は、マウント解除コマンドなどのロックの解除を含まない図１４のトリガ解除イベント３００を表わしている。ステップ４２１は、例えば、図８のドライブ・テーブル８０を参照して、ドライブがロックされているかどうかを判定する。ドライブがロックされていない場合、図１３のステップ３２０〜３４５のプロセスが行われる。デバイスがロックされており、図１６のステップ４１２でロック解除されない場合、ステップ４２５で、要求されたイベントが行われ、ステップ４２６で、テーブルが変更のないままにされ、したがって、ドライブは、ホスト・アプリケーションにロックされたままになる。
【０１０６】
以上のプロセスのステップは、適宜、順序を変更すること、または組合せること、および詳細を変更することができる。
【０１０７】
本発明の好ましい実施形態を詳細に示したが、頭記の特許請求の範囲に記載する本発明の範囲を逸脱することなく、これらの実施形態に対する変更および適合を行うことができることは、当分野の技術者には明白であろう。
【図面の簡単な説明】
【０１０８】
【図１】本発明による仮想化システムを示す図である。
【図２】本発明の実施形態を実施することが可能な自動化されたデータ・ストレージ・ライブラリを示す等角図である。
【図３】図２の自動化されたデータ・ストレージ・ライブラリを、ホスト・アプリケーション、および本発明の実施形態を実施することが可能なホスト・アプリケーションと自動化されたデータ・ストレージ・ライブラリの中間の構成要素とともに示すブロック図である。
【図４】図２および３の自動化されたデータ・ストレージ・ライブラリのストレージ・シェルフの中に格納することが可能な例示的な可搬データ・ストレージ・カートリッジを示す平面図である。
【図５】図２および３の自動化されたデータ・ストレージ・ライブラリのストレージ・シェルフの中に格納することが可能な例示的な可搬データ・ストレージ・カートリッジを示す端面図である。
【図６】本実施形態による例示的なドライブ・イメージ・テーブルを示す図である。
【図７】本実施形態による例示的なドライブ・イメージ・テーブルを示す図である。
【図８】本実施形態による例示的なドライブ・テーブルを示す図である。
【図９】本実施形態による例示的なライブラリ・イメージ・テーブルを示す図である。
【図１０】図２および３の自動化されたデータ・ストレージ・ライブラリのドライブを構成するため、またはその構成を変更するための本発明の方法の実施形態を描いた流れ図である。
【図１１】図１のドライブ・イメージ・プロバイダに関する本発明の方法の実施形態を描いた流れ図である。
【図１２】トリガ・イベントに関して図１のドライブ・リソース・プロバイダに関する本発明の方法の実施形態を描いた流れ図である。
【図１３】トリガ・イベントに関して図１のドライブ・リソース・プロバイダに関する本発明の方法の実施形態を描いた流れ図である。
【図１４】トリガ解除イベントに関して図１のドライブ・リソース・プロバイダに関する本発明の方法の実施形態を描いた流れ図である。
【図１５】データ・ストレージ・ドライブをロックするための図１のドライブ・リソース・プロバイダに関する本発明の方法の代替の実施形態を描いた流れ図である。
【図１６】データ・ストレージ・ドライブをロックするための図１のドライブ・リソース・プロバイダに関する本発明の方法の代替の実施形態を描いた流れ図である。
【図１７】データ・ストレージ・ドライブをロックすることに関して図１のドライブ・リソース・プロバイダに関する本発明の方法の代替の実施形態を描いた流れ図である。
【図１】
2005502954.tif 000003
【図２】
2005502954.tif 000004
【図３】
2005502954.tif 000005
【図４】
2005502954.tif 000006
【図５】
2005502954.tif 000007
【図６】
2005502954.tif 000008
【図７】
2005502954.tif 000009
【図８】
2005502954.tif 000010
【図９】
2005502954.tif 000011
【図１０】
2005502954.tif 000012
【図１１】
2005502954.tif 000013
【図１２】
2005502954.tif 000014
【図１３】
2005502954.tif 000015
【図１４】
2005502954.tif 000016
【図１５】
2005502954.tif 000017
【図１６】
2005502954.tif 000018
【図１７】
2005502954.tif 000019
【国際公開パンフレット】
2005502954.tif 000020
2005502954.tif 000021
2005502954.tif 000022
2005502954.tif 000023
2005502954.tif 000024
2005502954.tif 000025
2005502954.tif 000026
2005502954.tif 000027
2005502954.tif 000028
2005502954.tif 000029
2005502954.tif 000030
2005502954.tif 000031
2005502954.tif 000032
2005502954.tif 000033
2005502954.tif 000034
2005502954.tif 000035
2005502954.tif 000036
2005502954.tif 000037
2005502954.tif 000038
2005502954.tif 000039
2005502954.tif 000040
2005502954.tif 000041
2005502954.tif 000042
2005502954.tif 000043
2005502954.tif 000044
2005502954.tif 000045
2005502954.tif 000046
2005502954.tif 000047
2005502954.tif 000048
2005502954.tif 000049
2005502954.tif 000050
2005502954.tif 000051
2005502954.tif 000052
2005502954.tif 000053
2005502954.tif 000054
2005502954.tif 000055
2005502954.tif 000056
2005502954.tif 000057
2005502954.tif 000058
2005502954.tif 000059
2005502954.tif 000060
2005502954.tif 000061
2005502954.tif 000062
2005502954.tif 000063
2005502954.tif 000064
2005502954.tif 000065
2005502954.tif 000066
2005502954.tif 000067
2005502954.tif 000068
2005502954.tif 000069
2005502954.tif 000070
2005502954.tif 000071
2005502954.tif 000072
【国際公開パンフレット（コレクトバージョン）】
2005502954.tif 000073
2005502954.tif 000074
【国際調査報告】
2005502954.tif 000075
2005502954.tif 000076
2005502954.tif 000077
2005502954.tif 000078