(57)【特許請求の範囲】
【請求項１】
可動媒体ライブラリを管理するシステムであって、
少なくとも１つのロボティクス機構と、
命令を実行するプロセッサおよび不揮発性メモリを有するコントローラと、
を備え、前記不揮発性メモリが、少なくとも、
前記少なくとも１つのロボティクス機構を制御するコードと、
複数の可動媒体から任意の可動媒体を検索するために、ホストシステムから受信するコマンドに応答するコードと、を格納し、
前記応答するコードは、デバイスアクセスプロトコルに従って、通信媒体アドレスを用いたアドレス指定の前記コマンドを受信し、前記通信媒体アドレスに少なくとも１つのライブラリ区画を関連付けるように構成されている、システム。
【請求項２】
前記少なくとも１つのロボティクス機構は、複数の可動媒体から可動媒体を検索し、前記可動媒体を複数の媒体要素のうちの１つに配置するように動作可能である、請求項１記載のシステム。
【請求項３】
前記複数の通信媒体アドレスはファイバチャネルアドレスである、請求項１記載のシステム。
【請求項４】
前記不揮発性メモリは、ライブラリリソースを各ライブラリ区画に割り振るリソースマッピングテーブルにアクセスするコードをさらに含む、請求項１記載のシステム。
【請求項５】
前記不揮発性メモリは、デバイスアクセスプロトコルに従うデバイス識別クエリに応答して、仮想的な各ロボティクス機構周辺機器を識別するコードを更に含む、請求項１記載のシステム。
【請求項６】
可動媒体ライブラリを管理する方法であって、
前記可動媒体ライブラリのリソースを複数の区画に割り振るステップと、
前記複数の区画のうちの少なくとも１つの区画を、複数の通信媒体アドレスのそれぞれに割り振るステップと、
ロボティクスコントローラにおいて、前記通信媒体アドレスを用いたアドレス指定のデバイスアクセスコマンドをホストシステムから受信するステップと、
前記複数の通信媒体アドレスのうちの前記１つを利用して、前記複数のライブラリ区画のうちの１つを決定するステップと、
を含む、方法。
【請求項７】
前記複数の通信媒体アドレスは、ファイバチャネルアドレスである、請求項６記載の方法。
【請求項８】
前記決定するステップは、ライブラリリソースを各ライブラリ区画に割り振るリソースマッピングテーブルにアクセスするステップを含む、請求項６記載の方法。
【請求項９】
前記デバイスアクセスコマンドは、デバイス識別クエリであり、前記方法は、
前記複数の区画のうちの前記決定された区画に割り振られたリソースに従ってデバイス識別応答を生成するステップをさらに含む、請求項６記載の方法。
【請求項１０】
前記デバイスアクセスコマンドは、仮想的な可動媒体を検索するためのコマンドであり、前記方法は、前記決定された区画に従って前記仮想的な可動媒体に対応する物理的な可動媒体を決定するステップをさらに含む、請求項６記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は概して、大容量データストレージに関し、特にライブラリの分割を利用して可動媒体ライブラリを管理することに関する。
【０００２】
[関連出願の相互参照]
本出願は、２００１年１２月２８日付けで出願された「SYSTEM AND METHOD FOR INTERMEDIATING COMMUNICATION WITH A MOVEABLE MEDIA LIBRARY UTILIZING A PLURALITY OF PARTIONS」と題する同時係属中であり、共通の譲受人に譲渡された米国特許出願第１０／０３４，５８０号に関連する。
【０００３】
【従来の技術】
デジタル磁気テープは一般に、コンピュータシステムでの長期データ保存に使用される。磁気テープカートリッジの格納ビット当たりの低コスト性、長期保持能力および可搬性により、磁気テープは、保険会社、銀行組織、航空会社等の企業によって生成される大量データを格納する手段として選ばれている。
【０００４】
テープカートリッジは、自動化されたテープライブラリ周辺機器によって頻繁に利用される。テープライブラリは概して、多数のテープカートリッジを取り扱い、非常に大きな容量のデータを格納する。テープライブラリは、テープカートリッジを所定の位置すなわち媒体スロットに把持する。特定のテープカートリッジからのコンテンツが必要な場合、テープライブラリに通信可能に連結されるホストシステムが、テープライブラリのロボティクスサブシステムコントローラと通信する。ホストシステムは、多数の機構によってテープライブラリに通信可能に連結することができる。たとえば、ホストシステムは、ＳＣＳＩ（Small Computer System Interface）バスやファイバチャネルファブリックを介してテープライブラリに通信可能に連結することができる。ホストシステムは、ロボティクスサブシステムコントローラにコマンドを通信して、各位置すなわち媒体スロットから特定のテープカートリッジを検索することができる。これに応答して、ロボティクスサブシステムコントローラは、ロボティクス機構によって様々な機械的動作を行い、所望のテープカートリッジを検索し、所望のテープカートリッジをテープドライブに配置することができる。ホストシステムは通常、ロボティクスサブシステムコントローラへの通信パスから独立した通信パスを利用してテープドライブと通信することができる。ホストシステムは次に、テープドライブを介してテープカートリッジに読み書きすることができる。
【０００５】
さらに、ホストシステムとロボティクスサブシステムコントローラの間には他の通信が発生し得る。たとえば、ホストシステムは、ロボティクスサブシステムに関連するテープライブラリに含まれるテープカートリッジ、テープドライブ、およびロボティクス機構の数を決定するために、ロボティクスサブシステムコントローラに問い合わせることができる。このようにしてロボティクスサブシステムコントローラに問い合わせることにより、ホストシステムはテープライブラリを管理することができる。
【０００６】
テープライブラリは、相当量の長期データ保存能力の提供に有用であるが、いくつかの欠点を有する。たとえば、データ記憶容量が、いくつかのエンティティによる使用に割り振られることがある。したがって、テープライブラリに通信可能に連結される各ホストシステムまたはエンティティは、すべてのデータ記憶容量にアクセス可能であり得る。この問題に対処するために分割が利用されている。分割は、特定のテープライブラリリソース（たとえば、各種スロット、テープドライブ、ロボティクス機構）を離散した仮想デバイスに割り振ることに関わる。そして、仮想デバイスへのアクセスが、特定の用途に望ましいように制限される。
【０００７】
テープライブラリの分割に別の手法を利用することも可能である。第１に、分割適用のために、ホストシステム制限を利用してテープライブラリの部分部分へのアクセスを制限する。このようなホスト制限は、区画制限を行うためにホストシステム上の調停ソフトウェアプロセスによって実施される。しかし、この手法には問題がある。具体的には、この手法は、テープライブラリがストレージサービスプロバイダ環境において利用される場合、望ましくない。ストレージサービスプロバイダ環境では、テープライブラリおよびホストシステムが異なるエンティティ（たとえば、ストレージサービスプロバイダおよび顧客）に属する。ソフトウェア調停プロセスをホストシステムに配置することは、ストレージサービスの利用について顧客に対する負担を増大させるため、魅力的ではない。また、企業社会の環境は、新しいホストシステムソフトウェアについて比較的長い確認サイクルを課す。さらに、多くの顧客は、他の団体にソフトウェアをホストシステム上に配置させることを快く思わない。加えて、ソフトウェア調停プロセス手法は通常、既存のデータバックアップユーティリティと互換性がない、すなわちソフトウェア調停プロセス手法では、専用のデータバックアップアプリケーションを使用する必要がある。
【０００８】
Ｓｐｅｃｔｒａ  Ｌｏｇｉｃによって使用される第２の手法は、複数のブリッジデバイスを提供して、テープライブラリを複数の仮想デバイスに分割するというものである。各ブリッジデバイスは、分割を実施するためにＱＩＰ（Quad Interface Processor）を含む。ＱＩＰは、ホストシステムとライブラリの間の唯一のインタフェースとして機能するプロセッサベースのカードデバイスである。ソフトウェアインタフェースを介して各ＱＩＰを構成することにより、ＱＩＰは、１つのまたは複数のホストシステムからは複数の物理的なライブラリに見えるいくつかの仮想的なライブラリをエミュレートすることが可能である。各ＱＩＰは通常、２本のＳＣＳＩ（Small Computer System Interface）バスを含み、最大２つのテープドライブを各ＳＣＳＩバスに接続することができる。
【０００９】
【発明が解決しようとする課題】
このアーキテクチャは、いくらかホストシステムにとってトランスペアレントに分割を実施する機構を提供するが、問題を有する。具体的には、複数のプロセッサベースのカードが必要であるという点において、コストがかかると共にハードウェア集約的である。第２に、複数のハードウェアブリッジを使用すると、複数の多重障害点（multiple point of failure）がもたらされるため、データにアクセス不能になる確率が増大する。さらに、このハードウェア手法は、所与の区画へのさらなるリソースの追加を厳密に制御する。ブリッジハードウェアと区画へのさらなるリソースの追加との間には特定の構造的な関係がある。したがって、ハードウェア手法は、複数のより小さな区画の作成に適しておらず、より小さなテープライブラリへの分割に適用不可能である。
【００１０】
【課題を解決するための手段】
一実施形態において、本発明は、可動媒体ライブラリを管理するシステムを対象とする。本システムは、少なくとも１つのロボティクス機構と、コントローラと、を備えることができる。コントローラは、命令を実行するプロセッサと、少なくとも１つのロボティクス機構を制御するコード、および複数の可動媒体からある可動媒体を検索するために、ホストシステムから受信するコマンドに応答するコードであって、デバイスアクセスプロトコルに従って複数のデバイス識別子でアドレス指定されるコマンドを受信するように動作可能であり、また、複数のデバイス識別子の各デバイス識別子に少なくとも１つの各ライブラリ区画を関連付けるように動作可能であるコードを少なくとも格納する不揮発性メモリと、を備える。
【００１１】
【発明の実施の形態】
本発明は、テープライブラリなど可動媒体ライブラリのシステムリソースを分割するシステムおよび方法に関する。本発明の実施形態では、特定のシステムリソース（可動媒体、テープドライブ、ロボティクス機構、および／またはこれらと同様のもの）を区画にマッピングするシステムリソーステーブルを利用する。ロボティクスコントローラを利用して、図２に関してさらに詳細に説明する分割を実施する。ロボティクスコントローラは、ホストシステム単位で定義されたライブラリリソースのサブセットに対するアクセスを制限することによって分割方式を実施する。たとえば、ロボティクスコントローラは、選択された１つのまたは複数のホストシステムとだけ通信させるようにテープドライブを制御することができる。
【００１２】
さらに、ロボティクスコントローラは、複数の自己のインスタンスを１つのまたは複数のホストシステムに提供する。すなわち、ロボティクスコントローラは、その１つのまたは複数のホストシステムからは複数の仮想デバイスに見える。ロボティクスコントローラは、複数の自己のインスタンスを提供するために、複数の物理的なインタフェースおよび／または複数の論理的なインタフェースを利用することができる。たとえば、ファイバチャネルスイッチを利用して、複数のファイバチャネルＷＷＮ（World Wide Name）でアドレス指定されるコマンドをロボティクスコントローラにルーティングすることができ、これについては図３を参照して説明する。ロボティクスコントローラは、単一のみのデバイスであるが、複数のＷＷＮでアドレス指定されるコマンドに応答することによって複数のデバイスに見せることができる。ロボティクスコントローラは、たとえば、ＳＣＳＩ（Small Computer System Interface）論理ユニット（ＬＵＮ）を利用して複数の自己の論理的なバージョンを提供することができ、これについては図４を参照して説明する。したがって、ロボティクスコントローラは、複数の通信媒体アドレスまたは識別子でアドレス指定される１つのまたは複数のホストシステムから受信するコマンドに応答して、コードを実行することができる。複数の要求が同じ物理的なハードウェア要素（たとえば、ロボティクス機構）に対して行われる場合、先入れ先実行方式を用いて複数の要求を待ち行列に入れることができる。また、各通信媒体アドレスまたは識別子には、少なくとも１つの区画または仮想デバイスを関連付けることができる。
【００１３】
さらに、ロボティクスコントローラは、受信したコマンドに応答してコードを実行し、受信したコマンドを生成したホストシステムに応じて特定の通信媒体アドレスまたは識別子を利用する応答を生成することができる。ロボティクスコントローラは、発信アドレスまたは発信ポートにより、受信したコマンドを生成した特定のホストシステムを決定することが可能である。受信したコマンドに応答するコードは、テーブルにアクセスして、各ホストシステムに対応する通信媒体アドレスまたは識別子を得ることができる。
【００１４】
このようにしてリソースを分割することにより、可動媒体ライブラリの記憶容量の割り振りを、ほとんど支障なく達成することができる。可動媒体ライブラリの記憶容量は、独立した組織の間で共有することが可能である。別の組織のデータへのアクセスは、好ましくは、分割方式によって阻止される。さらに、好ましい実施形態によれば、１つのまたは複数のホストシステムに変更を行う必要がない。ライブラリ管理者は、特定のリソースを各区画に割り振ることによって可動媒体ライブラリを構成する必要があるだけである。さらに、ロボティクスコントローラを介して分割すると、コストのかかる複数のブリッジデバイスが必要なくなり、また区画のスケーラビリティを厳密に制限する必要がなくなる。さらに、各種区画へのライブラリリソースのこのような割り振りは、ストレージエリアネットワーク、直接接続されるストレージ、直接接続される共有ストレージ、およびネットワーク接続される共有ストレージ環境にとって極めて有利であることを理解されたい。
【００１５】
次に、本発明の実施形態を利用し得る特定の環境を示すために、図１を参照する。図１は、例示的なテープライブラリ１０１を備える例示的なシステム１００を示す。システム１００は、ストレージエリアネットワーク（ＳＡＮ）１１２上のデータストレージへのアクセスを促進するホストシステム１０９−１〜１０９−４を備える。ストレージエリアネットワーク１１２は、ＳＡＮファブリック１０７、ストレージデバイス１０８−１および１０８−２、ならびにテープライブラリ１０１を備える。ストレージデバイス１０８−１および１０８−２は、ディスクアレイ、ＪＢＯＤ（just a bunch of disks）、光媒体プレーヤ、および／またはこれらと同様のものを含む任意のタイプの適したストレージデバイスであることができる。例示的なシステム１００では、ホストシステム１０９−１〜１０９−４は、ストレージデバイス１０８−１および１０８−２からの情報を動的に格納・検索することができる。ホストシステム１０９−１〜１０９−４は、バックアップユーティリティアプリケーションを実行して、テープライブラリ１０１上のストレージデバイス１０８−１および１０８−２に格納されているデータをバックアップすることができる。代替として、ストレージデバイス１０８−１および１０８−２は、ホストシステム１０９−１〜１０９−４による介入なしでバックアップ動作を実行し得る。
【００１６】
ＳＡＮファブリック１０７は、通信ファブリックを提供して、ストレージデバイス１０８−１および１０８−２、テープライブラリ１０１、ならびにホストシステム１０９−１〜１０９−４の間の通信を促進する。ＳＡＮファブリック１０７は通常、ファイバチャネルアーキテクチャを利用して実施される。ファイバチャネルは通常、通信パスの単純さから利用される。すなわち、ファイバチャネルは、シリアル通信方式を利用する。さらに、ファイバチャネルは、銅線および／または光ファイバケーブルを介して比較的高いレート（たとえば、１０６４Ｍｂｐｓ）でデータ通信する。銅線は概して、各種ストレージデバイス１０８がキャビネット内接続によりホストシステム１０９−１〜１０９−４から切り離される場合に利用される。光ケーブルは、デバイスからハブ（ＳＡＮファブリック１０７内のファイバチャネル相互接続ユニット）まで最大５００ｍまで、およびハブ間で最大１０ｋｍまでの分離距離をサポートすることができる。ファイバチャネルは、ポイントツーポイント、アービトレートループ（arbitrated loop）、およびスター型トポロジなどの各種通信トポロジをさらに利用する。ファイバチャネルはまた、ＳＣＳＩ（Small Computer System Interface）およびインターネットプロトコル（ＩＰ）プロトコルなどの各種通信プロトコルを包含またはサポートする。ファイバチャネルをサポートしないデバイスは、ブリッジデバイスを介してファイバチャネルファブリックに連結することができる。具体的には、多くの市販されているブリッジデバイス（Hewlett-Packard社のＳＵＲＥＳＴＯＲＥ  ＳＣＳＩ  ＢＲＩＤＧＥ  ＦＣ４／１など）により、ファイバチャネルファブリックを採用するＳＡＮにＳＣＳＩデバイスを配置することができる。通常、ＳＡＮファブリック１０７にはファイバチャネルが利用されるが、他の通信機構を利用することも可能である。たとえば、遠隔ミラーリング動作を行って遠隔場所にミッションクリティカルデータを冗長的に格納することが適切なことが多い。このような動作には、非同期転送モード（ＡＴＭ）ネットワーク要素または専用回線（Ｔ−１、ＯＣ−１２、および／またはこれらと同様のもの）を採用することができる。
【００１７】
通信ネットワーク１１０を介して、クライアント１１１−１〜１１１−Ｍがホストシステム１０９−１〜１０９−４と通信することができる。通信ネットワーク１１０は、ＡＴＭ、無線、および／または専用回線リンクなどあらゆる数の通信媒体を含み得る。クライアント１１１−１〜１１１−Ｍは、ホストシステム１０９−１〜１０９−４と通信することにより、ストレージエリアネットワーク１１２上に格納されているデータを得ることができる。たとえば、クライアント１１１−１〜１１１−Ｍは、ホストシステム１０９−１〜１０９−４を通してネットワークドライブにアクセスするように構成されるオペレーティングシステムを保有し得る。ホストシステム１０９−１〜１０９−４が実装するネットワークドライブは、ストレージデバイス１０８−１および１０８−２ならびにテープライブラリ１０１上の各種ファイルを管理することができる。
【００１８】
ホストシステム１０９−１〜１０９−４は、ロボティクスコントローラ１０５に問い合わせることにより、ストレージエリアネットワーク１１２におけるテープライブラリ１０１の存在を見つけることができる。周辺機器またはデバイスの発見は通常、デバイスアドレス範囲内の可能な各デバイスアドレスにクエリメッセージを送信することによって行われる。たとえば、ＳＣＳＩプロトコルでは、ＳＣＳＩ識別子（たとえば、バスアドレスおよび／または論理単位）にコマンドをアドレス指定することにより、クエリコマンドを周辺機器に発することができる。ＳＣＳＩ識別子に関連する周辺機器は、ＳＣＳＩプロトコルに従ってＬＵＮパス情報、ベンダー識別、製品識別、シリアルナンバーおよび製品バージョンなどの関連する識別情報を連絡することによって応答する。ホストシステム１０９−１〜１０９−４が、ロボティクスコントローラ１０５から独立してテープドライブ１０３−１〜１０３−４を発見し得ることを理解されたい。しかし、ロボティクスコントローラ１０５は、発見プロトコルに応答して、仮想ライブラリまたは区画に関連付けるようにテープドライブ１０３−１〜１０３−４を有利に指示することができる。たとえば、ロボティクスコントローラ１０５は、ホストシステム１０９−１〜１０９−４のうちの選択されたホストシステムとだけ通信させるようにテープドライブ１０３−１〜１０３−４を制御することができる。
【００１９】
ホストシステム１０９−１〜１０９−４は、ベンダー識別情報および製品識別情報を調べることによって、ロボティクスコントローラ１０５がテープライブラリ１０１についてのテープ動作を制御するデバイスであると決定した後、さらなるクエリコマンドを通信することができる。ホストシステム１０９−１〜１０９−４は、ロボティクスコントローラ１０５に問い合わせて、テープライブラリ１０１におけるテープカートリッジ１０２−１〜１０２−Ｎ、テープドライブ１０３−１〜１０３−４、ロボティクス機構１０４−１および１０４−２、および／またはこれらと同様のものの数を決定することができる。デバイス発見および続く問い合わせを通してデバイス情報を受信することにより、ホストシステム１０９−１〜１０９−４は、ロボティクスコントローラ１０５との通信を介してテープライブラリ１０１を制御することができる。
【００２０】
ホストシステム１０９−１〜１０９−４は、適切なコマンドをロボティクスコントローラ１０５に発して、媒体要素（たとえば、テープスロットまたはテープドライブ）から特定のテープカートリッジ１０２を得ることができる。これに応答して、ロボティクスコントローラ１０５は、ロボティクス機構１０４−１および１０４−２のうちの一方を利用することによって特定のテープカートリッジ１０２を検索することができる。特定のロボティクス機構１０４は、特定のテープカートリッジ１０２のテープ要素に物理的に並進することが可能である。ロボティクス機構１０４は、特定のテープカートリッジ１０２を把持することができる。ロボティクス機構１０４は次に、特定のテープカートリッジ１０２をテープドライブ１０３−１〜１０３−４のうちの１つに配置することができる。
【００２１】
インタフェースデバイス１０６により、テープドライブ１０３−１〜１０３−４およびロボティクスコントローラ１０５をＳＡＮファブリック１０７に通信可能に連結することができる。デバイスインタフェース１０６は、たとえば、ＳＣＳＩデバイスをＳＡＮファブリック１０７に接続できるようにするファイバチャネルデバイスであり得る。デバイスインタフェース１０６を実施して、複数のファイバチャネルＷＷＮをロボティクスコントローラ１０５にルーティングし、ロボティクスコントローラ１０５が複数の自己のインスタンスを提示できるようにし得る。デバイスインタフェース１０６は、ファイバチャネルデバイスとして実施される場合、各テープドライブ１０３−１〜１０３−４およびロボティクスコントローラ１０５をＳＡＮファブリック１０７に並列接続できるようにし得る。すなわち、デバイスは同じＳＣＳＩバスを共有する必要がない。ホストシステム１０９−１〜１０９−４は、ＳＡＮファブリック１０７に関連する通信パスを利用することによって、特定のテープカートリッジ１０２への／からのデータ転送を実行し得る。テープライブラリ１０１は、デバイスインタフェース１０６に直接連結されるテープドライブ１０３−１〜１０３−４を有するものとして図示されるが、本発明は、そのように制限されることはない。たとえば、データ転送は、データをテープドライブ１０３−１〜１０３−４にルーティングする前に、ロボティクスコントローラ１０５を通してデータを通信することによって発生し得る。
【００２２】
図１に示す構成のタイプは、いくつかの理由によりストレージエリアネットワークと呼ばれる。第１に、データストレージに関連するデータ転送または通信は、好ましくは、ホストシステム１０９−１〜１０９−４とクライアント１１１−１〜１１１−Ｍとの間の通信から切り離される。第２に、好ましくは、単一障害点（ＳＰＯＦ：single point of failure）がストレージエリアネットワーク１１２内にない。ＳＡＮファブリック１０７は、好ましくは、ハブ、スイッチ、ルータ、および／またはこれらと同様のものを介しての冗長な接続を提供する。さらに、複数のホストシステム（たとえば、１０９−１〜１０９−４）が利用されることが好ましい。
【００２３】
ストレージエリアネットワークが利用する構成は、極めて有利である。第１に、ストレージがホストシステム１０９−１〜１０９−４の背後に配置される。たとえば、テープライブラリ１０１とホストシステム１０９−１との間のデータ転送は、ホストシステム１０９−１〜１０９−４とクライアント１１１−１〜１１１−Ｍとの間のデータ転送と同じ通信ネットワークを介して行われない。格納されているデータに関連するデータ転送をホストシステム１０９−１〜１０９−４の背後に配置することにより、全体的なシステムパフォーマンスを有意に強化することができる。さらに、ストレージエリアネットワーク１１２の構成は、単一障害点がないため、障害の確率が大きく最小化されるという点において堅牢である。さらに、各デバイスをＳＡＮファブリック１０７に連結することにより、ほとんど支障なく多くの追加のデータストレージデバイス１０８またはテープライブラリ１０１をシステム１００に追加し得る。したがって有利なことに、ストレージエリアネットワーク１１２はスケーラブルである。ストレージエリアネットワーク１１２は任意のロケーションに配置することができる、すなわち記憶容量を利用する組織の構内に配置する必要がないことを理解されたい。さらに、ストレージエリアネットワーク１１２は、有利なことに、記憶容量を利用する組織とは別個のエンティティによって管理することが可能である。
【００２４】
ストレージエリアネットワーク１１２の利点により、他のストレージ方式と比較して、記憶容量のビット当たりのコストが大幅に低減することを理解されたい。しかし、ストレージエリアネットワーク１１２によって利用可能になる膨大な記憶容量は、多くの組織のストレージ要件を超過し得る。したがって、複数の組織が、データウェアハウジングを利用することによってストレージエリアネットワーク１１２の記憶容量を共有することができる。データウェアハウジングを利用することにより、各組織がデータストレージのコスト低減という恩恵を受けることが可能である。
【００２５】
しかし、データウェアハウジングは、いくつかの固有の問題を呈する。第１に、組織が別の組織に属するデータにアクセスしないよう保証することが重要である。たとえば、テープライブラリ１０１の特定のテープ１０２は、ミッションクリティカルなデータのバックアップを格納するために特定の組織に属し得る。データウェアハウジング方式では、ミッションクリティカルデータへのアクセスまたはダメージを防ぐために、他の組織がロボティクスコントローラ１０５にコマンドを発して、これらテープを検索することが不可能であるべきである。
【００２６】
本発明の実施形態によれば、ロボティクスコントローラ１０５は、データ保全性を提供する様式でデータウェアハウジングを促進するように適合される。第１のモードにおいて、ロボティクスコントローラ１０５は、普通のロボティクスコントローラ１０５と同じように動作する。第１のモードでは、ロボティクスコントローラ１０５は、適切なコマンドに従って任意のホストシステム１０９−１〜１０９−４に応答する。しかし、第２のモードでは、ロボティクスコントローラ１０５は、２つまたはそれよりも多くの異なる仮想デバイスとして動作するようにシステム管理者によって構成可能である。この第２のモードにおいて、ホストシステム１０９−１〜１０９−４は、テープライブラリ１０１に関連する複数のデバイスインスタンスを検出する。各デバイスインスタンスは、テープライブラリ１０１のシステムリソースのサブセットまたは一部に割り振られる。すなわち、テープライブラリリソースは、各種デバイスインスタンスの間で分割される。さらに、ホストシステム１０９−１〜１０９−４の各ホストシステムは、各種許可に従ってデバイスインスタンスのみにアクセスし得る。具体的には、デバイスインスタンスは、格納されているデータの保全性を保護するために、ホスト単位でアドレス指定することができる。
【００２７】
図２は、ロボティクスコントローラ１０５の例示的な実施を示す。ロボティクスコントローラ１０５はＣＰＵ２０１を備える。ＣＰＵ２０１には任意の適したプロセッサを利用し得る。ロボティクスコントローラ１０５は、機構インタフェース２０３を備え、ロボティクス機構１０４−１および１０４−２と通信すると共にこれを制御することができる。ロボティクスコントローラ１０５は、デバイスインタフェース１０６にも連結し得る（図１参照）。デバイスインタフェース１０６は、ロボティクスコントローラ１０５がホストシステム１０９−１〜１０９−４を含む他のシステムと通信できるようにする。
【００２８】
ロボティクスコントローラ１０５は、ファームウェア２０２も備えることができる。ファームウェア２０２は、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどを含むがこれらに制限されない不揮発性メモリ要素を利用して実施することができる。ファームウェア２０２は、本発明の実施形態によるロボティクスコントローラ１０５の動作を規定する実行可能命令２０２ａを保持することが可能である。上述したように、各種通信プロトコルが、通信媒体またはネットワークに連結されたデバイスの検出または発見を可能にする機構を提供する。通信プロトコルは、クエリメッセージまたはパケットに応答して、デバイスに所定のメッセージを戻させることができる。適切なデバイスアクセスプロトコル（たとえば、ＳＣＳＩ、ファイバチャネル、シンプルネットワーク管理プロトコル（ＳＮＭＰ）など）に準拠して、実行可能命令２０２ａは、ロボティクスコントローラ１０５を識別して、ホストシステム１０９−１〜１０９−４に適切なドライブコマンドを発行させるコードを含むことができる。同じ物理的なハードウェア要素（たとえば、ロボティクス機構）に関連する複数のドライブコマンドを受信する場合、先入れ先実行方式を用いて複数のコマンドを待ち行列に入れることが可能である。データまたはコマンドを待ち行列に入れることに対応するために、比較的大きな容量のバッファ（図示せず）を利用し得る。
【００２９】
さらに、実行可能命令２０２ａは、複数のデバイスアドレスまたは識別子に従ってこのような識別情報の発行に応答するコードを含むことができる。実行可能命令２０２ａは、インスタンスマッピングテーブル２０２ｃにアクセスするためのコードを含むことができる。インスタンスマッピングテーブル２０２ｃは、通信媒体アドレスまたは識別子を仮想デバイスに関連付けることが可能である。さらに、実行可能命令２０２ａは、通信媒体アドレスまたは識別子に従ってホストシステム１０９−１〜１０９−４から受信するクエリコマンドに応答するコードを含むことができる。たとえば、制限することなしに、コードは、３つの仮想デバイスを定義するために、３つの異なるファイバチャネルアドレスについての識別情報を発することができる。ロボティクスコントローラ１０５は、複数のデバイスアドレスまたは識別子にアドレス指定されたデバイス識別クエリに応答することにより、複数の自己のインスタンスをホストシステム１０９−１〜１０９−４に提供する。ロボティクスコントローラ１０５の複数のインスタンスを利用して、ホストシステム１０９−１〜１０９−４に対してトランスペアレントに仮想デバイスを実施する。
【００３０】
さらに、各仮想デバイスに複数の接続またはインタフェースを連結することができる。たとえば、制限することなしに、デバイスインタフェース１０６はファイバチャネルスイッチを含むことが可能である。代替として、デバイスインタフェース１０６は、ＳＡＮファブリック１０７のファイバチャネルスイッチに連結してもよい。ファイバチャネルスイッチを利用することにより、複数のファイバチャネルアドレスにルーティングされる通信データをロボティクスコントローラ１０５にルーティングすることができる。ロボティクスコントローラ１０５は、複数のアドレスを各仮想デバイスまたは区画に関連付けるように構成可能である。ロボティクスコントローラ１０５は、ファイバチャネルアドレスを仮想デバイスに関連付けることにより、各仮想デバイスをＳＡＮファブリック１０７に取り付けられる別個の物理的なデバイスであるように見せることができる。したがって、本発明の実施形態は、ホストシステム１０９−１〜１０９−４に対して分割をトランスペアレントにさせることができる。本発明がファイバチャネルスイッチの利用に制限されないことを理解されたい。他の通信機構に従って複数のインタフェースは仮想デバイスに関連付けることができる。たとえば、本発明の実施形態は、所望であれば、ＳＣＳＩ論理ユニット（ＬＵＮ）を各区画に関連付けることができる。
【００３１】
図３は、ホストシステム１０９−１〜１０９−４から見たファイバチャネルスイッチを利用するロボティクスコントローラ１０５の複数のインスタンスを示す。ロボティクスコントローラ１０５は実際には単一のデバイスであるが、ホストシステム１０９−１〜１０９−４は３つの別個のデバイスを「見る」。また、図４は、ロボティクスコントローラ１０５が論理インタフェース（たとえば、ＬＵＮ）を介して複数のインスタンスを提供する場合に、ホストシステム１０９−１〜１０９−４から見たロボティクスコントローラ１０５を示す。
【００３２】
図２に戻り、ファームウェア２０２は、分割方式を行うためにリソースマッピングテーブル２０２ｂを含むことができる。リソースマッピングテーブル２０２ｂは、テープライブラリ１０１のリソース（たとえば、ロボティクス機構１０４−１および１０４−２、テープドライブ１０３−１〜１０３−４、および／またはテープカートリッジ１０２−１〜１０２−Ｎ）を特定の仮想デバイスに割り振るために利用することができる。たとえば、リソースマッピングテーブル２０２ｂのｍｅｃｈａｎｉｃｓ＿１レコードにより、ロボティクス機構１０４−１をｖｉｒｔｕａｌ＿ｄｅｖｉｃｅ＿１に割り振ることができる。同様に、リソースマッピングテーブル２０２ｂのｔａｐｅｕｎｉｔ＿１レコードにより、テープドライブ１０３−１をｖｉｒｔｕａｌ＿ｄｅｖｉｃｅ＿１に割り振ることができる。リソースマッピングテーブル２０２ｂを、ファームウェア２０２に格納されるものとして説明したが、本発明はそのように制限されない。リソースマッピングテーブル２０２ｂは、ロボティクスコントローラ１０５がアクセス可能な任意のロケーションにある不揮発性メモリに格納することが可能である。リソースマッピングテーブル２０２ｂは、多数の技法を利用して構成することができる。たとえば、リソースマッピングテーブル２０２ｂは、ライブラリ管理者により、リモートシステムに配置される手動インタフェースまたはソフトウェアインタフェースからの入力を介して構成することができる。
【００３３】
特定のライブラリリソースを１つまたは複数の区画または仮想デバイスに割り振ることが可能であることを理解されたい。たとえば、ロボティクス機構１０４−１および１０４−２は、仮想デバイスによって共有されてもよい。共有ライブラリリソースへの複数の要求は、先入れ先実行方式を用いて待ち行列に入れることができる。
【００３４】
分割コードは、ホストシステム１０９−１〜１０９−４の１つが仮想デバイスに関連するシステムリソースを決定しようと試みる場合、リソースマッピング２０２ｂにアクセスすることができる。たとえば、ホストシステム１０９−１は、リソースがテープライブラリ１０１のｖｉｒｔｕａｌ＿ｄｅｖｉｃｅ＿１に関連することを、特定のＳＣＳＩ識別子、ファイバチャネルアドレス、ＳＮＭＰ識別子、またはｖｉｒｔｕａｌ＿ｄｅｖｉｃｅ＿１のようなものでアドレス指定される適切なコマンドを発することによって決定しようと試みることができる。ロボティクスコントローラ１０５は、分割コードを実行することにより、ホストシステム１０９−１がｖｉｒｔｕａｌ＿ｄｅｖｉｃｅ＿１へのアクセスを許可されているかどうかを調べることができる。アクセスの実行が許可されているかどうかの決定は、当分野において周知の普通のデバイスおよび／またはファイル許可によって実施することができる。この決定は、当分野において既知のようにＬＵＮマスキングを用いることで行うこともできる。ホストシステム１０９−１がアクセス許可されている場合、ロボティクスコントローラ１０５はリソースマッピングテーブル２０２ｂを調べることができる。ロボティクスコントローラ１０５は、ロボティクス機構１０４−１、テープドライブ１０３−１および１０３−２、ならびにテープカートリッジ１０２−１〜１０２−１０を、たとえばｖｉｒｔｕａｌ＿ｄｅｖｉｃｅ＿１に属するものとして識別する応答メッセージを構築することができる。
【００３５】
ホストシステム１０９−１は、ｖｉｒｔｕａｌ＿ｄｅｖｉｃｅ＿１のリソースに関する情報を得ると、テープカートリッジ１０２−１〜１０２−１０に格納されているデータにアクセスすることができる。ホストシステム１０９−１は、コマンドをロボティクスコントローラ１０５に発して、テープカートリッジ１０２−１を検索し、テープカートリッジをテープドライブ１０３−１に配置することができる。テープカートリッジ１０２−１がテープドライブ１０３−１に配置された後、ホストシステム１０９−１は、適切なコマンドをテープドライブ１０３−１に発して、テープカートリッジ１０２−１に格納されているファイルに関連するデータの転送を開始することが可能である。
【００３６】
同様に、分割コードは、ホストシステム１０９−１〜１０９−４の１つが、異なる仮想デバイスに関連するリソースを決定するよう試みる場合、リソースマッピングテーブル２０２ｂにアクセスすることができる。しかし、たとえばｖｉｒｔｕａｌ＿ｄｅｖｉｃｅ＿２に関連するテープカートリッジは、テープカートリッジ１０２−｛Ｎ−２０｝からテープカートリッジ１０２−Ｎであり得る。通常、テープカートリッジ１０２−１〜１０２−Ｎなどのテープ媒体は、バーコード化されるか、テープ媒体を識別するために“ワンド（wand）”ユニットで読み取られるカートリッジ内のチップで識別される。適切なワンドユニットは、ロボティクス機構１０４−１および１０４−２の媒体ピッカー要素に配置することができる。分割コードは、リソース識別クエリへの応答メッセージにおいて番号の付け直しを行い得る。この場合、分割コードは、仮想カートリッジ識別子１〜２０を識別するメッセージを戻す。次に、ロボティクスコントローラ１０５は、コマンドに応答してｖｉｒｔｕａｌ＿ｄｅｖｉｃｅ＿２の各スロットから各種カートリッジを検索する場合、仮想カートリッジ識別子１〜２０をテープカートリッジ１０２−｛Ｎ−２０｝からテープカートリッジ１０２−Ｎにマッピングする。このような番号の付け直しを行うことにより、仮想デバイスをトランスペアレントにすることができる。すなわち、仮想デバイスを完全に別個のデバイスに見せることができる。もちろん、他の任意の仮想デバイスのリソースの番号を同様に付け直すことができる。
【００３７】
分割コードは、ホストシステム１０９−１〜１０９−４がアクセス許可されている仮想デバイスに割り振られていないシステムリソースにホストシステム１０９−１〜１０９−４がアクセスすることを阻止することを理解されたい。具体的には、ホストシステム１０９−１〜１０９−４の１つが、アクセス許可を保有していない仮想デバイスに関連するシステムリソースを決定しようと試みる場合、ロボティクスコントローラ１０５は応答しないか、または否定応答する（すなわち、“そのようなデバイスはない”というメッセージ）ことができる。さらに、ロボティクスコントローラ１０５は、ホストシステム１０９−１〜１０９−４のうちの１つまたは複数の選択されたホストシステムとだけ通信するようにテープドライブ１０３−１〜１０３−４に命令することによって分割を実施することができる。したがって、ホストシステムは、別のホストシステムの仮想デバイスに属するライブラリリソースにアクセスするコマンドを発することが不可能である。
【００３８】
テープライブラリ１０１のすべてのリソース（たとえば、テープカートリッジ１０２−１〜１０２−Ｎ、テープドライブ１０３−１〜１０３−４、ロボティクス機構１０４−１および１０４−２など）を任意特定の時点で割り振る必要がないことを理解されたい。具体的には、特定時において必要な数よりも多くのリソースを提供することが有利であり得る。組織が、元々構成された仮想デバイスのデータ記憶容量では足りなくなる場合、割り振られていないリソースのいくらかを含めるように仮想デバイスを再構成することができる。たとえば、テープカートリッジ１０２−１〜１０２−Ｎのさらなるテープカートリッジをｖｉｒｔｕａｌ＿ｄｅｖｉｃｅ＿１に割り振ることにより、ｖｉｒｔｕａｌ＿ｄｅｖｉｃｅ＿１の記憶容量を増大するようにリソースマッピングテーブル２０２ｂを変更し得る。テープライブラリ１０１を構成することにより、ほとんど支障なく各仮想デバイスのデータ記憶容量を拡張することができる。
【００３９】
ストレージエリアネットワーク１１２においてテープライブラリ１０１を利用し、かつロボティクスコントローラ１０５を動作させてライブラリリソースを分割することにより、記憶容量の割り振りを効率的に達成することができる。具体的には、システムリソースをホスト単位で割り振ることにより、テープライブラリの獲得コストを分担することができる。したがって、大きなテープライブラリに関連するデータ記憶容量のビット当たりのコストの低減は、適度の量の記憶容量のみを必要とするエンティティに恩恵をもたらし得る。さらに、システム１００の環境は、ホストシステム１０９−１〜１０９−４が異なるエンティティによって所有される場合に有利である。特に、ロボティクスコントローラ１０５は、各ホストシステム１０９−１〜１０９−４にトランスペアレントにリソースの望ましい分割を実施することができる。ホストシステム１０９−１〜１０９−４は、各自の仮想デバイスまたは区画にアクセスするために、いずれの専用ソフトウェアも保有する必要がない。さらに、ホストシステム１０９−１〜１０９−４に対して、各自に属さないリソースへのアクセスは許可されない。
【００４０】
図１および図２を、ストレージエリアネットワークでの動作に関して説明したが、本発明はこのように制限されないことを理解されたい。本発明の実施形態による可動媒体ライブラリは、例として、直接取り付けられたストレージ、直接取り付けられた共有ストレージ、およびネットワーク接続された共有ストレージ環境において利用することも可能である。可動媒体ライブラリはまた、各種区画が企業の各部署に割り振られる企業のイントラネットに利用することも可能である。実際、本発明の実施形態は、分割を利用してライブラリリソースを１つまたは複数のホストシステムに割り振ることのできる任意の大容量記憶装置環境において利用し得る。
【００４１】
さらに、本発明は、１つの物理的なインタフェースまたは仮想デバイスに厳密に１つの区画を関連させることに制限されないことを理解されたい。分割は、物理的なデバイスよりも多くの論理的な区画を可能にする能力も提供することができる。すなわち、１つのインタフェースが複数の区画をサポートすることができる。この例では、有利なことに、ホストシステムによるバックアップアプリケーションスケジューリングが、仮想デバイスアクセスにおける競合を低減するポリシーを実施することができる。
【００４２】
本発明の好ましい実施形態はテープライブラリを分割するが、本発明はそれに制限されない。可動媒体を備えるあらゆるライブラリ周辺機器が本発明による分割を利用することが可能である。たとえば、ＣＤ−ＲＯＭやＤＶＤライブラリ周辺機器が本発明による分割を採用することも可能である。
【００４３】
本発明の実施形態はいくつかの利点を有する。実施形態により、大きなあるいは小さなライブラリを分割して、記憶容量を多数のエンティティに割り振ることが可能になる。本発明の実施形態は、任意の数の離散したライブラリリソースを任意の特定の区画に望みに応じて割り振ることができるため、容易に拡張可能である。さらに、本発明の実施形態は、ホストシステムにトランスペアレントに分割を提供する。本発明の実施形態によりライブラリ区画にデータを格納するために、ホストシステムに追加のソフトウェアまたは他の変更が必要ない。本発明の実施形態はさらに、分割された各種デバイスとインタフェースするために別個のハードウェア処理カードが必要ないため、より高い信頼性およびコストの低減を提供する。また、本発明は、例として次のような実施形態を含む。
【００４４】
（１）  可動媒体ライブラリ（１００）を管理するシステムであって、
少なくとも１つのロボティクス機構（１０４−１）と、
命令を実行するプロセッサおよび不揮発性メモリを有するコントローラ（１０５）と、
を備え、前記不揮発性メモリが、少なくとも、
前記少なくとも１つのロボティクス機構を制御するコードと、
複数の可動媒体から可動媒体を検索するために、ホストシステムから受信するコマンドに応答するコード（２０２ａ）であって、デバイスアクセスプロトコルに従って複数のデバイス識別子でアドレス指定される前記コマンドを受信するように動作可能であり、前記複数のデバイス識別子の各デバイス識別子に少なくとも１つのライブラリ区画をそれぞれ関連付けるように動作可能である前記応答するコード（２０２ａ）と、
を格納する、システム。
【００４５】
（２）  前記少なくとも１つのロボティクス機構（１０４−１）は、複数の可動媒体から可動媒体を検索し、前記可動媒体を複数の媒体要素のうちの１つに配置するように動作可能である、（１）記載のシステム。
【００４６】
（３）  前記デバイスアクセスプロトコルはファイバチャネルであり、前記複数のデバイス識別子はファイバチャネルアドレスである、（１）記載のシステム。
【００４７】
（４）  前記不揮発性メモリは、ライブラリリソースを各ライブラリ区画に割り振るリソースマッピングテーブル（２０２ｂ）にアクセスするコードをさらに含む、（１）記載のシステム。
【００４８】
（５）  前記不揮発性メモリは、前記デバイスアクセスプロトコルに準拠する複数のデバイス識別子それぞれでアドレス指定されるデバイス識別クエリに応答して、仮想的な各ロボティクス機構周辺機器を識別するコードをさらに含む、（１）記載のシステム。
【００４９】
（６）  可動媒体ライブラリ（１００）を管理する方法であって、
前記可動媒体ライブラリのリソースを複数の区画のうちの区画に割り振るステップと、
前記複数の区画のうちの少なくとも１つの区画を、複数の通信媒体識別子の各通信媒体識別子に割り振るステップと、
前記複数の通信識別子のうちの１つでアドレス指定されるホストシステム（１０９−１）から、ロボティクスコントローラ（１０５）においてデバイスアクセスコマンドを受信するステップと、
前記複数の通信媒体識別子のうちの前記１つを利用して、前記複数の区画のうちの１つの区画を決定するステップと、
を含む、方法。
【００５０】
（７）  前記複数の通信媒体識別子は、ファイバチャネルアドレスである、（６）記載の方法。
【００５１】
（８）  前記決定するステップは、ライブラリリソースを各ライブラリ区画に割り振るリソースマッピングテーブル（２０２ｂ）にアクセスするステップを含む、（６）記載の方法。
【００５２】
（９）  前記デバイスアクセスコマンドは、デバイス識別クエリであり、前記方法は、
前記複数の区画のうちの前記決定された区画に割り振られたリソースに従ってデバイス識別応答を生成するステップをさらに含む、（６）記載の方法。
【００５３】
（１０）  前記デバイスアクセスコマンドは、仮想的な可動媒体を検索するためのコマンドであり、前記方法は、前記決定された区画に従って前記仮想的な可動媒体に対応する物理的な可動媒体を決定するステップをさらに含む、（６）記載の方法。
【図面の簡単な説明】
【図１】本発明の実施形態によるテープライブラリを含む例示的なストレージエリアネットワーク環境を示す。
【図２】本発明の実施形態による例示的なロボティクスコントローラを示す。
【図３】本発明の実施形態によるホストシステムから見たロボティクスコントローラの例示的な図を示す。
【図４】本発明の実施形態によるホストシステムから見たロボティクスコントローラの別の例示的な図を示す。
【図１】
0003895677.tif 000002
【図２】
0003895677.tif 000003
【図３】
0003895677.tif 000004
【図４】
0003895677.tif 000005