(57)【特許請求の範囲】
【請求項１】
ストレージ・インフラ（２００）におけるストレージ仮想化（コンピューティング環境におけるリソースないし資源の抽象化、明細書の段落［０００２］）を管理するための方法であって、
１個以上のデータ・ストレージ資源（２５０）を有するデータ・ストレージ・インフラに跨るストレージ仮想化構成を調べて、前記１個以上のデータ・ストレージ資源に適用される前記ストレージ仮想化構成に関連する構成データが構成レポジトリ（２４０）にストアされるようにするステップであって、前記構成データが選択されたデータ・ストレージ資源に関係付けられた仮想化のレベル（明細書の段落［０００４］）を示すものである、当該ステップと、
前記データ・ストレージ・インフラに跨る仮想化ポリシーの不一致（明細書の段落［００１８］、図面の［図４］、競合を検出し解決するための不一致遠隔ミラーリング＝メトロ・ミラー／ノー・メトロ・ミラー）を検出するために前記構成データを解析するステップと、
前記仮想化ポリシーの不一致に応答してストレージ仮想化を改良するよう訂正動作のための推薦を自動的に実施するステップであって、前記仮想化ポリシーの不一致は選択されたデータ・ストレージ資源の仮想化されたマッピング（明細書の段落［００２５］）に基づいてデータ・ストレージ・インフラ中において検知されたところの統合もしくは関連付けられた冗長度（ＲＡＩＤ＝なし／ＲＡＩＤ０／ＲＡＩＤ、明細書の段落［００４０］、図面の［図４］）または不一致を示すものである、当該ステップと
を含み、これらの各ステップをコンピュータのストレージ管理モジュール（２１４）に実行させる、
方法。
【請求項２】
前記実施された推薦に従ってストレージの仮想化を改良するための訂正動作を自動的に行うステップを更に含む、請求項１に記載の方法。
【請求項３】
前記訂正動作のための推薦が、前記１個以上のデータ・ストレージ資源のためのストレージ仮想化構成に関連するボリューム・マッピングを含む構成データに基づき実施される、請求項１に記載の方法。
【請求項４】
前記訂正動作のための推薦が、前記データ・ストレージ・インフラにおけるホスト・システム上で実行されるアプリケーションに関連する構成データに基づいて実施される、請求項１に記載の方法。
【請求項５】
前記訂正動作のための推薦が、前記ストレージ・インフラにおけるサーバー・システム上で実行されるファイル・システムに関連する構成データに基づいて実施される、請求項１に記載の方法。
【請求項６】
前記訂正動作のための推薦が、前記ストレージ・インフラにおけるサーバー・システム上で実行されるオペレーティング・システムに関連する構成データに基づいて実施される、請求項１に記載の方法。
【請求項７】
前記訂正動作のための推薦が、前記データ・ストレージ・インフラにおけるＳＡＮ（ストレージ・エリア・ネットワーク）コンポーネントに関連する構成データに基づいて実施される、請求項１に記載の方法。
【請求項８】
前記ＳＡＮコンポーネントがデータベースを含むものである、請求項７に記載の方法。
【請求項９】
前記ＳＡＮコンポーネントがＳＡＮネットワーキング装置を含むものである、請求項７に記載の方法。
【請求項１０】
前記ＳＡＮコンポーネントが、ディスク・ストレージ・サブシステムおよびボリューム、またはテープ・サブシステムおよびボリュームを含むものである、請求項７に記載の方法。
【請求項１１】
ストレージ・インフラ（２００）におけるストレージ仮想化（コンピューティング環境におけるリソースないし資源の抽象化、明細書の段落［０００２］）を管理するためのシステムであって、
１個以上のプロセッサと、
１個以上のデータ・ストレージ資源（２５０）を有するデータ・ストレージ・インフラに跨るストレージ仮想化構成を調べて、前記１個以上のデータ・ストレージ資源に適用される前記ストレージ仮想化構成に関連する構成データが構成レポジトリ（２４０）にストアされるようにするための論理ユニットであって、前記構成データが選択されたデータ・ストレージ資源に関係付けられた仮想化のレベル（明細書の段落［０００４］）を示すものである、当該論理ユニットと、
前記データ・ストレージ・インフラに跨る仮想化ポリシーの不一致（明細書の段落［００１８］、図面の［図４］、競合を検出し解決するための不一致遠隔ミラーリング＝メトロ・ミラー／ノー・メトロ・ミラー）を検出するために前記構成データを解析するための論理ユニットと、
前記仮想化ポリシーの不一致に応答してストレージ仮想化を改良するための訂正動作のための推薦を自動的に実施するための論理ユニットであって、前記仮想化ポリシーの不一致は選択されたデータ・ストレージ資源の仮想化されたマッピング（明細書の段落［００２５］）に基づいてデータ・ストレージ・インフラ中において検知されたところの統合もしくは関連付けられた冗長度（ＲＡＩＤ＝なし／ＲＡＩＤ０／ＲＡＩＤ、明細書の段落［００４０］、図面の［図４］）または不一致を示すものである、当該論理ユニットと
を含むシステム。
【請求項１２】
前記実施された推薦に従ってストレージの仮想化を改良するための訂正動作を自動的に行う論理ユニットを更に含むものである、請求項１１に記載のシステム。
【請求項１３】
前記訂正動作のための推薦が、前記１個以上のデータ・ストレージ資源のためのストレージ仮想化構成に関連するボリューム・マッピングを含む構成データに基づき実施される、請求項１１に記載のシステム。
【請求項１４】
前記訂正動作のための推薦が、前記データ・ストレージ・インフラにおけるホスト・システム上で実行されるアプリケーションに関連する構成データに基づいて実施される、請求項１１に記載のシステム。
【請求項１５】
前記訂正動作のための推薦が、前記ストレージ・インフラにおけるサーバー・システム上で実行されるファイル・システムに関連する構成データに基づいて実施される、請求項１１に記載のシステム。
【請求項１６】
前記訂正動作のための推薦が、前記ストレージ・インフラにおけるサーバー・システム上で実行されるオペレーティング・システムに関連する構成データに基づいて実施される、請求項１１に記載のシステム。
【請求項１７】
１個以上のデータ・ストレージ資源を有するデータ・ストレージ・インフラ（２００）に跨るストレージ仮想化（コンピューティング環境におけるリソースないし資源の抽象化、明細書の段落［０００２］）構成を調べて、前記１個以上のデータ・ストレージ資源（２５０）に適用される前記ストレージ仮想化構成に関連する構成データが構成レポジトリ（２４０）にストアされるようにするステップであって、前記構成データが選択されたデータ・ストレージ資源に関係付けられた仮想化のレベル（明細書の段落［０００４］）を示すものである、当該ステップと、
前記データ・ストレージ・インフラに跨る仮想化ポリシーの不一致（明細書の段落［００１８］、図面の［図４］、競合を検出し解決するための不一致遠隔ミラーリング＝メトロ・ミラー／ノー・メトロ・ミラー）を検出するために前記構成データを解析するステップと、
前記仮想化ポリシーの不一致に応答してストレージ仮想化を改良するための訂正動作のための推薦を自動的に実施するステップであって、前記仮想化ポリシーの不一致は選択されたデータ・ストレージ資源の仮想化されたマッピング（明細書の段落［００２５］）に基づいてデータ・ストレージ・インフラ中において検知されたところの統合もしくは関連付けられた冗長度（ＲＡＩＤ＝なし／ＲＡＩＤ０／ＲＡＩＤ、明細書の段落［００４０］、図面の［図４］）または不一致を示すものである、当該ステップと
を、コンピュータのストレージ管理モジュール（２１４）に実行させるコンピュータ・プログラム。
【請求項１８】
前記実施された推薦に従ってストレージの仮想化を改良するための訂正動作を、コンピュータに自動的に行わせるステップを更に含むものである、請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記訂正動作のための推薦が、前記１個以上のデータ・ストレージ資源のためのストレージ仮想化構成に関連するボリューム・マッピングを含む構成データに基づいて実施されるよう、コンピュータに実行させる、請求項１７に記載のコンピュータ・プログラム。
【請求項２０】
前記訂正動作のための推薦が、前記データ・ストレージ・インフラにおけるホスト・システム上で実行されるアプリケーションに関連する構成データに基づいて実施されるよう、コンピュータに実行させる、請求項１７に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ・ストレージ・システムに関し、具体的にはストレージ仮想化構成における競合（コンテンション：contention）を検出し、解決することに関する。
【背景技術】
【０００２】
仮想化（バーチャライゼイション：virtualization）は一般にコンピューティング環境におけるリソースないし資源の抽象化をいう。仮想化スキームは、他のシステム、アプリケーションもしくはエンド・ユーザーがこれらの資源と相互作用する方法から資源の物理的特性を隠してもよい。例えば、単一の物理的資源（例えば、サーバー、オペレーティング・システム、アプリケーションもしくはストレージ・システム）が複数の論理的資源（例えば、ストレージ装置もしくはサーバー）として機能するように現れるべく構成されてもよいし、あるいはその代わりに、単一の論理的資源として現れるよう構成されてもよい。
【０００３】
仮想化は、従ってストレージの論理的表示からの物理的媒体の分離もしくは抽象化がシステムの構成もしくは管理を単純化するのに有用であるインスタンスで有用である。例えば、物理的ストレージのボリュームの仮想化は、論理的もしくは仮想的なボリュームが変わらないまま、物理的なインフラストラクチャの変化およびデータ管理動作が行われるのを許容する。仮想化はまた、キャッシングもしくはストライピングを通じてのデータの書き込みおよびアクセスの性能、ならびに分散パリティ付きのデータ・ストライピング、およびミラーリングのような技法を通じてデータの可用性を改良することもできる。
【０００４】
データ・ストレージ・システムでは、特に幾つかのレベルの仮想化が可能である。図１に言及すると、幾つかのストレージ仮想化レベルが以下のように定義されてもよい。
・高級データベース（例えば、ＩＢＭ  Ｕｎｉｖｅｒｓａｌ  ＤａｔａＢａｓｅ、ＩＢＭは登録商標）により複数のボリュームに跨って行われる、ストライピングもしくは他のＩ／Ｏ最適化技法を含むデータベース仮想化。データベースは、ラウンド・ロビンもしくはハッシュ技法を介してそれらのテーブル・スペース・コンテナーおよびパーティションに跨ってデータを広げることができる。
・ファイル・レベルで行われる、ストライピングを含むファイル・システム仮想化（例えば、ＩＢＭのＧｅｎｅｒａｌ  Ｐａｒａｌｌｅｌ  Ｆｉｌｅ  Ｓｙｓｔｅｍ（IBM Corporation の商標）もしくはＧＰＦＳ（IBM Corporation の商標））。
・複数のレベル、例えばホスト・ボリューム・マネジャ、ネットワーク仮想化もしくはストレージ・サブシステムで行われる、ボリュームもしくはブロックの仮想化。独立のドライブの冗長アレイ（ＲＡＩＤ）の機能が、パフォーマンス（例えば、ストライピング／ＲＡＩＤ０）および可用性の目的（例えば、ＲＡＩＤ１もしくはＲＡＩＤ５）で実施されることができる。
・ストレージ・サブシステム（例えば、ＩＢＭのディスク・ストレージ（ＤＳ）シリーズもしくはＥＭＣのシンメトリックス）により行われる、ボリュームおよびＲＡＩＤ機能のストレージ・ネットワーク仮想化、ならびに
・仮想テープ・ライブラリ（例えば、ＩＢＭのＶｉｒｔｕａｌ  Ｔａｐｅ  Ｓｅｒｖｅｒ、すなわちＶＴＳ）により行われる仮想化。
【０００５】
ブロック仮想化の特定例は以下を含む。
・ホスト・ボリューム・マネジャおよび／もしくは高級オペレーティング・システム（例えば、ＩＢＭのＡＩＸ（IBM Corporation の商標）ボリューム・マネジャもしくはＳｙｍａｎｔｅｃのＶｅｒｉｔａｓ  Ｖｏｌｕｍｅ  Ｍａｎａｇｅｒ）により行われるボリューム仮想化およびＲＡＩＤ機能、ならびに
・ネットワーク・ベースのストレージ仮想化ソリューション（例えば、ＩＢＭのストレージ・エリア・ネットワーク（ＳＡＮ）Ｖｏｌｕｍｅ  Ｃｏｎｔｒｏｌｌｅｒ）により行われるボリューム仮想化およびＲＡＩＤ機能。
【０００６】
図１に示すとおり、各々の仮想化されたレベルでのドメイン・パースペクティブから、最適化された構成を創造する際に含まれる、種々のユーザーもしくは管理者の役割が典型的にはある。これは、その全体のシステムにわたって解析されるとき全般的には最適化されていない仮想化構成につながり得る。
【０００７】
例えば、各々の仮想化レベルで１人もしくはおそらくはそれよりも多くのシステム管理者が、ストアされたデータのパフォーマンス、セキュリティおよびインテグリティを、例えばストアされたデータのキャッシング、ストライピングおよび冗長性を管理することによって、最適化するために１個もしくはそれよりも多くの前述の種々の技法を用いることを試みてもよい。
【０００８】
大抵の場合、一つのレベルでの管理者は他のレベルでの最適化の手順および構造について十分な情報を持たない。その結果、一つのレベルで与えられる最適化は他のレベルで与えられる最適化技法から見て冗長であるか、ある環境では反生産的でさえあるかもしれない。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
このように、前述の欠点を克服することのできる方法およびシステムが必要とされる。
【課題を解決するための手段】
【００１０】
本発明の開示は、ストレージ仮想化構成における競合を検出し、解決するのを促進するシステム、方法および対応する製品に向けられている。
【００１１】
要約すると、本発明のある側面、効果および新規な特徴がここで記述される。本発明のいずれか一つの特定の実施例に従ってそのような効果の全てが達成されるわけではないことを理解されたい。このように、ここで教示されもしくは示唆されるようなすべての効果を達成することなしに、一つのもしくは一群の効果を達成しもしくは最適化する態様で本発明が実施されもしくは実行されてもよい。
【００１２】
ストレージ・インフラにおけるストレージ仮想化を管理するためのシステムおよび方法が提供される。この方法は、１個以上のデータ・ストレージ資源を有するデータ・ストレージ・インフラに跨るストレージ仮想化構成を調べて、前記１個以上のデータ・ストレージ資源に適用される前記ストレージ仮想化構成に関連する構成データが構成レポジトリにストアされるようにするステップと、前記データ・ストレージ・インフラに跨る仮想化ポリシーの不一致を検出するために前記構成データを解析するステップと、  前記仮想化ポリシーの不一致に応答してストレージ仮想化を改良するよう訂正動作のための推薦を自動的に実施するステップとを含む。
前記１個以上のデータ・ストレージ資源に前記ストレージ仮想化構成を適用するのに関連する潜在的な問題をレポートするステップを含んでもよい。
【００１３】
本発明の一側面によれば、１個以上の論理ユニットを含むシステムが提供される。前記１個以上の論理ユニットが前記機能および前述の方法と関連する動作を行うように構成される。更に他の実施例では、コンピュータ読み取り可能なプログラムを有するコンピュータ使用可能媒体を含むコンピュータ・プログラム製品が提供される。このコンピュータ読み取り可能プログラムはコンピュータ上で実行されるとき、コンピュータに前述の方法に関連する機能および動作を行なわせる。
【００１４】
前述の実施例のうちの一つ以上が、或る代替例に加えて提供され、添付図面に関連して以下で詳細に説明される。本発明は、しかし任意の特定の開示された実施例に限定されるものではない。
【００１５】
本発明の実施例は、添付図面中の各図を参照することによって理解される。
異なる図面で同じ参照番号により言及されている本発明の特徴、要素および側面は、一つ以上の実施例に従って、同じか、もしくは等価な、あるいは類似の特徴、要素、もしくは側面を表す。
【発明を実施するための最良の形態】
【００１６】
本発明の開示は、ストレージ仮想化構成における競合を検出し解決するのを促進するシステムおよび対応する方法を指向している。
【００１７】
一実施例に従えば、自動化されたモジュールが、ストレージ・システムのため、異なる仮想化レベルで使用される種々の仮想化構成をモニターする。この自動化されたモジュールは仮想化構成およびその関連情報のログを維持してもよい。望ましくはこの仮想化構成データはその自動化されたモジュールによって収集されもしくは取り出されてもよいし、あるいは各レベルでのストレージ・システム・コンポーネントに必要な情報を提供させるレポーティングの実施（a reporting implementation）に基づき収集されてもよい。
【００１８】
仮想化構成データおよびその関連情報が一旦収集されると、その自動化モジュールはその情報を解析し、削除され得るような不一致、非効率、もしくは冗長な仮想化インスタンスがあるかを決定する。一実施例では、種々のレベルにある仮想化構成データを更新することにより冗長なもしくは不一致なインスタンスをストレージ・ポリシーから取り除くようヒーリング（回復）エージェントがイネーブルされてもよい。他の実施例では、人間のオペレータもしくは他の独立のエンティティにより使用され得る解析レポートが発生されてもよい。そのレポートはその問題を正しくするための厄介な領域と解決策を提供する。
【００１９】
その構成情報は、異なるＲＡＩＤを適用し、ミラーリングし、異なる仮想化レベルにポリシーをキャッシングすることに関係していてもよい。その際、異なる仮想化レベルに亘って垂直なアプローチを用いるか、そのレベルで管理されアクセスされるデータもしくはファイルに関して一つの仮想化レベル上で水平なアプローチを用いるかである。
【００２０】
以下において、幾多の特定の詳細が本発明の種々の実施例の完全な記述を提供するよう開示される。本発明の幾つかの実施例はこれらの特定の詳細がなくて、あるいは詳細における幾つかの変形とともに実施されてもよい。幾つかの例において、ある種の特徴が本発明の他の側面を不明瞭にしないよう詳細さの度合いを低く記述される。その個々のエレメントもしくは特徴に関係する詳細さのレベルは、一つの特徴が他よりも新規であるとか重要であるとかを裏付けるものではない。
【００２１】
図２では、一実施例による単純化したデータ・ストレージ・インフラ２００が、仮想化ストレージ資源（例えば、ＳＡＮ）２５０にネットワーク２２０を介して結合されたホスト（例えばコンピューティング・システム）２１０を含む。ホスト２１０はまた、ローカルにもしくはネットワークによって構成レポジトリ２４０に結合されていてもよい。ストレージ管理モジュール２１４は、以下で詳細に示すように、仮想化ストレージ資源２５０のためのストレージ仮想化構成における競合を検出し解決するためにホスト２１０上のオペレーティング・システム２１２の上で実行されてもよい。
【００２２】
図２および図３にここで言及すると、ストレージ管理モジュール２１４（例えば、ＩＢＭ  Ｔｏｔａｌｓｔｏｒａｇｅ  Ｐｒｏｄｕｃｔｉｖｉｔｙ  Ｃｅｎｔｅｒ  （ＴＰＣ）、ＩＢＭはIBM Corporation の商標）は、単純化したデータ・ストレージ・インフラ２００ に跨る種々の仮想化レベルのためにストレージ仮想化構成を統合しかつ関連付けるように構成されてもよい。このストレージ仮想化構成と関連する構成データは仮想化ストレージ資源２５０に適用される構成を識別する。一旦統合され関連付けられた構成データは構成レポジトリ２４０にストアされてもよい。
【００２３】
ストレージ管理モジュール２１４は、一実施例では、構成レポジトリ２４０から構成データを取り出すように構成される。単純化したデータ・ストレージ・インフラ２００に跨る仮想化ポリシーの不一致もしくは冗長度を決定するために、ストレージ管理モジュール２１４は、以下のステップを行うことができる。すなわち、構成レポジトリ２４０にストアされた構成データを調べて解析する（ステップＳ２１０）。そして仮想化ポリシー不一致（Ｓ２２０）を検出しもしくは決定する場合、そのストレージ仮想化構成を仮想化ストレージ資源２５０に適用するのに関連する潜在的な問題をレポートする（ステップＳ２３０）。
【００２４】
幾つかの実施例では、ストレージ管理モジュール２１４は、仮想化ポリシー不一致を検出する（ステップＳ２２０）のに応答して、仮想化ストレージ資源に適用されるような種々のレベルでストレージ仮想化を改良するために（ステップＳ２５０）、訂正動作を取るという推薦を自動的に実施してもよい（ステップＳ２４０）。その後、ストレージ管理モジュール２１４もしくは他の独立のエンティティ（例えば、人間のオペレータ、もしくはソフトウエアのヒーリング・エージェント）が、その実施された推薦に従ってストレージ仮想化を改善するための訂正動作を取ることができる（ステップＳ２５０）。これについては以下で更に詳説する。
【００２５】
ストレージ仮想化構成に加えて構成レポジトリ２４０にストアされた構成データはまた、１個以上の仮想化ストレージ資源２５０のためのストレージ仮想化構成と関連するボリューム・マッピングを含んでもよい。幾つかの実施例では、ストレージ管理モジュール２１４が仮想化ストレージ資源２５０およびそれらの個々のコンポーネントと関連する構成およびボリューム・マッピング・データを統合もしくは関連付けるよう構成された１個以上のモジュールを含んでもよい。
【００２６】
前記コンポーネントは、データ・ストレージ・インフラ中のホスト・システム上で実行される少なくとも１個のアプリケーション、ストレージ・インフラ中のサーバー・システム上で実行されるファイル・システム、ストレージ・インフラ中のサーバー・システム上で実行されるオペレーティング・システム、またはデータベース、ＳＡＮネットワーキング装置、ディスク・ストレージ・サブシステムおよびボリューム、もしくはテープ・サブシステムおよびボリュームなどを含んでもよい。
【００２７】
図４に言及すると、実施例の単純化したデータ・ストレージ・インフラ２００ のための種々の仮想化レベルの論理概念図がストレージ資源レベルで提供される。ストレージ資源の例は、オペレーティング・システム２１２により検出されるような論理ユニット番号（ＬＵＮ）もしくはボリュームとデータベースＡに関連するデータベース・テーブルとを含む。ストレージ資源レベル（例えば、ＬＵＮもしくはデータベース・テーブル）で、仮想化ストレージ資源２５０のための１個以上の関連する仮想化定義、構成およびマッピングを調べるのに前述の方法が使用されてもよい。
【００２８】
高級なストレージ資源管理（ＳＲＭ）製品が、仮想化ストレージ資源２５０の仮想化マッピングの少なくとも一部を検出し捕捉するように或る実施例で使用されてもよい。この捕捉された情報は、仮想化ストレージ資源２５０に関係付けられた仮想化のレベルを、例えばレポートを発生するなどして、検知し示してもよい。このレポートはストレージ仮想化およびボリューム・マッピングの、統合され、関係付けられたビューを提供してもよい。
【００２９】
図４を参照すると、ノード３０１ないし３１４は、この例ではデータベースＡと関連付けられた種々のレベルの仮想化を表す仮想化依存グラフとしてのそのような統合され、関係付けられたビューの例を示す。図示のとおり、１個以上の仮想化ストレージ資源２５０と関連付けられた仮想化を発見し理解することは複数のノードとそれらのノード相互間のクロスする関係を有するグラフを発生するかもしれない。そのグラフにはまたストレージ仮想化構成の解析が含まれていてもよい。
【００３０】
例えば、図４のノード３０１および３０２は２個の別個の垂直方向に実施された（implement）仮想化レベルでキャッシング・スキームが使用されることを示す。この２つのレベルが垂直方向に実施されるので、ストレージ管理モジュール２１４は２つのレベル間でのキャッシングにおける冗長度を検出し、そして人間のオペレータに警報を発するか、あるいはその代わりに前記複数の仮想化レベルのうちの一つからキャッシング・スキームの適用を取り除くようヒーリング・エージェントに命令してもよい。
【００３１】
他の例として、図４のノード３０３および３０５はＲＡＩＤ５スキームが２つの別個の垂直方向に実施された仮想化レベルに適用されることを示す。また、この２つのレベルが垂直方向に実施されるので、ストレージ管理モジュール２１４はこの２つのレベル間にＲＡＩＤスキームを適用する際の冗長度を検出してもよく、そして人間のオペレータに警報を発するか、あるいはその代わりに一つのレベルからＲＡＩＤスキームを取り除くようヒーリング・エージェントに命令してもよい。他の実施例のノード３０９、３１０，３１１、３１３は夫々不一致の遠隔ミラーリングと、異なる仮想化レベルでの冗長なストライピング構成とを示す。これはストレージ管理モジュール２１４により検出され、実施例次第であるが、訂正されてもよい。
【００３２】
一実施例では、ストレージ管理モジュール２１４が、或る仮想化構成ポリシー・パラメータをセットすることによって、関係付けられた解析（correlated analysis）を行うよう構成される。他の実施例では、前記ポリシー・パラメータが例えば人間の管理者によってセットされてもよい。これらのポリシー・パラメータを侵すのはストレージ管理モジュール２１４によって検出されてもよく、自動応答アクションが実施されるか、もしくは効果を生じるようにセットされていてもよい（ set into effect）。応答アクションはその検出されたイベントをログすること、イベントをレポーティングすること、特定の訂正動作を推薦すること、何らかの齟齬もしくは冗長度を正すような特定の訂正動作もしくは自動化されたアクションを推薦することを含んでよい。
【００３３】
従って、ストレージ・インフラに跨る種々の仮想化レベルの解析的な解体を手動で行わなければならないということなしに、難解なストレージ・インフラを容易にかつ自動的に検出するようにして管理者を補助するために、１個以上の実施例が種々の仮想化レベルでの構成およびマッピングについての詳細な解析および情報を提供するように実施される。
【００３４】
或る実施例では、ホスト資源からストレージ・サブシステムへのＩ／Ｏパスにおける複数レベルでの冗長なもしくは不一致の仮想化構成および振舞いを検出するために１以上のアルゴリズムが実施されてもよい。そのようなアルゴリズムは、仮想化ストレージ資源２５０の効率および整合性を維持するのに害のある、最適でないか、整合していないか、もしくは冗長なデータのストレージ・ポリシーを実施してもよい仮想化構成を識別し、報告し、望ましくは更新するために、構成レポジトリ（例えば、ＴＰＣデータベース）２４０に収集され、ストアされてきた構成データおよび関連情報を使用してもよい。
【００３５】
幾つかの実施例では、前述のアルゴリズムがその最適でない構成の源である背後の処理課題をも識別してよい。そのようなアルゴリズムが１つ以上の実施例に従ってどのように実施され得るかについて以下でもっと詳しく説明する。
【００３６】
例えば、図５を参照すると、データ・ストレージ・ネットワークのための仮想化ポリシーにおいて何かつじつまの合わないことがあるか決定するために、データ・ストレージ・ネットワーク中の１個以上のホスト・マシンが選択されて解析される（ステップＳ３１０）ホスト構成がプロセス閾値を超えあるいは仮想化ポリシーに違反すると決定されるなら警告が発生されてもよい（ステップＳ３１２）。
【００３７】
実施例によっては、ホストのための１以上の入出力パス（Ｉ／Ｏパス）が選択されてもよい（ステップＳ３１３）。少なくとも一つの選択されたＩ／Ｏパスに対し、資源依存グラフがトラバースされてもよく、また仮想化技法、構成、ポリシー違反などについての情報をストアするように構成されたプロセス・テーブル（もしくは他のデータ構造）がＩ／Ｏパスに沿って維持されてもよい（ステップＳ３１４）。その関連情報が、前に提供されたように、その選択されたホストのための構成レポジトリにストアされてもよい。もしその選択されたＩ／Ｏパス（ステップＳ３１５）上で冗長なもしくは不一致の仮想化ポリシーが検出されるなら（ステップＳ３１５）、警告が発せられ、そしてそのパスのためのプロセス・テーブルが更新されてもよい（ステップＳ３１６）。
【００３８】
仮想化における冗長度もしくは不一致が一旦検出されると、ホスト管理モジュールが、その検出された冗長度もしくは不一致を訂正するための最良のプラクティスの推薦が存在するか決定してもよい（ステップＳ３１７）。最良のプラクティスの推薦がその検出された仮想化問題を解決するために以前に使用された解決策もしくはスキームに基づいてもよい。もし利用可能なら、例えば人間のオペレータもしくは自動化システムにより読み取り可能な出力を発生することによって最良のプラクティスの推薦が提供される（ステップＳ３１８）。
【００３９】
もし自動化が利用できるなら（ステップＳ３１９）、その検出された仮想化問題を解決しようとして自動化が呼び出されてもよい（ステップＳ３２０）。この自動化は、種々の仮想化レベルでその検出された不一致および冗長度を減らしもしくは取り除くように構成されたソフトウエア・エージェントを実行することによって呼び出されてもよい。
【００４０】
図６には、種々のレベルでの不一致のもしくは冗長な仮想化の幾つかの例が示されている。もし、例えば、或るボリューム上でボリューム・マネジャＲＡＩＤ５が使用中であり、かつストレージ・ネットワークＲＡＩＤ５がその同じボリュームのために使用中であり、もしくはストレージ・サブシステムＲＡＩＤ５が同じボリュームのために使用中であると決定されれば（ステップＳ３２１）、保護および仮想化の冗長レベルがそのボリューム上にストアされたデータのために検出される。従って、特に２よりも多いレベルの仮想化が検出されれば（ステップＳ３２４）、可能な最良のプラクティスの推薦がＲＡＩＤ５仮想化の少なくとも一つのレベルで取り除くことになるであろう。
【００４１】
他の側面によると、ストレージ・システムの幾つかの層上にストアされたデータがデータベース（ＤＢ）層でおよびファイル・システムで、もしくはホスト層でキャッシュされるなら（ステップＳ３２２）、冗長なレベルのキャッシングが検出されるかもしれない。もしそうなら、データベースもしくはファイル・システムの構成における変化の推薦が適当であろう。その結果、データをキャッシングする代わりに、特にそのキャッシング・スキームが２よりも多いレベルで行われているなら、直接Ｉ／Ｏアクセス・スキームが実施される（ステップＳ３２５）。
【００４２】
更に他の側面によれば、論議を呼んでいるストレージ仮想化もしくは構成のための他の最良のプラクティスはデータ・ストレージ・システムの仮想化における問題の検出に応答して決定されてもよく、また個々の最良のプラクティスが推薦されてもよい（ステップＳ３２６）。
【００４３】
種々の実施例において、完全にハードウエアの形態で、もしくは完全にソフトウエアの形態で、あるいはハードウエアおよびソフトウエアの両方のエレメントの組み合わせで本発明が実施されることができる。例えば、ホスト２１０は、本発明のシステムにより企図された結果を達成するプロセスを行うよう実行されるソフトウエア・コードおよびハードウエア・コンポーネントによって主に提供され得る、制御されたコンピューティング・システム環境を含んでいてもよい。
【００４４】
図７および図８を参照すると、実施例によるコンピューティング・システム環境がハードウエア環境４００およびソフトウエア環境５００からなる。そのハードウエア環境４００はソフトウエアのための実行環境を提供する設備および機械を含む。このソフトウエアは以下で提供されるようなハードウエアのための実行命令を提供する。
【００４５】
ここで提供されるように、図示のハードウエア・エレメント上で実行されるそのソフトウエア・エレメントは特定の論理的／機能的な関係に従って記述される。しかし、ソフトウエアで実施される個々の方法は、構成され、プログラムされたプロセッサによってハードウエアで実施されてもよい。ＡＳＩＣｓ（アプリケーション特有の集積回路群）、ＦＰＧＡｓ（フィールド・プログラマブル・ゲート・アレイ群）、およびＤＳＰｓ（ディジタル信号プロセッサ群）などである。
【００４６】
ソフトウエア環境５００がシステム・ソフトウエア５０２およびアプリケーション・ソフトウエア５０４を含む２つの主要なクラスに分けられる。システム・ソフトウエア５０２はどのようにして情報を機能させ処理するかをそのハードウエアに命令する情報管理システムおよびオペレーティング・システム（ＯＳ）などの制御プログラムを含む。
【００４７】
一実施例では、ストレージ・ネットワークにおける仮想化の効率を改良するために１個以上のハードウエア環境で実行されるシステム・ソフトウエア５０２もしくはアプリケーション・ソフトウエア５０４としてストレージ管理モジュール２１４が実施されてもよい。アプリケーション・ソフトウエア５０４は、以下に限るものではないが、プログラム・コード、データ構造、ファームウエア、常駐ソフトウエア、マイクロコード、もしくはマイクロコントローラにより解析されもしくは実行され得る任意の他の形式の情報もしくはルーチンを含んでもよい。
【００４８】
代替実施例では、本発明がコンピュータ使用可能なもしくはコンピュータ読み取り可能な媒体からアクセス可能なコンピュータ・プログラムとして実施されてもよく、コンピュータもしくは任意の命令実行システムにより、もしくはそれに関連して使用されるプログラム・コードを提供する。この記述から、コンピュータ使用可能なもしくはコンピュータ読み取り可能な媒体は、命令実行システム、装置もしくはデバイスによりもしくはそれに関連した使用のためにプログラムを含み、ストアし、通信し、伝播しもしくは転送することのできる任意の装置であり得る。
【００４９】
コンピュータ読み取り可能な媒体は、電子的、磁気的、光学的、電磁気的、赤外線の、もしくは半導体のシステム（もしくは装置、またはデバイス）または伝播媒体であり得る。コンピュータ読み取り可能媒体の例は、半導体メモリもしくは固体メモリ、磁気テープ、取り外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ），読み出し専用メモリ（ＲＯＭ）、ハード磁気ディスクおよび光ディスクを含む。今日の光ディスクの例は、コンパクト・ディスクの読み出し専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスクの読み出し書き込み（ＣＤ−Ｒ／Ｗ）およびディジタル・ビデオディスク（ＤＶＤ）を含む。
【００５０】
図７を参照すると、ストレージ管理モジュール２１４の実施例は、ハードウエア環境４００などのデータ処理システム上で実行されるコンピュータ読み取り可能なコードの形態でコンピュータ・ソフトウエアとして実施され得る。そのハードウエア環境４００は、１個以上のコンピュータ読み取り可能媒体もしくはメモリ・エレメントにシステム・バス４０４によって結合されたプロセッサ４０２を含む。コンピュータ読み取り可能媒体もしくはメモリ・エレメントは、例えばローカル・メモリ４０６、ストレージ媒体４０８、およびキャッシュ・メモリ４１０を含むことができる。プロセッサ４０２は、ストレージ媒体４０８からローカル・メモリ４０６に実行可能コードをロードする。キャッシュ・メモリ４１０はストレージ媒体からコードが実行のためロードされる回数を減らすように一時的なストレージを提供する。
【００５１】
ユーザー・インターフェイス装置すなわちユーザー・インターフェイス４１２（例えば、キーボード、ポインティング装置等）およびディスプレイ・スクリーン４１４がそのコンピューティング・システムに直接にもしくはＩ／Ｏコントローラ４１６などを介して結合されることができる。またデータ処理システムが他のデータ処理システムもしくは遠隔のプリンタもしくはストレージ装置と中間の私的なもしくは公的なネットワークを介して通信することができるように、ネットワーク・アダプタなどの通信インターフェイス・ユニット４１８がコンピューティング・システムに結合されてもよい。有線のもしくは無線のモデムおよびイーサネット（Ethernet）カードが、幾つかの例示の型のネットワーク・アダプタである。
【００５２】
一以上の実施例では、ハードウエア環境４００が前述のコンポーネントのすべてを含まないかもしれないし、あるいは機能もしくは有用性を追加するために他のコンポーネントを含むかもしれない。例えば、ハードウエア環境４００はラップトップ・コンピュータか、あるいはセット・トップ・ボックス、パーソナル・データ・アシスタント（ＰＤＡ）、モバイル通信ユニット（例えば無線電話）、または情報処理および／もしくはデータ・ストレージおよび通信の能力を有する他の類似のハードウエア・プラットフォームなど埋め込みシステムに含まれる他のポータブル・コンピューティング装置であってもよい。
【００５３】
或る実施例のシステムでは、通信インターフェイス４１８が他のシステムと通信する。この通信はプログラム・コードを含む種々の型の情報を表すディジタル・データ・ストリームを電気的、電磁的もしくは光の信号を担持する光の信号を受取ることによって行われる。この通信は遠隔ネットワーク、またはそれに代わり、搬送波上で伝送することによって確立される。
【００５４】
図８を参照すると、ストレージ管理モジュール２１４は、ストレージ媒体４０８からローカル・メモリ４０６にロードされた後オペレーティング・システム２１２の上で実行される１個以上のコンピュータ・プログラムを含む。クライアント・サーバー・アーキテクチャにおいて、アプリケーション・ソフトウエア５０４はクライアント・ソフトウエアおよびサーバー・ソフトウエアを含んでもよい。例えば、本発明の一実施例では、クライアント・ソフトウエアはコンピューティング・システム上で実行され、サーバー・ソフトウエアはサーバー・システム（図示せず）上で実行される。
【００５５】
ソフトウエア環境５００はまたローカルのまたは遠隔のコンピューティング・ネットワーク上で利用可能なデータをアクセスするためにブラウザ・ソフトウエアを含んでもよい。更に、ソフトウエア環境５００はユーザー・コマンドおよびデータを受取るためにユーザー・インターフェイス５０６（グラフィカル・ユーザー・インターフェイスすなわちＧＵＩなど）を含む。ハードウエアおよびソフトウエア・アーキテクチャおよび前述の環境が例示目的であり、本発明の１以上の実施例が任意の型のシステム・アーキテクチャもしくは処理環境の上に実施されてもよいことに留意されたい。
【００５６】
論理コード、プログラム、モジュール。プロセス、方法および書く方法の個々のステップが行われる順序が純粋に例示であることも理解されたい。実施例次第でそれらのステップは、個々での開示で他に示さない限り、任意の順序もしくは並行して行われてもよい。更に、論理コードは任意の特定のプログラミング言語に関係しておらず、もしくは限定されない。そしてその論理コードは、分散され、もしくは分散されない環境またはマルチ・プロセシング環境で１個以上のプロセッサ上で実行される１個以上のモジュールを含んでもよい。
【００５７】
従って、本発明が添付の特許請求の範囲の精神および範囲内で修正および変更をもって実施され得ることを理解されたい。その記述を、開示された緻密な形態に本発明を限定したり網羅したりする意図はない。複数の実施例のこれらのおよび種々の他の適用および組み合わせが本発明の範囲内であり、更に特許請求の範囲、およびその全ての範囲の等価物により定義される。
【図面の簡単な説明】
【００５８】
【図１】一実施例に従うデータ・ストレージ・システムにおける例示の仮想化レベルを示す図である。
【図２】一実施例に従うデータ・ストレージ・インフラのブロック図である。」
【図３】実施例に従う仮想化データ・ストレージ・インフラの効率を改良する方法のブロック図である。
【図４】一実施例に従って、仮想化データ・ストレージ・システムにおいて存在するかもしれない一つ以上の不一致のブロック図である。
【図５】実施例に従って、仮想化データ・ストレージ・インフラにおけるホストごとの不一致を取り扱う方法のブロック図である。
【図６】実施例に従って、仮想化データ・ストレージ・インフラの異なるレベルにおける不一致を取り扱う実施例の方法のブロック図である。
【図７】本発明のシステムが一つ以上の実施例に従って動作し得るようなハードウエアおよびソフトウエア環境のブロック図である。
【図８】本発明のシステムが一つ以上の実施例に従って動作し得るようなハードウエアおよびソフトウエア環境のブロック図である。
【符号の説明】
【００５９】
２００  単純化したデータ・ストレージ・インフラ
２１０  ホスト
２１２  オペレーティング・システム
２１４  ストレージ管理モジュール
２２０  ネットワーク
２４０  構成レポジトリ
２５０  仮想化ストレージ資源
４００  ハードウエア環境
４０２  プロセッサ
４０４  バス
４０６  ローカル・メモリ
４０８  ストレージ媒体
４１０  キャッシュ・メモリ
４１２  ユーザー・インターフェイス
４１４  ディスプレイ・スクリーン
４１６  Ｉ／Ｏコントローラ
４１８  通信インターフェイス
５００  ソフトウエア環境
５０２  システム・ソフトウエア
５０４  アプリケーション・ソフトウエア
５０６  ユーザー・インターフェイス
５０８  ブラウザ
【図１】
0005460042.tif 000002
【図２】
0005460042.tif 000003
【図３】
0005460042.tif 000004
【図４】
0005460042.tif 000005
【図５】
0005460042.tif 000006
【図６】
0005460042.tif 000007
【図７】
0005460042.tif 000008
【図８】
0005460042.tif 000009