(57)【要約】【課題】ある論理区画からのＩ／Ｏ要求によって発生する障害やエラーの影響が、物理パスを共有する他の論理区画に波及してしまうことを抑えることを可能にした仮想計算機システムを得る。【解決手段】HBA140を管理するドライバプログラム170は、物理パスに形成する論理パス190〜192単位に障害情報(障害の回数及び閾値)171を管理し、物理パスの障害を検知した場合に、どの論理パスを経由したI/O要求で障害を検知したのかを判断して、対応する障害情報を更新する。また、障害の回数が予め定められた閾値に達しているか否かを確認し、閾値に達した場合に対応する論理パスを閉塞することにより、障害となった論理パスを使用する論理区画以外の、他の論理区画に与える影響を抑える。【選択図】図１
2009294758.tif 000002
【特許請求の範囲】
【請求項１】
システム装置を複数の論理区画に分割し、複数の論理区画のそれぞれの上でＯＳが動作し、前記システム装置に搭載した１つの物理ホストバスアダプタに複数の論理ＩＤを割り当て、物理ホストバスアダプタと入出力デバイス装置との間に形成した物理パスに、論理ＩＤ単位に複数の論理パスを形成し、前記各論理区画のＯＳが前記論理パスのそれぞれをアクセスする仮想計算機システムにおいて、
前記物理ホストバスアダプタを制御する制御手段を有し、該制御手段は、前記論理ＩＤ単位に物理パスの障害情報を備え、該論理ＩＤ単位に備える物理パスの障害情報として、障害の発生回数の情報と、障害の発生回数の閾値情報と、論理パスの閉塞状態を示す情報とを発生し得る障害の種類毎に管理していることを特徴とする仮想計算機システム。
【請求項２】
前記制御手段は、物理パスの障害を検知したとき、障害となった物理パスを共有する複数の論理パスのうち、どの論理パスを経由した入出力要求で障害を検知したかを判断する障害検知機能を有し、検知結果により前記論理ＩＤ及び障害の種類に対応する障害情報を更新することを特徴とする請求項１記載の仮想計算機システム。
【請求項３】
前記制御手段は、前記障害情報を更新したときに、障害回数が閾値に達したかを判断する機能を有し、該閾値に達した場合に、前記論理ＩＤに対応する論理パスを閉塞することを特徴とする請求項２記載の仮想計算機システム。
【請求項４】
システム装置を複数の論理区画に分割し、複数の論理区画のそれぞれの上でＯＳが動作し、前記システム装置に搭載した１つの物理ホストバスアダプタに複数の論理ＩＤを割り当て、物理ホストバスアダプタと入出力デバイス装置との間に形成した物理パスに、論理ＩＤ単位に複数の論理パスを形成し、前記各論理区画のＯＳが前記論理パスのそれぞれをアクセスする仮想計算機システムにおける前記物理ホストバスアダプタを制御するホストバスアダプタ用ドライバプログラムであって、
前記論理ＩＤ単位に備える物理パスの障害情報として、障害の発生回数の情報と、障害の発生回数の閾値情報と、論理パスの閉塞状態を示す情報とを発生し得る障害の種類毎に有し、
物理パスの障害を検知するステップと、物理パスの障害を検知したとき、障害となった物理パスを共有する複数の論理パスのうち、どの論理パスを経由した入出力要求で障害を検知したかを判断するステップと、検知した結果により前記論理ＩＤ及び障害の種類に対応する障害情報を更新するステップと、前記障害情報を更新したときに、障害回数が閾値に達したかを判断するステップと、障害回数が閾値に達していた場合に、前記論理ＩＤに対応する論理パスを閉塞するステップとをＣＰＵに実行させることを特徴とするホストバスアダプタ用ドライバプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機システム及びホストバスアダプタ用ドライバプログラムに係り、特に、複数の論理区画上でＯＳが動作する仮想計算機システム及び該仮想計算機システムの複数の論理区画のそれぞれのＯＳからの処理を同時に実行するホストバスアダプタ用ドライバプログラムに関する。
【背景技術】
【０００２】
近年、仮想化技術の向上により、オープン系サーバにおいて、１台の物理計算機としてのシステム装置に構築した複数の論理区画のそれぞれの上でＯＳを動作させる仮想計算機システムがサポートされるようになってきている。
【０００３】
さらに、この仮想計算機システムにおいて、システム装置に搭載した１つの物理ホストバスアダプタに複数の論理ＩＤを割り当て、物理ホストバスアダプタとＩ／Ｏデバイス装置とにより形成される物理パスに、論理ＩＤ単位に複数の論理パスを形成し、各論理区画のＯＳが前述の論理パスのそれぞれにアクセスすることにより、物理パスの共有化を図る技術が、例えば、特許文献１等に記載されて知られている。
【特許文献１】特開２００６−８５４００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１記載された複数の論理区画で物理パスを共有する仮想計算機システムの従来技術は、物理パスを構成するハードウェアの一部に障害やエラーが発生した場合に、次に説明するような問題が生じる。
【０００５】
一般に、物理パスで発生する障害は、物理パス上に形成される複数の論理パスのうち、全ての論理パスに影響を与える障害と、一部の論理パスにのみ影響を与える障害とに分類することができる。
【０００６】
通常、ある論理区画からのＩ／Ｏ要求によって、前述の一部の論理パスにのみ影響を与える障害が発生した場合には、その論理区画からのＩ／Ｏ要求のみが影響を受けるはずである。
【０００７】
しかし、この一部の論理パスにのみ影響を与える障害が頻発するような場合、本来影響を受けないはずの他の論理パスにも影響が波及してしまう可能性がある。例えば、障害の内容がタイムアウトを伴う障害であった場合、ホストバスアダプタ用ドライバプログラムがタイムアウト障害を検知するまでの間、ホストバスアダプタの資源を使用し続ける状態となるため、他の論理区画からのＩ／Ｏ要求にも影響を与え、他の論理区画上のＯＳでの処理が遅くなるスローダウンや停止等が発生する可能性がある。
【０００８】
本発明の目的は、前述したような点に鑑み、ある論理区画からのＩ／Ｏ要求によって発生する障害やエラーの影響が、物理パスを共有する他の論理区画に波及してしまうことを抑えることを可能にした仮想計算機システム及びホストバスアダプタ用ドライバプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明によれば前記目的は、システム装置を複数の論理区画に分割し、複数の論理区画のそれぞれの上でＯＳが動作し、前記システム装置に搭載した１つの物理ホストバスアダプタに複数の論理ＩＤを割り当て、物理ホストバスアダプタと入出力デバイス装置との間に形成した物理パスに、論理ＩＤ単位に複数の論理パスを形成し、前記各論理区画のＯＳが前記論理パスのそれぞれをアクセスする仮想計算機システムにおいて、前記物理ホストバスアダプタを制御する制御手段を有し、該制御手段は、前記論理ＩＤ単位に物理パスの障害情報を備え、該論理ＩＤ単位に備える物理パスの障害情報として、障害の発生回数の情報と、障害の発生回数の閾値情報と、論理パスの閉塞状態を示す情報とを発生し得る障害の種類毎に管理していることにより達成される。
【００１０】
また、前記目的は、システム装置を複数の論理区画に分割し、複数の論理区画のそれぞれの上でＯＳが動作し、前記システム装置に搭載した１つの物理ホストバスアダプタに複数の論理ＩＤを割り当て、物理ホストバスアダプタと入出力デバイス装置との間に形成した物理パスに、論理ＩＤ単位に複数の論理パスを形成し、前記各論理区画のＯＳが前記論理パスのそれぞれをアクセスする仮想計算機システムにおける前記物理ホストバスアダプタを制御するホストバスアダプタ用ドライバプログラムであって、前記論理ＩＤ単位に備える物理パスの障害情報として、障害の発生回数の情報と、障害の発生回数の閾値情報と、論理パスの閉塞状態を示す情報とを発生し得る障害の種類毎に有し、物理パスの障害を検知するステップと、物理パスの障害を検知したとき、障害となった物理パスを共有する複数の論理パスのうち、どの論理パスを経由した入出力要求で障害を検知したかを判断するステップと、検知した結果により前記論理ＩＤ及び障害の種類に対応する障害情報を更新するステップと、前記障害情報を更新したときに、障害回数が閾値に達したかを判断するステップと、障害回数が閾値に達していた場合に、前記論理ＩＤに対応する論理パスを閉塞するステップとをＣＰＵに実行させることにより達成される。
【００１１】
なお、本発明のホストバスアダプタ用ドライバプログラムは、どのようなプロトコルを制御するホストバスアダプタに適用してもよく、例えば、ファイバチャネルによって、または、Ｅｔｈｅｒｎｅｔ（登録商標）によって、前記仮想計算機システムを構築するものとしてもよい。
【発明の効果】
【００１２】
本発明によれば、物理計算機上に構築される複数の論理区画のぞれぞれの上のＯＳが１つの物理ホストバスアダプタを共有する仮想計算機システムにおいて、ある論理区画からのＩ／Ｏ要求に障害が検出された場合にも、物理パスを共有する他の論理区画への影響を抑えることが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明による仮想計算機システム及びホストバスアダプタ用ドライバプログラムの実施形態を図面により詳細に説明する。
【００１４】
図１は本発明の一実施形態による仮想計算機システムの構成を示すブロック図である。なお、図１に示す例は、３つの論理区画上の各ＯＳが１つの物理ホストバスアダプタを共有する場合の例であるが、本発明は、論理区画の数をさらに多数として構成することもできる。
【００１５】
図１に示す本発明の実施形態による仮想計算機システムは、１台の物理計算機としてのシステム装置１００とＲＡＩＤ装置１５０とが接続されて構成される。システム装置１００は、図１には示していないが、ＣＰＵ、メモリ等のハードウェアを備えて構成され、ＲＡＩＤ装置１５０に格納されるプログラムをメモリにロードし、そのプログラムをＣＰＵに実行させることにより、後述する本発明で必要な各種の機能が構築されている。
【００１６】
システム装置１００には、論理区画制御プログラム１１０及びホストＯＳ＃Ａ（１１１）の制御の下に、論理区画＃１（１２０）と論理区画＃２（１２１）と論理区画＃３（１２２）とが構築され、それぞれの論理区画でＯＳ＃１（１３０）とＯＳ＃２（１３１）とＯＳ＃３（１３２）とが動作している。また、システム装置１００は、１つの物理ホストバスアダプタ（ＨＢＡ）１４０を備えており、このＨＢＡを介してＲＡＩＤ装置１５０と接続されている。ＨＢＡ１４０には論理ＩＤ＃Ａ（１６０）と論理ＩＤ＃Ｂ（１６１）と論理ＩＤ＃Ｃ（１６２）との３つの論理ＩＤが割り当てられる。ホストＯＳ＃Ａ（１１１）内には、ＨＢＡ１４０を実際に制御するドライバであるドライバプログラム１７０が存在しており、このドライバプログラム１７０は、障害情報１７１を管理している。
【００１７】
ＲＡＩＤ装置１５０は、その内部に、論理ユニットＬＵ＃１（１８０）とＬＵ＃２（１８１）とＬＵ＃３（１８２）とが定義されており、各ＬＵとＨＢＡの論理ＩＤとを関連付けるＬＵＮマッピングテーブル１８３を備えている。そして、ＬＵＮマッピングテーブル１８３により、システム装置１００とＲＡＩＤ装置１５０との間を接続している物理パスに、論理パス１９０、１９１、１９２が形成される。
【００１８】
ＯＳ＃１（１３０）、ＯＳ＃２（１３１）、ＯＳ＃３（１３２）は、それぞれ、前述の論理パス１９０、１９１、１９２にアクセスすることにより、ＬＵ＃１（１８０）、ＬＵ＃２（１８１）、ＬＵ＃３（１８２）にＩ／Ｏ要求を行う。
【００１９】
図１に示す本発明の実施形態では、ドライバプログラム１７０と障害情報１７１とがホストＯＳ＃Ａ（１１１）内に存在するとして示しているが、本発明は、別の方式として、ドライバプログラム１７０と障害情報１７１とをＯＳ＃１（１３０）、ＯＳ＃２（１３１）、ＯＳ＃３（１３２）の各ＯＳ内に存在させるようにすることも可能である。
【００２０】
図２はＲＡＩＤ装置１５０内に備えられるＬＵＮマッピングテーブル１８３の構成を示す図である。ＬＵＮマッピングテーブル１８３は、ＨＢＡの論理ＩＤとＲＡＩＤ装置内のＬＵを対応付けてマッピングするＬＵとのレコードを複数格納して構成されている。ＨＢＡの論理ＩＤは、ＲＡＩＤ装置と接続するＨＢＡの論理ＩＤを示し、マッピングするＬＵは、該論理ＩＤに割り当てるＲＡＩＤ装置内のＬＵを示す。このＬＵＮマッピングテーブルにより、各論理ＩＤとＬＵとが関連付けられ、ＨＢＡとＲＡＩＤ装置との間の物理パスに、複数の論理パスを形成する。
【００２１】
図３はドライバプログラム１７０が管理する障害情報１７１の構成を示す図である。ドライバプログラム１７０は、論理ＩＤ毎に複数の障害情報、本発明の実施形態では３つの障害情報３００〜３０２を管理する。障害情報３００〜３０２のそれぞれには、論理ＩＤに対応した論理パスの閉塞状態を示す閉塞情報３１０と、物理パスで発生し得る障害の種類を示す情報３２０と、該障害の種類毎に障害回数３３０と閾値情報３４０とが管理されている。
【００２２】
前述において、閉塞状態を示す閉塞情報３１０の値３１１は、その値が０の場合、論理パスが閉塞されていないことを示し、その値が１の場合、論理パスが閉塞されていることを示している。また、障害の種類として、データ転送の異常（データ転送時のデータ化けの発生等）であるインタフェース障害３２１とタイムアウト障害３２２とが管理されており、それぞれの障害回数と閾値とが管理される。インタフェース障害及びタイムアウト障害の障害回数の初期値３３１、３３２はいずれも０とし、障害の発生毎にカウントアップされていく。閾値は、その障害回数がその閾値に達したときに、論理パスを閉塞することとして管理者等のユーザにより設定される値であり、図示の障害情報３００のインタフェース障害の閾値３４１には２が設定され、タイムアウト障害の閾値３４２には１が設定されているものとして示している。
【００２３】
図４はドライバプログラム１７０が物理パスの障害を検知してから、論理ＩＤに対応した論理パスを閉塞するまでの処理動作を説明するフローチャートであり、次に、これについて説明する。ここで説明する処理の例は、図１に示す論理区画＃１（１２０）上のＯＳ＃１（１３０）からの論理パス１９０を経由したＩ／Ｏ要求において、インタフェース障害が検出され、続けてタイムアウト障害が検出されたとした場合の例である。
【００２４】
（１）物理パスで障害が発生したことを検知したドライバプログラム１７０は、その障害が、どの論理パスを経由したＩ／Ｏ要求で検出したかを判別する。ここでは、論理区画＃１（１２０）上のＯＳ＃１（１３０）からの論理パス１９０を経由したＩ／Ｏ要求であると判断したとする（ステップ４００、４１０、４２０）。
【００２５】
（２）次に、ドライバプログラム１７０は、障害が検知された論理パス１９０を経由したＩ／Ｏ要求の障害の種類がインタフェース障害であるか、タイムアウト障害であるかを判別する（ステップ４４０、４５０、４５１）。
【００２６】
（３）ステップ４４０で判別した障害がインタフェース障害であった場合、ドライバプログラム１７０は、論理パス１９０に対応する障害情報３００の論理ＩＤ（＝論理ＩＤ＃Ａ）及びインタフェース障害に対応する障害回数情報３３１を、０から１にカウントアップする（ステップ４６０）。
【００２７】
（４）次に、ドライバプログラム１７０は、更新後の障害回数情報３３１が、閾値３４１に達したか否かを確認し、障害回数情報３３１が閾値３４１に達していなければ、ここでの処理を終了する。図３に示す障害情報３００の例では、障害回数３３１＝１、閾値３４１＝２であるため、閾値に達していないと判断して処理を終了する。一方、障害回数情報３３１が閾値３４１に達していた場合、閉塞状態を示す情報の値３１１を０から１に更新すると共に、論理ＩＤ＃Ａに対応する論理パス１９０を閉塞する処理を実行する（ステップ４７０、４８０）。
【００２８】
（５）また、ステップ４４０で判別した障害がタイムアウト障害であった場合、ドライバプログラム１７０は、論理パス１９０に対応する障害情報３００の論理ＩＤ（＝論理ＩＤ＃Ａ）及びタイムアウト障害に対応する障害回数情報３３２を、０から１にカウントアップする（ステップ４６１）。
【００２９】
（４）次に、ドライバプログラム１７０は、更新後の障害回数情報３３２が、閾値３４２に達したか否かを確認し、障害回数情報３３２が閾値３４２に達していなければ、ここでの処理を終了する。図３に示す障害情報３００の例では、障害回数３３２＝１、閾値３４２＝１であり、閾値に達していると判断して閉塞状態を示す情報の値３１１を０から１に更新すると共に、論理ＩＤ＃Ａに対応する論理パス１９０を閉塞する処理を実行する。一方、障害回数情報３３２が閾値３４１に達していなかった場合、ここでの処理を終了する（ステップ４７１、４８０）。
【００３０】
ドライバプログラム１７０は、前述した処理の後、論理パス１９０を経由する論理区画＃１（１２０）からのＩ／Ｏ要求の全てに対してエラーを応答することにより、論理パス１９０で発生する障害が、物理パスを共有する他の論理区画＃２（１２１）及び論理区画＃３（１２２）に与える影響を抑えることができる。
【００３１】
なお、前述で説明した処理の例は、ステップ４１０において論理パス１９０を経由したＩ／Ｏ要求で障害を検出したものとして説明したが、ステップ４１０において論理パス１９１あるいは論理パス１９２を経由したＩ／Ｏ要求で障害を検出した場合も、ステップ４４０以降と同一の処理を行うことにより論理パスの閉塞を行うことが可能となる。
【００３２】
前述した本発明の実施形態での処理は、プログラムにより構成し、本発明が備えるＣＰＵに実行させることができ、また、それらのプログラムは、ＦＤ、ＣＤＲＯＭ、ＤＶＤ等の記録媒体に格納して提供することができ、また、ネットワークを介してディジタル情報により提供することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施形態による仮想計算機システムの構成を示すブロック図である。
【図２】ＲＡＩＤ装置内に備えられるＬＵＮマッピングテーブルの構成を示す図である。
【図３】ドライバプログラムが管理する障害情報の構成を示す図である。
【図４】ドライバプログラムが物理パスの障害を検知してから、論理ＩＤに対応した論理パスを閉塞するまでの処理動作を説明するフローチャートである。
【符号の説明】
【００３４】
１００  システム装置
１１０  論理区画制御プログラム
１１１  ホストＯＳ
１２０〜１２２  論理区画
１３０〜１３２  オペレーティングシステム（ＯＳ）
１４０  ホストバスアダプタ（ＨＢＡ）
１５０  ＲＡＩＤ装置
１６０〜１６２  論理ＩＤ
１７０  ホストバスアダプタ用ドライバプログラム
１７１  障害情報
１８０〜１８２  ＬＵ
１９０〜１９２  論理パス
３００〜３０２  障害情報
【図１】
2009294758.tif 000003
【図２】
2009294758.tif 000004
【図３】
2009294758.tif 000005
【図４】
2009294758.tif 000006