(57)【特許請求の範囲】
【請求項１】
複数のストレージ・サブシステムを備え、
前記ストレージ・サブシステムが有する論理ボリュームは、一つの仮想ストレージ・サブシステム内の仮想ボリュームとして外部の計算機に提供され、
前記ストレージ・サブシステムが有するストレージ・コントローラは、自身のストレージ・サブシステム内で一意に識別される論理ボリュームを管理すると共に、前記仮想ストレージ・サブシステム内で一意に識別される仮想ボリュームを管理し、前記論理ボリュームと前記仮想ボリュームのマッピング情報を記憶し、前記外部の計算機に該マッピング情報を提供し、
前記外部の計算機は、前記ストレージ・コントローラより前記マッピング情報を取得するコマンド処理プログラムを実行し、
前記コマンド処理プログラムは、前記仮想ボリュームのうちの或る仮想ボリュームに対するストレージ機能の登録を命令するコマンドの発行に際し、前記外部の計算機が入手した前記マッピング情報に基づき、対象となる前記仮想ボリュームに対応するターゲット論理ボリュームおよび該ターゲット論理ボリュームを有するストレージ・サブシステムを特定し、前記コマンドを、前記ターゲット論理ボリュームに対する前記ストレージ機能の登録を命令する変換済みコマンドに変換し、前記ターゲット論理ボリュームを管理するストレージ・コントローラに転送することを特徴とするストレージ・システム。
【請求項２】
請求項１に記載のストレージ・システムであって、
前記外部の計算機は、ストレージ管理端末である
ことを特徴とするストレージ・システム。
【請求項３】
ストレージ・システムにおいてストレージ機能を管理する方法であって、
前記ストレージ・システムは、複数のストレージ・サブシステムを備え、前記ストレージ・サブシステムが有する論理ボリュームは、一つの仮想ストレージ・サブシステム内の仮想ボリュームとして外部の計算機に提供され、前記ストレージ・サブシステムが有するストレージ・コントローラは、自身のストレージ・サブシステム内で一意に識別される論理ボリュームを管理すると共に、前記仮想ストレージ・サブシステム内で一意に識別される仮想ボリュームを管理し、前記論理ボリュームと前記仮想ボリュームのマッピング情報を記憶し、前記外部の計算機に該マッピング情報を提供し、
前記方法は、前記仮想ボリュームのうちの或る仮想ボリュームに対するストレージ機能の登録を命令するコマンドを発行するに際し、対象となる前記仮想ボリュームに対応するターゲット論理ボリュームおよび該ターゲット論理ボリュームを有するストレージ・サブシステムを前記マッピング情報に基づいて特定し、前記コマンドを、前記ターゲット論理ボリュームに対する前記ストレージ機能の登録を命令する変換済みコマンドに変換し、前記ターゲット論理ボリュームを管理するストレージ・コントローラに転送する処理であり、前記外部の計算機によって実行される
ことを特徴とする方法。
【請求項４】
複数のストレージ・サブシステムを備えるストレージ・システムのストレージ機能を管理するために、外部の計算機が実行する命令を記憶するコンピュータで読み出し可能な記憶媒体であって、
前記ストレージ・サブシステムが有する論理ボリュームは、一つの仮想ストレージ・サブシステム内の仮想ボリュームとして外部の計算機に提供され、
前記ストレージ・サブシステムが有するストレージ・コントローラは、自身のストレージ・サブシステム内で一意に識別される論理ボリュームを管理すると共に、前記仮想ストレージ・サブシステム内で一意に識別される仮想ボリュームを管理し、前記論理ボリュームと前記仮想ボリュームのマッピング情報を記憶し、前記外部の計算機に該マッピング情報を提供し、
前記命令は、前記仮想ボリュームのうちの或る仮想ボリュームに対するストレージ機能の登録を命令するコマンドを発行するに際し、対象となる前記仮想ボリュームに対応するターゲット論理ボリュームおよび該ターゲット論理ボリュームを有するストレージ・サブシステムを前記マッピング情報に基づいて特定し、前記コマンドを、前記ターゲット論理ボリュームに対する前記ストレージ機能の登録を命令する変換済みコマンドに変換し、前記ターゲット論理ボリュームを管理するストレージ・コントローラに転送する処理を実行させるものである
ことを特徴とするコンピュータで読み出し可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
０００１    本発明は、一般的にはストレージ・システムに関し、特に多重ストレージ・サブシステムの仮想化のための管理インターフェースに関する。
【背景技術】
【０００２】
０００２    “仮想ストレージ・サブシステム”は、ストレージ仮想化技術の１つである。ストレージ仮想化は、多重ストレージ・サブシステム環境においてアロケーションに注意を払わなくともよいストレージ管理方法を提供する。仮想化は、サーバまたはサーバのユーザが各ストレージ・サブシステムの境界に注意払わなくともよいようにする。該ストレージ管理方法は、各ボリュームを同じ単一の仮想ストレージ・サブシステムに属するものとして扱う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第７，９９１，８６０号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
０００３    １つのストレージ仮想化技術が米国特許第７，９９１，８６０号（特許文献１）において開示されている。従来、ユーザが多重ストレージ・サブシステムを有する場合、各ストレージ・サブシステムあるいはボリュームはストレージ・サブシステム間で継承されることのできない独立のＩＤを有する。各ストレージ・サブシステムは、それを管理し制御するための独立のユーザ・インターフェースを提供する。ストレージ機能の設定は、仮想ストレージ・サブシステム環境において同様の問題を引き起こす。ユーザが仮想ボリュームにストレージ機能を設定するときには、要求を送るためにオーナーのストレージ・サブシステムと仮想ボリュームの関連論理ボリュームとを特定する必要があるが、これは困難である。仮想化は、ユーザが各ストレージ・サブシステムの境界に注意を払わなくともよい単一ストレージ・サブシステムのようなインターフェースを提供する。そのような環境では、ユーザが或るボリュームに対してストレージ機能を設定するときにユーザが境界に注意を払うことを実際にはするべきではない。あるボリュームに対するストレージ機能を該ボリュームが作成されるときに設定することは容易である。なぜならば、ストレージ・システムはその時に該ボリュームを記憶するべきストレージ・サブシステムを選択する権利を有するからである。しかし、ボリュームが既に作成されていて、ストレージ機能の設定がボリューム作成の完了後に行われる場合には、それは困難である。なぜならば、ストレージ・システムは、ボリュームが属する物理的ストレージ・サブシステムを特定してストレージ機能を設定する要求を送る必要があるからである。
【課題を解決するための手段】
【０００５】
０００４    本発明の代表的な実施形態は、多重ストレージ・サブシステム仮想化のための管理インターフェースを提供する。従来、ユーザが多重ストレージ・サブシステムを有する場合には、ユーザは、仮想ボリュームに対してストレージ機能を設定するために、論理ボリュームと、そのオーナー・ストレージ・サブシステムとを特定するプロセスが必要であった。本発明は、ユーザをこの特定プロセスから解放し、これによりストレージ・システムが仮想ボリュームに対して直接機能を設定するユーザ・インターフェースを有することを可能にする。
【０００６】
０００５    本発明は、多重ストレージ仮想化環境において既に作成されているボリュームに対して機能を設定することを可能にする。ストレージ・システムは仮想構成と論理／物理的構成との間の（例えば、仮想ボリュームと物理的ストレージ・サブシステムと物理的ストレージ・サブシステム内の論理ボリュームとの間の）関係を管理する。ストレージ機能を設定する要求を受け取ると、ストレージ・システムは、指定された仮想ボリュームの論理／物理的ＩＤを特定する。ストレージ・システムは、ストレージ機能を設定する要求を物理的デバイスに送る。ストレージ・サブシステムが、別のストレージ・サブシステム内の或るボリュームに対する機能設定要求を受け取ったならば、該ストレージ・サブシステムはその要求を該別のストレージ・サブシステムに転送する。
【０００７】
０００６    本発明の１つの特徴では、ストレージ・システムは、複数の仮想ボリュームを管理する複数のストレージ・コントローラを有する複数のストレージ・サブシステムであって、複数のストレージ・コントローラの各々は、複数の論理ボリュームを管理し、複数の仮想ボリュームのうちの或る仮想ボリュームのデータを複数の論理ボリュームのうちの或る論理ボリュームに記憶することを制御する、該複数のストレージ・サブシステムと、複数の仮想ボリュームのうちの或る仮想ボリュームに対するストレージ機能の登録を命令するコマンドを受け取ったことに応答して、その受け取ったコマンドを、複数の仮想ボリューム、複数の論理ボリューム、および複数のストレージ・コントローラの間のマッピングに基づいて、複数の論理ボリュームのうちの或るターゲット論理ボリュームに対するストレージ機能の登録を命令する変換済みコマンドに変換するように動作する制御モジュールとを含む。ターゲット論理ボリュームを管理するストレージ・コントローラは、ターゲット論理ボリュームに対するストレージ機能の登録を命令する変換済みコマンドを処理する。制御モジュールは、複数のストレージ・コントローラの少なくとも１つまたはストレージ・システム内の他の１つのコンピュータに設けられる。
【０００８】
０００７    ある実施形態では、制御モジュールは、ターゲット論理ボリュームを管理するストレージ・コントローラに変換済みコマンドを転送するように構成される。制御モジュールは、ストレージ・サブシステムの各々の中のストレージ・コントローラに設けられる。ストレージ・サブシステムの各々は、複数の仮想ボリューム、複数の論理ボリューム、および複数のストレージ・コントローラの間のマッピングを記憶する。制御モジュールは、ストレージ機能が実行されるターゲット論理ボリュームの状態を更新するように構成される。ストレージ・システムは、制御モジュールを含むホスト・コンピュータをさらに含み、ホスト・コンピュータは、該受け取られたコマンドに応答して複数のストレージ・サブシステムから情報を集めることによって、複数の仮想ボリューム、複数の論理ボリューム、および複数のストレージ・コントローラの間のマッピングを更新する。あるいは、ストレージ・システムは制御モジュールを含む管理端末をさらに含み、管理端末は、複数の仮想ボリューム、複数の論理ボリューム、および複数のストレージ・コントローラの間のマッピングを記憶する。あるいは、制御モジュールはストレージ・サブシステムの各々に設けられ、該コマンドはストレージ・コントローラの各々に送信され、ストレージ・サブシステムの各々は複数の仮想ボリューム、複数の論理ボリューム、および複数のストレージ・コントローラの間のマッピングを記憶し、ターゲット論理ボリュームを管理するストレージ・コントローラは、該変換済みコマンドに基づいて、ターゲット論理ボリューム上で実行されるべきストレージ機能を登録する。
【０００９】
０００８    本発明の他の形態では、ストレージ・システムにおいてストレージ機能を管理する方法を考慮しており、ストレージ・システムは、複数の仮想ボリュームを管理する複数のストレージ・コントローラを有する複数のストレージ・サブシステムを含み、複数のストレージ・コントローラの各々は、複数の論理ボリュームを管理し、複数の仮想ボリュームのうちの或る仮想ボリュームのデータを複数の論理ボリュームのうちの或る論理ボリュームに記憶することを制御する。この方法では、複数の仮想ボリュームのうちの或る仮想ボリュームに対するストレージ機能の登録を命令するコマンドをストレージ・システム内の制御モジュールにより受け取ったことに応答して、その受け取られたコマンドを、複数の仮想ボリューム、複数の論理ボリューム、および複数のストレージ・コントローラの間のマッピングに基づいて、複数の論理ボリュームのうちの或るターゲット論理ボリュームに対するストレージ機能の登録を、命令する変換済みコマンドに変換することを含み、変換済みコマンドは、ターゲット論理ボリュームに対するストレージ機能の登録が、ターゲット論理ボリュームを管理するストレージ・コントローラにより処理されることを命令する。制御モジュールは、複数のストレージ・コントローラの少なくとも１つまたはストレージ・システム内の別のコンピュータに設けられる。
【００１０】
０００９    本発明の他の様態では、複数の仮想ボリュームを管理する複数のストレージ・コントローラを有する複数のストレージ・サブシステムを含むストレージ・システムにおいてストレージ機能を管理するようにデータ・プロセッサを制御するための複数の命令を記憶するコンピュータ可読ストレージ媒体に向けられており、複数のストレージ・コントローラの各々は、複数の論理ボリュームを管理し、複数の仮想ボリュームのうちの或る仮想ボリュームのデータを複数の論理ボリュームのうちの或る論理ボリュームに記憶することを制御する。複数の命令は、：データ・プロセッサに、複数の仮想ボリュームのうちの或る仮想ボリュームに対するストレージ機能の登録を命令するコマンドを受け取ったことに応答して、その受け取られたコマンドを、複数の仮想ボリューム、複数の論理ボリューム、および複数のストレージ・コントローラの間のマッピングに基づいて、複数の論理ボリュームのうちの或るターゲット論理ボリュームに対するストレージ機能の登録を命令する変換済みコマンドに変換させる命令を含み、変換済みコマンドは、ターゲット論理ボリュームに対するストレージ機能の登録が、ターゲット論理ボリュームを管理するストレージ・コントローラにより処理されることを命令する。
【発明の効果】
【００１１】
０００４    このようにして、ユーザは各ストレージ・サブシステムの境界に注意を払わなくてもよくなる。その結果として、ストレージ・サブシステムは、他のストレージ・サブシステムに属するボリュームを管理し制御しなくてもよい。
【００１２】
００１０    本発明のこれらのおよび他の特徴および利点は、具体的な実施形態についての以下の詳細な説明から当業者に明らかとなろう。
【図面の簡単な説明】
【００１３】
【図１】００１１    本発明の第１実施形態による方法および装置が適用されるシステムの物理的および論理的ハードウェアの構成例を示す。
【図２】００１２    図１のシステムの仮想的ならびに物理的および論理的ハードウェアの構成例を示す。
【図３】００１３    第１実施形態によるストレージ・コマンド制御のプロセス・フローの例を示す。
【図４】００１４    論理ボリューム制御の構成例を示す。
【図５】００１５    多重ストレージ仮想化制御の構成例を示す。
【図６】００１６    論理ボリューム管理テーブルの構成例を示す。
【図７】００１７    仮想ボリューム管理テーブルの構成例を示す。
【図８】００１８    Ｉ／Ｏ制御のプロセス・フローの例を示す。
【図９】００１９    第２実施形態によるシステムの物理的および論理的ハードウェアの構成例を示す。
【図１０】００２０    図９のシステムの仮想的ならびに物理的および論理的ハードウェアの構成例を示す。
【図１１】００２１    第２実施形態によるストレージ・コマンド制御のプロセス・フローの例を示す。
【図１２】００２２    第３実施形態によるシステムの物理的および論理的ハードウェアの構成例を示す。
【図１３】００２３    図１２のシステムの仮想的ならびに物理的および論理的ハードウェアの構成例を示す。
【図１４】００２４    仮想ボリューム参照テーブルの構成例を示す。
【図１５】００２５    操作ユーザ・インターフェースのプロセス・フローの例を示す。
【発明を実施するための形態】
【００１４】
００２６    以下の本発明についての詳細な説明では、開示の一部を成すとともに本発明を実施する例示的な実施形態の実例として示される添付図面を参照するが、本発明は図面の内容に限定されるものではない。図面において、類似する数字は複数の図面においてほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では、以下の説明および図面に示されるとおり様々な実施の形態を示すが、本発明は本明細書において説明されかつ示される実施形態に限定されず、当業者が知っているであろう、又は知り得るようになるその他の実施形態をも含む。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の文言は、ある実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明の理解を深めるために、多くの具体的かつ詳細な記載がなされている。ただし、本発明を実施するためにこれらの具体的かつ詳細な内容すべてが必要ではないことは、当業者にとって明らかであろう。状況によっては、曖昧な記載を避けるために、周知の構造、材料、回路、プロセス及びインターフェースの詳細については説明がなく、かつ／又はブロック図において図示のない場合もある。
【００１５】
００２７    さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズムおよび記号表現で示されている。これらのアルゴリズム記述及び記号表現は、データ処理分野の当業者がその新しいアイディアの本質を最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相応量の物理的操作を必要とする。必ずしもそうとは限らないが、通常はかかる数量は、格納、転送、組み合わせ、比較その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、記号、文字、用語、数字、命令等として言及することが時として便利である。但し、上記の及び類似の用語すべてが、適切な物理数量に関連付けられるものであり、かつ当該数量に適用される単に便利なラベルであることに留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた説明は、コンピュータ・システムのレジスタ及びメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同等に表されるその他のデータに操作しかつ変換する、コンピュータ・システム又はその他の情報処理装置の動作またはプロセスを含み得る。
【００１６】
００２８    本発明は、本明細書における操作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータ・プログラムによって選択的に起動又は再構築された一つ以上の汎用コンピュータを含み得る。当該コンピュータ・プログラムは、光ディスク、磁気ディスク、読取専用記憶措置（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ソリッドステート装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等（但し、これらに限定されない）のコンピュータ読取可能記憶媒体に格納され得る。本明細書において提示するアルゴリズム及び態様は、特定のコンピュータ又はその他の装置とは本質的に関係していない。様々な汎用システムを、本明細書の教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法を実施するためにより特化した装置を構築した方がよい場合も有り得る。さらに本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されているとおりに本発明の教示内容を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置（ＣＰＵ）、プロセッサ、又はコントローラによって実行され得る。
【００１７】
００２９    本発明の代表的な実施形態では、以下でより詳しく記載されるように、多重ストレージ・サブシステム仮想化のための管理インターフェースの装置、方法およびコンピュータ・プログラムを提供する。
【００１８】
００３０    第１実施形態
【００１９】
００３１    この実施形態では、唯一のストレージ・サブシステムがストレージ機能を設定／登録するためのインターフェースを提供する。サーバは、仮想ボリュームＩＤを伴うストレージ機能要求をストレージ・サブシステムに送る。その要求を受け取ると、ストレージ・サブシステムは、仮想ボリュームに関連するターゲット物理的ストレージ・サブシステムと論理ボリュームＩＤとを特定し、その要求上の仮想ボリュームＩＤを論理ボリュームＩＤに変更し、その要求をターゲット・ストレージ・サブシステムに転送する。
【００２０】
００３２    図１は、本発明の第１実施形態に従って、本発明の方法および装置が応用され得るシステムの物理的および論理的ハードウェアの構成例を示す。各ストレージ・サブシステム１００ａおよび１００ｂは、プロセッサ（１つまたは複数）、メモリ１０１およびディスクを有する一種のコンピュータ・システムである。プロセッサは、メモリ１０１に記憶されているプログラムを動作させる。メモリは、データ・ボリューム１１１、コマンド・ボリューム１１２、および、Ｓ−コマンド・ボリューム１１３を提供する。メモリは、データ・ボリューム１１１のデータをディスクに記憶する。データ・ボリューム１１１は、ホスト・コンピュータの論理イメージである。コマンド・ボリューム１１２は、ホスト・コンピュータまたは他の何らかのストレージ・サブシステムからのストレージ機能設定コマンドを受け取るためのインターフェースである。このインターフェースは、論理ボリュームにストレージ機能を設定するために論理ボリュームＩＤを必要とする。Ｓ−コマンド・ボリューム１１３は、ホスト・コンピュータからストレージ機能設定コマンドを受け取るためのインターフェースである。このインターフェースは、ストレージ機能をその関連する論理ボリュームに設定するために仮想ボリュームＩＤを必要とする。メモリ１０１は、例えばローカル・コピー制御１０１−１、リモート・コピー制御１０１−２、論理ボリューム制御１０１−３、および多重ストレージ仮想化制御１０１−４を含むプログラムおよびテーブルを記憶する。論理ボリューム制御１０１−３は、論理ボリュームを管理し制御する。多重ストレージ仮想化制御１０１−４は、仮想ボリュームと物理的ストレージ・サブシステムと論理ボリュームとの間のマッピングを管理する。ローカル・コピー制御１０１−１およびリモート・コピー制御１０１−２は、異なる種類のストレージ機能を提供する。ホスト・コンピュータ３００はプロセッサ（１つまたは複数）およびメモリを有する。プロセッサは、メモリに記憶されているプログラムを動作させる。メモリに、ストレージ制御コマンド３００−１が記憶されている。ホスト・コンピュータ３００は、ネットワーク４００を介してストレージ・サブシステム１００ａおよび１００ｂに接続する。ストレージ制御コマンド３００−１は、仮想ボリュームＩＤを伴うストレージ機能要求をＳ−コマンド・ボリューム１１３に送る。ネットワーク４００は、ホスト・コンピュータ３００とストレージ・サブシステム１００ａおよび１００ｂとの間の結線である。ネットワーク４０１は、ストレージ・サブシステム１００ａおよび１００ｂの間の結線である。これらネットワークは、データおよび要求を転送する。この実施形態において、ストレージ・サブシステム１００ａだけがＳ−コマンド・ボリューム１１３をホスト・コンピュータ３００に提供する。ホスト・コンピュータ３００は、ストレージ・サブシステム１００ｂのデータ・ボリューム１１１を配置する。
【００２１】
００３３    図２は、図１のシステムの仮想的ならびに物理的および論理的ハードウェアの構成例を示す。仮想ストレージ・サブシステム２００は、現実のデバイスではなくて、管理のための構成であるに過ぎない。各ストレージ・サブシステムの多重ストレージ仮想化制御１０１−４は、仮想ストレージ・サブシステム２００内の仮想ボリュームを管理する。仮想ストレージ・サブシステムは、仮想データ・ボリューム２１１および仮想コマンド・ボリューム２１３を伴う仮想ボリュームを提供する。仮想データ・ボリューム２１１は、データ・ボリューム１１１と関連し、データ・ボリューム１１１から独立したＩＤを有する。仮想コマンド・ボリューム２１３は、Ｓ−コマンド・ボリューム１１３と関連し、Ｓ−コマンド・ボリューム１１３から独立したＩＤを有する。ストレージ・サブシステム１００ａは、ストレージ・サブシステム１００ｂのコマンド・ボリューム１１２を外部コマンド・ボリューム１１４として配置する。これにより、ストレージ・サブシステム１００ａは、コマンド・ボリューム１１２を介して要求をストレージ・サブシステム１００ｂに転送することができる。仮想ボリュームは、実際には、関連する論理ボリュームまたはコマンド・ボリュームが属するストレージ・サブシステムにより制御され管理される。
【００２２】
００３４    図３は、第１実施形態によるストレージ・コマンド制御３００−１のプロセス・フローの例を示す。このプログラムは、ユーザまたはユーザのスクリプトが或る仮想データ・ボリュームに対してストレージ機能を使用することを要求すると動作する。プログラムはステップ３００−１−１から開始する。ステップ３００−１−２で、プログラムは、仮想ボリュームＩＤを伴う要求をＳ−コマンド・ボリューム１１３に送る。ステップ３００−１−３で、ステップ３００−２の要求が完了した後にプログラムは終了する。
【００２３】
００３５    図４は、論理ボリューム制御１０１−３の構成例を示す。論理ボリューム制御１０１−３は、Ｉ／Ｏ制御１０１−３−１、コマンド・ボリューム制御１０１−３−２、データ・ボリューム制御１０１−３−３、および論理ボリューム管理テーブル１０１−３−４を含む。Ｉ／Ｏ制御１０１−３−１は、データ・ボリューム１１１、コマンド・ボリューム１１２、および／またはＳ−コマンド・ボリューム１１３で発生するＩ／Ｏを制御する。このプログラムは、ストレージ・サブシステムがＩ／Ｏコマンドを受け取るときに動作する。コマンド・ボリューム制御１０１−３−２は、指定されたボリュームにストレージ機能を設定する。このプログラムは、Ｉ／Ｏ制御１０１−３−１により、Ｉ／Ｏ制御がコマンド・ボリューム１１２上で動作するときに呼び出される。データ・ボリューム制御１０１−３−３は、ホスト・コンピュータとデータ・ボリューム１１１との間での読み出し／書き込みＩ／Ｏコマンドを伴うデータ転送を制御する。このプログラムは、Ｉ／Ｏ制御１０１−３−１により、Ｉ／Ｏ制御がデータ・ボリューム１１１上で動作するときに呼び出される。論理ボリューム管理テーブル１０１−３−４は、論理ボリュームのタイプ（データ、コマンド、またはＳ−コマンド・ボリューム）および構成内容（内部／外部および容量）を管理する。
【００２４】
００３６    図５は、多重ストレージ仮想化制御１０１−４の構成例を示す。多重ストレージ仮想化制御１０１−４は、ボリュームおよびパス・マイグレーション・プログラム１０１−４−１および仮想ボリューム管理テーブル１０１−４−２を含む。ボリュームおよびパス・マイグレーション・プログラム１０１−４−１は、ストレージ・サブシステム間で無停止ボリューム・マイグレーションを制御する。仮想ボリューム管理テーブル１０１−４−２は、仮想ボリュームと物理的ストレージ・サブシステムと論理ボリュームとの間のマッピングを管理する。
【００２５】
００３７    図６は、論理ボリューム管理テーブル１０１−３−４の構成例を示す。テーブルは、データ・ボリューム、コマンド・ボリューム、およびＳ−コマンド・ボリュームを管理する。テーブルは、論理ボリューム番号１０１−３−４−１、ボリューム・タイプ１０１−３−４−２、位置情報１０１−３−４−３、および物理的情報１０１−３−４−４の列を有する。論理ボリューム番号１０１−３−４−１は、論理ボリュームのＩＤを記憶する。本ＩＤは、ストレージ・サブシステムにおいて一意である。ボリューム・タイプ１０１−３−４−２は、ボリュームのタイプを記憶する。ボリューム・タイプが“データ・ボリューム”であれは、ボリューム・タイプ１０１−３−４−２は“データ”を記憶する。ボリューム・タイプが“コマンド・ボリューム”であれば、ボリューム・タイプ１０１−３−４−２は“コマンド”を記憶する。ボリューム・タイプが“Ｓ−コマンド・ボリューム”であれば、ボリューム・タイプ１０１−３−４−２は“Ｓ−コマンド”を記憶する。位置情報１０１−３−４−３は位置情報を記憶する。ボリュームがデータ・ボリュームであってキャパシティ・エリアが内部ディスクから割り当てられているならば、位置情報１０１−３−４−３は“内部”を記憶する。ボリュームがデータ・ボリュームであってキャパシティ・エリアが外部ストレージ・サブシステム・ボリュームから割り当てられているならば、位置情報１０１−３−４−３は“外部”を記憶する。ボリュームがコマンド・ボリュームであって他のストレージ・サブシステムのコマンド・ボリュームを配置しなければ、位置情報１０１−３−４−３は“内部”を記憶する。ボリュームがコマンド・ボリュームであって他のストレージ・サブシステムのコマンド・ボリュームを配置するならば、位置情報１０１−３−４−３は“外部”を記憶する。ボリュームがＳ−コマンドであれば、位置情報１０１−３−４−３は“内部”を記憶する。物理的情報１０１−３−４−４は、ボリュームの物理的情報を記憶する。位置情報１０１−３−４−３が“外部”であれば、物理的情報１０１−３−４−４は、配置されたボリュームのＷＷＰＮおよびＬＵＮを記憶する。位置情報１０１−３−４−３が“内部”でボリュームがデータ・ボリュームであれば、物理的情報１０１−３−４−４は本ボリューム・データを記憶するＲＡＩＤグループのＩＤを記憶する。
【００２６】
００３８    図７は、仮想ボリューム管理テーブル１０１−４−２の構成の例を示す。このテーブルは、仮想ボリュームと物理的ストレージ・サブシステムと論理ボリュームとの間のマッピングを管理する。このテーブルは、仮想ボリューム番号１０１−４−２−１、ストレージ・サブシステム番号１０１−４−２−２、論理ボリューム番号１０１−４−２−３、およびマイグレーション・ステータス１０１−４−２−４の列を有する。仮想ボリューム番号１０１−４−２−１は、仮想ボリュームのＩＤを記憶する。本ＩＤは、ストレージ・システムの中で一意である。ストレージ・サブシステム番号１０１−４−２−２は、仮想ボリュームが属するストレージ・サブシステムのＩＤを記憶する。仮想ボリュームが属するストレージ・サブシステムが、このテーブルが記憶されているストレージ・サブシステムと同じであれば、ストレージ・サブシステム番号１０１−４−２−２は“自分自身”を記憶する。論理ボリューム番号１０１−４−２−３は、仮想ボリュームが関連する論理ボリュームのＩＤを記憶する。マイグレーション・ステータス１０１−４−２−４は、ストレージ・サブシステム間でのボリューム・マイグレーションの状態を記憶する。
【００２７】
００３９    図８は、Ｉ／Ｏ制御１０１−３−１のプロセス・フローの例を示す。このプログラムは、論理ボリューム（データ、コマンド、またはＳ−コマンド・ボリューム）に対してストレージ機能要求を受け取ると動作する。プログラムはステップ１０１−３−１−１から開始する。ステップ１０１−３−１−２で、プログラムは、ボリューム・タイプ１０１−３−４−２を用いてボリューム・タイプをチェックする。そのタイプが“データ”であれば、プログラムはステップ１０１−３−１−１１に進み、そうでなければ、ステップ１０１−３−１−３に進む。ステップ１０１−３−１−３で、プログラムは、ボリューム・タイプ１０１−３−４−２を用いてボリューム・タイプをチェックする。このタイプが“Ｓ−コマンド”でなければ、プログラムはステップ１０１−３−１−１０に進み、そうであれば、ステップ１０１−３−１−４に進む。ステップ１０１−３−１−４で、プログラムは、ストレージ・サブシステム番号１０１−４−２−２および論理ボリューム番号１０１−４−２−３から、仮想ボリュームの物理的ストレージ・サブシステムおよび論理ボリュームＩＤを見つける。プログラムは、ストレージ機能要求に記載されている操作ターゲット論理ボリュームを特定する。ステップ１０１−３−１−５で、プログラムは転送ターゲット・ストレージ・サブシステムをチェックし、プログラムが動作するストレージ・サブシステムに論理ボリュームが属するかどうか判定する。ストレージ・サブシステム番号１０１−４−２−２が“自己”であれば、プログラムはステップ１０１−３−１−１０に進んで仮想ボリュームＩＤをストレージ機能要求の論理ボリュームＩＤに変更し、そうでなければステップ１０１−３−１−６に進む。ステップ１０１−３−１−６で、プログラムは、その要求を転送する外部コマンド・ボリュームを特定し、外部ストレージ用のアドレスと操作コードとを整列させる。プログラムは、仮想ボリュームＩＤをストレージ機能要求の論理ボリュームＩＤに変更する。ステップ１０１−３−１−７で、プログラムは、その変更された要求を、仮想ボリュームが属するストレージ・サブシステムに、配置されたコマンド・ボリュームを介して転送し、外部コマンド・ボリュームからの要求に対する応答を待つ。ステップ１０１−３−１−８で、プログラムは、応答を、オリジナルのストレージ機能要求を送ったホスト・コンピュータに送る。プログラムはステップ１０１−３−１−９で終了する。ステップ１０１−３−１−１０で、プログラムは、データ・ボリュームへの読み出し／書き込みＩ／Ｏを行うためにデータ・ボリューム制御１０１−３−３を呼び出す。ステップ１０１−３−１−１１で、プログラムは、指定された論理データ・ボリュームにストレージ機能を設定／登録するためにコマンド・ボリューム制御１０１−３−２を呼び出す。
【００２８】
００４０    第２実施形態
【００２９】
００４１    第２実施形態では、各ストレージ・サブシステムは、ストレージ機能を設定するためのインターフェースを提供する。サーバは、論理ボリュームＩＤを伴う要求を、仮想ボリュームが属するストレージ・サブシステムに送り、その後、仮想ボリュームＩＤを物理的ストレージ・サブシステムおよび論理ボリュームに移す。
【００３０】
００４２    図９は、第２実施形態によるシステムの物理的および論理的ハードウェアの構成例を示す。図１との差異のみ記載する。ストレージ・サブシステム１００ａは、Ｓ−コマンド・ボリューム１１３を提供しないが、コマンド・ボリューム１１２をホスト・コンピュータ３００に提供する。ホスト・コンピュータ３００は、ストレージ制御コマンド３００−１の代わりにストレージ制御コマンド３００−１’を記憶する。
【００３１】
００４３    図１０は、図９のシステムの仮想的ならびに物理的および論理的ハードウェアの構成例を示す。図２との差異のみ記載する。仮想ストレージ・サブシステム２００は複数の仮想コマンド・ボリューム２１２を提供する。仮想ストレージ・サブシステム２００は、仮想コマンド・ボリューム２１３を提供しない。仮想コマンド・ボリューム２１２はコマンド・ボリューム１１２に関連する。
【００３２】
００４４    図１１は、第２実施形態によるストレージ・コマンド制御３００−１’のプロセス・フローの例を示す。このプログラムは、ユーザまたはユーザのスクリプトが或る仮想データ・ボリュームに対してストレージ機能を使用することを要求すると動作する。プログラムはステップ３００−１’−１から開始する。ステップ３００−１’−２で、プログラムは、各ストレージ・サブシステムの仮想ボリューム管理テーブル１０１−４−２を入手する。ステップ３００−１’−３で、プログラムは、仮想ボリュームの物理的ストレージ・サブシステムおよび論理ボリュームＩＤを特定する。仮想ボリュームのオーナー・ストレージ・サブシステムは、ストレージ・サブシステム番号１０１−４−２−２に“自己”を記憶する。ステップ３００−１’−４で、プログラムは、仮想ボリュームＩＤをストレージ機能要求の論理ボリュームＩＤに変更する。プログラムは、その変更された要求を、仮想ボリュームが属するストレージ・サブシステムのコマンド・ボリュームに転送する。プログラムは、ステップ３００−１’−４での要求が完了した後にステップ３００−１’−５で終了する。
【００３３】
００４５    第３実施形態
【００３４】
００４６    第３の実施形態では、ストレージ管理端末が、ストレージ機能を設定するためのインターフェースを提供する。ストレージ管理端末は、仮想ボリュームを呈示し管理する。仮想ボリュームを求める要求をユーザがストレージ管理端末で入力すると、その端末は、仮想ボリュームのオーナー・ストレージ・サブシステムと論理ボリュームＩＤとを特定して、要求を論理ボリュームＩＤと共にオーナー・ストレージ・サブシステムに送る。
【００３５】
００４７    図１２は、第３実施形態によるシステムの物理的および論理的ハードウェアの構成例を示す。図１との差異のみ記載する。ストレージ・サブシステム１００ａはＳ−コマンド・ボリューム１１３を提供せず、ストレージ・サブシステム１００ｂはコマンド・ボリューム１１２を提供しない。ホスト・コンピュータ３００はストレージ制御コマンド３００−１を有しない。ストレージ端末コンソール５００がストレージ・サブシステム１００ａおよび１００ｂに接続されている。ストレージ端末コンソール５００は、操作ユーザ・インターフェース（ＵＩ）５０１および仮想ボリューム参照テーブル５０２を含む。操作ユーザ・インターフェース５０１は、ユーザがストレージ機能設定を入力すると動作するプログラムである。入力情報は仮想ボリュームＩＤを含む。このプログラムは、要求をストレージ・サブシステムに送る。仮想ボリューム参照テーブル５０２は、仮想ボリュームと物理的ストレージ・サブシステムと論理ボリュームとの間の関係を管理する。
【００３６】
００４８    図１３は、図１２のシステムの仮想的ならびに物理的および論理的ハードウェアの構成例を示す。図２との差異のみ記載する。仮想ストレージ・サブシステム２００は、仮想コマンド・ボリューム２１３を提供しない。
【００３７】
００４９    図１４は、仮想ボリューム参照テーブル５０２の構成例を示す。このテーブルは、仮想ボリュームと物理的ストレージ・サブシステムと論理ボリュームとの間のマッピングを管理する。テーブルは、仮想ボリューム番号５０２−１、ストレージ・サブシステム番号５０２−２、論理ボリューム番号５０２−３、およびマイグレーション・ステータス５０２−４の列を含む。仮想ボリューム番号５０２−１は、仮想ボリュームのＩＤを記憶する。ＩＤはストレージ・システムにおいて一意である。ストレージ・サブシステム番号５０２−２は、仮想ボリュームが属するストレージ・サブシステムのＩＤを記憶する。論理ボリューム番号５０２−３は、仮想ボリュームが関連する論理ボリュームのＩＤを記憶する。マイグレーション・ステータス５０２−４は、ストレージ・サブシステム間でのボリューム・マイグレーションの状態を記憶する。
【００３８】
００５０    図１５は、操作ユーザ・インターフェース５０１のプロセス・フローの例を示す。プログラムはステップ５０１−１から開始する。ステップ５０１−２で、プログラムは、各ストレージ・サブシステムの仮想ボリューム管理テーブル１０１−４−２を入手し、仮想ボリュームの物理的ストレージ・サブシステムおよび論理ボリュームＩＤを特定する。オーナー・ストレージ・サブシステムＩＤはストレージ・サブシステム番号５０２−２に記憶される。ステップ５０１−３で、プログラムは、仮想ボリュームＩＤをストレージ機能要求の論理ボリュームＩＤに変更する。ステップ５０１−４で、プログラムは、その変更された要求を、仮想ボリュームが属するストレージ・サブシステムのコマンド・ボリュームに転送する。プログラムは、ステップ５０１−４での要求が完了した後にステップ５０１−５で終了する。
【００３９】
００５１    他の１つの実施形態によれば、アドミニストレータ（例えば、管理端末を介して）またはホスト・コンピュータが、第１実施形態の場合のように仮想ボリューム管理テーブル１０１−４−２を各々含む全てのストレージ・コントローラに対して仮想ボリュームＩＤを伴うストレージ機能要求を送信する。仮想ボリュームＩＤに対応するターゲット論理ボリュームを管理するストレージ・コントローラは、ストレージ機能要求に応答して、ターゲット論理ボリュームで実行されるストレージ機能を登録するように動作する。
【００４０】
００５２    もちろん、図１、９、および１２に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージ・システムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のＩ／Ｏ装置（例えば、ＣＤ及びＤＶＤドライブ、フロッピー（登録商標）ディスクドライブ、ハードドライブ等）も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ読取可能媒体上で符号化することができる。例えば、本発明の前記データ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能媒体から独立したコンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信（例えば、通信ネットワーク）によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク（例えば、インターネット）、無線ネットワーク、ストレージエリアネットワーク等を含む。
【００４１】
００５３    説明では、本発明の理解を深めるために、多くの具体的かつ詳細な記載がなされている。しかし当業者にとっては、本発明を実施するためにこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、フロー図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
【００４２】
００５４    当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置（ハードウェア）を用いて実施してよく、その一方で、その他の態様は、機械読取可能媒体上に記憶された命令を用いて実施してもよく、当該発明は、プロセッサによって実行された場合には、プロセッサに本発明の実施形態を実行される方法を実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてもよく、その他の実施形態は、ソフトウェアのみで実施されてもよい。さらに、説明された様々な機能は一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に広めることができる。ソフトウェアによって実施された場合、方法は、コンピュータ読取可能媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。望ましい場合には、圧縮およびまたは暗号化形式で命令を媒体に記憶することができる。
【００４３】
００５５    以上述べたように、本発明が多重ストレージ・サブシステム仮想化のための管理インターフェースのための方法、装置およびコンピュータで読み出し可能な媒体に記憶されたプログラムを提供することは明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって明白なように、開示された特定の実施形態の代わりに、同じ目的を達成するために創出された構成を用いてもよい。本開示は、本発明のあらゆる適応例や変形例を対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示した特定の実施形態に限定するよう解釈されるべきではない。むしろ本発明の範囲は、以下の請求項によって判断されるべきものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。
【符号の説明】
【００４４】
１００ａ、１００ｂ  ストレージ・サブシステム
１１１  データ・ボリューム
１１２  コマンド・ボリューム
１１３  Ｓ−コマンド・ボリューム
１１４  外部コマンド・ボリューム
２００  仮想ストレージ・サブシステム
２１１  仮想データ・ボリューム
２１３  仮想コマンド・ボリューム
３００  ホスト・コンピュータ
【図１】
0005903026.tif 000002
【図２】
0005903026.tif 000003
【図３】
0005903026.tif 000004
【図４】
0005903026.tif 000005
【図５】
0005903026.tif 000006
【図６】
0005903026.tif 000007
【図７】
0005903026.tif 000008
【図８】
0005903026.tif 000009
【図９】
0005903026.tif 000010
【図１０】
0005903026.tif 000011
【図１１】
0005903026.tif 000012
【図１２】
0005903026.tif 000013
【図１３】
0005903026.tif 000014
【図１４】
0005903026.tif 000015
【図１５】
0005903026.tif 000016