(57)【要約】【課題】Ｉ／Ｏデバイス本体を接続し直すことなく現用系から待機系に切り替えることのできる計算機を得る。【解決手段】本発明に係る計算機は、計算機モジュールとＩ／Ｏアダプタの間の接続経路を論理的に識別する識別子を、現用系計算機から待機系計算機に引き継ぐ。【選択図】図１
2011081462.tif 000002
【特許請求の範囲】
【請求項１】
演算装置を備えた複数の計算機モジュールと、
Ｉ／Ｏアダプタと、
前記計算機モジュールを接続するアップストリームポート及び前記Ｉ／Ｏアダプタを接続するダウンストリームポートを有するスイッチと、
ＰＣＩマネージャと
を備え、
前記スイッチは、
前記アップストリームポートと前記ダウンストリームポートとを論理的に接続する仮想スイッチを有し、
稼動状態にある計算機モジュールと第１の仮想スイッチとの間の接続経路を論理的に識別する第１の識別子及び前記第１の仮想スイッチと前記Ｉ／Ｏアダプタとの接続経路を論理的に識別する第２の識別子を保持し、
稼動状態にある前記計算機モジュールが非稼動状態に移行すると、前記非稼動状態を検出した前記ＰＣＩマネージャは、前記スイッチに対して前記識別子の更新指示を出し、
前記識別子の更新指示を受けた前記スイッチは、
待機状態にある計算機モジュールと第２の仮想スイッチとの接続経路を論理的に識別する第３の識別子に、前記第１の識別子を引き継ぎ、
前記第２の仮想スイッチと前記Ｉ／Ｏアダプタとの接続経路を識別する第４の識別子に、前記第２の識別子を引き継ぎ、
前記待機状態にある計算機モジュールは、前記識別子の引き継ぎ後に稼動状態に移行する
ことを特徴とする計算機装置。
【請求項２】
前記スイッチは、
前記アップストリームポートと前記ダウンストリームポートとを論理的に接続する仮想スイッチを生成する仮想スイッチ生成部を備え、
前記計算機モジュールと前記仮想スイッチとの間の接続経路を論理的に識別する識別子、及び前記仮想スイッチと前記Ｉ／Ｏアダプタとの接続経路を論理的に識別する識別子を、仮想ブリッジ管理情報として保持する、
ことを特徴とする請求項１記載の計算機装置。
【請求項３】
前記スイッチは、
前記アップストリームポートと前記ダウンストリームポートとの間の論理的な接続経路を論理的に識別するスイッチ識別子を、仮想スイッチ管理情報として保持する
ことを特徴とする請求項２記載の計算機装置。
【請求項４】
前記計算機モジュールの状態を管理する前記ＰＣＩマネージャは、
稼動状態にある前記計算機モジュールが非稼動状態に移行すると、
前記第１の識別子及び第２の識別子を、待機状態にある計算機モジュールから前記Ｉ／Ｏアダプタへの接続経路を論理的に識別する前記第３の識別子及び前記第４の識別子に引き継ぐように前記仮想ブリッジ管理情報及び前記仮想スイッチ管理情報の更新する更新指示を、前記スイッチに出力する
ことを特徴とする請求項１記載の計算機装置。
【請求項５】
請求項１記載の１以上の計算機装置を備えることを特徴とする計算機システム。
【請求項６】
更に、前記計算機モジュールが使用する通信装置を接続する１以上の第２スイッチを備え、
前記スイッチと前記第２スイッチを接続した
ことを特徴とする請求項５記載の計算機システム。
【請求項７】
前記第２スイッチは、
前記スイッチを接続するアップストリームポートと、
前記計算機モジュールが使用する通信装置を接続するダウンストリームポートと、
を備え、
前記スイッチが備えるダウンストリームポートと前記第２スイッチが備えるアップストリームポートとを接続した
ことを特徴とする請求項６記載の計算機システム。
【請求項８】
演算装置を備えた複数の計算機モジュールと、Ｉ／Ｏアダプタと、前記計算機モジュールを接続するアップストリームポート及び前記Ｉ／Ｏアダプタを接続するダウンストリームポートを有するスイッチと、ＰＣＩマネージャとを備える計算機装置におけるアダプタ承継方法であって、
前記スイッチは、
前記アップストリームポートと前記ダウンストリームポートとを論理的に接続し、
稼動状態にある計算機モジュールと第１の仮想スイッチとの間の接続経路を論理的に識別する第１の識別子及び前記第１の仮想スイッチと前記Ｉ／Ｏアダプタとの接続経路を論理的に識別する第２の識別子を保持し、
稼動状態にある前記計算機モジュールが非稼動状態に移行すると、
前記非稼動状態を検出した前記ＰＣＩマネージャは、前記スイッチに対して前記識別子の更新指示を出し、
前記識別子の更新指示を受けた前記スイッチは、
待機状態にある計算機モジュールと第２の仮想スイッチとの接続経路を論理的に識別する第３の識別子に、前記引き継いだ第１の識別子を引き継ぎ、
前記第２の仮想スイッチと前記Ｉ／Ｏアダプタとの接続経路を識別する第４の識別子に、前記第２の識別子を引き継ぎ
前記待機状態にある計算機モジュールは、前記識別子の引き継ぎ後に稼動状態に移行する
ことを特徴とするアダプタ承継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機装置、計算機システム、計算機装置のアダプタ承継方法に関するものである。
【背景技術】
【０００２】
近年、サーバの管理を容易にするために１つの装置に複数の計算機を搭載したブレードサーバが用いられるようになっている（例えば、特許文献１）。また、複数のプロセッサコアを持つマルチコア化によりＣＰＵ（Central Processing Unit）の処理性能が向上し、それに伴い効率的にＣＰＵを使用するため１つの計算機に複数の仮想的なサーバを稼動させる仮想サーバ技術が用いられるようになっている。仮想サーバ技術では、ハイパバイザと呼ばれるファームウェアによって、物理的なプロセッサやメモリを仮想化して計算機中に任意の数の論理的な区画（論理プロセッサ）を生成する手法などが用いられる。
【０００３】
計算機は、他の計算機とネットワーク通信を行ったり、ストレージ装置と接続したりするため、ＮＩＣ（Network Interface Card）やＦＣ−ＨＢＡ（Fiber Channel-Host Bus Adapter）等のＩ／Ｏアダプタを用いる。このとき、上記のように１つの計算機上で複数のサーバを稼動させると、相対的に計算機当りのＩ／Ｏアダプタ数が不足する。このような問題を補う技術として、複数の計算機と複数のＩ／ＯアダプタであるＰＣＩ（Peripheral Component Interconnect）デバイス、またはＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）デバイスとを接続可能とするマルチルートＰＣＩｅスイッチ技術が知られている。
【０００４】
マルチルートＰＣＩｅスイッチ技術では、１つの計算機に接続可能なＰＣＩｅデバイスの個数をスケーラブルに変えることが可能である（例えば、特許文献１、特許文献２等）。後者のマルチルートＩ／Ｏ仮想化技術では、１つのＰＣＩｅデバイスを共有することで仮想的にＰＣＩｅデバイスの数を増やすことが可能である。これらの技術を用いることで、仮想サーバを用いた場合のＩ／Ｏアダプタ数の不足を解消することができる。
【０００５】
一方、システムの可用性の向上のため、予備のシステムを動作状態のまま待機させるホットスタンバイ方式や、予備のシステムを停止状態で待機させるコールドスタンバイ方式によるシステムの冗長化が行われている。稼働状態にある計算機を現用系計算機、待機状態にある計算機を待機系計算機などと呼ぶ。
【０００６】
コールドスタンバイ方式は、ホットスタンバイ方式に比べて系切り替え時間が長いため、系切り替え時の計算機システムのダウンタイムが長くなってしまうが、高価なクラスタソフトウェアが不要なため、コストの観点から広く用いられている。
【０００７】
マルチルートＩ／Ｏ仮想化技術を採用したスイッチの例として、下記非特許文献１に、ＭＲ−ＩＯＶ  Ｓｗｉｔｃｈが記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許第７０５８７３８号
【特許文献２】米国特許出願公開第２００６／２４２３５３号明細書
【非特許文献】
【０００９】
【非特許文献１】ＰＣＩ−ＳＩＧ発行，Ｍｕｌｔｉ−Ｒｏｏｔ  Ｉ／Ｏ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  ａｎｄ  Ｓｈａｒｉｎｇ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｖｉｓｉｏｎ  １．０，２００８年，１．２．４．４（Ｐ．２９）
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記従来のコールドスタンバイ方式を用いたシステムの冗長化では、現用系の計算機と待機系の計算機がそれぞれ個別にＩ／Ｏアダプタ（例えばＰＣＩデバイス）を備える。各計算機は、それぞれのＩ／Ｏアダプタを論理的に識別するため、Ｉ／Ｏアダプタとの間の接続経路に識別子（ＰＣＩバス番号）を独自に付与し、その識別子を用いて各Ｉ／Ｏアダプタを認識している。
【００１１】
現用系に障害が発生して待機系に切り替える場合、現用系と同じＩ／Ｏ環境を待機系でも再現することが好ましい。しかし、上述のように各計算機はＩ／Ｏアダプタを独自の識別子で認識しているため、計算機とＩ／Ｏアダプタの対応関係は固定されている。そのため、計算機を現用系から待機系に切り替えて現用系と同じＩ／Ｏ環境を再現するには、現用系で使用していたＩ／Ｏアダプタ本体を待機系へ接続し直す必要があった。
【００１２】
本発明は、上記のような課題を解決するためになされたものであり、Ｉ／Ｏアダプタ本体を接続し直すことなく現用系から待機系に切り替えることのできる計算機を得ることを目的とする。
【課題を解決するための手段】
【００１３】
本発明に係る計算機は、計算機モジュールとＩ／Ｏアダプタの間の接続経路を論理的に識別する識別子を、現用系計算機から待機系計算機に引き継ぐ。
【発明の効果】
【００１４】
本発明に係る計算機によれば、現用系計算機が接続経路を識別するために用いていた識別子を待機系計算機に引き継ぐので、Ｉ／Ｏアダプタ本体を接続し直すことなく、現用系と同じＩ／Ｏ環境を待機系でも実現することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１に係る計算機システム１０００の構成図である。
【図２】仮想スイッチ生成部３１０の内部構成を示す図である。
【図３】ポート管理テーブル３２０の構成とデータ例を示す図である。
【図４】仮想スイッチ管理テーブル３３０と仮想ブリッジ管理テーブル３４０の構成とデータ例を示す図である。
【図５】リソース割当テーブル４３０の構成とデータ例を示す図である。
【図６】ホスト管理テーブル４４０の構成とデータ例を示す図である。
【図７】図４に示すテーブル状態によって定義される仮想スイッチの構成を示す図である。
【図８】バス割当管理テーブル３７０の構成とデータ例を示す図である。
【図９】現用系計算機モジュール１００ａから待機系計算機モジュール１１０ｅに切り替えるときの各テーブルの変化を示す図である。
【図１０】図９に示すテーブル状態によって定義される仮想スイッチの構成を示す図である。
【図１１】現用系計算機モジュール１００ａから待機系計算機モジュール１１０ｅに切り替わるときのバス割当管理テーブル３７０の変化を示す図である。
【図１２】現用系計算機モジュール１００ａから待機系計算機モジュール１１０ｅに切り替わるときの各機器の動作を示すシーケンス図である。
【図１３】実施の形態２に係る計算機システム２０００の構成図である。
【発明を実施するための形態】
【００１６】
＜実施の形態１＞
図１は、本発明の実施の形態１に係る計算機システム１０００の構成図である。計算機システム１０００は、現用系計算機モジュール１００ａ、１００ｂ、１００ｃおよび１００ｄ、待機系計算機モジュール１１０ｅおよび１１０ｆ、サービスプロセッサ１５０、管理コンソール１８０、Ｉ／Ｏアダプタ２２０ａ−１、２２０ａ−３、２２０ａ−５、２２０ａ−８、２２０ｂ−２、２２０ｂ−４、２２０ｂ−５および２２０ｂ−７、ＰＣＩｅスイッチ３００ａおよび３００ｂ、ＰＣＩマネージャ４００を備える。
【００１７】
同じ符号に異なるアルファベットと数字の添え字を付与している各機器等は同様の構成を有するので、以下の説明においてこれらを総称するときは、アルファベット添え字や数字添え字を適宜省略する。
【００１８】
現用系計算機モジュール１００は、ＣＰＵ１０１−１および１０１−２、チップセット１０２、ルートコンプレックス１０３、メモリ１０５、管理ポート１０６を備える。
【００１９】
ルートコンプレックス１０３は、ＰＣＩｅスイッチ３００と接続するためのインタフェースとしてＩ／Ｏブリッジ１０４−１と１０４−２を備えている。現用系計算機１００は、Ｉ／Ｏブリッジ１０４を介して、ＰＣＩｅスイッチ３００に接続されたＩ／Ｏアダプタ２２０にアクセスする。なお、Ｉ／Ｏアダプタとしては、例えば、ストレージ装置のアダプタやネットワークインターフェースカード、その他例えばＰＣＩ規格に準拠したＰＣＩデバイスなどが考えられる。
【００２０】
メモリ１０５は、ＣＰＵ１０１が稼動する際に必要なデータ等を格納する。例えば後述のＰＣＩバス番号の値を格納することができる。
【００２１】
管理ポート１０６は、現用系計算機モジュール１００の外部から現用系計算機モジュール１００を管理するための信号を送受信する通信ポートであり、管理用接続線１６０を介してサービスプロセッサ１５０に接続されている。
【００２２】
待機系計算機モジュール１１０は、現用系計算機モジュール１００と同様の構成を有するが、コールドスタンバイ状態（非稼動状態）で待機している点が異なる。
【００２３】
サービスプロセッサ１５０は、現用系計算機モジュール１００、待機系計算機モジュール１１０、およびＰＣＩｅスイッチ３００の動作を管理するための制御装置である。サービスプロセッサ１５０は、管理用接続線１６０を介して各計算機モジュールの管理ポート１０６に接続されている。また、管理用接続線１７０を介してＰＣＩマネージャ４００に接続されている。
【００２４】
管理コンソール１８０は、システム管理者等が現用系計算機モジュール１００、待機系計算機モジュール１１０、およびＰＣＩｅスイッチ３００の動作を管理するための管理端末である。管理コンソール１８０は、適当なインタフェースを介してサービスプロセッサ１５０に接続されている。
【００２５】
Ｉ／Ｏアダプタ２２０は、例えばストレージ装置などの、各計算機モジュールが使用する電子機器である。Ｉ／Ｏアダプタ２２０は、ＰＣＩ  Ｅｘｐｒｅｓｓ規格に準拠したＰＣＩｅデバイスである。なお図１では、後述のダウンストリーム側ブリッジ３０２の添え字に対応させてＩ／Ｏアダプタ２２０の添え字を記載したため、数字添え字が連続していないことを付言しておく。
【００２６】
ＰＣＩｅスイッチ３００は、マルチルートＰＣＩｅスイッチとしての機能を有し、アップストリーム側ブリッジ３０１−１、３０１−２、３０１−３、３０１−４、３０１−５および３０１−６、ダウンストリーム側ブリッジ３０２−１、３０２−２、３０２−３、３０２−４、３０２−５、３０２−６、３０２−７および３０２−８、仮想スイッチ生成部３１０、管理ポート３９９−１および３９９−２を備える。
【００２７】
アップストリーム側ブリッジ３０１は、バス２００を介して各計算機モジュールのＩ／Ｏブリッジ１０４−１または１０４−２と接続されている。図１では、Ｉ／Ｏブリッジ１０４−１とＰＣＩｅスイッチ３００ａをバス２００−１で接続し、Ｉ／Ｏブリッジ１０４−２とＰＣＩｅスイッチ３００ｂをバス２００−２で接続するルールとした。接続パターンはこれに限られるものではない。
【００２８】
ダウンストリーム側ブリッジ３０２は、バス２１０を介してＩ／Ｏアダプタ２２０と接続されている。必ずしも全てのダウンストリーム側ブリッジ３０２にＩ／Ｏアダプタ２２０を接続する必要はない。
【００２９】
仮想スイッチ生成部３１０は、アップストリーム側ブリッジ３０１とダウンストリーム側ブリッジ３０２を仮想的に接続する仮想スイッチを生成する。仮想的に接続するとは、各ブリッジの物理的な配置等によらず、任意のブリッジ同士を論理的に接続することをいう。仮想的に接続された各ブリッジ間は、当該ブリッジの外部から見ると、直接接続されているように見える。仮想スイッチ生成部３１０は、このブリッジ同士の接続関係を任意に構成することができる。
【００３０】
管理ポート３９９は、ＰＣＩｅスイッチ３００の外部よりＰＣＩｅスイッチ３００の動作を管理するための信号を送受信する通信ポートである。管理ポート３９９を他のＰＣＩｅスイッチ３００の管理ポート３９９と接続し、カスケード型のトポロジーを形成することもできる。図１では、ＰＣＩマネージャ４００と管理ポート３９９ｂ−２を接続し、ＰＣＩマネージャ４００がＰＣＩｅスイッチ３００ｂとの間の制御信号を送受信し、その信号をＰＣＩｅスイッチ３００ａと共有するように記載したが、接続関係はこれに限られない。
【００３１】
ＰＣＩマネージャ４００は、スイッチ管理部４１１、ホスト管理部４１２を備える。また、後述の図５〜図６で説明するリソース割当テーブル４３０とホスト管理テーブル４４０を、メモリやレジスタなどの適当な記憶装置内に保持する。スイッチ管理部４１１は、ＰＣＩｅスイッチ３００の動作を管理する。ホスト管理部４１２は、サービスプロセッサ１５０を介して、各計算機モジュールの動作を管理する。
【００３２】
サービスプロセッサ１５０、仮想スイッチ生成部３１０、ＰＣＩマネージャ４００は、これらの機能を実現する回路デバイスなどのようなハードウェアを用いて構成することができる。また、ＣＰＵなどの演算装置とその動作を規定するソフトウェアを用いて、同等の機能部を構成することもできる。
【００３３】
サービスプロセッサ１５０、ＰＣＩマネージャ４００は、一体的に構成してもよい。さらには、これらを各計算機と一体的に構成してもよいし、各計算機とは別の機能部として構成してもよい。
【００３４】
以上、計算機システム１０００の全体構成について説明した。次に、各部の詳細構成について、各機能部の対応関係を管理するための管理テーブルを中心に説明する。
【００３５】
図２は、仮想スイッチ生成部３１０の内部構成を示す図である。仮想スイッチ生成部３１０は、メモリやレジスタなどの適当な記憶装置内に、ポート管理テーブル３２０、仮想スイッチ管理テーブル３３０、仮想ブリッジ管理テーブル３４０、バス割当管理テーブル３７０を格納する。各テーブルの構成について、以下の図３〜図６と図８で説明する。
【００３６】
図３は、ポート管理テーブル３２０の構成とデータ例を示す図である。ポート管理テーブル３２０は、ＰＣＩｅスイッチ３００の各ブリッジが備えるポートの現在の状態を保持するテーブルであり、「スイッチ」列３２１、「ポート番号」列３２２、「方向」列３２３、「種別」列３２４、「リンク先」列３２５を有する。
【００３７】
「スイッチ」列３２１は、ＰＣＩｅスイッチ３００の識別子を保持する。ここでは説明の便宜のため、図１に示す各ＰＣＩｅスイッチの符号と同じ識別子を用いた。以下の各列および各テーブルについても同様である。
【００３８】
「ポート番号」列３２２は、各ブリッジが備えるポートの識別子を保持する。ここでは各ブリッジがポートを１つ備えるものとし、各ブリッジの符号をもってポートの識別子とした。
【００３９】
「方向」列３２３は、各ポートがアップストリームポートであるのか、それともダウンストリームポートであるのかを区別する値を保持する。本列の値が「ｕｐ」となっているポートはアップストリームポート、「ｄｏｗｎ」となっているポートはダウンストリームポートである。
【００４０】
「種別」列３２４は、当該ポートに接続されている電子機器の種別を保持する。何も接続されていないポートについては、本列と「リンク先」列３２５の値は空である。
【００４１】
「リンク先」列３２５は、当該ポートに接続されている電子機器の識別子を保持する。
【００４２】
図４は、仮想スイッチ管理テーブル３３０と仮想ブリッジ管理テーブル３４０の構成とデータ例を示す図である。以下、各テーブルが備える列およびテーブル同士の相関関係について説明する。
【００４３】
仮想スイッチ管理テーブル３３０は、仮想スイッチ生成部３１０が生成する仮想スイッチの状態を保持するテーブルであり、「スイッチ」列３３１、「ＶＳ番号」列３３２、「有効」列３３３、「開始ＶＢ番号」列３３４、「エントリ数」列３３５を有する。
【００４４】
「スイッチ」列３３１は、ＰＣＩｅスイッチ３００の識別子を保持する。
【００４５】
「ＶＳ番号」列３３２は、仮想スイッチ生成部３１０が生成する仮想スイッチの識別番号を保持する。
【００４６】
「有効」列３３３は、当該仮想スイッチが有効化されているか否かを示す。
【００４７】
「開始ＶＢ番号」列３３４は、「ＶＳ番号」列３３２の値で識別される仮想スイッチを構成する仮想ブリッジ（Ｖｉｒｔｕａｌ  Ｂｒｉｄｇｅ：ＶＢ）の開始番号を保持する。仮想ブリッジについては仮想ブリッジ管理テーブル３４０の説明において改めて述べる。例えば本列の値が「１」の場合、当該仮想スイッチが有する最初の仮想ブリッジの通番は「１」である。
【００４８】
「エントリ数」列３３５は、「ＶＳ番号」列３３２の値で識別される仮想スイッチを構成する仮想ブリッジの数を保持する。例えば本列の値が「３」である場合、当該仮想スイッチは、「開始ＶＢ番号」列３３４の値で指定される番号から開始する連続した３つの通番を割り当てられた３つの仮想ブリッジを有する。
【００４９】
仮想ブリッジ管理テーブル３４０は、各仮想スイッチが有する仮想ブリッジの状態を保持するテーブルである。仮想ブリッジとは、ＰＣＩｅデバイス同士を仮想的に接続するインタフェース部分（ブリッジ）に相当する。実際に仮想ブリッジの数だけブリッジが存在するわけではなく、論理的なインタフェースが存在していることになる。
【００５０】
仮想ブリッジ管理テーブル３４０は、「スイッチ」列３４１、「ＶＢ番号」列３４２、「有効」列３４３、「方向」列３４４、「マップ」列３４５、「ポート番号」列３４６、「ＶＨ番号」列３４７を有する。
【００５１】
「スイッチ」列３４１は、ＰＣＩｅスイッチ３００の識別子を保持する。
【００５２】
「ＶＢ番号」列３４２は、仮想スイッチ生成部３１０が生成する仮想ブリッジの識別番号を保持する。
【００５３】
「有効」列３４３は、当該仮想ブリッジが有効化されているか否かを示す。
【００５４】
「方向」列３４４は、当該仮想ブリッジがアップストリームポートに対応付けられているのか、それともダウンストリームポートに対応付けられているのかを区別する値を保持する。
【００５５】
「マップ」列３４５は、当該仮想ブリッジが「ポート番号」列３４６の値で特定されるポートにマッピングされているか否かを示す。
【００５６】
「ポート番号」列３４６は、各ブリッジが備えるポートの識別子を保持する。
【００５７】
「ＶＨ番号」列３４７は、ＶＨ（Ｖｉｒｔｕａｌ  Ｈｉｅｒａｒｃｈｙ）の通番を保持する。ＶＨとは、仮想スイッチとその周辺機器からなる階層構造のことである。
【００５８】
図４に示すデータ例について説明する。ＰＣＩｅスイッチ３００ａには、「ＶＢ番号＝１〜１２」の１２個の仮想ブリッジが割り当てられている。これらの仮想ブリッジのうち計算機モジュールやＩ／Ｏアダプタが接続されていないポート（３０１ａ−２、３０２ａ−２など）については、「有効＝Ｎｏ」「マップ＝Ｎｏ」となっている。
【００５９】
仮想スイッチ管理テーブル３３０と仮想ブリッジ管理テーブル３４０の相関関係について説明する。仮想スイッチ管理テーブル３３０によれば、「ＶＳ番号＝１」の仮想スイッチは、「ＶＢ番号＝１」から開始して「エントリ数＝３」個の仮想ブリッジを有することが分かる。仮想ブリッジ管理テーブル３４０の対応する箇所を参照すると、「ＶＢ番号＝１〜３」の仮想ブリッジは「有効＝Ｙｅｓ」となっており、それぞれアップストリームポートまたはダウンストリームポートにマッピングされていることが分かる。
【００６０】
図５は、リソース割当テーブル４３０の構成とデータ例を示す図である。リソース割当テーブル４３０は、Ｉ／Ｏアダプタ２２０と各計算機モジュールの接続関係を保持するテーブルであり、「スイッチ」列４３１、「Ｉ／Ｏアダプタ」列４３２、「ホスト」列４３３を有する。
【００６１】
「スイッチ」列４３１は、ＰＣＩｅスイッチ３００の識別子を保持する。
【００６２】
「Ｉ／Ｏアダプタ」列４３２は、Ｉ／Ｏアダプタ２２０の識別子を保持する。
【００６３】
「ホスト」列４３３は、計算機モジュール１００の識別子を保持する。
【００６４】
図６は、ホスト管理テーブル４４０の構成とデータ例を示す図である。ホスト管理テーブル４４０は、各計算機モジュールの稼動状態を保持するテーブルであり、「ホスト」列４４１、「現用系／待機系種別」列４４２を有する。
【００６５】
「ホスト」列４４１は、計算機モジュールの識別子を保持する。
【００６６】
「現用系／待機系種別」列４４２は、「ホスト」列４４１の値で識別される計算機モジュールの現在の稼動状態を保持する。本列の値を参照することにより、いずれの計算機モジュールが現用系（稼働状態）／待機系（待機状態）であるかを把握することができる。
【００６７】
図７は、図４に示すテーブル状態によって定義される仮想スイッチの構成を示す図である。図７において、仮想スイッチ３５０と仮想ブリッジ３６０の添え字は、それぞれ図４における「ＶＳ番号」列の値と「ＶＢ番号」列の値に対応している。
【００６８】
仮想スイッチ３５０−１は、仮想スイッチ管理テーブル３３０の１行目のデータに相当する。また、仮想スイッチ３５０−１が有する仮想ブリッジ３６０−１、３６０−２、３６０−３は、仮想ブリッジ管理テーブル３４０の１〜３行目のデータに相当する。
【００６９】
同様に、仮想スイッチ３５０−８は、仮想スイッチ管理テーブル３３０の８行目のデータに相当する。また、仮想スイッチ３５０−８が有する仮想ブリッジ３６０−１８、３６０−１９は、仮想ブリッジ管理テーブル３４０の１８〜１９行目のデータに相当する。
【００７０】
図８は、バス割当管理テーブル３７０の構成とデータ例を示す図である。バス割当管理テーブル３７０は、ＰＣＩバス番号と仮想ブリッジ３６０の対応関係を保持するテーブルである。
【００７１】
ＰＣＩバス番号は、各ＰＣＩｅデバイスを識別するため、計算機モジュールが各ＰＣＩｅデバイスの間の接続経路に付与した論理的な識別子である。例えば図１と図７に示す接続例では、仮想スイッチ３５０−１から見てアップストリーム側のバス２００ａ−１は「ＰＣＩバス番号＝１」、仮想スイッチ３５０−１は「ＰＣＩバス番号＝２」、バス２１０ａ−１は「ＰＣＩバス番号＝３」、バス２１０ａ−３は「ＰＣＩバス番号＝４」のＰＣＩバスとして認識される。
【００７２】
バス割当管理テーブル３７０は、上述のようなＰＣＩバス番号の割り当てを管理するためのテーブルであり、「スイッチ」列３７１、「ＶＢ番号」列３７２、「上流バス番号（Primary Bus Number）」列３７３、「下流バス番号（Secondary Bus Number）」列３７４、「最下流バス番号（Subordinate Bus Number）」列３７５を有する。
【００７３】
「スイッチ」列３７１は、ＰＣＩｅスイッチ３００の識別子を保持する。
【００７４】
「ＶＢ番号」列３７２は、仮想ブリッジ３６０の識別番号を保持する。
【００７５】
「上流バス番号」列３７３は、「ＶＢ番号」列３７２の値で特定される仮想ブリッジから見て上流に接続されている接続経路のＰＣＩバス番号を示す。
【００７６】
「下流バス番号」列３７４は、「ＶＢ番号」列３７２の値で特定される仮想ブリッジから見て下流に接続されている接続経路のＰＣＩバス番号を示す。
【００７７】
「最下流バス番号」列３７５は、「ＶＢ番号」列３７２の値で特定される仮想ブリッジから見て最も下流に接続されている接続経路のＰＣＩバス番号を示す。
【００７８】
バス割当管理テーブル３７０の内容は、ＰＣＩマネージャ４００によって設定される。ＰＣＩマネージャ４００は、ＰＣＩバス番号を固定的に割り当ててもよいし、規格に準じて使用中のＩ／Ｏアダプタ２２０に対してのみＰＣＩバス番号を割り当ててもよい。ＰＣＩ番号を固定的に割り当てる場合は、未使用のＩ／Ｏアダプタ２２０に対してもＰＣＩバス番号をあらかじめ確保することができる。なお、現用系計算機モジュール１００から待機系計算機モジュール１１０にＰＣＩバス番号を引き継ぐ際には、上記いずれの手法を採用してもよい。
【００７９】
以上、計算機システム１０００の詳細構成について説明した。次に、現用系から待機系にシステムが切り替わるときの動作について、各テーブルが保持する値の変化を中心に説明する。
【００８０】
図９は、現用系計算機モジュール１００ａから待機系計算機モジュール１１０ｅに切り替えるときの仮想スイッチ管理テーブル３３０と仮想ブリッジ管理テーブル３４０の変化を示す図である。
【００８１】
仮想スイッチ生成部３１０ａは、仮想スイッチ３５０−１によって現用系計算機モジュール１００ａに接続されていたＩ／Ｏアダプタ２２０ａ−１と２２０ａ−３を待機系計算機モジュール１１０ｅに接続するため、新たに仮想スイッチ３６０−５を生成する。また、仮想スイッチ３６０−５を構成するための仮想ブリッジ３６０−１０、３６０−１１、３６０−１２を生成する。
【００８２】
仮想スイッチ管理テーブル３３０では、仮想スイッチ３６０−５に対応する５行目のエントリが更新される。「開始ＶＢ番号」列３３４の値は、仮想ブリッジ３６０−１０に対応する「１０」である。「エントリ数」列３３５の値は、１行目と同じ「３」である。
【００８３】
仮想ブリッジ管理テーブル３４０では、仮想ブリッジ３６０−１０、３６０−１１、３６０−１２に対応する１０〜１２行目のエントリが更新される。仮想ブリッジ３６０−１０に対応する「ポート番号」列３４６の値は、待機系計算機モジュール１１０ｅが接続されている、アップストリームポート「３０１ａ−５」である。ダウンストリームポートに対応する１１〜１２行目は、現用系計算機モジュール１００ａが使用していたＩ／Ｏアダプタ２２０ａ−１と２２０ａ−３が接続されている、ダウンストリームポート「３０２ａ−１」「３０２ａ−３」である。
【００８４】
図１０は、図９に示すテーブル状態によって定義される仮想スイッチの構成を示す図である。記載の簡易のため、現用系計算機モジュール１００ａと待機系計算機モジュール１１０ｅに係る仮想スイッチのみ示した。
【００８５】
図１１は、現用系計算機モジュール１００ａから待機系計算機モジュール１１０ｅに切り替わるときのバス割当管理テーブル３７０の変化を示す図である。仮想スイッチ生成部３１０が新たに生成した仮想ブリッジ３６０−１０、３６０−１１、３６０−１２に対応する１０〜１２行目には、切り替え前の仮想ブリッジ３６０−１、３６０−２、３６０−３に対応する１〜３行目の値がコピーされている。
【００８６】
もし待機系計算機モジュール１１０ｅが、独自にＰＣＩバス番号を割り当てた場合、その番号構成は必ずしも現用系計算機モジュール１００ａと同一にならない可能性がある。その場合、待機系計算機モジュール１１０ｅから見ると、実際には同じＩ／Ｏアダプタであっても、現用系計算機モジュール１００ａが使用していたＰＣＩバス番号とは異なるために、異なるＰＣＩｅデバイスを参照しているものとして認識される可能性がある。
【００８７】
上記のような状況が発生すると、待機系計算機モジュール１１０ｅは、例えば切り替えの前後で異なるストレージ装置を参照していると判断し、切り替え前に現用系計算機モジュール１００ａが実行していた処理を中断する、といったことが起こり得る。
【００８８】
図１１に示すように、切り替えの前後でＰＣＩバス番号を同一に維持することにより、待機系計算機モジュール１１０ｅにおいて、ＰＣＩバスの構成を現用系計算機モジュール１００ａと同一に維持することを図る。これにより、現用系と待機系で実質的に同一のＩ／Ｏ環境を実現する。
【００８９】
図１２は、現用系計算機モジュール１００ａから待機系計算機モジュール１１０ｅに切り替わるときの各機器の動作を示すシーケンス図である。以下、図１２の各ステップについて説明する。
【００９０】
（図１２：ステップＳ１２０１）
本ステップにおいて、現用系計算機モジュール１００ａに障害が発生したものとする。ここで発生した障害は、現用系計算機モジュール１００ａの重要な機能、例えば一部のＩ／Ｏブリッジの破損などを想定する。
【００９１】
（図１２：ステップＳ１２０２）
現用系計算機モジュール１００ａは、自己に障害が発生したことを検出し、管理ポート１０６ａを介してサービスプロセッサ１５０にその旨を通知する。
【００９２】
（図１２：ステップＳ１２０３）
サービスプロセッサ１５０は、現用系計算機モジュール１００ａに障害が発生した旨をＰＣＩマネージャ４００に報告する。障害の種類などを併せて報告してもよい。
【００９３】
（図１２：ステップＳ１２０４）
ＰＣＩマネージャ４００は、現用系計算機モジュール１００ａの電源を強制的にＯＦＦするように、サービスプロセッサ１５０へ指示する。
【００９４】
（図１２：ステップＳ１２０５）
サービスプロセッサ１５０は、電源を強制的にＯＦＦするように、現用系計算機モジュール１００ａへ指示する。
【００９５】
（図１２：ステップＳ１２０６）
現用系計算機モジュール１００ａは、サービスプロセッサ１５０からの指示にしたがって電源をＯＦＦする。
【００９６】
（図１２：ステップＳ１２０７）
サービスプロセッサ１５０は、現用系計算機モジュール１００ａの電源がＯＦＦになったことを確認し、ＰＣＩマネージャ４００にその旨を報告する。
【００９７】
（図１２：ステップＳ１２０８）
ＰＣＩマネージャ４００は、ＰＣＩｅスイッチ３００ａおよび３００ｂの仮想スイッチ管理テーブル３３０、仮想ブリッジ管理テーブル３４０、バス割当管理テーブル３７０を、図９で説明した状態に更新するよう、仮想スイッチ生成部３１０ｂへ指示する。仮想スイッチ生成部３１０ｂは、指示にしたがって各テーブルを更新する。仮想スイッチ生成部３１０ａも管理ポート３９９を介して同様に更新指示を受信し、各テーブルを更新する。
【００９８】
（図１２：ステップＳ１２０９）
ＰＣＩマネージャ４００は、待機系計算機モジュール１１０ｅの電源をＯＮするよう、サービスプロセッサ１５０に指示する。このとき、バス割当管理テーブル３５０が保持している、仮想ブリッジ３６０−１０、３６０−１１、３６０−１２に対応するＰＣＩバス番号を併せて通知する。
【００９９】
（図１２：ステップＳ１２１０）
サービスプロセッサ１５０は、電源をＯＮするように、待機系計算機モジュール１１０ｅへ指示する。また、ＰＣＩマネージャ４００より通知を受けたＰＣＩバス番号を、併せて通知する。
【０１００】
（図１２：ステップＳ１２１１）
待機系計算機モジュール１１０ｅは、サービスプロセッサ１５０からの指示にしたがって電源をＯＮする。また、サービスプロセッサ１５０より通知を受けたＰＣＩバス番号を用いて、Ｉ／Ｏブリッジ１０４ｅからＩ／Ｏアダプタ２２０に至る接続経路を認識する。以後、待機系計算機モジュール１１０ｅは通常動作を実行する。
【０１０１】
以上、現用系計算機モジュール１００ａから待機系計算機モジュール１１０ｅにシステムが切り替わるときの動作を説明した。
【０１０２】
以上のように、本実施の形態１によれば、待機系計算機モジュールは、現用系計算機モジュールが非稼動状態に移行すると、現用系計算機モジュールが使用していたＰＣＩバス番号を引き継いで、動作を開始する。これにより、待機系計算機モジュールは、現用系計算機モジュールと同一のＩ／Ｏ環境を実現することができる。したがって、現用系から待機系への切り替えの前後でＩ／Ｏ環境が異なることによる不具合、例えばＯＳ（オペレーティングシステム）のブート失敗などの発生を抑えることができる。
【０１０３】
また、本実施の形態１によれば、ＰＣＩｅスイッチ３００の仮想スイッチ生成部３１０は仮想スイッチを生成して各計算機モジュールとＩ／Ｏアダプタを論理的に接続し、各計算機モジュールはその論理的接続経路にＰＣＩバス番号を付与して識別する。これにより、各計算機モジュールは接続経路が仮想的なものであるか否かによらず、ＰＣＩバスとして同様に認識することができる。また、そのＰＣＩバス番号を現用系計算機モジュールから待機系計算機モジュールに引き継ぐことにより、切り替えにともなってＰＣＩｅスイッチ３００内で仮想スイッチの状態が変わっても、待機系計算機モジュールはそのことを意識せず、切り替え前と同一のＰＣＩバスとして認識することができる。
【０１０４】
＜実施の形態２＞
本発明の実施の形態２では、実施の形態１で説明した計算機システム１０００を多重構成にした例を説明する。多重構成のシステムとすることにより、システムの可用性などの向上を図る。
【０１０５】
図１３は、本実施の形態２に係る計算機システム２０００の構成図である。本実施の形態２に係る計算機システム２０００は、１以上の計算機モジュールを収納するサーバシャーシ７００と、１以上のＩ／Ｏアダプタ２２０を収納するＩ／Ｏドロワ７２０を、それぞれ複数備える。また、計算機モジュールとＩ／Ｏアダプタ２２０の間にＰＣＩｅスイッチを２段導入し、接続経路を各サーバシャーシ７００にまたがってメッシュ状に構成した。以下、各構成について説明する。
【０１０６】
サーバシャーシ７００−１は、１以上（図１３では８台）のブレードサーバ７１０、サービスプロセッサ１５０、１以上のＰＣＩｅスイッチ３００を収納する。
【０１０７】
ブレードサーバ７１０は、実施の形態１における計算機モジュールに相当する。
【０１０８】
サービスプロセッサ１５０は、サーバシャーシ７００が収納するブレードサーバ７１０の動作を管理する。サービスプロセッサ１５０は、管理用接続線１７０を介してＰＣＩマネージャ４００に接続されている。また、適当なインタフェースを介して管理コンソール１８０にも接続されている。
【０１０９】
サーバシャーシ７００内のＰＣＩｅスイッチ３００は、１以上のブレードサーバ７１０のＩ／Ｏブリッジと接続されている。各ＰＣＩｅスイッチ３００は、管理ポート３９９を介してカスケード接続されている。サーバシャーシ７００−１が収納するＰＣＩｅスイッチ３００のうち１つは、サーバシャーシ７００−２が収納するＰＣＩｅスイッチ３００のうち１つの管理ポート３９９と接続されている。
【０１１０】
サーバシャーシ７００−２は、サーバシャーシ７００−１と同様の機器構成を収納しているが、ＰＣＩｅスイッチ３００のうち１つが管理ポート３９９を介してＰＣＩマネージャ４００と接続されている点が異なる。ＰＣＩマネージャ４００は、サーバシャーシ７００−２が収納するＰＣＩｅスイッチ３００との間で制御信号を送受信する。その制御信号は、管理ポート３９９を介して他のＰＣＩｅスイッチ３００との間で共有され、さらにはサーバシャーシ７００−１が収納するＰＣＩｅスイッチ３００との間でも共有される。
【０１１１】
Ｉ／Ｏドロワ７２０は、１以上のＰＣＩｅスイッチ３００と、１以上のＩ／Ｏアダプタ２２０を収納する。
【０１１２】
Ｉ／Ｏドロワ７２０内のＰＣＩｅスイッチ３００は、１以上のＩ／Ｏアダプタ２２０と接続されている。各ＰＣＩｅスイッチ３００は、管理ポート３９９を介してカスケード接続されている。Ｉ／Ｏドロワ７２０が収納するＰＣＩｅスイッチのうち１つは、他のＩ／Ｏドロワ７２０が収納するＰＣＩｅスイッチのうち１つの管理ポート３９９と接続されている。また、Ｉ／Ｏドロワ７２０−４が収納しているＰＣＩｅスイッチ３００のうち１つは、管理ポート３９９を介してＰＣＩマネージャ４００と接続されている。
【０１１３】
サーバシャーシ７００が収納しているＰＣＩｅスイッチ３００と、Ｉ／Ｏドロワ７２０が収納しているＰＣＩｅスイッチ３００との間は、バス２２０を介してメッシュ状に接続されている。
【０１１４】
サーバシャーシ７００内には、ブレードサーバ７１０と同数（８台）のＰＣＩｅスイッチ３００を配置する。各ブレードサーバ７１０は、４つのＩ／Ｏブリッジ１０４を備える。各Ｉ／Ｏブリッジ１０４を、それぞれ異なるＰＣＩｅスイッチ３００と接続する。１〜４台目のブレードサーバ７１０のＩ／Ｏブリッジ１０４は、１〜４台目のＰＣＩｅスイッチ３００と接続されている。５〜８台目のブレードサーバ７１０のＩ／Ｏブリッジ１０４は、５〜８台目のＰＣＩｅスイッチ３００と接続されている。
【０１１５】
Ｉ／Ｏドロワ７２０−１内には、ＰＣＩｅスイッチ３００を２台配置する。各ＰＣＩｅスイッチ３００は、４つのアップストリームポートを備える。２つのアップストリームポートを、サーバシャーシ７００−１内の１台目と５台目のＰＣＩｅスイッチ３００に接続し、残り２つのアップストリームポートを、サーバシャーシ７００−２内の１台目と５台目のＰＣＩｅスイッチ３００に接続する。同様に、Ｉ／Ｏドロワ７２０−２内のＰＣＩｅスイッチ３００については、２つのアップストリームポートを、サーバシャーシ７００−１内の２台目と６台目のＰＣＩｅスイッチ３００に接続し、残り２つのアップストリームポートを、サーバシャーシ７００−２内の２台目と６台目のＰＣＩｅスイッチ３００に接続する。以下同様である。
【０１１６】
上記構成により、以下の効果を発揮することができる。
通常のコールドスタンバイ方式による冗長化では、待機系ブレードのＩ／Ｏアダプタの構成は現用系ブレードサーバが使用するＩ／Ｏアダプタと同じ構成をとらなければならないが、本方式では現用系ブレードサーバで使用していたＩ／Ｏアダプタをそのまま待機系ブレードサーバで使用することができ、待機系ブレードサーバ用にＩ／Ｏアダプタを用意する必要がないため、本構成のようなＩ／Ｏアダプタが多いシステムでは、待機系のＩ／Ｏアダプタのコストを削減することができる。
【０１１７】
また、通常のコールドスタンバイ方式による冗長化では、待機系のＩ／Ｏアダプタの構成が現用系ブレードサーバと同じである必要があるため、複数の現用系ブレードサーバのＩ／Ｏアダプタの構成がそれぞれ異なる場合、現用系ブレードサーバのＩ／Ｏアダプタの構成の数だけ待機系ブレードサーバが必要となるが、本方式では現用系ブレードサーバのＩ／Ｏアダプタ構成がどのような構成であっても待機系ブレードサーバに引き継ぐことが可能なため、本構成のサーバシャーシ７００−１と７００−２が収納する１６台のブレードサーバを任意に現用系／待機系いずれでも用いることができる。たとえばブレードサーバの多くを現用系として割り当てれば使用効率の高いシステムを構築することができ、ブレードサーバの多くを待機系として割り当てれば、可用性の高いシステムを構築することができる。
【０１１８】
以上のように、本実施の形態２によれば、各サーバシャーシ７００内でブレードサーバ７１０同士が相互に補完し合うのみならず、サーバシャーシ７００間でブレードサーバ７１０が相互に補完することができる。これにより、計算機システム２０００の可用性を向上させることができる。
【０１１９】
また、本実施の形態２によれば、ＰＣＩｅスイッチ３００をサーバシャーシ７００内とＩ／Ｏドロワ７２０内にそれぞれ配置して多段構成としたため、計算機システム２０００をより柔軟に構成することができる。例えば、ＰＣＩｅスイッチ３００のポートに空きがあれば、新たなサーバシャーシ７００−３やＩ／Ｏドロワ７２０−５を導入し、サーバシャーシ７００側を３並列、Ｉ／Ｏドロワ７２０側を５並列の構成とすることができる。
【０１２０】
また、本実施の形態２によれば、サービスプロセッサ１５０〜ＰＣＩマネージャ４００を介して、サーバシャーシをまたがってＰＣＩバス番号を待機系計算機モジュール（本実施の形態２ではブレードサーバ７１０）に引き継ぐことができる。これにより、サーバシャーシをまたがって、現用系と待機系で同様のＩ／Ｏ環境を実現することができるので、コールドスタンバイシステムをより柔軟に構成することができる。例えば、後からサーバシャーシ７００を追加し、そのサーバシャーシ内の計算機モジュールを待機系として用いる、といった追加的なサーバ運用が可能となる。
【符号の説明】
【０１２１】
１００ａ、１００ｂ、１００ｃ、１００ｄ：現用系計算機モジュール、１１０ｅ、１１０ｆ：待機系計算機モジュール、１０１−１、１０１−２：ＣＰＵ、１０２：チップセット、１０３：ルートコンプレックス、１０５：メモリ、１０６：管理ポート、１５０：サービスプロセッサ、１８０：管理コンソール、２２０ａ−１、２２０ａ−３、２２０ａ−５、２２０ａ−８、２２０ｂ−２、２２０ｂ−４、２２０ｂ−５、２２０ｂ−７：Ｉ／Ｏアダプタ、３００ａ、３００ｂ：ＰＣＩｅスイッチ、３０１−１、３０１−２、３０１−３、３０１−４、３０１−５、３０１−６：アップストリーム側ブリッジ、３０２−１、３０２−２、３０２−３、３０２−４、３０２−５、３０２−６、３０２−７、３０２−８：ダウンストリーム側ブリッジ、３１０：仮想スイッチ生成部、３２０：ポート管理テーブル、３３０：仮想スイッチ管理テーブル、３４０：仮想ブリッジ管理テーブル、３７０：バス割当管理テーブル、３９９−１、３９９−２：管理ポート、４００：ＰＣＩマネージャ、４３０：リソース割当テーブル、４４０：ホスト管理テーブル、１０００、２０００：計算機システム。
【図１】
2011081462.tif 000003
【図２】
2011081462.tif 000004
【図３】
2011081462.tif 000005
【図４】
2011081462.tif 000006
【図５】
2011081462.tif 000007
【図６】
2011081462.tif 000008
【図７】
2011081462.tif 000009
【図８】
2011081462.tif 000010
【図９】
2011081462.tif 000011
【図１０】
2011081462.tif 000012
【図１１】
2011081462.tif 000013
【図１２】
2011081462.tif 000014
【図１３】
2011081462.tif 000015