説明

PCIスイッチ、仮想ツリー切り替え方法、及びPCIスイッチシステム

【課題】PCIMが仮想ツリーを切り替えるタイミングを判定する装置及び方法を提供する。
【解決手段】複数のUpstreamポートと複数のDownstreamポートを備え、少なくとも一つのUpstreamポートに一以上の物理サーバが接続され、少なくとも一つのDownstreamポートに一以上のI/Oデバイスが接続されたPCIスイッチであって、PCIスイッチは、仮想ツリーに関する特定の処理の完了を検知し、検知した結果に基づいて仮想PCIスイッチの構成が変更可能であるか否かを判定し、少なくとも仮想PCIスイッチの構成が変更可能であることと、仮想PCIスイッチを特定する識別子とを含む通知情報を送信する制御部と、を備えたことを特徴とする

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の計算機と複数のI/Oデバイスとを接続するPCIスイッチに関する。
【背景技術】
【0002】
近年のITシステムでは大量のサーバが利用されており、大量のサーバを設置するスペースを確保するために、ブレードサーバのような高密度なサーバが求められている。また、一方では、サーバに搭載されるCPUは、半導体技術の進展によって、複数のCPUを同一のLSI上に搭載するマルチコア化が進展している。
【0003】
前述したように、ブレードサーバは高密度であることが要求されるため、I/Oデバイスの搭載数には制限があるのに対し、高性能化していくCPUは性能を有効に活用するためにI/Oデバイスの数を増やす必要があり、両者の相反する要求が問題であった。
【0004】
前述した問題の解決方法として、I/Oデバイスの搭載数を増加させるPCIスイッチを用いることが考えられる(例えば、特許文献1を参照)。近年、PCIの規格を策定するPCI SIGにおいて、複数のサーバに対応した規格であるMR−IOV(マルチルートIO仮想化)が策定されており、該規格に対応したPCIスイッチはブレードサーバにも適用可能である。
【0005】
MR−IOVに対応するPCIスイッチは、複数のサーバ各々に別のデバイスツリーを認識させることができる。前述したような複数のサーバ各々が認識できるデバイスツリーを仮想ツリーと呼ぶ。
【0006】
該PCIスイッチを用いたシステムでは、複数のサーバと複数のI/Oデバイスとが該PCIスイッチを介して接続される。PCIスイッチに接続された複数のサーバと複数のI/Oデバイスとは、PCIスイッチ内で構成される複数の仮想ツリーによって対応付けられている。前述したように該PCIスイッチは複数の独立した仮想ツリーを構成し、各々の仮想ツリー(例えば、第一の仮想ツリーと第二の仮想ツリーと)はそれぞれ異なるサーバのI/Oサブシステムとして利用することができる。
【0007】
仮想ツリーを制御するPCI−Manager(以下、PCIM)は、仮想ツリーの生成・削除・変更等の管理を行う。PCIMはソフトウェアとして実装されるためサーバ上でも実行可能であるが、一般的にセキュリティの面を考慮してSuper Visor Proessor(SVP)等に実装される。なお、MR−IOVでは、特に仮想ツリーをVH(Virtual Hierarchy)と呼ぶ。
【特許文献1】米国特許出願公開第2006/0242353号明細書
【発明の開示】
【発明が解決しようとする課題】
【0008】
MR−IOVに対応するPCIスイッチは、システムを停止させることなく仮想ツリーの構成を切り替えて、新たに仮想ツリーを構成することができる。したがって、MR−IOVに対応するPCIスイッチを用いて一以上のサーバと一以上のI/Oデバイスとを接続したサーバシステムでは、仮想ツリーを切り替えることによって、一以上のサーバと一以上のI/Oデバイスとの対応付けを任意に変更することができる。
【0009】
仮想ツリーの切り替えはサーバシステムに備えられた管理マネージャであるPCIMが行い、仮想ツリーはサーバが使用する。つまり、仮想ツリーの管理者と仮想ツリーの使用者とが異なる。
【0010】
通常、サーバとPCIMとは物理的に分かれており、仮想ツリーに対して異なる経路でアクセスを行うため、仮想ツリー内において、サーバのトランザクションとPCIMのトランザクションとの順序が保証されない。このため、サーバが仮想ツリーを使用している時にPCIMが仮想ツリーの切り替えを実行した場合、不具合が生じる。
【0011】
例えば、PCIスイッチ内に残留したトランザクションに関する不具合が考えられる。トランザクションが処理されている時に仮想ツリーが切り替えられた場合、処理中のトランザクションがPCIスイッチ内に残留する。その後、PCIMが、仮想ツリーを切り替え、トランザクションが残留しているPCIスイッチを用いて仮想ツリーを再度構成した場合、前記PCIスイッチ内に残留していたトランザクションによって、サーバまたはI/Oデバイスが予測しない動作を行う可能性がある。仮想ツリーを切り替えるときに、前述したようなサーバの動作における整合性が崩れることは、重要な業務を行うサーバには許容されない。
【0012】
本発明は、切り替え対象の仮想ツリーを構成するPCIスイッチ内に存在するトランザクションが全て処理済であることを検知し、さらに、仮想ツリーを構成する仮想PCIスイッチ(図2参照)の構成が変更可能であることを判定し、PCIMに仮想PCIスイッチの構成が変更可能であることを通知し、仮想ツリーを切り替えるタイミングを保証するPCIスイッチを提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明の代表的な一例を示せば以下の通りである。すなわち、複数のUpstreamポートと複数のDownstreamポートを備え、少なくとも一つの前記Upstreamポートに一以上の物理サーバが接続され、少なくとも一つの前記Downstreamポートに一以上のI/Oデバイスが接続されたPCIスイッチであって、前記PCIスイッチは、前記一以上の物理サーバと前記一以上のI/Oデバイスとを対応付けを示す仮想ツリーを構成する仮想PCIスイッチの構成を設定するスイッチユニットと、複数の前記Upstreamポート及び複数の前記Downstreamポートと、前記スイッチユニットとを接続するPCIブリッジと、前記仮想ツリーに関する特定の処理の完了を検知し、前記検知した結果に基づいて前記仮想PCIスイッチの切り替えが可能であるか否かを判定し、前記判定結果が切り替え可能であるときに、少なくとも前記仮想PCIスイッチの切り替えが可能であることと、前記仮想PCIスイッチを特定する識別子とを含む通知情報を送信する制御部と、を備えたことを特徴とする。
【発明の効果】
【0014】
本発明の一実施の形態によれば、PCIスイッチが、切り替え対象の仮想ツリーを構成するPCIスイッチ内に存在する全てのトランザクションの処理が完了していることを検知し、さらに、切り替え対象の仮想ツリーを構成する仮想PCIスイッチの構成が変更可能であるか否かを判定し、切り替え対象の仮想ツリーを構成する仮想PCIスイッチの構成が変更可能である場合、切り替え対象の仮想ツリーを構成する仮想PCIスイッチの構成が変更可能であることを管理マネージャに通知し、管理マネージャが前記通知に基づいて、仮想ツリーの切り替えが可能であるか否かを判定することによって、管理マネージャは、最適なタイミングで仮想ツリーを切り替えることができる。
【発明を実施するための最良の形態】
【0015】
[第1の実施の形態]
図1は、本発明の第1の実施の形態のサーバシステムの構成図である。
【0016】
サーバシステムは、複数の物理サーバ100−1、100−2と、複数のI/Oデバイス114−1、114−2、114−3、114−4とを備え、これらは互いに複数のPCIスイッチA107−1、B107−2、C107−3、D107−4を介して接続されている。以下、物理サーバ100−1、100−2を特別に区別しない場合は、単に物理サーバ100と記載する。他の符号についても同様に記載する。複数のPCIスイッチA107−1、B107−2、C107−3、D107−4を特別に区別しない場合、単にPCIスイッチ107と記載する。
【0017】
また、サーバシステムは、物理サーバ100とI/Oデバイス114との対応付けを示す仮想ツリーの構成、変更、及び削除を行う管理マネージャであるPCIM112−1と、物理サーバ100の電源制御及び状態管理を行うサーバ管理部113−1とを備える。なお、図1において、PCIM112−1及びサーバ管理部113−1は一つのみを示しているが、本発明はこれに限定されず、二つ以上あってもよい。
【0018】
PCIM112−1と複数のPCIスイッチ107は、制御I/F115−1を介して接続されているが、PCIM112−1から各々のPCIスイッチ107への設定の読み出し及び変更ができれば、他のスイッチ等を経由して間接的に接続されていてもよい。
【0019】
サーバ管理部113−1と各物理サーバ100のチップセット102−1、102−2は、制御I/F116−1介して接続されているが、物理サーバ100の電源制御及び状態管理ができれば、他のスイッチ等を経由して間接的に接続されていてもよい。
【0020】
PCIM112−1とサーバ管理部113−1とは、制御I/F118−1を介して接続されているが、PCIM112−1とサーバ管理部113−1との間で通信を行うことができれば、他のスイッチ等を経由して間接的に接続されてもよいし、また、物理的に同一のモジュールに搭載されていてもよい。
【0021】
なお、制御I/F115−1、116−1、118−1は、例えば、LAN(Local Area Network)が使用される。
【0022】
PCIスイッチ107は、複数のUpstreamポート121、複数のDownstreamポート122、UpstreamポートとDownstreamポートとの間の通信を制御するスイッチユニット108、及びPCIスイッチ107の設定を制御するスイッチ制御部109を備える。
【0023】
前記スイッチ制御部109は、少なくともUpstreamポート121とDownstreamポート122との間の対応付けを管理するMR(マルチルート)制御部110を含む。さらに、前記スイッチ制御部109は、切り替え対象の仮想ツリーを構成するPCIスイッチ107内に存在する全てのトランザクションの処理が完了していることを検知し、切り替え対象の仮想ツリーを構成する仮想PCIスイッチ(図2参照)の構成が変更可能であるか否かを判定し、切り替え対象の仮想ツリーを構成する仮想PCIスイッチ(図2参照)の構成が変更可能であると判定された場合、切り替え対象の仮想ツリーを構成する仮想PCIスイッチ(図2参照)の構成が変更可能であること含む通知情報をPCIM112−1に送信する仮想ツリーステート通知部111を含む。
【0024】
PCIM112−1は、仮想ツリーを制御する仮想ツリー制御部123−1、及びMR環境での障害処理を実行するMR障害処理部124−1を含むPCIMユニット119−1を備える。さらに、本発明では、特定の仮想ツリーの切り替えが可能であるか否かを判定する仮想ツリーステート管理部120−1を含む。
【0025】
I/Oデバイス114−1、114−2、114−3、114−4とPCIスイッチC107−3、D107−4のDownstreamポートC122−5、D122−6、C122−7、D122−8との間は、Base PCIまたはMR−IOV対応の(以下、MR)PCI規格のインタフェース117−9、117−10、117−11、117−12で接続されている。
【0026】
物理サーバ100のチップセット102−1、102−2とPCIスイッチA107−1、B107−2のUpstreamポートA121−1、B121−2、A121−3、B121−4との間は、Base PCIまたはMR PCI規格のインタフェース117−1、117−2、117−3、117−4で接続されている。
【0027】
PCIスイッチA107−1、B107−2のDownstreamポートC122−1、D122−2、C122−3、D122−4と、PCIスイッチC107−3、D107−4のUpstreamポートA121−5、B121−6、A121−7、B121−8との間は、MR PCI規格のインタフェース117−5、117−6、117−7、117−8で接続されている。以下、Upstreamポート121、及びDownstreamポート122を区別しない場合、ポート121、122と記載する。
【0028】
物理サーバ100は、一つ以上のCPU103、メモリ104、及びチップセット102からなるハードウェア101を含む。また、物理サーバ100は、ハードウェア101の制御を行うファームウェア105とオペレーティングシステム(OS)106とを備える。
【0029】
次に、仮想ツリーを実現するためのスイッチユニット108とPCIM112−1について、図2〜8を用いて説明する。なお、ここで説明する装置と方法は仮想ツリーを実現するための一例であり、同等の機能を実現する構成は本説明の一通りに限らない。
【0030】
図2は、本発明の第1の実施の形態のPCIスイッチA107−1のスイッチユニット108−1の構成、及び仮想ツリーを説明するブロック図である。以下、PCIスイッチA107−1について説明するが、他のPCIスイッチB107−2、C107−3、D107−4も同様の構成である。
【0031】
スイッチユニット108−1は、Upstream側コンフィギュラブルPCIバス部201−1、仮想PCIスイッチコンフィギュラブルPCIバス部202−1、Downstream側コンフィギュラブルPCIバス部203−1、複数のUpstream側PCIブリッジ204、及び複数のDownstream側PCIブリッジ205を備える。
【0032】
Upstream側コンフィギュラブルPCIバス部201−1は、Upstreamポート121とUpstream側PCIブリッジ204との間のバスを構成する。仮想PCIスイッチコンフィギュラブルPCIバス部202−1は、Upstream側PCIブリッジ204とDownstream側PCIブリッジ205との間のバスを構成する。Downstream側コンフィギュラブルPCIバス部203−1は、Downstreamポート122とDownstream側PCIブリッジ205との間のバスを構成する。以下、Upstream側コンフィギュラブルPCIバス部201、仮想PCIスイッチコンフィギュラブルPCIバス部202、及びDownstream側コンフィギュラブルPCIバス部203を区別しない場合、コンフィギュラブルPCIバス部201、202、203と記載する。また、Upstream側PCIブリッジ204、及びDownstream側PCIブリッジ205を区別しない場合、PCIブリッジ204、205と記載する。
【0033】
各コンフィギュラブルPCIバス部201、202、203は、複数の独立したバスを構成することも可能である。また、各コンフィギュラブルPCIバス部201、202、203のバスの構成は、MR制御部110−1が行う。
【0034】
MR制御部110−1は、バスの構成を管理するためのMR Upstream制御テーブル300−1とMR Downstream制御テーブル310−1とを備える。以下、MR Upstream制御テーブル300−1とMR Downstream制御テーブル310−1とを区別しない場合、制御テーブル300、310と記載する。
【0035】
PCIM112−1は、制御テーブル300、310を読み出すことによって、バスの構成が分かる。また、PCIM112−1は制御テーブル300、310にバスの構成を書き込むことによって、バスの構成を変更することができる。なお、各コンフィギュラブルPCIバス部201、202、203が二つ以上の独立したバスを構成している場合、PCIM112−1は、特定のバスのみを変更することもできる。
【0036】
次に、各コンフィギュラブルPCIバス部201、202、203は短破線で示すバスが構成されているものとし、各UpstreamポートA121−1、B121−2に接続されている物理サーバ100が認識できる仮想ツリーの構成について説明する。
【0037】
UpstreamポートA121−1に接続されている物理サーバ100は、長破線で囲まれた部分のPCIブリッジ群206(PCIブリッジA204−1、PCIブリッジE205−1、PCIブリッジF205−2)を認識できる。一つのUpstream側PCIブリッジ204と複数のDownstream側PCIブリッジ205とからなる構成は、論理的にPCIスイッチと同等である。以下、長破線で囲ったPCIブリッジ群206を仮想PCIスイッチ206と呼ぶ。また、図2に示すように符号206−1と符号Aとは同一のものを表し、以下、仮想PCIスイッチA206−1または仮想PCIスイッチAと記載する。他の符号B〜F等についても同様に記載する。
【0038】
すなわち、UpstreamポートA121−1に接続されている物理サーバ100は、長破線で囲った仮想PCIスイッチA206−1を介して、DownstreamポートC122−1、D122−2までのツリー構造を認識することができる。このように、Upstreamポート121に接続されている物理サーバ100から認識可能なツリー構造を仮想ツリーと呼ぶ。
【0039】
UpstreamポートB121−2に接続されている物理サーバ100は、Upstream側PCIブリッジD204−4を認識することができるが、Upstream側PCIブリッジD204−4から先はバスが設定されていない。したがって、Upstream側PCIブリッジD204−4が、UpstreamポートB121−2に接続されている物理サーバ100が認識できる仮想ツリーの終端となる。
【0040】
図3は、本発明の第1の実施の形態の仮想PCIスイッチコンフィギュラブルPCIバス部202−1のバス構成を変更した場合の仮想ツリーを示す説明図である。
【0041】
図3において、各コンフィギュラブルPCIバス部201−1、202−1、203−1は短破線で示すバスが構成されているものとし、各UpstreamポートA121−1、B121−2に接続されている物理サーバ100が認識できる仮想ツリーの構成について説明する。
【0042】
UpstreamポートB121−2に接続されている物理サーバ100は、長破線で囲まれた部分の仮想PCIスイッチB206−2を認識し、仮想PCIスイッチB206−2を介してDownstreamポートC122−1、D122−2までの仮想ツリーを認識できる。
【0043】
もう一方のUpstreamポートA121−1に接続された物理サーバ100は、Upstream側PCIブリッジA204−1を認識することができるが、Upstream側PCIブリッジA204−1から先はバスが構成されていない。したがって、Upstream側PCIブリッジA204−1が、UpstreamポートA121−1に接続されている物理サーバ100から認識される仮想ツリーの終端となる。
【0044】
図4は、本発明の第1の実施の形態において縦列に多段のPCIスイッチA107−1、B107−2を接続し、二つのUpstreamポートA121−1、B121−2に接続された各々の物理サーバ100毎に、独立した二つの仮想ツリーを構成する場合を示す説明図である。
【0045】
図4において、各コンフィギュラブルPCIバス部201−1、202−1、203−1、201−2、202−2、203−2は、短破線で示すバスが構成されているものとする。また、一つのDownstreamポートC122−1に複数のDownstream側PCIブリッジE205−1と、F205−2とが対応付けられており、また、一つのUpstreamポートA121−3に複数のUpstream側PCIブリッジA204−5と、B204−6とが対応付けられている。
【0046】
まず、複数のPCIブリッジ204、205が同一のポート121、122を共有することができることについて説明する。
【0047】
PCIスイッチ107は、一つのポート121、122に複数のPCIブリッジ204、205を割り当てる機能としてMR_PCIリンクを備える。MR PCIリンクは、リンクローカル識別子によって分類される。リンクローカル識別子は、複数のUpstream側PCIブリッジ204と複数のDownstream側PCIブリッジ205とが同一のポート121、122で接続されている場合、接続されている複数のUpstream側PCIブリッジ204と複数のDownstream側PCIブリッジ205との接続関係を特定するための識別子である。
【0048】
具体的には、PCIスイッチ107は、MR PCIリンクを通過するパケットにリンクローカル識別子を割り当てており、割り当てられたリンクローカル識別子に応じて接続(リンク)先のUpstream側PCIブリッジ204が対応付けられる。つまり、リンクローカル識別子が同一のUpstream側PCIブリッジ204とDownstream側PCIブリッジ205とが通信することができる。
【0049】
例えば、Downstream側PCIブリッジE205−1とUpstream側PCIブリッジA204−5とがリンクローカル識別子「1」で対応付けられており、Downstream側PCIブリッジF205−2とUpstream側PCIブリッジB204−6とがリンクローカル識別子「2」で対応付けられている場合、リンクローカル識別子が同一のDownstream側PCIブリッジE205−1とUpstream側PCIブリッジA204−5との間で通信することができ、また、Downstream側PCIブリッジF205−2とUpstream側PCIブリッジB204−6との間で通信することできる。しかし、Downstream側PCIブリッジE205−1とUpstream側PCIブリッジB204−6とは、同一のポートを使用していてもリンクローカル識別子が異なるため通信することはできない。
【0050】
リンクローカル識別子が割り当てられたことによって、UpstreamポートA121−1に接続された物理サーバ100は仮想PCIスイッチC206−3と仮想PCIスイッチE206−5とから構成される仮想ツリーが認識でき、UpstreamポートB121−2に接続された物理サーバ100は仮想PCIスイッチD206−4と仮想PCIスイッチF206−6とから構成される別の仮想ツリーを認識できる。なお、リンクローカル識別子は、MR制御部110によってMR PCIリンク毎に重複しないように割り当てられている。前述したように、PCIスイッチ107は、複数のPCIブリッジ204、205で同一のポートを共有することができる。
【0051】
次に、PCIM112−1が実行する仮想ツリーの切り替え処理について説明する。
【0052】
仮想ツリーの切り替え処理は、MR制御部110の各コンフィギュラブルPCIバス部201、202、203のバスの構成が変更され、仮想PCIスイッチ206の構成が変更されることによって、実行される。
【0053】
仮想ツリーの切り替え処理は、サーバシステムで実行中の全ての物理サーバ100に影響するため、実行中の物理サーバ100自身が仮想ツリーの切り替え処理を行うことはセキュリティ上問題がある。したがって、実行中である物理サーバ100とは別にPCIM112−1が存在し、PCIM112−1が仮想ツリーの切り替え処理を実行することが望ましい。
【0054】
本実施の形態において、PCIM112−1が仮想ツリー切り替え処理の実行要求を各PCIスイッチ107に送信し、各PCIスイッチ107のMR制御部110が前記要求を受信し、前記受信した要求に基づいて、各PCIスイッチ107のMR制御部110が仮想PCIスイッチ206の構成を変更することによって、仮想ツリーの切り替え処理が実行される。なお、仮想ツリーの切り替え処理の実行要求には、新たな仮想ツリーの構成に関する情報が含まれる。
【0055】
なお、仮想ツリーの構成の方法及び仮想ツリーの切り替えの方法は本実施の形態の一つに限られるものではなく、同等の機能が実現できるものならばどのような形態であってもよい。
【0056】
具体的には、図4において、仮想ツリーの切り替え処理を行うとき、PCIM112−1の仮想ツリー制御部123が、各々のスイッチユニット108−1、108−2に接続されたMR制御部110−1、110−2の各制御テーブル300−1、310−1、300−2、310−2に、仮想PCIスイッチC206−3、仮想PCIスイッチD206−4、仮想PCIスイッチE206−5、及び仮想PCIスイッチF206−6の構成を変更するデータを書き込み、前記データが書き込まれたテーブルに基づいて、MR制御部110−1、110−2が仮想PCIスイッチC206−3、仮想PCIスイッチD206−4、仮想PCIスイッチE206−5、及び仮想PCIスイッチF206−6の構成を変更する。
【0057】
図5及び図7は、第1の実施の形態のPCIスイッチA107−1、B107−2のMR Upstream制御テーブル300−1、300−2の構成例を示した説明図である。図6は、第1の実施の形態のPCIスイッチA107−1におけるMR Downstream制御テーブル310−1の構成例を示した説明図である。
【0058】
図5に示すMR Upstream制御テーブル300−1は、Upstream側PCIブリッジ識別子301、Upstreamポート識別子302、仮想PCIスイッチ識別子303、リンクローカル識別子304、及び仮想PCIスイッチリセットフラグ305を含む。
【0059】
Upstream側PCIブリッジ識別子301は、PCIスイッチ107のUpstream側PCIブリッジ204を特定する識別子を格納する。
【0060】
Upstreamポート識別子302は、PCIスイッチ107のUpstreamポート121を特定する識別子を格納する。
【0061】
仮想PCIスイッチ識別子303は、Upstream側PCIブリッジ識別子301に対応するUpstream側PCIブリッジ204を用いて構成される仮想PCIスイッチ206を特定するための識別子を格納する。
【0062】
リンクローカル識別子304は、複数のUpstream側PCIブリッジ204と複数のDownstream側PCIブリッジ205とが同一のポートで接続されている場合、接続されている複数のUpstream側PCIブリッジ204と複数のDownstream側PCIブリッジ205との接続関係を特定するための識別子を格納する。
【0063】
仮想PCIスイッチリセットフラグ305は、仮想ツリー切り替え要求を受信した、Upstream側PCIブリッジ識別子301に対応するUpstream側PCIブリッジ204を含むスイッチユニット108のMR制御部110によってリセット処理が開始されたか否かを示す情報を格納する。例えば、リセット処理が開始された場合、「リセット開始」などの情報が格納される。
【0064】
なお、図7に示すMR Upstream制御テーブル300−2は、図5と同一の構成である。
【0065】
図6に示すMR Downstream制御テーブル310−1は、Downstream側PCIブリッジ識別子311、Downstreamポート識別子312、仮想PCIスイッチ識別子313、リンクローカル識別子314、及び仮想PCIスイッチリセットフラグ315を含む。
【0066】
Downstream側PCIブリッジ識別子311は、PCIスイッチ107のDownstream側PCIブリッジ205を特定する識別子を格納する。
【0067】
Downstreamポート識別子312は、PCIスイッチ107のDownstreamポート122を特定する識別子を格納する。
【0068】
仮想PCIスイッチ識別子313は、Downstream側PCIブリッジ識別子311に対応するDownstream側PCIブリッジ205を用いて構成される仮想PCIスイッチ206を特定するための識別子を格納する。
【0069】
リンクローカル識別子314は、複数のUpstream側PCIブリッジ204と複数のDownstream側PCIブリッジ205とが同一のポートで接続されている場合、接続されている複数のUpstream側PCIブリッジ204と複数のDownstream側PCIブリッジ205との接続関係を特定するための識別子を格納する。なお、リンクローカル識別子314は、図5に示したリンクローカル識別子304と同一のものである。
【0070】
仮想PCIスイッチリセットフラグ315は、仮想ツリー切り替え要求を受信した、Downstream側PCIブリッジ識別子311に対応するDownstream側PCIブリッジ205を含むスイッチユニット108のMR制御部110によってリセット処理が開始されたか否かを示す情報を格納する。なお、仮想PCIスイッチリセットフラグ315は、図5に示した仮想PCIスイッチリセットフラグ305と同一のものである。
【0071】
MR制御部110は、MR Upstream制御テーブル300、及びMR Downstream制御テーブル310の情報から、仮想PCIスイッチ識別子303、313が同一のUpstream側PCIブリッジ204とDownstream側PCIブリッジ205とを抽出することができる。これによって、MR制御部110は、仮想PCIスイッチコンフィギュラブルPCIバス部202の構成を行うことができる。
【0072】
なお、図5に示すMR Upstream制御テーブル300−1と、図6に示すMR Downstream制御テーブル310−1とは、図4におけるスイッチユニット108−1に対応している。
【0073】
エントリ306−1−1が仮想PCIスイッチC206−3とUpstream側PCIブリッジA204−1とUpstreamポートA121−1とが対応付けられていることを示し、エントリ306−1−4は仮想PCIスイッチD206−4とUpstream側PCIブリッジD204−4とUpstreamポートB121−2とが対応付けられていることを示している。
【0074】
また、エントリ316−1−1は仮想PCIスイッチC206−3とDownstream側PCIブリッジE205−1とDownstreamポートC122−1とが対応付けられ、リンクローカル識別子が1であることを示し、エントリ316−1−2は仮想PCIスイッチD206−4とDownstream側PCIブリッジF205−2とDownstreamポートC122−1とが対応付けられ、リンクローカル識別子が2であることを示している。
【0075】
図7に示すMR Upstream制御テーブル300−2は、図4におけるスイッチユニット108−2に対応している。
【0076】
エントリ306−2−1が仮想PCIスイッチE206−5とUpstream側PCIブリッジA204−5とUpstreamポートA121−3とが対応付けられ、リンクローカル識別子が1であることを示し、エントリ306−2−2が仮想PCIスイッチF206−6とUpstream側PCIブリッジB204−6とUpstreamポートA121−3とが対応付けられ、リンクローカル識別子が2であることを示している。
【0077】
また、図6と図7とから、リンクローカル識別子が同一であるスイッチユニット108−1のDownstream側PCIブリッジE205−1とスイッチユニット108−2のUpstream側PCIブリッジA204−5とは、互いに通信可能な関係にあることが分かる。同様に、スイッチユニット108−1のDownstream側PCIブリッジF205−2とスイッチユニット108−2のUpstream側PCIブリッジB204−6とは、互いに通信可能な関係にあることが分かる。
【0078】
図8は、本発明の第1の実施の形態のPCIM112−1の仮想ツリーUpstream管理テーブル350の構成例を示した説明図である。
【0079】
PCIM112−1のPCIMユニット119−1に含まれる仮想ツリー制御部123は、仮想ツリーUpstream管理テーブル350を備える。
【0080】
仮想ツリーUpstream管理テーブル350は、仮想ツリー識別子351、PCIスイッチ識別子352、仮想PCIスイッチ識別子353、Upstream側PCIブリッジ識別子354、Upstreamポート識別子355、及びリンクローカル識別子356を含む。
【0081】
仮想ツリー識別子351は、ポート121、122及び仮想PCIスイッチ206によって構成された仮想ツリーを特定する識別子を格納する。なお、PCIスイッチ識別子352、仮想PCIスイッチ識別子353、Upstream側PCIブリッジ識別子354、Upstreamポート識別子355、及びリンクローカル識別子356は、PCIスイッチ107のMR Upstream制御テーブル300と同一の識別子であるが、仮想ツリー識別子351はPCIM112−1の仮想ツリー制御部123が独自で管理する識別子である。
【0082】
図9は、本発明の第1の実施の形態のPCIM112−1の仮想ツリーDownstream管理テーブル360の構成例を示した説明図である。
【0083】
PCIM112−1のPCIMユニット119−1に含まれる仮想ツリー制御部123は、仮想ツリーDownstream管理テーブル360を備える。
【0084】
仮想ツリーDownstream管理テーブル360は、仮想ツリー識別子361、PCIスイッチ識別子362、仮想PCIスイッチ識別子363、Downstream側PCIブリッジ識別子364、Downstreamポート識別子365、及びリンクローカル識別子366を含む。
【0085】
仮想ツリー識別子361は、ポート121、122及び仮想PCIスイッチ206によって構成された仮想ツリーを特定する識別子を格納する。なお、PCIスイッチ識別子362、仮想PCIスイッチ識別子363、Downstream側PCIブリッジ識別子364、Downstreamポート識別子365、及びリンクローカル識別子366は、PCIスイッチ107のMR Downstream制御テーブル310と同一の識別子であるが、仮想ツリー識別子361はPCIM112−1の仮想ツリー制御部123が独自で管理する識別子である。
【0086】
図10は、本発明の第1の実施の形態のPCIM112−1の物理トポロジ管理テーブル370の構成例を示した説明図である。
【0087】
PCIM112−1のPCIMユニット119−1に含まれる仮想ツリー制御部123は、物理トポロジ管理テーブル370を備える。
【0088】
物理トポロジ管理テーブル370は、PCIスイッチ識別子371、ポート識別子372、パートナーPCIスイッチ識別子373、パートナーポート識別子374、及びリンクの種類375を含む。物理トポロジ管理テーブル370は、各PCIスイッチ107のポート121、122間の物理的な接続関係を表す。
【0089】
リンクの種類375は、ポート121、122の接続関係を格納する。ポート121、122がBase PCI規格(すなわち、一つのポート121、122に一つのPCIブリッジ204、205を割り当てる接続関係)のインタフェースに接続されて場合は、「Base」となり、ポートがMR PCI規格のインタフェースに接続されて場合は、「MR」となる。
【0090】
なお、物理トポロジ管理テーブル370のエントリの作成方法は、どのような方法であってもよい。
【0091】
次に、PCIM112−1が仮想ツリーの構成を検知して仮想ツリー識別子を割り当てる方法について、図4、図8、図9、及び図10を用いて説明する。
【0092】
仮想ツリー制御部123は、仮想ツリーUpstream管理テーブル350、仮想ツリーDownstream管理テーブル360、及び物理トポロジ管理テーブル370を備える。
【0093】
仮想ツリー制御部123は、仮想ツリーUpstream管理テーブル350と仮想ツリーDownstream管理テーブル360との各エントリから、各スイッチユニット108−1、108−2が構成する仮想PCIスイッチC206−3、D206−4、E206−5、F206−6の構成情報(例えば、仮想PCIスイッチ206毎に関連付けられるポート121、122、PCIブリッジ204、205、及びリンクローカル識別子304、314)を取得する。
【0094】
例えば、仮想ツリー制御部123は、仮想PCIスイッチC206−3がUpstream側PCIブリッジA204−1とDownstream側PCIブリッジE205−1とを含み、UpstreamポートA121−1とDownstreamポートC122−1とが対応付けられることが分かる。また、仮想ツリー制御部123は、DownstreamポートC122−1のリンクローカル識別子が「1」であることが分かる。
【0095】
また、仮想ツリー制御部123は、物理トポロジ管理テーブル370の各エントリから、Upstreamポート121とDownstreamポート122との間を接続する各リンクの状態が分かる。
【0096】
例えば、仮想ツリー制御部123は、PCIスイッチA107―1のDownstreamポート122−1とPCIスイッチB107−2のUpstreamポート121−3との間に、MR対応のリンクが張られていることが分かる。
【0097】
仮想ツリー制御部123は、仮想PCIスイッチ206の情報と物理的なリンクの情報とから、仮想ツリーの構成に関する情報を取得し、また、仮想ツリー識別子351、361を生成する。例えば、PCIスイッチA107−1のUpstreamポートA121−1に接続されている物理サーバ100は仮想PCIスイッチC206−3と仮想PCIスイッチE206−5を介してPCIスイッチB107−2のDownstreamポートC122−3までの仮想ツリーの構成を認識し、さらに、仮想ツリー制御部123は物理サーバ100が認識する仮想ツリーを特定するため仮想ツリー識別子351、361を「1」に設定する。これによって、仮想ツリー制御部123は、各仮想ツリーと生成された仮想ツリー識別子351、361とを関連付けて仮想ツリーを一元的に管理できる。
【0098】
以上、仮想ツリーを実現する装置と方法について説明したが、本発明は仮想ツリーを実現する装置と方法を前述したものに限定されない。
【0099】
第1の実施の形態では、仮想ツリーの切り替え処理を実行する前に、PCIスイッチ107が仮想ツリーに対してリセット処理を行い、リセット処理が完了したことを確認したPCIM112−1が仮想ツリーの切り替え処理を実行する場合について説明する。
【0100】
リセット処理は、仮想ツリーの構成を初期化(リセット)できるならばどのような方法でもよいが、第1の実施の形態では、MR−IOVで定められているPer−VH Resetを用いた場合を考える。最初にPer−VH Resetについて説明する。
【0101】
Per−VH Resetは、PCIM112−1、または、物理サーバ100から特定の仮想ツリーに対するリセット要求が前記特定の仮想ツリーを構成するPCIスイッチ107及びI/Oデバイス114等に送信され、前記リセット要求を受信したPCIスイッチ107及びI/Oデバイス114が各々リセット処理を実行することによって、仮想ツリーのリセット処理を実現する方法である。なお、Per−VH Resetは仮想ツリーの一部のみについてリセット処理を実行することもできるが、第1の実施の形態では仮想ツリー全体にリセット処理を実行する場合を考える。
【0102】
Per−VH Resetを使用して仮想ツリーのリセット処理を実行する場合、仮想ツリーの最上層である物理サーバ100が、Per−VH Resetのリセット要求を仮想ツリーを構成するPCIスイッチ107及びI/Oデバイス114等全てに送信する。なお、Per−VH Resetのリセット要求は、物理サーバ100がサーバ管理部113からリセット命令を受信してから発行される。
【0103】
リセット要求の送信は、具体的には、リンクの種類がMR対応のリンクならば専用のDLLP(Data Link Layer Packet)を用いたリセット要求が送信される。リンクの種類がMR対応のリンク以外(Base)ならばBase PCIに準拠するリセット要求が送信される。
【0104】
すなわち、仮想ツリー全体に対しリセット処理が実行される場合、最初に物理サーバ100のチップセット102がMR対応のリンクの種類であるならば、リセット要求のDLLPを直下のPCIスイッチ107に送信し、MR対応のリンクの種類でないならば、Base PCIに準拠するリセット要求を直下のPCIスイッチ107に送信する。
【0105】
リセット要求のDLLPまたはBase PCIに準拠するリセットの要求を受信したPCIスイッチ107は、Downstreamポート122にリセット対象の仮想ツリーに対応付けられているPCIスイッチ107またはI/Oデバイス114等が接続されているか否かを判定する。
【0106】
Downstreamポート122にリセット対象の仮想ツリーに対応付けられたPCIスイッチ107またはI/Oデバイス114等が接続されていると判定された場合、接続がMR PCI規格のインタフェースならば、PCIスイッチ107は、同リセット要求のDLLPを接続されているPCIスイッチ107またはI/Oデバイス114等に送信する。また、接続がBase PCI規格のインタフェースならば、PCIスイッチ107は、Base PCI規格に準拠したリセット処理を行う。
【0107】
Downstreamポート122にリセット対象の仮想ツリーに対応付けられたPCIスイッチ107またはI/Oデバイス114等が接続されていないと判定された場合、PCIスイッチ107は、PCIスイッチ107自身においてリセット処理を実行する。
【0108】
リセット要求のDLLPを受信したPCIスイッチ107またはI/Oデバイス114は、前記リセット要求のDLLPを送信したPCIスイッチ107に、受信したことを確認するための応答のDLLPを送信する。これによって、リセット要求が仮想ツリー全体に送信されていることが保証される。前述した処理が仮想ツリーの最下層まで実行される。
【0109】
リセット要求のDLLPを受信したPCIスイッチ107は、リセット処理の対象である仮想ツリーを構成する仮想PCIスイッチ206を初期化(リセット)する。具体的には、前記リセット要求のDLLPを受信したPCIスイッチ107のMR制御部110が、スイッチユニット108に仮想PCIスイッチ206の初期化(リセット)を要求し、前記初期化(リセット)の要求を受信したスイッチユニット108が仮想PCIスイッチ206の初期化(リセット)を実行する。また、リセット要求のDLLPを受信したI/Oデバイス114は、リセット処理の対象である仮想ツリーに対して初期化(リセット)を行う。
【0110】
なお、リセット要求のDLLPは、リセット対象である仮想スイッチ206を識別する情報として、例えば、リンクローカル識別子304、314を含む。
【0111】
以下、第1の実施の形態において仮想ツリーを切り替える時のPCIスイッチ107及びPCIM112−1の処理について、図1、図11〜22を用いて説明する。
【0112】
図11及び図12は、第1の実施の形態の仮想ツリーの構成を示した説明図である。
【0113】
図11において、物理サーバ100−1が仮想PCIスイッチA206−11、仮想PCIスイッチB206−12、及び仮想PCIスイッチC206−13を介して、I/Oデバイス114−1、114−3に対応付けられている。
【0114】
図12においては、物理サーバ100−2が仮想PCIスイッチD206−14、仮想PCIスイッチE206−15、仮想PCIスイッチF206−16を介して、I/Oデバイス114−1、114−3に対応付けられている。
【0115】
以下、図11に示す仮想ツリーから図12に示す仮想ツリーに切り替えられることによって、物理サーバ100−1の実行中の処理を物理サーバ100−2が引き継ぐ場合について説明する。
【0116】
第1の実施の形態では、切り替えの対象である仮想ツリーに対しリセット処理が実行されて、リセット処理の完了が検知されてからPCIM112−1が仮想ツリーを切り替えることによって、仮想ツリーの切り替えの最中に、仮想ツリーを構成するPCIブリッジ204、205などにトランザクションが残留することがないため、安全に仮想ツリーの切り替えが実現できる。
【0117】
図13は、本発明の第1の実施の形態のPCIスイッチA107−1の構成を示したブロック図である。なお、PCIスイッチB107−2、C107−3、D107−4についても構成は同様である。
【0118】
PCIスイッチA107−1の仮想ツリーステート通知部111−1は、仮想PCIスイッチステート記録部501−1と仮想PCIスイッチステート送信部502−1とを備える。さらに、仮想PCIスイッチステート記録部501−1は、仮想PCIスイッチステートテーブル600−1を含む。
【0119】
仮想PCIスイッチステート記録部501−1は、PCIスイッチ107−1内に存在する仮想PCIスイッチ206のリセット処理が完了したか否かを示す情報を格納する。また、仮想ツリーステート通知部111−1は、PCIスイッチ107−1内に存在する仮想PCIスイッチ206のリセット処理が完了したことを示す情報をPCIM112−1に送信する。詳しい処理については後述する。
【0120】
図14は、本発明の第1の実施の形態の仮想PCIスイッチステートテーブル600−1の構成例を示す説明図である。
【0121】
仮想PCIスイッチステートテーブル600−1は、仮想PCIスイッチ識別子601、Downstream側PCIブリッジ識別子602、及びDownstream側PCIブリッジ識別子602に対応するPCIブリッジ204、205におけるリセット処理完了情報603を含む。
【0122】
リセット処理完了情報603は、リセット処理が完了したか否かを示す情報を格納する。例えば、リセット処理が完了した場合、「Yes」となり、リセット処理が完了していない場合、「No」となる。
【0123】
仮想PCIスイッチステートテーブル600−1は、MR制御部110−1が受信したリセット処理の要求に含まれる情報に基づいて作成される。なお、仮想PCIスイッチステートテーブル600−1は、MR制御部110−1が作成してもよいし、仮想PCIスイッチステート記録部501−1が作成してもよい。
【0124】
次に、第1の実施の形態におけるPCIスイッチ107の動作の詳細を、図11〜図16、及び図21を用いて説明していく。
【0125】
図21は、本発明の第1の実施の形態のPCIスイッチ107が実行するリセット処理のフローチャートである。以下、PCIスイッチA107−1を例に説明する。
【0126】
PCIスイッチA107−1は、物理サーバ100−1から仮想ツリーの切り替え要求を受信して一連の処理を開始する(901)。
【0127】
はじめに、PCIスイッチA107−1は、図5、図6に示した制御テーブル300、310を参照し、リセットフラグ305、315がセットされているか否かを判定する(902)。具体的には、PCIスイッチA107−1のMR制御部110−1がBase PCI準拠のリセット要求を受信した場合、または、PCIM112−1からリセット要求を受信した場合、該当する仮想PCIスイッチ206のリセットフラグ305、315をセットする。
【0128】
リセットフラグがセットされていると判定された場合、PCIスイッチA107−1は、ステップ905へ進む。リセットフラグ305、315がセットされていないと判定された場合、PCIスイッチA107−1は、UpstreamポートA121−1からリセット要求のDLLPを受信したか否かを判定する(903)。
【0129】
リセット要求のDLLPを受信したと判定された場合、PCIスイッチA107−1は、該当する仮想スイッチのリセットフラグ305、315をセットし、応答のDLLPを前記リセット要求のDLLPを送信したPCIスイッチ107に返信する(904)。リセット要求のDLLPを受信しなかったと判定された場合、PCIスイッチA107−1は、ステップ901に戻る。
【0130】
次に、PCIスイッチA107−1のMR制御部110−1は、仮想PCIスイッチステートテーブル600−1の初期設定を実行する。具体的には、図14に示すように、リセット処理の対象の仮想PCIスイッチA206−11を構成するDownstream側PCIブリッジC205−1及びD205−2に対応する全てのエントリ604−1、604−2を作成し、リセット処理完了情報603を全て「No」に設定する。
【0131】
次に、PCIスイッチA107−1のMR制御部110−1は、DownstreamポートC122−1、D122−2のリンク先の種類を判定する(906)。具体的には、リンクがない(リンクがアクティブではない)、MRリンクではないリンク、及び、MRのリンクのいずれに該当するかが判定される。
【0132】
リンクがアクティブではないと判定された場合、PCIスイッチA107−1は、ステップ910へ進む。MRではないリンクであると判定された場合、PCIスイッチA107−1は、Base PCI対応のリセット要求をリンク先に送信する(907)。
【0133】
MRのリンクであると判定された場合、PCIスイッチA107−1は、リセット要求のDLLPをリンク先へ送信する(908)。さらに、前記要求を送信したリンク先から、PCIスイッチA107−1は、応答のDLLPを受信する(909)。
【0134】
図11において、DownstreamポートC122−1、D122−2は共にMR PCIのリンク、つまり、MRのリンクが張られているため、共にステップ908に進む。
【0135】
PCIスイッチA107−1の仮想PCIスイッチステート記録部501−1は、リセット要求の送信が完了したDownstream側PCIブリッジ識別子602に対応するエントリの、リセット処理完了情報603を「No」から「Yes」に更新する(910)。
【0136】
具体的には、リンクがアクティブではないと判定された場合、自動的にリセット処理完了情報603が「No」から「Yes」に更新される。MRではないリンクであると判定された場合、ステップ907を経た後にリセット処理完了情報603が「No」から「Yes」に更新される。MRのリンクであると判定された場合、ステップ908、及びステップ909を経た後にリセット処理完了情報603が「No」から「Yes」に更新される。
【0137】
なお、リセット処理の完了は、Downstream側PCIブリッジ識別子602に対応するDownstream側PCIブリッジ205毎に検知されているが、MR Downstream制御テーブル310−1が備えられることによって、Downstream毎に検知される。
【0138】
PCIスイッチA107−1は、全てのエントリのリセット処理完了情報603が全て「Yes」になったか否かを判定する。
【0139】
図15及び図16は、本発明の第1の実施の形態において、仮想PCIスイッチステートテーブル600の更新状態を示した説明図である。
【0140】
エントリ604−1は、ステップ906において、MRのリンクであるのでステップ908、及びステップ909へと進み、ステップ910において、エントリ604−1のリセット処理完了情報603が「Yes」に更新される。また、エントリ604−2は、応答を受信していないため、リセット処理完了情報603は、「No」のままである(図15参照)。
【0141】
ステップ911において、仮想PCIスイッチステート送信部502−1は、仮想PCIスイッチステートテーブル600−1を監視しており、仮想PCIスイッチ識別子601に対応するエントリのリセット処理完了情報603が図16に示すように全て「Yes」となっているか否かを判定する。なお、仮想PCIスイッチステート記録部501−1が監視を行い、仮想PCIスイッチ識別子601に対応するエントリのリセット処理完了情報603が全て「Yes」となったか否かを判定する形態であってもよい。
【0142】
仮想PCIスイッチ識別子601に対応するエントリのリセット処理完了情報603が全て「Yes」となっていると判定された場合、仮想PCIスイッチステート送信部502−1は、仮想PCIスイッチ206の構成が変更可能であることを含む情報をPCIM112−1に送信する(912)。送信される情報は、少なくとも、仮想PCIスイッチ206の構成が変更可能であること、及び仮想PCIスイッチ識別子601を含む。
【0143】
なお、仮想PCIスイッチステート記録部501−1は、仮想PCIスイッチ206の構成が変更可能であることをPCIM112−1に送信した後に、仮想PCIスイッチステートテーブル600−1に格納されているデータを消去する。
【0144】
仮想PCIスイッチ識別子601に対応するエントリのリセット処理完了情報603が全て「Yes」となっていないと判定された場合、MR制御部110−1は、リセット処理のタイムアウト時間が過ぎているか否かを判定する(913)。
【0145】
リセット処理のタイムアウト時間が過ぎていると判定された場合、MR制御部110−1は、リセット処理が本来ならば十分に終了するだけの時間経過しているのも関わらず終了していないため、例外処理を行う(914)。例外処理としては、例えば、リセットの再試行、またはリンクの修復などがある。リセット処理のタイムアウト時間が過ぎていないと判定された場合、MR制御部110−1は、リセット処理が完了していないDownstream側PCIブリッジ205に再度のリセット処理を試行するためステップ906へ進む。
【0146】
なお、PCIスイッチB107−2、C107−3、D107−4についても図21に示すフローチャートと同様の処理が行われる。
【0147】
なお、PCIスイッチA107−1自身のリセット処理は、リセット要求を受信したMR制御部110−1がスイッチユニット108−1にリセット命令を送信し、スイッチユニット108−1が前記命令に基づいてリセット処理を実行する。他のPCIスイッチB107−2、C107−3、D107−4についても同様の処理が行われる。
【0148】
図17は、本発明の第1の実施の形態のPCIM112−1の構成を示したブロック図である。
【0149】
PCIM112−1は、PCIMユニット119−1、及び仮想ツリーステート管理部120−1を備える。
【0150】
PCIMユニット119−1は、仮想ツリー制御部123、及びMR障害処理部124を含む。仮想ツリーステート管理部120は、仮想ツリーステート記録部701−1、及び仮想ツリーステートチェック部702−2を含む。さらに、仮想ツリーステート記録部701−1は、仮想ツリーステート記録テーブル800−1を含む。
【0151】
仮想ツリー制御部123は、サーバシステム内全ての仮想ツリーに関する情報を保持し、また、仮想ツリーの管理を行っている。
【0152】
図18は、本発明の第1の実施の形態の仮想ツリーステート記録テーブル800−1の構成例を示した説明図である。
【0153】
仮想ツリーステート記録テーブル800−1は、仮想ツリー識別子801、PCIスイッチ識別子802、仮想PCIスイッチ識別子803、及び仮想PCIスイッチ構成変更可能情報804を含む。
【0154】
仮想PCIスイッチ構成変更可能情報804は、仮想PCIスイッチ識別子803に対応する仮想PCIスイッチ206の構成が変更可能であるか否かを示す情報を格納する。
【0155】
以下、仮想ツリーの切り替えの処理における、PCIM112−1が実行する処理について説明する。
【0156】
図22は、本発明の第1の実施の形態のPCIM112−1が実行する仮想ツリーの切り替え処理のフローチャートである。
【0157】
PCIM112−1は、仮想ツリーの切り替え命令を受信してから一連の処理を開始する(1001)。なお、前記命令は、サーバ管理部113−1から送信されたものである。
【0158】
前記命令に基づいて仮想ツリーステート記録部701−1は、仮想ツリーステート記録テーブル800−1に、切り替え対象の仮想ツリーを構成する仮想PCIスイッチA206−11、B206−12、C206−13に関するエントリを作成し、仮想PCIスイッチ構成変更可能情報804を全てNoに設定する(1002)。
【0159】
仮想ツリーステート記録部701−1は、各PCIスイッチ107から、仮想PCIスイッチ識別子601、及び仮想PCIスイッチ識別子601に対応する仮想PCIスイッチ206の構成が変更可能であることを含む情報を受信する(1003)。前記受信した情報は、図21のステップ912で送信された情報と同一のものである。
【0160】
仮想ツリーステート記録部701−1は、ステップ1003で受信した情報に含まれる及び仮想PCIスイッチ識別子601を参照し、該当するエントリを仮想ツリーステート記録テーブル800−1から検索し、該当するエントリの仮想PCIスイッチ構成変更可能情報804を「Yes」に変更する(1004)。
【0161】
図19及び図20は、本発明の第1の実施の形態の仮想ツリーステート記録テーブル800−1の更新状態を示した説明図である。
【0162】
例えば、仮想ツリーステート記録部701−1が、PCIスイッチA107−1の仮想PCIスイッチステート送信部502−1から、仮想PCIスイッチA206−11の構成が変更可能であることを含む情報を受信した場合、図19に示すように仮想ツリーステート記録テーブル800−1のエントリ805−1の仮想PCIスイッチ構成変更可能情報804が「Yes」に変更される。
【0163】
次に、仮想ツリーステートチェック部702−1は、仮想ツリーステート記録テーブル800−1の全てのエントリの仮想PCIスイッチ構成変更可能情報804がYesになったか否かを判定する(1005)。
【0164】
図20に示すように、仮想ツリーステート記録テーブル800−1の全てのエントリの仮想PCIスイッチ構成変更可能情報804がYesになったと判定された場合、仮想ツリーステートチェック部702−1は、仮想ツリーを切り替えることが可能であると判定する(1006)。前記判定をうけて、仮想ツリー制御部123は、仮想ツリーを切り替える。具体的には、仮想ツリー制御部123は、各PCIスイッチ107に新たな仮想ツリーの構成に関するデータを含む仮想ツリー切り替え処理の実行要求を送信する。前記要求を受信した各PCIスイッチ107は、受信した要求に含まれる前記データに基づいて新たな仮想PCIスイッチ206を構成する。これによって、新たな仮想ツリーに切り替えられる。
【0165】
なお、第1の実施の形態において、仮想PCIスイッチステートテーブル600−1を含まない場合も考えられる。この場合、仮想PCIスイッチステート送信部502−1が各Downstream側PCIブリッジ205を監視する。例えば、Downstream側PCIブリッジ205に対応付けられているDownstreamポート122のリンクがMRのリンクである場合、Downstream側PCIブリッジ205が応答のDLLPを受信したことを仮想PCIスイッチステート送信部502−1が検知し、前記検知結果をPCIM112−1送信する形態であってもよい。
【0166】
[第2の実施の形態]
第2の実施の形態は、物理サーバ100が仮想サーバをサポートする状況において、仮想サーバの実行イメージを別の物理サーバ100に移行させるマイグレーション技術について、特に、移行する場合に仮想サーバの実行停止時間が短い、ライブマイグレーションを想定している。以下、仮想サーバの実行イメージを別の物理サーバ100に移行させる処理をマイグレーションと呼ぶ。
【0167】
具体的な処理としては、マイグレーション予定の仮想サーバが認識する仮想ツリーが受信するトランザクションが一時抑制され、抑制される以前に受信したトランザクション(以下、In−flightトランザクション)の完了が確認された上で仮想サーバの実行イメージを別の物理サーバ100へ移行され、実行イメージの移行に合わせて仮想ツリーが切り替えられる。
【0168】
In−flightトランザクションの完了は、I/Oデバイス114が接続されているDownstreamポート122毎に検知される。具体的には、I/Oデバイス114が接続されているDownstreamポート122に対応付けられたDownstream側PCIブリッジ205毎に検知されており、MR制御部110−5が備えるMR Downstream制御テーブル310を参照されることによって、Downstreamポート122毎に検知される。
【0169】
In−flightトランザクションが完了したことを含む情報はPCIM112−2(図23参照)に送信され、PCIM112−2(図23参照)は、受信した前記情報に基づいて切り替え予定の仮想ツリーを構成する全てのI/Oデバイス114についてIn−flightトランザクションが完了しているか否かを判定する。
【0170】
仮想ツリーを構成する全てのI/Oデバイス114についてIn−flightトランザクションが完了していると判定された場合、仮想ツリーが現在扱っているトランザクションは無いため、仮想ツリーが切り替える前、及び仮想ツリーの切り替えられた後で実行イメージが受信する通信の統一性が保証される。
【0171】
図23は、本発明の第2の実施の形態のサーバシステムの構成を示す説明図である。第1の実施の形態との差異について説明する。
【0172】
物理サーバ100−1、100−2上では仮想サーバをサポートするVMM(Virtual Machine Monitior)1101−1、1101−2が動作しており、該VMM1101−1、1101−2上で仮想サーバ1103−1が稼動している。さらに、仮想サーバ1103−1上ではOS1102−1が動作しているが、これは図1のOS106と同様のものである。
【0173】
PCIスイッチE107−5は、PCIスイッチE107−5が受信するトランザクションの抑制を行うトランザクションコントロール部1104、及び、PCIスイッチE107−5が受信するトランザクションが抑制される前に、PCIスイッチE107−5が受信したIn−flightトランザクションの実行の完了を検知するIn−flightトランザクション完了確認部1105を備える。さらに、PCIスイッチE107−5は、スイッチ制御部109−5内の仮想PCIスイッチステート通知部111−5に、In−flightトランザクションの実行の完了を検知したことをPCIM112−2に通知するトランザクション完了情報送信部1106を含む。
【0174】
トランザクションコントロール部1104は、DownstreamポートC122−40、D122−41に接続されているI/Oデバイス114−5、114−6から発行されるトランザクションを、PCIスイッチE107−5内で抑制する。
【0175】
具体的な抑制方法についてはどのような方法でも構わないが、例えば、PCIスイッチE107−5が受信するトランザクションを格納するバッファに、トランザクションの進行を停止する方法が考えられる。
【0176】
In−flightトランザクション完了確認部1105は、トランザクションコントロール部1104がトランザクションを抑制した後に、トランザクションが抑制される以前にPCIスイッチE107−5が受信したIn−flightトランザクションの実行の完了を検知する。
【0177】
具体的な検知方法については、どのような方法でも構わないが、例えば、トランザクションの抑制を行うPCIスイッチE107−5が、最後に受信したIn−flightトランザクションの後に、I/Oデバイス114の特定のアドレスに対してメモリリードトランザクションを発行し、メモリリードトランザクションの完了によって、In−flightトランザクションの実行の完了を検知する方法が考えられる。
【0178】
この方法は、PCIのオーダリングルールにおいて、後続のNon−postedトランザクションは先行トランザクションを追い越せないため、Non−postedトランザクションであるメモリリードトランザクションの実行の完了を検知することで、先行するトランザクション(In−flightトランザクション)の実行が完了していることを利用したものである。
【0179】
トランザクション完了情報送信部1106は、In−flightトランザクション完了確認部1105からIn−flightトランザクションの実行の完了を検知したことが通知され、In−flightトランザクションの実行の完了、仮想PCIスイッチ識別子313、及びDownstream側PCIブリッジ識別子311を含めた情報をPCIM112−2に送信する。
【0180】
なお、PCIスイッチE107−5からPCIM112−2へ送信される前記情報は、制御I/F115−2を用いて送信されるが、代わりに他のスイッチを経由して送信されてもよい。
【0181】
PCIM112−2の仮想ツリーステート管理部120−2は、仮想ツリーステート記録部701−2及び仮想ツリーステートチェック部702−2を備える。さらに、仮想ツリーステート記録部701−2は、仮想ツリーステート記録テーブル1200を含む。
【0182】
図26は、本発明の第2の実施の形態の仮想ツリーステート記録テーブル1200の構成例を示す説明図である。
【0183】
仮想ツリーステート記録テーブル1200は、仮想ツリー識別子1201、PCIスイッチ識別子1202、仮想PCIスイッチ識別子1203、Downstream側PCIブリッジ識別子1204、及びIn−flightトランザクション完了情報1205(以下、In−flight Tx完了情報1205と記載する。)を含む。仮想ツリーステート記録テーブル1200は、Downstream側PCIブリッジ識別子1204を含むことによって、Downstream側PCIブリッジ毎にIn−flightトランザクションの実行の完了を検知することができる。
【0184】
図24は、本発明の第2の実施の形態の仮想ツリーが切り替えられる前のサーバシステムの構成を示す説明図である。図25は、本発明の第2の実施の形態の仮想ツリーが切り替えられた後のサーバシステムの構成を示す説明図である。
【0185】
図24において、各コンフィギュラブルPCIバス部201−51、202−51、203−51は短破線に示すPCIバスが構成されているものとする。さらに、物理サーバ100−3上で稼動している仮想サーバ1103−1は、前記PCIバスの構成に従って、長破線で囲まれた仮想PCIスイッチI206−51を介して、I/Oデバイス114−6、114−7を認識している。
【0186】
図25において、各コンフィギュラブルPCIバス部201−51、202−51、203−52は短破線に示すPCIバスが構成されているものとする。さらに、物理サーバ100−4上で稼動している仮想サーバ1103−1は、長破線で囲まれた仮想PCIスイッチJ206−52を介してI/Oデバイス114−5、114−6を認識している。
【0187】
図24及び図25で動作している仮想サーバ1103−1は同一の実行イメージであり、仮想サーバ1103が稼動している物理サーバ100が異なっていても、仮想PCIスイッチ206の構成を変更することによって、仮想サーバ1103−1からは同一のI/Oデバイス114−5、114−6を認識することができる。
【0188】
以下、図24の状態から、仮想サーバ1103−1が認識する仮想ツリーを構成するI/Oデバイス114−5、114−6から発行されるトランザクションが抑制され、In−flightトランザクションの実行の完了が検知され、仮想ツリーを切り替えられるまでについて説明する。仮想ツリーが切り替えられた後、仮想サーバ1103−1が物理サーバ100−3から物理サーバ100−4へ移行されると、仮想サーバ1103−1は移行前と同一のI/Oデバイス114−5、114−6を認識することができ、マイグレーション完了後に動作を再開することができる。
【0189】
図29は、本発明の第2の実施の形態のPCIスイッチE107−5の処理を示したフローチャートである。
【0190】
最初に、トランザクションコントロール部1104が、切り替え予定の仮想ツリーを構成する仮想PCIスイッチE206−51が受信するトランザクションを抑制する要求を受信する(1301)。なお、前記要求は、サーバ管理部113−2、物理サーバ100−3、またはPCIM112−2から送信される。
【0191】
前記要求を受信したトランザクションコントロール部1104は、切り替え対象の仮想ツリーを構成する仮想PCIスイッチE206−51のDownstream側PCIブリッジC205−51及びDownstream側PCIブリッジD205−52各々のリンクの種類を判定する(1302)。具体的には、リンクがアクティブでない(リンクがない)、MRではないリンクである、またはMRのリンクである、かを判定する。
【0192】
リンクがアクティブでないと判定された場合、トランザクションコントロール部1104は、処理を終了する(1306)。
【0193】
MRのリンクであると判定された場合、トランザクションコントロール部1104は、リンク先のPCIスイッチ107に前記要求を送信する(1307)。さらに、トランザクションコントロール部1104は、前記要求を送信したPCIスイッチ107から応答を受信し(1308)、ステップ1302に戻り前記要求を受信にしたPCIスイッチ107について同様の処理を行う。
【0194】
MRではないリンクであると判定された場合、トランザクションコントロール部1104は、I/Oデバイス114−5、114−6から発行されるトランザクションを抑制する(1303)。なお、トランザクションの抑制方法はどのような方法であってもよい。
【0195】
次に、In−flightトランザクション完了確認部1105は、トランザクションの抑制前に受信したトランザクション(In−flightトランザクション)の実行が完了したことをI/Oデバイス114−5、114−6に対応付けられたDownstreamポート114毎について検知し、前記検知結果をトランザクション完了情報送信部1106に送信する(1304)。In−flightトランザクションの実行の完了を検知する方法は前述した方法に限定されず、どのような方法であってもよい。
【0196】
前記検知結果を受信したトランザクション完了情報送信部1106は、仮想PCIスイッチ識別子313、Downstream側PCIブリッジ識別子311、及びDownstream側PCIブリッジ識別子311に対応するDownstream側PCIブリッジ205におけるIn−flightトランザクションの実行が完了したことを含む完了情報をPCIM112−2に送信する(1305)。なお、前記完了情報は、制御I/Fを介して送信されるが、他のスイッチを介して送信されてもよい。
【0197】
図30は、本発明の第2の実施の形態のPCIM112−2の処理を示したフローチャートである。
【0198】
PCIM112−2が仮想ツリー切り替えの要求を受信し、仮想ツリーステート記録部701−2は、仮想ツリーステート記録テーブル1200の初期設定を行う。具体的には、PCIM112−2は、図26に示すように、切り替え予定の仮想ツリーを構成するI/Oデバイス114−5、114−6に対応付けられたDownstream側PCIブリッジC205−51、D205−52に関するエントリ1206−1、1206−2を、仮想ツリーステート記録テーブル1200−1に作成し、In−flight Tx完了情報1205をNoに設定する(1401)。
【0199】
仮想ツリーステート記録部701−2は、PCIスイッチE107−5から、仮想PCIスイッチ識別子313と、Downstream側PCIブリッジ識別子311、及びPCIブリッジ識別子に対応するPCIブリッジにおけるIn−flightトランザクションの実行が完了したことを含む完了情報を受信する(1402)。なお、前記完了情報は、前述したステップ1305で送信される完了情報と同一のものである。
【0200】
前記完了情報を受信した仮想ツリーステート記録部701−6は、前記完了情報に含まれる仮想PCIスイッチ識別子313、及びDownstream側PCIブリッジ識別子311を参照し、仮想ツリーステート記録テーブル1200に該当するエントリがあるか否かを判定する(1403)。
【0201】
該当するエントリがないと判定された場合、仮想ツリーステート記録部701−2は、PCIスイッチE107−5に前記完了情報を再度送信するように要求する(1408)。
【0202】
該当するエントリがあると判定された場合、仮想ツリーステート記録部701−2は、該当するエントリのIn−flight Tx完了情報1205をYesに更新する(1404)。
【0203】
図27及び図28は、本発明の第2の実施の形態の仮想ツリーの切り替えの処理における仮想ツリーステート記録テーブル1200の更新状態を示した説明図である。
【0204】
例えば、仮想ツリーステート記録部701−2がDownstream側PCIブリッジC205−51のIn−flightトランザクションの実行の完了を受信した場合、図27に示すようにDownstream側PCIブリッジC205−51に対応するエントリ1206−1のIn−flight Tx完了情報1205がYesとなる。
【0205】
次に、仮想ツリーステートチェック部702−2は、切り替えの対象である仮想ツリーに関する全てのエントリ(この場合は、エントリ1206−1、1206−2)のIn−flight Tx完了情報1205が全てYesか否か判定する(1405)。例えば、図28のような場合、仮想ツリーステートチェック部702−2は、切り替えの対象である仮想ツリーに関する全てのエントリのIn−flight Tx完了情報1205が全てYesであると判定する。
【0206】
切り替えの対象である仮想ツリーに関する全てのエントリのIn−flight Tx完了情報1205が全てYesでないと判定された場合、仮想ツリーステートチェック部702−2は、ステップ1402に戻り、全てのエントリのIn−flight Tx完了情報1205が全てYesになるまで同様の処理をおこなう。
【0207】
切り替えの対象である仮想ツリーに関する全てのエントリのIn−flight Tx完了情報1205が全てYesであると判定された場合、仮想ツリーステートチェック部702−2は、仮想ツリーを切り替えることが可能であると判定し(1406)、仮想ツリーの切り替え処理を実行する(1407)。なお、仮想ツリーの切り替え処理は、PCIM112−2が各PCIスイッチ107に切り替えの要求を送信し、受信した前記要求に基づいてPCIスイッチ107が、バスの構成を変更することによって行われる。
【0208】
第2の実施の形態では、仮想ツリーの切り替え処理において、PCIスイッチ107がI/Oデバイス114から受信するトランザクションが抑制され、PCIM112−2は抑制される前にPCIスイッチ107が受信したトランザクションが全て完了か否かを判定することによって、仮想ツリーの切り替え処理の前後でトランザクションの連続性及び整合性が保証され、安全に仮想ツリーの切り替え処理を行うことができる。
【図面の簡単な説明】
【0209】
【図1】本発明の第1の実施の形態のサーバシステムの構成図である。
【図2】本発明の第1の実施の形態のPCIスイッチのスイッチユニットの構成、及び仮想ツリーを説明するブロック図である。
【図3】本発明の第1の実施の形態の仮想PCIスイッチコンフィギュラブルPCIバス部のバス構成を変更した場合の仮想ツリーを示す説明図である。
【図4】本発明の第1の実施の形態において縦列に多段のPCIスイッチA、Bを接続し、二つのUpstreamポートに接続された各々の物理サーバ毎に、独立した二つの仮想ツリーを構成する場合を示す説明図である。
【図5】第1の実施の形態のPCIスイッチのMR Upstream制御テーブルの構成例を示した説明図である。
【図6】第1の実施の形態のPCIスイッチにおけるMR Downstream制御テーブルの構成例を示した説明図である。
【図7】第1の実施の形態のPCIスイッチのMR Upstream制御テーブルの構成例を示した説明図である。
【図8】本発明の第1の実施の形態のPCIMの仮想ツリーUpstream管理テーブルの構成例を示した説明図である。
【図9】本発明の第1の実施の形態のPCIMの仮想ツリーDownstream管理テーブルの構成例を示した説明図である。
【図10】本発明の第1の実施の形態のPCIMの物理トポロジ管理テーブルの構成例を示した説明図である。
【図11】第1の実施の形態の仮想ツリーの構成を示した説明図である。
【図12】第1の実施の形態の仮想ツリーの構成を示した説明図である。
【図13】本発明の第1の実施の形態のPCIスイッチの構成を示したブロック図である。
【図14】本発明の第1の実施の形態の仮想PCIスイッチステートテーブルの構成例を示す説明図である。
【図15】本発明の第1の実施の形態において、仮想PCIスイッチステートテーブルの更新状態を示した説明図である。
【図16】本発明の第1の実施の形態において、仮想PCIスイッチステートテーブルの更新状態を示した説明図である。
【図17】本発明の第1の実施の形態のPCIMの構成を示したブロック図である。
【図18】本発明の第1の実施の形態の仮想ツリーステート記録テーブルの構成例を示した説明図である。
【図19】本発明の第1の実施の形態の仮想ツリーステート記録テーブルの更新状態を示した説明図である。
【図20】本発明の第1の実施の形態の仮想ツリーステート記録テーブルの更新状態を示した説明図である。
【図21】本発明の第1の実施の形態のPCIスイッチの仮想ツリーの切り替え処理のフローチャート図である。
【図22】本発明の第1の実施の形態のPCIMの仮想ツリーの切り替え処理のフローチャートである。
【図23】本発明の第2の実施の形態のサーバシステムの構成を示す説明図である。
【図24】本発明の第2の実施の形態の仮想ツリーが切り替えられる前のサーバシステムの構成を示す説明図である。
【図25】本発明の第2の実施の形態の仮想ツリーが切り替えられた後のサーバシステムの構成を示す説明図である。
【図26】本発明の第2の実施の形態の仮想ツリーステート記録テーブルの構成例を示した説明図である。
【図27】本発明の第2の実施の形態の仮想ツリーの切り替えの処理における仮想ツリーステート記録テーブルの更新状態を示した説明図である。
【図28】本発明の第2の実施の形態の仮想ツリーの切り替えの処理における仮想ツリーステート記録テーブルの更新状態を示した説明図である。
【図29】本発明の第2の実施の形態のPCIスイッチの処理を示したフローチャートである。
【図30】本発明の第2の実施の形態のPCIMの処理を示したフローチャートである。
【符号の説明】
【0210】
100 物理サーバ
101 物理サーバのハードウェア構成要素
102 チップセット
103 CPU
104 メモリ
106 オペレーティングシステム
107 PCIスイッチ
108 スイッチユニット
109 スイッチ制御部
110 Muliti−Rootスイッチユニット制御部
111 仮想ツリーステート通知部
112 PCIM
113 サーバ管理部
114 I/Oデバイス
115 制御I/F
116 制御I/F
117 MRまたはBase PCIインタフェース
118 制御I/F
119 PCIMユニット
120 仮想ツリーステート管理部
121 Upstreamポート
122 Downstreamポート
123 仮想ツリー制御部
124 Muluti−Root障害処理部
201 Upstream側コンフィギュラブルPCIバス部
202 仮想PCIスイッチコンフィギュラブルPCIバス
203 Downstream側コンフィギュラブルPCIバス部
204 Upstream側PCIブリッジ
205 Downstream側PCIブリッジ
206 仮想PCIスイッチ
300 MR Upstream制御テーブル
301 Upstream側PCIブリッジ識別子
302 Upstreamポート識別子
303 仮想PCIスイッチ識別子
304 Upstream側リンクローカル識別子
305 仮想PCIスイッチにおけるリセットフラグ
306 仮想PCIスイッチに関するUpstream側PCIブリッジにおけるエントリ
310 MR Downstream制御テーブル
311 Downstream側PCIブリッジ識別子
312 Downstreamポート識別子
313 仮想PCIスイッチ識別子
314 Downstream側リンクローカル識別子
315 仮想PCIスイッチにおけるリセットフラグ
316 仮想PCIスイッチに関するDownstream側PCIブリッジにおけるエントリ
350 仮想ツリーUpstream管理テーブル
351 仮想ツリー識別子
352 PCIスイッチ識別子
353 仮想PCIスイッチ識別子
354 Upstream側PCIブリッジ識別子
355 Upstreamポート識別子
356 Upstreamポートにおけるリンクローカル識別子
357 仮想ツリーに関する仮想PCIスイッチに関するUpstream側PCIブリッジにおけるエントリ
360 仮想ツリーDownstream管理テーブル
361 仮想ツリー識別子
362 PCIスイッチ識別子
363 仮想PCIスイッチ識別子
364 Downstream側PCIブリッジ識別子
365 Downstreamポート識別子
366 Downstreamポートにおけるリンクローカル識別子
367 仮想ツリーに関する仮想PCIスイッチに関するDownstream側PCIブリッジにおけるエントリ
370 物理トポロジ管理テーブル
371 PCIスイッチ識別子
372 ポート識別子
373 パートナーPCIスイッチ識別子
374 パートナーポート識別子
375 リンクの種類
376 物理ツリートポロジに関する、PCIスイッチのポート毎のエントリ
501 仮想PCIスイッチステート記録部
502 仮想PCIスイッチステート送信部
600 仮想PCIスイッチステートテーブル
601 仮想PCIスイッチ識別子
602 Downstream側PCIブリッジ識別子
603 リセット処理完了情報
604 一つのDownstreamにおける仮想ツリーのリセット完了ステートを表すエントリ
701 仮想ツリーステート記録部
702 仮想ツリーステートチェック部
800 仮想ツリーステートテーブル
801 仮想ツリー識別子
802 PCIスイッチ識別子
803 仮想PCIスイッチ識別子
804 仮想PCIスイッチ構成変更可能情報
805 一つの仮想PCIスイッチにおける仮想ツリーのリセット完了ステートを表すエントリ
1101 Virtual Machine Monitor
1102 オペレーティングシステム
1103 仮想サーバ
1104 PCIスイッチトランザクションコントロール部
1105 In−flightトランザクション完了確認部
1106 トランザクション完了情報送信部
1200 仮想ツリーステート記録テーブル
1201 仮想ツリー識別子
1202 PCIスイッチ識別子
1203 仮想PCIスイッチ識別子
1204 Downstream側PCIブリッジ識別子
1205 In−flightトランザクション完了情報
1206 一つのI/Oデバイスにおける仮想ツリーのIn−flightトランザクション完了ステートを表すエントリ

