(57)【特許請求の範囲】
【請求項１】
１つまたは複数のホスト・コンピュータによって使用するための複数のコンピュータ・メモリ要素の自動ライブラリであって、要求側ホスト・コンピュータが、選択したメモリ要素を識別する論理アドレスを与えることによって、前記ライブラリ中の前記選択したメモリ要素にアクセスを要求することができるように、前記選択したメモリ要素についての前記論理アドレスに対応する前記ライブラリ中の物理アドレスを識別する制御装置と、
それぞれ前記メモリ要素のうちの対応する１つを受け取る、複数のストレージ・ビンと、
前記選択したメモリ要素を、前記要求側ホスト・コンピュータに結合する宛先コンセントと、
前記制御装置のコマンドによって動作可能であり、前記選択したメモリ要素を前記宛先コンセントに電気的に結合し、かつ前記宛先コンセントから電気的に分離するためのロボット式ピッカと、
前記複数のメモリ要素のうちの少なくとも一部を構成する、複数の繰り返し取外し可能なハード・ディスク・ドライブとを備えるライブラリ。
【請求項２】
前記宛先コンセントが、前記ライブラリのバックプレーンの一部である請求項１に記載のライブラリ。
【請求項３】
前記選択したメモリ要素がハード・ディスク・ドライブであり、かつ前記物理アドレスが、選択した前記ハード・ディスク・ドライブに対応する前記ストレージ・ビンのうちの１つを識別する場合に、前記ピッカが、前記選択したハード・ディスク・ドライブを、前記識別したストレージ・ビンから前記宛先コンセントに移動させる請求項１に記載のライブラリ。
【請求項４】
前記制御装置が、ファイバ・チャネル通信プロトコルに従って、前記宛先コンセントと、前記１つまたは複数のホスト・コンピュータとの間の伝送を実現する請求項１に記載のライブラリ。
【請求項５】
前記メモリ要素の一部として使用するための、１つまたは複数の繰り返し取外し可能な固体メモリ・ユニットをさらに備える請求項１に記載のライブラリ。
【請求項６】
前記制御装置によってキャッシュとして使用される固体メモリをさらに備える請求項１に記載のライブラリ。
【請求項７】
前記バックプレーンに永続的に接続される、少なくとも１つのハード・ディスク・ドライブをさらに備える請求項２に記載のライブラリ。
【請求項８】
１つまたは複数のホスト・コンピュータによって使用するための、ハード・ディスク・ドライブを備えるメモリ要素のライブラリにおいて、要求側ホスト・コンピュータに前記ライブラリ中の選択されたメモリ要素へのアクセスを与える方法であって、
前記要求側ホスト・コンピュータから前記選択したハード・ディスク・ドライブを識別する論理アドレスを受信し、前記選択したハード・ディスク・ドライブについての前記論理アドレスに対応する、前記ライブラリ中の物理アドレスによって、前記選択したハード・ディスク・ドライブを識別するステップと、
前記識別したハード・ディスク・ドライブをロボット式ピッカによって前記要求側ホスト・コンピュータへの結合を与える宛先コンセントに電気的に結するステップとを有する方法。
【請求項９】
前記ライブラリは、それぞれ前記ハード・ディスク・ドライブのうちの対応する１つを受け取るように適合された、複数のストレージ・ビンを有し、前記物理アドレスが、前記選択したハード・ディスク・ドライブが前記物理アドレスに対応する前記ストレージ・ビン中にあるかどうかを識別する請求項８に記載の方法。
【請求項１０】
前記選択したハード・ディスク・ドライブが前記ストレージ・ビンのうちの前記対応する１つに配置されている場合に、前記ストレージ・ビンまで並進し、前記ハード・ディスク・ドライブと接触するように前記ピッカに命令するステップをさらに含む請求項９に記載の方法。
【請求項１１】
請求項９のステップの後に、前記選択したハード・ディスク・ドライブを前記ストレージ・ビンから取り出すように前記ピッカに命令するステップをさらに含む請求項１０に記載の方法。
【請求項１２】
請求項１０のステップの後に、前記選択したハード・ディスク・ドライブを前記宛先コンセントに電気的に結合する前記ステップより前に、前記ストレージ・ビンから前記宛先コンセントまで並進するように前記ピッカに命令するステップをさらに含む請求項１１に記載の方法。
【請求項１３】
ファイバ・チャネル通信プロトコルに従って、前記宛先コンセントと、前記１つまたは複数のホスト・コンピュータとの間でデータを伝送するステップをさらに含む請求項８に記載の方法。
【請求項１４】
前記ライブラリは固体メモリを有し、前記要求側ホスト・コンピュータから書込みデータ・コマンドを受け取るステップと、前記ハード・ディスク・ドライブを前記宛先コンセントに電気的に結合する前記ステップの前に、書き込むべき前記データを一時的に格納するために前記固体メモリを利用するステップとをさらに含む請求項８に記載の方法。
【請求項１５】
前記メモリ要素が固体メモリをさらに備え、前記固体メモリを仮想ハード・ディスク・ドライブとして利用するステップをさらに含む請求項８に記載の方法。
【請求項１６】
前記ピッカによって、前記固体メモリを前記宛先コンセントに取外し可能に結合するステップをさらに含む請求項１５に記載の方法。
【請求項１７】
１つまたは複数のホスト・コンピュータによって使用するための、複数のメモリ要素のライブラリであって、前記メモリ要素が、ハード・ディスク・ドライブと、繰り返し取外し可能な固体メモリとを備えるライブラリにおいて、要求側ホスト・コンピュータに、前記ライブラリ中の前記メモリ要素のうちの１つへのアクセスを与える方法であって、
前記要求側ホスト・コンピュータから前記選択したハード・ディスク・ドライブを識別する論理アドレスを受信し、前記要求したハード・ディスク・ドライブについての前記論理アドレスに対応する、固体メモリについての物理アドレスによって、前記固体メモリを識別するステップと、
前記識別した固体メモリをロボット式ピッカによって前記要求側ホスト・コンピュータへの結合を与える宛先コンセントに電気的に結合するステップとを含む方法。
【請求項１８】
前記ライブラリは、それぞれ前記メモリ要素のうちの対応する１つを受け取るように適合された、複数のストレージ・ビンを有し、前記物理アドレスが、前記選択した固体メモリが前記物理アドレスに対応する前記ストレージ・ビン中にあるかどうかを識別し、前記ストレージ・ビン中にない場合に、前記ピッカが前記選択した固体メモリを所有しているかどうかを識別し、前記ピッカが所有していない場合に、前記選択した固体メモリが前記宛先コンセントに既に電気的に結合しているかどうかを識別する請求項１７に記載の方法。
【請求項１９】
ハード・ディスク・ドライブのライブラリ中のディスク・ドライブにアクセスするための方法であって、
（ａ）前記ライブラリが大容量記憶装置の所定の選択した形態であることをホスト・コンピュータに対して表すステップであって、大容量記憶装置の前記選択した形態が、前記ホスト・コンピュータとのハンドシェーク・プロトコルを定義するステップと、
（ｂ）前記ホスト・コンピュータからコマンドを受け取り、前記コマンドが関係するハード・ディスク・ドライブについての論理アドレスを受け取るステップと、
（ｃ）前記論理アドレスを前記ライブラリ内の物理アドレスに関連付ける所定の索引を調べるステップと、
（ｄ）前記論理アドレスを前記物理アドレスに変換するステップと、
（ｅ）前記物理アドレスに対応する前記ハード・ディスク・ドライブの位置を突き止めるステップとを含み、
（ｆ）前記ハード・ディスク・ドライブがストレージ・ビン中にある場合に、前記ストレージ・ビンから前記ハード・ディスク・ドライブを取り出すステップと、前記ハード・ディスク・ドライブを前記ホスト・コンピュータに結合するために、前記ハード・ディスク・ドライブを宛先コンセントまで並進させるステップと、前記ハード・ディスク・ドライブと前記宛先コンセントとを電気的に相互接続するステップと、前記コマンドを実行するステップとを含み、
（ｇ）前記ハンドシェーク・プロトコルに従って前記ホスト・コンピュータとハンドシェークすることによって前記コマンドを実施するステップを含み、それによってステップ（ｃ）〜（ｆ）が前記ホスト・コンピュータに対して透過的となる方法。
【請求項２０】
前記コマンドがデータを書き込むべき場合に、ステップ（ｆ）の前に、前記データをキャッシュ・メモリに書き込むステップをさらに含む請求項１９に記載の方法。
【請求項２１】
前記コマンドがデータを読み取るべき場合に、ステップ（ｆ）の前に、前記データを求めて前記キャッシュ・メモリを調べるステップをさらに含む請求項１９に記載の方法。
【請求項２２】
前記コマンドがデータを書き込むべき場合に、少なくとも２つのハード・ディスク・ドライブにわたって分散させるために前記データを分解するステップをさらに含む請求項１９に記載の方法。
【請求項２３】
前記少なくとも２つのハード・ディスク・ドライブがＲＡＩＤとして動作する請求項２２に記載の方法。
【請求項２４】
前記コマンドがデータを読み取るべき場合に、少なくとも２つのハード・ディスク・ドライブから前記データを集めることをさらに含む請求項１９に記載の方法。
【請求項２５】
前記少なくとも２つのハード・ディスク・ドライブがＲＡＩＤとして動作する請求項２４に記載の方法。
【請求項２６】
ライブラリ制御装置を含むハード・ディスク・ドライブのライブラリ内で使用するためのコンピュータ・プログラムであって、
（ａ）前記ライブラリが大容量記憶装置の所定の選択した形態であることをホスト・コンピュータに対して表すステップであって、大容量記憶装置の前記選択した形態が、前記ホスト・コンピュータとのハンドシェーク・プロトコルを定義するステップと、
（ｂ）前記ホスト・コンピュータからＩ／Ｏコマンドを受け取り、前記コマンドが関係するハード・ディスク・ドライブについての論理アドレスを受け取るステップと、
（ｃ）前記論理アドレスを前記ライブラリ内の物理アドレスに関連付ける、所定の索引を調べるステップと、
（ｄ）前記論理アドレスを前記物理アドレスに変換するステップと、
（ｅ）前記物理アドレスに対応する前記ハード・ディスク・ドライブの位置を突き止めるステップとを含み、
（ｆ）前記ハード・ディスク・ドライブがストレージ・ビン中にある場合に、前記ストレージ・ビンから前記ハード・ディスク・ドライブを取り出すステップと、前記ハード・ディスク・ドライブを前記ホスト・コンピュータに結合するために、前記ハード・ディスク・ドライブを宛先コンセントまで並進させるステップと、前記ハード・ディスク・ドライブと前記宛先コンセントとを電気的に相互接続するステップと、前記コマンドを実行するステップとを含み、
（ｇ）前記ハンドシェーク・プロトコルに従って前記ホスト・コンピュータとハンドシェークすることによって前記コマンドを実施するステップを含むステップを前記制御装置に実行させるコンピュータ・プログラム。
【請求項２７】
前記コマンドがデータを書き込むべき場合に、前記コンピュータ命令のプログラムが、さらに、ステップ（ｆ）の前に、前記ライブラリ制御装置に、前記データをキャッシュ・メモリに書き込ませることができる請求項２６に記載のコンピュータ・プログラム。
【請求項２８】
前記コマンドがデータを読み取るべき場合に、前記コンピュータ命令のプログラムが、さらに、ステップ（ｆ）の前に、前記ライブラリ制御装置に、前記データを求めて前記キャッシュ・メモリを調べさせることができる請求項２６に記載のコンピュータ・プログラム。
【請求項２９】
前記コマンドがデータを書き込むべき場合に、前記コンピュータ命令のプログラムが、さらに、前記ライブラリ制御装置に、少なくとも２つのハード・ディスク・ドライブにわたって分散させるために前記データを分解させることができる請求項２６に記載のコンピュータ・プログラム。
【請求項３０】
前記コンピュータ命令のプログラムが、前記ライブラリ制御装置に、前記少なくとも２つのハード・ディスク・ドライブをＲＡＩＤとして動作させることができる請求項２９に記載のコンピュータ・プログラム。
【請求項３１】
前記コマンドがデータを読み取るべき場合に、前記コンピュータ命令のプログラムが、前記ライブラリ制御装置に、少なくとも２つのハード・ディスク・ドライブから前記データを集めさせることができる請求項２６に記載のコンピュータ・プログラム。
【請求項３２】
前記コンピュータ命令のプログラムが、前記ライブラリ制御装置に、前記少なくとも２つのハード・ディスク・ドライブをＲＡＩＤとして動作させることができる請求項２６に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メインフレームまたは他のホスト・コンピュータ用の大容量記憶装置として使用するためなどの、ハード・ディスク・ドライブのライブラリに関する。より詳細には、本発明は、他の形態の大容量記憶装置をエミュレートするためのインターフェースを有するハード・ディスク・ドライブのライブラリであって、それによってライブラリ中の複数のハード・ディスク・ドライブの動作および制御が、ホスト・コンピュータに対して透過的となるハード・ディスク・ドライブのライブラリに関する。
【０００２】
【従来の技術】
大規模コンピューティング装置は、非常に大量のデータを比較的低コストで記憶するための方策の一部として、しばしば光記憶媒体またはテープ記憶媒体を利用する。この方策は、性能および信頼性をさらに向上するための冗長構成も提供することができる。光記憶媒体またはテープ記憶媒体は、一般に、当技術分野でライブラリとして知られる複数の棚を有する空間中に格納される。光ディスクまたはテープカセットなどの個々の記憶装置は、ライブラリ中の専用シェルフ上に格納され、または専用ビン（bin）中に格納される。このようなライブラリが当初提供されたとき、人間の操作者は、特定のシェルフまたはビンから記憶装置を取り出し、ホスト・コンピュータに電気的に結合するドライブ機構中に記憶装置を取り付け、ホスト・コンピュータが選択した記憶装置に読み書きできるようにするようにと、ホスト・コンピュータから示されていた。
【０００３】
ライブラリの改良によって、人間の操作者はロボット式ピック機構に置き換えられた。このピック機構、すなわち「ピッカ」は、メモリ記憶媒体をつかみ、その媒体をライブラリのスペース内で移動し、その媒体を、その元の位置と宛先の位置との間で搬送するように適合されている。このような光ディスク媒体用のピッカは、例えば米国特許第５３７７１２１号に記載されている。
【０００４】
従来のライブラリの使用においては、ライブラリにいくつか問題がある。具体的には、光媒体は読取りおよび書込みが比較的遅く、テープ媒体はランダム・アクセスが比較的遅いことである。さらに、ライブラリ資源にアクセスするホスト・コンピュータに対してライブラリの内部動作を透過的にするようなライブラリとの通信を提供する必要がある。このことにより、ホスト・コンピュータが通常用いる、他のある形態の大容量記憶装置をライブラリがエミュレートできる能力がさらに必要となる可能性がある。
【０００５】
【発明が解決しようとする課題】
したがって、ライブラリ中の記憶媒体を読み書きするために必要な時間の低減を実現し、データを要求する１つまたは複数のホスト・コンピュータに対する透過的動作を実現し、また、選択した記憶装置の特性のエミュレートを実現する、透過的エミュレーティング・インターフェースを有するハード・ディスク・ドライブのライブラリが求められている。
【０００６】
【課題を解決するための手段】
本発明により、複数のハード・ディスク・ドライブのうちの１つまたは複数を、１つまたは複数のホスト・コンピュータにライブラリを使用して結合するための、透過的エミュレーティング・インターフェースを有するハード・ディスク・ドライブのライブラリが開示される。ハード・ディスク・ドライブは、ライブラリ中の関連する格納位置にシェルビングされる。ライブラリ制御装置は、要求側ホスト・コンピュータにとって既知の、要求されたハード・ディスク・ドライブの論理アドレスを、ライブラリ内の物理アドレスまたは位置に変換する。ピッカは、ライブラリのバックプレーンの一部とすることができる宛先コンセントに、要求されたディスク・ドライブを装着することが好ましく、制御装置は、ハード・ディスク・ドライブにアクセスする。ライブラリ動作は、ホスト・コンピュータに対して透過的であり、ライブラリは選択されたタイプの記憶装置をエミュレートする。
【０００７】
したがって、本発明の主な目的は、新規な、改良型の記憶媒体の自動ライブラリを提供することである。
【０００８】
本発明の別の目的は、ライブラリ中の記憶媒体を読み書きするために必要な時間の低減を実現する、ハード・ディスク・ドライブのライブラリを提供することである。
【０００９】
本発明のさらに別の目的は、データを要求する１つまたは複数のホスト・コンピュータに対して透過的動作を実現する、透過的エミュレーティング・インターフェースを有するハード・ディスク・ドライブのライブラリを提供することである。
【００１０】
本発明のさらに別の目的は、選択した記憶装置の特性のエミュレートを実現する、透過的エミュレーティング・インターフェースを有するハード・ディスク・ドライブのライブラリを提供することである。
【００１１】
本発明の上記の目的、特徴、および利点は、本発明の以下の詳細な説明を図面と共に考慮するときにより容易に理解されよう。
【００１２】
【発明の実施の形態】
図１を参照すると、本発明による、ハード・ディスク・ドライブ１１のライブラリ１０の一部が示されている。このライブラリは、同数またはそれ未満の数のハード・ディスク・ドライブ・ユニットをシェルビングし、収容し、または格納するための、いくつかの格納位置（以下「ビン（bin）」と呼ぶ）１２を含む。ハード・ディスク・ドライブ１１は、その中に取り付けられた磁気ハード・ディスク媒体を有し、それによってハード・ディスク・ドライブは、完全に作動するコンピュータ・メモリ要素となる。ハード・ディスク・ドライブは、ハード・ディスク媒体上のデータを読み取り、またはハード・ディスク媒体にデータを書き込むために、電力と、ホスト・コンピュータへの入出力（以下「Ｉ／Ｏ」と呼ぶ）接続だけを必要とする。
【００１３】
ライブラリは、ライブラリ資源に指示し、１つまたは複数のホスト・コンピュータ１３と通信するライブラリ制御装置１８を含む。ライブラリ制御装置は、以下でより完全に説明するようなプログラム・コードを実行するためのコンピュータを含む。このコンピュータは汎用コンピュータでよい。ライブラリは、制御装置のコマンド下にあるロボット式ピッカ１６をさらに含む。ピッカ１６は、並進機構２１によってライブラリのボリューム内で並進する。並進機構２１は、一般に、３つのデカルト軸のそれぞれに沿って独立にピッカを並進させるために親ねじ２２の配置を利用する。ｘ−ｚ平面中の並進により、ピッカが、ライブラリ中の選択したどのストレージ・ビン１２にも達し、その宛先コンセントに達することが可能となる。ｙ方向の並進により、ディスク・ドライブ・ユニットをストレージ・ビンから引き抜き、またはストレージ・ビン中にディスク・ドライブ・ユニットをシェルビングするために、ピッカがストレージ・ビン１２に出入りすることが可能となる。
【００１４】
図２を少し参照すると、ピッカ１６はグリッピング要素２４を含み、グリッピング要素２４は、好ましい実施形態では、ディスク・ドライブ中の相補的機構と係合するように適切に適合された端部エフェクタ２８ａおよび２８ｂをそれぞれ有する２つのアーム２６ａおよび２６ｂを備える。アーム２６は、ソレノイド３０の動作によって相互に近づき、または遠ざかるように動くように適合することができる。あるいは、ピッカおよびグリッピング要素は、当業者に容易に明らかとなる方式で、より汎用のプログラマブル・ロボット式装置、または他の専用機器で実装することもできる。
【００１５】
図１に戻ると、制御装置により、ハード・ディスク・ドライブと、１つまたは複数のホスト・コンピュータ１３の間で宛先コンセント１７を介して通信が確立されるが、宛先コンセント１７は、一般に必ずしもライブラリのバックプレーンの一部ではない。
【００１６】
宛先コンセント１７は、ディスク・ドライブのそれぞれの相補的電力入力コネクタと対合するように適合された、１つまたは複数の電力出力コネクタ３２と、ディスク・ドライブ上の相補的Ｉ／Ｏコネクタと対合するように適合された、１つまたは複数のＩ／Ｏコネクタ３４とを含む。ハード・ディスク・ドライブは、ライブラリの方法体系と一致して、これらのコネクタの使用中に繰返し取外し可能である。ライブラリの方法体系は、限定はしないが、ピッカ１６を使用して、選択したディスク・ドライブおよび宛先コンセントを電気的に結合し、または分離し、ホスト・コンピュータ１３の必要を処理することを含む。
【００１７】
本願の主題である、本発明の基本的な実施形態では、ピッカは、ライブラリ中のその現在位置から、選択したディスク・ドライブ・ユニットに対応するストレージ・ビンに並進し、ディスク・ドライブをつかみ、ストレージ・ビンからディスク・ドライブを引き抜き、宛先コンセントに並進し、ディスク・ドライブと宛先コンセントを電気的に相互接続することによってこのことを行う。
【００１８】
ライブラリ１０中にシェルビングされたディスク・ドライブは、ホスト・コンピュータにとって既知の論理アドレスと、ライブラリ中のディスク・ドライブの現在の物理位置を識別する制御装置にとって既知の物理アドレスとを有する。ホスト・コンピュータがディスク・ドライブの物理アドレスを知る必要がなく、ライブラリを専用サーバとして見ることができることは、ライブラリの方策の利点であり、要求した論理アドレスを有するディスク・ドライブの位置を突き止め、それを得て、装着するために必要なコマンドおよびライブラリ内の動きが、ホスト・コンピュータに対して透過的となる。
【００１９】
各ハード・ディスク・ドライブは、一般に固有の論理アドレスを有するが、本発明の原理から逸脱することなく、他の論理アドレス指定方式を利用することもできる。例えば、ディスク・ドライブは、ライブラリを区分するために論理ブロック・アドレスとして当技術分野で周知のアドレスを使用して、またはＦＣＰ  ＳＣＳＩ（ファイバ・チャネル小型コンピュータ・システム・インターフェース）の論理装置アドレス指定機能を使用して、１つのアドレスによってホスト・コンピュータで識別することができる。
【００２０】
ライブラリ動作は、ハード・ディスク・ドライブ（または他の取外し可能メモリ装置）の、ライブラリへの従来の物理的挿入を想定する。一般に人間の操作者によってハード・ディスク・ドライブがそれを介してピッカに渡されるライブラリ中への物理的開口として、メール・スロット２３（図７）が設けられる。
【００２１】
次に図３を参照すると、本発明による、透過的エミュレーティング・インターフェースを含むライブラリ１０についてのＩ／Ｏソート・プロセス３００が示されている。Ｉ／Ｏソート・プロセスは、「初期プログラム・ロード」ステップ３０２で開始し、ステップ３０２では、以下で説明するステップを実施するためにライブラリ制御装置１８をブートする。ステップ３０２に関するプログラム・コードは、一般にＥＰＲＯＭ（消去可能プログラマブル読取り専用メモリ）、高密度フロッピー（Ｒ）・ディスク・ドライブ、ＣＤ−ＲＯＭディスク・ドライブなどの中に記憶される。
【００２２】
Ｉ／Ｏソート・プロセス３００のステップ３０４では、制御装置が、ライブラリ中のディスク・ドライブの論理アドレスに対応する、同じドライブの物理アドレスのマップまたは索引である「構成テーブル」を構築する。ドライブは、その論理アドレスによってホスト・コンピュータに認識される。
【００２３】
ステップ３０４の一部として、ピッカ１６は、メール・スロットを通じて受け取ったディスク・ドライブ１１を識別し、シェルビングするように、ライブラリ制御装置によって指令を受ける。ディスク・ドライブは、ラベル上に、またはラベルに取り付けられたＥＰＲＯＭ中に符号化することができるような、ピッカでスキャンされ、または読み取られる、外部アクセス可能な識別マークを含むことが好ましい。あるいは、制御装置は、ディスク・ドライブの電源を投入し、ディスク自体の上に符号化された識別情報を読み取るようにピッカに指令することもできる。いずれにしても、本発明により、制御装置は、ディスク・ドライブの論理アドレスを突き止め、ドライブをシェルビングした結果として構成テーブルを生成する。容易に理解することができるように、複数のホストがライブラリに接続されている場合には、複数の構成テーブルが存在する可能性がある。
【００２４】
構成テーブルが構築されると、制御装置１８は、ホスト要求を、指定された論理アドレスから実際の物理アドレスに変換し、宛先コンセント１７の適切なコネクタにディスク・ドライブを位置付け、装着するようにピッカに指令することが可能となる。ディスク・ドライブは、当初それが格納されていたストレージ・ビン、すなわち当初それを取り出したストレージ・ビンとは異なるストレージ・ビン１２に再シェルビングされる可能性があり、かつディスク・ドライブは、現在シェルビングされておらず、既に宛先コンセントに装着されているか、または現在ピッカが所有している可能性があるので、ステップ３０６では、構成テーブルを制御装置によって経時的に更新する。
【００２５】
Ｉ／Ｏソート・プロセス３００は、ステップ３０８に進み、そこで、ライブラリは、ホスト・コンピュータに、ライブラリが何の装置をエミュレートしているかを知らせる。例えば、ライブラリは、ライブラリが指定の容量のＳＣＳＩディスク・ドライブであることをホストに知らせることができる。指定の容量はどんなサイズでもよい。ライブラリがエミュレートする、装置または選択した形態の大容量記憶装置は、ホスト・コンピュータと通信するために、ライブラリ制御装置がエミュレートするハンドシェーク・プロトコルを確立し、それによってライブラリがその装置、または選択した形態の大容量記憶装置であるかのようにホスト・コンピュータがライブラリ制御装置と通信する。
【００２６】
ステップ３０９では、制御装置１８は、ホスト・コンピュータのうちの１つからのコマンドを待機する。コマンドは、一般に論理アドレスを伴うことになる。したがって、ステップ３１０では、ライブラリ制御装置は、ステップ３０６で更新された構成テーブルを調べることにより、ホストによって指定された論理アドレスを、対応するライブラリ中の物理アドレスにマッピングする。ステップ３１２では、制御装置は、コマンドがＩ／Ｏコマンドであるかどうかを判定する。コマンドがＩ／Ｏコマンドではない場合、エミュレートする装置がそのコマンドに応答するのと同様にライブラリがコマンドに応答するように、ライブラリを適合させる。コマンドがＩ／Ｏコマンドである場合、制御装置は、書込みコマンドに応答するための書込みプロセス４００、または読取りコマンドに応答するための読取りプロセス５００に分岐する。
【００２７】
図４を参照すると、本発明による透過的エミュレーティング・インターフェースを有するライブラリ１０についての好ましい書込みプロセス４００が示されている。このプロセスは書込みコマンド４０２の受信で開始する。ステップ４０４では、ライブラリ制御装置はホスト・コンピュータに応答して、ライブラリ制御装置がデータを受け取るように作動可能であること、およびＩ／Ｏソート・プロセス３００のステップ３１０で先に識別した、データを書き込むべき物理アドレスを知らせる。ステップ４０６で、制御装置がデータを受け取ったとき、好ましくは、制御装置は、固体キャッシュ・メモリ３８（図７）にデータを即時に転送する。固体キャッシュ・メモリ３８は、ライブラリ中のハード・ディスク・ドライブよりもずっと高速にアクセスすることができ、それによって、データがキャッシュからハード・ディスク・ドライブに移動する前に、ホスト・コンピュータをライブラリから切断することができる。このキャッシュは、ライブラリへの電力が失われた場合にキャッシュがデータを保持するようにバッテリ・バックアップすることができ、またはＮＶＲＡＭ（不揮発性ランダム・アクセス・メモリ）とすることができる。いずれにしても、ステップ４０８では、制御装置は、データを受け取ったことをホストに知らせる。
【００２８】
ステップ４１０では、制御装置は、要求されたハード・ディスク・ドライブが既に装着されているかどうかを判定する。装着されていない場合、制御装置は、ハード・ディスク・ドライブを宛先コンセントに装着するための空きスロット６２（図１）があるかどうかを判定する。空きスロットがある場合、要求されたハード・ディスク・ドライブは、その空きスロット中に装着される。空きスロットがない場合、好ましくは、最も以前に装着されたハード・ディスク・ドライブ、または最も使用されていないハード・ディスク・ドライブを、宛先コンセント１７から取り外すべきものとして選択して、要求されたハード・ディスク・ドライブを装着するためにこの空きスロットを供給する。
【００２９】
好ましい書込みプロセス４００の任意選択ステップ４１２では、データを、ＲＡＩＤ（新磁気ディスク制御機構）または他の形態の分散記憶装置にわたって分散させるために分解する。分散記憶装置を使用すべき場合、前述のステップ４１０は、それに応じて修正される。次に、ステップ４１４では、ピッカがハード・ディスク・ドライブを装着したかどうかを制御装置が判定する。ドライブのすべてを宛先コンセント１７に装着した後、制御装置は、物理アドレスを更新し、ディスク・ドライブが装着されている宛先コンセント中のスロットを示すために、別のマッピングを実行する（ステップ４１６）。
【００３０】
ステップ４１８では、ハード・ディスク・ドライブが装着された状態で、制御装置が、動作速度までハード・ディスク・ドライブを回転させ、データを書き込む。このプロセスは分岐して、Ｉ／Ｏソート・プロセス３００のステップ３１０に戻る。
【００３１】
図５を参照すると、本発明による透過的エミュレーティング・インターフェースを有するライブラリ１０についての好ましい読取りプロセス５００が示されている。このプロセスは、読取りコマンド５０２の受信で開始する。ステップ５０４では、好ましくは、ライブラリがキャッシュ・メモリ３８をチェックして、要求されたデータが容易に利用可能であるかどうかを判定する。制御装置は、一般に特定のホストまたは各ホストに対するホスト・データ要求の履歴に基づいて、特定のデータに関する必要を予測し、読取りコマンドより先にキャッシュ中にその特定のデータを配置することができる。データがキャッシュ中にある場合、制御装置は、Ｉ／Ｏソート・プロセス３００のステップ３１０に戻る前に、単に、制御装置がデータを送る用意ができていることをホストに知らせ（ステップ５０６）、データを送り（ステップ５０８）、データを送ったという表示をホストに送る（ステップ５１０）。
【００３２】
一方、データがキャッシュから利用可能でない場合、制御装置（ステップ５２０）は、要求されたハード・ディスク・ドライブが既に設置されているかどうかを判定する。設置されていない場合、制御装置は、ハード・ディスク・ドライブを宛先コンセントに装着するための空きスロット６２（図１）があるかどうかを判定する。空きスロットがある場合、要求されたハード・ディスク・ドライブがその空きスロット中に装着される。空きスロットがない場合、好ましくは、最も以前に装着されたハード・ディスク・ドライブ、または最も使用されていないハード・ディスク・ドライブを、宛先コンセント１７から取り外すべきものとして選択して、要求されたハード・ディスク・ドライブを装着するためにこの空きスロットを供給する。
【００３３】
次に、ステップ５２２では、ピッカがハード・ディスク・ドライブを装着したかどうかを制御装置は判定する。ドライブのすべてを宛先コンセント１７に装着した後、制御装置は、物理アドレスを更新し、ディスク・ドライブが装着されている宛先コンセント中のスロットを示すために、別のマッピングを実行する（ステップ５２４）。
【００３４】
ステップ５２６では、ハード・ディスク・ドライブが装着された状態で、制御装置が、動作速度までハード・ディスク・ドライブを回転させ、データを読み取る。前述のような分散記憶装置からデータを読み取る場合、好ましくは、データをキャッシュ３８に集め（ステップ５３０）、前述のステップ５２０は、それに応じて修正される。次いで制御装置は、Ｉ／Ｏソート・プロセス３００のステップ３１０に戻る前に、データをホストに送り（ステップ５３２）、データを送ったという表示をホストに送る（ステップ５３４）。
【００３５】
制御装置１８は、通信インターフェース１９を使用してホスト・コンピュータ１３と通信する。通信インターフェース１９は、ワイヤまたは光ファイバで実装することができ、あるいは無線とすることができる。好ましくは、インターフェース１９は、ANSI X3.230-1994、X3.297-1997、およびX3.303-1998によって規定されるファイバ・チャネル・アービトレーテッド・ループとして知られるプロトコルを利用する。このファイバ・チャネル・ループは、データの伝送をフレームとして実施する下位層プロトコルとして実装される。これは、特殊なハードウェアを必要とせずに、例えばＦＣＰ  ＳＣＳＩまたはＦＩＣＯＮ（ファイバ接続）など、フレーム中のデータを解釈するためのどんな所望の上位層プロトコルもサポートすることができる。例えば、ライブラリ制御装置は、１組のサーバ、１組のＳＣＳＩハード・ディスク、ＦＩＣＯＮ記憶サブシステム、またはこれらの組み合わせとして動作することができる。
【００３６】
本発明の顕著な特徴として、所与のエミュレートする装置についての複数のコマンドと、ＳＣＳＩおよびファイバ・チャネル・アービトレーション・ループなどのいくつかの代替通信プロトコルとを制御装置が関連付けることを可能にするコマンド変換テーブルが、制御装置１９で使用するために与えられる。制御装置は、プロトコルを識別することによって、コマンドを識別することができる。
【００３７】
次に、制御装置によって選択されたときにライブラリ中のそれぞれのメモリ要素を制御し、ホストに対して透過的にコマンドを実行するために特に適合された、関連するマイクロコードと、様々なコマンドとを関連付けるために別のテーブルが与えられる。制御装置は、ライブラリ資源を選択し、適切なマイクロコードが識別され、ライブラリ中のホスト・コマンドを実施するようにそのマイクロコードが実行される。
【００３８】
例えば、ライブラリがＳＣＳＩインターフェース１９上のハード・ドライブ装置をエミュレートしており、ホストが１６進数の２Ａ（すなわち「２Ａｈ」）を有するデータ・パケットを送った場合、制御装置１８は、そのコマンドを書込みコマンドとして解釈し、そのコマンドをライブラリ中で内部的に使用するためのフォーマットに再フォーマットし、１つまたは複数のハード・ディスク・ドライブなどの、任意の選択したライブラリ資源にそのデータを書き込む。「２８ｈ」を受け取った場合、制御装置は、そのコマンドを読取りコマンドとして解釈し、選択したライブラリ資源から所望のデータを読み取り、そのデータをＳＣＳＩデータ・パケットとしてフォーマットして、ホストにそのデータを送る。「０３ｈ」を受け取った場合、制御装置は、そのコマンドを「センス」コマンドとして解釈する。これは、非Ｉ／Ｏコマンドの例である。制御装置は、それ自体の内部コマンドおよび制御プロトコルを用いてそのコマンドを実施し、エミュレートするフォーマットでホストに応答する。
【００３９】
同様に、ライブラリがファイバ・チャネル・アービトレーテッド・ループ上のハード・ディスク・ドライブをエミュレートしており、「M」が修飾ビットを表すとして、ホストが「MMMMMM01」を添付したデータ・パケットを送った場合、制御装置１８は、そのコマンドを書込みコマンドとして解釈し、「MMMMMM10」を受け取った場合、制御装置はそのコマンドを読取りコマンドとして解釈し、「MMMM0100」を受け取った場合、制御装置はそのコマンドをセンス・コマンドとして解釈する。やはり、制御装置は、エミュレートするフォーマットでホストに応答する。
【００４０】
ライブラリは、あるホストに対して１つの装置、別のホストに対して１つの装置をエミュレートすることもでき、さらには、それぞれのホストがインターフェース１９によって異なるプロトコルを介してライブラリに取り付けられていることを条件として、あるホストに対してあるプロトコル、別のホストに対して別のプロトコルをエミュレートすることもできる。制御装置の動作マイクロコードの変更を必要とせずに、制御装置がマルチリンガルとなることが本発明の顕著な特徴である。したがって、ライブラリは、要求時に様々な異なるホストと、様々な異なる方式で通信することができる。
【００４１】
図６を参照すると、透過的エミュレーティング・インターフェースを有するライブラリ１０は、より大きな記憶域ネットワーク１００の一部とすることができる。１つまたは複数のライブラリ１０は、通信インターフェース１９を介して、互いにデータを共用することができ、メインフレーム・コンピュータ１０２とデータを共用することができ、パーソナル・コンピュータ１０４およびサーバ１０６などの他のホスト・コンピュータとデータを共用することができ、スタンドアロン・ディスク・ドライブ１０８などのスタンドアロン・メモリ装置とデータを共用することができる。一般に、少なくとも１キロメートルなど、ライブラリが比較的遠くに離れている場合、各ライブラリは、それ自体のファイバ・チャネル・アービトレーテッド・ループを介してローカルに通信することになり、そのループは、ファブリックとして当技術分野で知られる、より大きな中間ネットワークにそれぞれ切り換え可能に接続される。
【００４２】
図７を参照すると、ライブラリ１０は、追加の要素または装置を含むことができる。例えば、ライブラリ中のハード・ディスク・ドライブの一部または大部分を、前述のように繰り返し取外し可能なハード・ディスク・ドライブとすることができ、一方、連続的なＩ／Ｏワークロードを予想して、バックプレーンに取り付けたままにされる他の専用ハード・ディスク・ドライブ７２をライブラリ中に設けることができる。したがって、専用ドライブをバックプレーンに接続するために使用するコネクタは、取外しおよび挿入の繰り返しのために特に適合させる必要はない。
【００４３】
ライブラリは、固体メモリ３３を含むことができ、固体メモリ３３は、取外し可能固体メモリ７４および専用固体メモリ３６を含むことができる。取外し可能固体メモリについては、取外し可能ハード・ディスク・ドライブと同様に、ピッカがつかみ、移動させることのできる固体メモリ・カードまたは他の便利な物理形態の固体メモリが提供される。あるいは、固体メモリをつかみ、移動させるように特に適合された追加のピッカを、ライブラリ中に提供することができる。固体メモリは、取外し可能ハード・ドライブの場合と同様に、適切なコネクタを介して宛先コンセントから繰り返し取外し可能であるように提供されることが好ましい。
【００４４】
専用ハード・ドライブと同様に、専用固体メモリは、バックプレーンに永続的に接続される。すなわち、より連続的なＩ／Ｏワークロードを予想して、ハード・ディスク・ドライブの取外しおよび挿入の繰返しを容易にするためのコネクタを使用せずに接続される。
【００４５】
取外し可能メモリおよび専用固体メモリの一方または両方は、キャッシュ３８と、１つまたは複数の仮想ハード・ディスク・ドライブ４０の一方または両方として編成することができる。キャッシュ３８の使用は、好ましい読取りプロセスおよび書込みプロセスに関連して先に述べた。容易に理解できるように、仮想ハード・ディスク・ドライブを実装するために、制御装置は、ハード・ディスク・ドライブ読取りコマンドおよび書込みコマンドを、固体メモリを読み書きするために必要な類似のコマンドに変換するように適合される。
【００４６】
固体メモリ３３は、拡張リモート・コピー（「ＸＲＣ」）ソフトウェアや、ピアツーピア・リモートコピー（「ＰＰＲＣ」）ソフトウェアなどを使用することによって、「ソフトコピー・パススルー」として知られるものを容易にするために利用することもできる。ソフトコピー・パススルーは、例えば、あるライブラリ中に常駐する、選択したデータを、上記で議論した記憶域ネットワーク１００中などの別のライブラリ中に複製するために使用することができる。
【００４７】
透過的エミュレーティング・インターフェースを有するハード・ディスク・ドライブの特定のライブラリを、好ましいものとして図示し、説明したが、本発明の原理から逸脱することなく、既に説明した構成および方法に加えて、他の構成および方法も使用できることを理解されたい。これらのうちの一部は、本願を引用し、本願の教示を参照により組み込む他の特許出願の主題である。例えば、ピッカ１６はストレージ・ビンに移動することができ、ハード・ディスク・ドライブを宛先コンセント１７に搬送するためにストレージ・ビン中のハード・ディスク・ドライブを取り出すのではなく、宛先コンセント１７との相互接続を搬送し、かつストレージ・ビンでハード・ディスク・ドライブの電源を投入し、動作するように適合させることによって、ピッカは単にハード・ディスク・ドライブと接触することができる。
【００４８】
本発明によるプロセスおよび方法は、コンピュータ可読記憶媒体を製造するための標準的な技法を用いることによって、メモリまたは伝送装置中の実行可能コンピュータ命令のプログラムを有形に実施するコンピュータ・ソフトウェア、ファームウェア、およびハードウェアなどの製品として実装できることをさらに理解されたい。このようなメモリ装置の例は、ハード・ディスク・ドライブ、フロッピー（Ｒ）・ディスケット、光ディスク、および磁気テープと、ＲＯＭ（読取り専用メモリ）、ＰＲＯＭ（プログラマブル読取り専用メモリ）、およびＥＰＲＯＭなどの半導体メモリとであり、このような伝送装置の例は、インターネットと、電子掲示板およびメッセージ／ノート交換と、電話／モデム、ケーブル、およびセルラー・ネットワークを含むネットワークと、無線およびサテライト通信システムと、他の固定または移動システムおよび通信リンクである。コンピュータ・サイエンスの分野の技術者は、本明細書で述べたように汎用コンピュータと共に、またはより特殊なハードウェアと共に、あるいはその組み合わせと共に、本発明によるプロセスまたは方法を容易に実装することができよう。
【００４９】
上記の明細書で使用した用語および表現は、上記の明細書中で、限定的な用語としてではなく、説明のための用語として使用しており、このような用語および表現の使用は、図示し、説明した機能の均等物またはその部分を排除するものではない。本発明の範囲は、頭記の特許請求の範囲によってのみ定義され、限定されることを理解されたい。
【００５０】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００５１】
（１）１つまたは複数のホスト・コンピュータによって使用するための複数のコンピュータ・メモリ要素の自動ライブラリであって、要求側ホスト・コンピュータが、選択したメモリ要素を識別する論理アドレスを与えることによって、前記ライブラリ中の前記選択したメモリ要素にアクセスを要求することができるように、前記選択したメモリ要素についての前記論理アドレスに対応する前記ライブラリ中の物理アドレスを識別する制御装置と、
それぞれ前記メモリ要素のうちの対応する１つを受け取る、複数のストレージ・ビンと、
前記選択したメモリ要素を、前記要求側ホスト・コンピュータに結合する宛先コンセントと、
前記制御装置のコマンドによって動作可能であり、前記選択したメモリ要素を前記宛先コンセントに電気的に結合し、かつ前記宛先コンセントから電気的に分離するためのロボット式ピッカと、
前記複数のメモリ要素のうちの少なくとも一部を構成する、複数の繰り返し取外し可能なハード・ディスク・ドライブとを備えるライブラリ。
（２）前記宛先コンセントが、前記ライブラリのバックプレーンの一部である上記（１）に記載のライブラリ。
（３）前記選択したメモリ要素がハード・ディスク・ドライブであり、かつ前記物理アドレスが、選択した前記ハード・ディスク・ドライブに対応する前記ストレージ・ビンのうちの１つを識別する場合に、前記ピッカが、前記選択したハード・ディスク・ドライブを、前記識別したストレージ・ビンから前記宛先コンセントに移動させる上記（１）に記載のライブラリ。
（４）前記制御装置が、ファイバ・チャネル通信プロトコルに従って、前記宛先コンセントと、前記１つまたは複数のホスト・コンピュータとの間の伝送を実現する上記（１）に記載のライブラリ。
（５）前記メモリ要素の一部として使用するための、１つまたは複数の繰り返し取外し可能な固体メモリ・ユニットをさらに備える上記（１）に記載のライブラリ。
（６）前記制御装置によってキャッシュとして使用される固体メモリをさらに備える上記（１）に記載のライブラリ。
（７）前記バックプレーンに永続的に接続される、少なくとも１つのハード・ディスク・ドライブをさらに備える上記（２）に記載のライブラリ。
（８）１つまたは複数のホスト・コンピュータによって使用するための、ハード・ディスク・ドライブを備えるメモリ要素のライブラリにおいて、要求側ホスト・コンピュータに前記ライブラリ中の選択されたメモリ要素へのアクセスを与える方法であって、
前記要求側ホスト・コンピュータから前記選択したハード・ディスク・ドライブを識別する論理アドレスを受信し、前記選択したハード・ディスク・ドライブについての前記論理アドレスに対応する、前記ライブラリ中の物理アドレスによって、前記選択したハード・ディスク・ドライブを識別するステップと、
前記識別したハード・ディスク・ドライブをロボット式ピッカによって前記要求側ホスト・コンピュータへの結合を与える宛先コンセントに電気的に結するステップとを有する方法。
（９）前記ライブラリは、それぞれ前記ハード・ディスク・ドライブのうちの対応する１つを受け取るように適合された、複数のストレージ・ビンを有し、前記物理アドレスが、前記選択したハード・ディスク・ドライブが前記物理アドレスに対応する前記ストレージ・ビン中にあるかどうかを識別する上記（８）に記載の方法。
（１０）前記選択したハード・ディスク・ドライブが前記ストレージ・ビンのうちの前記対応する１つに配置されている場合に、前記ストレージ・ビンまで並進し、前記ハード・ディスク・ドライブと接触するように前記ピッカに命令するステップをさらに含む上記（９）に記載の方法。
（１１）上記（９のステップの後に、前記選択したハード・ディスク・ドライブを前記ストレージ・ビンから取り出すように前記ピッカに命令するステップをさらに含む上記（１０）に記載の方法。
（１２）上記（１０）のステップの後に、前記選択したハード・ディスク・ドライブを前記宛先コンセントに電気的に結合する前記ステップより前に、前記ストレージ・ビンから前記宛先コンセントまで並進するように前記ピッカに命令するステップをさらに含む上記（１１）に記載の方法。
（１３）ファイバ・チャネル通信プロトコルに従って、前記宛先コンセントと、前記１つまたは複数のホスト・コンピュータとの間でデータを伝送するステップをさらに含む上記（８）に記載の方法。
（１４）前記ライブラリは固体メモリを有し、前記要求側ホスト・コンピュータから書込みデータ・コマンドを受け取るステップと、前記ハード・ディスク・ドライブを前記宛先コンセントに電気的に結合する前記ステップの前に、書き込むべき前記データを一時的に格納するために前記固体メモリを利用するステップとをさらに含む上記（８）に記載の方法。
（１５）前記メモリ要素が固体メモリをさらに備え、前記固体メモリを仮想ハード・ディスク・ドライブとして利用するステップをさらに含む上記（８）に記載の方法。
（１６）前記ピッカによって、前記固体メモリを前記宛先コンセントに取外し可能に結合するステップをさらに含む上記（１５）に記載の方法。
（１７）１つまたは複数のホスト・コンピュータによって使用するための、複数のメモリ要素のライブラリであって、前記メモリ要素が、ハード・ディスク・ドライブと、繰り返し取外し可能な固体メモリとを備えるライブラリにおいて、要求側ホスト・コンピュータに、前記ライブラリ中の前記メモリ要素のうちの１つへのアクセスを与える方法であって、
前記要求側ホスト・コンピュータから前記選択したハード・ディスク・ドライブを識別する論理アドレスを受信し、前記要求したハード・ディスク・ドライブについての前記論理アドレスに対応する、固体メモリについての物理アドレスによって、前記固体メモリを識別するステップと、
前記識別した固体メモリをロボット式ピッカによって前記要求側ホスト・コンピュータへの結合を与える宛先コンセントに電気的に結合するステップとを含む方法。
（１８）前記ライブラリは、それぞれ前記メモリ要素のうちの対応する１つを受け取るように適合された、複数のストレージ・ビンを有し、前記物理アドレスが、前記選択した固体メモリが前記物理アドレスに対応する前記ストレージ・ビン中にあるかどうかを識別し、前記ストレージ・ビン中にない場合に、前記ピッカが前記選択した固体メモリを所有しているかどうかを識別し、前記ピッカが所有していない場合に、前記選択した固体メモリが前記宛先コンセントに既に電気的に結合しているかどうかを識別する上記（１７）に記載の方法。
（１９）ハード・ディスク・ドライブのライブラリ中のディスク・ドライブにアクセスするための方法であって、
（ａ）前記ライブラリが大容量記憶装置の所定の選択した形態であることをホスト・コンピュータに対して表すステップであって、大容量記憶装置の前記選択した形態が、前記ホスト・コンピュータとのハンドシェーク・プロトコルを定義するステップと、
（ｂ）前記ホスト・コンピュータからコマンドを受け取り、前記コマンドが関係するハード・ディスク・ドライブについての論理アドレスを受け取るステップと、
（ｃ）前記論理アドレスを前記ライブラリ内の物理アドレスに関連付ける所定の索引を調べるステップと、
（ｄ）前記論理アドレスを前記物理アドレスに変換するステップと、
（ｅ）前記物理アドレスに対応する前記ハード・ディスク・ドライブの位置を突き止めるステップとを含み、
（ｆ）前記ハード・ディスク・ドライブがストレージ・ビン中にある場合に、前記ストレージ・ビンから前記ハード・ディスク・ドライブを取り出すステップと、前記ハード・ディスク・ドライブを前記ホスト・コンピュータに結合するために、前記ハード・ディスク・ドライブを宛先コンセントまで並進させるステップと、前記ハード・ディスク・ドライブと前記宛先コンセントとを電気的に相互接続するステップと、前記コマンドを実行するステップとを含み、
（ｇ）前記ハンドシェーク・プロトコルに従って前記ホスト・コンピュータとハンドシェークすることによって前記コマンドを実施するステップを含み、それによってステップ（ｃ）〜（ｆ）が前記ホスト・コンピュータに対して透過的となる方法。
（２０）前記コマンドがデータを書き込むべき場合に、ステップ（ｆ）の前に、前記データをキャッシュ・メモリに書き込むステップをさらに含む上記（１９）に記載の方法。
（２１）前記コマンドがデータを読み取るべき場合に、ステップ（ｆ）の前に、前記データを求めて前記キャッシュ・メモリを調べるステップをさらに含む上記（１９）に記載の方法。
（２２）前記コマンドがデータを書き込むべき場合に、少なくとも２つのハード・ディスク・ドライブにわたって分散させるために前記データを分解するステップをさらに含む上記（１９）に記載の方法。
（２３）前記少なくとも２つのハード・ディスク・ドライブがＲＡＩＤとして動作する上記（２２）に記載の方法。
（２４）前記コマンドがデータを読み取るべき場合に、少なくとも２つのハード・ディスク・ドライブから前記データを集めることをさらに含む上記（１９）に記載の方法。
（２５）前記少なくとも２つのハード・ディスク・ドライブがＲＡＩＤとして動作する上記（２４）に記載の方法。
（２６）ライブラリ制御装置を含むハード・ディスク・ドライブのライブラリ内で使用するためのコンピュータ・プログラムであって、
（ａ）前記ライブラリが大容量記憶装置の所定の選択した形態であることをホスト・コンピュータに対して表すステップであって、大容量記憶装置の前記選択した形態が、前記ホスト・コンピュータとのハンドシェーク・プロトコルを定義するステップと、
（ｂ）前記ホスト・コンピュータからＩ／Ｏコマンドを受け取り、前記コマンドが関係するハード・ディスク・ドライブについての論理アドレスを受け取るステップと、
（ｃ）前記論理アドレスを前記ライブラリ内の物理アドレスに関連付ける、所定の索引を調べるステップと、
（ｄ）前記論理アドレスを前記物理アドレスに変換するステップと、
（ｅ）前記物理アドレスに対応する前記ハード・ディスク・ドライブの位置を突き止めるステップとを含み、
（ｆ）前記ハード・ディスク・ドライブがストレージ・ビン中にある場合に、前記ストレージ・ビンから前記ハード・ディスク・ドライブを取り出すステップと、前記ハード・ディスク・ドライブを前記ホスト・コンピュータに結合するために、前記ハード・ディスク・ドライブを宛先コンセントまで並進させるステップと、前記ハード・ディスク・ドライブと前記宛先コンセントとを電気的に相互接続するステップと、前記コマンドを実行するステップとを含み、
（ｇ）前記ハンドシェーク・プロトコルに従って前記ホスト・コンピュータとハンドシェークすることによって前記コマンドを実施するステップを含むステップを前記制御装置に実行させるコンピュータ・プログラム。
（２７）前記コマンドがデータを書き込むべき場合に、前記コンピュータ命令のプログラムが、さらに、ステップ（ｆ）の前に、前記ライブラリ制御装置に、前記データをキャッシュ・メモリに書き込ませることができる上記（２６）に記載のコンピュータ・プログラム。
（２８）前記コマンドがデータを読み取るべき場合に、前記コンピュータ命令のプログラムが、さらに、ステップ（ｆ）の前に、前記ライブラリ制御装置に、前記データを求めて前記キャッシュ・メモリを調べさせることができる上記（２６）に記載のコンピュータ・プログラム。
（２９）前記コマンドがデータを書き込むべき場合に、前記コンピュータ命令のプログラムが、さらに、前記ライブラリ制御装置に、少なくとも２つのハード・ディスク・ドライブにわたって分散させるために前記データを分解させることができる上記（２６）に記載のコンピュータ・プログラム。
（３０）前記コンピュータ命令のプログラムが、前記ライブラリ制御装置に、前記少なくとも２つのハード・ディスク・ドライブをＲＡＩＤとして動作させることができる上記（２９）に記載のコンピュータ・プログラム。
（３１）前記コマンドがデータを読み取るべき場合に、前記コンピュータ命令のプログラムが、前記ライブラリ制御装置に、少なくとも２つのハード・ディスク・ドライブから前記データを集めさせることができる上記（２６）に記載のコンピュータ・プログラム。
（３２）前記コンピュータ命令のプログラムが、前記ライブラリ制御装置に、前記少なくとも２つのハード・ディスク・ドライブをＲＡＩＤとして動作させることができる上記（２６）に記載のコンピュータ・プログラム。
（３３）１つまたは複数のホスト・コンピュータと、ライブラリ制御装置によって制御される１つまたは複数のタイプのメモリ要素のライブラリとの間で通信するための方法であって、
所定のタイプのメモリ要素に指令するための複数のコマンドと、複数のプロトコルとの第１関連を形成するステップと、
前記複数のコマンドと、前記ライブラリ中のそれぞれのメモリ要素を制御するように適合された複数のコードとの第２関連を形成するステップと、
前記装置に指令するために、前記プロトコルのうちの１つに従ってホスト・コンピュータからコマンドを受け取るステップと、
前記プロトコルを識別するステップと、
前記第１関連を調べることによって前記コマンドを識別するステップと、
前記コマンドを実施するために、前記制御装置によって前記ライブラリ中の前記メモリ要素のうちの１つまたは複数を選択するステップと、
前記選択したメモリ要素についての前記第２関連を調べることによって、前記関連するコードを識別するステップと、
前記選択したメモリ要素を用いて前記ライブラリ中で前記コマンドを実施するために、前記識別したコードを実行するステップとを含む方法。
（３４）前記識別したコードを実行するための前記ステップが、前記ライブラリ中のハード・ディスク・ドライブからデータを読み取るステップと、識別した前記プロトコルに従って前記データをフォーマットするステップと、その後前記データを前記ホスト・コンピュータに送るステップとをさらに含む上記（３３）に記載の方法。
（３５）前記識別したコードを実行する前記ステップが、前記ライブラリ中のハード・ディスク・ドライブに書き込むステップをさらに含む上記（３３）に記載の方法。
（３６）１つまたは複数のホスト・コンピュータと、ライブラリ制御装置によって制御される１つまたは複数のタイプのメモリ要素のライブラリとの間で通信する際に使用するためのコンピュータ・プログラムであって、
所定のタイプのメモリ要素に指令するための複数のコマンドと、複数のプロトコルとの第１関連を形成するステップと、
前記複数のコマンドと、前記ライブラリ中のそれぞれのメモリ要素を制御するように特に適合された複数のコードとの第２関連を形成するステップと、
前記装置に指令するために、前記プロトコルのうちの１つに従ってホスト・コンピュータからコマンドを受け取るステップと、
前記プロトコルを識別するステップと、
前記第１関連を調べることによって前記コマンドを識別するステップと、
前記コマンドを実施するために、前記制御装置によって前記ライブラリ中の前記メモリ要素のうちの１つまたは複数を選択するステップと、
前記選択したメモリ要素について前記第２関連を調べることによって、関連する前記コードを識別するステップと、
前記選択したメモリ要素を用いて前記ライブラリ中で前記コマンドを実施するために、前記識別したコードを実行するステップとを含むステップを前記制御装置に実行させるコンピュータ・プログラム。
（３７）前記コンピュータ命令のプログラムが、少なくとも、前記ライブラリ中のハード・ディスク・ドライブからデータを読み取るステップと、前記識別した前記プロトコルに従って前記データをフォーマットするステップと、その後前記データを前記ホスト・コンピュータに送るステップとによって、前記ライブラリ制御装置に、前記識別したコードを実行させることができる上記（３６）に記載のコンピュータ・プログラム。
（３８）前記コンピュータ命令のプログラムが、少なくとも前記ライブラリ中のハード・ディスク・ドライブに書き込むステップによって、前記ライブラリ制御装置に、前記識別したコードを実行させることができる上記（３６）に記載のコンピュータ・プログラム。
（３９）１つまたは複数のホスト・コンピュータによって使用するための、ハード・ディスク・ドライブを備えるメモリ要素の第１ライブラリであって、要求側ホスト・コンピュータが、選択したハード・ディスク・ドライブを識別する論理アドレスを与えることによって、前記ライブラリ中の選択したハード・ディスク・ドライブにアクセスを要求することができ、前記第１ライブラリを制御し、前記１つまたは複数のホスト・コンピュータと通信するための第１制御装置を含む第１ライブラリと、
前記１つまたは複数のホスト・コンピュータによって使用するためのハード・ディスク・ドライブを備えるメモリ要素の第２ライブラリであって、要求側ホスト・コンピュータが、選択したハード・ディスク・ドライブを識別する論理アドレスを与えることによって、前記ライブラリ中の選択したハード・ディスク・ドライブにアクセスを要求することができ、前記第２ライブラリを制御し、前記１つまたは複数のホスト・コンピュータと通信するための第２制御装置を含み、前記第１ライブラリから少なくとも１キロメートル離れている第２ライブラリと、
前記第１制御装置と、前記１つまたは複数のホスト・コンピュータのうちの少なくとも一部との間の第１ファイバ・チャネル・アービトレーテッド・ループ通信リンク、ならびに前記第２制御装置と前記１つまたは複数のホスト・コンピュータのうちの少なくとも他の一部との間の第２ファイバ・チャネル・アービトレーテッド・ループ通信リンクであって、それぞれ、前記第１制御装置と前記第２制御装置との間の第３通信リンクに切り換え可能に接続される、第１ファイバ・チャネル・アービトレーテッド・ループ通信リンクおよび第２ファイバ・チャネル・アービトレーテッド・ループ通信リンクとを備える記憶域ネットワーク・システム。
（４０）前記ホスト・コンピュータが、メインフレーム・コンピュータ、パーソナル・コンピュータ、サーバ、およびスタンドアロン・メモリ装置から選択された、少なくとも２つの異なるタイプの装置を備える上記（３９）に記載の記憶域ネットワーク。
（４１）エリア・ネットワーク記憶装置のための方法であって、
１つまたは複数のホスト・コンピュータによって使用するためのハード・ディスク・ドライブを備えるメモリ要素の第１ライブラリを提供するステップであって、要求側ホスト・コンピュータが、前記選択したハード・ディスク・ドライブを識別する論理アドレスを与えることによって、前記ライブラリ中の選択したどのハード・ディスク・ドライブにもアクセスを要求することができ、前記第１ライブラリが、前記第１ライブラリを制御し、前記１つまたは複数のホスト・コンピュータと通信するための第１制御装置を含むステップと、
１つまたは複数のホスト・コンピュータによって使用するためのハード・ディスク・ドライブを備えるメモリ要素の第２ライブラリを提供するステップであって、要求側ホスト・コンピュータが、前記選択したハード・ディスク・ドライブを識別する論理アドレスを与えることによって、前記ライブラリ中の選択したどのハード・ディスク・ドライブにもアクセスを要求することができ、前記第２ライブラリが、前記第２ライブラリを制御し、前記１つまたは複数のホスト・コンピュータと通信するための第２制御装置を含み、前記第１ライブラリと前記第２ライブラリとが、少なくとも１キロメートルだけ分離しているステップと、
前記第１制御装置と、前記１つまたは複数のホスト・コンピュータのうちの少なくとも一部との間の第１通信リンクを提供するステップと、
前記１つまたは複数のホスト・コンピュータのうちの少なくとも他の一部の間の第２通信リンクを提供するステップと、
前記第１制御装置と、前記第２制御装置との間の第３通信リンクを提供するステップと、
ファイバ・チャネル・アービトレーテッド・ループ・プロトコルに従って前記第１通信リンクを動作するステップと、
ファイバ・チャネル・アービトレーテッド・ループ・プロトコルに従って前記第２通信リンクを動作するステップとを含む方法。
（４２）ファイバ・チャネル・アービトレーテッド・ループ・プロトコルではないプロトコルに従う前記第３通信リンクを動作するステップをさらに含む上記（４１）に記載の方法。
【図面の簡単な説明】
【図１】本発明による、ハード・ディスク・ドライブのライブラリと、その中で使用するためのピッカの部分切断概略図である。
【図２】本発明によるハード・ディスク・ドライブピッカの概略図である。
【図３】本発明による、透過的エミュレーティング・インターフェースを有するハード・ディスク・ドライブのライブラリについてのＩ／Ｏソート・プロセスのフローチャートである。
【図４】本発明による、透過的エミュレーティング・インターフェースを有するハード・ディスク・ドライブのライブラリについての書込みプロセスのフローチャートである。
【図５】本発明による、透過的エミュレーティング・インターフェースを有するハード・ディスク・ドライブのライブラリについての読取りプロセスのフローチャートである。
【図６】本発明による１つまたは複数のライブラリを含む、本発明による記憶域ネットワークのブロック図である。
【図７】追加の要素を示す、本発明によるハード・ディスク・ドライブのライブラリのブロック図である。
【符号の説明】
１０  ライブラリ
１１  ハード・ディスク・ドライブ
１２  格納位置（ビン）
１３  ホスト・コンピュータ
１６  ピッカ
１７  宛先コンセント
１８  ライブラリ制御装置
１９  通信インターフェース
２１  並進機構
２２  親ねじ
２３  メール・スロット
２４  グリッピング要素
２６ａ  アーム
２６ｂ  アーム
２８ａ  端部エフェクタ
２８ｂ  端部エフェクタ
３０  ソレノイド
３２  電力出力コネクタ（空きスロット）
３２  専用ハード・ディスク・ドライブ
３３  固体メモリ
３４  Ｉ／Ｏコネクタ
３４  取外し可能固体メモリ
３６  専用固体メモリ
３８  キャッシュ
４０  仮想ハード・ディスク・ドライブ
１００  記憶域ネットワーク
１０２  メインフレーム・コンピュータ
１０４  パーソナル・コンピュータ
１０６  サーバ
１０８  スタンドアロン・ディスク・ドライブ
【図１】
0003683867.tif 000002
【図２】
0003683867.tif 000003
【図３】
0003683867.tif 000004
【図４】
0003683867.tif 000005
【図５】
0003683867.tif 000006
【図６】
0003683867.tif 000007
【図７】
0003683867.tif 000008