(57)【要約】オペレーティングシステムメタデータをエミュレートして、ストレージボリュームへのクロスプラットフォームのアクセスを可能にするシステム及び方法は、第１ホストとオフホストバーチャライザーとを含む。オフホストバーチャライザーは、仮想ＬＵＮのような第１仮想ストレージデバイスのオペレーティングシステムメタデータを生成し、そのオペレーティングシステムメタデータを第１ホストにアクセス可能にするように構成される。メタデータは、第１ホストで使用中のオペレーティングシステムの要件に従ってカスタマイズすることができる。第１ホストは、オペレーティングシステムメタデータを使用して、アドレス指定可能なストレージデバイスとして第１仮想ストレージデバイスの存在を検出するように構成された、第１レイヤを含むストレージソフトウェアスタックを含む。【選択図】図３
2007516523.tif 000002
【特許請求の範囲】
【請求項１】
第１ホストと、
オフホストバーチャライザーと、
を備えるシステムであって、
前記オフホストバーチャライザーは、
第１仮想ストレージデバイスのための第１オペレーティングシステムメタデータを生成し、
前記第１オペレーティングシステムメタデータを前記第１ホストにアクセス可能にする、
ように構成されており、
前記第１ホストは、第１レイヤを含むストレージソフトウェアスタックを備え、
前記第１レイヤは、前記第１オペレーティングシステムメタデータを使用して第１アドレス指定可能なストレージデバイスとして前記第１仮想ストレージデバイスの存在を検出するように構成されていることを特徴とするシステム。
【請求項２】
前記オフホストバーチャライザーは、前記第１ホストで使用中の特定のオペレーティングシステムの要件に応じて前記オペレーティングシステムメタデータをカスタマイズするように更に構成されていることを特徴とする請求項１に記載のシステム。
【請求項３】
前記第１ホストは、前記特定のオペレーティングシステムの要件を前記オフホストバーチャライザーに提供するように構成されていることを特徴とする請求項２に記載のシステム。
【請求項４】
ストレージデバイスを更に備え、前記第１アドレス指定可能なストレージデバイスは、前記ストレージデバイスのパーティションであることを特徴とする請求項１に記載のシステム。
【請求項５】
１つ又はそれ以上の物理ストレージデバイスを更に備え、前記ストレージソフトウェアスタックが第２レイヤを含み、
前記オフホストバーチャライザーは、
前記１つ又はそれ以上の物理ストレージデバイス内のストレージを論理ボリュームに集め、
前記論理ボリュームを前記第１仮想ストレージデバイスのアドレススペースにマップし、
前記論理ボリュームの論理ボリュームメタデータを前記ストレージソフトウェアスタックの第２レイヤに提供する、
ように更に構成され、
前記ストレージソフトウェアスタックの第２レイヤは、前記論理ボリュームメタデータを使用してＩ／Ｏオペレーションの論理ボリュームにアクセスするよう構成されていることを特徴とする請求項１に記載のシステム。
【請求項６】
前記第１仮想ストレージデバイスは、仮想論理ユニット（ＬＵＮ）であることを特徴とする請求項１に記載のシステム。
【請求項７】
前記オフホストバーチャライザーは、仮想化スイッチを含むことを特徴とする請求項１に記載のシステム。
【請求項８】
前記オフホストバーチャライザーは、仮想化アプライアンスを含むことを特徴とする請求項１に記載のシステム。
【請求項９】
前記第１仮想ストレージデバイスは、物理ストレージにマップされないことを特徴とする請求項１に記載のシステム。
【請求項１０】
２つ又はそれ以上の物理ストレージデバイスを更に備え、前記オフホストバーチャライザーは、前記２つ又はそれ以上の物理ストレージデバイスの各物理ストレージデバイスを前記第１仮想ストレージデバイス内のそれぞれのアドレス範囲に動的にマップするように更に構成されていることを特徴とする請求項９に記載のシステム。
【請求項１１】
物理ストレージデバイスと第２ホストとを更に備え、
前記オフホストバーチャライザーが、
物理ストレージにマップされない第２仮想ストレージデバイスの第２オペレーティングシステムメタデータを生成し、
前記第２オペレーティングシステムメタデータを前記第２ホストにアクセス可能にする、
ように更に構成されており、
前記第２ホストは、第１レイヤを含む第２ストレージソフトウェアスタックを備え、前記第２ストレージソフトウェアスタックの第１レイヤは、前記第２オペレーティングシステムメタデータを使用して第２アドレス指定可能ストレージデバイスとして前記第２仮想ストレージデバイスの存在を検出するように構成されており、
前記オフホストバーチャライザーは、
前記物理ストレージデバイスの第１物理アドレス範囲を前記第１仮想ストレージデバイス内の第１仮想アドレス範囲に動的にマップし、
前記物理ストレージデバイスの第２物理アドレス範囲を前記第２仮想ストレージデバイス内の第２仮想アドレス範囲に動的にマップし、
前記第１ホストから前記第２物理アドレス範囲へのアクセスを阻止する、
ように更に構成されていることを特徴とする請求項９に記載のシステム。
【請求項１２】
第１物理ストレージデバイスを更に備え、前記ストレージソフトウェアスタックは第２レイヤを含み、
前記オフホストバーチャライザーは、
前記第１物理ストレージデバイス内の物理ストレージの第１範囲を第１論理ボリュームに集め、
前記第１仮想ストレージデバイス内の仮想ストレージの第１範囲を前記第１論理ボリュームに動的にマップし、
前記第１論理ボリュームのための第１論理ボリュームメタデータを前記ストレージソフトウェアの第２レイヤに提供する、
ように更に構成されており、
前記ストレージソフトウェアスタックの第２レイヤが、前記第１論理ボリュームメタデータを使用して、Ｉ／Ｏオペレーションの前記第１論理ボリュームにアクセスするように構成されていることを特徴とする請求項９に記載のシステム。
【請求項１３】
前記オフホストバーチャライザーは、
前記第１物理ストレージデバイス内の物理ストレージの第２範囲を第２論理ボリュームに集め、
前記第１仮想ストレージデバイス内の仮想ストレージの第２範囲を前記第２論理ボリュームに動的にマップし、
前記第２論理ボリュームのための追加の論理ボリュームメタデータを前記ストレージソフトウェアスタックの第２レイヤに提供する、
ように更に構成されており、
前記ストレージソフトウェアスタックの第２レイヤは、前記追加の論理ボリュームメタデータを使用して、Ｉ／Ｏオペレーションの前記第２論理ボリュームにアクセスするように構成されていることを特徴とする請求項１２に記載のシステム。
【請求項１４】
第２ホストを更に備え、前記オフホストバーチャライザーは、
物理ストレージにマップされない第２仮想ストレージデバイスの第２オペレーティングシステムメタデータを生成し、
前記第２オペレーティングシステムメタデータを前記第２ホストにアクセス可能にし、
前記第１物理ストレージデバイス内の物理ストレージの第２範囲を第２論理ボリュームに集め、
前記第２論理ボリュームのための第２論理ボリュームメタデータを前記第２ホストに提供するように、
更に構成されており、
前記第２ホストが、第１及び第２レイヤから構成される第２ストレージソフトウェアスタックを含み、前記第２ソフトウェアスタックの第１レイヤが、前記第２オペレーティングシステムメタデータを使用して第２アドレス指定可能なストレージデバイスとして前記第２仮想ストレージデバイスの存在を検出するように構成され、前記第２ソフトウェアスタックの第２レイヤは、前記第２論理ボリュームメタデータを使用して、Ｉ／Ｏオペレーションの前記第２論理ボリュームにアクセスするように構成されていることを特徴とする請求項１２に記載のシステム。
【請求項１５】
前記オフホストバーチャライザーは、前記第２ホストが前記第１論理ボリューム上でＩ／Ｏオペレーションを実行するのを阻止するように更に構成されていることを特徴とする請求項１４に記載のシステム。
【請求項１６】
前記第１アドレス指定可能ストレージデバイスは、第１ストレージネットワークを介して前記第１ホストにアクセス可能であり、前記第２アドレス指定可能ストレージデバイスは、第２ストレージネットワークを介して前記第２ホストにアクセス可能であることを特徴とする請求項１４に記載のシステム。
【請求項１７】
第２ホストと第２物理ストレージデバイスを更に備え、
前記オフホストバーチャライザーは、
物理ストレージにマップされない第２仮想ストレージデバイスのための第２オペレーティングシステムメタデータを生成し、
前記第２オペレーティングシステムメタデータを前記第２ホストにアクセス可能にし、
前記第２物理ストレージデバイス内の物理ストレージの第２範囲を第２論理ボリュームに集め、
前記第１仮想ストレージデバイス内の仮想ストレージの第２範囲を前記第２論理ボリュームに動的にマップし、
前記第２論理ボリュームのための第２論理ボリュームメタデータを前記第２ホストに提供するように、
更に構成されており、
前記第２ホストが、第１及び第２レイヤから構成される第２ストレージソフトウェアスタックを含み、前記第２ソフトウェアスタックの第１レイヤが、前記第２オペレーティングシステムメタデータを使用して第２アドレス指定可能なストレージデバイスとして前記第２仮想ストレージデバイスの存在を検出するように構成され、前記第２ソフトウェアスタックの第２レイヤは、前記第２論理ボリュームメタデータを使用して、Ｉ／Ｏオペレーションの前記第２論理ボリュームにアクセスするように構成されており、
前記第１アドレス指定可能ストレージデバイスが、第１ストレージネットワークを介して前記第１ホストにアクセス可能であり、前記第２アドレス指定可能ストレージデバイスが、第２ストレージネットワークを介して前記第２ホストにアクセス可能であり、前記第１物理ストレージデバイスが、第３ストレージネットワークを介して前記オフホストバーチャライザーにアクセス可能であり、前記第２物理ストレージデバイスが、第４ストレージネットワークを介して前記オフホストバーチャライザーにアクセス可能であることを特徴とする請求項１２に記載のシステム。
【請求項１８】
前記第１、第２、第３、第４ストレージネットワークの各ストレージネットワークは、別々に構成可能なファイバーチャネル構造を含むことを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記ストレージソフトウェアスタックは、第１及び第２物理ストレージデバイスから更に構成される第２レイヤを含み、前記オフホストバーチャライザーは、
前記第１物理ストレージデバイス内のストレージの第１範囲と前記第２物理ストレージデバイス内のストレージの第２範囲とを単一の論理ボリュームに集め、
前記単一の論理ボリュームの論理ボリュームメタデータを前記ストレージソフトウェアスタックの第２レイヤに提供するように、
更に構成されており、
前記ストレージソフトウェアスタックの第２レイヤが、前記論理ボリュームメタデータを使用してＩ／Ｏオペレーションの前記単一の論理ボリュームにアクセスするように構成されていることを特徴とする請求項１に記載のシステム。
【請求項２０】
ストレージデバイスのオペレーティングシステムメタデータを生成するよう動作可能なバーチャライザーであって、前記オペレーティングシステムメタデータは、特定のオペレーティングシステムの下でホストされるストレージボリュームをエミュレートすることを特徴とするバーチャライザー。
【請求項２１】
第１仮想ストレージデバイスの第１オペレーティングシステムメタデータを生成する段階と、
前記第１仮想ストレージデバイスの第１オペレーティングシステムメタデータを第１ホストにアクセス可能にする段階と、
前記第１ホストのストレージソフトウェアスタックの第１レイヤで前記第１オペレーティングシステムメタデータを使用して、第１アドレス指定可能ストレージデバイスとして前記第１仮想ストレージデバイスの存在を検出する段階と、
を含む方法。
【請求項２２】
前記第１ホストで使用中の特定のオペレーティングシステムの要件に応じて前記オペレーティングシステムメタデータをカスタマイズする段階を更に含むことを特徴とする請求項２１に記載の方法。
【請求項２３】
前記第１仮想ストレージデバイスは、物理ストレージにマップされないことを特徴とする請求項２１に記載の方法。
【請求項２４】
第１及び第２物理ストレージデバイスを前記第１仮想ストレージデバイス内のそれぞれのアドレス範囲に動的にマップする段階を更に含むことを特徴とする請求項２３に記載の方法。
【請求項２５】
第１物理ストレージデバイス内の物理ストレージの第１範囲を第１論理ボリュームに集める段階と、
前記第１仮想ストレージデバイス内の仮想ストレージの第１範囲を前記第１論理ボリュームに動的にマップする段階と、
前記第１論理ボリュームの第１論理ボリュームメタデータを前記ストレージソフトウェアスタックの第２レイヤに提供する段階と、
前記第１論理ボリュームメタデータを使用して、前記ストレージソフトウェアスタックの第２レイヤからＩ／Ｏオペレーションの前記第１論理ボリュームにアクセスする段階と、
を更に含むことを特徴とする請求項２３に記載の方法。
【請求項２６】
前記第１物理ストレージデバイス内の物理ストレージの第２範囲を第２論理ボリュームに集める段階と、
前記第１仮想ストレージデバイス内の仮想ストレージの第２範囲を前記第２論理ボリュームに動的にマップする段階と、
前記第２論理ボリュームの追加の論理ボリュームメタデータを前記ストレージソフトウェアスタックの第２レイヤに提供する段階と、
前記ストレージソフトウェアスタックの前記第２レイヤで前記追加の論理ボリュームメタデータを使用して、Ｉ／Ｏオペレーションの前記第２論理ボリュームにアクセスする段階と、
を更に含むことを特徴とする請求項２５に記載の方法。
【請求項２７】
物理ストレージにマップされていない第２仮想ストレージデバイスの第２オペレーティングシステムメタデータを生成する段階と、
前記第２オペレーティングシステムメタデータを第２ホストにアクセス可能にする段階と、
前記第２ホストのストレージソフトウェアスタックの第１レイヤで前記第２オペレーティングシステムメタデータを使用して、第２アドレス指定可能ストレージデバイスとして前記第２仮想ストレージデバイスの存在を検出する段階と、
前記第１物理ストレージデバイス内の物理ストレージの第２範囲を第２論理ボリュームに集める段階と、
前記第２仮想ストレージデバイス内の仮想ストレージの第２範囲を前記第２論理ボリュームに動的にマップする段階と、
前記第２論理ボリュームの第２論理ボリュームメタデータを前記第２ホストの前記ストレージソフトウェアスタックの第２レイヤに提供する段階と、
前記第２ホストでの前記ストレージソフトウェアスタックの第２レイヤからＩ／Ｏオペレーションの前記第２論理ボリュームにアクセスするために前記第２論理ボリュームメタデータを使用する段階と、
を更に含むことを特徴とする請求項２５に記載の方法。
【請求項２８】
前記第２ホストが前記第１論理ボリューム上でＩ／Ｏオペレーションを実行するのを阻止する段階を更に含むことを特徴とする請求項２７に記載の方法。
【請求項２９】
物理ストレージにマップされない第２仮想ストレージデバイスの第２オペレーティングシステムメタデータを生成する段階と、
前記第２オペレーティングシステムメタデータを第２ホストにアクセス可能にする段階と、
前記第２ホストでのストレージソフトウェアスタックの第１レイヤで前記第２オペレーティングシステムメタデータを使用して、第２アドレス指定可能ストレージデバイスとして前記第２仮想ストレージデバイスの存在を検出する段階と、
第２物理ストレージデバイス内の物理ストレージの第２範囲をオフホストバーチャライザーでの第２論理ボリュームに集める段階と、
前記第２仮想ストレージデバイス内の仮想ストレージの第２範囲を前記第２論理ボリュームに動的にマップする段階と、
前記第２論理ボリュームの第２論理ボリュームメタデータを前記第２ホストでの前記ストレージソフトウェアスタックの第２レイヤに提供する段階と、
前記第２論理ボリュームメタデータを使用して、前記第２ホストでの前記ストレージソフトウェアスタックの前記第２レイヤからＩ／Ｏオペレーションの前記第２論理ボリュームにアクセスする段階と、
を更に含み、
前記物理ストレージの第１範囲は、前記オフホストバーチャライザーによって前記第１論理ボリュームに集められ、前記第１アドレス指定可能ストレージデバイスは、第１ストレージネットワークを介して前記第１ホストにアクセス可能であり、前記第２アドレス指定可能ストレージデバイスは、第２ストレージネットワークを介して前記第２ホストにアクセス可能であり、前記第１物理ストレージデバイスは、第３ストレージネットワークを介してオフホストバーチャライザーにアクセス可能であり、前記第２物理ストレージデバイスは、第４ストレージネットワークを介して前記オフホストバーチャライザーにアクセス可能であることを特徴とする請求項２５に記載の方法。
【請求項３０】
前記第１、第２、第３、第４ストレージネットワークの各ストレージネットワークは、別々に構成可能なファイバーチャネル構造を含むことを特徴とする請求項２９に記載の方法。
【請求項３１】
第１物理ストレージデバイス内のストレージの第１範囲と第２物理ストレージデバイス内のストレージの第２範囲を単一の論理ボリュームに集める段階と、
前記仮想ストレージデバイス内の仮想ストレージの範囲を前記第２論理ボリュームに動的にマップする段階と、
前記単一の論理ボリュームの論理ボリュームメタデータを前記ストレージソフトウェアスタックの第２レイヤに提供する段階と、
前記論理ボリュームメタデータを使用して、前記ストレージソフトウェアスタックの前記第２レイヤからＩ／Ｏオペレーションの前記単一の論理ボリュームにアクセスする段階と、
を更に含むことを特徴とする請求項２３に記載の方法。
【請求項３２】
プログラム命令を含むコンピュータアクセス可能媒体であって、
前記命令が、
第１仮想ストレージデバイスの第１オペレーティングシステムメタデータを生成し、
前記第１仮想ストレージデバイスの第１オペレーティングシステムメタデータを第１ホストにアクセス可能にし、
前記ホストでのストレージソフトウェアスタックの第１レイヤで前記第１オペレーティングシステムメタデータを使用して、第１アドレス指定可能ストレージデバイスとして前記第１仮想ストレージデバイスの存在を検出する、
ように実行可能であることを特徴とするコンピュータアクセス可能媒体。
【請求項３３】
前記命令は、前記第１ホストで使用中の特定のオペレーティングシステムの要件に応じて前記オペレーティングシステムメタデータをカスタマイズするよう更に実行可能であることを特徴とする請求項３２に記載のコンピュータアクセス可能媒体。
【請求項３４】
前記第１仮想ストレージデバイスは、物理ストレージにマップされないことを特徴とする請求項３２に記載のコンピュータアクセス可能媒体。
【請求項３５】
前記命令は、第１及び第２物理ストレージデバイスを前記第１仮想ストレージデバイス内のそれぞれのアドレス範囲にマップするように更に実行可能であることを特徴とする請求項３４に記載のコンピュータアクセス可能媒体。
【請求項３６】
前記命令は、
第１物理ストレージデバイス内の物理ストレージの第１範囲を第１論理ボリュームに集め、
前記第１仮想ストレージデバイス内の仮想ストレージの第１範囲を前記第１論理ボリュームに動的にマップし、
前記第１論理ボリュームの第１論理ボリュームメタデータを前記ストレージソフトウェアスタックの第２レイヤに提供し、
前記第１論理ボリュームメタデータを使用して、前記ストレージソフトウェアスタックの第２レイヤからＩ／Ｏオペレーションの前記第１論理ボリュームにアクセスする、
ように更に実行可能であることを特徴とする請求項３４に記載のコンピュータアクセス可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに関し、更に具体的にはストレージ環境内のオフホスト仮想化に関する。
【背景技術】
【０００２】
多くの企業及び政府事業体は、ミッション・クリティカルなアプリケーション用の大量のデータ（テラバイト単位のデータを超える場合が多い）にアクセスするアプリケーションに依存している。多くの場合、このようなデータは、様々なストレージデバイスに格納されており、本質的に、種々の製造者による種々のタイプのデバイスを含むヘテロジニアスである。
【０００３】
ヘテロジニアスのストレージ環境で直面する各種々のストレージデバイスを識別し直接対話するために、データを消費する個々のアプリケーション、或いはこのようなアプリケーションをホストするアプリケーションサーバシステムを構成することは、環境のサイズ及び複雑さが拡大するにつれて益々難しくなっている。従って、幾つかのストレージ環境では、専用のストレージマネージメントソフトウェアとハードウェアを用いて、より均一なストレージモデルをストレージ消費者に提供している。このようなソフトウェアとハードウェアはまた、仮想ストレージデバイス（例えば仮想ＳＣＳＩディスク）として物理ストレージデバイスをコンピュータホストに提示し、個々のストレージデバイスに存在しないストレージ機能をストレージモデルに追加するように構成されている。例えば、データミラーリング、スナップショット／固定画像生成、又はデータパリティなどの耐故障性を向上させるための機能や、ディスク・ストライピングのようなデータのアクセス性能を向上させるための機能は、ハードウェア又はソフトウェアを介してストレージモデルにおいて実施することができる。追加されたストレージ機能は、ストレージ仮想化機能と呼ぶことができ、仮想ストレージデバイスと追加されたストレージ機能を提供するソフトウェア及び／又はハードウェアは、「バーチャライザー」又は「仮想化コントローラ」と呼ばれている。仮想化は、ホストでのストレージソフトウェアスタックのボリュームマネージャーレイヤ内などのコンピュータホスト内、及び／又は仮想化スイッチ又は仮想化アプライアンスのようなホストの外部にあるデバイスにおいて実行することができる。仮想化を可能にするこのような外部デバイスは、「オフホスト」バーチャライザーと呼ばれ、ホストから仮想化に要求される処理の負担を軽減するのに利用される。オフホストバーチャライザーは、外部の物理ストレージデバイスに接続することができ、これによって、ファイバーチャネルリンク、インターネットプロトコル（ＩＰ）ネットワーク、その他の同様のものなどの種々の相互接続部を介して仮想化機能を提供する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来から、コンピュータホスト内のストレージソフトウェアは、ファイルシステムレイヤ、ディスクドライバレイヤなどの幾つかのレイヤから構成されている。ストレージソフトウェアレイヤの一部は、ホストで使用中のオペレーティングシステムの一部を形成することができ、オペレーティングシステム毎に異なっている。物理ディスクにアクセスする場合、所与のオペレーティングシステム用のディスクドライバレイヤなどのレイヤは、特定のフォーマット、例えばディスクパーティションレイアウト情報を含むヘッダ（ディスクの最初の数ブロックに配置される）にレイアウトされるディスクの構成情報の幾つかのタイプを期待するように構成させることができる。また、ローカル物理ディスクにアクセスするのに使用されるストレージスタックソフトウェアレイヤを用いて、オフホストバーチャライザーによって仮想ストレージデバイスとして提示される外部ストレージデバイスにアクセスすることができる。従って、オフホストバーチャライザーは、ストレージ環境でのホストで使用することができる種々のオペレーティングシステムによって期待されるフォーマットで仮想ストレージデバイスの構成情報を提供することが望ましいであろう。更に、オフホストバーチャライザーは、例えばホストのリブートを要求することなく、ホストストレージソフトウェアレイヤに提示された仮想ストレージデバイスに外部物理ストレージデバイス内のストレージをフレキシブル且つ動的にマップするための技術を実装することが望ましい。
【課題を解決するための手段】
【０００５】
オペレーティングシステムメタデータをエミュレートして、ストレージボリュームにクロスプラットフォームのアクセスを可能にするためのシステム及び方法の種々の実施態様が開示されている。第１の実施態様によれば、システムは、第１ホストと、仮想化スイッチ又は仮想化アプライアンスなどのオフホストバーチャライザーとを含む。オフホストバーチャライザーは、仮想ＬＵＮのような第１仮想ストレージデバイスのオペレーティングシステムメタデータを生成し、オペレーティングシステムメタデータを第１ホストにアクセス可能にするように構成されている。オペレーティングシステムメタデータは、ホストで使用中のオペレーティングシステムの要件に従ってカスタマイズされ、すなわちオフホストバーチャライザーは、種々のホストで使用中の幾つかの種々のオペレーティングシステム用にカスタマイズされたメタデータを提供することができる。第１ホストは、オフホストバーチャライザーに対しそのオペレーティングシステムの固有のメタデータ要件を指示するように構成されている。第１ホストは、オフホストバーチャライザーによって提供されたオペレーティングシステムメタデータを使用してパーティションなどのアドレス指定可能ストレージデバイスとして第１仮想ストレージデバイスの存在を検出するように構成された、ディスクドライバレイヤなどの第１レイヤを含むストレージソフトウェアスタックを含む。別の実施態様では、オフホストバーチャライザーを、１つ又はそれ以上の物理ストレージデバイス内のストレージを論理ボリュームに集め、論理ボリュームを第１仮想ストレージデバイス又は仮想ＬＵＮにマップするように構成する。このような実施態様では、オフホストバーチャライザーは、ストレージソフトウェアスタックの第２レイヤ（ディスクドライバレイヤとファイルシステムレイヤとの間の中間ドライバレイヤなど）に論理ボリュームメタデータを提供するよう構成され、第２レイヤが論理ボリューム上でＩ／Ｏオペレーションを実行することができる。
【０００６】
１つの実施態様では、第１仮想ストレージデバイスは、最初は物理ストレージにマップされない。アドレス指定可能なストレージデバイスとしてのマップされていない第１仮想ストレージデバイスの識別は、Ｉ／Ｏオペレーション発生の開始前のシステム初期化段階中に行う。このようにして、マップされない又は「ブランク」仮想ＬＵＮを、オフホストバーチャライザーによる後続の動的マッピングのために準備することができる。マップされないＬＵＮは、仮想ＬＵＮのサイズを初期化後に修正しなくてもよいように、ホストで使用中のオペレーティングシステムによってサポートされる最大許可ＬＵＮサイズに等しい初期サイズを与えることができる。幾つかの実施態様では、複数の仮想ＬＵＮは、例えば種々のアプリケーションのストレージを分離するか、或いは最大ＬＵＮサイズでの限界に対応するために、単一のホストで使用するよう事前に生成される。
【０００７】
別の実施態様では、システムはまた、２つ又はそれ以上の物理ストレージデバイスを含み、オフホストバーチャライザーは、第１及び第２物理ストレージデバイスからの物理ストレージを第１仮想ストレージデバイス内のアドレスのそれぞれの範囲に動的にマップするように構成される。例えば、オフホストバーチャライザーは、物理ストレージデバイス（物理ＬＵＮと呼ぶことができる）と仮想ＬＵＮとの間のＮ対１マッピングを行うように構成され、物理ストレージデバイス内のストレージが事前に生成された仮想ＬＵＮを介してホストからアクセスできるようにする。仮想ＬＵＮ内の第１及び／又は第２アドレス範囲の位置に関する構成情報（すなわち、物理ストレージデバイスにマップされる仮想ＬＵＮの領域）を、種々のメカニズムを使用してオフホストバーチャライザーからホストのストレージスタックの第２レイヤ（例えばディスクドライバレイヤの上の中間ドライバレイヤ）にわたすことができる。このようなメカニズムは、例えば、構成情報を仮想ＬＵＮ内の幾つかの特別なブロックに書込み、メッセージをネットワーク、或いは特別な拡張ＳＣＳＩモードページを通じてホストに送るオフホストバーチャライザーを含む。１つの実施態様では、単一の物理ストレージデバイス内の物理ストレージの２つ又はそれ以上の種々の範囲は、仮想ＬＵＮのような対応する事前に生成された仮想ストレージデバイスにマップされ、対応するホストに提示することができる。すなわち、オフホストバーチャライザーは、複数のホストの各ホストがそれぞれの仮想ＬＵＮを介して物理ストレージデバイスのそれぞれの部分にアクセスできる可能性がる。このような実施態様では、オフホストバーチャライザーはまた、共用物理ストレージデバイス内の物理ストレージの範囲を分離するセキュリティポリシーを実施するように構成され、すなわちホストがアクセスが認可された領域にだけアクセスできるようにし、許可されていないアクセスを防止できるようにする。
【０００８】
１つの実施態様では、オフホストバーチャライザーは、物理ストレージデバイス内のストレージを論理ボリュームに集め、論理ボリュームを事前に生成された仮想ストレージデバイス内のアドレスの範囲に動的にマップし、論理ボリュームメタデータをストレージスタックの第２レイヤにわたすように更に構成され、Ｉ／Ｏオペレーションを論理ボリューム上で行うことができるようにする。単一の物理ストレージデバイスからのストレージは、種々の論理ボリュームのいずれかの要求される数に集め、論理ボリュームのいずれかの要求される数が単一の仮想ストレージデバイス又は仮想ＬＵＮにマップされる。オフホストバーチャライザーは、ボリュームレベルのセキュリティを提供し、すなわち論理ボリュームに対応する物理ストレージが、共用物理ストレージデバイスの一部である場合でもホストから論理ボリュームへの許可されていないアクセスを阻止するように更に構成させることができる。加えて、いずれかの要求される数の物理ストレージデバイスからの物理ストレージは、論理ボリュームに集めることができ、これによって単一のボリュームを単一の物理ストレージデバイスの最大可能サイズより大きなアドレス範囲全体に拡張させることができる。仮想ストレージデバイス又は仮想ＬＵＮを、ファイバーチャネル構造などの幾つかの独立したフロントエンドストレージネットワーク全体に分散させ、論理ボリュームをバックする物理ストレージデバイスを、幾つかの独立したバックエンドストレージネットワーク全体に分散させることができる。例えば、第１ホストは、第１ストレージネットワークを介してその仮想ストレージデバイスにアクセスでき、第２ホストは、第１から独立した第２ストレージネットワークを介してその仮想ストレージデバイスにアクセスできる（すなわち、第１ストレージネットワークでの再構成及び／又は障害は、第２ストレージネットワークに影響を与える可能性はない）。同様に、オフホストバーチャライザーは、第３ストレージネットワークを介して第１物理ストレージデバイスにアクセスでき、第４ストレージネットワークを介して第２物理ストレージデバイスにアクセスできる。独立したストレージネットワーク間に分散された事前に生成された仮想ストレージデバイス全体にストレージを動的にマップするためのホストバーチャライザーの能力は、堅牢でフレキシブルなストレージ環境をサポートすることができる。
【発明を実施するための最良の形態】
【０００９】
本発明は種々の修正及び代替形態が可能であるが、特定の実施形態を各図面で例として示し本明細書で詳細に説明する。しかしながら、本発明の図面及び詳細な説明は、開示される特定の形態に本発明を限定するものではなく、逆に本発明は、添付の請求項によって定義される本発明の精神及び範囲内に含まれる全ての修正、均等物、代替形態を保護するものであることを理解されたい。
【００１０】
図１ａは、１つの実施形態によるコンピュータシステム１００を示すブロック図である。システム１００は、相互接続部１３０を介して物理ブロックデバイス１２０に結合されたホスト１１０を含む。ホスト１１０は、相互接続部１３０を介して物理ブロックデバイス１２０上でＩ／Ｏオペレーションを実行するのに使用することができる従来のソフトウェアストレージスタック１４０Ａを含む。
【００１１】
概して、物理ブロックデバイス１２０は、読み取り又は書き込みの可能な線形的にアドレス指定されたデータブロックの集合を提供する、いずれかのハードウェアエンティティを含む。例えば、１つの実施形態では、物理ブロックデバイスは、ブロックの指標付きアレイとしてそのセクターの全てを提示するように構成された単一のディスクドライブである。別の実施形態では、物理ブロックデバイスは、ディスクアレイデバイス、或いはディスクアレイデバイスの一部として構成されたディスクでもよい。ストレージデバイスのいずれかの適切なタイプを、固定又は取外し可能な磁気媒体ドライブ（例えば、ハードドライブ、フロッピー（登録商標）、又はＺｉｐベースドライブ）、書込み可能又は読出し専用光学媒体ドライブ（例えばＣＤ又はＤＶＤ）、テープドライブ、固体大容量ストレージデバイス、或いはいずれかの他のタイプのストレージデバイスなどのブロックデバイスとして構成できることも企図される。相互接続部１３０は、Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）プロトコル、ファイバーチャネル、インターネットプロトコル（ＩＰ）、インターネットＳＣＳＩ（ｉＳＣＳＩ）、又はこのようなストレージネットワーキング技術の組合せの種々の変形形態などのいずれかの望ましいストレージ接続技術を利用することができる。ソフトウェアストレージスタック１４０Ａは、ホスト１１０にオペレーティングシステム内のソフトウェアのレイヤを含み、要求される物理ブロックデバイス１２０上でＩ／Ｏ（入力／出力）を実行するためにクライアントアプリケーションによってアクセスされる。
【００１２】
ブロックデバイスアクセスのための従来のストレージソフトウェアスタックでは、クライアントアプリケーションは、例えばファイル内の指定されたオフセットでデータのブロックを読み取るための要求として、Ｉ／Ｏ要求を開始する。要求は、ファイルシステムレイヤ１１２で（例えば読み取りシステム呼出しの形式で）受信して、特定のデバイスオブジェクト内のブロック（すなわちストレージデバイスを表すソフトウェアエンティティ）を読み取るために要求に変換し、更にディスクドライバレイヤ１１４にわたす。次いで、ディスクドライバレイヤ１１４は、ディスクデバイスオブジェクトに対応するターゲット物理ブロックデバイス１２０を選択し、相互接続部依存Ｉ／Ｏドライバレイヤ１１６を使用して相互接続部１３０を介してターゲット物理ブロックデバイスのアドレスに要求を送る。例えば、ホストバスアダプタ（ＨＢＡ）（ＳＣＳＩ  ＨＢＡのような）を用いて、適切なストレージプロトコル（例えばＳＣＳＩ）に従ってフォーマットされたＩ／Ｏ要求を相互接続部の物理リンク（例えばＳＣＳＩバス）に転送する。物理ブロックデバイス１２０では、相互接続部依存ファームウェアレイヤ１２２が、要求を受け取り、物理ストレージレイヤ１２４で要求される物理Ｉ／Ｏオペレーションを実行し、更に結果を相互接続部を介してホストに返信する。次いで、この結果（例えば、読み取られることになるファイルの要求ブロック）を要求しているクライアントアプリケーションにわたされる前に逆の順序で（すなわち相互接続部依存Ｉ／Ｏドライバからファイルシステムに）ストレージスタック１４０Ａの種々のレイヤを介して転送する。
【００１３】
幾つかのオペレーティングシステムでは、物理ブロックデバイス１２０内のストレージをアドレス指定するために、階層方式を使用する。例えば、オペレーティングシステムは、ＳＣＳＩ  ＨＢＡ識別子（「ｈｂａ」）、ＳＣＳＩバス識別子（「ｂｕｓ」）、ＳＣＳＩターゲット識別子（「ｔａｒｇｅｔ」）、論理ユニット識別子（「ｌｕｎ」）を含む、ＳＣＳＩデバイスの形式＜「ｈｂａ」、「ｂｕｓ」、「ｔａｒｇｅｔ」、「ｌｕｎ」＞の４レベル階層アドレス指定方式を用いることができ、ブート中の使用可能なＳＣＳＩデバイスのアドレスでデバイスデータベースに読み込むように構成される。ホスト１１０は、複数のＳＣＳＩ  ＨＢＡを含み、異なるＳＣＳＩアダプタ識別子が各ＨＢＡに対して使用される。ＳＣＳＩアダプタ識別子は、例えば、互いを基準とするＨＢＡカードの物理的配置に基づいて（すなわちアダプタカードに使用されるスロット番号に基づいて）、オペレーティングシステムカーネルによって発行された番号とすることができる。各ＨＢＡは、１つ又はそれ以上のＳＣＳＩバスを制御することができ、固有のＳＣＳＩバス番号を用いて、ＨＢＡ内の各ＳＣＳＩバスを識別する。システム初期化中、或いは特別な構成コマンドに応答して、ＨＢＡは、バスに現在取り付けられているＳＣＳＩデバイスを識別するために各バスをプローブするように構成される。使用中のＳＣＳＩプロトコルのバージョンに応じて、ＳＣＳＩバス上に取り付けることのできるデバイス（ディスク又はディスクアレイなど）の数は、例えばＨＢＡ自体を除いて１５のデバイスに制限されることがある。ＨＢＡなどのＩ／Ｏオペレーションを開始できるＳＣＳＩデバイスは、ＳＣＳＩイニシエータと呼ばれ、物理Ｉ／Ｏを実行することができるデバイスは、ＳＣＳＩターゲットと呼ばれる。ＳＣＳＩバス上の各ターゲットは、プローブに応答してＨＢＡに対して自己を識別する。更に、各ターゲットデバイスはまた、ターゲットデバイス内の物理ストレージのアドレス指定可能なユニットを別々に提示する「論理ユニット」（ＬＵＮ）のプロトコル指定の最大数まで対応することができ、論理ユニット識別子のＨＢＡを通知することができる。ターゲットデバイスは、幾つかの実施形態において単一のＬＵＮ（例えばＬＵＮは、全ディスク又はディスクアレイでも提示することができる）を含む。ターゲットデバイス識別子やＬＵＮ識別子などのＳＣＳＩデバイス構成情報は、ＨＢＡによってディスクドライバレイヤ１１４にわたされる。Ｉ／Ｏ要求を出す場合、ディスクドライバレイヤ１１４は、上述の階層ＳＣＳＩアドレスを利用することができる。
【００１４】
ＬＵＮにアクセスする場合、ディスクドライバレイヤ１１４は、ＬＵＮ内の幾つかの特定の位置でＯＳ特定メタデータを見ることが期待できる。例えば、多くのオペレーティングシステムにおいて、ディスクドライバレイヤ１１４は、論理パーティショニングの実行（すなわち、物理ディスク内のスペースを各々がより小さなファイルシステムのために使用することができるパーティションに細分する）を担う。パーティションのレイアウト（例えばＬＵＮ内のパーティションの開始ブロックオフセット、及びパーティションの長さ）を記述するメタデータは、オペレーティングシステム依存フォーマットで格納され、かつＬＵＮ内のヘッダ又はトレーラなどのオペレーティングシステム依存位置に格納される。Ｓｕｎ  ＭｉｃｒｏｓｙｓｔｅｍｓのＳｏｌａｒｉｓ（商標）オペレーティングシステムでは、例えば、バーチャルテーブルオブコンテンツ（ＶＴＯＣ）構造を、ディスクボリュームの第１パーティションに配置し、又、ＶＴＯＣのコピーを、ボリュームの最後の２つのシリンダーに配置する。更に、オペレーティングシステムメタデータは、シリンダーアラインメント及び／又はシリンダーサイズ情報を含み、ボリュームがブート可能である場合はブートコードをも含む。Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）の種々のバージョン用のオペレーティングシステムメタデータは、「マジック番号」（オペレーティングシステムが通常ディスクの開始点又は開始点近傍で見つけることが期待される特別な１つ又は複数の番号又は複数の番号）、サブディスクレイアウト情報などを含む。ディスクドライバレイヤ１１４が、期待される位置と期待されるフォーマットでメタデータを見つけない場合、ディスクドライバレイヤは、ＬＵＮでＩ／Ｏオペレーションを実行することができない。
【００１５】
比較的単純な従来のストレージソフトウェアスタック１４０Ａは、高度ストレージ機能の提供を促進するために長期にわたり機能強化されてきたが、最も重要なことは、ブロック仮想化レイヤを導入することによるものである。一般に、ブロック仮想化とは、１つ又はそれ以上の下層の物理又は仮想ブロックデバイスから論理又は仮想ブロックデバイスを作成し、又は集め、ストレージオペレーションのために仮想ブロックデバイスをブロックデバイス消費者にアクセス可能にするプロセスを意味する。例えば、ブロック仮想化の１つの実施形態では、複数の物理ブロックデバイス内（例えばファイバーチャネルストレージエリアネットワーク（ＳＡＮ）内）のストレージを集めて、以下により詳細に説明するように、仮想ＬＵＮ（ＶＬＵＮ）などの単一の仮想ストレージデバイスとしてホストに提示する。別の実施形態では、ソフトウェアの１つ又はそれ以上のレイヤは、ディスクなどの１つ又はそれ以上のブロックデバイスからブロックを再配列させ、様々な種類の機能を追加することができる。次いで、結果として得られる再配列されたブロックの集まりは、アプリケーション又はファイルシステムなどのストレージ消費者に対して１つ又はそれ以上の基本ディスクドライブの外観を備えた１つ又はそれ以上の集合デバイスとして提示される。すなわち、ブロックを再配列して機能を追加することにより得られるより複雑な構造は、ブロックの１つ又はそれ以上の簡単なアレイ、或いは論理ブロックデバイスが存在するように提示される。幾つかの実施形態では、複数のレイヤの仮想化を実装することができる。このような実施形態では、１つ又はそれ以上のブロックデバイスは、特定の仮想化されたブロックデバイスにマップされ、次いで、これを更に別の仮想化されたブロックデバイスにマップされ、複雑なストレージ機能を簡単なブロックデバイスで実装できる。本明細書で使用される用語「論理ボリューム」とは、ブロックデバイスを直接使用することのできるファイルシステム、データベース、又は他のアプリケーションによって使用するために直接提示可能な仮想化ブロックデバイスを意味する。ブロック仮想化、及び該ブロック仮想化によってサポートされる高度ストレージ機能に関する更なる詳細を以下に示す。
【００１６】
ブロック仮想化は、ストレージスタックと関連するストレージ環境内の種々の場所でハードウェアとソフトウェアの両方で実装することができる。例えば、ＶＥＲＩＴＡＳ  Ｓｏｆｔｗａｒｅ  ＣｏｒｐｏｒａｔｉｏｎのＶＥＲＩＴＡＳ  Ｖｏｌｕｍｅ  Ｍａｎａｇｅｒ（商標）などのボリュームマネージャーの形式でのブロック仮想化レイヤは、ディスクドライバレイヤ１１４とファイルシステムレイヤ１１２の間に付加することができる。幾つかのストレージ環境で、仮想化機能は、ホストバスアダプタ、すなわち相互接続部依存Ｉ／Ｏドライバレイヤ１１６と相互接続部１１３との間のレイヤ内に付加することができる。ブロック仮想化はまた、ホスト１１０の外側で、例えば、相互接続部１３０の一部を形成することができる仮想化アプライアンス又は仮想化スイッチにおいて実施することができる。ブロック仮想化を提供するこのような外部デバイス（すなわち、ホスト１１０内に組み込まれていないデバイス）は、オフホストバーチャライザー又はオフホスト仮想化コントローラと呼ばれる。幾つかのストレージ環境において、ブロック仮想化機能は、ホストベースのバーチャライザーと連動するオフホストバーチャライザーによって実装することができる。すなわち、あるブロック仮想化機能は、オフホストで実装することができ、他のブロック仮想化機能ではホストで実装することができる。別の実施形態では、２つ又はそれ以上の仮想化スイッチ、２つ又はそれ以上の仮想化アプライアンス、又は仮想化スイッチと仮想化アプライアンスの組合せなどのホスト１１０に外付けの複数のデバイスは、ブロック仮想化機能を提供するよう協調することができ、すなわちオフホストバーチャライザーは複数の協調デバイスを含むことができる。
【００１７】
追加レイヤをストレージソフトウェアスタック１４０Ａに付加することができるが、オペレーティングシステムの既存のストレージソフトウェアレイヤを取り除き、或いは完全にバイパスすることは一般に困難である。従って、オフホストバーチャライザーは通常、オペレーティングシステムに提示されるストレージデバイスが物理的ではなく仮想であり、ローカルではなくリモートである場合でも、既存のストレージソフトウェアレイヤが動作を継続できるように実装される。例えば、ディスクドライバレイヤ１１４は、Ｉ／Ｏオペレーションを実行する場合にＳＣＳＩ  ＬＵＮを処理することが期待されるので、オフホストバーチャライザーは、仮想ＬＵＮとしてディスクドライバレイヤに仮想化されたストレージデバイスを提示する。すなわち、以下に更に詳細に説明されるように、オンオフホストバーチャライザーは、仮想化されたストレージデバイスにホスト１１０がアクセスする場合にＬＵＮをカプセル化し、又はＬＵＮのメタデータをエミュレートする。加えて、以下に更に説明されるように、１つ又はそれ以上のソフトウェアモジュール又はレイヤは、仮想ＬＵＮを使用して仮想化の付加的な形式をサポートするためにストレージスタック１４０Ａに付加する。
【００１８】
図１ｂは、オフホストブロック仮想化を利用するように構成されたシステム１００の実施形態を示すブロック図である。図示のように、本システムは、ホスト１１０を物理ブロックデバイス１２０にリンクする相互接続部１３０内に含めることができる仮想化スイッチ又は仮想化アプライアンスなどのオフホストバーチャライザー１８０を含む。ホスト１１０は、ディスクドライバレイヤ１１４とファイルシステムレイヤ１１２との間に中間ドライバレイヤ１１３を含む拡張ストレージソフトウェアスタック１４０Ｂを含む。１つの実施形態では、オフホストバーチャライザー１８０は、物理ブロックデバイス１２０、又は複数の物理ブロックデバイス１２０内のストレージを仮想ストレージデバイス（例えば仮想ＬＵＮ又はＶＬＵＮ）にマップし、仮想ストレージデバイスをホスト１１０に提示するように構成される。
【００１９】
仮想ＬＵＮにマップされるバックエンド物理ブロックデバイス１２０を、以下の説明では「物理ＬＵＮ（ＰＬＵＮ）」と呼ぶ場合もある。１つの実施形態において、オフホストバーチャライザー１８０は、どのような仮想化も付加することなく（すなわち論理ボリュームを作成することなく）、バックエンド物理ＬＵＮからのストレージをＶＬＵＮに直接マップするように構成される。ＰＬＵＮからＶＬＵＮへのこのようなマッピングのこうした技術は、以下の説明では「ＰＬＵＮトンネリング」と呼ぶことがある。別の実施形態では、オフホストバーチャライザー１８０は、１つ又はそれ以上の論理ボリュームとして１つ又はそれ以上の物理ブロックデバイス１２０内のストレージを集め、その論理ボリュームをホスト１１０に提示されたＶＬＵＮのアドレススペース内にマップするように構成される。本明細書で用いる用語「ボリュームトンネリング」又は「論理ボリュームトンネリング」は、ＶＬＵＮを介して論理ボリュームをマップする技術を意味する。オフホストバーチャライザー１８０は更に、トンネルされた論理ボリュームでのメタデータ又は構成情報を中間ドライバレイヤ１３０に提供するように構成され、中間ドライバレイヤ１３０がファイルシステムレイヤ１１２又は他のアプリケーションなどのクライアントに代わって仮想ＬＵＮ内に位置付けられた論理ボリューム上に位置付けられて、Ｉ／Ｏオペレーションを実行する。幾つかの実施形態では、シンボリックリンクなどのエイリアシング技術を用いて、トンネルされた論理ボリュームに名称を関連付けることができ、ファイルシステム、アプリケーション、システム管理者は、従来の又は望ましいネーミング方式を使用してトンネルされた論理ボリュームを参照することができる。１つの実施形態では、名称の選択は、例えば拡張ＳＣＳＩモードページを使用して、或いは１つ又はそれ以上の追加のデバイス及び／又はホストを含む外部仮想化マネージメントインフラストラクチャを介して、ホスト１１０とオフホストバーチャライザー１８０との間で調整される。中間ドライバレイヤ１１３とストレージスタック１４０Ｂの下側レイヤを利用するように構成されたファイルシステムレイヤ１１２とアプリケーション（データベースマネージメントシステムなどの）は、本明細書では「仮想ストレージクライアント」又は「仮想ストレージ消費者」と呼ばれることがある。オフホストバーチャライザー１８０は、図１ｂに示された実施形態では相互接続部１３０内に図示されているが、他の実施形態ではオフホスト仮想化は、物理ブロックデバイス１２０内（例えば物理ストレージレイヤ１２４とファームウェアレイヤ１２２との間の仮想化レイヤによって）に、或いは、相互接続部１３０の外側の別のデバイスに設けることができる点に留意されたい。以下に更に詳細に説明されるように、幾つかの実施形態では、別々に構成可能な幾つかの相互接続部が、オフホストバーチャライザー１８０をホスト１１０やバックエンドストレージデバイス１２０にリンクするために用いることができ、例えば、１つ又はそれ以上のフロントエンド相互接続部１３０又はストレージエリアネットワーク（ＳＡＮ）構造は、オフホストバーチャライザー１８０をホスト１１０にリンクすることができ、他方、１つ又はそれ以上のバックエンド相互接続１３０は、オフホストバーチャライザーをバックエンドストレージデバイスにリンクする。
【００２０】
上述のように、幾つかの実施形態では、ディスクドライバレイヤ１１４は、あるオペレーティングシステム特定メタデータがオペレーティングシステム特定位置又はＬＵＮ内のオフセットに提示されるのを期待することができる。従って、仮想ＬＵＮをホスト１１０に提示する場合、このような実施形態ではオフホストバーチャライザー１８０は、期待位置に期待メタデータを論理的に挿入する。図２ａは、１つの実施形態によるソースボリューム２０５をカプセル化する仮想ＬＵＮ２１０に対するオペレーティングシステム固有のメタデータの付加を示すブロック図である。図示のように、ソースボリューム２０５は、０から（Ｎ−１）まで番号が付与されたＮ個のブロックから構成される。仮想ＬＵＮ２１０は、挿入されたメタデータの２つの領域、すなわちメタデータのＨブロックを収容するヘッダ２１５と、メタデータのＴブロックを含むトレーラ２２５とを含む。ヘッダ２１５とトレーラ２２５との間で、仮想ＬＵＮ２１０のブロック２２０がソースボリューム２０５にマップされ、これによって仮想ＬＵＮ２１０を合計（Ｈ＋Ｎ＋Ｔ）のブロック長さにする（すなわち、仮想ＬＵＮは、０から（Ｈ＋Ｎ＋Ｔ−１）まで番号が付与されたブロックを含む）。ヘッダ２１５及び／又はトレーラ２２５に含まれるオペレーティングシステム固有のメタデータは、アドレス指定可能なストレージデバイスとして仮想ＬＵＮ２１０を識別するためにディスクドライバレイヤ１１４が使用する。本明細書で使用される「アドレス指定可能なストレージデバイス」とは、デバイス識別子（論理ユニット識別子など）とデバイス内のオフセットとを含むアドレスを使用してブロックにアクセスできる（例えばディスクドライバなどのデバイスドライバから）ストレージデバイスである。幾つかの実施形態では、付加的な構成情報又は論理ボリュームメタデータを、ヘッダ２１５及び／又はトレーラ２２５内に含めることができる。ヘッダ２１５とトレーラ２２５の長さ、及びメタデータのフォーマットとコンテンツは、ホスト１１０で使用中のオペレーティングシステムに応じて変わることがある。幾つかの実施形態では、メタデータは、ヘッダとトレーラの両方ではなくヘッダ２１５だけ、又はトレーラ２２５だけを必要とする場合があり、他の実施形態では、メタデータは、ＬＵＮ内のいずれかの任意のオフセットで格納することができる点に留意されたい。
【００２１】
オフホストバーチャライザー１８０は、ホスト１１０で使用中のオペレーティングシステムの固有の要件に基づいて生成されたオペレーティングシステムメタデータ（例えばヘッダ２１５及び／又はトレーラ２２５において）をカスタマイズするよう構成される。種々のオペレーティングシステムによって課される要件は、メタデータに含まれる情報のタイプ（例えばメタデータがパーティションテーブルを含むかどうか）、情報が保持されるフォーマット（例えばパーティション又はボリュームサイズがキロバイト又は５１２バイトブロックなどで指定されるユニット、オフセットが十六進数又は十進数などで表されるかどうか）、メタデータが見つけられるＬＵＮ内の位置などで異なる。幾つかの実施形態では、要件は、ホスト１１０からオフホストバーチャライザー１８０に送られる。例えば、１つの実施形態において、仮想化マネージメントインフラストラクチャは、１つ又はそれ以上のデバイス及び／又は追加ホストを使用して（すなわちホスト１１０やオフホストバーチャライザー１８０以外のデバイス及び／又はホストを使用して）実装される。仮想化マネージメントインフラストラクチャのデバイス又はホストは、ホスト１１０と通信し、ホスト１１０からオペレーティングシステムのメタデータ要件を取得し、更にその要件をオフホストバーチャライザー１８０に供給するように構成される。別の実施形態では、ホスト１１０は、例えばストレージコマンドの拡張機構（拡張ＳＣＳＩ要求など）を使用してオフホストバーチャライザーにオペレーティングシステム要件を供給するように構成される。ストレージコマンド及び／又は拡張機構は、幾つかの実施形態ではベンダー固有のものとすることができる（すなわち、ストレージコマンドは種々のハードウェアストレージベンダーのために種々の方法で拡張させることが必要になる場合がある）。１つの実施形態では、ホスト１１０で使用中のオペレーティングシステムの識別情報（例えばオペレーティングシステム名やバージョン番号）だけをオフホストバーチャライザー１８０に提供することができ、オフホストバーチャライザーは、オペレーティングシステム識別情報（例えば、オフホストバーチャライザー１８０で保持されているデータベースから又は外部データベースから）を使用してオペレーティングシステム要件の詳細を取得するように構成される。ホスト１１０のためのオペレーティングシステム識別情報及び／又はメタデータ要件を、幾つかの実施形態では、例えば、グラフィカルユーザーインターフェース又はコマンドラインインターフェースを使用してシステム管理者によって手動でオフホストバーチャライザー１８０に指定することができる。幾つかの実施形態では、複数のオペレーティングシステムによって共用される共通のメタデータフォーマットを使用することができる。
【００２２】
仮想ＬＵＮ２１０内に挿入されたメタデータは、例えば、幾つかの実施形態では物理ブロックデバイス１２０の幾つかのブロック内、或いはオフホストバーチャライザー１８０内のストレージデバイスにある持続的ストレージ内に格納され、更に、マップされたブロック２２０と論理的に連結される。他の実施形態では、メタデータは、非持続的ストレージ内（例えばオフホストバーチャライザー１８０にあるメモリ内）に保持され、及び／又はホスト１１０が仮想ＬＵＮ２１０にアクセスするときは常に動的に生成される。幾つかの実施形態では、メタデータは、オフホストバーチャライザー１８０以外の外部エージェントによって生成される。外部エージェントは、オフホストバーチャライザー１８０が開発されたときには既知ではなかった可能性のあるオペレーティングシステムを含む、種々のオペレーティングシステムのための種々のフォーマットでメタデータをエミュレートする。１つの実施形態では、オフホストバーチャライザー１８０は、１つよりも多いオペレーティングシステムをサポートするように構成され、すなわち、オフホストバーチャライザーは、仮想ＬＵＮ２１０をホスト１１０に提示するときに幾つかの異なるオペレーティングシステムのいずれか１つに対応するメタデータブロックを論理的に挿入し、これにより種々のオペレーティングシステムを備えたホストが、特定のストレージデバイス１２０へのアクセスを共用することができる。
【００２３】
前述のように、幾つかの実施形態では、オフホストバーチャライザー１８０は、パーティションレイアウト情報を含むオペレーティングシステムメタデータを生成するように構成される。図２ｂは、オフホストバーチャライザー１８０が生成されたオペレーティングシステムメタデータヘッダ２１５内にパーティションテーブル２５５を含むように構成された場合の１つの実施形態を示すブロック図である。パーティションテーブル２５５は、物理ストレージデバイス２５０の論理パーティションにマップされたブロックを位置付けることができるＶＬＵＮ２１０内でオフセットを記述するレイアウト又はマッピング情報を提供する。図示された実施形態では、レイアウトテーブルは、物理ストレージデバイス２５０のパーティション１、パーティション２、パーティション３にそれぞれ対応する３つのエントリを含む。
【００２４】
オフホストバーチャライザーはまた、幾つかの実施形態において１つ又はそれ以上の論理ボリュームを仮想ＬＵＮのアドレススペースにマップするように構成される。図２ｃは、オフホストバーチャライザー１８０が物理ストレージデバイス２５０Ａ、２５０Ｂ内のストレージを論理ボリューム２６０に集め、該論理ボリューム２６０を仮想ＬＵＮ２１０のブロック２６１にマップするように構成される実施形態を示すブロック図である。上述のようにオペレーティングシステムメタデータを生成することに加えて、オフホストバーチャライザー１８０は、このような実施形態において論理ボリュームに対し固有のメタデータを生成するように構成される。このような論理ボリュームメタデータ２６３は、中間ドライバレイヤ１１３に論理ボリューム２６０上でＩ／Ｏオペレーションを実行することができる情報（開始オフセット、ボリューム長、ミラーの数のような仮想化レイヤ情報など）を含む。１つの実施形態において、論理ボリュームメタデータは、ヘッダ２１５又はトレーラ２２５内に含まれ、すなわち、中間ドライバ１１３が使用するためのものである論理ボリュームメタデータは、ディスクドライバレイヤ１１４によって使用されるためのものであるオペレーティングシステムメタデータと同一場所に配置できる点に留意されたい。図２ｃに示される論理ボリューム２６０は、２つの物理ストレージデバイス２５０Ａ、２５０Ｂによって戻されるが、一般にどのような数の物理ストレージデバイス２５０からのストレージ（単一の物理ストレージデバイスからのストレージを含む）も、論理ボリューム２６０に集めることができる。
【００２５】
図３は、複数の仮想ＬＵＮ（ＶＬＵＮ）２１０を作成するように構成されたオフホストバーチャライザー１８０を含む実施形態を示すブロック図である。図示された実施形態では、ホスト１１０Ａ、１１０Ｂ、１１０Ｃ（集合的にホスト１１０）は、相互接続部１３０Ａを介してオフホストバーチャライザー１８０に結合され、オフホストバーチャライザー１８０は、相互接続部１３０Ｂを介してストレージデバイス３４０Ａ、３４０Ｂ、３４０Ｃ（集合的にストレージデバイス３４０）に結合される。ストレージデバイス３４０は、物理ブロックデバイス１２０と仮想ブロックデバイスを（例えば以下に説明されるような仮想化の複数のレイヤを用いる実施形態において）含む。ホスト１１０Ａ、１１０Ｂは、オペレーティングシステムＡを利用することができ、ホスト１１０Ｃは、オペレーティングシステムＢを利用することができ、すなわち、一般にホスト１１０の各ホストは、幾つかのオペレーティングシステムのいずれかをサポートすることができる。図示のように、オフホストバーチャライザー１８０は、幾つかのＶＬＵＮ２１０Ａ−２１０Ｅのメタデータを生成するように構成される。ＶＬＵＮ２１０Ａは、ホスト１１０Ａに割り当てられる（すなわち、ＶＬＵＮ２１０Ａに生成されたオペレーティングシステムメタデータは、ホスト１１０Ａにアクセス可能とすることができ、ホスト１１０Ａがアドレス指定可能なストレージデバイスとしてＶＬＵＮ２１０Ａの存在を検出することができる）。ＶＬＵＮ２１０Ｂは、ホスト１１０Ｂに割り当てられ、ＶＬＵＮ２１０Ｃ、２１０Ｄ、２１０Ｅは全て、ホスト１１０Ｃに割り当てられる。ストレージデバイス３４０Ａ内のストレージは、図３の点線の矢印で示されるようにＶＬＵＮ２１０ＡとＶＬＵＮ２１０Ｅの両方にマップされる。従って、種々のオペレーティングシステムを備えた２つ又はそれ以上のホストの各々（例えばホスト１１０Ａ及びホスト１１０Ｃ）は、図示された実施形態において種々のＶＬＵＮ（例えば２１０Ａ、２１０Ｅ）を使用して同じストレージデバイス（例えば３４０Ａ）にアクセスすることができる。一般に、オフホストバーチャライザー１８０は、いずれかの要求されるＶＬＵＮ２１０の総数をサポートし、いずれかの要求されるＶＬＵＮを所与のホストに割り当て、更にストレージデバイス３４０のいずれかの要求される組合せから所与のＶＬＵＮにストレージをマップするように構成される。幾つかのオペレーティングシステムは、ホスト１１０に見えるＬＵＮ（又はＶＬＵＮ）の総数、及び／又は所与のＬＵＮ又はＶＬＵＮのサイズに制限を加えることができ、更に、オフホストバーチャライザーは幾つかの実施形態においてこのような制限に従うように構成される点に留意されたい。
【００２６】
図４は、上述のようにオペレーティングシステムメタデータを生成するように構成されたホスト１１０とオフホストバーチャライザー１８０のオペレーションの態様を示すフロー図である。オフホストバーチャライザー１８０は、例えば拡張ＳＣＳＩコマンドなどの上述の技術の１つを使用して、ホスト１１０からオペレーティングシステムメタデータ要件を受け取るように構成される（ブロック４１０）。次いで、オフホストバーチャライザー１８０は、その要件に従ってＶＬＵＮ２１０のような仮想ストレージデバイスのオペレーティングシステムメタデータを生成することができ（ブロック４２０）、そのオペレーティングシステムメタデータをホスト１１０にアクセス可能にする（ブロック４３０）。メタデータは、幾つかの実施形態において相互接続部１３０Ａを通じてオフホストバーチャライザー１８０によって送られたメッセージを介してホスト１１０にアクセス可能にされる。他の実施形態では、ホスト１１０Ａは、ホスト１１０に割り当てられたＶＬＵＮ上の情報を要求するオフホストバーチャライザー１８０への問合せを送るように構成され、メタデータは、その問合せに応答して提供することができる。ホスト１１０でのストレージソフトウェアスタックの第１レイヤ（例えばディスクドライバレイヤ１１４）は、メタデータを使用してアドレス指定可能なストレージデバイスとして仮想ストレージデバイスの存在を検出するように構成される（ブロック４４０）。幾つかの実施形態では、例えばストレージ環境におけるホスト１１０の全てが同じオペレーティングシステムを使用するように構成される場合、ブロック４１０に対応するオペレーションを省略することができ、すなわち、単一のオペレーティングシステムが全てのホスト１１０で使用中である同種環境においては、オペレーティングシステムの固有要件をオフホストバーチャライザー１８０に提供する必要はない場合がある点に留意されたい。
【００２７】
図５は、オフホストバーチャライザー１８０が、１つ又はそれ以上の物理ストレージデバイス内のストレージを論理ボリューム２６０に集め、その論理ボリュームをＶＬＵＮ２１０にマップするように構成された実施形態を示すフロー図である。図４のように、オペレーティングシステムメタデータ要件は、オフホストバーチャライザー１８０によって受け取ることができ（ブロック５１０）、仮想ストレージデバイス又はＶＬＵＮ２１０のオペレーティングシステムメタデータを、当該要件に従ってオフホストバーチャライザーにより生成することができる（ブロック５２０）。オフホストバーチャライザーは、１つ又はそれ以上の物理ストレージデバイス３４０内のストレージを論理ボリューム２６０に集め（ブロック５３０）、その論理ボリュームを仮想ストレージデバイス又はＶＬＵＮのアドレススペースにマップする（ブロック５４０）ように構成される。オペレーティングシステムメタデータや、論理ボリュームに固有の追加メタデータが、ホスト１１０に提供される（ブロック５５０）。ホストのソフトウェアストレージスタックの第１レイヤ（ディスクドライバレイヤ１１４など）は、オペレーティングシステムメタデータを使用して仮想ストレージデバイスの存在を検出するように構成され（ブロック５６０）、第２レイヤ（中間ドライバ１１３など）は、論理ボリュームメタデータを使用して、論理ボリューム２６０上でＩ／Ｏオペレーションにアクセスしこれを開始するように構成される（ブロック５７０）。
【００２８】
幾つかの実施形態では、上述されたＰＬＵＮトンネリングやボリュームトンネリングの基本技術は、ＰＬＵＮの動的アソシエーション及び／又はＶＬＵＮを備えた論理ボリュームを可能にするよう拡張させることができる。論理ボリューム２６０などの論理ボリュームは通常、効率的に作成し動的に再構成される（例えば、成長又は収縮、ホスト１１０へのインポート又はホスト１１０からのエクスポート）が、ＬＵＮ（すなわち物理及び／又は仮想ＬＵＮ）上での同様の構成オペレーションは通常、かなり遅い可能性がある。幾つかの再構成オペレーションは、少なくとも部分的に非同期とすることができ、無制限の完了時間及び／又は曖昧な障害状態を有する可能性がある。多くのオペレーティングシステムにおいて、ＬＵＮ再構成は、システムリブートした後でのみ完了させることができ、すなわち、例えば、新規に作成される物理又は仮想ＬＵＮは、リブートなしではオペレーティングシステムによって検出することはできない。従って、ＬＵＮ再構成に関連する遅延や問題を回避しながら論理ボリュームを仮想ＬＵＮにフレキシブルにマップできるようにするためには、マップされていない仮想ＬＵＮを生成（すなわち、最初にいずれの物理ＬＵＮ又は論理ボリュームにもマップされていない仮想ＬＵＮのためのオペレーティングシステムメタデータを生成する）し、このマップされていない仮想ＬＵＮを初期化プロセスの一部としてホスト１１０に事前に割り当てることが得策である。初期化プロセスは、アプリケーションの代わりに仮想ＬＵＮ上でストレージオペレーションを実行する前に完了する。初期化プロセス（幾つかの実施形態ではシステムのリブートを含む）中、ソフトウェアストレージスタック１４０Ｂのレイヤは、アドレス指定可能なストレージデバイスとして仮想ＬＵＮの存在を検出するように構成される。初期化に続いて、オフホストバーチャライザー１８０は、以下により詳細に説明されるように、物理ＬＵＮ及び／又は論理ボリュームを仮想ＬＵＮに動的にマップする（例えばオペレーティングシステムメタデータの一部を修正することによって）。本明細書で使用される用語「動的マッピング」とは、仮想ストレージデバイスが提示されるホスト１１０のリブートを必要とすることなく、１つ又はそれ以上のメタデータのブロックを修正することにより、及び／又は１つ又はそれ以上のメッセージを介してホスト１１０に伝達することによって実行される仮想ストレージデバイス（ＶＬＵＮなど）のマッピングを意味する。
【００２９】
図６は、１つの実施形態によるマップされていない仮想ＬＵＮ２３０の例を示すブロック図である。図示のように、マップされていない仮想ＬＵＮ２３０は、オペレーティングシステムメタデータヘッダ２１５とオペレーティングシステムメタデータトレーラ２２５、さらにはマップされていないブロックの領域２３５を含む。幾つかの実施形態では、マップされていないブロック（図示された実施例のＸブロック）の領域のサイズは、オペレーティングシステムによってサポートされる最大許容ＬＵＮ又は最大論理ボリュームサイズに設定し、論理ボリューム又は物理ＬＵＮの仮想ＬＵＮへの後続の全てのマッピングが仮想ＬＵＮのサイズの拡張を必要としないようにすることができる。１つの別の実施形態では、マップされていない仮想ＬＵＮは、エミュレートされたメタデータ（例えばヘッダ２１５及び／又は２２５）だけから構成され、仮想ＬＵＮのサイズは、ボリューム又は物理ＬＵＮが動的にマップされる場合は大きくすることができる。このような実施形態では、ディスクドライバレイヤ１１４は、仮想ＬＵＮが拡張された場合にはその内部データ構造の一部を修正しなければならない場合があり、そのためには、エミュレートされたメタデータを再読み取りしなければならない場合もある。オフホストバーチャライザー１８０は、メタデータの再読み取りを開始するためにメタデータ変更通知メッセージをディスクドライバレイヤ１１４に送るよう構成される。
【００３０】
図７は、複数のマップされていない仮想ＬＵＮ（ＶＬＵＮ）２３０を作成するよう構成されたオフホストバーチャライザー１８０を含む実施形態を示すブロック図である。図示のように、１つより多いマップされていないＶＬＵＮを、単一のホスト１１０に関連付けることができる。例えば、オフホストバーチャライザー１８０は、マップされていないＶＬＵＮ２３０Ａ、２３０Ｂをホスト１１０Ａに割り当て、マップされていないＶＬＵＮ２３０Ｃ、２３０Ｄ、２３０Ｅをホスト１１０Ｂに割り当てる。幾つかの実施形態では、複数のＶＬＵＮは、種々のアプリケーションに使用されるストレージの分離を可能にするため、或いはシステムでサポートされる最大許容ＬＵＮサイズを上回るストレージへのアクセスを可能にするために所与のホストと関連付けられる。オフホストバーチャライザー１８０は、ストレージデバイス３４０からの物理及び／又は仮想ストレージをマップされていない仮想ＬＵＮ２３０に動的にマップするよう構成される。ホスト１１０Ａ、１１０Ｂは、幾つかの実施形態において種々のオペレーティングシステムを使用するように構成され、他の実施形態では同じオペレーティングシステムを利用してもよい。物理又は仮想ストレージが動的にマップされた後で、これまでマップされていなかったＶＬＵＮ２３０は、基本（すなわち非動的な）ＰＬＵＮトンネリングと基本ボリュームトンネリングで提供されたＶＬＵＮ２１０において既に説明されたものと同じ一般的機能を提供する。物理ストレージと論理ボリュームのＶＬＵＮへの動的マッピングの幾つかの種々の技術について以下に説明する。このような各技術（例えば２つのＰＬＵＮから単一のＶＬＵＮへのマッピング）は、幾つかの実施形態では基本ＰＬＵＮトンネリング又は基本ボリュームトンネリングを使用して、すなわちホスト１１０に事前に割り当てられたマップされていないＶＬＵＮで開始することなく実装することができる点に留意されたい。
【００３１】
前述のように、オフホストバーチャライザー１８０によって生成されたオペレーティングシステム特定メタデータ（例えば図２ｂのヘッダ２１５及び／又はトレーラ２２５内の）により、ホスト１１０でのディスクドライバレイヤ１１４は、マップされていない仮想ＬＵＮ２３０の存在をアドレス指定可能なストレージデバイスとして検出することができる。ＶＬＵＮ２３０がディスクドライバレイヤ１１４によって識別された後、ＶＬＵＮアドレススペース内のいずれかのオフセットのブロックは、ディスクドライバレイヤ１１４、及び従ってディスクドライバレイヤの上にあるいずれかの他のレイヤによってアクセスされる。例えば、中間ドライバレイヤ１１３は、ＶＬＵＮ２３０内でエミュレートされたブロックの指定されたセットから読み取ることにより、及び／又はこれに書き込むことによりオフホストバーチャライザー１８０と通信するよう構成される。このような指定されたブロックは、幾つかの実施形態においてＶＬＵＮ２３０にマップされた論理ボリューム又は物理ＬＵＮに関連する構成情報を中間ドライバレイヤ１１３に設けるためのオフホストバーチャライザー１８０のメカニズムを提供することができる。
【００３２】
１つの実施形態では、オフホストバーチャライザー１８０は、いずれかの追加の仮想化もなしに（すなわち、論理ボリュームを作成することなく）バックエンド物理ＬＵＮからのストレージをマップされていないＶＬＵＮ２３０に動的に直接マップするように構成される。ＰＬＵＮをＶＬＵＮ２３０に動的にマッピングするこのような技術は、「動的ＰＬＵＮトンネリング」と呼ばれる（マップされていないＶＬＵＮを使用することができない上述の基本ＰＬＵＮトンネリングとは異なる）。各ＰＬＵＮは、幾つかの実施形態において、対応するＶＬＵＮ２３０にマップされる（すなわち、ＰＬＵＮのＶＬＵＮへの１対１マッピングは、オフホストバーチャライザー１８０によって実現できる）。他の実施形態では、図８の説明と共に以下に説明されるように、複数のＰＬＵＮからのストレージは、所与のＶＬＵＮ２３０のサブレンジにマップされる。一般に、基本及び動的ＰＬＵＮトンネリングの両方により、オフホストバーチャライザー１８０がＶＬＵＮ２３０（ホスト１１０に直接アクセス可能なストレージエンティティ）とバックエンドＰＬＵＮとの間の分離レイヤとして機能し、オフホストバーチャライザーがホストからの物理ストレージプロトコルインプリメンションに関する詳細を隠すことができる。１つの実施形態では、例えば、バックエンドＰＬＵＮは、ホスト１００によって見られるバージョン（例えばＳＣＳＩ−２）とは異なるストレージプロトコルのバージョン（例えばＳＣＳＩ−３）を実装することができ、オフホストバーチャライザーは、２つのバージョン間のいずれかの要求される変換を提供することができる。別の実施形態では、オフホストバーチャライザー１８０は、バックエンドＰＬＵＮに対する協調アクセス制御メカニズムを実装するように構成され、該メカニズムの詳細は、ホスト１１０から隠されたままとすることができる。
【００３３】
更に、オフホストバーチャライザー１８０は、ＰＬＵＮトンネリング（すなわち、基本ＰＬＵＮトンネリング又は動的ＰＬＵＮトンネリングのいずれか）を使用して共用するデータのレベルを増やすように構成される。ディスクアレイデバイスは、並行「ログイン」の総数、すなわち所与のディスクアレイデバイスにアクセスできるエンティティの総数に対し制限を課す場合が多い。ディスクアレイのためのＰＬＵＮトンネリングを用いるストレージ環境において（すなわち、ＰＬＵＮがディスクアレイデバイスである場合）、オフホストバーチャライザー１８０によって複数のホストが単一のログインを介してディスクアレイにアクセスすることができる。すなわち、例えば、複数のホスト１１０を、オフホストバーチャライザー１８０にログインすることができ、オフホストバーチャライザーを、複数のホスト１１０の代わりに一度ディスクアレイＰＬＵＮにログインできる。次に、オフホストバーチャライザーは、単一のログインを使用して複数のホスト１１０からディスクアレイＰＬＵＮにＩ／Ｏ要求を中継することができる。ディスクアレイＰＬＵＮによって見られるようなログインの数（すなわち、ログインされた別個のエンティティ）は、これにより、ディスクアレイＰＬＵＮでターゲットされたＩ／Ｏオペレーションを開始するホスト１１０の数を低減させることなく、ＰＬＵＮトンネリングの結果として低減させることができる。ログインカウント制約を備えた単一のディスクアレイＰＬＵＮでストレージにアクセスできるホスト１１０の総数をこれによって増やすことができ、従ってデータ共用の全体のレベルを高めることができる。
【００３４】
図８は、オフホストバーチャライザー１８０が、２つの異なる物理ストレージデバイス３４０Ａ、３４０Ｂの中から単一のＶＬＵＮ２３０Ｂに物理ストレージを動的にマップするように構成された実施形態を示すブロック図である。すなわち、オフホストバーチャライザー１８０は、デバイス３４０Ａからの物理ストレージの第１範囲をＶＬＵＮ２３０Ｂ内のマップされるブロックの第１領域８２１Ａにマップし、デバイス３４０Ｂからの物理ストレージの第２範囲をＶＬＵＮ２３０Ｂ内のマップされるブロックの第２領域８２１Ｂにマップするように構成される。物理ストレージの第１及び第２範囲は、ディスクアレイのようなそれぞれのＰＬＵＮ、又はＰＬＵＮのそれぞれのサブセットを各々提示することができる。マップされるブロック８２１Ａ、８２１Ｂが位置付けられるＶＬＵＮ２３０Ｂ内のオフセットを示す構成情報は、オフホストバーチャライザー１８０によって種々の実施形態において種々のメカニズムを使用して中間ドライバレイヤ１１３に提供することができる。例えば、１つの実施形態では、オフホストバーチャライザー１８０は、ＶＬＵＮ２３０内のブロックの指定されたセットに構成情報を書き込むことができ、中間ドライバレイヤ１１３は、上述のようにブロックの指定されたセットを読み取るように構成される。別の実施形態では、オフホストバーチャライザー１８０は、直接（相互接続部３５０Ａ又は別のネットワークを通じて）或いは中間協調サーバを介してのいずれかで構成情報を含むメッセージをホスト１１０Ａに送ることができる。更に別の実施形態では、構成情報は、特別なＳＣＳＩモードページ内に供給することができる（すなわち、中間ドライバレイヤ１１３は、オフホストバーチャライザー１８０によって更新された構成情報を含む特別なＳＣＳＩモードページを読み取るように構成される）。これらの技術の組合せは、幾つかの実施形態で使用でき、例えば、１つの実施形態ではオフホストバーチャライザー１８０は、中間ドライバレイヤが構成情報を含む特別なＳＣＳＩモードページを読み取ることを要求するメッセージを中間ドライバレイヤ１１３に送ることができる。
【００３５】
図９は、オフホストバーチャライザー１８０が、単一の物理ストレージデバイス３４０Ａ内からの物理ストレージを異なるホスト１１０Ａ、１１０Ｂに割り当てられた２つのＶＬＵＮ２３０に動的にマップするように構成された実施形態を示すブロック図である。図示のように、物理ストレージデバイス３４０Ａの物理ストレージの第１範囲９５５Ａは、ホスト１１０Ａに割り当てられたＶＬＵＮ２３０Ｂ内のマップされるブロックの第１範囲８２１Ａにマップすることができる。同じ物理ストレージデバイス３４０Ａの物理ストレージの第２範囲９５５Ｂは、ホスト１１０Ｂに割り当てられたＶＬＵＮ２３０Ｅのマップされるブロックの第２範囲８２１Ｃにマップされる。更に、幾つかの実施形態では、オフホストバーチャライザー１８０は、ホスト１１０Ｂから物理ストレージ範囲９５５Ａへの許可されていないアクセスを阻止し、更にホスト１１０Ａから物理ストレージ９５５Ｂへの許可されていないアクセスを阻止するように構成される。従って、複数のホスト１１０から単一の物理ストレージデバイス３４０Ａへのアクセスを可能にすることに加えて、オフホストバーチャライザー１８０はまた、例えば、指定されたセキュリティプロトコルに従って物理ストレージの各範囲９５５Ａ、９５５Ｂに対するセキュリティを提供するように構成される。１つの実施形態では、例えば、セキュリティプロトコルは、単一のホスト１１０だけからの所与のＶＬＵＮ２３０（及びそのバッキング物理ストレージ）へのＩ／Ｏオペレーションを可能にする。オフホストバーチャライザー１８０は、幾つかの実施形態では、ホスト１１０とＶＬＵＮ２３０に対するアクセス権情報を保持するように構成され、他の実施形態では、ホストからのアクセスが許可される特定のＶＬＵＮを示すセキュリティトークンを各ホスト１１０に提供することができる。該セキュリティトークンを、Ｉ／Ｏ要求と共に含めることができる。
【００３６】
幾つかの実施形態では、オフホストバーチャライザー１８０は、物理ストレージを論理ボリュームに集め、該論理ボリュームをＶＬＵＮ２３０内のアドレス範囲に動的にマップするように構成される。論理ボリュームをＶＬＵＮ２３０に動的にマップするこのような技術は、「動的ボリュームトンネリング」と呼ぶことができる（マップされていないＶＬＵＮを使用することができない上述の基本ボリュームトンネリングとは異なる）。図１０は、オフホストバーチャライザー１８０が物理ストレージデバイス３４０Ａのストレージ１０５５Ａを論理ボリューム１０６０Ａに集め、該論理ボリューム１０６０ＡをＶＬＵＮ２３０Ｂのブロックの範囲（図１０においてマップされるボリューム１０６５Ａとして示される）に動的にマップするよう構成される実施形態を示すブロック図である。ＰＬＵＮトンネリングの場合のように、トンネルされる論理ボリューム１０６０Ａに関連する構成情報又はメタデータは、拡張ＳＣＳＩモードページ、ＶＬＵＮ２３０Ａ内のエミュレートされた仮想ブロック、及び／又はオフホストバーチャライザー１８０からホスト１１０Ａへの直接又は間接メッセージデントのような種々のメカニズムのいずれかを使用して中間ドライバレイヤ１１３に提供される。論理ボリューム１０６０Ａは、図示の実施形態において単一の物理ストレージデバイス３４０Ａの一部だけがバックされるように示されているが、他の実施形態では論理ボリューム１０６０Ａは、単一の物理ストレージデバイス内の全ストレージから、或いは２つ又はそれ以上の物理デバイスのストレージから集めることができる。仮想化の複数のレイヤを用いる幾つかの実施形態では、論理ボリューム１０６０Ａ自体は、物理ストレージデバイスから直接ではなく他の論理ストレージデバイスから集めることができる。１つの実施形態では、各ホスト１１０（すなわち、ホスト１１０Ａに加えてホスト１１０Ｂ）は、別個のＶＬＵＮを介して論理ボリューム１０６０Ａへのアクセスを可能にすることができ、別の実施形態では論理ボリュームの種々のセットを種々のホスト１１０に提示することができる。
【００３７】
図１１は、オフホストバーチャライザー１８０が複数の論理ボリュームを単一のＶＬＵＮ２３０に動的にマップするように構成される実施形態を示すブロック図である。図示のように、オフホストバーチャライザー１８０は、物理ストレージデバイス３４０Ａからのストレージ範囲１１５５Ｃと物理ストレージデバイス３４０Ｂからの物理ストレージ範囲１１５５Ｂを論理ボリューム１１６０Ａに集め、論理ボリューム１１６０ＡをＶＬＵＮ２３０Ｂの第１のマップされるボリューム領域１１６５Ａにマップするように構成される。更に、オフホストバーチャライザー１８０はまた、物理ストレージデバイス３４０Ａからの物理ストレージ範囲１１５５Ｂを第２論理ボリューム１１６０Ｂに集め、論理ボリューム１１６０ＢをＶＬＵＮ２３０Ｂの第２のマップされるボリューム領域１１６５Ｂにマップすることができる。一般に、オフホストバーチャライザー１８０は、１つ又はそれ以上の物理ストレージデバイス３４０からの物理ストレージブロックのいずれかの好適な選択を１つ又はそれ以上の論理ボリュームに集め、該論理ボリュームを事前生成されたマップされていないＶＬＵＮ２３０の１つ又はそれ以上にマップすることができる。
【００３８】
図１２は、オフホストバーチャライザー１８０が物理ストレージデバイス３４０Ａからのストレージを論理ボリューム１２６０Ａ、１２６０Ｂに集め、２つの論理ボリュームの各々を異なるＶＬＵＮ２３０に動的にマップするように構成される別の実施形態を示すブロック図である。例えば図示のように、論理ボリューム１２６０Ａは、ホスト１１０Ａからアクセス可能なＶＬＵＮ２３０Ｂ内の第１アドレス範囲にマップされ、他方、論理ボリューム１２６０Ｂは、ホスト１１０Ｂからアクセス可能なＶＬＵＮ２３０Ｅ内の第２アドレス範囲にマップされる。オフホストバーチャライザー１８０は更に、ＰＬＵＮトンネリングの上述のセキュリティプロトコルと同様に、許可されていないアクセス及び／又はデータ破損を防止するためのセキュリティプロトコルを実施するように構成される。オフホストバーチャライザー１８０は、論理ボリュームレベルでセキュリティプロトコルを実装することができ、すなわち、オフホストバーチャライザー１８０は、データが単一の物理ストレージデバイス３４０Ａ内に格納されている論理ボリューム１２６０Ａ（例えばホスト１１０Ｂから）と１２６０Ｂ（例えばホスト１１０Ａから）に対しての許可されていないアクセスを阻止することができる。１つの実施形態では、オフホストバーチャライザー１８０は、各ホスト１１０がアクセスを認可されている論理ボリューム１２６０のアクセス権情報を保持するように構成される。他の実施形態では、ホストからのアクセスが許可される特定の論理ボリューム１２６０を示すセキュリティトークンは、各ホスト１１０（例えば、オフホストバーチャライザー１８０によって、又は外部セキュリティサーバによって）に提供され、該セキュリティトークンは、Ｉ／Ｏ要求と共に含められる。
【００３９】
多くのストレージ環境は、物理ストレージデバイスにアクセスするために、ファイバーチャネル構造のようなストレージエリアネットワーク（ＳＡＮ）を利用する。スイッチ再構成、再ケーブリング、リブートなどを必要とする場合があるＳＡＮ構造再構成（例えば、要求されるＰＬＵＮ又は論理ボリュームへのアクセスを事前に持たなかった特定のホストから特定のＰＬＵＮ又は論理ボリュームへのアクセスを可能にするため）は、通常、かなり複雑でエラーを発生し易い。上述の動的ＰＬＵＮトンネリングや動的ボリュームトンネリングの技術は、ＳＡＮ再構成オペレーションの簡素化を可能にする。事前に生成されたマップされていないＶＬＵＮをホストに関連付けて、必要に応じてＰＬＵＮや論理ボリュームをＶＬＵＮに動的にマップすることによって、多くの再構成オペレーションは、スイッチでのマッピングテーブルの変更、及び中間ドライバレイヤ１１３による新しいメタデータの識別をだけを必要とすることになる。ストレージデバイスは、ＰＬＵＮトンネリング及び／又はボリュームトンネリングを使用して、複数のホスト１１０全体にわたり更に容易に共用することができ、或いは１つのホストから別のホストへ論理的に転送することができる。例えば協調するストレージアロケータによって保持されるプールからのストレージの割り当て及び／又は提供も簡素化することができる。
【００４０】
ＳＡＮ構成変更を簡素化することに加えて、ＰＬＵＮトンネリングとボリュームトンネリングは、別々に構成されたストレージネットワーク全体のストレージ相互接続部（例えば、複数のファイバーチャネル構造全体の相互接続部）をサポートすることができる。図１３は、複数のストレージネットワークを用いる実施形態を示すブロック図である。図示のように、オフホストバーチャライザー１８０は、第１ストレージネットワーク１３１０Ａを介して物理ストレージデバイス３４０Ａにアクセスし、第２ストレージネットワーク１３１０Ｂを介して物理ストレージデバイス３４０Ｂにアクセスするように構成される。オフホストバーチャライザー１８０は、物理ストレージデバイス３４０Ａからのストレージを論理ボリューム１３６０Ａに集め、論理ボリューム１３６０ＡをＶＬＵＮ２３０Ｂにマップすることができる。同様に、オフホストバーチャライザー１８０は、物理ストレージデバイス３４０Ｂからのストレージを論理ボリューム１３６０Ｂに集め、論理ボリューム１３６０ＢをＶＬＵＮ２３０Ｅにマップする。ホスト１１０Ａは、第３ストレージネットワーク１３１０Ｃを介してＶＬＵＮ２３０Ａにアクセスし、第４ストレージネットワーク１３１０Ｄを介してＶＬＵＮ２３０Ｂにアクセスするように構成される。
【００４１】
各ストレージネットワーク１３１０（すなわち、ストレージネットワーク１３１０Ａ、１３１０Ｂ、１３１０Ｃ、又は１３１０Ｄ）は、別個に構成可能であり、すなわち、所与のストレージネットワーク１３１０内で実行される再構成オペレーションは、どのような他のストレージネットワーク１３１０にも影響を及ぼす可能性はない。同様に、所与のストレージネットワーク１３１０内の障害又は間違った構成も、どのような他の独立したストレージネットワーク１３１０にも影響を及ぼす可能性はない。幾つかの実施形態では、ホスト１１０は、複数のＨＢＡを含み、各ホストは複数の独立したストレージネットワークにアクセスできる。例えば、ホスト１１０Ａは、図１３に示された実施形態において２つのＨＢＡを含み、第１ＨＢＡがストレージネットワーク１３１０Ｃへアクセスでき、第２ＨＢＡがストレージネットワーク１３１０Ｄへアクセスできる。このような実施形態では、ホスト１１０Ａは、構成分離の利点を維持しながらバックエンド物理ストレージデバイス３４０への十分な接続性を提供することができる。図１３は、ボリュームトンネリングと共に複数の独立したストレージネットワークの使用を示しており、他の実施形態では複数の独立したストレージネットワークはまた、ＰＬＵＮトンネリング、又はＰＬＵＮとボリュームトンネリングの組み合わせと共に使用することができる。更に、幾つかの実施形態において独立したストレージネットワーク１３１０の使用は非対称とすることができ、すなわち例えば、１つの実施形態では、複数の独立したストレージネットワーク１３１０は、フロントエンド接続（すなわち、オフホストバーチャライザー１８０とホスト１１０との間）に使用することができ、一方、単一のストレージネットワークだけでは、バックエンド接続（すなわち、オフホストバーチャライザー１８０と物理ストレージデバイス３４０との間）のために使用することができる。ファイバーチャネル、ＩＰベースプロトコルなどのどのような要求される相互接続部技術及び／又はプロトコルを用いても、ストレージネットワーク１３１０を実装することができる。例えば１つの実施形態では、各ストレージネットワーク１３１０は、ファイバーチャネル構造とすることができる。別の実施形態では、第１ストレージネットワーク１３１０内で使用される相互接続部技術又はプロトコルは、第２ストレージネットワーク１３１０内で使用される相互接続部技術又はプロトコルとは異なるものとすることができる。
【００４２】
１つの実施形態では、ボリュームトンネリングはまた、最大ＬＵＮサイズ制限を克服できるようにすることができる。例えば、ＳＣＳＩプロトコルは、ＬＵＮブロックアドレスとして３２ビットの符号のない整数を使用するよう構成され、これによって単一のＬＵＮでアクセスできるストレージの最大量を２テラバイト（５１２バイトブロックについて）又は３２テラバイト（８キロバイトブロックについて）に制限する。ボリュームトンネリングによって、中間ドライバレイヤ１１３は単一のＶＬＵＮにマップされたボリュームとして複数の物理ＬＵＮからのストレージにアクセスすることができ、これにより最大ＬＵＮサイズの制限を克服することができる。図１４は、オフホストバーチャライザー１８０が２つの物理ストレージデバイス３４０Ａ、３４０Ｂからのストレージを単一の論理ボリューム１４６０Ａに集めるように構成された実施形態を示すブロック図であり、ここでボリューム１４６０Ａのサイズは、ストレージデバイス３４０で使用中のストレージプロトコルによってサポートされる許容最大ＬＵＮサイズを越える。オフホストバーチャライザー１８０は、論理ボリューム１４６０ＡをＶＬＵＮ２３０Ｂに動的にマップし、論理ボリュームメタデータをホスト１１０Ａで中間ドライバレイヤ１１３に提供するように更に構成される。論理ボリュームメタデータは、最大許容ＬＵＮサイズよりも大きなＶＬＵＮ２３０Ｂ内のアドレススペースにアクセスするために中間ドライバレイヤ１１３用の十分な情報を含む。
【００４３】
図１５は、１つの実施形態によるホスト１１０とオフホストバーチャライザー１８０の動作の態様を示すフロー図であり、ここでオフホストバーチャライザー１８０は、動的ＰＬＵＮトンネリングをサポートするように構成されている。オペレーティングシステムメタデータ要件を受け取った（ブロック１５０５）後で、オフホストバーチャライザー１８０は、マップされていない仮想ストレージデバイス（例えばＶＬＵＮ）のためのオペレーティングシステムメタデータを生成し（ブロック１５１０）、更に該メタデータをホスト１１０がアクセスできる（ブロック１５１５）ように構成される。図１ｂのディスクドライバレイヤ１１４のようなホスト１１０でのストレージソフトウェアスタックの第１レイヤは、ＯＳメタデータを使用して、例えばシステム初期化又はブート中にアドレス指定可能なストレージデバイスとして（例えばＬＵＮとして）仮想ストレージデバイスの存在を検出する（ブロック１５２０）ように構成される。マップされていない仮想ストレージデバイスが検出された後で、オフホストバーチャライザー１８０は、１つ又はそれ以上のバックエンド物理ストレージデバイス３４０（例えばＰＬＵＮ）からの物理ストレージを仮想ストレージデバイス内のアドレス範囲に動的にマップする（ブロック１５２５）ように構成される。
【００４４】
図１６は、オフホストバーチャライザー１８０が動的ボリュームトンネリングをサポートするように構成されている１つの実施形態によるホスト１１０とオフホストバーチャライザー１８０のオペレーションの態様を示すフロー図である。図１６に示された最初の３つのブロックは、図１５に示された最初の３つのブロックと類似の機能を表している。すなわち、オフホストバーチャライザー１８０は、オペレーティングシステムメタデータ要件を受け取り（ブロック１６０５）、マップされていない仮想ストレージデバイス（例えばＶＬＵＮ）に対するオペレーティングシステムメタデータを生成し（ブロック１６１０）、更にそのメタデータをホスト１１０がアクセスできる（ブロック１６１５）ように構成される。図１ｂのディスクドライバレイヤ１１４などのストレージソフトウェアスタックの第１レイヤは、ＯＳメタデータを使用して、例えばシステム初期化又はブート中にアドレス指定可能なストレージデバイスとして（例えばＬＵＮとして）仮想ストレージデバイスの存在を検出する（ブロック１６２０）ように構成される。更に、オフホストバーチャライザー１８０は、１つの又は物理ストレージデバイス３４０にあるストレージを論理ボリュームに集め（ブロック１６２５）、更にその論理ボリュームをこれまでにマップされていない仮想ストレージデバイス内のアドレス範囲に動的にマップする（ブロック１６３０）ように構成される。オフホストバーチャライザー１８０は更に、論理ボリュームメタデータをホスト１１０でのストレージソフトウェアスタックの第２レイヤ（例えば中間ドライバレイヤ１１３）に提供する（ブロック１６３５）ように構成され、これによって第２レイヤは、論理ボリュームのブロックを位置付け、論理ボリューム上で要求されるＩ／Ｏオペレーションを実行することができる（ブロック１６４０）。
【００４５】
種々の実施形態では、オフホストバーチャライザー１８０は、ブロック仮想化を使用して多くの種々のタイプのストレージ機能を実現することができる。例えば１つの実施形態では、論理ボリュームなどの仮想ブロックデバイスはデバイス・ストライピングを実装する。デバイス・ストライピングは、データブロックが複数の物理又は論理ブロックデバイス、及び又はデバイス・スパンニングに分散され、デバイス・スパンニングにおいて複数の物理又は論理ブロックデバイスをジョントして単一の大きな論理ブロックデバイスとして見えるようにする。幾つかの実施形態では、仮想化されたブロックデバイスは、冗長データストレージのミラーリング及び他の形式、ある時点での特定のブロックデバイスのスナップショット又は背景画像を作成する機能、及び／又は例えば、ローカルエリアネットワーク（ＬＡＮ）又はワイドエリアネットワーク（ＷＡＮ）などのネットワークを介して接続されたストレージシステム間でデータブロックを複製する機能を提供することができる。更に幾つかの実施形態では、仮想化されたブロックデバイスは、負荷分散などの幾つかの性能最適化、及び／又はデバイス間のオンラインデータ移行などの仮想デバイス構造のオンライン再編成のための種々の機能を実現することができる。他の実施形態では、１つ又はそれ以上のブロックデバイスが、特定の仮想化されたブロックデバイスにマップされ、次いで該特定の仮想化されたブロックデバイスが更に別の仮想化されたブロックデバイスにマップされ、これにより複雑なストレージ機能を簡単なブロックデバイスで実装することが可能となる。従って、ストライピングやミラーリングなどの１つよりも多い仮想化機能は、幾つかの実施形態では単一の仮想ブロックデバイス内で組み合わせて、論理階層仮想ストレージデバイスを作成することができる。
【００４６】
オフホストバーチャライザー１８０の単独、又はホスト１１０のボリュームマネージャーなどの１つ又はそれ以上の他のバーチャライザーとの連携、或いは他のオフホストバーチャライザーは、仮想化されたブロックデバイスの構成マネージメントとブロックデバイス仮想化の分散された協調などの機能を提供することができる。例えば、２つのホスト１１０によって共用される論理ボリュームの再構成後（例えば、論理ボリュームが拡張される場合、或いは新しいミラーが論理ボリュームに付加される場合）、オフホストバーチャライザー１８０は、２つのホスト１１０に再構成を指示するメタデータ又はボリューム記述を分配するように構成される。１つの実施形態では、ボリューム記述がホストに提供されると、ホストのストレージスタックが、ボリューム記述に従って（すなわち、ボリューム記述を使用して論理Ｉ／Ｏ要求を物理Ｉ／Ｏ要求に変換するために）種々のストレージデバイス３４０と直接対話するよう構成される。ホスト１１０などの１つ又はそれ以上の仮想デバイスクライアントへのボリュームとして仮想化されたブロックデバイスの分散は、分散型ブロック仮想化と呼ぶことができる。
【００４７】
前述のように、幾つかの実施形態では、仮想化の複数のレイヤは、例えばホストレベルや仮想化スイッチ又は仮想化アプライアンスのようなオフホストレベルで利用することができる。このような実施形態では、仮想化の幾つかの態様は、ファイルシステムレイヤ１１２のような仮想デバイス消費者にとって見ることができ、他の態様では、オフホストレベルによって透過的に実装される。更に、幾つかのマルチレイヤの実施形態では、１つのブロックデバイス（例えば１つのボリューム）の仮想化の詳細は、仮想デバイス消費者に（すなわち、オフホストレベルで更に仮想化することなく）十分に定義することができ、別のブロックデバイス（例えば別のボリューム）の仮想化詳細は、仮想デバイス消費者に部分的に又は完全に透過的にすることができる。
【００４８】
幾つかの実施形態では、オフホストバーチャライザー１８０のようなバーチャライザーは、システム内に存在するホスト１１０のような各仮想デバイスクライアントに対して全ての定義された論理ボリュームを分散するように構成される。このような実施形態は、対称的分散ブロック仮想化システムと呼ぶことができる。他の実施形態では、特定のボリュームは、少なくとも１つのボリュームが２つの仮想デバイス消費者に共通でないようにそれぞれの仮想デバイス消費者又はホストに対してだけ分散することができる。このような実施形態は、非対称的分散ブロック仮想化システムと呼ぶことができる。
【００４９】
オフホストバーチャライザー１８０は、ホスト１１０に外部にある、上述されたＰＬＵＮとボリュームトンネリングを含む仮想化機能を提供できるいずれかのタイプのデバイスとすることができる点に留意されたい。例えば、オフホストバーチャライザー１８０は、仮想化スイッチ、仮想化アプライアンス、ブロック仮想化を専門に供給する特別な追加ホスト、或いは特定用途向け集積回路（ＡＳＩＣ）又はフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）技術を使用してブロック仮想化機能を実行するよう構成された組込みシステムを含む。図１７は、オフホストバーチャライザー１８０が仮想化スイッチ１７１０を含む実施形態を示すブロック図であり、図１８は、オフホストバーチャライザー１８０が仮想化アプライアンス１８１０を含む別の実施形態を示すブロック図である。仮想化スイッチ１７１０は、ファイバーチャネル接続性を提供することに加えて、仮想化機能を実行するのに十分な処理能力を備えて構成されたインテリジェントファイバーチャネルスイッチとすることができる。仮想化アプライアンス１８１０は、ミラーリング、ストライピング、スナップショット、その他の同様のものなどの仮想化機能を提供するようプログラムされたインテリジェントデバイスとすることができる。アプライアンスは、該アプライアンスが専用とされ、ベンダーによって事前インストールされ、更にユーザーによって容易に修正可能ではない機能（仮想化のような）向けにアプライアンスソフトウェアが通常カスタマイズされる汎用コンピュータとは異なる可能性がある。幾つかの実施形態では、オフホストブロック仮想化は、単一のデバイスではなく２つ又はそれ以上の仮想化スイッチのような協調デバイスの集まりによって提供することができる。このような協調デバイスの集まりは、フェイルオーバーのために構成される、すなわちスタンバイ協調デバイスは、失敗した協調デバイスによってサポートされる仮想化機能を引き継ぐように構成される。オフホストバーチャライザー１８０は、１つ又はそれ以上のプロセッサ、並びに揮発性及び／又は不揮発性メモリを組み込むことができる。幾つかの実施形態では、仮想化に関連する構成情報は、オフホストバーチャライザー１８０とは別のデータベースに保持することができ、ネットワークを通じてオフホストバーチャライザーによってアクセスすることができる。１つの実施形態では、オフホストバーチャライザーは、プログラム可能及び／又は構成可能にできる。オフホストバーチャライザー１８０の多数の他の構成も可能であり企図される。
【００５０】
図１９は、１つの実施形態による例示的なホスト１１０を示すブロック図である。ホスト１１０は、１つ又はそれ以上のプロセッサ１９１０及び１つ又はそれ以上のメモリ１９２０を含むサーバなどのいずれかのコンピュータシステムとすることができ、上述のストレージソフトウェアスタック１４０Ｂをサポートすることができる。図示のように、ホスト１１０は、１つ又はそれ以上のローカルストレージデバイス１９３０（ディスクのような）や、相互接続部１３０にインターフェースを提供する１つ又はそれ以上のネットワークインターフェース１９４０を含む。ストレージソフトウェアスタック１４０Ｂの一部はメモリ１９２０内に存在し、必要に応じてストレージデバイス１９３０からメモリ１９２０にロードすることができる。幾つかの実施形態では、ホスト１１０はまた、ローカルストレージデバイス１９３０を使用する代わりにリモート位置からストレージにアクセスするよう構成されたディスクレスコンピュータとすることができる。ビデオカード、モニター、マウスなどの種々の他の構成要素はまた、種々の実施形態においてホスト１１０内に含めることができる。Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（商標）の種々のバージョン、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ製のＳｏｌａｒｉｓ（商標）、Ｌｉｎｕｘの種々のバージョン、ＵＮＩＸ（登録商標）に基づく他のオペレーティングシステム、及び同様のものを含むいずれかの要求されるオペレーティングシステムをホスト１１０で使用することができる。中間ドライバレイヤ１１３は、幾つかの実施形態でボリュームマネージャーの中に含む。
【００５１】
図２０は、上述されたオフホストバーチャライザー１８０とブロックストレージソフトウェアスタック１４０Ｂの機能を提供できる仮想化ソフトウェア２０１０を含むコンピュータアクセス可能媒体２０００を示すブロック図である。仮想化ソフトウェア２０１０は、電子媒体（例えばフラッシュメモリ）、ＲＡＭなどの磁気媒体（例えばＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＣＤ−ＲＯＭなどの光ストレージ媒体だけでなく、ネットワーク及び／又は無線リンクのような通信媒体を介して伝達される電子、電磁、又はデジタル信号のような送信媒体又は信号を含む種々のコンピュータアクセス可能媒体を使用するコンピュータシステムに提供することができる。
【００５２】
上記の実施形態をかなり詳細に説明してきたが、多くの変形形態及び修正は、上記の開示が十分理解されると当業者には明らかになるであろう。添付の請求項は、全てのこのような変形形態及び修正を含むと解釈される。
【図面の簡単な説明】
【００５３】
【図１ａ】コンピュータシステムの１つの実施形態を示すブロック図である。
【図１ｂ】オフホストブロック仮想化を利用するよう構成されたシステムの実施形態を示すブロック図である。
【図２ａ】１つの実施形態に従ってソースボリュームをカプセル化する仮想論理ユニット（ＬＵＮ）へのオペレーティングシステム特定メタデータの追加を示すブロック図である。
【図２ｂ】オフホストバーチャライザーがオペレーティングシステムメタデータ内にパーティションテーブルを含むように構成される実施形態を示すブロック図である。
【図２ｃ】オフホストバーチャライザーが物理ストレージデバイス内のストレージを論理ボリュームに集め、該論理ボリュームを仮想ＬＵＮにマップするように構成される実施形態を示すブロック図である。
【図３】複数の仮想ＬＵＮを生成するように構成されたオフホストバーチャライザーを含む実施形態を示すブロック図である。
【図４】ホストとオペレーティングシステムメタデータを生成するように構成されたオフホストバーチャライザーとのオペレーションの態様を示すフロー図である。
【図５】オフホストバーチャライザーが、１つ又はそれ以上の物理ストレージデバイスのストレージを論理ボリュームに集め、該論理ボリュームを仮想ＬＵＮにマップするように構成された実施形態を示すフロー図である。
【図６】１つの実施形態によるマップされない仮想ＬＵＮの実施例を示すブロック図である。
【図７】複数のマップされない仮想ＬＵＮを作成するように構成されたオフホストバーチャライザーを含む実施形態を示すブロック図である。
【図８】オフホストバーチャライザーが、２つの異なる物理ストレージデバイスの中からの物理ストレージを単一の仮想ＬＵＮに動的にマップするように構成された実施形態を示すブロック図である。
【図９】オフホストバーチャライザーが、単一の物理ストレージデバイスの中からの物理ストレージを異なるホストに割り当てられた２つの仮想ＬＵＮに動的にマップするように構成された実施形態を示すブロック図である。
【図１０】オフホストバーチャライザーが、物理ストレージデバイスのストレージを論理ボリュームに集め、該論理ボリュームを仮想ＬＵＮのブロックの範囲に動的にマップするように構成された実施形態を示すブロック図である。
【図１１】オフホストバーチャライザーが、複数の論理ボリュームを単一の仮想ＬＵＮに動的にマップするように構成された実施形態を示すブロック図である。
【図１２】オフホストバーチャライザーが、物理ストレージデバイスからのストレージを２つの論理ボリュームに集め、２つの論理ボリュームの各々を異なる仮想ＬＵＮに動的にマップするように構成された実施形態を示すブロック図である。
【図１３】複数のストレージネットワークを利用する実施形態を示すブロック図である。
【図１４】オフホストバーチャライザーが、２つの物理ストレージデバイスからのストレージを単一の論理ボリュームに集めるように構成された実施形態を示すブロック図である。
【図１５】オフホストバーチャライザーが、動的物理ＬＵＮトンネリングをサポートするように構成された１つの実施形態によるホストとオフホストバーチャライザーとのオペレーションの態様を示すフロー図である。
【図１６】オフホストバーチャライザー１８０が動的ボリュームトンネリングをサポートするように構成された１つの実施形態によるホストとオフホストバーチャライザーとのオペレーションの態様を示すフロー図である。
【図１７】オフホストバーチャライザーが仮想化スイッチを含む実施形態を示すブロック図である。
【図１８】オフホストバーチャライザーが仮想化アプライアンスを含む実施形態を示すブロック図である。
【図１９】１つの実施形態による例示的なホストを示すブロック図である。
【図２０】１つの実施形態によるコンピュータアクセス可能媒体を示すブロック図である。
【符号の説明】
【００５４】
１１０  ホスト、１３０  相互接続部、１８０  オフホストバーチャライザー、２１０  仮想ＬＵＮ（ＶＬＵＮ）、３４０  ストレージデバイス
【図１ａ】
2007516523.tif 000003
【図１ｂ】
2007516523.tif 000004
【図２ａ】
2007516523.tif 000005
【図２ｂ】
2007516523.tif 000006
【図２ｃ】
2007516523.tif 000007
【図３】
2007516523.tif 000008
【図４】
2007516523.tif 000009
【図５】
2007516523.tif 000010
【図６】
2007516523.tif 000011
【図７】
2007516523.tif 000012
【図８】
2007516523.tif 000013
【図９】
2007516523.tif 000014
【図１０】
2007516523.tif 000015
【図１１】
2007516523.tif 000016
【図１２】
2007516523.tif 000017
【図１３】
2007516523.tif 000018
【図１４】
2007516523.tif 000019
【図１５】
2007516523.tif 000020
【図１６】
2007516523.tif 000021
【図１７】
2007516523.tif 000022
【図１８】
2007516523.tif 000023
【図１９】
2007516523.tif 000024
【図２０】
2007516523.tif 000025
【国際調査報告】
2007516523.tif 000026
2007516523.tif 000027
2007516523.tif 000028