(57)【要約】【課題】複数のＣＰＵブレードがＩ／Ｏモジュールを共有する情報処理装置において、ホットプラグ処理に必要な判断を自動的に行い、ユーザによる処理の誤りなくすこと。【解決手段】Ｉ／Ｏモジュール３０がホットプラグ処理に対応する場合に、搭載されている全てのＣＰＵブレード２０，２１，２２上のＯＳがホットプラグ処理に対応していれば、Ｉ／Ｏモジュール３０のホットプラグ処理を実施可能とする。また一部のＣＰＵブレード上のＯＳがホットプラグ処理に対応していなくとも、その電源がＯＦＦ状態であれば、ホットプラグ処理を実施可能とする。さらに、一部のＣＰＵブレードが搭載されていなくとも、他の搭載されたＣＰＵブレードが上記条件を満足すれば、ホットプラグ処理を実施可能とする。【選択図】図１
2007094470.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算処理手段を搭載可能であり、各演算処理手段に対しＩ／Ｏバスを介してＩ／Ｏモジュールを共有する情報処理装置におけるホットプラグ処理方法において、
上記Ｉ／Ｏモジュールがホットプラグ処理に対応する場合に、
上記搭載されている各演算処理手段に関し、該演算処理手段上のＯＳがホットプラグ処理に対応するか否かの情報と、該演算処理手段の電源ＯＮ／ＯＦＦ状態の情報とを取得し、
上記全ての演算処理手段上のＯＳがホットプラグ処理に対応する場合、または、一部の演算処理手段上のＯＳがホットプラグ処理に対応せず、かつ該演算処理手段の電源がＯＦＦ状態の場合、
上記ホットプラグ処理に対応するＯＳを搭載した演算処理手段からのＩ／Ｏバスに対するホットプラグ処理を実行することを特徴とするホットプラグ処理方法。
【請求項２】
請求項１記載のホットプラグ処理方法において、
前記Ｉ／ＯモジュールがＩ／Ｏバスを介して共有可能な演算処理手段が当該情報処理装置に搭載されているか否かの情報を取得し、
共有可能な演算処理手段の一部が搭載されていない場合、
前記搭載されている演算処理手段の中で、前記ホットプラグ処理に対応するＯＳを搭載した演算処理手段からのＩ／Ｏバスに対するホットプラグ処理を実行することを特徴とするホットプラグ処理方法。
【請求項３】
複数の演算処理手段を搭載可能であり、各演算処理手段に対しＩ／Ｏバスを介してＩ／Ｏモジュールを共有する情報処理装置におけるホットプラグ処理方法において、
上記Ｉ／Ｏモジュールがホットプラグ処理に対応する場合に、
上記搭載されている各演算処理手段に関し、該演算処理手段上のＯＳがホットプラグ処理に対応するか否かの情報と、該演算処理手段の電源ＯＮ／ＯＦＦ状態の情報とを取得し、
上記演算処理手段の少なくとも一部の演算処理手段上のＯＳがホットプラグ処理に対応せず、かつ該演算処理手段の電源がＯＮ状態の場合、
上記いずれの演算処理手段からのＩ／Ｏバスに対してもホットプラグ処理を実行しないことを特徴とするホットプラグ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置を構成する機能モジュールの管理方式に係り、特に、複数のブレードサーバが共有するＩ／Ｏモジュールのホットプラグ処理を好適に行う技術に関する。
【背景技術】
【０００２】
近年プロセッサの高性能化や部品の小型化が進み、管理容易性や部品交換の容易性に優れたブレード形状、あるいはモジュール形状の情報処理装置が普及しつつある。また、これら情報処理装置では、ブレード間通信や筐体外部との通信のため、コンピュータの電源を入れたままパーツやケーブルを挿抜するホットプラグ処理が容易なネットワークインタフェースが一般的に使用されている。このインタフェースとしては、データ転送性能の高いＰＣＩ＿Ｅｘｐｒｅｓｓ（登録商標）などがあげられる（非特許文献１参照）。
【０００３】
ＰＣＩ＿Ｅｘｐｒｅｓｓ（登録商標）は汎用的なバスであり、ネットワークインタフェースやファイバチャンネルコントローラといった、さまざまなデバイスが接続可能である。一方、デバイスのホットプラグ処理にあたっては、ＯＳ（オペレーティングシステム）上のデバイスドライバを初期化したり、停止するなどの処理が必要となる。ＰＣサーバにおいては、ホットプラグ処理の一般的な方式としてＡＣＰＩ規格（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）が知られている（非特許文献２参照）。
【０００４】
一方、複数の計算機で構成された計算機システムにおいて、各計算機がＩ／Ｏデバイス（Ｉ／Ｏモジュール）を共有する方式は、特許文献１などに開示される。
【０００５】
【特許文献１】特開２００４−２５２５９１号公報
【非特許文献１】ＰＣＩＳＩＧ、“ＰＣＩ＿Ｅｘｐｒｅｓｓ（ＴＭ）  Ｂａｓｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｖｉｓｉｏｎ  １．０ａ”、２００３年４月１５日
【非特許文献２】Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄ／Ｉｎｔｅｌ／Ｍｉｃｒｏｓｏｆｔ／Ｐｈｏｅｎｉｘ／Ｔｏｓｈｉｂａ、“Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”、２００３年４月１５日
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のホットプラグ処理は、搭載ＯＳまたはドライバが運用状態でのＩ／Ｏリソースの判別およびホットプラグ手順を制御する方式であった。これに対し、複数のＣＰＵブレードから複数のＩ／Ｏリソースを集約したＩ／Ｏモジュールを共有する形態では、実際には一部のＣＰＵブレードが電源ＯＦＦ状態にある場合や、搭載ＯＳがホットプラグに対応していない場合も存在する。このような場合、Ｉ／Ｏモジュール単位で一斉にホットプラグ処理を実行できない。また、共有されたＩ／Ｏモジュールの挿抜には、該当Ｉ／Ｏモジュールを共有する複数のＣＰＵブレードの動作状態を考慮して挿抜の可否を判断せねばならない。
【０００７】
このように、Ｉ／Ｏモジュールを共有する形態では、各ＣＰＵブレードの状態をユーザが調べ、処理可能かどうかを判断せねばならずユーザの負担が大きい。多数のＣＰＵブレードを搭載したシステムでは、ユーザの誤判断によりシステムがダウンする恐れもあった。
【０００８】
本発明の目的は、複数のＣＰＵブレードがＩ／Ｏモジュールを共有する形態において、ホットプラグ処理に必要な判断を自動的に行い、ユーザによる処理の誤りなくすことにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明のホットプラグ処理方法は、判定因子として、（１）Ｉ／Ｏモジュールがホットプラグ処理に対応するか、（２）ＣＰＵブレード（演算処理手段）が装置に搭載されているか、（３）ＣＰＵブレード上のＯＳ（オペレーティングシステム）がホットプラグ処理に対応しているか、および（４）ＣＰＵブレードの電源がＯＮ／ＯＦＦいずれの状態か、の各情報に基づき、Ｉ／Ｏモジュール単位のホットプラグ処理の実施可否を判定する。
【００１０】
Ｉ／Ｏモジュールがホットプラグ処理に対応する場合に、搭載されている全てのＣＰＵブレード上のＯＳがホットプラグ処理に対応していれば、Ｉ／Ｏモジュールのホットプラグ処理を実施可能とする。また一部のＣＰＵブレード上のＯＳがホットプラグ処理に対応していなくとも、その電源がＯＦＦ状態であれば、ホットプラグ処理を実施可能とする。さらに、共有可能な一部のＣＰＵブレードが搭載されていなくとも、他の搭載されたＣＰＵブレードが上記条件を満足すれば、ホットプラグ処理を実施可能とする。
【００１１】
一方Ｉ／Ｏモジュールがホットプラグ処理に対応しない場合は、ホットプラグ処理を実施不可能とする。また、一部のＣＰＵブレード上のＯＳがホットプラグ処理に対応せず、その電源がＯＮ状態であれば、ホットプラグ処理を実施不可能とする。
【発明の効果】
【００１２】
本発明によれば、Ｉ／Ｏモジュールのホットプラグ処理において、ユーザの誤操作を防止し、ユーザの管理を容易にする効果がある。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【００１４】
図１は、本発明による情報処理装置の一実施例を示す構成図である。情報処理装置１０は、複数（ここでは３個）のＣＰＵブレード（演算処理手段）２０，２１，２２を搭載可能であり、ここでは、その全てを搭載した状態を示す。さらに、複数（ここでは３個）のＩ／Ｏモジュール３０，３１，３２と、管理モジュール４０、バックプレーン５０を備えて構成される。各ＣＰＵブレード２０，２１，２２とＩ／Ｏモジュール３０間は、それぞれＩ／Ｏバス２００，２１０，２２０を介して接続される。また、各ＣＰＵブレード２０，２１，２２とＩ／Ｏモジュール３１間は、それぞれＩ／Ｏバス２０１，２１１，２２１で接続される。また、各ＣＰＵブレード２０，２１，２２とＩ／Ｏモジュール３２間は、それぞれＩ／Ｏバス２０２，２１２，２２２で接続される。このように、各Ｉ／Ｏモジュールは複数のＣＰＵブレードで共有する構成としている。ここでＩ／Ｏモジュール３０と３１はモジュール挿抜交換時に代用とするものであり、Ｉ／Ｏモジュール３３は他の目的に用いている。また各Ｉ／Ｏバスは、ホットプラグ処理をサポートしている（電気的に活線挿抜が可能な）バスであり、例えばＰＣＩ＿Ｅｘｐｒｅｓｓ（登録商標）などを用いる。
【００１５】
ＣＰＵブレード２０上には、ＣＰＵ１１０，メモリ（ＭＥＭ）１２０，チップセット１３０，割り込みコントローラ（ＩＮＴ）１４０，マネジメントコントローラ（ＢＭＣ）１５０が搭載される。他のＣＰＵブレード２１，２２も同一の構成である。各ＣＰＵブレード上のマネジメントコントローラ１５０，１５１，１５２と、管理モジュール４０間は、ネットワークインタフェースなどの双方向インタフェース４００，４０１，４０２により接続される。
【００１６】
Ｉ／Ｏモジュール３０上には、各ＣＰＵブレードのファイバチャンネル制御ＬＳＩ（ＦＣ）８０１，８０２，８０３と、これらの出力を切り替えて外部スイッチ９０に出力するファイバチャンネルスイッチ（ＳＷ）３０９を搭載する。Ｉ／Ｏモジュール３１も同様の構成である。Ｉ／Ｏモジュール３２上には、Ｉ／Ｏスロット３２０，３２１，３２２を設け、これらのスロットには、高速ネットワークカード（ＰＣＩ）８２０，８２１，８２２が搭載される。
【００１７】
さらに各Ｉ／Ｏモジュール上には、Ｉ／Ｏモジュール種別保持手段（ＩＤ）３０８，３１８，３２８が搭載される。これらの保持手段には、当該Ｉ／Ｏモジュールが回路的にホットプラグ機能をサポートするか否かを示す情報（論理値「１」＝サポート，「０」＝非サポート）を保持する。これらの情報は、バス４２１を介して管理モジュール４０へ伝えられる。
【００１８】
ここで、例えばＩ／Ｏモジュール３０には、ＣＰＵブレード２０のＩ／ＯリソースであるＬＳＩ８０１、ＣＰＵブレード２１のＩ／ＯリソースであるＬＳＩ８０２、及びＣＰＵブレード２２のＩ／ＯリソースであるＬＳＩ８０３を搭載している。このように、Ｉ／Ｏモジュール３０を複数のＣＰＵブレードで共有することにより、Ｉ／Ｏモジュール３０上のオンボード電源（Ｐｏｗｅｒ）３０６といった部品を共通化できるため、部品数を低減できる。また、スイッチ３０９，ＬＳＩ８０１，８０２，８０３といった複数の部品を、１つのモジュール３０に実装することで、高密度実装を可能とし、装置の管理や故障発生時における部品交換を容易化している。
【００１９】
管理モジュール４０は、各ＣＰＵブレードと各Ｉ／Ｏモジュールの状態を管理し、ホットプラグ処理に関する演算、判定、制御、メッセージ表示などを行う。また外部のユーザインタフェース８０と接続し、ユーザからのホットプラグ指示を入力するとともに、ホットプラグ処理の進行状態、メッセージなどをユーザに通知する。ユーザインタフェース８０は、ｔｅｌｎｅｔなどのテキスト表示の端末が好ましいが、他に、プッシュボタンとＬＥＤや、グラフィカルなインタフェースでも良い。
【００２０】
以下、本実施例におけるホットプラグ処理を詳細に説明するが、初めにその概要を図４のフローチャートで説明する。
【００２１】
本実施例では、判定因子として、（１）Ｉ／Ｏモジュールがホットプラグ処理に対応するか、（２）ＣＰＵブレードが装置に搭載されているか、（３）ＣＰＵブレード上のＯＳ（オペレーティングシステム）がホットプラグ処理に対応しているか、および（４）ＣＰＵブレードの電源状態はＯＮ／ＯＦＦいずれか、の各情報に基づき、Ｉ／Ｏモジュールのホットプラグ処理の実施可否を判定する。
【００２２】
Ｉ／Ｏモジュールがホットプラグ処理に対応する場合に（Ｓ５０２でＹｅｓ）、ＣＰＵブレードが搭載され（Ｓ５０３でＹｅｓ）、全てのＣＰＵブレード上のＯＳがホットプラグ処理に対応していれば（Ｓ５０４でＹｅｓ）、Ｉ／Ｏモジュールのホットプラグ処理を実施可能とする（Ｓ５０７）。また一部のＣＰＵブレード上のＯＳがホットプラグ処理に対応していなくとも（Ｓ５０４でＮｏ）、その電源がＯＦＦ状態であれば（Ｓ５０５でＮｏ）、ホットプラグ処理を実施可能とする（Ｓ５０７）。さらに、一部のＣＰＵブレードが搭載されていなくとも（Ｓ５０３でＮｏ）、他の搭載されたＣＰＵブレードが上記条件を満足すれば、ホットプラグ処理を実施可能とする（Ｓ５０７）。ホットプラグ処理を実施後、Ｉ／Ｏモジュールの挿抜を行う（Ｓ５０８）。
【００２３】
一方Ｉ／Ｏモジュールがホットプラグ処理に対応しない場合（Ｓ５０２でＮｏ）は、ホットプラグ処理を実施不可能とする（Ｓ５０９）。また、一部のＣＰＵブレード上のＯＳがホットプラグ処理に対応せず（Ｓ５０４でＮｏ）、その電源がＯＮ状態であれば（Ｓ５０５でＹｅｓ）、ホットプラグ処理を実施不可能とする（Ｓ５０９）。
【００２４】
図２と図３は、本実施例によるホットプラグ処理の制御動作を説明する図である。この動作は管理モジュール４０が主体で実行し、そのためにＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などの論理回路、または処理実行用のプログラムを備える。以下の説明は、図１におけるＩ／Ｏモジュール３０を取り外す場合を例に、ホットプラグ処理の制御を述べる。
【００２５】
図２は、ホットプラグ処理の可否判断までのプロセスを示す。管理モジュール４０内には、ホットプラグ管理状態保持手段とＣＰＵブレードステータス保持手段とを設ける。
【００２６】
ホットプラグ管理状態保持手段（Ｒｅｇ）４１０，４１１，４１２は、各ＣＰＵブレード２０，２１，２２のホットプラグ対応状態の情報を保持する。これらの情報は、ユーザが予めユーザインタフェース８０を介して設定するものとする。状態の種類として、状態値「Ｓ１０」はＣＰＵブレード上のＯＳがホットプラグをサポートする状態、「Ｓ１１」はＣＰＵブレード上のＯＳがホットプラグをサポートしない状態、「Ｓ１２」はＣＰＵブレードが未搭載の状態、あるいはユーザにより状態が未設定であることを示す。本実施例では、Ｉ／Ｏモジュール３０は３個のＣＰＵブレードに共有される構成であり、各ＣＰＵブレードが搭載されているかを知る必要がある。なお、これらの保持手段は各ＣＰＵブレード上のマネジメントコントローラ１５０〜１５２に設けてもよい。
【００２７】
ここでリセット手段（ＲＳＴ）４４０は、搭載状態信号４１００により、ＣＰＵブレード２０が搭載されているかどうかを判別する。未搭載の場合は、ホットプラグ管理状態保持手段４１０の状態値を、ＣＰＵブレードが未搭載の状態、あるいはユーザにより状態が未設定であることを示す「Ｓ１２」とする。同様にリセット手段４４１，４４２は、それぞれＣＰＵブレード２１，２２の搭載状態を判別し、未搭載の場合はそれぞれ保持手段４１１，４１２の値を「Ｓ１２」とする。
【００２８】
一方ＣＰＵブレードステータス保持手段（Ｒｅｇ）４２０，４２１，４２２は、各ＣＰＵブレード２０，２１，２２の電源状態（ＯＮ／ＯＦＦ）と搭載状態の情報を保持する。状態の種類として、「Ｓ２０」は電源ＯＦＦ状態を示し、「Ｓ２１」は電源ＯＮ状態を示し、「Ｓ２２」は対象とするＣＰＵブレードが存在しない状態を示す。これらの情報は、マネジメントコントローラ１５０がＣＰＵブレード２０の電源状態を検出し、ＬＡＮケーブルなどの通信手段４００を介して電源状態信号４２０１として管理モジュール４０に伝達する。また、ＣＰＵブレード２０の有無は、搭載状態信号４１００により管理モジュール４０に伝達する。電源状態の検出には、信号線をバックプレーン５０上でプルアップし、また対応する信号を、ＣＰＵブレード２０側ではＧＮＤに接続することで判別する方式を用いても良い。検出手段（Ｌｏｇｉｃ）４３０には、搭載状態信号４１００と、電源状態信号４２０１を入力し、検出結果４３０１を保持手段４２０へ出力する。同様にしてＣＰＵブレード２１の検出結果４３１１は保持手段４２１へ、ＣＰＵブレード２２の検出結果４３２１は保持手段４２２へ出力する。
【００２９】
演算手段７９０は、ホットプラグ管理状態保持手段４１０の状態値、およびＣＰＵブレードステータス保持手段４２０の状態値を入力し、図５の真理値に示す規則に従い演算し、３通りの判定結果７９０１，７９０２，７９０３を出力する。
【００３０】
まず判定結果７９０１は、ＣＰＵブレード２０のホットプラグ対応可否と処理継続可否を示すものである。判定結果７９０１＝「Ｓ００」はＣＰＵブレードがホットプラグ対応可能であることを示し、「Ｓ０１」はＣＰＵブレードがホットプラグ非対応であるが、電気的にＯＦＦ状態であるため処理継続が可能であることを示し、「Ｓ０２」はＣＰＵブレードがホットプラグ非対応であり、電気的にＯＮ状態であるため処理継続が不可能であることを示し、「Ｓ０３」はＣＰＵブレードのホットプラグ対応状態が不明であり、処理継続が不可能であることを示す。ここで、ＣＰＵブレードが未搭載の場合、判定結果７９０１＝「Ｓ００」とする。
【００３１】
また判定結果７９０２は、ホットプラグ処理要求に対し、ＣＰＵブレード２０上のマネジメントコントローラ１５０により処理可能かどうかを示すものである。判定結果７９０２＝「１」は、マネジメントコントローラ１５０により処理可能であることを示し、判定結果７９０２＝「０」は、マネジメントコントローラ１５０により処理不可能であることを示す。
【００３２】
また判定結果７９０３は、Ｉ／Ｏバス２００の接続、切断の可否を示すものである。判定結果７９０３＝「１」は、ＣＰＵブレードが電源ＯＦＦ状態であり、かつホットプラグ管理状態保持手段４１０に設定が実施されており、ＣＰＵブレード上のＯＳのホットプラグ対応状態によらず、Ｉ／Ｏバス２００の接続、切断が可能であることを示し、判定結果７９０３＝「０」は、電源ＯＮ状態またはホットプラグ対応不明によりＩ／Ｏバス２００の接続、切断が可能であることを示す。
【００３３】
同様に演算手段７９１は、ＣＰＵブレード２１およびＩ／Ｏバス２１０に関する判定結果７９１１〜７９１３を出力し、また演算手段７９２は、ＣＰＵブレード２２およびＩ／Ｏバス２２０に関する判定結果７９２１〜７９２３を出力する。
【００３４】
図３は、ホットプラグ処理を実行する際のプロセスを示す。ここでは、Ｉ／Ｏモジュール３０のホットプラグ処理を例に説明する。
【００３５】
演算手段（Ｌｏｇｉｃ）７８０には、上記演算手段７９０，７９１，７９２からの判定結果７９０１，７９１１，７９２１とともに、Ｉ／Ｏモジュール情報（ＩＤ）３０８と、ユーザからのホットプラグリクエスト（処理要求）８９１を入力する。そして、図６の真理値表に従って、判定結果７８０１及びユーザメッセージ識別子７８０２を出力する。図６で、演算手段の出力が、例えば「Ｓ００  ｏｒ  Ｓ０１」とあるのは、対応する値が「Ｓ００」または「Ｓ０１」のいずれの値であっても良いことを示す。
【００３６】
判定結果７８０１は、Ｉ／Ｏモジュール３０単位としてのホットプラグ処理の実施が可能かどうかを示すものである。入力する全ての判定結果７９０１，７９１１，７９２１が「Ｓ００」（全てのＣＰＵブレードがホットプラグ対応可能）である場合（＃１）には、判定結果７８０１＝「１」とし、Ｉ／Ｏモジュール３０がホットプラグ処理の実施が可能であることを示す。それ以外の場合は判定結果７８０１＝「０」とし、Ｉ／Ｏモジュール３０のホットプラグ処理はユーザの確認なしでは実施できないことを示す。すなわち、判定結果７９０１，７９１１，７９２１の一部または全部が「Ｓ０１」（ＣＰＵブレードがホットプラグ非対応であり、電気的にＯＮ状態）である場合（＃２〜４）は、判定結果７８０１＝「０」とするが、ユーザの承諾があれば、処理を実施する。また、Ｉ／Ｏモジュール情報が「０」（Ｉ／Ｏモジュールが回路的にホットプラグ機能をサポートしない）の場合は、判定結果７８０１＝「０」とする。
【００３７】
またユーザメッセージ識別子７８０２は、ユーザへ伝えるメッセージの種類を示す。図７には、この場合のメッセージの例として、識別子「８１１」から「８１５」に対応したメッセージを示す。メッセージ生成手段（Ｕｓｅｒ  Ｍｅｓｓａｇｅ）７８３は、ユーザメッセージ識別子７８０２に対応したメッセージ８９２を生成し、ユーザインタフェース８０に通知する。これに対しユーザは、ユーザインタフェース８０から承諾（処理要求）するなどの応答８９３を送る。
【００３８】
判定手段（Ｓｔａｒｔ  Ｈｏｔ  Ｐｌｕｇ）７８２は、判定結果７８０１とユーザメッセージ識別子７８０２を入力し、処理指令７８２１を出力する。入力する判定結果７８０１＝「１」の場合には、ユーザメッセージ識別子７８０２の値によらず、出力７８２１をホットプラグ処理開始を示す「１」とする。また、判定結果７８０１＝「０」の場合には、ユーザの判断に従う。すなわち、ユーザメッセージ識別子７８０２が、ユーザの確認を示す「８１２」であり、かつそれに対するユーザからの回答８９３が、「承諾」を意味する「１」の場合には、出力７８２１をホットプラグ処理開始を示す「１」とする。
【００３９】
メッセージ送出手段（Ｓｅｎｄ  ＭＳＧ）７７０は、処理開始指令７８２１を受けると、前記判定結果７９０２を参照し、ＣＰＵブレード２０に対するホットプラグ要求メッセージ４００１を、バス４００を経由してマネジメントコントローラ（ＢＭＣ）１５０に送出する。このときの条件は判定結果７９０２＝「１」であり、対象となるＣＰＵブレード２０が搭載されかつ電源投入状態であって、マネジメントコントローラ１５０により処理可能と判断した場合である。
【００４０】
同様にメッセージ送出手段７７１は、ＣＰＵブレード２１に対するホットプラグ要求メッセージ４０１１をマネジメントコントローラ１５１に送出する。メッセージ送出手段７７２は、ＣＰＵブレード２２に対するホットプラグ要求メッセージ４０２１をマネジメントコントローラ１５２に送出する。
【００４１】
要求メッセージ４００１を受信したマネジメントコントローラ（ＢＭＣ）１５０は、ホットプラグ処理を開始する。まずホットプラグイベントに相当した割り込み要因１５０１を、割り込みコントローラ（ＩＮＴ）１４０に送出し、結果として割り込み１４０１がＣＰＵ１１０に出力される。ＣＰＵ１１０は割り込み１４０１を受信し、ＣＰＵ１１０上で動作するＯＳが、マネジメントコントローラ１５０に対して、バス１３０１を介して要因判定を行う。マネジメントコントローラ１５０は、要求メッセージ４００１に対応して、Ｉ／Ｏモジュール３０に接続されたバス２００のホットプラグ処理を要求する。
【００４２】
これらの手順は、要求メッセージ４００１に対応して、図８に示すようなテーブルを作成し、マネジメントコントローラ１５０がこれを管理する方式でも良い。ＯＳは、バス２００に対応したファイバチャンネル制御ＬＳＩ（ＦＣ）８０１のデバイスドライバのアンロード、またはＬＳＩ初期化及びドライバロードを実施する。そして、その結果をバス１３０１によりマネジメントコントローラ１５０に出力する。マネジメントコントローラ１５０は、ホットプラグ処理が正常終了したか、異常終了したかを、メッセージ４００２として、管理モジュール４０に送信する。
【００４３】
同様に、マネジメントコントローラ１５１は、要求メッセージ４０１１を受信すると、Ｉ／Ｏモジュール３０に接続されたバス２１０のホットプラグ処理を要求する。ＯＳは、バス２１０に対応したファイバチャンネル制御ＬＳＩ８０２のデバイスドライバのアンロード、またはＬＳＩ初期化及びドライバロードを実施する。マネジメントコントローラ１５１は、その処理結果をメッセージ４０１２として、管理モジュール４０に送信する。
【００４４】
マネジメントコントローラ１５２は、要求メッセージ４０２１を受信すると、Ｉ／Ｏモジュール３０に接続されたバス２２０のホットプラグ処理を要求する。ＯＳは、バス２２０に対応したファイバチャンネル制御ＬＳＩ８０３のデバイスドライバのアンロード、またはＬＳＩ初期化及びドライバロードを実施する。マネジメントコントローラ１５２は、その処理結果をメッセージ４０２２として、管理モジュール４０に送信する。
【００４５】
ここでＣＰＵブレード内のホットプラグ処理は、例えばＡＣＰＩ仕様（前記非特許文献２に記載）のような一般的な方式を用いる。ＣＰＵブレード２０，２１，２２が電源ＯＦＦ状態、またはホットプラグ未対応ＯＳを搭載している場合には、ＯＳによるホットプラグ処理は実行されず、結果が未定である。これらの場合、マネジメントコントローラ１５０，１５１，１５２は、それぞれ割り込み要因１５０１，１５１１，１５２１を出力しない方式としても良い。
【００４６】
演算手段７６０は、入力するホットプラグ処理結果４００２と前記判定結果７９０３（Ｉ／Ｏバス２００の接続、切断の可否）を参照して判定結果７６０１を出力する。図９は、その判定に利用する真理値表である。判定結果７６０１＝「１」は正常終了したことを、「０」は異常終了したことを、「２」は不明であることを示す。すなわち、ＣＰＵブレード２０が電源投入状態であり、かつ、搭載されるＯＳがホットプラグ対応の場合に、入力した処理結果４００２を有効として出力する。また、ＣＰＵブレード２０が電源ＯＦＦの場合、または存在しない場合は、処理結果４００２によらず、処理正常を示す「１」を出力する。
【００４７】
図１０は、演算手段７６０の判定処理を示すフローチャートである。Ｓ６０１で処理を開始し、Ｓ６０２では出力７６０１の初期値として「２」（＝不明）を設定する。Ｓ６０３で入力７９０３が「１」の場合には、Ｓ６０６にて出力７６０１＝「１」（正常終了）を設定する。Ｓ６０３で入力７９０３が「０」の場合には、続くＳ６０４において入力４００２を判定する。入力４００２が、ＯＳによるホットプラグ処理正常終了を示す「１」の場合には、Ｓ６０７にて出力７６０１＝「１」（正常終了）を設定する。続くＳ６０５において、入力４００２が、ＯＳによるホットプラグ処理異常終了を示す「０」の場合には、Ｓ６０８にて出力７６０１＝「０」（異常終了）を設定する。入力４００２が取得できない場合には、出力７６０１＝「２」とする。
【００４８】
同様に演算手段７６１は、ＣＰＵブレード２１に関する処理判定結果７６１１を出力する。演算手段７６２は、ＣＰＵブレード２２に関する処理判定結果７６２１を出力する。
【００４９】
計時手段（Ｔｉｍｅｒ）７７９は、判定結果７８２１がホットプラグ処理開始を示す「１」に切り替わった時点から、一定時間Ｔ１をカウントし、満了時に出力信号７７９１を「０」から「１」とする。Ｔ１は、ＯＳによるホットプラグ処理を完了するのに十分な時間とし、２０秒〜１分程度の値が適切である。
【００５０】
演算手段７５０は、各演算手段７６０，７６１，７６２の判定結果７６０１，７６１１，７６２１、及び前記計時手段７７９の出力７７９１を入力し、図１１の真理値表に従いメッセージ識別子７５０１を出力する。この判定は、計時手段７７９の出力７７９１＝「０」の期間（時間Ｔ１以内）で有効とする。図１１中の、例えば「０  ｏｒ  １」は、対応する値が「０」または「１」のいずれの値であっても良いことを示す。このように、判定結果７６０１，７６１１，７６２１が全て「１」（正常終了）の場合は、ホットプラグ処理が全てのＣＰＵブレードについて正常に終了した場合であり、メッセージ識別子７５０１として正常終了を示す識別子「８２１」を出力する。それ以外の場合はいずれかのＣＰＵブレードが異常終了または状態不明であり、メッセージ識別子７５０１として異常終了を示す識別子「８２２」を出力する。これらのメッセージの内容の例を、図７に示す。
【００５１】
図１２は演算手段７５０の判定処理を示すフローチャートである。Ｓ６１１で処理を開始し、Ｓ６１２では、出力７５０１の初期値として異常終了したことを示す識別子＝「８２２」を設定する。Ｓ６１３により、計時手段７７９の出力７７９１＝「０」の条件（時間Ｔ１の期間）で判定処理を繰り返す。Ｓ６１４において、出力７６０１，７６０２，７６０３が全て「１」（正常終了）の場合には、Ｓ６１８にて、ホットプラグ処理が正常に完了したことを示す識別子＝「８２１」を出力７５０１に設定し、判定を終了する。またＳ６１５，Ｓ６１６，Ｓ６１７では、それぞれ出力７６０１，７６０２，７６０３に「０」（異常終了）が含まれないかを判定する。いずれかに「０」が含まれると、Ｓ６１９に進み、識別子＝「８２２」として判定を終了する。時間Ｔ１内にホットプラグに対応する応答がなかった場合は、Ｓ６１３により判定ループが終了し、ホットプラグ処理が異常終了したことを示すメッセージ識別子「８２２」を出力する。
【００５２】
メッセージ生成手段７４１は、メッセージ識別子７５０１を受けて、図７に示す内容のメッセージ８９４を作成し、ユーザインタフェース８０に表示する。ホットプラグ処理が正常に完了したことを示すメッセージ（識別子８２１）の場合には、ユーザは、引き続いてＩ／Ｏモジュール３０を取り外しが可能である。異常終了を示す識別子８２２の場合には、Ｉ／Ｏモジュール３１の取り外しが不可能である。このように、ユーザは装置からのメッセージに従い、安全にＩ／Ｏモジュールを取り外しを行うことができる。
【００５３】
以上の説明では、Ｉ／Ｏモジュール３０の取り外しのためのホットプラグ処理について説明したが、他のＩ／Ｏモジュール３１，３２についても、全く同様の手順でホットプラグ処理を実行できる。
【００５４】
本実施例によれば、ホットプラグに対応したＯＳを搭載したＣＰＵブレードと、ホットプラグに非対応のＯＳを搭載したＣＰＵブレード、ホットプラグに対応したＩ／Ｏモジュールと、ホットプラグに非対応のＩ／Ｏモジュールなどを混載した情報処理装置において、各機能モジュールの管理が容易となり、ユーザがＩ／Ｏモジュールのホットプラグ処理の誤操作を防止し、ユーザの負担を軽減することができる。特に、複数のＣＰＵブレードが１つのＩ／Ｏモジュールを共有する構成において、Ｉ／Ｏモジュール単位でのホットプラグ処理を安全に実行できる。
【図面の簡単な説明】
【００５５】
【図１】本発明における情報処理装置の一実施例を示す構成図。
【図２】本実施例によるホットプラグ処理の制御動作を説明する図。
【図３】本実施例によるホットプラグ処理の制御動作を説明する図。
【図４】本実施例によるホットプラグ処理の概要を示すフローチャート。
【図５】演算手段７９０の判定処理を示す図。
【図６】演算手段７８０の判定処理を示す図。
【図７】メッセージ生成手段７８３、７４１のメッセージ内容の例を示す図。
【図８】バス４００，４０１，４０２上の通信メッセージとホットプラグ対象の関連を示す図。
【図９】演算手段７６０の判定処理を示す図。
【図１０】演算手段７６０の判定処理を示すフローチャート。
【図１１】演算手段７５０の判定処理を示す図。
【図１２】演算手段７５０の判定処理を示すフローチャート。
【符号の説明】
【００５６】
１０…情報処理装置、
２０，２１，２２…ＣＰＵブレード（演算処理手段）、
３０，３１，３２…Ｉ／Ｏモジュール、
４０…管理モジュール、
８０…ユーザインタフェース、
１１０，１１１，１１２…ＣＰＵ、
１５０，１５１，１５２…マネジメントコントローラ、
２００，２１０，２２０…Ｉ／Ｏバス、
８０１，８０２，８０３…ファイバチャンネル制御ＬＳＩ、
３０８…Ｉ／Ｏモジュール種別保持手段、
４００，４０１，４０２…双方向インタフェース、
４１０，４１１，４１２…ホットプラグ管理状態保持手段、
４２０，４２１，４２２…ＣＰＵブレードステータス保持手段。
【図１】
2007094470.tif 000003
【図２】
2007094470.tif 000004
【図３】
2007094470.tif 000005
【図４】
2007094470.tif 000006
【図５】
2007094470.tif 000007
【図６】
2007094470.tif 000008
【図７】
2007094470.tif 000009
【図８】
2007094470.tif 000010
【図９】
2007094470.tif 000011
【図１０】
2007094470.tif 000012
【図１１】
2007094470.tif 000013
【図１２】
2007094470.tif 000014