(57)【特許請求の範囲】
【請求項１】
ストレージエリアネットワークを管理する管理コンピュータに、
前記ストレージエリアネットワークを構成する複数のノード間の接続グラフを構築するステップと、  
前記構築された接続グラフに基づいて、前記ストレージエリアネットワークを構成するホストコンピュータそれぞれについて、ホストコンピュータから到達可能な論理ユニット番号の集合を算出するステップと、
前記ホストコンピュータそれぞれについて、前記ストレージエリアネットワークの再構成前に前記算出された到達可能な論理ユニット番号と、前記ストレージエリアネットワークの再構成後に前記算出された到達可能な論理ユニット番号とが一致しない場合、この論理ユニット番号に対応するホストコンピュータを、前記ストレージエリアネットワークの再構成による影響を受けるホストコンピュータとして特定するステップと
を実行させ、
前記ホストコンピュータそれぞれに、
このホストコンピュータ上で実行されているプロセスと、このホストコンピュータを構成するソフトウェアおよびハードウェアとをマッピングし、前記プロセス、前記ソフトウェアおよび前記ハードウェアそれぞれの資源の冗長性を示す冗長性属性を有するコンポーネント階層グラフを構築するステップと、
前記ストレージエリアネットワークの再構成による影響を受けるホストコンピュータとして特定された場合、前記構築されたコンポーネント階層グラフをトラバースして、前記資源それぞれの冗長性属性に基づいて、このホストコンピュータにおいて前記影響を受ける資源を求めるステップと
を実行させる
方法。
【請求項２】
前記管理コンピュータに、
前記求められた資源情報を、前記ホストコンピュータそれぞれから集約して蓄積するステップと、
前記蓄積された資源情報に基づいて、前記ストレージエリアネットワークにおける再構築による影響情報を生成するステップと
をさらに実行させる
請求項１に記載の方法。
【請求項３】
前記コンポーネント階層グラフは、非循環有向グラフである
請求項１に記載の方法。
【請求項４】
前記コンポーネント階層グラフは、前記資源それぞれが前記影響を受けることによる深刻度を有し、
前記影響情報は、
前記影響を受ける資源情報が蓄積されている場合、前記蓄積された資源情報それぞれに対応する深刻度に基づいて、予め定められた段階の影響度のうちのいずれかを示し、
それ以外の場合、前記再構築による影響がないことを示す
請求項２に記載の方法。
【請求項５】
前記管理コンピュータに、
グラフィカルユーザインターフェースによって、前記ストレージエリアネットワークの状態をユーザに提示するステップ
をさら実行させる請求項１に記載の方法。
【請求項６】
ストレージエリアネットワークを構成する複数のノード間の接続グラフを構築する構築手段と、  
前記構築された接続グラフに基づいて、前記ストレージエリアネットワークを構成するホストコンピュータそれぞれについて、ホストコンピュータから到達可能な論理ユニット番号の集合を算出する算出手段と、
前記ホストコンピュータそれぞれについて、前記ストレージエリアネットワークの再構成前に前記算出された到達可能な論理ユニット番号と、前記ストレージエリアネットワークの再構成後に前記算出された到達可能な論理ユニット番号とが一致しない場合、この論理ユニット番号に対応するホストコンピュータを、前記ストレージエリアネットワークの再構成による影響を受けるホストコンピュータとして特定する特定手段と、
前記ホストコンピュータそれぞれについて、ホストコンピュータ上で実行されているプロセスと、ホストコンピュータを構成するソフトウェアおよびハードウェアとをマッピングし、前記プロセス、前記ソフトウェアおよび前記ハードウェアそれぞれの資源の冗長性を示す冗長性属性を有するコンポーネント階層グラフを構築する階層グラフ構築手段と、
前記ストレージエリアネットワークの再構成による影響を受けると特定されたホストコンピュータについて、前記構築されたコンポーネント階層グラフをトラバースして、前記資源それぞれの冗長性属性に基づいて、このホストコンピュータにおいて前記影響を受ける資源を求める取得手段と
を備える装置。
【請求項７】
前記求められた資源情報を、前記ホストコンピュータそれぞれから集約して蓄積する蓄積手段と、
前記蓄積された資源情報に基づいて、前記ストレージエリアネットワークにおける再構築による影響情報を生成する生成手段と
をさらに備える請求項６に記載の装置。
【請求項８】
グラフィカルユーザインターフェースによって、前記ストレージエリアネットワークの状態をユーザに提示する提示手段と
をさらに備える請求項６に記載の装置。
【請求項９】
ストレージエリアネットワークを管理する管理コンピュータに、
前記ストレージエリアネットワークを構成する複数のノード間の接続グラフを構築するステップと、  
前記構築された接続グラフに基づいて、前記ストレージエリアネットワークを構成するホストコンピュータそれぞれについて、ホストコンピュータから到達可能な論理ユニット番号の集合を算出するステップと、
前記ホストコンピュータそれぞれについて、前記ストレージエリアネットワークの再構成前に前記算出された到達可能な論理ユニット番号と、前記ストレージエリアネットワークの再構成後に前記算出された到達可能な論理ユニット番号とが一致しない場合、この論理ユニット番号に対応するホストコンピュータを、前記ストレージエリアネットワークの再構成による影響を受けるホストコンピュータとして特定するステップと
を実行させ、
前記ホストコンピュータそれぞれに、
このホストコンピュータ上で実行されているプロセスと、このホストコンピュータを構成するソフトウェアおよびハードウェアとをマッピングし、前記プロセス、前記ソフトウェアおよび前記ハードウェアそれぞれの資源の冗長性を示す冗長性属性を有するコンポーネント階層グラフを構築するステップと、
前記ストレージエリアネットワークの再構成による影響を受けるホストコンピュータとして特定された場合、前記構築されたコンポーネント階層グラフをトラバースして、前記資源それぞれの冗長性属性に基づいて、このホストコンピュータにおいて前記影響を受ける資源を求めるステップと
を実行させる
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施の形態は、ＳＡＮ再構成の期間中のデバイスクリティカリティを求める方法及びシステムに関する。
【背景技術】
【０００２】
データセンターは、通常はコンピュータ及び通信機器といった大量の電子機器を収容するのに使用される設備である。データセンターの一般的なコンポーネントには、サーバ、ストレージデバイス、相互接続ケーブル、スイッチ、及びハブのようなストレージエリアネットワークコンポーネント、並びにＬＡＮケーブル及びスイッチ／ハブのようなデータネットワークエレメントが含まれ得る。ストレージエリアネットワーク（ＳＡＮ）は、コンピュータストレージデバイスをサーバにアタッチするように設計されるネットワークである。ＳＡＮによって、マシンがブロックレベルＩ／Ｏのネットワーク上のディスク、及びテープドライブ等のリモートターゲットに接続することが可能になる。
【０００３】
ストレージエリアネットワークでは、ストレージエレメントは、個々のサーバに属さない。その代わり、ストレージエレメントは、ネットワークに直接アタッチされ、ストレージは、必要な時にサーバに割り当てられる。ストレージエレメントをサーバシステムの遠隔に配置することができる。したがって、たとえサーバシステムを含むインフラストラクチャが破壊されても、データを依然として回復することができる。その上、ストレージエレメントをホストシステムと共に移動させる必要がないので、ネットワークにおけるホストシステムのリロケーションがより容易になる。加えて、ホストをその個別のロケーションで個々にアップグレードする必要がないので、ネットワークのアップグレードをより簡単にすることができる。さらにまた、或るサーバが正しく機能しない場合には、データを回復させる必要なく、新しいサーバを迅速にセットアップできると共に、ストレージエレメントの関連のあるストレージボリュームに向けることができるので、システムのダウンタイムが削減される。
【０００４】
複数のスイッチを含むデータリンクのネットワークは、サーバとＳＡＮのストレージエレメントとを接続するのに使用される。これらのコンポーネントの１つ又は２つ以上の故障の結果としてのネットワークのダウンタイムをさらに削減するために、多くの場合、冗長リンクをサーバとストレージエレメントとの間に含めて、それによって、或るリンクが正しく機能しない場合に、別のリンクを使用できると共に、中断することなくネットワークを使用できるようにする。システムを管理すると共に、十分な冗長パスが確実に存在するようにするために、管理プログラムが、多くの場合使用される。管理プログラムが、障害を解析して、ネットワークの状態を評価し、且つ入出力連続性が最適な性能で維持されることを保証する場合には、システムのダウンタイムをさらに削減することができる。
【０００５】
アドミニストレータが、データセンターを構成するコンポーネント上で保守オペレーション及び／又は再構成オペレーションを行うことは珍しいことではない。ＩＴコンソリデーション、ハードウェア、及びソフトウェアのアップグレードは、このようなオペレーションの一般的な理由の一部である。
【０００６】
ストレージエリアネットワークでは、保守オペレーションを行う前に、アドミニストレータは、可用性及び性能の点から、潜在的なシステム及び／又はアプリケーションレベルの影響を評価することに関心を持つ。保守オペレーションの影響解析は、アプリケーション管理システムのコア部分を成す。したがって、このような保守オペレーションを計画して実行する前に、アドミニストレータは、「このケーブルを除去／交換した場合に、何に影響があるのか？」、「保守作業のためにこのストレージデバイスを一時的にオフラインにした場合に、システム／アプリケーションに何が起こるのか？」、「ディスクアレイコントローラ又は筐体内のディスクが交換され／影響を受ける場合に、自身のデータセンターのどのアプリケーションが影響を受けるのか？」等の質問に対する回答を知ることに関心を持つ場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、ＳＡＮ再構成の期間中のデバイスクリティカリティを求めるための方法及びシステムを提供する。
【課題を解決するための手段】
【０００８】
本発明の一形態は、ストレージエリアネットワークの再構成のデバイスクリティカリティを求める方法であって、ストレージエリアネットワーク接続グラフを構築するステップと、前記ストレージエリアネットワーク接続グラフから、再構成オペレーションによる影響を受けるホストシステムを特定するステップと、前記影響を受ける各ホストシステムのクリティカル資源解析アルゴリズムを呼び出すステップであって、前記影響を受けるホストシステムにおける影響を受ける資源を求める、呼び出すステップと、を含む方法である。
【０００９】
次に、添付図面を参照して、本発明の実施形態を単なる例として説明することにする。
【発明を実施するための最良の形態】
【００１０】
次に、本発明の実施形態を詳細に参照することにする。これらの実施形態の例は、添付図面に示されている。本発明をこれらの実施形態との関連で説明するが、これらの実施形態は、本発明をこれらの実施形態に限定することを意図したものではないことが理解されよう。逆に、本発明は、代替形態、変更形態、及び均等物を含有するように意図されている。これらの代替形態、変更形態、及び均等物は、添付の特許請求の範囲によって規定される本発明の精神及び範囲内に含めることができる。さらに、本発明の以下の詳細な説明では、本発明の徹底した理解を提供するために、多数の具体的な詳細が述べられる。
【００１１】
クリティカル資源解析（ＣＲＡ）機能を使用すると共に、データセンターイベントをホストシステムレベルイベントにマッピングすることによって、データセンターにおけるＳＡＮ再構成オペレーションのクリティカリティ又は副作用を求める技法を説明することにする。本技法は、データセンターの各ホストにデプロイされる影響解析エージェント（ＩＡＡ）を使用する。データセンターアドミニストレータノードに設けられる中央エージェントは、データセンターにわたる影響解析エージェントのそれぞれからの結果を集約して、コンソリデートされた報告をデータセンターアドミニストレータに提供することができる。中央エージェントは、ＳＡＮ生成ユニットから構成することができる。次に、添付図面を参照して本技法をより詳細に説明することにする。
【００１２】
図１を参照すると、ネットワーク１は、複数のデータリンク３ａ、３ｂ、３ｃ、３ｄ、３ｅに接続される複数のホスト２ａ、２ｂ、２ｃと、複数のスイッチ４ａ、４ｂと、複数のストレージエレメント５ａ、５ｂ、５ｃ、及び５ｄとを備える。ホストには、サーバ２ａ、２ｂ、２ｃ、及びクライアントコンピュータが含まれ得るが、これらに限定されるものではない。データリンクには、たとえば、イーサネット（登録商標）インターフェース接続、ファイバチャネル、及びＳＣＳＩ（小規模コンピュータシステムインターフェース）インターフェースが含まれ得るが、これらに限定されるものではない。ストレージエレメントには、ディスクドライブ及び／又はディスクアレイ５ａ、５ｂ、５ｃ並びにテープドライブアレイ５ｄが含まれる。
【００１３】
或るパスのコンポーネント又はデータリンクが故障しても、別のパスを使用してホストとストレージエレメントとの間でデータを依然として交換できるように、各ホストは、少なくとも２つのパスによって各ストレージエレメントに接続される。したがって、各サーバ２ａ、２ｂ、２ｃは、データリンク３ａ、３ｂを通じてスイッチに接続する少なくとも１つのホストバスアダプタ（ＨＢＡ）６ａ〜６ｆを有する。同様に、各ストレージエレメント５ｂ又はストレージエレメントのクラスタは、データリンク３ｃ、３ｄ、３ｅに接続する少なくとも１つのコントローラ７ａ〜７ｄを有する。ＨＢＡ６ａ〜６ｆの役割は、ホストとアタッチされたデータリンクとの間のインターフェースを提供することである。これらのＨＢＡは、データを転送するのに必要なホスト処理のほとんどをオフロードする入出力処理をさらに提供することができる。コントローラ７ａ〜７ｄは、ストレージエレメントについて同様の役割を行う。スイッチと同様に、ＨＢＡ及びコントローラも、代替的なパスを提供する２つの以上のポートを有することができる。図１では、ポート６ｅが、２つのポートを有するものとして示されている。ホストとストレージエレメントとを接続するＨＢＡ６ａ〜６ｆ、データリンク３ａ〜３ｅ、スイッチ４ａ、４ｂ、及びコントローラ７ａ〜７ｄから成るネットワークは、ファブリック８として知られているものを構成する。
【００１４】
ＳＡＮの各コンポーネントは、複数のサブコンポーネント９を有する。これらのサブコンポーネント９のいずれか１つは、システムの性能に影響を与える可能性がある。たとえば、各スイッチは、１つ又は２つ以上のポート、ファン、及び／又は電源を有する場合がある。
【００１５】
各ホストシステム２ａ、２ｂ、２ｃには、ファブリックチャネル８を通じてアクセスすることができるストレージエリアが割り当てられる。ストレージエリアは、異なるストレージエレメント上に分散させることができる。ストレージエリアは、さらに、通常は複数の論理ユニット番号（ＬＵＮ）１０に分類することができる。ＬＵＮ１０のそれぞれは、ストレージエレメントの実際の一部又は仮想的な一部に対応する。たとえば、或るＬＵＮ１０は、ディスクドライブアレイ内の１つ又は２つ以上のディスクに対応することができる。
【００１６】
サーバは、ローカルエリアネットワーク（ＬＡＮ）１１において、複数のクライアントコンピュータ１２ａ、１２ｂに接続することができる。クライアントコンピュータは、ファイバチャネル等のそれ自体のデータリンクでＳＡＮに直接接続してもよく、又はＬＡＮ及びサーバを介して間接的に接続してもよい。
【００１７】
図３は、データセンターにおけるＳＡＮ再構成の期間中のデバイスクリティカリティを求めることに関与するステップを示している。一実施形態では、本技法は、ＳＡＮ再構成オペレーションにおけるホットプラグのデバイスクリティカリティを求める方法３００を実行するコンピュータ実行可能命令として実施することができる。このコンピュータ実行可能命令は、任意のタイプのコンピュータ可読媒体に記憶することができる。この任意のタイプのコンピュータ可読媒体は、磁気ディスク、ＣＤ−ＲＯＭ、光媒体、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、ＲＡＭ、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭ、又はコンピュータが読み出すことができる他の任意の媒体等である。
【００１８】
１つ又は２つ以上のコンポーネントの状態に関係したイベントの、ＳＡＮに対する影響を求めるために、ＳＡＮにおける接続を特定して解析しなければならない。コンポーネントがホスト２とＬＵＮ１０との間のパスの一部であり、且つ、このパスがそれら２つのコンポーネント間で唯一利用可能なパスである場合には、このパスの除去は、システムの性能にとってクリティカルとなる。一方、このパスが、ＳＡＮ９を通じてホストシステムからＬＵＮ１０への多数のパスのうちの１つにすぎない場合には、障害は、軽微な影響しか有しない。あらゆる代替的なパスを以下では冗長パスと呼ぶ。
【００１９】
図３のステップ３０１において、このアルゴリズムは、データセンターの情報を収集して、ＳＡＮ接続グラフ（本説明において、以降、「ＳＡＮグラフ」と呼ぶ）を構築する。グラフのエッジノードは、ディスクアレイによってエクスポートされたＬＵＮ、並びに、ホストシステム及び／又はサーバシステムのホストバスアダプタ（ＨＢＡ）ポートとすることができる。ディスクアレイ、筐体、及びコントローラは、ＳＡＮグラフのノードを論理的にグルーピングするのに使用することができ、それによって、これらのコンポーネントに影響を与える任意のオペレーションを、その論理グループのすべてのノードを「影響あり」としてマーキングするのに使用できるようにする。スイッチ、ハブ、ケーブル等のようなＳＡＮインフラストラクチャコンポーネントは、ＳＡＮグラフにおける中間ノード及び枝としてマッピングすることができる。ＳＡＮグラフを構築するアルゴリズムを、一例として、図２に関して簡潔に説明する。
【００２０】
ステップ２０１において、ＳＡＮグラフ生成ユニットが、ＳＡＮグラフを生成する命令を受け取る。これは、ユーザがＳＡＮを再構成したい時に受け取られる。いくつかの実施形態では、ＳＡＮグラフを再生成する、ＳＡＮグラフ生成ユニットへの命令は、所定の頻度で通信することができる。この所定の頻度は、ユーザによって構成可能である。
【００２１】
ＳＡＮ接続生成ユニットは、ステップ２０２において、ＳＡＮグラフが最後に生成された時以降に収集された情報から、ＳＡＮの最初のコンポーネントについての情報を取り出す。このコンポーネントについて収集された情報は、ベンダ及びモデルのデータと、たとえばワールドワイド名（ＷＷＮ）といった識別番号と、ＳＡＮグラフ生成ユニットがコンポーネントの近傍にあるものを求めることを可能にする接続情報とを含むことができる。また、ＳＡＮ接続生成ユニットは、コンポーネントについての情報がＳＡＮグラフデータベースにすでに存在するかどうか、すなわち、収集されたデータが既知のコンポーネントに関するものであるかどうか、又は、新しいコンポーネントがネットワークに追加されたかどうかをチェックすることができる。コンポーネントが新しいコンポーネントである場合には、ＳＡＮ接続生成ユニットは、ステップ２０４において、一意の識別番号をそのコンポーネントに割り当てる。識別番号を割り当てた後、そのコンポーネントを枝又は頂点として分類することができる。
【００２２】
ネットワークのコンポーネントは、頂点及び枝の２つの集合に分割することができる。頂点の集合は、ＨＢＡの集合、スイッチの集合、ストレージアレイコントローラの集合、及び論理ユニット番号の集合を含むことができる。枝の集合は、たとえばファイバチャネルケーブルといった、頂点を接続するデータリンクの集合である。２つの頂点は、１つ又は２つ以上の枝によって接続することができる。コンポーネントは、特定された後、ＳＡＮデータベースに記憶される（２０６）。
【００２３】
コンポーネントについての関連のある情報を収集した後、ＳＡＮ接続生成ユニットは、ステップ２０７において、収集されたデータが、さらなるコンポーネントについての情報を含むかどうかをチェックすることができる。追加のコンポーネントについての情報がない場合には、プロセスは、ステップ２０８において終了する。収集されたデータが、さらなるコンポーネントについての情報を含む場合には、プロセスは、ステップ２０２から繰り返される。
【００２４】
すべてのコンポーネントについての情報が追加されると、グラフは、ステップ２０８においてリンクされる。グラフをリンクすることは、すべての接続をチェックすること、ソースコンポーネントとデスティネーションコンポーネントとの間のすべてのパスを求めること、及びＧＵＩにおいて適した方法でシステムのアドミニストレータに提示されるデータを編成することを伴う。
【００２５】
次に、図５に関して、ソースコンポーネントとデスティネーションコンポーネントとの間のすべてのパスを求めるプロセスをより詳細に説明することにする。ステップ５０１において、ダミー変数ｎが０にセットされる。その後、識別番号ｖｎ、この場合はｖ０、を有する頂点の記録が、ステップ５０２において、ＳＡＮグラフデータベース３０のＳＡＮグラフから取り出される。ダミー変数ｍも、ステップ５０３において０にセットされ、ｖｍの記録が、ステップ５０４において取り出される。
【００２６】
ステップ５０５において、ｖｎとｖｍとの間に有効なアクセスパスがあるかどうかが判断される。ＳＡＮグラフの枝は、ホストからＬＵＮへの方向性を有する。アクセスパスは、ホストからＬＵＮへの方向にのみ確立することができる。したがって、たとえば、サーバ２ａと２ｃとの間のパスの確立は、誤った方向に向かう枝を伴うので、そのパスは確立されない。このステップは、対象となるパスのみを確立すること、及び、２つの頂点間のパスが１回しか確立されないことを保証する。ｖｎがｖ０に等しく、且つ、ｖｍもｖ０に等しい場合には、ステップ５０５において、利用可能である有効なパスがないことが確かめられ、したがって、ｍは、ステップ５０６において１だけ増分され、次に、ステップ５０５において、ｖ０とｖ１との間に有効なパスがあるかどうかが確かめられる。ｖ０がサーバ２ａに対応し、且つｖ１がＬＵＮ１０に対応するとき、ステップ５０５において、有効なパスがあると判断され、プロセスはステップ５０７に続く。
【００２７】
物理パス及び論理パスの双方が、頂点ｖｎ及びｖｍの対について確立される。物理パスは、コンポーネントの対の間の頂点のシーケンスである。論理パスは、枝のシーケンスである。
【００２８】
物理パスは、ステップ５０６において、頂点ｖ０と頂点ｖ１との間に確立され、そのパスにおけるそれら頂点の識別番号が、ＳＡＮグラフデータベースの高可用性（ＨＡ）マップに記憶される。サーバ２ａ及びＬＵＮ１０の場合、パスは、ＨＢＡ６ａ、スイッチ４ａ、及びコントローラ７ａを含む。
【００２９】
ステップ５０７において、ホストｖ０とＬＵＮ  ｖ１との間の代替的な物理パスがあるかどうかがチェックされる。代替的なパスがあることが確かめられた場合には、ステップ５０６が繰り返され、ＨＢＡ６ａ、スイッチ４ａ、及びコントローラ７ｂの代替的なパスが存在すると判断される。ステップ５０６及び５０７は、ノードの対の間ですべての有効なパスが見つけられるまで繰り返される。したがって、ＨＢＡ６ｂ、スイッチ４ｂ、及びコントローラ７ｂの第３の最後のパスも見つけられる。パスのすべては、それらパスのそれぞれの頂点のシーケンスと共に、ＳＡＮグラフデータベース内の物理的な高可用性（ＨＡ）マップＨＡｐ（ｖ０，ｖ１）に記憶される。
【００３０】
代替的な物理パスがそれ以上ないときは、プロセスは、ステップ５０８に続き、２つの頂点間の論理パスが確立される。上述した例では、ホスト２ａとＬＵＮ１０との間の１つの論理パスは、枝３ａ及び３ｃを含む。ステップ５０９において、代替的な論理パスがあるかどうかが判断され、代替的な論理パスがある場合には、ステップ５０８が繰り返される。上記例では、枝３ａ及び３ｄから成るパスと、枝３ｂ及び３ｅから成るパスとの２つの追加のパスが見つけられる。その後、すべてのパスは、それらパスのそれぞれの枝のシーケンスと共に、ＳＡＮグラフデータベースの論理ＨＡマップＨＡＬ（ｖ０，ｖ１）に記憶される。
【００３１】
すべての論理パスが記憶されると、ステップ５０９において、ｖ０とｖ１との間にパスがそれ以上ないと判断され、プロセスはステップ５１０に続き、ｍよりも大きな識別番号を有する頂点があるかどうかがチェックされる。そのような頂点がある場合には、ｍは、ステップ５１２において１だけ増分され、ｖ０とｖ２との間のすべてのパスについて、ステップ５０４〜５０９が繰り返される。頂点ｖ０と他のすべての頂点との間の有効なパスが確立されると、ステップ５１０において、頂点がそれ以上ないと判断され、プロセスはステップ５１１に進む。頂点がある場合には、ｎが１だけ増分され、ステップ５０２〜５１１が繰り返される。これらのステップは、システムにおける頂点のすべての対の間の有効なパスが確立され、物理ＨＡマップ及び論理ＨＡマップとして記憶されるまで繰り返される。
【００３２】
ＳＡＮグラフの各ホストシステムノードは、到達可能な複数のＬＵＮノードを保持することができ、これらのＬＵＮノードは、本説明では「到達可能ＬＵＮ集合」とも呼ばれる。
【００３３】
一実施形態によれば、図３のステップ３０２において、データセンターの各ホストシステムについてコンポーネント階層グラフ（ＣＨＧ）を構築することができる。ＣＨＧは、前方に位置するＰＣＩバスから、ホストシステム上で現在実行されているプロセスへ、ソフトウェアの要素に加えてハードウェアの要素をもマッピングするグラフである。プロセスノードは、ＣＨＧの葉、すなわち最終レベルにある。ＣＨＧの異なるレベルのノードは、ＰＣＩスロット、ＨＢＡ、ＨＢＡポート、ＬＵＮパス（ＨＢＡポートからＬＵＮへの枝とも呼ばれる）、ＬＵＮ，論理ボリューム、ボリュームグループ、ファイルシステム、及びプロセスから成ることができる。ＣＨＧの枝は、後続ノードが先行ノードを使用しており且つ／又は先行ノードに依存していることを示すことができる。したがって、先行ノードが影響を受け且つ／又は利用不能である場合には、冗長パス、すなわち代替パスが利用可能でない限り、後続ノードも利用不能である場合がある。ホストシステムの典型的なコンポーネント階層グラフを一例として図７に示す。ホストシステムのコンポーネント階層グラフは、非循環有向グラフ（ＤＡＧ）の形で表すことができる。
【００３４】
コンポーネント階層グラフは、各ノードにおいて、コンピュータシステムのコンポーネントのそれぞれに関連付けられる一定の属性を含むことができる。これらの属性は、たとえば、冗長性属性、クリティカリティ属性、又は利用属性とすることができる。冗長性属性は、特定のノードの冗長パスの個数で構成することができる。
【００３５】
ＳＡＮグラフ及びＳＡＮにおけるホストシステムのコンポーネント階層グラフは、ブート時間に準備して記憶することができる。ＳＡＮ及び／又はホストシステムの構成は頻繁に変化しないので、これによって、資源解析の時間を削減することができる。ＳＡＮの構成の変化は、ＳＡＮグラフ及び／又はＣＨＧに反映させることができる。ＳＡＮグラフ及びＣＨＧは、中央エージェントを用いて記憶することができる。
【００３６】
ＳＡＮ再構成オペレーションの期間中、ユーザは、たとえば、データセンターにおけるＳＡＮのデバイス（複数可）の追加、交換、又は除去といったオンラインホットプラグオペレーションを行いたい旨を示す。ここで、ユーザは、どのデバイス（複数可）が、試みられる再構成オペレーションに関与するのかを知っているものと仮定する。
【００３７】
図３のステップ３０３で続けて、ＳＡＮ再構成イベントは、枝及び／若しくはノードのＳＡＮグラフからの削除、並びに／又は、枝及び／若しくはノードのＳＡＮグラフへの追加にマッピングされる。ＳＡＮ再構成におけるリンク除去イベント及びポート除去イベントは、ＳＡＮグラフにおける枝の除去及びコントローラの追加／除去にマッピングすることができる。同様に、スイッチ及びディスクデバイス筐体の除去は、ノードの追加／除去オペレーションにマッピングすることができる。データセンターの観点でのＳＡＮ再構成オペレーションは、（ホストホットプラグオペレーションを通じて）サーバシステムからスイッチへのリンク、ＳＡＮスイッチ（複数可）、スイッチからディスクデバイスへのリンク、デバイスポート／コントローラ利用不能性、及びホストシステムポートから成る群からのＳＡＮのコンポーネントの１つ又は２つ以上を伴うことができる。
【００３８】
一実施形態によれば、データセンターにおけるＳＡＮ再構成オペレーションは、次の方法でホストレベルの影響にマッピングすることができる。サーバシステム又はホストシステムからスイッチへのリンクに対する影響は、ホストシステムのＨＢＡのホットプラグにマッピングすることができる。ディスクデバイスポートに対する影響、そのデバイス及び／又はディスクアレイによってエクスポートされたＬＵＮを使用する、ホストシステム上の対応する「ＬＵＮパス」は、影響を受けるとみなされる。スイッチからデバイスポートへのリンクが影響を受ける場合には、これは、デバイスポートの影響と等価であるとみなすことができ、そのリンクが接続されているデバイスポートの下のＬＵＮを使用するホストシステムは影響を受けるとみなされる。スイッチが影響を受ける場合には、そのスイッチに関連付けられた各リンクが影響を受ける場合があり、且つＳＡＮグラフにおいて、ホストシステム及びデバイスシステムに対する影響の形でマッピングすることができる。スイッチ間リンク（ＩＳＬ）を通じたＳＡＮにおける或るスイッチの他のスイッチに対する影響、並びに、ＳＡＮに接続された他のホストシステム及びデバイスに対する間接的な影響は、ノードの到達可能性の既知のグラフ理論の問題であり、或るエッジノードが、グラフのノード／枝（スイッチ／ＩＳＬ）の喪失によって別のエッジノード（ホスト／デバイス）へのパスを喪失するかどうかを判断する技法が存在する。したがって、スイッチの影響を、ＳＡＮに接続されたホストに対するＬＵＮパスレベルの影響にマッピングすることができる。
【００３９】
図３のステップ３０４に続いて、データセンターにおける影響を受けるホストが特定される。データセンターの影響を受けるホストを特定するアルゴリズムを図４に示す。ホストシステムが影響を受けると判断される場合には、ＩＡＡは、ホストシステム上でデバイスクリティカリティ解析アルゴリズムを起動する。ホストシステムにおけるデバイスクリティカリティを求めるアルゴリズムの一例を図６に示す。
【００４０】
さらにステップ３０５に続いて、デバイスクリティカリティデータが、データセンターにわたる影響を受けるすべてのホストシステムから蓄積される。中央エージェントが、すべてのホストシステムにわたるＩＡＡから受け取った結果を集約し、コンソリデートされた報告をデータセンターアドミニストレータに提供することができる。データセンターアドミニストレータは、ＳＡＮ再構成オペレーションのコンソリデートされた報告を参照することができる。
【００４１】
図４は、図３のステップ３０４のデータセンターの影響を受けるホストを判断するアルゴリズムを詳細に示している。
【００４２】
ステップ４０１において、データセンターのホストシステムのそれぞれについての到達可能なＬＵＮの集合が、ＳＡＮ再構成オペレーションの前に計算される。ＳＡＮ再構成オペレーションの前の到達可能なノードの集合は、本説明では、｛Ｒ１｝とも呼ぶ。ホストシステムの到達可能なＬＵＮの集合は、図４で説明するアルゴリズムによって得ることができる。このデータは、ホストシステムノードにおけるローカルＩＡＡエージェントを用いて記憶される。ステップ４０２において、ＩＡＡは、ＳＡＮグラフにおいてＳＡＮ再構成オペレーションをマッピングした後に、ホストシステムの到達可能なＬＵＮの集合（本説明では、｛Ｒ２｝とも呼ぶ）を計算する。ホストシステムの到達可能なＬＵＮの集合｛Ｒ２｝は、ＳＡＮ再構成オペレーションの後には、枝及び／又はアクセスパスの喪失により、｛Ｒ１｝とは異なる場合がある。
【００４３】
図４のステップ４０３に続いて、ホストシステムによって喪失されたＬＵＮの集合が計算される。ホストシステムによって喪失されたＬＵＮの集合は、ＳＡＮグラフにおけるＳＡＮ再構成オペレーションのマッピング前のホストシステムの到達可能ＬＵＮの集合｛Ｒ１｝と、ＳＡＮ再構成オペレーションのマッピング後のホストシステムの到達可能なＬＵＮの集合｛Ｒ２｝との差を計算することによって得ることができる。ホストシステムの喪失されたＬＵＮの個数は、本説明では、｛Ｒ３｝；（｜｛Ｒ３｝｜＝｜｛Ｒ１｝−｛Ｒ２｝｜）によっても表される。
【００４４】
さらにステップ４０４に続いて、ホストシステムが喪失したＬＵＮの集合｛Ｒ３｝が空である場合には、ホストシステムは、「影響なし」として宣言することができる（４０５）。ホストシステムの到達可能なＬＵＮの集合は、ＳＡＮグラフにおけるＳＡＮ再構成オペレーションのマッピングの前後で同じである、すなわち、｛Ｒ１｝＝｛Ｒ２｝であるので、その特定のホストシステムは、ＳＡＮ再構成オペレーションによる影響を受けない。
【００４５】
ホストシステムが喪失したＬＵＮの集合｛Ｒ３｝が空でない場合には、その特定のホストシステムは、「影響あり」としてマーキングされる（４０６）。ホストシステムの到達可能なＬＵＮの集合は、ＳＡＮグラフにおけるＳＡＮ再構成オペレーションのマッピングの前後で同じでないので、その特定のホストシステムは、ＳＡＮ再構成オペレーションによる影響を受ける。この影響は、ＳＡＮ再構成オペレーションのマッピングの期間中、ＳＡＮグラフからの枝及び／又はノードの除去後に、ホストシステムがそのＬＵＮ（複数可）を喪失したことによるものとすることができる。
【００４６】
ステップ４０７において、ホストシステムが「影響あり」とマーキングされている場合には、クリティカル資源解析（ＣＲＡ）アルゴリズムが呼び出されて、影響を受ける資源が求められる。ＣＲＡアルゴリズムは、ホストシステムにおける影響を受ける資源の個数を求める。ＣＲＡアルゴリズムから得られたデバイスクリティカリティ報告は、ローカルＩＡＡを用いて記憶することもできるし、中央エージェントへ直接送信することもできる。ＣＲＡアルゴリズムは、ホストシステム上でＩＡＡを用いて記憶されたコンポーネント階層グラフをトラバースして、影響を受ける資源を求めることができる。
【００４７】
一実施形態によれば、資源解析は、ホストシステムのＣＨＧをトラバースすることによって実行することができる。図６は、ＣＨＧのノードに関連付けられた冗長性属性を使用して影響を受けるノードを求めるＣＨＧトラバースアルゴリズムを示すフローチャートである。資源クリティカリティは、影響ありとしてマーキングされたノードに関連付けられる使用属性及びクリティカリティ属性をチェックすることによって得ることができる。
【００４８】
ステップ４０８に続いて、影響を受ける資源のリストが、ＣＲＡアルゴリズムから得られる。影響を受ける資源のリストは、ホストシステム上のＩＡＡによって、中央エージェントに対して利用可能にすることができる。中央エージェントは、ＩＡＡからのリストを集約して、データセンターにわたる影響を受けるすべての資源を含むコンソリデートされたリストを構築することができる。この集約は、単純に、データセンターにわたるＩＡＡのそれぞれからのリストの和集合とすることができる。集約されたリストは、ユーザの参照用にユーザに提示することができる。
【００４９】
ＳＡＮ再構成の期間中のデバイスクリティカリティを求めるアルゴリズムの擬似コード例は、次の通りである。
algorithm SAN_impact( input SAN Graph, 
input Component Hierarchy of all hosts, 
input  components added/removed in SAN,
output Impacts at data center level)
begin
Compute the reachable LUN sets {R1} for each host in the SAN graph;
Apply the impacts of SAN reconfiguration on the nodes/edges of SAN graph;
Recompute the reachable LUN sets {R2} for each host in the SAN graph;
hosts_impacted = false;
for each host hi in the SAN  do
Compute impacted LUN set {R3} = {R1} - {R2};
if {R3} is non-empty then
Compute criticality of losing LUN in {R3} using CRA on hi;          
hosts_impacted = true;
endif
endfor
if  hosts_impacted then 
Report Criticality of the operation recorded and return for 
future processing;
endif
end.
（アルゴリズム SAN_impact（入力されたＳＡＮグラフ，
入力された、すべてのホストのコンポーネント階層，
入力された、ＳＡＮにおいて追加／除去されたコンポーネント，
データセンターレベルにおける出力される影響）
begin
ＳＡＮグラフにおける各ホストの到達可能なＬＵＮの集合｛Ｒ１｝を計算する；
ＳＡＮグラフのノード／枝に対するＳＡＮ再構成の影響を適用する；
ＳＡＮグラフにおける各ホストの到達可能なＬＵＮの集合｛Ｒ２｝を再計算する；
hosts_impacted = false；
for each ＳＡＮにおけるホストｈｉ do
影響を受けるＬＵＮの集合｛Ｒ３｝＝｛Ｒ１｝−｛Ｒ２｝を計算する；
if ｛Ｒ３｝が非空である then
ｈｉ上でＣＲＡを使用して｛Ｒ３｝のＬＵＮを喪失することのクリティカリティを計算する；
hosts_impacted = true；
endif
endfor
if hosts_impacted then
記録されたオペレーションのクリティカリティを報告し、その後の処理のために返す；
endif
end.）
【００５０】
加えて、デバイスクリティカリティ報告は、解析の全体結果及び全体結果の理由も提供することができる。この実施形態では、全体結果は、成功、警告、データクリティカル、又はシステムクリティカルのいずれかである。
【００５１】
全体結果が成功である場合、これは、本技法が、影響を受ける資源を発見しなかったことを示し、ユーザには、成功メッセージが提供され、再構成オペレーションを進めることが可能にされる。
【００５２】
さらに、全体結果が警告である場合、これは、本技法が、１つ又は２つ以上の影響を受ける資源を発見したことを示している。一方、これらの影響を受ける資源には、低深刻度レベル（又は警告レベル）が割り当てられており、いずれにも、中深刻度レベル（又はデータクリティカルレベル）も高深刻度レベル（又はシステムクリティカルレベル）も割り当てられていない。ユーザには、影響を受ける資源がシステムオペレーションにとってクリティカルと考えられないことを明示する警告メッセージが提供され、再構成オペレーションを進めることが可能にされる。
【００５３】
続いて、全体結果がデータクリティカルである場合、これは、本技法が、１つ又は２つ以上の影響を受ける資源を発見したことを示している。一方、これらの影響を受ける資源の少なくとも１つには、中深刻度レベル（又はデータクリティカルレベル）が割り当てられており、いずれにも、高深刻度レベル（又はシステムクリティカルレベル）は割り当てられていない。ユーザには、システムに記憶されたデータが、おそらく又は場合によっては喪失されるが、システムはおそらくクラッシュもしないし、不健全／故障状態にも入らないことを明示するデータクリティカルメッセージが提供される。さらに、報告は、再構成による影響を受ける可能性のあるデータセンターのすべてのプロセスをリスト又は列挙することができる。次に、プロセスレベルの影響をより大きなアプリケーションレベルの影響にマッピングすることができる。
【００５４】
全体結果がシステムクリティカルである場合、これは、本技法が、１つ又は２つ以上の影響を受ける資源を発見したことを示している。一方、これらの影響を受ける資源の少なくとも１つには、高深刻度レベル（又はシステムクリティカルレベル）が割り当てられている。ユーザには、システムがクラッシュするか又は不健全／故障状態に入る可能性があることを言明するシステムクリティカルメッセージが提供される。この場合、ユーザが再構成オペレーションを進めることが阻止される。
【００５５】
本技法の上記変形形態のいずれも、適した汎用コンピュータをプログラミングすることによって実施することができる。プログラミングは、コンピュータによって読み出し可能なプログラムストレージデバイスの使用、及び、上述したオペレーションを行うコンピュータにより実行可能な命令から成るプログラムをコーディングすることを通じて達成することができる。
【００５６】
本明細書に含まれるフローチャートは、必ずしも、単一のホットプラグイベントにおける実行を表すものではなく、むしろ、いくつかの例では、複数のホットプラグオペレーションで行われる一連の協調したステップ、イベント、又はプロセスを表すことができる。加えて、本明細書のフローチャートは、図面に明示的に表されたイベント、ステップ、又はプロセスの間で、他のイベント、ステップ、又はプロセスを行うことができないことを暗に意味するものと解釈されるべきではない。
【００５７】
本発明の特定の実施形態の上記説明は、例示及び説明の目的で提示されたものである。それら説明は、網羅的であることを目的とするものでもなければ、開示した厳密な形に本発明を限定することを目的とするものでもなく、上記教示に鑑み、多くの変更及び変形が可能である。本実施形態は、本発明の原理及びその実用的な用途を最も良く説明し、それによって、他の当業者が、本発明及びさまざまな変更を有するさまざまな実施形態を、意図される特定の使用に適するように最良に利用することを可能にするために選ばれて説明されたものである。本発明の範囲は、本明細書に添付した特許請求の範囲及びその均等物によって規定されることが意図されている。
【図面の簡単な説明】
【００５８】
【図１】ＳＡＮ構成の概略図である。
【図２】ＳＡＮグラフの構築に関与するステップを示すフローチャートである。
【図３】ＳＡＮ再構成オペレーションのデバイスクリティカリティを求める方法に関与するステップを示す図である。
【図４】ＳＡＮ構成のホストレベルにおけるデバイスクリティカリティを求めることに関与するステップを示す図である。
【図５】ネットワークの論理パス及び物理パスを求めるプロセスを示す図である。
【図６】システムのホストでデバイスクリティカリティ解析を行うコンポーネント階層グラフのトラバースのフローチャートの一例を示す図である。
【図７】ＳＡＮ構成におけるホストバスアダプタのコンポーネント階層グラフの一例を示す図である。
【符号の説明】
【００５９】
１・・・ネットワーク
２ａ〜２ｃ・・・ホスト
３ａ〜３ｅ・・・データリンク
４ａ、４ｂ・・・スイッチ
５ａ〜５ｄ・・・ストレージエレメント
６ａ〜６ｆ・・・ホストバスアダプタ
７ａ〜７ｄ・・・コントローラ
８・・・ファブリック
９・・・サブコンポーネント
１０・・・論理ユニット番号
１１・・・ローカルエリアネットワーク
１２ａ、１２ｂ・・・クライアントコンピュータ
【図１】
0004740979.tif 000002
【図２】
0004740979.tif 000003
【図３】
0004740979.tif 000004
【図４】
0004740979.tif 000005
【図５】
0004740979.tif 000006
【図６】
0004740979.tif 000007
【図７】
0004740979.tif 000008