説明

計算機装置、計算機システム、アダプタ承継方法

【課題】I/Oデバイス本体を接続し直すことなく現用系から待機系に切り替えることのできる計算機を得る。
【解決手段】本発明に係る計算機は、計算機モジュールとI/Oアダプタの間の接続経路を論理的に識別する識別子を、現用系計算機から待機系計算機に引き継ぐ。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、計算機装置、計算機システム、計算機装置のアダプタ承継方法に関するものである。
【背景技術】
【0002】
近年、サーバの管理を容易にするために1つの装置に複数の計算機を搭載したブレードサーバが用いられるようになっている(例えば、特許文献1)。また、複数のプロセッサコアを持つマルチコア化によりCPU(Central Processing Unit)の処理性能が向上し、それに伴い効率的にCPUを使用するため1つの計算機に複数の仮想的なサーバを稼動させる仮想サーバ技術が用いられるようになっている。仮想サーバ技術では、ハイパバイザと呼ばれるファームウェアによって、物理的なプロセッサやメモリを仮想化して計算機中に任意の数の論理的な区画(論理プロセッサ)を生成する手法などが用いられる。
【0003】
計算機は、他の計算機とネットワーク通信を行ったり、ストレージ装置と接続したりするため、NIC(Network Interface Card)やFC−HBA(Fiber Channel-Host Bus Adapter)等のI/Oアダプタを用いる。このとき、上記のように1つの計算機上で複数のサーバを稼動させると、相対的に計算機当りのI/Oアダプタ数が不足する。このような問題を補う技術として、複数の計算機と複数のI/OアダプタであるPCI(Peripheral Component Interconnect)デバイス、またはPCI Express(PCIe)デバイスとを接続可能とするマルチルートPCIeスイッチ技術が知られている。
【0004】
マルチルートPCIeスイッチ技術では、1つの計算機に接続可能なPCIeデバイスの個数をスケーラブルに変えることが可能である(例えば、特許文献1、特許文献2等)。後者のマルチルートI/O仮想化技術では、1つのPCIeデバイスを共有することで仮想的にPCIeデバイスの数を増やすことが可能である。これらの技術を用いることで、仮想サーバを用いた場合のI/Oアダプタ数の不足を解消することができる。
【0005】
一方、システムの可用性の向上のため、予備のシステムを動作状態のまま待機させるホットスタンバイ方式や、予備のシステムを停止状態で待機させるコールドスタンバイ方式によるシステムの冗長化が行われている。稼働状態にある計算機を現用系計算機、待機状態にある計算機を待機系計算機などと呼ぶ。
【0006】
コールドスタンバイ方式は、ホットスタンバイ方式に比べて系切り替え時間が長いため、系切り替え時の計算機システムのダウンタイムが長くなってしまうが、高価なクラスタソフトウェアが不要なため、コストの観点から広く用いられている。
【0007】
マルチルートI/O仮想化技術を採用したスイッチの例として、下記非特許文献1に、MR−IOV Switchが記載されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】米国特許第7058738号
【特許文献2】米国特許出願公開第2006/242353号明細書
【非特許文献】
【0009】
【非特許文献1】PCI−SIG発行,Multi−Root I/O Virtualization and Sharing Specification Revision 1.0,2008年,1.2.4.4(P.29)
【発明の概要】
【発明が解決しようとする課題】
【0010】
上記従来のコールドスタンバイ方式を用いたシステムの冗長化では、現用系の計算機と待機系の計算機がそれぞれ個別にI/Oアダプタ(例えばPCIデバイス)を備える。各計算機は、それぞれのI/Oアダプタを論理的に識別するため、I/Oアダプタとの間の接続経路に識別子(PCIバス番号)を独自に付与し、その識別子を用いて各I/Oアダプタを認識している。
【0011】
現用系に障害が発生して待機系に切り替える場合、現用系と同じI/O環境を待機系でも再現することが好ましい。しかし、上述のように各計算機はI/Oアダプタを独自の識別子で認識しているため、計算機とI/Oアダプタの対応関係は固定されている。そのため、計算機を現用系から待機系に切り替えて現用系と同じI/O環境を再現するには、現用系で使用していたI/Oアダプタ本体を待機系へ接続し直す必要があった。
【0012】
本発明は、上記のような課題を解決するためになされたものであり、I/Oアダプタ本体を接続し直すことなく現用系から待機系に切り替えることのできる計算機を得ることを目的とする。
【課題を解決するための手段】
【0013】
本発明に係る計算機は、計算機モジュールとI/Oアダプタの間の接続経路を論理的に識別する識別子を、現用系計算機から待機系計算機に引き継ぐ。
【発明の効果】
【0014】
本発明に係る計算機によれば、現用系計算機が接続経路を識別するために用いていた識別子を待機系計算機に引き継ぐので、I/Oアダプタ本体を接続し直すことなく、現用系と同じI/O環境を待機系でも実現することができる。
【図面の簡単な説明】
【0015】
【図1】実施の形態1に係る計算機システム1000の構成図である。
【図2】仮想スイッチ生成部310の内部構成を示す図である。
【図3】ポート管理テーブル320の構成とデータ例を示す図である。
【図4】仮想スイッチ管理テーブル330と仮想ブリッジ管理テーブル340の構成とデータ例を示す図である。
【図5】リソース割当テーブル430の構成とデータ例を示す図である。
【図6】ホスト管理テーブル440の構成とデータ例を示す図である。
【図7】図4に示すテーブル状態によって定義される仮想スイッチの構成を示す図である。
【図8】バス割当管理テーブル370の構成とデータ例を示す図である。
【図9】現用系計算機モジュール100aから待機系計算機モジュール110eに切り替えるときの各テーブルの変化を示す図である。
【図10】図9に示すテーブル状態によって定義される仮想スイッチの構成を示す図である。
【図11】現用系計算機モジュール100aから待機系計算機モジュール110eに切り替わるときのバス割当管理テーブル370の変化を示す図である。
【図12】現用系計算機モジュール100aから待機系計算機モジュール110eに切り替わるときの各機器の動作を示すシーケンス図である。
【図13】実施の形態2に係る計算機システム2000の構成図である。
【発明を実施するための形態】
【0016】
<実施の形態1>
図1は、本発明の実施の形態1に係る計算機システム1000の構成図である。計算機システム1000は、現用系計算機モジュール100a、100b、100cおよび100d、待機系計算機モジュール110eおよび110f、サービスプロセッサ150、管理コンソール180、I/Oアダプタ220a−1、220a−3、220a−5、220a−8、220b−2、220b−4、220b−5および220b−7、PCIeスイッチ300aおよび300b、PCIマネージャ400を備える。
【0017】
同じ符号に異なるアルファベットと数字の添え字を付与している各機器等は同様の構成を有するので、以下の説明においてこれらを総称するときは、アルファベット添え字や数字添え字を適宜省略する。
【0018】
現用系計算機モジュール100は、CPU101−1および101−2、チップセット102、ルートコンプレックス103、メモリ105、管理ポート106を備える。
【0019】
ルートコンプレックス103は、PCIeスイッチ300と接続するためのインタフェースとしてI/Oブリッジ104−1と104−2を備えている。現用系計算機100は、I/Oブリッジ104を介して、PCIeスイッチ300に接続されたI/Oアダプタ220にアクセスする。なお、I/Oアダプタとしては、例えば、ストレージ装置のアダプタやネットワークインターフェースカード、その他例えばPCI規格に準拠したPCIデバイスなどが考えられる。
【0020】
メモリ105は、CPU101が稼動する際に必要なデータ等を格納する。例えば後述のPCIバス番号の値を格納することができる。
【0021】
管理ポート106は、現用系計算機モジュール100の外部から現用系計算機モジュール100を管理するための信号を送受信する通信ポートであり、管理用接続線160を介してサービスプロセッサ150に接続されている。
【0022】
待機系計算機モジュール110は、現用系計算機モジュール100と同様の構成を有するが、コールドスタンバイ状態(非稼動状態)で待機している点が異なる。
【0023】
サービスプロセッサ150は、現用系計算機モジュール100、待機系計算機モジュール110、およびPCIeスイッチ300の動作を管理するための制御装置である。サービスプロセッサ150は、管理用接続線160を介して各計算機モジュールの管理ポート106に接続されている。また、管理用接続線170を介してPCIマネージャ400に接続されている。
【0024】
管理コンソール180は、システム管理者等が現用系計算機モジュール100、待機系計算機モジュール110、およびPCIeスイッチ300の動作を管理するための管理端末である。管理コンソール180は、適当なインタフェースを介してサービスプロセッサ150に接続されている。
【0025】
I/Oアダプタ220は、例えばストレージ装置などの、各計算機モジュールが使用する電子機器である。I/Oアダプタ220は、PCI Express規格に準拠したPCIeデバイスである。なお図1では、後述のダウンストリーム側ブリッジ302の添え字に対応させてI/Oアダプタ220の添え字を記載したため、数字添え字が連続していないことを付言しておく。
【0026】
PCIeスイッチ300は、マルチルートPCIeスイッチとしての機能を有し、アップストリーム側ブリッジ301−1、301−2、301−3、301−4、301−5および301−6、ダウンストリーム側ブリッジ302−1、302−2、302−3、302−4、302−5、302−6、302−7および302−8、仮想スイッチ生成部310、管理ポート399−1および399−2を備える。
【0027】
アップストリーム側ブリッジ301は、バス200を介して各計算機モジュールのI/Oブリッジ104−1または104−2と接続されている。図1では、I/Oブリッジ104−1とPCIeスイッチ300aをバス200−1で接続し、I/Oブリッジ104−2とPCIeスイッチ300bをバス200−2で接続するルールとした。接続パターンはこれに限られるものではない。
【0028】
ダウンストリーム側ブリッジ302は、バス210を介してI/Oアダプタ220と接続されている。必ずしも全てのダウンストリーム側ブリッジ302にI/Oアダプタ220を接続する必要はない。
【0029】
仮想スイッチ生成部310は、アップストリーム側ブリッジ301とダウンストリーム側ブリッジ302を仮想的に接続する仮想スイッチを生成する。仮想的に接続するとは、各ブリッジの物理的な配置等によらず、任意のブリッジ同士を論理的に接続することをいう。仮想的に接続された各ブリッジ間は、当該ブリッジの外部から見ると、直接接続されているように見える。仮想スイッチ生成部310は、このブリッジ同士の接続関係を任意に構成することができる。
【0030】
管理ポート399は、PCIeスイッチ300の外部よりPCIeスイッチ300の動作を管理するための信号を送受信する通信ポートである。管理ポート399を他のPCIeスイッチ300の管理ポート399と接続し、カスケード型のトポロジーを形成することもできる。図1では、PCIマネージャ400と管理ポート399b−2を接続し、PCIマネージャ400がPCIeスイッチ300bとの間の制御信号を送受信し、その信号をPCIeスイッチ300aと共有するように記載したが、接続関係はこれに限られない。
【0031】
PCIマネージャ400は、スイッチ管理部411、ホスト管理部412を備える。また、後述の図5〜図6で説明するリソース割当テーブル430とホスト管理テーブル440を、メモリやレジスタなどの適当な記憶装置内に保持する。スイッチ管理部411は、PCIeスイッチ300の動作を管理する。ホスト管理部412は、サービスプロセッサ150を介して、各計算機モジュールの動作を管理する。
【0032】
サービスプロセッサ150、仮想スイッチ生成部310、PCIマネージャ400は、これらの機能を実現する回路デバイスなどのようなハードウェアを用いて構成することができる。また、CPUなどの演算装置とその動作を規定するソフトウェアを用いて、同等の機能部を構成することもできる。
【0033】
サービスプロセッサ150、PCIマネージャ400は、一体的に構成してもよい。さらには、これらを各計算機と一体的に構成してもよいし、各計算機とは別の機能部として構成してもよい。
【0034】
以上、計算機システム1000の全体構成について説明した。次に、各部の詳細構成について、各機能部の対応関係を管理するための管理テーブルを中心に説明する。
【0035】
図2は、仮想スイッチ生成部310の内部構成を示す図である。仮想スイッチ生成部310は、メモリやレジスタなどの適当な記憶装置内に、ポート管理テーブル320、仮想スイッチ管理テーブル330、仮想ブリッジ管理テーブル340、バス割当管理テーブル370を格納する。各テーブルの構成について、以下の図3〜図6と図8で説明する。
【0036】
図3は、ポート管理テーブル320の構成とデータ例を示す図である。ポート管理テーブル320は、PCIeスイッチ300の各ブリッジが備えるポートの現在の状態を保持するテーブルであり、「スイッチ」列321、「ポート番号」列322、「方向」列323、「種別」列324、「リンク先」列325を有する。
【0037】
「スイッチ」列321は、PCIeスイッチ300の識別子を保持する。ここでは説明の便宜のため、図1に示す各PCIeスイッチの符号と同じ識別子を用いた。以下の各列および各テーブルについても同様である。
【0038】
「ポート番号」列322は、各ブリッジが備えるポートの識別子を保持する。ここでは各ブリッジがポートを1つ備えるものとし、各ブリッジの符号をもってポートの識別子とした。
【0039】
「方向」列323は、各ポートがアップストリームポートであるのか、それともダウンストリームポートであるのかを区別する値を保持する。本列の値が「up」となっているポートはアップストリームポート、「down」となっているポートはダウンストリームポートである。
【0040】
「種別」列324は、当該ポートに接続されている電子機器の種別を保持する。何も接続されていないポートについては、本列と「リンク先」列325の値は空である。
【0041】
「リンク先」列325は、当該ポートに接続されている電子機器の識別子を保持する。
【0042】
図4は、仮想スイッチ管理テーブル330と仮想ブリッジ管理テーブル340の構成とデータ例を示す図である。以下、各テーブルが備える列およびテーブル同士の相関関係について説明する。
【0043】
仮想スイッチ管理テーブル330は、仮想スイッチ生成部310が生成する仮想スイッチの状態を保持するテーブルであり、「スイッチ」列331、「VS番号」列332、「有効」列333、「開始VB番号」列334、「エントリ数」列335を有する。
【0044】
「スイッチ」列331は、PCIeスイッチ300の識別子を保持する。
【0045】
「VS番号」列332は、仮想スイッチ生成部310が生成する仮想スイッチの識別番号を保持する。
【0046】
「有効」列333は、当該仮想スイッチが有効化されているか否かを示す。
【0047】
「開始VB番号」列334は、「VS番号」列332の値で識別される仮想スイッチを構成する仮想ブリッジ(Virtual Bridge:VB)の開始番号を保持する。仮想ブリッジについては仮想ブリッジ管理テーブル340の説明において改めて述べる。例えば本列の値が「1」の場合、当該仮想スイッチが有する最初の仮想ブリッジの通番は「1」である。
【0048】
「エントリ数」列335は、「VS番号」列332の値で識別される仮想スイッチを構成する仮想ブリッジの数を保持する。例えば本列の値が「3」である場合、当該仮想スイッチは、「開始VB番号」列334の値で指定される番号から開始する連続した3つの通番を割り当てられた3つの仮想ブリッジを有する。
【0049】
仮想ブリッジ管理テーブル340は、各仮想スイッチが有する仮想ブリッジの状態を保持するテーブルである。仮想ブリッジとは、PCIeデバイス同士を仮想的に接続するインタフェース部分(ブリッジ)に相当する。実際に仮想ブリッジの数だけブリッジが存在するわけではなく、論理的なインタフェースが存在していることになる。
【0050】
仮想ブリッジ管理テーブル340は、「スイッチ」列341、「VB番号」列342、「有効」列343、「方向」列344、「マップ」列345、「ポート番号」列346、「VH番号」列347を有する。
【0051】
「スイッチ」列341は、PCIeスイッチ300の識別子を保持する。
【0052】
「VB番号」列342は、仮想スイッチ生成部310が生成する仮想ブリッジの識別番号を保持する。
【0053】
「有効」列343は、当該仮想ブリッジが有効化されているか否かを示す。
【0054】
「方向」列344は、当該仮想ブリッジがアップストリームポートに対応付けられているのか、それともダウンストリームポートに対応付けられているのかを区別する値を保持する。
【0055】
「マップ」列345は、当該仮想ブリッジが「ポート番号」列346の値で特定されるポートにマッピングされているか否かを示す。
【0056】
「ポート番号」列346は、各ブリッジが備えるポートの識別子を保持する。
【0057】
「VH番号」列347は、VH(Virtual Hierarchy)の通番を保持する。VHとは、仮想スイッチとその周辺機器からなる階層構造のことである。
【0058】
図4に示すデータ例について説明する。PCIeスイッチ300aには、「VB番号=1〜12」の12個の仮想ブリッジが割り当てられている。これらの仮想ブリッジのうち計算機モジュールやI/Oアダプタが接続されていないポート(301a−2、302a−2など)については、「有効=No」「マップ=No」となっている。
【0059】
仮想スイッチ管理テーブル330と仮想ブリッジ管理テーブル340の相関関係について説明する。仮想スイッチ管理テーブル330によれば、「VS番号=1」の仮想スイッチは、「VB番号=1」から開始して「エントリ数=3」個の仮想ブリッジを有することが分かる。仮想ブリッジ管理テーブル340の対応する箇所を参照すると、「VB番号=1〜3」の仮想ブリッジは「有効=Yes」となっており、それぞれアップストリームポートまたはダウンストリームポートにマッピングされていることが分かる。
【0060】
図5は、リソース割当テーブル430の構成とデータ例を示す図である。リソース割当テーブル430は、I/Oアダプタ220と各計算機モジュールの接続関係を保持するテーブルであり、「スイッチ」列431、「I/Oアダプタ」列432、「ホスト」列433を有する。
【0061】
「スイッチ」列431は、PCIeスイッチ300の識別子を保持する。
【0062】
「I/Oアダプタ」列432は、I/Oアダプタ220の識別子を保持する。
【0063】
「ホスト」列433は、計算機モジュール100の識別子を保持する。
【0064】
図6は、ホスト管理テーブル440の構成とデータ例を示す図である。ホスト管理テーブル440は、各計算機モジュールの稼動状態を保持するテーブルであり、「ホスト」列441、「現用系/待機系種別」列442を有する。
【0065】
「ホスト」列441は、計算機モジュールの識別子を保持する。
【0066】
「現用系/待機系種別」列442は、「ホスト」列441の値で識別される計算機モジュールの現在の稼動状態を保持する。本列の値を参照することにより、いずれの計算機モジュールが現用系(稼働状態)/待機系(待機状態)であるかを把握することができる。
【0067】
図7は、図4に示すテーブル状態によって定義される仮想スイッチの構成を示す図である。図7において、仮想スイッチ350と仮想ブリッジ360の添え字は、それぞれ図4における「VS番号」列の値と「VB番号」列の値に対応している。
【0068】
仮想スイッチ350−1は、仮想スイッチ管理テーブル330の1行目のデータに相当する。また、仮想スイッチ350−1が有する仮想ブリッジ360−1、360−2、360−3は、仮想ブリッジ管理テーブル340の1〜3行目のデータに相当する。
【0069】
同様に、仮想スイッチ350−8は、仮想スイッチ管理テーブル330の8行目のデータに相当する。また、仮想スイッチ350−8が有する仮想ブリッジ360−18、360−19は、仮想ブリッジ管理テーブル340の18〜19行目のデータに相当する。
【0070】
図8は、バス割当管理テーブル370の構成とデータ例を示す図である。バス割当管理テーブル370は、PCIバス番号と仮想ブリッジ360の対応関係を保持するテーブルである。
【0071】
PCIバス番号は、各PCIeデバイスを識別するため、計算機モジュールが各PCIeデバイスの間の接続経路に付与した論理的な識別子である。例えば図1と図7に示す接続例では、仮想スイッチ350−1から見てアップストリーム側のバス200a−1は「PCIバス番号=1」、仮想スイッチ350−1は「PCIバス番号=2」、バス210a−1は「PCIバス番号=3」、バス210a−3は「PCIバス番号=4」のPCIバスとして認識される。
【0072】
バス割当管理テーブル370は、上述のようなPCIバス番号の割り当てを管理するためのテーブルであり、「スイッチ」列371、「VB番号」列372、「上流バス番号(Primary Bus Number)」列373、「下流バス番号(Secondary Bus Number)」列374、「最下流バス番号(Subordinate Bus Number)」列375を有する。
【0073】
「スイッチ」列371は、PCIeスイッチ300の識別子を保持する。
【0074】
「VB番号」列372は、仮想ブリッジ360の識別番号を保持する。
【0075】
「上流バス番号」列373は、「VB番号」列372の値で特定される仮想ブリッジから見て上流に接続されている接続経路のPCIバス番号を示す。
【0076】
「下流バス番号」列374は、「VB番号」列372の値で特定される仮想ブリッジから見て下流に接続されている接続経路のPCIバス番号を示す。
【0077】
「最下流バス番号」列375は、「VB番号」列372の値で特定される仮想ブリッジから見て最も下流に接続されている接続経路のPCIバス番号を示す。
【0078】
バス割当管理テーブル370の内容は、PCIマネージャ400によって設定される。PCIマネージャ400は、PCIバス番号を固定的に割り当ててもよいし、規格に準じて使用中のI/Oアダプタ220に対してのみPCIバス番号を割り当ててもよい。PCI番号を固定的に割り当てる場合は、未使用のI/Oアダプタ220に対してもPCIバス番号をあらかじめ確保することができる。なお、現用系計算機モジュール100から待機系計算機モジュール110にPCIバス番号を引き継ぐ際には、上記いずれの手法を採用してもよい。
【0079】
以上、計算機システム1000の詳細構成について説明した。次に、現用系から待機系にシステムが切り替わるときの動作について、各テーブルが保持する値の変化を中心に説明する。
【0080】
図9は、現用系計算機モジュール100aから待機系計算機モジュール110eに切り替えるときの仮想スイッチ管理テーブル330と仮想ブリッジ管理テーブル340の変化を示す図である。
【0081】
仮想スイッチ生成部310aは、仮想スイッチ350−1によって現用系計算機モジュール100aに接続されていたI/Oアダプタ220a−1と220a−3を待機系計算機モジュール110eに接続するため、新たに仮想スイッチ360−5を生成する。また、仮想スイッチ360−5を構成するための仮想ブリッジ360−10、360−11、360−12を生成する。
【0082】
仮想スイッチ管理テーブル330では、仮想スイッチ360−5に対応する5行目のエントリが更新される。「開始VB番号」列334の値は、仮想ブリッジ360−10に対応する「10」である。「エントリ数」列335の値は、1行目と同じ「3」である。
【0083】
仮想ブリッジ管理テーブル340では、仮想ブリッジ360−10、360−11、360−12に対応する10〜12行目のエントリが更新される。仮想ブリッジ360−10に対応する「ポート番号」列346の値は、待機系計算機モジュール110eが接続されている、アップストリームポート「301a−5」である。ダウンストリームポートに対応する11〜12行目は、現用系計算機モジュール100aが使用していたI/Oアダプタ220a−1と220a−3が接続されている、ダウンストリームポート「302a−1」「302a−3」である。
【0084】
図10は、図9に示すテーブル状態によって定義される仮想スイッチの構成を示す図である。記載の簡易のため、現用系計算機モジュール100aと待機系計算機モジュール110eに係る仮想スイッチのみ示した。
【0085】
図11は、現用系計算機モジュール100aから待機系計算機モジュール110eに切り替わるときのバス割当管理テーブル370の変化を示す図である。仮想スイッチ生成部310が新たに生成した仮想ブリッジ360−10、360−11、360−12に対応する10〜12行目には、切り替え前の仮想ブリッジ360−1、360−2、360−3に対応する1〜3行目の値がコピーされている。
【0086】
もし待機系計算機モジュール110eが、独自にPCIバス番号を割り当てた場合、その番号構成は必ずしも現用系計算機モジュール100aと同一にならない可能性がある。その場合、待機系計算機モジュール110eから見ると、実際には同じI/Oアダプタであっても、現用系計算機モジュール100aが使用していたPCIバス番号とは異なるために、異なるPCIeデバイスを参照しているものとして認識される可能性がある。
【0087】
上記のような状況が発生すると、待機系計算機モジュール110eは、例えば切り替えの前後で異なるストレージ装置を参照していると判断し、切り替え前に現用系計算機モジュール100aが実行していた処理を中断する、といったことが起こり得る。
【0088】
図11に示すように、切り替えの前後でPCIバス番号を同一に維持することにより、待機系計算機モジュール110eにおいて、PCIバスの構成を現用系計算機モジュール100aと同一に維持することを図る。これにより、現用系と待機系で実質的に同一のI/O環境を実現する。
【0089】
図12は、現用系計算機モジュール100aから待機系計算機モジュール110eに切り替わるときの各機器の動作を示すシーケンス図である。以下、図12の各ステップについて説明する。
【0090】
(図12:ステップS1201)
本ステップにおいて、現用系計算機モジュール100aに障害が発生したものとする。ここで発生した障害は、現用系計算機モジュール100aの重要な機能、例えば一部のI/Oブリッジの破損などを想定する。
【0091】
(図12:ステップS1202)
現用系計算機モジュール100aは、自己に障害が発生したことを検出し、管理ポート106aを介してサービスプロセッサ150にその旨を通知する。
【0092】
(図12:ステップS1203)
サービスプロセッサ150は、現用系計算機モジュール100aに障害が発生した旨をPCIマネージャ400に報告する。障害の種類などを併せて報告してもよい。
【0093】
(図12:ステップS1204)
PCIマネージャ400は、現用系計算機モジュール100aの電源を強制的にOFFするように、サービスプロセッサ150へ指示する。
【0094】
(図12:ステップS1205)
サービスプロセッサ150は、電源を強制的にOFFするように、現用系計算機モジュール100aへ指示する。
【0095】
(図12:ステップS1206)
現用系計算機モジュール100aは、サービスプロセッサ150からの指示にしたがって電源をOFFする。
【0096】
(図12:ステップS1207)
サービスプロセッサ150は、現用系計算機モジュール100aの電源がOFFになったことを確認し、PCIマネージャ400にその旨を報告する。
【0097】
(図12:ステップS1208)
PCIマネージャ400は、PCIeスイッチ300aおよび300bの仮想スイッチ管理テーブル330、仮想ブリッジ管理テーブル340、バス割当管理テーブル370を、図9で説明した状態に更新するよう、仮想スイッチ生成部310bへ指示する。仮想スイッチ生成部310bは、指示にしたがって各テーブルを更新する。仮想スイッチ生成部310aも管理ポート399を介して同様に更新指示を受信し、各テーブルを更新する。
【0098】
(図12:ステップS1209)
PCIマネージャ400は、待機系計算機モジュール110eの電源をONするよう、サービスプロセッサ150に指示する。このとき、バス割当管理テーブル350が保持している、仮想ブリッジ360−10、360−11、360−12に対応するPCIバス番号を併せて通知する。
【0099】
(図12:ステップS1210)
サービスプロセッサ150は、電源をONするように、待機系計算機モジュール110eへ指示する。また、PCIマネージャ400より通知を受けたPCIバス番号を、併せて通知する。
【0100】
(図12:ステップS1211)
待機系計算機モジュール110eは、サービスプロセッサ150からの指示にしたがって電源をONする。また、サービスプロセッサ150より通知を受けたPCIバス番号を用いて、I/Oブリッジ104eからI/Oアダプタ220に至る接続経路を認識する。以後、待機系計算機モジュール110eは通常動作を実行する。
【0101】
以上、現用系計算機モジュール100aから待機系計算機モジュール110eにシステムが切り替わるときの動作を説明した。
【0102】
以上のように、本実施の形態1によれば、待機系計算機モジュールは、現用系計算機モジュールが非稼動状態に移行すると、現用系計算機モジュールが使用していたPCIバス番号を引き継いで、動作を開始する。これにより、待機系計算機モジュールは、現用系計算機モジュールと同一のI/O環境を実現することができる。したがって、現用系から待機系への切り替えの前後でI/O環境が異なることによる不具合、例えばOS(オペレーティングシステム)のブート失敗などの発生を抑えることができる。
【0103】
また、本実施の形態1によれば、PCIeスイッチ300の仮想スイッチ生成部310は仮想スイッチを生成して各計算機モジュールとI/Oアダプタを論理的に接続し、各計算機モジュールはその論理的接続経路にPCIバス番号を付与して識別する。これにより、各計算機モジュールは接続経路が仮想的なものであるか否かによらず、PCIバスとして同様に認識することができる。また、そのPCIバス番号を現用系計算機モジュールから待機系計算機モジュールに引き継ぐことにより、切り替えにともなってPCIeスイッチ300内で仮想スイッチの状態が変わっても、待機系計算機モジュールはそのことを意識せず、切り替え前と同一のPCIバスとして認識することができる。
【0104】
<実施の形態2>
本発明の実施の形態2では、実施の形態1で説明した計算機システム1000を多重構成にした例を説明する。多重構成のシステムとすることにより、システムの可用性などの向上を図る。
【0105】
図13は、本実施の形態2に係る計算機システム2000の構成図である。本実施の形態2に係る計算機システム2000は、1以上の計算機モジュールを収納するサーバシャーシ700と、1以上のI/Oアダプタ220を収納するI/Oドロワ720を、それぞれ複数備える。また、計算機モジュールとI/Oアダプタ220の間にPCIeスイッチを2段導入し、接続経路を各サーバシャーシ700にまたがってメッシュ状に構成した。以下、各構成について説明する。
【0106】
サーバシャーシ700−1は、1以上(図13では8台)のブレードサーバ710、サービスプロセッサ150、1以上のPCIeスイッチ300を収納する。
【0107】
ブレードサーバ710は、実施の形態1における計算機モジュールに相当する。
【0108】
サービスプロセッサ150は、サーバシャーシ700が収納するブレードサーバ710の動作を管理する。サービスプロセッサ150は、管理用接続線170を介してPCIマネージャ400に接続されている。また、適当なインタフェースを介して管理コンソール180にも接続されている。
【0109】
サーバシャーシ700内のPCIeスイッチ300は、1以上のブレードサーバ710のI/Oブリッジと接続されている。各PCIeスイッチ300は、管理ポート399を介してカスケード接続されている。サーバシャーシ700−1が収納するPCIeスイッチ300のうち1つは、サーバシャーシ700−2が収納するPCIeスイッチ300のうち1つの管理ポート399と接続されている。
【0110】
サーバシャーシ700−2は、サーバシャーシ700−1と同様の機器構成を収納しているが、PCIeスイッチ300のうち1つが管理ポート399を介してPCIマネージャ400と接続されている点が異なる。PCIマネージャ400は、サーバシャーシ700−2が収納するPCIeスイッチ300との間で制御信号を送受信する。その制御信号は、管理ポート399を介して他のPCIeスイッチ300との間で共有され、さらにはサーバシャーシ700−1が収納するPCIeスイッチ300との間でも共有される。
【0111】
I/Oドロワ720は、1以上のPCIeスイッチ300と、1以上のI/Oアダプタ220を収納する。
【0112】
I/Oドロワ720内のPCIeスイッチ300は、1以上のI/Oアダプタ220と接続されている。各PCIeスイッチ300は、管理ポート399を介してカスケード接続されている。I/Oドロワ720が収納するPCIeスイッチのうち1つは、他のI/Oドロワ720が収納するPCIeスイッチのうち1つの管理ポート399と接続されている。また、I/Oドロワ720−4が収納しているPCIeスイッチ300のうち1つは、管理ポート399を介してPCIマネージャ400と接続されている。
【0113】
サーバシャーシ700が収納しているPCIeスイッチ300と、I/Oドロワ720が収納しているPCIeスイッチ300との間は、バス220を介してメッシュ状に接続されている。
【0114】
サーバシャーシ700内には、ブレードサーバ710と同数(8台)のPCIeスイッチ300を配置する。各ブレードサーバ710は、4つのI/Oブリッジ104を備える。各I/Oブリッジ104を、それぞれ異なるPCIeスイッチ300と接続する。1〜4台目のブレードサーバ710のI/Oブリッジ104は、1〜4台目のPCIeスイッチ300と接続されている。5〜8台目のブレードサーバ710のI/Oブリッジ104は、5〜8台目のPCIeスイッチ300と接続されている。
【0115】
I/Oドロワ720−1内には、PCIeスイッチ300を2台配置する。各PCIeスイッチ300は、4つのアップストリームポートを備える。2つのアップストリームポートを、サーバシャーシ700−1内の1台目と5台目のPCIeスイッチ300に接続し、残り2つのアップストリームポートを、サーバシャーシ700−2内の1台目と5台目のPCIeスイッチ300に接続する。同様に、I/Oドロワ720−2内のPCIeスイッチ300については、2つのアップストリームポートを、サーバシャーシ700−1内の2台目と6台目のPCIeスイッチ300に接続し、残り2つのアップストリームポートを、サーバシャーシ700−2内の2台目と6台目のPCIeスイッチ300に接続する。以下同様である。
【0116】
上記構成により、以下の効果を発揮することができる。
通常のコールドスタンバイ方式による冗長化では、待機系ブレードのI/Oアダプタの構成は現用系ブレードサーバが使用するI/Oアダプタと同じ構成をとらなければならないが、本方式では現用系ブレードサーバで使用していたI/Oアダプタをそのまま待機系ブレードサーバで使用することができ、待機系ブレードサーバ用にI/Oアダプタを用意する必要がないため、本構成のようなI/Oアダプタが多いシステムでは、待機系のI/Oアダプタのコストを削減することができる。
【0117】
また、通常のコールドスタンバイ方式による冗長化では、待機系のI/Oアダプタの構成が現用系ブレードサーバと同じである必要があるため、複数の現用系ブレードサーバのI/Oアダプタの構成がそれぞれ異なる場合、現用系ブレードサーバのI/Oアダプタの構成の数だけ待機系ブレードサーバが必要となるが、本方式では現用系ブレードサーバのI/Oアダプタ構成がどのような構成であっても待機系ブレードサーバに引き継ぐことが可能なため、本構成のサーバシャーシ700−1と700−2が収納する16台のブレードサーバを任意に現用系/待機系いずれでも用いることができる。たとえばブレードサーバの多くを現用系として割り当てれば使用効率の高いシステムを構築することができ、ブレードサーバの多くを待機系として割り当てれば、可用性の高いシステムを構築することができる。
【0118】
以上のように、本実施の形態2によれば、各サーバシャーシ700内でブレードサーバ710同士が相互に補完し合うのみならず、サーバシャーシ700間でブレードサーバ710が相互に補完することができる。これにより、計算機システム2000の可用性を向上させることができる。
【0119】
また、本実施の形態2によれば、PCIeスイッチ300をサーバシャーシ700内とI/Oドロワ720内にそれぞれ配置して多段構成としたため、計算機システム2000をより柔軟に構成することができる。例えば、PCIeスイッチ300のポートに空きがあれば、新たなサーバシャーシ700−3やI/Oドロワ720−5を導入し、サーバシャーシ700側を3並列、I/Oドロワ720側を5並列の構成とすることができる。
【0120】
また、本実施の形態2によれば、サービスプロセッサ150〜PCIマネージャ400を介して、サーバシャーシをまたがってPCIバス番号を待機系計算機モジュール(本実施の形態2ではブレードサーバ710)に引き継ぐことができる。これにより、サーバシャーシをまたがって、現用系と待機系で同様のI/O環境を実現することができるので、コールドスタンバイシステムをより柔軟に構成することができる。例えば、後からサーバシャーシ700を追加し、そのサーバシャーシ内の計算機モジュールを待機系として用いる、といった追加的なサーバ運用が可能となる。
【符号の説明】
【0121】
100a、100b、100c、100d:現用系計算機モジュール、110e、110f:待機系計算機モジュール、101−1、101−2:CPU、102:チップセット、103:ルートコンプレックス、105:メモリ、106:管理ポート、150:サービスプロセッサ、180:管理コンソール、220a−1、220a−3、220a−5、220a−8、220b−2、220b−4、220b−5、220b−7:I/Oアダプタ、300a、300b:PCIeスイッチ、301−1、301−2、301−3、301−4、301−5、301−6:アップストリーム側ブリッジ、302−1、302−2、302−3、302−4、302−5、302−6、302−7、302−8:ダウンストリーム側ブリッジ、310:仮想スイッチ生成部、320:ポート管理テーブル、330:仮想スイッチ管理テーブル、340:仮想ブリッジ管理テーブル、370:バス割当管理テーブル、399−1、399−2:管理ポート、400:PCIマネージャ、430:リソース割当テーブル、440:ホスト管理テーブル、1000、2000:計算機システム。