【特許請求の範囲】
【請求項1】
複数のUpstreamポートと複数のDownstreamポートを備え、少なくとも一つの前記Upstreamポートに一以上の物理サーバが接続され、少なくとも一つの前記Downstreamポートに一以上のI/Oデバイスが接続されたPCIスイッチであって、
前記PCIスイッチは、
前記一以上の物理サーバと前記一以上のI/Oデバイスとを対応付けを示す仮想ツリーを構成する仮想PCIスイッチの構成を設定するスイッチユニットと、
複数の前記Upstreamポート及び複数の前記Downstreamポートと、前記スイッチユニットとを接続するPCIブリッジと、
前記仮想ツリーに関する特定の処理の完了を検知し、前記検知した結果に基づいて前記仮想PCIスイッチの構成が変更可能であるか否かを判定し、前記判定結果が切り替え可能であるときに、少なくとも前記仮想PCIスイッチの構成が変更可能であることと、前記仮想PCIスイッチを特定する識別子とを含む通知情報を送信する制御部と、
を備えたことを特徴とするPCIスイッチ。
【請求項2】
前記制御部は、さらに前記仮想ツリーを管理する管理マネージャに接続され、
前記通知情報を前記管理マネージャに送信することを特徴とする請求項1に記載のPCIスイッチ。
【請求項3】
前記制御部は、
前記仮想ツリーに関する特定の処理が完了を検知した結果を記憶する記憶部を備え、
前記検知した結果に基づいて前記仮想PCIスイッチの構成が変更可能であるか否かを判定する場合に、前記記憶部に記憶された結果を参照して前記仮想PCIスイッチの構成が変更可能であるか否かを判定することを特徴とする請求項1に記載のPCIスイッチ。
【請求項4】
前記制御部は、
前記仮想ツリーに関する特定の処理の完了を検知する場合に、
前記制御部が行う前記仮想ツリーに対するリセット処理の完了を各前記Downstreamポート毎に検知することを特徴とする請求項1または3に記載のPCIスイッチ。
【請求項5】
前記制御部は、
前記仮想ツリーに関する特定の処理の完了を検知する場合に、
前記Downstreamポートに接続された前記I/Oデバイスから発行されるトランザクションを抑制し、
前記トランザクションが抑制される前に前記Downstreamポートに存在している実行中のトランザクションの処理の完了を各前記Downstreamポート毎に検知することを特徴とする請求項1に記載のPCIスイッチ。
【請求項6】
前記PCIスイッチは、少なくとも一つの前記Upstreamポートに一以上の物理サーバまたは他の前記PCIスイッチが接続され、少なくとも一つの前記Downstreamポートに一以上のI/Oデバイスまたは他のPCIスイッチが接続されたことを特徴とする請求項1から請求項5いずれかに記載のPCIスイッチ。
【請求項7】
CPUとメモリとPCIインタフェースを備える一以上の物理サーバと、
一以上のI/Oデバイスと、
複数のUpstreamポートと複数のDownstreamポートを備え、少なくとも一つの前記Upstreamポートに一以上の物理サーバを接続し、少なくとも一つの前記Downstreamポートに一以上のI/Oデバイスを接続し、前記一以上の物理サーバと前記一以上のI/Oデバイスとを対応付けを示す仮想ツリーを構成するPCIスイッチと、
を備えるPCIスイッチシステムにおける仮想ツリーの切り替え方法であって、
前記PCIスイッチが、前記一以上の物理サーバと前記一以上のI/Oデバイスとを対応付けを示す仮想ツリーを構成するステップと、
前記PCIスイッチが前記仮想ツリーに関する特定の処理の完了を検知するステップと、
前記PCIスイッチが前記検知した結果に基づいて、前記仮想ツリーを構成する仮想PCIスイッチの構成が変更可能であるか否かを判定するステップと、
前記判定結果が切り替え可能であるときに、前記PCIスイッチが少なくとも前記仮想PCIスイッチの構成が変更可能であることと、前記仮想PCIスイッチを特定する識別子とを含む通知情報を送信するステップと、
を含むことを特徴とする仮想ツリーの切り替え方法。
【請求項8】
前記PCIスイッチシステムは、さらに前記仮想ツリーを管理する管理マネージャを備え、前記管理マネージャは前記PCIスイッチに接続され、
前記通知情報を送信するステップは、
少なくとも前記仮想PCIスイッチの構成が変更可能であることと、前記仮想PCIを特定する識別子とを含む通知情報を送信する場合に、前記PCIスイッチが、前記管理マネージャに前記通知情報を送信し、
前記管理マネージャは、受信した前記通知情報に基づいて仮想ツリーが切り替え可能か否かを判定し、前記判定結果が切り替え可能であるときに、仮想ツリーの切り替え処理の実行要求を前記PCIスイッチに発行することを特徴とする請求項7に記載の仮想ツリーの切り替え方法。
【請求項9】
前記PCIスイッチは、前記仮想ツリーに関する特定の処理の完了を検知した結果を記憶する記憶部を備え、
前記PCIスイッチが前記検知した結果に基づいて、前記仮想ツリーを構成する前記仮想PCIスイッチの構成が変更可能であるか否かを判定するステップは、
前記記憶部に記憶された結果を参照して前記PCIスイッチが前記検知した結果に基づいて、前記仮想ツリーを構成する前記仮想PCIスイッチの構成が変更可能であるか否かを判定することを特徴とする請求項7に記載の仮想ツリー切り替え方法。
【請求項10】
前記特定の処理は、前記物理サーバが前記PCIスイッチに発行した前記仮想ツリーに対するリセット処理であって、
前記PCIスイッチが前記仮想ツリーに関する特定の処理の完了を検知するステップは、
前記仮想ツリーに対するリセット処理の完了を各前記Downstreamポート毎に検知することを特徴とする請求項7または9に記載の仮想ツリー切り替え方法。
【請求項11】
前記特定の処理は、前記Downstreamポートに接続された前記I/Oデバイスから発行されるトランザクションを抑制する処理であって、
前記PCIスイッチが前記仮想ツリーに関する特定の処理の完了を検知するステップは、
前記PCIスイッチが、前記Downstreamポートに接続された前記I/Oデバイスから発行されるトランザクションを抑制し、
前記トランザクションが抑制される前に前記Downstreamポートに存在している実行中のトランザクションの処理の完了を各前記Downstreamポート毎に検知することを特徴とする請求項7に記載の仮想ツリー切り替え方法。
【請求項12】
一以上の物理サーバと、
一以上のI/Oデバイスと、
複数のUpstreamポートと複数のDownstreamポートを備え、少なくとも一つの前記Upstreamポートに一以上の物理サーバが接続され、少なくとも一つの前記Downstreamポートに一以上のI/Oデバイスが接続されたPCIスイッチと、
前記一以上の物理サーバと前記PCIスイッチとに接続された、仮想ツリーを管理する管理マネージャと、を備えるPCIスイッチシステムであって、
前記PCIスイッチは、
前記一以上の物理サーバと前記一以上のI/Oデバイスとを対応付けを示す前記仮想ツリーを構成する仮想PCIスイッチの設定をするスイッチユニットと、
複数の前記Upstreamポート及び複数の前記Downstreamポートと、前記スイッチユニットとを接続するPCIブリッジと、
前記仮想ツリーに関する特定の処理の完了を検知し、前記検知した結果に基づいて前記仮想PCIスイッチの構成が変更可能であるか否かを判定し、前記判定結果が切り替え可能であるときに、少なくとも前記仮想PCIスイッチの構成が変更可能であることと、前記仮想PCIスイッチを特定する識別子とを含む通知情報を送信する制御部と、を備え、
前記制御部は、前記通知情報を前記管理マネージャに送信し、
前記管理マネージャは、受信した前記通知情報に基づいて前記仮想ツリーが切り替え可能であるか否かを判定し、前記判定結果が切り替え可能であるときに、仮想ツリーの切り替え処理の実行要求を前記PCIスイッチに発行することを特徴とするPCIスイッチシステム。
【請求項13】
前記制御部は、
前記仮想ツリーに関する特定の処理の完了を検知した結果を記憶する記憶部を備え、
前記検知した結果に基づいて前記仮想PCIスイッチの構成が変更可能であるか否かを判定する場合に、前記記憶部に記憶された結果を参照して前記仮想PCIスイッチの構成が変更可能であるか否かを判定することを特徴とする請求項12に記載のPCIスイッチシステム。
【請求項14】
前記制御部は、
前記仮想ツリーに関する特定の処理の完了を検知する場合に、
前記制御部が行う前記仮想ツリーに対するリセット処理の完了を各前記Downstreamポート毎に検知することを特徴とする請求項12または13に記載のPCIスイッチシステム。
【請求項15】
前記制御部は、
前記仮想ツリーに関する特定の処理の完了を検知する場合に、
前記Downstreamポートに接続された前記I/Oデバイスから発行されるトランザクションを抑制し、
前記トランザクションが抑制される前に前記Downstreamポートに存在している実行中のトランザクションの処理の完了を各前記Downstreamポート毎に検知することを特徴とする請求項12に記載のPCIスイッチシステム。
【請求項16】
前記管理マネージャは、前記制御部から送信された前記通知情報を記憶する記憶部を備え、受信した前記通知情報に基づいて前記仮想ツリーが切り替え可能であるか否かを判定する場合に、前記記憶部に記憶された通知情報を参照して前記仮想ツリーが切り替え可能であるか否かを判定することを特徴とする請求項12に記載のPCIスイッチシステム。
【請求項17】
前記PCIスイッチは、少なくとも一つの前記Upstreamポートに一以上の物理サーバまたは他のPCIスイッチが接続され、少なくとも一つの前記Downstreamポートに一以上のI/Oデバイスまたは他のPCIスイッチが接続されたことを特徴とする請求項12に記載のPCIスイッチシステム。

【図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

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate