(57)【要約】【課題】  記憶機能を有する物理記憶装置が、１つまたは複数のＳＣＳＩ記憶装置をエミュレートすることを可能にする機構を提供すること。【解決手段】  構成インターフェースが、エミュレートされた記憶装置のプロパティを指定する構成関数呼出しを受け取る。フロントエンドコンポーネントが、ネットワーク通信を受信し、そのネットワーク通信からＳＣＳＩコマンドを抽出する。エミュレーションソフトウェアコンポーネントは、構成関数呼出しに応答して、物理記憶装置内にファイルを作成し、ＳＣＳＩコマンドが、エミュレートされた記憶装置用として意図されたものであると判定する。さらにエミュレーションソフトウェアコンポーネントは、エミュレートされた記憶装置に対応するプロパティおよびファイル記憶空間を用いて、エミュレートされた記憶装置上でのＳＣＳＩコマンドの履行をエミュレートするやり方で、ＳＣＳＩコマンドを履行する。【選択図】  図２
2005078641.tif 000002
【特許請求の範囲】
【請求項１】
記憶機能と、コンピューティングシステムから通信を受信し、および前記通信からＳＣＳＩコマンドを抽出することができるフロントエンドとを有する物理記憶装置において、前記物理記憶装置が、前記ＳＣＳＩコマンドに応答することができる１つまたは複数の記憶装置をエミュレートする方法であって、
エミュレーションソフトウェアコンポーネントが、前記物理記憶装置によってエミュレートされる記憶装置のプロパティを指定する関数呼出しを受け取る動作と、
前記関数呼出しを受け取ったことに応答して、前記エミュレーションソフトウェアコンポーネントが、前記物理記憶装置内にファイルを作成する動作であって、前記ファイルの記憶空間の少なくともいくつかは、前記エミュレートされる記憶装置に関連付けられる動作と、
前記フロントエンドが、ネットワーク通信を受信する動作と、
前記フロントエンドが、前記ネットワーク通信からＳＣＳＩコマンドを抽出する動作と、
前記エミュレーションソフトウェアコンポーネントが、前記抽出されたＳＣＳＩコマンドを受け取る動作と、
前記ＳＣＳＩコマンドが前記エミュレートされる記憶装置用として意図されたものであると判定する動作と、
前記エミュレーションソフトウェアコンポーネントが、前記エミュレートされる記憶装置に対応する前記プロパティおよび前記ファイル記憶空間を用いて、前記エミュレートされる記憶装置での前記ＳＣＳＩコマンドの履行をエミュレートするやり方で、前記ＳＣＳＩコマンドの前記履行を行う動作とを備えたことを特徴とする方法。
【請求項２】
前記ネットワーク通信は、ｉＳＣＳＩ通信であることを特徴とする請求項１に記載の方法。
【請求項３】
前記ネットワーク通信は、ファイバーチャネル通信であることを特徴とする請求項１に記載の方法。
【請求項４】
前記ネットワーク通信は、ユニバーサルシリアルバス（ＵＳＢ）通信であることを特徴とする請求項１に記載の方法。
【請求項５】
前記エミュレートされた記憶装置の前記プロパティは、前記エミュレートされた記憶装置のブロックサイズを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記エミュレートされる記憶装置の前記プロパティは、前記エミュレートされる記憶装置のブロックの総数を含み、前記エミュレーションソフトウェアコンポーネントが前記ファイルを作成する前記動作は、
前記エミュレーションソフトウェアコンポーネントが、前記総数のブロックのブロックごとに、前記ファイル中の記憶空間を１つのブロックに関連付ける動作を含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記エミュレートされた記憶装置の前記プロパティは、前記エミュレートされた記憶装置が使用するように構成されたいくつかのブロックを含み、前記エミュレーションソフトウェアコンポーネントが前記ファイルを作成する前記動作は、
前記エミュレーションソフトウェアコンポーネントが、前記ファイルの前記ブロックのどれが使用されることができるか追跡する動作を含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記エミュレートされた記憶装置の前記プロパティは、装置種別を含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記エミュレートされた記憶装置の前記プロパティは、装置名を含み、前記ＳＣＳＩコマンドが前記エミュレートされた記憶装置用として意図されたものであると判定する前記動作は、
前記ＳＣＳＩコマンドが、前記ＳＣＳＩコマンドの意図されたターゲットとして前記装置名を指定すると判定する動作を含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記物理記憶装置は、ハードディスクであることを特徴とする請求項１に記載の方法。
【請求項１１】
前記エミュレートされた記憶装置は、ハードディスクであることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記エミュレートされた記憶装置は、テープドライブであることを特徴とする請求項１０に記載の方法。
【請求項１３】
前記エミュレートされた記憶装置は、テープチェンジャであることを特徴とする請求項１０に記載の方法。
【請求項１４】
前記エミュレートされた記憶装置は、読出し書込みコンパクトディスクであることを特徴とする請求項１０に記載の方法。
【請求項１５】
前記物理記憶装置は、テープドライブであることを特徴とする請求項１に記載の方法。
【請求項１６】
前記エミュレートされた記憶装置は、ハードディスクであることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記エミュレートされた記憶装置は、テープドライブであることを特徴とする請求項１５に記載の方法。
【請求項１８】
前記エミュレートされた記憶装置は、テープチェンジャであることを特徴とする請求項１５に記載の方法。
【請求項１９】
前記エミュレートされた記憶装置は、読出し書込みコンパクトディスクであることを特徴とする請求項１５に記載の方法。
【請求項２０】
前記物理記憶装置は、テープチェンジャであることを特徴とする請求項１に記載の方法。
【請求項２１】
前記エミュレートされた記憶装置は、ハードディスクであることを特徴とする請求項２０に記載の方法。
【請求項２２】
前記エミュレートされた記憶装置は、テープドライブであることを特徴とする請求項２０に記載の方法。
【請求項２３】
前記エミュレートされた記憶装置は、テープチェンジャであることを特徴とする請求項２０に記載の方法。
【請求項２４】
前記エミュレートされた記憶装置は、読出し書込みコンパクトディスクであることを特徴とする請求項２０に記載の方法。
【請求項２５】
前記物理記憶装置は、読出し書込みコンパクトディスクであることを特徴とする請求項１に記載の方法。
【請求項２６】
前記エミュレートされた記憶装置は、ハードディスクであることを特徴とする請求項２５に記載の方法。
【請求項２７】
前記エミュレートされた記憶装置は、テープドライブであることを特徴とする請求項２５に記載の方法。
【請求項２８】
前記エミュレートされた記憶装置は、テープチェンジャであることを特徴とする請求項２５に記載の方法。
【請求項２９】
前記エミュレートされた記憶装置は、読出し書込みコンパクトディスクであることを特徴とする請求項２５に記載の方法。
【請求項３０】
前記エミュレートされた記憶装置の前記プロパティは、前記エミュレートされた記憶装置がキャッシュ可能であるか否かを含むことを特徴とする請求項１に記載の方法。
【請求項３１】
記憶機能と、コンピューティングシステムから通信を受信し、および前記通信からＳＣＳＩコマンドを抽出することができるフロントエンドとを有する物理記憶装置において、前記物理記憶装置が、前記ＳＣＳＩコマンドに応答することができる１つまたは複数の記憶装置をエミュレートする方法を前記物理記憶装置に実施させるコンピュータ実行可能な命令を有するコンピュータ読取り可能な媒体であって、前記コンピュータ実行可能な命令を前記物理記憶装置に関連付けられた１つまたは複数のプロセッサによって、
物理記憶装置によってエミュレートされる記憶装置のプロパティを指定する関数呼出しを受け取ったことに応答して、前記エミュレーションソフトウェアコンポーネントが、前記物理記憶装置内にファイルを作成する動作であって、前記ファイルの記憶空間の少なくともいくつかは、前記エミュレートされる記憶装置に関連付けられる動作と、
前記エミュレーションソフトウェアコンポーネントが、ＳＣＳＩコマンドを受け取る動作と、
前記ＳＣＳＩコマンドが前記エミュレートされた記憶装置用として意図されたものであると判定する動作と、
前記エミュレーションソフトウェアコンポーネントが、前記エミュレートされた記憶装置に対応する前記プロパティおよび前記ファイル記憶空間を用いて、前記エミュレートされた記憶装置での前記ＳＣＳＩコマンドの履行をエミュレートするやり方で、前記ＳＣＳＩコマンドの前記履行を行う動作とを実行することを特徴とするコンピュータ読取り可能な媒体。
【請求項３２】
前記１つまたは複数のコンピュータ読取り可能な媒体は、前記１つまたは複数のプロセッサによって実行されると、
前記フロントエンドが、ネットワーク通信を受信する動作と、
前記フロントエンドが、前記ネットワーク通信からＳＣＳＩコマンドを抽出する動作と、
前記フロントエンドが、前記抽出されたＳＣＳＩコマンドを前記エミュレーションソフトウェアコンポーネントに提供する動作とを、前記フロントエンドに実施させるコンピュータ実行可能な命令をさらに有することを特徴とする請求項３１に記載のコンピュータ読取り可能な媒体。
【請求項３３】
前記１つまたは複数のコンピュータ読取り可能な媒体は、物理メモリを含むことを特徴とする請求項３１に記載のコンピュータ読取り可能な媒体。
【請求項３４】
記憶機能と、コンピューティングシステムから通信を受信し、および前記通信からＳＣＳＩコマンドを抽出することができるフロントエンドとを有する物理記憶装置において、前記物理記憶装置が、前記ＳＣＳＩコマンドに応答することができる１つまたは複数の記憶装置をエミュレートする方法であって、
エミュレーションソフトウェアコンポーネントが、前記物理記憶装置によってエミュレートされる記憶装置のプロパティを指定する関数呼出しを受け取る動作と、
前記関数呼出しを受け取ったことに応答して、前記エミュレーションソフトウェアコンポーネントが、前記物理記憶装置内にファイルを作成する動作であって、前記ファイルの記憶空間の少なくともいくつかは、前記エミュレートされた記憶装置に関連付けられる動作と、
前記物理記憶装置が、前記プロパティおよび前記ファイルを用いて、前記エミュレートされた記憶装置をエミュレートするステップとを含むことを特徴とする方法。
【請求項３５】
前記物理記憶装置が、前記エミュレートされた記憶装置をエミュレートする前記ステップは、前記ステップに対応する、
前記フロントエンドが、ネットワーク通信を受信する動作と、
前記フロントエンドが、前記ネットワーク通信からＳＣＳＩコマンドを抽出する動作と、
前記エミュレーションソフトウェアコンポーネントが、前記抽出されたＳＣＳＩコマンドを受け取る動作と、
前記ＳＣＳＩコマンドが前記エミュレートされた記憶装置用として意図されたものであると判定する動作と、
前記エミュレーションソフトウェアコンポーネントが、前記エミュレートされた記憶装置に対応する前記プロパティおよび前記ファイル記憶空間を用いて、前記エミュレートされた記憶装置上で前記ＳＣＳＩコマンドの履行をエミュレートするやり方で、前記ＳＣＳＩコマンドの前記履行を行う動作とを含むことを特徴とする請求項３４に記載の方法。
【請求項３６】
物理記憶装置に関連付けられた１つまたは複数のプロセッサによって実行されると、前記物理記憶装置に、
前記物理記憶装置によってエミュレートされる記憶装置のプロパティを指定する構成関数呼出しを受け取るように構成された構成インターフェースと、
ネットワーク通信を受信するとともに前記ネットワーク通信からＳＣＳＩコマンドを抽出するように構成されたフロントエンドコンポーネントと、
前記構成関数呼出しに応答して、前記物理記憶装置内にファイルを作成し、前記ＳＣＳＩコマンドが前記エミュレートされた記憶装置用として意図されたものであると判定し、前記エミュレートされる記憶装置に対応する前記プロパティおよび前記ファイル記憶空間を用いて、前記エミュレートされた記憶装置での前記ＳＣＳＩコマンドの履行をエミュレートするやり方で前記ＳＣＳＩコマンドの前記履行を行うように構成されたエミュレーションソフトウェアコンポーネントとのインスタンスをメモリ中に作成させるコンピュータ実行可能な命令を備えたことを特徴とするコンピュータ読取り可能な媒体。
【請求項３７】
前記構成関数呼出しは第１の構成関数呼出しであり、前記プロパティは第１のプロパティであり、前記エミュレートされた記憶装置は、第１の装置種別の第１のエミュレートされた記憶装置であり、前記ネットワーク通信は第１のネットワーク通信であり、前記ＳＣＳＩコマンドは第１のＳＣＳＩコマンドであり、前記ファイルは第１のファイルであり、
前記構成インターフェースは、前記物理記憶装置によってエミュレートされる第２の記憶装置の第２のプロパティを指定する第２の構成関数呼出しを受信するようにさらに構成され、前記第２のエミュレートされる記憶装置は、前記第１の装置種別とは異なる第２の装置種別であり、
前記フロントエンドコンポーネントは、第２のネットワーク通信を受信し、前記ネットワーク通信から第２のＳＣＳＩコマンドを抽出するようにさらに構成され、
前記エミュレーションソフトウェアコンポーネントは、前記第２の構成関数呼出しに応答して前記物理記憶装置内に第２のファイルを作成し、前記第２のＳＣＳＩコマンドが前記第２のエミュレートされた記憶装置用として意図されたものであると判定し、前記第２のエミュレートされた記憶装置に対応する前記第２のプロパティおよび前記ファイル記憶空間を用いて、前記エミュレートされた記憶装置上で前記ＳＣＳＩコマンドの履行をエミュレートするやり方で前記第２のＳＣＳＩコマンドの前記履行を行うようにさらに構成されることを特徴とする請求項３６に記載のコンピュータ読取り可能な媒体。
【請求項３８】
前記第１の装置種別はディスクドライブであり、前記第２の装置種別はテープドライブであることを特徴とする請求項３７に記載のコンピュータ読取り可能な媒体。
【請求項３９】
前記第１の装置種別はディスクドライブであり、前記第２の装置種別はテープチェンジャであることを特徴とする請求項３７に記載のコンピュータ読取り可能な媒体。
【請求項４０】
前記第１の装置種別はディスクドライブであり、前記第２の装置種別は読出し書込みコンパクトディスクであることを特徴とする請求項３７に記載のコンピュータ読取り可能な媒体。
【請求項４１】
前記第１の装置種別はテープドライブであり、前記第２の装置種別はテープチェンジャであることを特徴とする請求項３７に記載のコンピュータ読取り可能な媒体。
【請求項４２】
前記第１の装置種別はテープドライブであり、前記第２の装置種別は読出し書込みコンパクトディスクであることを特徴とする請求項３７に記載のコンピュータ読取り可能な媒体。
【請求項４３】
前記第１の装置種別はテープチェンジャであり、前記第２の装置種別は読出し書込みコンパクトディスクであることを特徴とする請求項３７に記載のコンピュータ読取り可能な媒体。
【請求項４４】
記憶機能と、コンピューティングシステムから通信を受信し、および前記通信からＳＣＳＩコマンドを抽出することができるフロントエンドとを有する物理記憶装置において、前記物理記憶装置が、ＳＣＳＩコマンドにそれぞれが応答することができる、異なる装置種別の複数の記憶装置をエミュレートする方法であって、
エミュレーションソフトウェアコンポーネントが、前記物理記憶装置によってエミュレートされる第１の装置種別の記憶装置のプロパティを指定する第１の関数呼出しを受け取る動作と、
前記第１の関数呼出しを受け取ったことに応答して、前記エミュレーションソフトウェアコンポーネントが、前記物理記憶装置内の第１の記憶空間を、前記第１のエミュレートされた記憶装置に関連付ける動作と、
前記エミュレーションソフトウェアコンポーネントが、前記物理記憶装置によってエミュレートされる第２の装置種別の記憶装置のプロパティを指定する第２の関数呼出しを受け取る動作であって、前記第２の装置種別は前記第１の装置種別とは異なる動作と、
前記第２の関数呼出しを受け取ったことに応答して、前記エミュレーションソフトウェアコンポーネントが、前記物理記憶装置内の第２の記憶空間を、前記第２のエミュレートされた記憶装置に関連付ける動作と、
前記フロントエンドが、第１のネットワーク通信を受信する動作と、
前記フロントエンドが、前記第１のネットワーク通信から第１のＳＣＳＩコマンドを抽出する動作と、
前記エミュレーションソフトウェアコンポーネントが、前記第１の抽出されたＳＣＳＩコマンドを受け取る動作と、
前記第１のＳＣＳＩコマンドが前記第１のエミュレートされた記憶装置用として意図されたものであると判定する動作と、
前記エミュレーションソフトウェアコンポーネントが、前記第１のエミュレートされた記憶装置に対応する前記第１のプロパティおよび前記第１のファイル記憶空間を用いて、前記第１のエミュレートされる記憶装置での前記第１のＳＣＳＩコマンドの履行をエミュレートするやり方で、前記第１のＳＣＳＩコマンドの前記履行を行う動作と、
前記フロントエンドが、第２のネットワーク通信を受信する動作と、
前記フロントエンドが、前記第２のネットワーク通信から第２のＳＣＳＩコマンドを抽出する動作と、
前記エミュレーションソフトウェアコンポーネントが、前記第２の抽出されたＳＣＳＩコマンドを受け取る動作と、
前記第２のＳＣＳＩコマンドが前記第２のエミュレートされた記憶装置用として意図されたものであると判定する動作と、
前記エミュレーションソフトウェアコンポーネントが、前記第２のエミュレートされた記憶装置に対応する前記第２のプロパティおよび前記第２のファイル記憶空間を用いて、前記第２のエミュレートされる記憶装置での前記第２のＳＣＳＩコマンドの履行をエミュレートするやり方で、前記第２のＳＣＳＩコマンドの前記履行を行う動作とを備えたことを特徴とする方法。
【請求項４５】
前記エミュレーションソフトウェアコンポーネントが、前記物理記憶装置内の第１の記憶空間を、前記第１のエミュレートされた記憶装置に関連付ける前記動作は、
前記エミュレーションソフトウェアコンポーネントが、前記第１のエミュレートされた記憶装置に向けられたＳＣＳＩコマンドに応答して、使われる記憶空間を含む第１のファイルを作成する動作を含むことを特徴とする請求項４４に記載の方法。
【請求項４６】
前記エミュレーションソフトウェアコンポーネントが、前記物理記憶装置内の第２の記憶空間を、前記第２のエミュレートされた記憶装置に関連付ける前記動作は、
前記エミュレーションソフトウェアコンポーネントが、前記第２のエミュレートされた記憶装置に向けられたＳＣＳＩコマンドに応答して、使われる記憶空間を含む第２のファイルを作成する動作を含むことを特徴とする請求項４５に記載の方法。
【請求項４７】
前記第１の装置種別はディスクドライブであり、前記第２の装置種別はテープドライブであることを特徴とする請求項４４に記載の方法。
【請求項４８】
前記第１の装置種別はディスクドライブであり、前記第２の装置種別はテープチェンジャであることを特徴とする請求項４４に記載の方法。
【請求項４９】
前記第１の装置種別はディスクドライブであり、前記第２の装置種別は読出し書込みコンパクトディスクであることを特徴とする請求項４４に記載の方法。
【請求項５０】
前記第１の装置種別はテープドライブであり、前記第２の装置種別はテープチェンジャであることを特徴とする請求項４４に記載の方法。
【請求項５１】
前記第１の装置種別はテープドライブであり、前記第２の装置種別は読出し書込みコンパクトディスクであることを特徴とする請求項４４に記載の方法。
【請求項５２】
前記第１の装置種別はテープチェンジャであり、前記第２の装置種別は読出し書込みコンパクトディスクであることを特徴とする請求項４４に記載の方法。
【請求項５３】
記憶機能と、コンピューティングシステムから通信を受信するとともに前記通信からＳＣＳＩコマンドを抽出することができるフロントエンドとを有する物理記憶装置において前記物理記憶装置に実施させるコンピュータ実行可能な命令を有するコンピュータ読取り可能な媒体であって、前記物理記憶装置が、ＳＣＳＩコマンドにそれぞれが応答することができる、異なる装置種別の複数の記憶装置をエミュレートする方法を実装し、前記コンピュータ実行可能な命令を前記物理記憶装置に関連付けられた１つまたは複数のプロセッサによって、
エミュレーションソフトウェアコンポーネントが、前記物理記憶装置によってエミュレートされる第１の装置種別の記憶装置のプロパティを指定する第１の関数呼出しを受け取る動作と、
前記第１の関数呼出しを受け取ったことに応答して、前記エミュレーションソフトウェアコンポーネントが、前記物理記憶装置内の第１の記憶空間を、前記第１のエミュレートされた記憶装置に関連付ける動作と、
前記エミュレーションソフトウェアコンポーネントが、前記物理記憶装置によってエミュレートされる第２の装置種別の記憶装置のプロパティを指定する第２の関数呼出しを受け取る動作であって、前記第２の装置種別は前記第１の装置種別とは異なる動作と、
前記第２の関数呼出しを受け取ったことに応答して、前記エミュレーションソフトウェアコンポーネントが、前記物理記憶装置内の第２の記憶空間を、前記第２のエミュレートされた記憶装置に関連付ける動作と、
前記フロントエンドが、第１のネットワーク通信を受信する動作と、
前記フロントエンドが、前記第１のネットワーク通信から第１のＳＣＳＩコマンドを抽出する動作と、
前記エミュレーションソフトウェアコンポーネントが、前記第１の抽出されたＳＣＳＩコマンドを受け取る動作と、
前記第１のＳＣＳＩコマンドが前記第１のエミュレートされた記憶装置用として意図されたものであると判定する動作と、
前記エミュレーションソフトウェアコンポーネントが、前記第１のエミュレートされた記憶装置に対応する前記第１のプロパティおよび前記第１のファイル記憶空間を用いて、前記第１のエミュレートされた記憶装置での前記第１のＳＣＳＩコマンドの履行をエミュレートするやり方で、前記第１のＳＣＳＩコマンドの前記履行を行う動作と、
前記フロントエンドが、第２のネットワーク通信を受信する動作と、
前記フロントエンドが、前記第２のネットワーク通信から第２のＳＣＳＩコマンドを抽出する動作と、
前記エミュレーションソフトウェアコンポーネントが、前記第２の抽出されたＳＣＳＩコマンドを受け取る動作と、
前記第２のＳＣＳＩコマンドが前記第２のエミュレートされた記憶装置用として意図されたものであると判定する動作と、
前記エミュレーションソフトウェアコンポーネントが、前記第２のエミュレートされた記憶装置に対応する前記第２のプロパティおよび前記第２のファイル記憶空間を用いて、前記第２のエミュレートされた記憶装置での前記第２のＳＣＳＩコマンドの履行をエミュレートするやり方で、前記第２のＳＣＳＩコマンドの前記履行を行う動作とを実行することを特徴とするコンピュータ読取り可能な媒体。
【請求項５４】
前記エミュレーションソフトウェアコンポーネントが、前記物理記憶装置内の第１の記憶空間を、前記第１のエミュレートされた記憶装置に関連付ける前記コンピュータ実行可能な命令は、前記１つまたは複数のプロセッサによって実行されると、
前記エミュレーションソフトウェアコンポーネントが、前記第１のエミュレートされた記憶装置に向けられたＳＣＳＩコマンドに応答して、使われる記憶空間を含む第１のファイルを作成する動作を、前記物理記憶装置に実施させるコンピュータ実行可能な命令を含むことを特徴とする請求項５３に記載のコンピュータ読取り可能な媒体。
【請求項５５】
前記エミュレーションソフトウェアコンポーネントが、前記物理記憶装置内の第２の記憶空間を、前記第２のエミュレートされた記憶装置に関連付ける前記コンピュータ実行可能な命令は、前記１つまたは複数のプロセッサによって実行されると、
前記エミュレーションソフトウェアコンポーネントが、前記第２のエミュレートされた記憶装置に向けられたＳＣＳＩコマンドに応答して、使われる記憶空間を含む第２のファイルを作成する動作を、前記物理記憶装置に実施させるコンピュータ実行可能な命令を含むことを特徴とする請求項５４に記載のコンピュータ読取り可能な媒体。
【請求項５６】
前記第１の装置種別はディスクドライブであり、前記第２の装置種別はテープドライブであることを特徴とする請求項５３に記載のコンピュータ読取り可能な媒体。
【請求項５７】
前記第１の装置種別はディスクドライブであり、前記第２の装置種別はテープチェンジャであることを特徴とする請求項５３に記載のコンピュータ読取り可能な媒体。
【請求項５８】
前記第１の装置種別はディスクドライブであり、前記第２の装置種別は読出し書込みコンパクトディスクであることを特徴とする請求項５３に記載のコンピュータ読取り可能な媒体。
【請求項５９】
前記第１の装置種別はテープドライブであり、前記第２の装置種別はテープチェンジャであることを特徴とする請求項５３に記載のコンピュータ読取り可能な媒体。
【請求項６０】
前記第１の装置種別はテープドライブであり、前記第２の装置種別は読出し書込みコンパクトディスクであることを特徴とする請求項５３に記載のコンピュータ読取り可能な媒体。
【請求項６１】
前記第１の装置種別はテープチェンジャであり、前記第２の装置種別は読出し書込みコンパクトディスクであることを特徴とする請求項５３に記載のコンピュータ読取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク通信技術に関し、より詳細には、様々な物理特性を有するＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）装置をエミュレートするために、ネットワーク上で物理記憶装置を構成する機構に関する。
【背景技術】
【０００２】
コンピューティング技術は、仕事の方法や遊び方を変容させた。典型的な構成において、コンピューティングシステムは、最適な動作のために、ローカルバスを介して様々なハードウェア装置に結合される。このような装置には、たとえば、磁気ディスクドライブおよび／または光ディスクドライブ、プリンタ、ファックス機器、スキャナ、カメラなどが含まれる。コンピューティングシステムは、接続されたハードウェア装置それぞれと、ハードウェア装置によって認識される標準通信プロトコルを用いて通信する。
【０００３】
コンピューティングシステムと、コンピューティングシステムに接続された様々なハードウェア装置との間の通信のために一般的に使用される１つの通信プロトコルが、「Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ」（略してＳＣＳＩ）と呼ばれる並列インターフェース規格である。ＳＣＳＩは、コンピューティングシステムと、その様々な周辺装置との間のデータの効果的なブロック転送を可能にする。しかし、ＳＣＳＩは、一定の制限を有する。具体的には、ＳＣＳＩを用いるデータ転送は、他のデータ転送機構と比べると比較的遅い。さらに、ＳＣＳＩのケーブルの長さは、拡張ネットワークと比べると比較的短い。したがって、ＳＣＳＩが純粋な形で利用されている場合、ハードウェア装置は通常、コンピューティングシステムの近くになければならない。
【０００４】
最近になって、ＳＣＳＩ装置は、バスを介してローカルに接続されるよりも、ネットワークを介してコンピューティングシステムに接続されるようになっている。このような、ネットワーク接続されたＳＣＳＩ装置は、より柔軟なネットワークトポロジを可能にする。というのは、ＳＣＳＩ装置は、複数のコンピューティングシステムにサービスを提供することができ、サービス提供先のどのコンピューティングシステムにもローカルに接続されなくてよいからである。ただし、ＳＣＳＩコマンドは、ネットワーク転送と互換性のある形式にカプセル化されていないと、ネットワークを介して直接伝達されることができない。したがって、ネットワークを介してＳＣＳＩコマンドを伝達する様々な機構が開発されている。
【０００５】
このような機構の１つが、「Ｉｎｔｅｒｎｅｔ  ＳＣＳＩ」（略して「ｉＳＣＳＩ」）と呼ばれる、ＳＣＳＩに対する改良版である。ｉＳＣＳＩは、イーサネット（登録商標）およびインターネットなど、任意のＩＰベースのネットワークを介しても標準ＳＣＳＩコマンドおよび応答を伝達することを可能にする規格である。コンピューティングシステムは、ｉＳＣＳＩ規格を用いてターゲットデバイスとの通信を開始する「イニシエータ」（ハードウェアでもソフトウェアでもよい）を含む。具体的には、ＳＣＳＩメッセージは、必要であれば断片化され、次いで、インターネットプロトコル（ＩＰ）ヘッダとともにカプセル化され、ＩＰネットワークを介して送信される。ターゲットデバイスは次いで、ＳＣＳＩコマンドを抽出して実行し、応答があるときは、ｉＳＣＳＩ規格を用いてＩＰベースのネットワークを介し応答を返す。ネットワークを介してＳＣＳＩコマンドを伝達する別の方法は、ファイバーチャネルと呼ばれる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
１つまたは複数のＳＣＳＩ装置をエミュレートすること、または、複数の装置に単一のＳＣＳＩ装置をエミュレートさせることが、装置にとって時として有益である。たとえば、情報処理技術（ＩＴ）管理者が使用可能な１００ギガバイトのハードドライブをもっているが、いくつもの記憶装置が必要であると仮定する。たとえば、ＩＴ管理者は、１０個のハードディスク、すなわち各クライアントに１つのハードディスク、毎晩のバックアップ用に１つのテープドライブを必要とする場合がある。１００ギガバイトの１つのハードドライブに異なる５個のハードドライブおよび１つのテープドライブをエミュレートさせた方が、こうした装置を個別に購入するよりもはるかに安上がりであろう。
【０００７】
したがって、１つの物理記憶装置が他の複数の記憶装置をエミュレートする機構が有益
であろう。
【課題を解決するための手段】
【０００８】
当該分野の従来の状態に伴う上記の課題は、本発明の原理によって克服される。本発明の原理は、記憶機能を有する物理記憶装置（たとえばハードディスク、テープドライブ、テープチェンジャ、または読出し書込みコンパクトディスク）が、ＳＣＳＩコマンドに応答することができる１つまたは複数のＳＣＳＩ記憶装置をエミュレートすることを可能にする機構を対象とする。この物理記憶装置は、それがエミュレートする記憶装置と同じ装置種別でなくてよい。たとえば、ディスクドライブが、テープドライブをエミュレートするのに使われることができる。このことは、周辺記憶装置の構成に関して、より一層の柔軟性を与える。
【０００９】
物理記憶装置は、３つのソフトウェアコンポーネント、すなわち構成インターフェース、フロントエンドコンポーネント、およびエミュレーションソフトウェアコンポーネントを有する。構成インターフェースは、エミュレートされる記憶装置のプロパティを指定する構成関数呼出しを受け取る。フロントエンドコンポーネントは、ネットワーク通信を受信し、そのネットワーク通信からＳＣＳＩコマンドを抽出する。エミュレーションソフトウェアコンポーネントは、構成関数呼出しに応答して、物理記憶装置内にファイルを確立する。コンポーネントは次いで、ＳＣＳＩコマンドがエミュレートされる記憶装置用として意図されたものであると判定する。それに応答して、コンポーネントは、エミュレートされる記憶装置に対応するプロパティおよびファイル記憶空間を用いて、エミュレートされる記憶装置上でのＳＣＳＩコマンドの履行をエミュレートする方法で、ＳＣＳＩコマンドを履行する。
【００１０】
エミュレーションを実施する物理記憶装置は、エミュレートされる記憶装置と同じ記憶装置種別でなくてよい。たとえば、ディスクドライブを、テープドライブ、テープチェンジャ、読出し書込みコンパクトディスク、または他の種別の記憶装置をエミュレートするのに用いてもよい。同様に、テープドライブを、ディスクドライブ、テープチェンジャ、読出し書込みコンパクトディスク、または他の記憶装置をエミュレートするのに用いてもよい。テープチェンジャを、ディスクドライブ、テープドライブ、読出し書込みコンパクトディスク、および他の記憶装置をエミュレートするのに用いてもよい。読出し書込みコンパクトディスクを、ディスクドライブ、テープドライブ、テープチェンジャ、または他の記憶装置をエミュレートするのに用いてもよい。
【００１１】
１つの装置種別に別の装置種別をエミュレートさせるという柔軟性に加え、どの所与の記憶装置によってエミュレートされる装置の種別も、互いに異なるものでよい。たとえば、記憶装置が、ディスクドライブ、テープドライブ、テープチェンジャ、読出し書込みコンパクトディスク、または他の記憶装置の１つまたは複数あるいはすべてをエミュレートすることができる。したがって、ネットワーク全体の記憶能力が、より少ない記憶装置に一層容易に統合されることができ、そうすることによって、記憶要件を管理する方法に関して、ネットワーク管理者により一層の制御を与える。さらに、必要とされる記憶装置を購入せずにエミュレートすることができるので、記憶コストを、大幅に削減することができる。
【００１２】
本発明の追加の特徴および利点が、以下に続く説明で述べられるが、その一部は、以下に続く説明から明らかになり、または本発明の実施によって理解されることができよう。本発明の特徴および利点は、書き添えられた特許請求の範囲において具体的に指摘される手段および組合せによって実現され、達成されることができる。本発明のこれらおよび他の特徴は、以下の説明および書き添えられた特許請求の範囲からより完全に明らかになり、または以下に述べられる本発明の実施によって理解されることができよう。
【００１３】
本発明の上述されたおよび他の利点および特徴が達成されることができる方法を説明するために、上で簡潔に述べられた本発明のより具体的な説明が、添付の図面に示される本発明の具体的な実施形態を参照して行われる。こうした図面は本発明の典型的な実施形態を示すに過ぎず、したがって、本発明の範囲を限定するものとみなされるべきではないことを理解した上で、本発明を、添付の図面を用いてさらに具体的かつ詳細に説明する。
【発明を実施するための最良の形態】
【００１４】
本発明の原理は、記憶機能を有する物理記憶装置（たとえばハードディスク、テープドライブ、テープチェンジャ、または読出し書込みコンパクトディスク）が、１つまたは複数の記憶装置をエミュレートすることを可能にする機構に関する。物理記憶装置は、３つのソフトウェアコンポーネント、すなわち構成インターフェース、フロントエンドコンポーネント、およびエミュレーションソフトウェアコンポーネントを有する。構成インターフェースは、エミュレートされる記憶装置のプロパティを指定する構成関数呼出しを受け取る。フロントエンドコンポーネントは、ネットワーク通信を受信し、そのネットワーク通信からＳＣＳＩコマンドを抽出する。エミュレーションソフトウェアコンポーネントは、構成関数呼出しに応答して、物理記憶装置内にファイルを作成し、ＳＣＳＩコマンドがエミュレートされる記憶装置用として意図されたものであると判定し、エミュレートされる記憶装置に対応するプロパティおよびファイル記憶空間を用いて、エミュレートされる記憶装置上でのＳＣＳＩコマンドの履行をエミュレートするやり方で、ＳＣＳＩコマンドを履行する。
【００１５】
再び図面を参照すると、同じ参照番号は同じ要素を指し、本発明は、適切なコンピューティング環境において実装されるものとして示されている。以下の説明は、本発明の、例示される実施形態に基づいており、本明細書で明示的に述べられていないこれに替わる実施形態に関して本発明を限定するものと解するべきではない。
【００１６】
以下の説明では、他の指示がない限りは１つまたは複数のコンピュータによって実行される作用および動作の象徴的な表現を参照しながら本発明が説明されている。したがって、このような作用および動作は、時にはコンピュータによって実行されるものとして参照されるが、構造化された形でデータを表す電気信号をコンピュータの処理装置によって操作するステップを含むことが理解されよう。この操作は、データを変換し、またはそれをコンピュータのメモリシステム内の位置に保持し、そうすることによってコンピュータの動作を当業者によく理解された方法で再構成し、または変更する。データが保持されるデータ構造は、データの形式によって定義される特定の属性を有する、メモリの物理的な位置である。ただし、本発明は上記の状況において説明されてはいるが、限定を意図するものではなく、これ以降説明されるいくつかの作用および動作はハードウェアでも実装されることができることを、当業者は理解するであろう。
【００１７】
説明のために、図１は、こうした装置に使用可能なコンピュータアーキテクチャの一例の概略図を示す。示されているアーキテクチャは、適切な環境の一例に過ぎず、本発明の使用または機能の範囲に対するいかなる限定をも示唆することを意図していない。このコンピューティングシステムは、図１に示される任意のコンポーネント、またはその組合せに関するいかなる依存関係または要件も有していると解されるべきではない。
【００１８】
本発明は、他の数多くの汎用もしくは専用コンピューティング、または通信環境もしくは構成とも動作する。本発明との使用に適した公知のコンピューティングシステム、環境、および構成の例には、限定ではないが、携帯電話、ポケットコンピュータ、パーソナルコンピュータ、サーバ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ミニコンピュータ、メインフレームコンピュータ、および任意の上記のシステムまたは装置を含む分散型コンピューティング環境などがある。
【００１９】
最も基本的な構成において、コンピューティングシステム１００は通常、少なくとも１つの処理装置１０２およびメモリ１０４を含む。メモリ１０４は、揮発性（ＲＡＭなど）でも、不揮発性（たとえばＲＯＭ、フラッシュメモリなど）でも、この２つの何らかの組合せでもよい。この最も基本的な構成は、図１に破線１０６で示される。
【００２０】
記憶媒体装置は、追加の特徴および機能を有することができる。たとえば、記憶媒体装置は、限定ではないが、ＰＣＭＣＩＡカード、磁気ディスク、光ディスク、および磁気テープを含む追加の記憶装置（リムーバブルおよび固定型）を含むことができる。このような追加の記憶装置は、図１にリムーバブル記憶装置１０８および固定記憶装置１１０によって示される。コンピュータ記憶媒体は、コンピュータ読取り可能な命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納する任意の方法または技術において実装される、揮発性および不揮発性媒体、リムーバブルおよび固定型媒体を含む。メモリ１０４、リムーバブル記憶装置１０８、および固定記憶装置１１０は、すべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、限定ではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク、他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、他の磁気記憶装置、および、所望の情報を格納するのに用いることができ、コンピューティングシステムがアクセスすることのできる他のいかなる媒体も含む。
【００２１】
本明細書で使用される、「モジュール」または「コンポーネント」という用語は、コンピューティングシステム上で実行されるソフトウェアオブジェクトまたはルーチンを指す。本明細書に記載される、異なるコンポーネント、モジュール、エンジン、およびサービスは、コンピューティングシステム上で実行されるオブジェクトまたは処理として（たとえば、個別のスレッドとして）実装されることができる。本明細書で説明されるシステムおよび方法は、好ましくはソフトウェアとして実装されるが、ソフトウェアおよびハードウェア、またはハードウェアとしての実装も可能であり、検討される。
【００２２】
コンピューティングシステム１００は、ホストが他の装置と通信することを可能にする通信チャネル１１２も含むことができる。通信チャネル１１２は、通信媒体の例である。通信媒体は一般に、コンピュータ読取り可能な命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送機構などの変調データ信号で具現化し、任意の情報配信媒体を含む。「変調データ信号」という用語は、信号に情報を符号化するようにその特性の１つまたは複数が設定された、または変更された信号を意味する。限定ではなく例として、通信媒体は、配線接続された媒体、たとえば配線接続されたネットワークおよび直接配線接続、ならびに無線媒体、たとえば音波、無線電信、赤外線、および他の無線媒体を含む。本明細書で使用されるコンピュータ読取り可能な媒体という用語は、記憶媒体および通信媒体の両者を含む。
【００２３】
コンピューティングシステム１００は、たとえばキーボード、マウス、ペン、音声入力コンポーネント、タッチ式入力装置などの入力コンポーネント１１４も有することができる。出力コンポーネント１１６は、スクリーンディスプレイ、スピーカ、プリンタなど、および描画モジュール（しばしば、「アダプタ」と呼ばれる）を含む。コンピューティングシステム１００は、電源装置１１８を有する。こうしたすべてのコンポーネントは、当該分野において公知であり、本明細書で詳細に説明される必要はない。
【００２４】
図２は、本発明の原理を利用することができるネットワーク環境２００を示す。ネットワーク環境２００は、ネットワーク２１０を介して物理記憶装置２２０と通信することができる多数のコンピューティングシステム２０１を含む。ネットワーク２１０は、たとえば、インターネット、ローカルエリアネットワーク、仮想私設ネットワーク（ＶＰＮ）、または他の任意のネットワークでよい。物理記憶装置２２０と通信することができる任意の数のコンピューティングシステム２０１が存在し得る。ただし、図２は、５つのコンピューティングシステム２０１Ａから２０１Ｅを示す。より多くのコンピューティングシステム（横に伸びる省略符号２０１Ｆで表されるようなコンピューティングシステム）があっても、より少ないコンピューティングシステムがあってもよい。１つのコンピューティングシステムでも可能である。
【００２５】
各コンピューティングシステム２０１は、コンピューティングシステム１００に関して上述したように構築されることができるが、そうすることが必要とされるわけではない。ただし、その場合は、コンピューティングシステム１００は、ネットワーク１２０を介した通信に関して説明した方法で通信チャネル１１２を使用することによって、ネットワーク２１０を介し物理記憶装置２２０と通信することができる。
【００２６】
物理記憶装置２２０は、たとえば、ディスクドライブ、テープドライブ、テープチェンジャ、読出し書込みコンパクトディスク、または他の任意の記憶装置でよい。物理記憶装置２２０は、ソフトウェアの実行を可能にする、関連する処理能力を有する。この処理能力は、物理記憶装置２２０内に統合されることもでき、物理記憶装置２２０に関連付けられたコンピューティングシステムによって実装されることもできる。物理記憶装置２２０上で実行されるソフトウェアコンポーネントは、フロントエンド２２２、キュー２３０、エミュレーションソフトウェアコンポーネント２４０、および構成インターフェース２６０を含む。
【００２７】
構成インターフェース２６０は、たとえば、ＷＩＮＤＯＷＳ（登録商標）  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｓｔｒｕｍｅｎｔａｔｉｏｎ（略して「ＷＭＩ」）インターフェースでよい。簡潔に言うと、構成インターフェース２６０は、物理記憶装置によってエミュレートされる記憶装置のプロパティを指定する構成関数呼出しを受け取る。言い換えると、構成インターフェース２６０を介して指定されたプロパティを用いて、エミュレーションソフトウェアコンポーネント２４０を、たとえば、ファイルを使用するディスクドライブのシミュレート方法など、様々なシナリオに対して、どのように対処するかを指示する。
【００２８】
フロントエンドコンポーネント２２２は、ネットワーク２１０からネットワーク通信２２１を受信するように構成される。このようなネットワーク通信は、ネットワークを介した転送用にＳＣＳＩコマンドをカプセル化するのに用いることができる、ｉＳＣＳＩ、ファイバーチャネル、ＵＳＢまたはＩＥＥＥ１３９４プロトコル、あるいは他の任意のプロトコルに準拠することができる。フロントエンドコンポーネント２２２は次いで、ネットワーク通信２２１からＳＣＳＩコマンド２２３を抽出し、次いで、キュー２３０を介してエミュレーションソフトウェアコンポーネント２４０にＳＣＳＩコマンドを提供する。ＳＣＳＩコマンドの実行が完了すると、ＳＣＳＩ応答２２４は、フロントエンドコンポーネント２２２に返される。
【００２９】
一実装形態では、エミュレートされる各記憶装置に専用のキューが１つある。たとえば、キュー２３０は、キュー２３０Ａ、２３０Ｂ、２３０Ｃおよび２３０Ｄを含み、こうしたキューは、エミュレートされる記憶装置２５０Ａ、２５０Ｂ、２５０Ｃ、および２５０Ｄに対応し、こうした記憶装置は、エミュレーションソフトウェアコンポーネント２４０によって維持される。さらに、他のキュー２３０Ｅが、エミュレートされるさらに他のハードウェア装置２５０Ｅ用に使われることができる。エミュレーションソフトウェアコンポーネント２４０は、キュー２３０からＳＣＳＩコマンドを取り出す。一例では、こうしたコマンドは、エミュレートされる任意の記憶装置の、デバイススターベーション（ｄｅｖｉｃｅ  ｓｔａｒｖａｔｉｏｎ）を防ぐような任意の方法においても、キュー２３０から取り出される。たとえば、エミュレーションソフトウェアコンポーネント２４０は、ラウンドロビン方式において、各キューからＳＣＳＩコマンドを取り出すことができる。
【００３０】
エミュレーションソフトウェアコンポーネント２４０は、たとえば、コマンド記述子ブロック（すなわち「ＣＤＢ」エンジン）でよく、構成インターフェース２６０を介して構成されたように、また、フロントエンド２２２からキュー２３０を介して受け取られたＳＣＳＩコマンドに応答して、装置のエミュレーションを実際に実施する。
【００３１】
上述したように、物理記憶装置２２０は、ハードディスク、テープドライブ、テープチェンジャ、読出し書込みコンパクトディスク、または他のどの記憶装置でもよい。さらに、エミュレートされる記憶装置も、ハードディスク、テープドライブ、テープチェンジャ、読出し書込みコンパクトディスク、または他の任意の記憶装置でよい。
【００３２】
ただし、物理記憶装置２２０は、エミュレートされる記憶装置と同じ記憶装置種別でなくてよい。たとえば、ディスクドライブを、テープドライブ、テープチェンジャ、読出し書込みコンパクトディスク、または他の種別の記憶装置をエミュレートするのに用いることができる。同様に、テープドライブを、ディスクドライブ、テープチェンジャ、読出し書込みコンパクトディスク、または他の記憶装置をエミュレートするのに用いることができる。テープチェンジャを、ディスクドライブ、テープドライブ、読出し書込みコンパクトディスク、および他の記憶装置をエミュレートするのに用いることができる。読出し書込みコンパクトディスクを、ディスクドライブ、テープドライブ、テープチェンジャ、または他の記憶装置をエミュレートするのに用いることができる。
【００３３】
１つの装置種別に別の装置種別をエミュレートさせるという柔軟性に加え、どの所与の記憶装置によってエミュレートされる装置の種別も、互いに異なるものでよい。たとえば、記憶装置は、ディスクドライブ、テープドライブ、テープチェンジャ、読出し書込みコンパクトディスク、または他の記憶装置の１つまたは複数あるいはすべてをエミュレートすることができる。したがって、ネットワーク全体の記憶能力を、より少ない記憶装置に一層容易に統合されることができ、そうすることによって、記憶要件を管理する方法に関して、ネットワーク管理者により一層の制御性を与える。さらに、必要とされる記憶装置を購入せずにエミュレートすることができるので、記憶コストを大幅に削減することができる。
【００３４】
ネットワーク環境２００および物理記憶装置２２０の全体構造を、図２に関して説明してきた。次に、物理記憶装置が１つまたは複数の記憶装置をエミュレートする方法３００を、図２に示される要素にしばしば戻って参照しながら、図３に関して説明する。方法３００を、エミュレーションソフトウェアコンポーネント２４０によってエミュレートされる各記憶装置に対して繰り返し行うことができる。さらに、エミュレートされる任意の記憶装置に対し、以下で説明されるプロパティおよびファイルを用いてエミュレートされる記憶装置をエミュレートする物理記憶装置に対するステップ（ステップ３１０）を、エミュレートされるその記憶装置用として意図された受信される各ネットワーク通信に対して繰り返すことができる。
【００３５】
図３を参照すると、方法３００の動作のいくつかは、「フロントエンド」という見出しの下の、図３の左の列に列挙されるように、フロントエンドコンポーネント２２２によって実施される。方法３００の他の動作は、「エミュレーションソフトウェアコンポーネント」という見出しの下の、図３の右の列に示されるように、エミュレーションソフトウェアコンポーネント２４０によって実行される。
【００３６】
エミュレーションソフトウェアコンポーネントは、物理記憶装置によってエミュレートされる記憶装置のプロパティを指定する構成関数呼出しを受け取る（動作３０１）。図２を参照すると、この動作は、構成インターフェース２６０によって遂行されることができる。関数呼出しは、たとえば、新規の記憶装置をエミュレートするための要求でも、既存のエミュレートされた記憶装置に対し新しいプロパティを設定するための要求でもよい。以下は、アプリケーションプログラムインターフェース（ＡＰＩ）であって、このＡＰＩを用い、特定のプロパティをもつ新規のエミュレートされた装置を作成することができる。
【００３７】
【表１】
2005078641.tif 000003
【００３８】
ＣｒｅａｔｅＤｅｖｉｃｅメソッドは、３つの入力パラメータをとる。ＣｒｅａｔｅＮｅｗはブール値であり、新規のエミュレートされた記憶装置を作成するように、真に設定されなければならない。Ｐｒｏｐｅｒｔｉｅｓは、ＳｏｆｔＳｃｓｉＤｅｖｉｃｅＰｒｏｐｅｒｔｉｅｓ型のデータ構造であり、エミュレートされた記憶装置のプロパティを定義する。ＤｅｖｉｃｅＮａｍｅは、作成される、エミュレートされた記憶装置用の装置名を定義する文字列である。このＡＰＩを配置すると、エミュレーションソフトウェアコンポーネント２４０は、エミュレートされる新規の記憶装置を作成するだけでなく、物理記憶装置２２０が、指定されたプロパティを有する新規の装置をエミュレートするのに十分なリソースをもっているかも検証する。
【００３９】
以下は、ＳｏｆｔＳｃｓｉＤｅｖｉｃｅＰｒｏｐｅｒｔｉｅｓクラスの定義である。
【００４０】
【表２】
2005078641.tif 000004
【００４１】
最初の４つのフィールド、すなわち、ＶｅｎｄｏｒＩＤフィールド、ＰｒｏｄｕｃｔＩＤフィールド、ＰｒｏｄｕｃｔＲｅｖｉｓｉｏｎＬｅｖｅｌフィールド、およびＤｅｖｉｃｅＴｙｐｅフィールドは、ＳＣＳＩ装置用の標準ＳＣＳＩプロパティであり、それぞれ、エミュレートされた記憶装置のＳＣＳＩのベンダＩＤ、ＳＣＳＩの製品ＩＤ、ＳＣＳＩの製品改訂レベル、およびＳＣＳＩ装置の種別を指定する。ＳＣＳＩの当業者であれば、こうしたフィールドを熟知しているであろう。
【００４２】
次の３つのフィールド、すなわち、ＢｌｏｃｋＳｉｚｅフィールド、ＮｕｍｂｅｒＯｆＢｌｏｃｋｓフィールド、およびＴｏｔａｌＮｕｍｂｅｒＯｆＢｌｏｃｋｓフィールドは、エミュレートされた装置の全体的なメモリ構成を定義する。ＢｌｏｃｋＳｉｚｅフィールドは、エミュレートされた装置のブロックサイズを定義する。ＴｏｔａｌＮｕｍｂｅｒＯｆＢｌｏｃｋｓフィールドは、エミュレートされた装置が構成され、使用することが可能である、そうしたブロックの総数を定義する。ＮｕｍｂｅｒＯｆＢｌｏｃｋｓフィールドは、エミュレートされた装置が現在、使用するように構成されているブロック数を定義する。ＮｕｍｂｅｒＯｆＢｌｏｃｋｓフィールドは、ＴｏｔａｌＮｕｍｂｅｒＯｆＢｌｏｃｋｓフィールドより小さい。
【００４３】
最後の２つのフィールド、すなわち、ＲｅａｄＣａｃｈｅＥｎａｂｌｅｄおよびＷｒｉｔｅＣａｃｈｅＥｎａｂｌｅｄフィールドは、それぞれ、エミュレートされた装置が、読出しキャッシュ機能をもつか、または書込みキャッシュ機能をもつかを指定するブール値である。
【００４４】
次のＡＰＩを用い、既に作成され、エミュレートされた記憶装置のプロパティを設定し、または変更することができる。
【００４５】
【表３】
2005078641.tif 000005
【００４６】
ＳｅｔＤｅｖｉｃｅＰｒｏｐｅｒｔｉｅｓメソッドも、ＳｏｆｔＳｃｓｉＤｅｖｉｃｅＰｒｏｐｅｒｔｉｅｓデータ構造を用いてプロパティを定義する。ただし、この場合、このメソッドは、既に作成されている、エミュレートされた記憶装置の装置名を入力する。
【００４７】
構成インターフェース２６０を介して配置されることができる、他の有用なＡＰＩが存在する。次のＡＰＩを用い、既に作成され、エミュレートされた装置のプロパティを入手することができる。
【００４８】
【表４】
2005078641.tif 000006
【００４９】
プロパティが照会されている、エミュレートされた装置は、装置名によって定義される。戻り値として、プロパティが、その装置名に関連付けられたＳｏｆｔＳｃｓｉＤｅｖｉｃｅＰｒｏｐｅｒｔｉｅｓ構造で提供される。さらに、ブール値ＤｅｖｉｃｅＶａｌｉｄは返され、装置名が有効であるか否かを示す。任意で、装置の一義的な名前も返される。
【００５０】
構成インターフェースを介して次のＡＰＩを配置し、ある特定のエミュレートされた装置に関連付けられた使用データ（たとえば、書き込まれ読み出されるバイト数）を取得することができる。
【００５１】
【表５】
2005078641.tif 000007
【００５２】
構成インターフェースを介して次のＡＰＩを配置し、記憶装置を適正にエミュレートするのにどれ程の記憶空間が必要とされるか判定することができる。
【００５３】
【表６】
2005078641.tif 000008
【００５４】
ＬｏｇｉｃａｌＵｎｉｔＳｉｚｅメソッドは、装置のプロパティおよび装置名から、記憶装置を適正にエミュレートするのに必要とされる物理的なブロックサイズおよび総バイトサイズを判定する。
【００５５】
図３を再び参照すると、関数呼出しを受けたことに応答して、エミュレーションソフトウェアコンポーネントは、エミュレートされた装置に関連付けられた物理記憶装置内に記憶空間を確立する（動作３０２）。たとえば、エミュレートされた装置用に、ファイルの形式で記憶空間を分離することができる。ファイルサイズは、ブロックサイズとブロック総数との積に、ある程度のオーバーヘッドストレージ（ｏｖｅｒｈｅａｄ  ｓｔｏｒａｇｅ）を加えたものと等しくなる。オーバーヘッドストレージは、ファイルの記憶場所と、エミュレートされた装置の特定のブロックとの相互関係を示し、およびどのブロックが使われることができ、または使われることができないかを追跡する追跡データを含む。記憶空間は、ファイルを使わずに確立することもでき、この場合、追跡データは、どの物理的な記憶位置が、エミュレートされた記憶装置のどのブロックに対応するのかを追跡する。
【００５６】
記憶装置をエミュレートするためのファイルの使用は、ファイルが便宜的にバックアップされ、サイズ変更され、または維持されることができるので有益である。一実施形態では、エミュレーションソフトウェアコンポーネント２４０は、ファイルを使用しない記憶装置のエミュレート専用の別のエミュレーションソフトウェアコンポーネントを伴って、記憶装置をエミュレートするためだけにファイルを使用する。
【００５７】
プロパティがエミュレートされる装置が読出しキャッシュ機能または書込みキャッシュ機能をもつことを示す場合、エミュレーションソフトウェアコンポーネント２４０はファイルシステムに命令し、ファイルに対する読出しキャッシュまたは書込みキャッシュを可能にすることができる。それに替えて、またはそれに加えて、エミュレーションソフトウェアコンポーネント２４０は、それ自身のキャッシュメモリを維持することができる。
【００５８】
この方法は、プロパティおよびファイルを用いてエミュレートされた記憶装置をエミュレートする物理記憶装置に対する、機能的な、結果指向のステップ（ステップ３１０）も含む。このステップは、この結果を達成するための、いかなる対応する動作も含むことができる。ただし、図示された実施形態においては、ステップ３１０は、対応する動作３１１から３１５を含む。
【００５９】
具体的には、フロントエンドが、ネットワーク通信を受信する（動作３１１）。上述したように、ネットワーク通信は、ネットワークを介した転送を可能にし、かつＳＣＳＩコマンドなどのデータを含めることも可能にする任意のプロトコルを用いて構築されることができる。このようなプロトコルとしては、たとえば、ｉＳＣＳＩ、ファイバーチャネル、ＵＳＢ、ＩＥＥＥ１３９４などを含むことができる。フロントエンドコンポーネントは次いで、ネットワーク通信からＳＣＳＩコマンドを抽出する（動作３１２）。
【００６０】
エミュレーションソフトウェアコンポーネントは次いで、抽出されたＳＣＳＩコマンドを受信する（動作３１３）。たとえばフロントエンドコンポーネント２２２は、少なくともキュー２３０を介して間接的に、エミュレーションソフトウェアコンポーネント２４０に関数呼出しを配置することができる。関数呼出しがキュー２３０に入ると、キューは、要求保留メッセージを返すことができる。関数呼出しがエミュレーションソフトウェアコンポーネント２４０によって完了されると、エミュレーションソフトウェアコンポーネント２４０は、「要求が完了した」というメッセージをフロントエンドコンポーネント２２２に返すことができる。
【００６１】
具体的には、次のＡＰＩを用い、エミュレーションソフトウェアコンポーネントにＳＣＳＩ要求を依頼することができる。
【００６２】
【表７】
2005078641.tif 000009
【００６３】
ＳｕｂｍｉｔＲｅｑｕｅｓｔメソッドは、エミュレーションソフトウェアコンポーネントに任意のＳＣＳＩ要求を依頼するのに用いられる。ＳＣＳＩ要求が完了されると、ＳｏｆｔＳｃｓｉアダプタ（さらに以下で説明される）がオープンされるときにもたらされるＣｏｍｐｌｅｔｅＲｅｑｕｅｓｔコールバックが、ＳｏｆｔＳｃｓｉ要求とともに呼び出される。この要求は、ＰＳＯＦＴＳＣＳＩ＿ＲＥＱＵＥＳＴクラスのデータ構造によって定義される。以下は、そのデータ構造クラスを定義する。
【００６４】
【表８−１】
2005078641.tif 000010
【００６５】
【表８−２】
2005078641.tif 000011
【００６６】
【表８−３】
2005078641.tif 000012
【００６７】
ＳＯＦＴＳＣＳＩ＿ＲＥＱＵＥＳＴデータ構造は、エミュレーションソフトウェアコンポーネント２４０にＳＣＳＩ要求を依頼するための標準的な方法を提供する。ｉＳｃｓｉＴａｇＱｕｅｕｅの値は、ｉＳＣＳＩの仕様において定義される、ｉＳＣＳＩフラグの直接マッピングであり、ＳＣＳＩ要求を構築するのに必要とされる作業負荷を最小限にする。ＤａｔａＢｕｆｆｅｒＭｄｌフィールドは、ＳＣＳＩ要求中のデータバッファを記述するシステムＭＤＬである。Ｉｒｐは、要求の所有者によって提供されるヘルパＩＲＰである。
【００６８】
さらに、フロントエンドコンポーネント２２２が次のＡＰＩを呼び出し、たとえば初期化中にエミュレーションソフトウェアコンポーネント２４０をアクティブにすることができる。
【００６９】
【表９】
2005078641.tif 000013
【００７０】
この関数は、エミュレーションソフトウェアコンポーネントへのハンドルをオープンするためのものであり、エミュレーションソフトウェアコンポーネントが初期化を行う機会を提供する。この関数は、エミュレーションソフトウェアコンポーネントのインスタンスごとに呼び出される。ＳｏｆｔＳｃｓｉＤｅｖｉｃｅＯｂｊｅｃｔは、エミュレーションソフトウェアコンポーネントの装置オブジェクトである。ＣｏｍｐｌｅｔｅＲｅｑｕｅｓｔは、ＳｕｂｍｉｔＲｅｑｕｅｓｔを介して依頼されたＳＣＳＩ要求を完了するためのコールバックである。ＳｏｆｔＳｃｓｉＡｄａｐｔｅｒＨａｎｄｌｅは、エミュレーションソフトウェアコンポーネントへのハンドルである。
【００７１】
フロントエンドコンポーネントが次のＡＰＩを呼び出し、エミュレーションソフトウェアコンポーネントをクローズし、関連するリソースをクリーンアップすることができる。
【００７２】
【表１０】
2005078641.tif 000014
【００７３】
エミュレーションソフトウェアコンポーネントは、たとえば、コンピューティングシステム２０１のいずれかとのネットワーク接続が失われたときにクローズされてもよい。
【００７４】
フロントエンドコンポーネントが次のＡＰＩを呼び出し、既に作成されている、エミュレートされる装置をオープンし、そうすることによって、その装置にＳＣＳＩコマンドが発行されることができるようにすることができる。
【００７５】
【表１１】
2005078641.tif 000015
【００７６】
ＳｏｆｔＳｃｓｉＡｄａｐｔｅｒＨａｎｄｌｅは、エミュレーションソフトウェアコンポーネントへのハンドルである。ＤｅｖｉｃｅＮａｍｅは、オープンする装置の名前である。ＮｕｍｂｅｒＯｕｔｓｔａｎｄｉｎｇＲｅｑｕｅｓｔは、任意のときに装置に依頼されることができる要求の数を指定する。入力および出力パラメータ両方として、ＮｕｍｂｅｒＯｕｔｓｔａｎｄｉｎｇＲｅｑｕｅｓｔは、呼出し側が、未処理の要求の数についてエミュレーションソフトウェアコンポーネントと協議することを可能にする。戻り値は、常に呼出し側の値以下である。ＴａｒｇｅｔＮａｍｅは、不揮発性の装置名である。ＢｕｆｆｅｒＡｌｉｇｎｍｅｎｔＲｅｑｕｉｒｅｍｅｎｔは、要求とともに依頼される、データバッファに対するデータバッファの整列要求を指定する。ＳｔａｃｋＳｉｚｅは、すべての要求中のＩＲＰの、エクストラ（ｅｘｔｒａ）ＩＲＰスタック位置である。
【００７７】
次のＡＰＩは、装置をクローズし、そうすることによって、装置がＳＣＳＩコマンドをそれ以上受け付けることができないようにする。このＡＰＩにおいて、ＳｏｆｔＳｃｓｉＤｅｖｉｃｅＨａｎｄｌｅは、エミュレートされた記憶装置用のハンドルである。
【００７８】
【表１２】
2005078641.tif 000016
【００７９】
次のＡＰＩは、保留されているすべての要求をフラッシュする。
【００８０】
【表１３】
2005078641.tif 000017
【００８１】
ＳＣＳＩコマンドを受け取ると、エミュレーションソフトウェアコンポーネントは、ＳＣＳＩコマンドが、エミュレートされた記憶装置用として意図されたものであると判定する（動作３１４）。これは、ＳＣＳＩコマンドから装置名を読み出すことによって遂行されることができる。
【００８２】
次いで、エミュレーションソフトウェアコンポーネントは、エミュレートされた記憶装置に対応するプロパティおよびファイル記憶空間を用いて、エミュレートされた記憶装置上でＳＣＳＩコマンドの履行をエミュレートするやり方で、ＳＣＳＩコマンドを履行する（動作３１５）。たとえば、ファイルを用いて記憶装置をエミュレートし、その装置内のセグメントが一度に１ブロックずつ、エミュレートされた装置から読み出されまたはそこに書き込まれると、追跡データは、ブロック識別子をファイルのある特定のメモリ部分に変換するのに用いることができる。エミュレーションソフトウェアコンポーネントは次いで、対応するファイルメモリ部分から読出しを行い、またはそこへ書込みを行うことができる。要求がファイルのプロパティに関して照会を行うものである場合、そうしたプロパティを、ファイルのオーバーヘッド部分から読み出すことができる。
【００８３】
したがって、物理記憶装置を用い、異なる装置種別の異なる記憶装置をエミュレートすることができる機構が説明された。この機構は、ＩＴ管理者が、必要とされるストレージの種別に関わらずストレージを集中させることにより、記憶装置の構成において、柔軟性、およびコストが削減されることを可能にする。
【００８４】
本発明は、本発明の精神からも本質的な特性からも逸脱することなく、他の具体的な形式で実施されることもできる。説明した実施形態は、あらゆる点において例示に過ぎず、制限ではないと理解されたい。本発明の範囲は、したがって、上記の説明ではなく、添付の特許請求の範囲によって示される。特許請求の範囲の等価物の意義および範囲内であるすべての変更は、特許請求の範囲に含まれる。
【図面の簡単な説明】
【００８５】
【図１】本発明の特徴を実装することができる適切なコンピューティングシステムを示す図である。
【図２】１つまたは複数の物理的なＳＣＳＩ装置をエミュレートすることができる物理記憶装置とネットワーク接続された通信状態にあるコンピューティングシステムを含む、本発明の原理が利用されることができるネットワーク環境を示す図である。
【図３】本発明の原理による、物理記憶装置が１つまたは複数のＳＣＳＩ装置をエミュレートする方法を示すフロー図である。
【符号の説明】
【００８６】
１００    コンピューティングシステム
１０４    メモリ
１０６    コンピューティングシステムの最も基本的な構成
２００    ネットワーク環境
３００    物理記憶装置が１つまたは複数の記憶装置をエミュレートする方法
【図１】
2005078641.tif 000018
【図２】
2005078641.tif 000019
【図３】
2005078641.tif 000020