【特許請求の範囲】
【請求項1】
演算装置を備えた複数の計算機モジュールと、
I/Oアダプタと、
前記計算機モジュールを接続するアップストリームポート及び前記I/Oアダプタを接続するダウンストリームポートを有するスイッチと、
PCIマネージャと
を備え、
前記スイッチは、
前記アップストリームポートと前記ダウンストリームポートとを論理的に接続する仮想スイッチを有し、
稼動状態にある計算機モジュールと第1の仮想スイッチとの間の接続経路を論理的に識別する第1の識別子及び前記第1の仮想スイッチと前記I/Oアダプタとの接続経路を論理的に識別する第2の識別子を保持し、
稼動状態にある前記計算機モジュールが非稼動状態に移行すると、前記非稼動状態を検出した前記PCIマネージャは、前記スイッチに対して前記識別子の更新指示を出し、
前記識別子の更新指示を受けた前記スイッチは、
待機状態にある計算機モジュールと第2の仮想スイッチとの接続経路を論理的に識別する第3の識別子に、前記第1の識別子を引き継ぎ、
前記第2の仮想スイッチと前記I/Oアダプタとの接続経路を識別する第4の識別子に、前記第2の識別子を引き継ぎ、
前記待機状態にある計算機モジュールは、前記識別子の引き継ぎ後に稼動状態に移行する
ことを特徴とする計算機装置。
【請求項2】
前記スイッチは、
前記アップストリームポートと前記ダウンストリームポートとを論理的に接続する仮想スイッチを生成する仮想スイッチ生成部を備え、
前記計算機モジュールと前記仮想スイッチとの間の接続経路を論理的に識別する識別子、及び前記仮想スイッチと前記I/Oアダプタとの接続経路を論理的に識別する識別子を、仮想ブリッジ管理情報として保持する、
ことを特徴とする請求項1記載の計算機装置。
【請求項3】
前記スイッチは、
前記アップストリームポートと前記ダウンストリームポートとの間の論理的な接続経路を論理的に識別するスイッチ識別子を、仮想スイッチ管理情報として保持する
ことを特徴とする請求項2記載の計算機装置。
【請求項4】
前記計算機モジュールの状態を管理する前記PCIマネージャは、
稼動状態にある前記計算機モジュールが非稼動状態に移行すると、
前記第1の識別子及び第2の識別子を、待機状態にある計算機モジュールから前記I/Oアダプタへの接続経路を論理的に識別する前記第3の識別子及び前記第4の識別子に引き継ぐように前記仮想ブリッジ管理情報及び前記仮想スイッチ管理情報の更新する更新指示を、前記スイッチに出力する
ことを特徴とする請求項1記載の計算機装置。
【請求項5】
請求項1記載の1以上の計算機装置を備えることを特徴とする計算機システム。
【請求項6】
更に、前記計算機モジュールが使用する通信装置を接続する1以上の第2スイッチを備え、
前記スイッチと前記第2スイッチを接続した
ことを特徴とする請求項5記載の計算機システム。
【請求項7】
前記第2スイッチは、
前記スイッチを接続するアップストリームポートと、
前記計算機モジュールが使用する通信装置を接続するダウンストリームポートと、
を備え、
前記スイッチが備えるダウンストリームポートと前記第2スイッチが備えるアップストリームポートとを接続した
ことを特徴とする請求項6記載の計算機システム。
【請求項8】
演算装置を備えた複数の計算機モジュールと、I/Oアダプタと、前記計算機モジュールを接続するアップストリームポート及び前記I/Oアダプタを接続するダウンストリームポートを有するスイッチと、PCIマネージャとを備える計算機装置におけるアダプタ承継方法であって、
前記スイッチは、
前記アップストリームポートと前記ダウンストリームポートとを論理的に接続し、
稼動状態にある計算機モジュールと第1の仮想スイッチとの間の接続経路を論理的に識別する第1の識別子及び前記第1の仮想スイッチと前記I/Oアダプタとの接続経路を論理的に識別する第2の識別子を保持し、
稼動状態にある前記計算機モジュールが非稼動状態に移行すると、
前記非稼動状態を検出した前記PCIマネージャは、前記スイッチに対して前記識別子の更新指示を出し、
前記識別子の更新指示を受けた前記スイッチは、
待機状態にある計算機モジュールと第2の仮想スイッチとの接続経路を論理的に識別する第3の識別子に、前記引き継いだ第1の識別子を引き継ぎ、
前記第2の仮想スイッチと前記I/Oアダプタとの接続経路を識別する第4の識別子に、前記第2の識別子を引き継ぎ
前記待機状態にある計算機モジュールは、前記識別子の引き継ぎ後に稼動状態に移行する
ことを特徴とするアダプタ承継方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2011−81462(P2011−81462A)
【公開日】平成23年4月21日(2011.4.21)
【国際特許分類】
【出願番号】特願2009−231078(P2009−231078)
【出願日】平成21年10月5日(2009.10.5)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】