JP5272265B2 - Pciデバイス共有方法 - Google Patents

Pciデバイス共有方法 Download PDF

Info

Publication number
JP5272265B2
JP5272265B2 JP2008250208A JP2008250208A JP5272265B2 JP 5272265 B2 JP5272265 B2 JP 5272265B2 JP 2008250208 A JP2008250208 A JP 2008250208A JP 2008250208 A JP2008250208 A JP 2008250208A JP 5272265 B2 JP5272265 B2 JP 5272265B2
Authority
JP
Japan
Prior art keywords
identifier
server
virtual
pci
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008250208A
Other languages
English (en)
Other versions
JP2010079816A5 (ja
JP2010079816A (ja
Inventor
貴成 馬場
俊臣 森木
敬太郎 上原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008250208A priority Critical patent/JP5272265B2/ja
Priority to US12/546,264 priority patent/US8341327B2/en
Publication of JP2010079816A publication Critical patent/JP2010079816A/ja
Publication of JP2010079816A5 publication Critical patent/JP2010079816A5/ja
Priority to US13/681,005 priority patent/US8725926B2/en
Application granted granted Critical
Publication of JP5272265B2 publication Critical patent/JP5272265B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0227Cooperation and interconnection of the input arrangement with other functional units of a computer

Description

本発明は、複数の計算機を備えたブレードサーバに関し、特に、ひとつのI/Oデバイスを複数の計算機で共有する技術に関する。
情報セキュリティやコンプライアンスへの意識の高まりから、サーバサイドでのウィルスチェックやメールフィルタなど、企業の情報システムに求められる処理要求が増大している。これらの処理要求の増大に対し、従来は処理内容ごとに個別にサーバを導入して対応してきた。しかし、サーバ台数の増大は運用コストの増大を招き、企業のIT予算を圧迫して問題化している。
この問題に対し、複数のサーバで実行されていた処理を1台の高性能サーバに集約して、情報システムを構成するサーバ台数を削減するサーバ統合が注目されている。サーバ統合ではサーバの台数に比例して継続して発生する消費電力やスペース(占有床面積)、ハードウェア障害時のメンテナンスコスト等を削減できる。
サーバ統合を実現する手段として、CPUを高密度に集積したブレードサーバが台頭している(例えば、特許文献1)。典型的なブレードサーバは、CPU(プロセッサ)、メモリ及びNIC(Network Interface Card)を搭載した複数のブレードと、ネットワークスイッチ、および拡張用I/Oスロットを搭載したI/Oドロワーが1つの筐体に格納された構成をとる。ブレードサーバを用いると、ネットワーク経由で処理を行うサーバに対して効果的にサーバ統合を実現できる。
一方、ブレードサーバはI/Oドロワーの拡張用I/Oスロットは、ブレードとI/Oスロットとの対応が固定的であった。このため、NIC以外のI/Oカードを稀にしか使用しない、もしくは全く使用しないブレードに対してもI/Oスロットが予約されており、スペースに無駄が生じるという問題があった。また、ブレードの用途によっては多数のI/Oカードを必要とする場合(例;複数ブレード間でのHot−Standby構成等)に、I/Oドロワー内のI/Oスロットの数を超えてI/Oスロットを割り当てることができない、という問題があった。
ブレードサーバのように多数のブレードで限られた数のI/Oスロット(またはI/Oデバイス)を利用する技術として、ひとつのI/Oデバイスを複数のホストで利用する技術が提案されている。
このような技術としては、PCI−Sigで標準化が行われているシングルルートI/O仮想化技術(SR−IOV:Single Root IO Virtualization)やマルチルートI/O仮想化技術(MR−IOV:Multi Root IO Virtualization)が知られている(例えば、特許文献2、非特許文献1等)。
この他、任意のサーバ間でストレージ装置を共有する技術としては、iSCSIが広く知られている。iSCSIは、サーバとストレージ装置のアクセスに使用されるSCSIコマンドを、ネットワーク通信のプロトコルであるTCP/IPパケットにカプセル化する技術である。これにより任意のサーバ間でiSCSI対応ターゲットデバイスを共有できる。
特開特開2002−32153号 米国特許第7058738号 「Single-Root I/O Virtualization and Sharing Specification, Revision 1.0, Section 1 - Architectural」、2008年発行、著者PCI-SIG、第15〜34頁
上記従来例のシングルルートI/O仮想化技術(以下、SR−IOV)では、1つのI/Oデバイスの物理機能(PF;Physical Function)が複数の仮想機能(VF;Virtual Function)を提供することができる。同一ブレード内の複数のOSインスタンス間で、複数の仮想機能をそれぞれ占有することでひとつのSR−IOV対応のI/Oデバイスを共有することができる。
一方、上記従来例のマルチルートI/O仮想化技術(以下、MR−IOV)では、1つのI/Oデバイスに複数の物理機能(PF;Physical Function)を搭載し、各物理機能上で複数の仮想機能(VF;Virtual Function)を提供することができる。MR−IOV対応のI/Oデバイスを利用し、仮想化ソフトウェアを導入することで、異なる物理サーバ上で動作する仮想計算機(VM;Vitual Machine)間で1つのI/Oデバイスを共有することができる。すなわち、MR−IOVでは、特定のブレード(物理計算機)に対して1つのPFを占有させ、各VMはPFが提供する複数のVFを占有する。
ここで、SR−IOVに対応するI/Oデバイスでは、一つの物理機能を備えればよいので、MR−IOVに対応するI/Oデバイスに低コストで調達することができる。
上記従来例のブレードサーバにおいて複数のブレードでI/Oデバイスを共有する場合、上記SR−IOVに対応するI/Oデバイスを用いれば、I/Oデバイスの調達コストを抑制できるものの、ひとつのブレードに対してひとつのI/Oデバイスを割り当てることになり、複数のブレード間でひとつのI/Oデバイスを共有できない、という問題があった。
一方、従来例のブレードサーバにおいて複数のブレードでI/Oデバイスを共有する場合、上記MR−IOVに対応するI/Oデバイスを用いれば、複数のブレード間でひとつのI/Oデバイスを共有することができる。しかしながら、MR−IOVに対応するI/OデバイスはSR−IOVに対応するI/Oデバイスに対して調達コストが高いため導入コストが増大する、という問題がある。
なお、上記iSCSIをブレードサーバで利用した場合、ストレージ装置の共有は可能であるが、I/OデバイスがNIC等の場合は利用することができない。
そこで本発明は、上記問題点に鑑みてなされたもので、複数のブレードを備えたブレードサーバにおいて、複数のブレード間で、I/Oドロワーに装着されるI/Oデバイスを安価に共有することを目的とする。
本発明は、仮想化部を備えて1以上の仮想サーバを提供する複数の物理サーバと、前記複数の物理サーバで共有されるI/Oデバイスと、前記複数の物理サーバと前記I/Oデバイスを接続するスイッチと、前記スイッチ初期化する管理部とを有するサーバシステムであって、前記I/Oデバイスが、仮想的な機能であるVirtual Function(VF)を有し、前記スイッチが、前記仮想サーバが認識する識別子である第1の識別子と、前記管理部が管理する識別子である第2の識別子と、の間の対応関係を示す識別子対応情報を保持し、前記仮想サーバからパケットを受信した場合に、送信元の物理サーバを識別するサーバ識別子を含む前記パケットを前記スイッチ内で変換し、前記パケットを前記I/Oデバイスに送信する際には、前記識別子対応情報に基づいて、前記パケットに含まれる前記第1の識別子を、当該第1の識別子に前記対応付けられた前記第2の識別子に変換し、かつ、前記サーバ識別子を削除した前記パケットを、前記I/Oデバイスに送信する、ことを特徴とするサーバシステム。
したがって、本発明は、ひとつのI/Oデバイス、特にSR-IOV対応のI/Oデバイスを複数のサーバで共有することが可能となる。
以下、本発明の一実施形態を添付図面に基づいて説明する。
図1は、第1の実施形態を示し、本発明を適用したブレードサーバ(複合型計算機システム)のブロック図を示す。図1において、ブレードサーバ1は、物理計算機として機能するn台のブレード10−1〜10−nと、シングルルートI/O仮想化技術(以下、SR−IOV)に対応したI/Oデバイス50と、マルチルートI/O仮想化技術(以下、MR−IOV)でトランザクション(パケット)を処理するブレード10−1〜10−nとI/Oデバイス50を接続するPCI−eスイッチ40と、I/Oデバイス50のブレード10−1〜10−nへの割当てを管理するPCI管理サーバ(PCI管理計算機)20と、ユーザや管理者がブレードサーバ1を制御するための管理用端末30と、ブレードサーバ1の各部に電力を供給する電源供給装置60から構成されている。なお、PCI−eスイッチ40、I/Oデバイス50は、上記PCI−SIG(http://www.pcisig.com/)が策定したPCI−expressの規格に準拠したインターフェースで接続される。なお、図1においては、PCI−eスイッチ40が1つ、I/Oデバイス50が1つの例を示したが、複数のPCI−eスイッチ40と複数のI/Oデバイス50を備えることができる。
ブレード10−1は1以上のCPU(プロセッサ)11−1,11−2と、1以上のメモリ12−1と、1以上のチップセット13−1と、を含むハードウェアで構成される。なお、ブレード10−nとPCI管理サーバ20もブレード10−1と同一のハードウェアで構成される。
また、ブレード10−1〜10−nとPCI管理サーバ20の間はネットワーク70を介して接続される。ネットワークとしては、LAN(Local Area Network)やI2C(Inter-Integrated Circuit)を用いることができる。各ブレード10−1〜10−nにはBMC(Baseboard Management Controller)を搭載してもよく、BMCによって各ブレード10−1〜10−nの構成情報(コンフィギュレーション)や電源状態を収集し、PCI管理サーバ20に通知することができる。
なお、各ブレード10−1〜10−n及びPCI管理サーバ20のチップセット13−1〜13−nは、それぞれPCI−expressに準拠したI/Oポート131−1〜131−nと、イーサネット(登録商標)等のLANの規格に準拠したネットワークインターフェース132−1〜132−nを備え、チップセット13−1〜13−nのネットワークインターフェース132−1〜132−nがネットワーク70に接続され、チップセット13−1〜13−nのI/Oポート131−1〜131−nがPCI−eスイッチ40に接続される。
PCI−eスイッチ40は、ブレード10−1〜10−n及びPCI管理サーバ20のチップセット13と接続されるアップストリームポート41−0〜41−nと、I/Oデバイス50が接続されるダウンストリームポート42−1〜42−nを備える。
図1の例では、ブレード10−1のチップセット13−1のI/Oポート131−1がPCI−eスイッチ40のアップストリームポート41−1に接続され、ブレード10−nのチップセット13−nのI/Oポート131−nがPCI−eスイッチ40のアップストリームポート41−nに接続され、PCI管理サーバ20のチップセット13−MのI/Oポート131−MがPCI−eスイッチ40のアップストリームポート41−0に接続され、ダウンストリームポート42−1にI/Oデバイス50が接続された例を示す。
なお、ブレード10−1〜10−nとPCI−eスイッチ40の接続及びI/Oデバイス50とPCI−eスイッチ40の接続は、ブレードサーバ1のバックプレーなどを利用することができる。
PCI−eスイッチ40は、アップストリームポート41−1〜41−nがMR−IOVに対応しており、ダウンストリームポート42−1〜42−nがSR−IOVに対応し、アップストリームポート41−1〜41−nはブレード10−1〜10−nとの間でマルチルートI/O仮想化技術のトランザクション(パケット)を送受信し、ダウンストリームポート42−1〜42−nとI/Oデバイス50の間ではシングルルートI/O仮想化技術のパケットを送受信する。このため、PCI−eスイッチ40は、マルチルートI/O仮想化技術のパケットとシングルルートI/O仮想化技術のパケットを相互に変換する処理を行う。
PCI管理サーバ20には、入出力装置(図示省略)を備えた管理端末30が接続され、管理者などの操作により後述するPCIマネージャ202に指令を行うことができる。
図2は、ブレードサーバ1の機能要素を示すブロック図である。ブレード10−1〜10−n上ではソフトウェア構成要素である仮想マシンモニタ(VMM;Virtual Machine Monitor)100−1〜100−nが稼動し、各仮想マシンモニタ100−1〜100−n上では複数の仮想計算機101−0〜101−k−1が提供される。ブレード10−1では、仮想マシンモニタ100−1上に2つの仮想計算機101−0、101−1が生成され、各各仮想計算機101−0、101−1ではOS102−0とOS−102−1がそれぞれ実行される。仮想計算機101−0、101−1のOS102−0とOS−102−1にはI/Oデバイス50の仮想機能(VF;Virtual Function)を利用するためのVFドライバ103がそれぞれロードされている。他のブレード10−nもブレード10−1と同様に構成され、それぞれ複数の仮想計算機101−k−1でOS102を実行し、VFドライバ103によってI/Oデバイス50の仮想機能を利用することができる。また、各仮想計算機101−1〜101−k−1のOS102−0〜102−K−1では、任意のアプリケーションまたはサービスが実行される。
一方、PCI管理サーバ20では、OS201上で各ブレード10−1〜10−nとPCI−eスイッチ40及びI/Oデバイス50を管理するPCIマネージャ202が動作する。PCI管理サーバ20のOS201にはI/Oデバイス50の物理機能(PF;Physical Function)を利用するためのPFドライバ203がロードされている。
ブレード10−1〜10−nの各仮想計算機101−1〜101−k−1と、PCI管理サーバ20からアクセスされるI/Oデバイス50は、ひとつの物理機能(PF)501と複数の仮想機能(VF)502を提供するSR−IOVに準拠したPCI−expressのI/Oデバイスである。物理機能501と仮想機能502は、I/Oデバイス50の制御部510が提供する機能であり、仮想機能502の数等はPCI管理サーバ20からの要求によって決定される。なお、図2では、I/Oデバイス50が仮想機能502としてVF1〜VFkまでのk個の仮想機能502を提供する例を示す。
ここで、ブレード10−1〜10−nチップセット13−1〜13−nと各仮想計算機101−1〜101−k−1のVFドライバ103は、MR−IOVに対応したPCI−expressのパケットを送受信する。一方、I/Oデバイス50はSR−IOVに対応したPCI−expressのパケットを送受信する。
本発明の特徴部であるPCI−eスイッチ40は、後述するように、MR−IOVのアップストリームポート41−1〜41−nとSR−IOVのダウンストリームポート42−1〜42−nとの間で、パケットの変換を行って、複数のブレード10−1〜10−nでSR−IOVのI/Oデバイス50を共有する。
各ブレード10−1〜10−n及びPCI管理サーバ20を構成するチップセット13−1〜n、13−Mは、PCI−Expressのプロトコル階層としてルートコンプレックス(RC;Root Complex)を含み、ルートコンプレックスはエンドポイントとしてのI/Oデバイス50までのローカルPCIツリーを管理する。
PCI管理サーバ20のPCIマネージャ202は、後述するように、ブレード10−1〜10−nに割当てるPCIツリーの初期化と、PCI−eスイッチ40からI/Oデバイス50のトポロジーと、ブレード10−1〜10−nへ割当てるPCIツリーの対応関係を管理し、各ブレード10−1〜10−nとPCI−eスイッチ40間のMR−IOVの設定を行う。
また、PCIマネージャ202は、ブレード10−1〜10−nの管理部としても機能し、各ブレード10−1〜10−nの仮想マシンモニタ100−1〜100−nが生成する仮想計算機101−1〜101−k−1や起動するOS102−0〜102−k−1を管理する。
図3は、PCI−eスイッチ40の構成を示すブロック図である。PCI−eスイッチ40は、各ブレード10−1〜10−nに接続されてMR−IOVのパケットを送受信するアップストリームポート41−1〜41−nがマルチルートスイッチ(以下、MRS)論理410に接続され、I/Oデバイス50に接続されるダウンストリームポート42−1〜42−nは、SR−IOVのパケットとMR−IOVのパケットを相互に変換するマルチルート−シングルルート(以下、MR−SR)変換論理430に接続される。なお、MR−SR変換論理430は、ダウンストリームポート42−1に対応するものだけを図示したが、実際には、各ダウンストリームポート42−1〜42−n毎にMR−SR変換論理430が設けられる。
MRS(マルチルートスイッチ)論理410は、アップストリームポート41−1〜41−nに接続されるポート411−0〜411−nと、ポート411−0〜411−nにそれぞれ接続されたアップストリームポートブリッジ412と、アップストリームポートブリッジ412に接続されたダウンストリームポートブリッジ413と、ダウンストリームポートブリッジ412に接続されたマルチルートポート414と、ポート411−0〜411−nとマルチルートポート414と、ポート411−0〜411−nとマルチルートポート414の接続関係等のMRS(マルチルートスイッチ)構成情報(コンフィギュレーション)415とを備える。MRS構成情報415は、ポート411−0〜411−nとマルチルートポート414のルーティングを管理する。このMRS構成情報415は、コンフィギュレーション空間アクセスパス421によりアップストリームポートブリッジ412に接続されてアップストリームポート41−1〜41−nからアクセス可能となっており、例えば、アップストリームポート41−0に接続されたPCI管理サーバ20からアクセスすることができる。さらに、コンフィギュレーション空間アクセスパス421は、MR−SR変換論理430にも接続され、PCI管理サーバ20はMRS論理410からコンフィギュレーション空間アクセスパス421を介してMR−SR変換論理430にもアクセス可能となっている。
MRS論理410のマルチルートポート414は、内部マルチルートリンク420を介してMR−SR変換論理430に接続される。
MR−SR変換論理430は、内部マルチルートリンク420から受信したMR−IOVのパケットをSR−IOVのパケットに変換し、ダウンストリームポート42−1からI/Oデバイス50へ送信するユニット431〜434と、ダウンストリームポート42−1から受信したI/Oデバイス50からのSR−IOVのパケットをMR−IOVのパケットに変換して、内部マルチルートリンク420に送信するユニット435〜438と、MR−IOVのパケットとSR−IOVのパケットの変換を行うための情報を格納するTLP(Transaction Layer Packet)変換情報440を主体に構成される。
ここで、本発明のパケットの構成について説明する。図14は、マルチルートTLP及びPCIe(PCI−express)ベースTLPのフォーマットを示す説明図である。
マルチルートTLP(図中MR TLP)1300は、PCI−expressのパケットであるPCIeベースTLP1200のヘッダーの前に、マルチルートTLPプリフィックスヘッダー1310を付加したものである。
PCIeベースTLP1200は、スタートフレーム(図中STP)と、シーケンス番号と、TLPヘッダーと、ECRC(End to End Cyclic Redundancy Check)と、LCRC(Link Cyclic Redundancy Check)と、エンドフレームから構成される。
マルチルートTLP1300は、PCIeベースTLP120のシーケンス番号とTLPヘッダーの間に、マルチルートTLPプリフィックスヘッダ1310を挿入したものである。
マルチルートTLPプリフィックスヘッダ1310は、MR−IOVにおいてPCIeパケットの発行元のブレード10−1〜10−nを特定するための仮想階層ナンバー(VHn;Virtual Hierarchy Number)1311を含む。なお、本実施例における仮想階層ナンバー1311はPCIeスイッチ40の内部で付与される識別番号であり、MRS構成情報415に格納されている。
本発明のブレードサーバ1では、仮想計算機101−1〜101−k−1、仮想マシンモニタ100−1〜100−n、チップセット13−1〜13−n及びアップストリームポート41−1〜41−n間では、MR−IOVのパケットであるマルチルートTLP1300で送受信を行い、ダウンストリームポート42−1とI/Oデバイス50の間では、マルチルートTLP1300からマルチルートTLPプリフィックスヘッダ1310を削除して、PCIeベースTLP1200で送受信を行う。
ここで、本発明のブレードサーバ1では、ブレード10−1〜10−nからI/Oデバイス50への下り方向(Outbound)のパケットではマルチルートTLP1300は、PCI−eスイッチ40のMR−SR変換論理430が、マルチルートTLPプリフィックスヘッダ1310を削除して、送信元をPCI管理サーバ20としたPCIeベースTLP1200に変換してI/Oデバイス50に送信する。
逆に、I/Oデバイス50からブレード10−1〜10−nへの上り方向(Inbound)のパケットでは、PCI−eスイッチ40のMR−SR変換論理430が、I/Oデバイス50から受信したPCIeベースTLP1200に、下り方向のパケットに付与されていた仮想階層ナンバー1311を含むマルチルートTLPプリフィックスヘッダ1310を付加してブレード10−1〜10−nに送信する。
以上のような構成により、PCI−eスイッチ40のブレード10−1〜10−n側ではMR−IOVのパケットで通信を行い、PCI−eスイッチ40のI/Oデバイス50側ではSR−IOVのパケットで通信を行うことで、複数のブレード10−1〜10−nでひとつのSR−IOVに準拠したI/Oデバイス50を共有できる。
また、PCI−eスイッチ40は、発行元のブレード10−1〜10−nをI/Oデバイス50に対して隠蔽するのに加え、各ブレード10−1〜10−n間で異なるMMIO(Memory-mapped I/O))空間を吸収する。
このため、PCI管理サーバ20は、仮想マシンモニタ100−1〜100−nの起動時に、各仮想計算機101−1〜101−k−1のMMIO空間のアドレスと、I/Oデバイス50へのPCIeベースTLP1200の発行元となるPCI管理サーバ20のMMIO空間の差分(オフセット)を、PCI−eスイッチ40のTLP変換情報440に格納しておき、上り方向のマルチルートTLP1300の宛先アドレスを、実際の宛先となる仮想マシンモニタ100−1〜100−nのMMIO空間に変換する。
以下に、PCI−eスイッチ40が行う仮想階層ナンバー1311の削除及び付加と宛先アドレスの変換について詳述する。
図4は、ブレード10−1(Blade#1)〜10−n(Blade#n)及びPCI管理サーバ20(PCI−M)が管理するメモリ12−1〜n、12−M上に設定したMMIO空間を示す。例えば、図示の例では、ブレード10−1に2つの仮想機能502=VF1、VF2を割り当て、ブレード10−nにも2つの仮想機能502=VFk−1、VF2k割り当てた例を示す。
ブレード10−1〜10−nの仮想マシンモニタ100−1〜nはローカルPCIツリーの後にI/Oデバイス50の仮想機能502(VF)へアクセスするためのMMIO空間を設定する。各ブレードのMMIO空間は、搭載しているメモリ12−1〜nの容量等の違いにより、アドレスは相違する。各ブレードのMMIO空間は、各ブレード10−1〜10−nが使用する仮想機能502(VF)毎にPCI管理サーバ20が設定するメモリ12−M上のMMIO空間に割り当てられる。
各ブレード10−1〜10−nが使用するMMIO空間のアドレスの違いは、PCIマネージャ202が設定する宛先アドレス修飾情報4401の「Offset」にその差分が設定されることで、PCI−eスイッチ40は、I/Oデバイス50とブレード10−1〜10−n間のパケットの宛先アドレスを変更することができる。
つまり、ブレード10−1〜10−nからI/Oデバイス50に対する読み込み要求等では、各ブレードが送信するパケットの発行元アドレスは、PCI−eスイッチ40が、宛先アドレス修飾情報4401の「Offset」によって、PCI管理サーバ20のMMIO空間が発行元アドレスのパケットに書き換えてI/Oデバイス50に送信する。
逆に、I/Oデバイス50からブレード10−1〜10−nに対する読み込み要求等への応答では、I/Oデバイス50が送信するパケットの宛先アドレスは、PCI管理サーバ20のMMIO空間となっているので、PCI−eスイッチ40は宛先アドレス修飾情報4401の「Offset」によって、PCI管理サーバ20のMMIO空間をブレード10−1〜10−n毎のMMIO空間に書き換えて返信することができる。
以上の処理により、PCI−eスイッチ40は、MMIO空間のアドレスを差し替えることで、複数のブレード10−1〜10−nでSR−IOVに対応するI/Oデバイス50の共有を実現する。
図5は、ブレード10−1(Blade#1)〜10−n(Blade#n)及びPCI管理サーバ20(PCI−M)のチップセット13−1〜n、Mが管理するルーティングIDの関係を示す。各チップセット13−1〜n、Mは、それぞれ、各計算機内のデバイスについて認識したローカルPCIツリー用のルーティングIDと、PCI−eスイッチ40のMRS論理410から取得したMRS論理用ルーティングIDと、各チップセット13−1〜n、MからのI/Oデバイス50のアクセス用ルーティングIDとを備える。
ブレード10−1〜10−nのチップセット13−1〜nでは、接続しているPCI−eスイッチ40のアップストリームポート41−1〜nが異なるため、チップセット13−1〜nが認識するI/Oデバイス50のバス番号は異なる。例えば、図示の例では、ブレード10−1に2つの仮想機能502=VF1、VF2を割り当て、ブレード10−nにも2つの仮想機能502=VFk−1、VF2k割り当てた例を示す。
チップセット13−1からI/Oデバイス50の仮想機能502=VF1へのルーティングIDは、11:0:1であり、バス番号は11であるのに対し、チップセット13−nからI/Oデバイス50の仮想機能502=VFk−1へのルーティングIDは、13:x:y−1でありバス番号は13である。MRS論理用ルーティングIDも同様であり、ブレード10−1〜10−n毎に異なる。なお、ルーティングIDは、バス番号(Bus#):デバイス番号(Dev#):ファンクション番号(Fun#)の順に設定される。
一方、I/Oデバイス50の物理機能501にアクセス可能なPCIマネージャ202は、起動時に物理機能501と仮想機能502のルーティングIDを初期化してチップセット13−Mで管理しており、図示の例ではルーティングID=10:0:0〜10:x:y−1をI/Oデバイス50のアクセス用ルーティングIDに設定する。
そして、PCIマネージャ202は、各ブレード10−1〜10−nが起動する度に、図7に示すTLP変換情報440の仮想機能ID修飾情報4402に、各ブレード10−1〜10−nのチップセット13−1〜nからI/Oデバイス50の仮想機能502までのルーティングIDと、PCI管理サーバ20のチップセット13−Mが管理するI/Oデバイス50のルーティングIDを、各ブレード10−1〜10−n毎の仮想階層ナンバー1311と共に設定する。
ルーティングIDで各ブレード10−1〜10−nとI/Oデバイス50がアクセスを行う場合には、PCI−eスイッチ40が仮想機能ID修飾情報4402を参照し、パケット中のルーティングIDを付け替えて通信を行う。
すなわち、PCI−eスイッチ40は、ブレード10−1〜10−nからI/Oデバイス50へのパケットがルーティングIDでアクセスする場合、各ブレード10−1〜10−nのルーティングIDをPCI管理サーバ20のルーティングIDに差し替えてI/Oデバイス50に送信する。
逆に、I/Oデバイス50からブレード10−1〜10−nへのパケットがルーティングIDでアクセスする場合、PCI−eスイッチ40は、PCI管理サーバ20のルーティングIDを各ブレード10−1〜10−nのルーティングID差し替えてI/Oデバイス50に送信する。
以上の処理により、PCI−eスイッチ40は、ルーティングIDを差し替えることで、複数のブレード10−1〜10−nでSR−IOVに対応するI/Oデバイス50の共有を実現する。
ここで、ブレードサーバ1で使用されるPCI−expressのパケットのフォーマットを図15に示す。図15はPCI−eスイッチ40で転送されるPCIeベースTLP1200のうちTLPヘッダをアクセス形態毎に示す説明図である。
図15は、PCIeベースTLP1200のTLPヘッダの詳細を示し、TLPヘッダ1200Aは、MMIO空間のアドレスでブレード10−1〜10−nとI/Oデバイス50のアクセスを行うパケットを示し、TLPヘッダ1200B、1200CはルーティングIDでアクセスを行うパケットを示しており、TLPヘッダ1200Bは要求(書き込み要求など)に対する完了通知を通知するパケットの例を示し、TLPヘッダ1200Cは対象のデバイスの構成情報(コンフィギュレーション)の設定するパケットを示す。
各TLPヘッダ1200A〜Cは、バイト0〜15の16バイトで構成される。
MMIO空間のアドレスでアクセスするTLPヘッダ1200Aは、メモリリード要求やメモリライト要求の際に使用される。
TLPヘッダ1200Aは、バイト4、5にパケットの発行元(リクエスタ)IDに要求元のルーティングIDを格納し、バイト8〜15に読み込む対象のMMIO空間のアドレスを格納し、バイト0の0〜4ビットに要求の種別を格納する。
PCI−eスイッチ40は、ブレード10−1〜10−nからI/Oデバイス50へ向かう下りパケットの時には、リクエスタIDに格納されたブレードのルーティングIDをPCI管理サーバ20のルーティングIDに書き換えて、要求元がPCI管理サーバ20であることを設定する。つまり、SR−IOVのI/Oデバイス50は、ひとつの計算機のみと接続されるため、I/Oデバイス50へのパケットはPCI管理サーバ20発に差し替える。
そして、PCI−eスイッチ40は、ブレードのMMIO空間のアドレスを宛先アドレス修飾情報4401の「offset」でPCI管理サーバ20(PCIマネージャ202)のMMIO空間のアドレスに変更し、I/Oデバイス50が認識可能なアドレス空間に変更する。
ルーティングIDでアクセスする場合の、TLPヘッダ1200Bは、要求(書き込み要求等)に対する完了通知の際に使用される。TLPヘッダ1200Bは、バイト4,5のコンプリータIDに完了通知(コンプリーション)を発行するデバイスのルーティングIDを格納し、バイト8、9のリクエスタIDに要求元(リクエスタ)のルーティングIDを格納し、バイト0の0〜4ビットにコンプリーションを示す値を格納する。
PCI−eスイッチ40は、仮想機能ID修飾情報4402を参照して、I/Oデバイス50へ向かう上りパケットの時には、リクエスタIDに格納されたPCI管理サーバ20のルーティングIDをPCI管理サーバ20のルーティングIDから送信先のブレードのルーティングIDに差し替えて送信する。
ルーティングIDでアクセスするTLPヘッダ1200Cは、デバイスに対する構成情報の設定を要求するパケットで使用される。TLPヘッダ1200Cは、バイト4,5のリクエスタIDに構成情報の設定を要求するデバイスのルーティングIDを格納し、バイト8、9には構成情報の設定対象のバス番号とデバイス番号とファンクション番号からなるルーティングIDを格納し、バイト0の0〜4ビットに構成情報の設定要求(コンフィギュレーション)を示す値を格納する。
PCI−eスイッチ40は、ブレード10−1〜10−nからI/Oデバイス50へ向かう下りパケットの時には、リクエスタIDに格納されたブレードのルーティングIDをPCI管理サーバ20のルーティングIDに書き換えて、要求元がPCI管理サーバ20であることを設定する。また、PCI−eスイッチ40は、仮想機能ID修飾情報4402を参照して、ブレードが設定したI/Oデバイス50のルーティングID(バス番号、デバイス番号、ファンクション番号を、)PCI管理サーバ20が認識するルーティングIDに差し替えて、I/Oデバイス50にはPCI管理サーバ20からの要求であることに変更する。
図16は、ブレードサーバ1の起動手順を示すフローチャートである。この処理は、ブレードサーバ1の管理者またはユーザのスイッチ操作に基づいて開始される。
ステップS1では、管理者(またはユーザ)がPCI−eスイッチ40の電源を投入する。PCI−eスイッチ40は、起動するとPCI−eリンクの初期化処理と各種レジスタの初期化処理を実行する(S2)。すなわち、図3のMRS構成情報415及びTLP変換情報440の初期化が行われる。また、管理者などによりI/Oデバイス50の電源が投入される。なお、I/Oデバイス50の電源は、PCI−eスイッチ40と連動していても良い。
ステップS3では、管理者(またはユーザ)が、PCI管理サーバ20の電源を投入する。PCI管理サーバ20では、後述する図17のように各種初期化が行われる。PCI管理サーバ20の起動が完了すると、ステップS4ではPCIマネージャ202が管理端末30からのブレードに対する起動の指示を待ち受ける。
PCIマネージャ202は管理端末30から起動するブレード10−1〜10−nに対する指令を受け付けると、ステップS5に進んで指令を受け付けたブレード10−1〜10−nの電源を投入し、その後、ステップS6では、PCIマネージャ202が、起動が完了したブレードに対して仮想マシンモニタ100−1〜100−nを起動する。仮想マシンモニタ100−1〜100−nの起動については後述の図18にて詳述する。ステップS7では、仮想マシンモニタの起動が完了した後に、受け付けた指令に基づいて仮想計算機101−1〜101−k−1を生成し、各仮想計算機101−1〜101−k−1でOS102−0〜102−K−1を起動させる。仮想計算機の起動が完了すると再びステップS4に戻って次のブレード10−1〜10−nの起動の指令を待つ。
上記処理により、PCI−eスイッチ40、PCI管理サーバ20、I/Oデバイス50の順で電源が投入されて初期化が行われた後、管理端末30から指令されたブレード10−1〜10−nが起動される。
図17は、図16に示したステップS3のPCI管理サーバ20の起動の際に行われる処理の一例を示すフローチャートである。
PCI管理サーバ20は、電源を投入されるとステップS11でBIOS(Basic I/o System)またはEFI(Extensible Firmware Interface)が起動する。BIOS(またはEFI)の起動時には、ステップS12でチップセット13−MがPCI管理サーバ20内のデバイスについて、ルートコンプレックスの下にローカルPCIツリーを構成し、PCIローカルツリーの初期化を行う。すなわち、チップセット13−Mは、図5で示したような、ローカルPCIツリーのルーティングIDをチップセット13−Mのレジスタ等の所定の領域に設定する。この例では、PCI管理サーバ20内のローカルルーティングIDとして、0:0:0〜7:1F:7が各エントリに設定される。
ステップS13では、BIOS(またはEFI)の起動が完了するとOS201が起動し、その後に、PCIマネージャ202(PCI−M)が起動する。このとき、OS201はPFドライバ203を読み込んで、PCIマネージャ202がI/Oデバイス50の物理機能PF501を利用する準備を行う。なお、I/Oデバイス50の物理機能を使用するのはPCI−eスイッチ40及びI/Oデバイス50を管理するPCIマネージャ202のみであり、他のブレード10−1〜10−nは仮想機能を利用する。
ステップS14では、OS201がネットワークインターフェース132−Mの初期化を実施する。ネットワークインターフェース132−Mの初期化は、ネットワーク70への接続とIPアドレスの付与及びブレード10−1〜10−nの仮想計算機からの接続要求に対する待ち受けの開始が含まれる。
次に、ステップS15では、PCIマネージャ202がI/Oポート131−MからPCI−eスイッチ40にアクセスして、マルチルートスイッチ論理410のアップストリームポートブリッジ412からアップストリームポート41−0に接続されたポート411−0に設定された構成情報(例えば、マルチルート化可能ポインタ:Capability pointer)を取得し、当該ポート411−0のバス番号(例えば、9)を取得する。ここで、構成情報としてのマルチルート化可能ポインタは、図19で示すように、4バイト目の0〜15ビットのVSEC_IDがマルチルート化可能ポインタを示す。PCIマネージャ202は、PCI−eスイッチ40から仮想階層ナンバー1311を取得する。図4の例では、PCI管理サーバ20の仮想階層ナンバー1311(VH)は「0」となる。
ステップS16では、PCIマネージャ202が、I/Oポート131−MからPCI−eスイッチ40にアクセスして、MRS論理410のダウンストリームポートブリッジ413の構成情報(例えば、コンフィギュレーションヘッダ)を取得する。
次に、ステップS17では、PCIマネージャ202は、I/Oポート131−M及びアップストリームポート41−0からI/Oデバイス50にアクセスし、I/Oデバイス50のSR−IOVに関する構成情報(例えば、コンフィギュレーションヘッダ)を取得する。PCIマネージャ202は、I/Oデバイス50の構成情報から仮想機能(VF)の個数やMMIO空間などを取得する。また、PCIマネージャ202はI/Oデバイス50からバス番号及びデバイス番号を取得する。例えば、PCI管理サーバ20のチップセット13−Mのルートコンプレックスから見たI/Oデバイス50のアクセス用ルーティングIDは0:2:0となる。
ステップS18では、上記ステップS15〜S17で取得したマルチルートスイッチ論理410のアップストリームポートブリッジ412とダウンストリームポートブリッジ413の構成情報と、I/Oデバイス50の構成情報から、図5で示すように、MRS論理用ルーティングIDと、I/Oデバイス50をアクセスするためのルーティングID(DEVアクセス用Routing ID)をチップセット13−Mのレジスタ等の所定の領域に設定する。また、PCIマネージャ202は、めもり12−Mの所定の領域に物理機能501にアクセするためのMMIOと、仮想機能501にアクセスするためのMMIOをk個設定する。
図5の例では、PCIマネージャ202がPCI管理サーバ20のI/Oポート131−MからPCI−eスイッチ40のアップストリームポート41−0からダウンストリームポートブリッジ413までのMR−IOVのルーティングIDとして、ポート411−0がバス番号=9、MRS構成情報415がバス番号=8、I/Oデバイス50のバス番号=10となり、MRS論理410用のルーティングIDは、8:0:0、9:0:0となる。また、I/Oデバイス50のデバイスアクセス用ルーティングIDは、10:0:0がI/Oデバイス50の物理機能にアクセスするためのルーティングIDに設定され、10:0:1〜10:0:VFkまでのk個のルーティングIDがI/Oデバイス50のアクセス用に設定される。そして、PCIマネージャ202がPFドライバ203でI/Oデバイス50の物理機能PF501と仮想機能502を初期化する。
上記処理によって、I/Oデバイス50の物理機能PF501と仮想機能502を初期化がPCIマネージャ202によって行われる。
図18は、図16のステップS6、S7で行われるブレード10−1〜10−nの起動と仮想計算機(ゲストVM)の起動処理の一例を示すフローチャートである。この例では、管理端末30から図1のブレード10−1(BLADE#1)を起動し、ブレード10−1の仮想マシンモニタ100−1上で仮想計算機101−1(VM#0)、101−2(VM#1)を生成する指令があった例を示す。
PCIマネージャ202は、既に起動してステップS31にて仮想マシンモニタ100−1〜100−nからの通信を待ち受ける状態となっている(図17のS14)。
PCI管理サーバ20は管理端末30から指令を受けたブレード10−1(BRADE#1)に起動の指令を出力し、ブレード10−1を起動する。この処理は、例えば、ブレード10−1〜10−nがBMCを備えている場合には、該当するブレードのBMCに対して起動を指令し、ネットワークインターフェース132−1〜nへ起動を指令する場合にはマジックパケットを送信することで行われる。
PCI管理サーバ20からの指令で起動したブレード10−1は、電源を投入されるとステップS21でBIOSまたはEFIが起動する。BIOS(またはEFI)の起動時には、ステップS22でチップセット13−1がブレード10−1内のデバイスについてルートコンプレックスの下にローカルPCIツリーを構成し、PCIローカルツリーの初期化を行う。すなわち、チップセット13−1は、図5で示したBlade#1のように、ローカルPCIツリーのルーティングIDをチップセット13−1のレジスタ等の所定の領域に設定する。この例では、ブレード10−1内のローカルルーティングIDとして、0:0:0〜8:1F:7が各エントリに設定される。
ステップS23では、BIOS(またはEFI)の起動が完了すると仮想マシンモニタ100−1が起動する。仮想マシンモニタ100−1がネットワークインターフェース132−1の初期化を実施する。ネットワークインターフェース132−1の初期化は、ネットワーク70への接続とIPアドレスの付与が含まれる。
次に、ステップS24では、仮想マシンモニタ100−1がI/Oポート131−1からPCI−eスイッチ40にアクセスして、マルチルートスイッチ論理410のアップストリームポートブリッジ412からアップストリームポート41−0に接続されたポート411−1に設定された構成情報(例えば、マルチルート化可能ポインタ:Capability pointer)を取得し、当該ポート411−1のバス番号(例えば、9)を取得する。構成情報としてのマルチルート化可能ポインタは、図19で示したように、4バイト目の0〜15ビットのVSEC_IDがマルチルート化可能ポインタを示す。仮想マシンモニタ100−1は、PCI−eスイッチ40から仮想階層ナンバー1311を取得する。図5の例では、ブレード10−1の仮想階層ナンバー1311(VH)は「1」となる。
ステップS25では、仮想マシンモニタ100−1が、I/Oポート131−1からPCI−eスイッチ40にアクセスして、MRS論理410のダウンストリームポートブリッジ413の構成情報(例えば、コンフィギュレーションヘッダ)を取得する。仮想マシンモニタ100−1は、ルートコンプレックスから見たI/Oデバイス50のルーティングIDのデバイス番号として、MRS論理410のダウンストリームポートブリッジ413のデバイスを割り当てる。この例では、ルートコンプレックスから見たI/Oデバイス50のルーティングIDは、0:6:0となる。
次に、ステップS26では、仮想マシンモニタ100−1が必要とする仮想機能502の数を含む確保要求をPCIマネージャ202にVF確保要求データとしてネットワーク70から送信する。この確保要求は、図20で示すように、仮想マシンモニタ100−1が必要とする仮想機能(VF)502の数(=2)と、仮想マシンモニタ100−1がひとつの仮想機能502に対してメモリ12−1に設定可能なMMIOのサイズの最大値と、仮想機能502を設定するMMIOのベースアドレス及び仮想階層ナンバー1311(VH=1)と、I/Oデバイス50からアクセスするためのルーティングID(11:0:1及び11:0:2)とを含む。なお、ブレード10−1から見たI/Oデバイス50のバス番号は11となり、PCI管理サーバ20から見たバス番号とは異なる。また、ブレード10−1は、確保要求にルートコンプレックスが取得したI/Oデバイス50のアクセス用ルーティングID(0:6:0)も通知する。なお、I/Oデバイス50からアクセスするためのルーティングIDは、各ブレード10−1〜10−nの起動時にBIOSが決定した値を用いることができる。
仮想機能502を確保する要求を受け付けたPCIマネージャ202は、ブレード10−1から見たPCI−eスイッチ40のMRS論理410及びI/Oデバイス50のルーティングIDと、ブレード10−1のMMIO空間を認識する。
PCIマネージャ202は、ブレード10−1から要求された仮想機能502に対するI/Oデバイス50のアクセス用ルーティングIDから図5に示したVF1及びVF2をブレード10−1に割り当て、図4に示したMMIO空間に確保したVF1,VF2のMMIOをブレード10−1に割り当てる。
そして、PCIマネージャ202は、ブレード10−1から受信した確保要求に含まれるブレード10−1のI/Oデバイス50のアクセス用ルーティングIDと、仮想階層ナンバー1311と、MMIOのベースアドレスと、仮想階層ナンバー1311を、MR−SR変換論理530のTLP変換情報440に書き込む。このとき、PCIマネージャ202は、確保要求で要求された仮想機能502の数に応じてPCIマネージャ202が管理する仮想機能502のMMIOとブレード10−1が管理するMMIOのオフセットを求める。
PCIマネージャ202は、MR−SR変換論理530のTLP変換情報440(図7)を構成する宛先アドレス変換論理4401へ、仮想機能502毎に仮想階層ナンバー1311、ブレード10−1のMMIOのベースアドレスと、MMIOのサイズと、PCIマネージャ202が管理する仮想機能502のMMIOとブレード10−1が管理するMMIOのオフセットを書き込む。PCIマネージャ202は、書き込みを行ったエントリのValidに有効であることを示す「1」をセットする。
次に、PCIマネージャ202は、図5のルーティングIDからブレード10−1に割り当てた仮想機能502(VF1とVF2)のルーティングID(10:0:1と10:0:2)と、ブレード10−1から通知を受けたルーティングID(11:0:1と11:0:2)を対応づける。
そして、PCIマネージャ202は、MR−SR変換論理530のTLP変換情報を構成する仮想機能ID修飾情報4402(図7)へ、各ブレードからI/Oデバイス50のアクセス用ルーティングID毎に、ブレード10−1〜10−nの仮想階層ナンバー1311(VH)をVHに書き込み、/Oデバイス50のアクセス用ルーティングIDをVHx_RoutingIDに書き込み、ブレードのルーティングIDに対応するPCIマネージャ202が対応付けたルーティングIDをVH0 RoutingIDに書き込む。PCIマネージャ202は、書き込みを行ったエントリのValidに有効であることを示す「1」をセットする。
次に、PCIマネージャ202は、図7のルートポートID情報4403に、ブレード10−1のルートコンプレックスが認識したI/Oデバイス50のルーティングID(0:6:0)を仮想階層ナンバー1311毎に書き込む。PCIマネージャ202は、書き込みを行ったエントリのValidに有効であることを示す「1」をセットする。
以上により、MR−SR変換論理430のTLP変換情報440にブレード10−1から受信したVF確保要求データの値を設定し、ブレード10−1がI/Oデバイス50を共有することを設定する。
PCIマネージャ202は、MR−SR変換論理430のTLP変換情報440にブレード10−1から受信したVF確保要求データの設定が完了すると、TLP変換情報440に設定した情報をVF確保完了データとしてネットワーク70からブレード10−1に送信する。VF確保完了データの一例としては図21のようになる。図21において、VF確保完了データは、PCIマネージャ202がTLP変換情報440に確保した仮想機能502の数(=2)と、仮想機能502当たりのMMIOのサイズと、I/Oデバイス50の物理機能PF501の構成情報の空間サイズと、I/Oデバイス50の物理機能501の構成空間データと、I/Oデバイス50の仮想機能502の構成空間サイズと、I/Oデバイス50の仮想機能502の構成空間データが含まれる。
VF確保完了データを受信した仮想マシンモニタ100−1は、ステップS27で管理端末30から指令された仮想計算機101−1、101−2(ゲストVM)を起動し、PCIマネージャ202から受信したI/Oデバイス50の仮想機能502(VF1,VF2)をそれぞれ割り当てる。
上記の処理により、仮想マシンモニタ100−1が必要とするI/Oデバイス50の仮想機能502をPCIマネージャ202が確保し、仮想マシンモニタ100−1はPCIマネージャ202が確保した仮想機能502を起動する仮想計算機101−1、101−2に割り当てることができる。
なお、上記の処理は他のブレード10−2〜10−nを起動するときにも同様に実行され、TLP変換情報440にはI/Oデバイス50を共有するブレード10−1〜10−nの情報が加えられることになる。
図21は、上記図18のステップS27で行われる仮想計算機101−0(101−1)の起動処理の一例を示すフローチャートである。
仮想マシンモニタ100−1は、ステップS41で仮想計算機101−0を起動し、ステップS42で仮想計算機101−0に割り当てた仮想BIOSを起動する。ステップS42では、仮想BIOSによって仮想PCIツリーの初期化を実施する。
ステップS44では、仮想BIOSが仮想マシンモニタ100−1によって提供される仮想コンフィギュレーションにアクセスを開始する。ステップS45では、仮想マシンモニタ100−1は仮想BIOSのアクセス対象が、I/Oデバイス50の仮想機能502に対するものであるか否かを判定する。仮想機能502以外に対して仮想BIOSがアクセスした場合には、ステップS46で仮想マシンモニタ(VMM)100−1がアクセス対象のエミュレーションを実施する。一方、仮想機能502に対して仮想BIOSがアクセスした場合には、ステップS47で仮想マシンモニタ100−1が、PCIマネージャ202から仮想機能確保応答情報により取得したI/Oデバイス50の物理機能PF501の構成情報の空間サイズと、I/Oデバイス50の物理機能501の構成空間データと、I/Oデバイス50の仮想機能502の構成空間サイズと、I/Oデバイス50の仮想機能502の構成情報の空間データを応答する。
ステップS48では、仮想マシンモニタ100−1が仮想BIOSによる仮想PCIツリーの初期化が完了したか否かを判定する。仮想PCIツリーの初期化が完了していなければステップS44に戻り上記初期化を繰り返す。一方、仮想PCIツリーの初期化が完了すると、ステップS49で仮想マシンモニタ100−1がOS100−0(ゲストOS)の起動を開始する。ステップS50でOS100−0の起動が完了し、仮想計算機101−0でアプリケーションやサービスの提供が可能となる。
上記により、仮想BIOSやOS100−0(ゲストOS)がI/Oデバイス50の仮想機能502の構成情報を取得する場合には、仮想マシンモニタ100−1がPCIマネージャ202から取得した物理機能501及び仮想機能502の情報を提供することで、OS100−0等がVFドライバ103を組み込んで仮想機能502を利用することが可能となる。
図23は、上記実施形態の変形例を示し、図3に示したMRS論理410のうち、アップストリームポートブリッジ412に接続されるポート411−1〜411−nをMRS論理410から分離して、アップストリームポート41−0〜41−nの増設を可能にしたものである。
PCI−eスイッチ40のアップストリームポート41−0〜41−nは、所定数(例えば、2つ)毎にMRS論理4110−1〜4110−nに接続される。各MRS論理4110−1〜nには、2つのポート411−0、411−1等がそれぞれ設けられて、アップストリームポート41−0〜41−nに接続される。各MRS論理4110−1〜4110−nのMRS論理410側にはひとつのポート4111−1〜4111−nが設けられており、それぞれのポート4111−1〜4111−nはMRS論理410に設けたポート4112−1〜4112−nに接続される。
この変形例では、MRS論理410のアップストリームポート41−0〜41−n側を多段化することによって、ブレードサーバ1のアップストリームポート41−0〜41−nの構成を柔軟に行うことが可能となる。
なお、上記実施形態では、チップセット13−1〜nとプロセッサ11−1,2が独立した構成を示したが、プロセッサ11−1、2にチップセット13−1〜nが組み込まれていても良い。
また、上記実施形態では、PCI管理サーバ20でPCIマネージャ202を稼動させる例を示したが、ブレード10−1〜10−nの何れかでPCIマネージャ202を稼動させてもよい。
以上のように、本発明は、複数の物理計算機をPCI−expressのスイッチでI/Oデバイスに接続する計算機システムに適用することができ、特に、物理計算機がMR−IOVでアクセスを行い、I/OデバイスがSR−IOVでアクセスする計算機システム及びPCIスイッチに好適である。
本発明を適用したブレードサーバのハードウェア構成を示すブロック図。 同じくブレードサーバの機能要素を示すブロック図。 PCI−eスイッチの内部を示すブロック図。 各ブレードとPCI管理サーバのMMIO空間の関係を示す説明図。 各ブレードとPCI管理サーバのルーティングIDの関係を示す説明図。 MR−SR変換論理の宛先情報変換回路の構成を示すブロック図。 TLP情報の構成を示す説明図。 宛先情報変換回路を構成する宛先アドレス修飾部の構成を示すブロック図。 宛先情報変換回路を構成する宛先ID修飾部の構成を示すブロック図。 発行元ID変換回路1の構成を示すブロック図。 仮想階層ナンバー付加回路の構成を示すブロック図。 発行元ID変換回路2の構成を示すブロック図。 宛先ID変換回路2の構成を示すブロック図。 マルチルートTLP及びPCIeベースTLPのフォーマットを示す説明図。 マルチルートTLP及びPCIeベースTLPのTLPヘッダのフォーマットを示す説明図。 ブレードサーバの電源投入の手順を示すフローチャート。 PCI管理サーバ20で行われる起動処理を示すフローチャート。 ブレードで行われる仮想マシンモニタの起動処理を示すフローチャート。 マルチルート化可能フォーマットを示す説明図。 仮想機能確保要求情報のフォーマットを示す説明図。 仮想機能確保完了情報のフォーマットを示す説明図。 仮想計算機の起動処理を示すフローチャート。 PCI−eスイッチのMRS論理の変形例を示すブロック図。
符号の説明
10−1〜10−n ブレード
13−1〜13−n、13−M チップセット
20 PCI管理サーバ20
40 PCI−eスイッチ
50 I/Oデバイス50
41−0〜41−n アップストリームポート
42−1 ダウンストリームポート
410 MRS論理
430 MR−SR変換論理
431 宛先情報変換回路
432 発行元ID変換回路(1)
433 Vhn消去部
434 LCRC再生成部
435 Vhn付加部
436 発行元ID変換回路(1)
437 宛先ID変換回路(2)
438 LCRC再生成部

Claims (13)

  1. 仮想化部を備えて1以上の仮想サーバを提供する複数の物理サーバと、前記複数の物理サーバで共有されるI/Oデバイスと、前記複数の物理サーバと前記I/Oデバイスを接続するスイッチと、前記スイッチ初期化する管理部とを有するサーバシステムであって、
    前記I/Oデバイスが、
    仮想的な機能であるVirtual Function(VF)を有し、
    前記スイッチが、
    前記物理サーバが認識する識別子である第1の識別子と、前記管理部が管理する識別子である第2の識別子と、の間の対応関係を示す識別子対応情報を保持し、
    前記物理サーバからパケットを受信した場合に、
    送信元の物理サーバを識別するサーバ識別子を含む前記パケットを前記スイッチ内で変換し、
    前記パケットを前記I/Oデバイスに送信する際には、前記識別子対応情報に基づいて、前記パケットに含まれる前記第1の識別子を、当該第1の識別子に前記対応付けられた前記第2の識別子に変換し、かつ、前記サーバ識別子を削除した前記パケットを、前記I/Oデバイスに送信する、ことを特徴とするサーバシステム。
  2. 請求項1記載のサーバシステムであって、
    前記物理サーバは、前記第1の識別子に基づいて、前記仮想サーバから前記VFへのアクセスを管理し、
    前記I/Oデバイスは、前記第2の識別子に基づいて、前記仮想サーバから前記VFへのアクセスを管理する、ことを特徴とするサーバシステム。
  3. 請求項1記載のサーバシステムであって、
    前記スイッチは、
    更に前記物理サーバが認識する前記VFのMMIOアドレス領域情報と、前記管理部が管理する前記VFのMMIOアドレス領域情報との間の対応関係を示すMMIOアドレス対応情報を保持し、
    前記物理サーバからパケットを受信した場合に、更に、前記MMIOアドレス対応情報に従って前記パケットの宛先アドレスを変換する処理を行う、ことを特徴とするサーバシステム。
  4. 請求項1記載のサーバシステムであって、
    前記I/Oデバイスは、PCI sig規定のSingle Root I/O Virtualization and Sharing Specification(SR−IOV)に準拠、もしくはSR−IOVの上位互換のI/Oデバイスであることを特徴とするサーバシステム。
  5. 仮想化部を備えて1以上の仮想サーバを提供する複数の物理サーバと、仮想的な機能であるVirtual Function(VF)を有して前記複数の物理サーバで共有されるI/Oデバイスと、を接続するスイッチング装置であって、
    前記物理サーバと接続する第1のポートと、
    前記I/Oデバイスと接続する第2のポートと、
    前記物理サーバが認識する識別子である第1の識別子と、前記スイッチを初期化する管理部が管理する識別子である第2の識別子と、の間の対応関係を管理する識別子管理部と、
    前記物理サーバにより送信された前記I/Oデバイス宛のパケットの前記I/Oデバイスへの転送を制御する転送制御部と、を備え、
    前記第1のポートが前記物理サーバから前記I/Oデバイス宛のパケットを受信した場合に、
    前記転送制御部は、送信元の物理サーバを識別するサーバ識別子を含む前記パケットを前記スイッチ内で変換し、
    前記パケットを前記第2のポートから前記I/Oデバイスに送信する際には、前記識別子管理部が管理する前記対応関係に基づいて、前記パケットに含まれる前記第1の識別子を、当該第1の識別子に前記対応付けられた前記第2の識別子に変換し、かつ、前記サーバ識別子を削除した前記パケットを、前記I/Oデバイスに送信する、ことを特徴とするスイッチング装置。
  6. 請求項5記載のスイッチング装置であって、
    前記第1の識別子は、前記仮想サーバから前記VFへのアクセスの管理のために前記物理サーバが用いる識別子であり、
    前記第2の識別子は、前記仮想サーバから前記VFへのアクセスの管理のために前記I/Oデバイスが用いる識別子である、ことを特徴とするスイッチング装置。
  7. 請求項5記載のスイッチング装置であって、
    前記物理サーバが認識する前記VFのMMIOアドレス領域情報と、前記管理部が管理する前記VFのMMIOアドレス領域情報と、の間の対応関係を管理するMMIOアドレス対応関係管理部を、更に有し、
    前記第1のポートが前記物理サーバから前記I/Oデバイス宛のパケットを受信した場合に、
    前記転送制御部は、更に、前記MMIOアドレス対応管理部に従って前記パケットの宛先アドレスを変換する処理を行う、ことを特徴とするスイッチング装置。
  8. 仮想化部を備えて1以上の仮想サーバを提供する複数の物理サーバと、I/Oデバイスと、前記複数の物理サーバと前記I/Oデバイスとを接続するスイッチと、前記スイッチを初期化する管理部と、を有するサーバシステムにおいて、前記I/Oデバイスを前記複数の物理サーバ間で共有するI/Oデバイス管理方法であって、
    前記I/Oデバイスによって、仮想的な機能であるVirtual Function(VF)を複数生成し、
    前記スイッチによって、
    前記物理サーバが認識する前記VFの識別子である第1の識別子と、前記管理部が管理する前記VFの識別子である第2の識別子と、の間の対応関係を示す識別子対応情報を管理し、
    前記スイッチが前記物理サーバからパケットを受信した場合に、送信元の物理サーバを識別するサーバ識別子(=VHN)を含む前記パケットを前記スイッチ内で変換し、
    前記パケットを前記I/Oデバイスに送信する際には、前記識別x子対応情報に基づいて、前記パケットに含まれる前記第1の識別子を、当該第1の識別子に前記対応付けられた前記第2の識別子に変換し、かつ、前記サーバ識別子を削除した前記パケットを、前記I/Oデバイスに送信する、ことを特徴とするI/Oデバイス管理方法。
  9. 請求項8記載のI/Oデバイス管理方法であって、
    前記第1の識別子に基づいて、前記仮想サーバから前記VFへのアクセスに関して前物理サーバによる管理を行い、
    前記第2の識別子に基づいて、前記仮想サーバから前記VFへのアクセスに関して前記I/Oデバイスによる管理を行う、ことを特徴とするI/Oデバイス管理方法。
  10. 請求項8記載のI/Oデバイス管理方法であって、
    前記スイッチによって、
    更に前記物理サーバが認識する前記VFのMMIOアドレス領域情報と、前記管理部が管理する前記VFのMMIOアドレス領域情報と、の間の対応関係を示すMMIOアドレス対応情報を管理し、
    前記物理サーバからパケットを受信した場合に、更に、前記MMIOアドレス対応情報に従って前記パケットの宛先アドレスを変換する処理を行う、ことを特徴とした、I/Oデバイス管理方法。
  11. 請求項3記載のサーバシステムであって、
    前記物理サーバが認識する前記VFのMMIOアドレス領域情報は、前記仮想サーバがアクセスする前記VFのMMIO空間のアドレスのオフセットであって、
    前記管理部が管理する前記VFのMMIOアドレス領域情報は、前記管理部がアクセスする前記VFのMMIO空間のアドレスのオフセットであって、
    前記サーバ識別子は、送信元の物理サーバを識別する仮想階層ナンバーであることを特徴とするサーバシステム。
  12. 請求項7記載のスイッチング装置であって、
    前記物理サーバが認識する前記VFのMMIOアドレス領域情報は、前記仮想サーバがアクセスする前記VFのMMIO空間のアドレスのオフセットであって、
    前記管理部が管理する前記VFのMMIOアドレス領域情報は、前記管理部がアクセスする前記VFのMMIO空間のアドレスのオフセットであって、
    前記サーバ識別子は、送信元の物理サーバを識別する仮想階層ナンバーであることを特徴とするスイッチング装置。
  13. 請求項10記載のI/Oデバイス管理方法であって、
    前記物理サーバが認識する前記VFのMMIOアドレス領域情報は、前記仮想サーバがアクセスする前記VFのMMIO空間のアドレスのオフセットであって、
    前記管理部が管理する前記VFのMMIOアドレス領域情報は、前記管理部がアクセスする前記VFのMMIO空間のアドレスのオフセットであって、
    前記サーバ識別子は、送信元の物理サーバを識別する仮想階層ナンバーであることを特徴とするI/Oデバイス管理方法。
JP2008250208A 2008-09-29 2008-09-29 Pciデバイス共有方法 Expired - Fee Related JP5272265B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008250208A JP5272265B2 (ja) 2008-09-29 2008-09-29 Pciデバイス共有方法
US12/546,264 US8341327B2 (en) 2008-09-29 2009-08-24 Computer system and method for sharing PCI devices thereof
US13/681,005 US8725926B2 (en) 2008-09-29 2012-11-19 Computer system and method for sharing PCI devices thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008250208A JP5272265B2 (ja) 2008-09-29 2008-09-29 Pciデバイス共有方法

Publications (3)

Publication Number Publication Date
JP2010079816A JP2010079816A (ja) 2010-04-08
JP2010079816A5 JP2010079816A5 (ja) 2012-02-16
JP5272265B2 true JP5272265B2 (ja) 2013-08-28

Family

ID=42058803

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008250208A Expired - Fee Related JP5272265B2 (ja) 2008-09-29 2008-09-29 Pciデバイス共有方法

Country Status (2)

Country Link
US (2) US8341327B2 (ja)
JP (1) JP5272265B2 (ja)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643777B1 (en) 1999-05-14 2003-11-04 Acquis Technology, Inc. Data security method and device for computer modules
US6718415B1 (en) 1999-05-14 2004-04-06 Acqis Technology, Inc. Computer system and method including console housing multiple computer modules having independent processing units, mass storage devices, and graphics controllers
JP5180729B2 (ja) * 2008-08-05 2013-04-10 株式会社日立製作所 計算機システム及びバス割当方法
JP5401679B2 (ja) * 2009-02-19 2014-01-29 株式会社日立製作所 計算機システム、管理方法及び管理サーバ
JP5074457B2 (ja) * 2009-06-04 2012-11-14 株式会社日立製作所 計算機システム、スイッチ切り替え方法及びpciスイッチ
US9852087B2 (en) 2010-04-20 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Inline PCI-IOV adapter
WO2011132234A1 (en) * 2010-04-23 2011-10-27 Hitachi, Ltd. Storage device and method for managing size of storage device
JP2011248551A (ja) * 2010-05-26 2011-12-08 Nec Corp アクセス制御装置
US8671153B1 (en) * 2010-08-20 2014-03-11 Acqis Llc Low cost, high performance and high data throughput server blade
JP2012048546A (ja) 2010-08-27 2012-03-08 Hitachi Ltd 計算機システム、i/oデバイス制御方法、及びi/oドロワ
JP5541021B2 (ja) * 2010-09-09 2014-07-09 富士通株式会社 スイッチ装置
US9135044B2 (en) * 2010-10-26 2015-09-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Virtual function boot in multi-root I/O virtualization environments to enable multiple servers to share virtual functions of a storage adapter through a MR-IOV switch
US8561065B2 (en) 2010-11-15 2013-10-15 International Business Machines Corporation Virtualization of vendor specific network interfaces of self-virtualizing input/output device virtual functions
US8301806B2 (en) 2010-11-24 2012-10-30 International Business Machines Corporation Configuring an input/output adapter
US9218219B2 (en) 2010-11-24 2015-12-22 International Business Machines Corporation Managing virtual functions of an input/output adapter
US8839240B2 (en) 2010-11-29 2014-09-16 International Business Machines Corporation Accessing vendor-specific drivers for configuring and accessing a self-virtualizing input/output device
US8495274B2 (en) 2010-12-08 2013-07-23 International Business Machines Corporation Address translation table to enable access to virtual functions
US8561066B2 (en) 2010-12-08 2013-10-15 International Business Machines Corporation Simplified DMA mappings for self-virtualizing input/output device virtual functions
US9146863B2 (en) 2010-12-08 2015-09-29 International Business Machines Corporation Address translation table to enable access to virtualized functions
US8645755B2 (en) 2010-12-15 2014-02-04 International Business Machines Corporation Enhanced error handling for self-virtualizing input/output device in logically-partitioned data processing system
US8683478B2 (en) 2010-12-21 2014-03-25 International Business Machines Corporation Best fit mapping of self-virtualizing input/output device virtual functions for mobile logical partitions
US9141571B2 (en) 2010-12-28 2015-09-22 Avago Technologies General Ip (Singapore) Pte. Ltd. PCI express switch with logical device capability
US8521941B2 (en) * 2010-12-28 2013-08-27 Plx Technology, Inc. Multi-root sharing of single-root input/output virtualization
US8418166B2 (en) 2011-01-11 2013-04-09 International Business Machines Corporation Transparent update of adapter firmware for self-virtualizing input/output device
US8537706B2 (en) 2011-01-11 2013-09-17 International Business Machines Corporation Preserving traffic class priority QoS with self-virtualizing input/output device
US8677356B2 (en) 2011-01-11 2014-03-18 International Business Machines Corporation Adjunct partition work scheduling with quality of service attributes
US8862739B2 (en) 2011-01-11 2014-10-14 International Business Machines Corporation Allocating resources to virtual functions
US8447891B2 (en) * 2011-01-11 2013-05-21 International Business Machines Corporation Dynamically assigning virtual functions to client applications
US8495252B2 (en) * 2011-01-17 2013-07-23 International Business Machines Corporation Implementing PCI-express memory domains for single root virtualized devices
US8364871B2 (en) 2011-01-25 2013-01-29 International Business Machines Corporation Providing virtual functions after an input/output adapter is moved from a first location to a second location
US8825981B2 (en) 2011-01-25 2014-09-02 International Business Machines Corporation Allocating addressable memory regions to an adapter
US8726276B2 (en) 2011-01-26 2014-05-13 International Business Machines Corporation Resetting a virtual function that is hosted by an input/output adapter
US8832401B2 (en) 2011-01-26 2014-09-09 International Business Machines Corporation Iteratively de-allocating active objects associated with virtual functions of an adapter
US8527666B2 (en) 2011-02-21 2013-09-03 International Business Machines Corporation Accessing a configuration space of a virtual function
US9218195B2 (en) 2011-05-17 2015-12-22 International Business Machines Corporation Vendor-independent resource configuration interface for self-virtualizing input/output device
JP5687959B2 (ja) 2011-06-20 2015-03-25 株式会社日立製作所 I/oデバイス共有方法、および装置
WO2012106876A1 (zh) * 2011-07-08 2012-08-16 华为技术有限公司 计算机系统中子网管理方法、总线适配器及计算机系统
JP5903801B2 (ja) * 2011-08-23 2016-04-13 富士通株式会社 通信装置およびid設定方法
US8959223B2 (en) 2011-09-29 2015-02-17 International Business Machines Corporation Automated high resiliency system pool
US8996700B2 (en) 2011-09-29 2015-03-31 International Business Machines Corporation Automated workload performance and availability optimization based on hardware affinity
JP2013088879A (ja) * 2011-10-13 2013-05-13 Kyocera Document Solutions Inc 情報処理装置
US9092274B2 (en) 2011-12-07 2015-07-28 International Business Machines Corporation Acceleration for virtual bridged hosts
US9411654B2 (en) 2011-12-16 2016-08-09 International Business Machines Corporation Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation
US9311127B2 (en) * 2011-12-16 2016-04-12 International Business Machines Corporation Managing configuration and system operations of a shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies
US9626207B2 (en) * 2011-12-16 2017-04-18 International Business Machines Corporation Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies
JP5748349B2 (ja) * 2012-03-16 2015-07-15 株式会社日立製作所 仮想計算機の制御方法及び仮想計算機システム
WO2013136522A1 (ja) 2012-03-16 2013-09-19 株式会社日立製作所 計算機システム及び計算機間のデータ通信方法
JP2013196593A (ja) * 2012-03-22 2013-09-30 Ricoh Co Ltd データ処理装置、データ処理方法及びプログラム
US9397954B2 (en) * 2012-03-26 2016-07-19 Oracle International Corporation System and method for supporting live migration of virtual machines in an infiniband network
JP5928087B2 (ja) 2012-03-29 2016-06-01 富士通株式会社 スイッチ、情報処理装置および通信制御方法
WO2013150792A1 (ja) * 2012-04-06 2013-10-10 日本電気株式会社 I/oデバイス共有システムおよびi/oデバイス共有方法
US9542350B1 (en) * 2012-04-13 2017-01-10 Google Inc. Authenticating shared interconnect fabrics
US20140165196A1 (en) * 2012-05-22 2014-06-12 Xockets IP, LLC Efficient packet handling, redirection, and inspection using offload processors
US20140006676A1 (en) * 2012-06-28 2014-01-02 Dell Products L.P. Systems and methods for dynamic allocation of information handling resources
GB2506572A (en) * 2012-07-05 2014-04-09 Ibm Blade enclosure with control and expansion canisters
US9008085B2 (en) 2012-08-15 2015-04-14 International Business Machines Corporation Network interface card having overlay gateway functionality
EP2835953B1 (en) 2012-08-29 2017-10-11 Huawei Technologies Co., Ltd. System for live migration of virtual machine
US8843688B2 (en) * 2012-09-11 2014-09-23 International Business Machines Corporation Concurrent repair of PCIE switch units in a tightly-coupled, multi-switch, multi-adapter, multi-host distributed system
JP6025547B2 (ja) * 2012-12-21 2016-11-16 キヤノンイメージングシステムズ株式会社 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム
US9170976B2 (en) 2013-01-03 2015-10-27 International Business Machines Corporation Network efficiency and power savings
US10230794B2 (en) 2013-03-15 2019-03-12 Oracle International Corporation System and method for efficient virtualization in lossless interconnection networks
US9990221B2 (en) 2013-03-15 2018-06-05 Oracle International Corporation System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment
US10261813B2 (en) * 2013-09-25 2019-04-16 Arm Limited Data processing system for dispatching tasks from a plurality of applications to a shared resource provided by an accelerator
US10324883B2 (en) 2014-03-28 2019-06-18 Nec Corporation Computer system, data-processing apparatus, bus-data transferring method, and computer-readable recording medium for transferring data flowing through system bus
US10089129B2 (en) * 2014-06-30 2018-10-02 International Business Machines Corporation Supporting flexible deployment and migration of virtual servers via unique function identifiers
CN104202359A (zh) * 2014-08-12 2014-12-10 浪潮电子信息产业股份有限公司 一种基于刀片服务器的NVMe SSD虚拟化设计方法
US9723008B2 (en) 2014-09-09 2017-08-01 Oracle International Corporation System and method for providing an integrated firewall for secure network communication in a multi-tenant environment
CN111258930B (zh) 2014-10-05 2024-04-12 亚马逊技术股份有限公司 仿真端点配置
US9639492B2 (en) 2015-01-15 2017-05-02 Red Hat Israel, Ltd. Virtual PCI expander device
US10140218B2 (en) 2015-01-15 2018-11-27 Red Hat Israel, Ltd. Non-uniform memory access support in a virtual environment
JP5943110B1 (ja) * 2015-03-12 2016-06-29 日本電気株式会社 情報処理システム、情報処理方法、及び、プログラム
US10089275B2 (en) * 2015-06-22 2018-10-02 Qualcomm Incorporated Communicating transaction-specific attributes in a peripheral component interconnect express (PCIe) system
US10157074B2 (en) * 2015-10-16 2018-12-18 Dell Products L.P. Systems and methods for multi-root input/output virtualization-based management by single service processor
CN108292264B (zh) * 2015-12-02 2023-01-03 瑞典爱立信有限公司 用于管理存储器页的可用性的方法和存储器可用性管理模块
CN110489365B (zh) * 2016-01-13 2023-09-12 华为技术有限公司 交换设备、外围部件互连高速系统及其初始化方法
US10698634B2 (en) 2016-05-26 2020-06-30 Hitachi, Ltd. Computer system and data control method utilizing NVMe and storing commands including an offset address corresponding to a server in a queue
JP6745405B2 (ja) * 2017-05-22 2020-08-26 株式会社日立製作所 ストレージシステム及びマッピング方法
US10582636B2 (en) * 2017-08-07 2020-03-03 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Server having a dual-mode serial bus port enabling selective access to a baseboard management controller
US11386020B1 (en) * 2020-03-03 2022-07-12 Xilinx, Inc. Programmable device having a data processing engine (DPE) array
US11714775B2 (en) * 2021-05-10 2023-08-01 Zenlayer Innovation LLC Peripheral component interconnect (PCI) hosting device

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3565767B2 (ja) 2000-07-19 2004-09-15 トラストガード株式会社 カートリッジ型サーバユニットおよび該サーバユニット搭載用筐体ならびにサーバ装置
EP1248179A1 (en) 2001-04-03 2002-10-09 Hewlett-Packard Company Selective activation and deactivation of peripheral devices connected to a USB system
US6985490B2 (en) * 2001-07-11 2006-01-10 Sancastle Technologies, Ltd. Extension of fibre channel addressing
JP2004173136A (ja) * 2002-11-22 2004-06-17 Fujitsu Ltd ネットワーク管理装置
US7827258B1 (en) 2004-03-01 2010-11-02 American Megatrends, Inc. Method, system, and apparatus for communicating with a computer management device
US7058738B2 (en) * 2004-04-28 2006-06-06 Microsoft Corporation Configurable PCI express switch which allows multiple CPUs to be connected to multiple I/O devices
US7835380B1 (en) 2004-10-19 2010-11-16 Broadcom Corporation Multi-port network interface device with shared processing resources
US20060130137A1 (en) 2004-12-10 2006-06-15 Storage Technology Corporation Method for preventing data corruption due to improper storage controller connections
US8223745B2 (en) 2005-04-22 2012-07-17 Oracle America, Inc. Adding packet routing information without ECRC recalculation
US7225287B2 (en) 2005-06-01 2007-05-29 Microsoft Corporation Scalable DMA remapping on a computer bus
JP2008021252A (ja) * 2006-07-14 2008-01-31 Hitachi Ltd 計算機システム及びアドレス割当方法
US20070165596A1 (en) * 2006-01-18 2007-07-19 Boyd William T Creation and management of routing table for PCI bus address based routing with integrated DID
JP4670676B2 (ja) * 2006-02-17 2011-04-13 日本電気株式会社 スイッチ及びネットワークブリッジ装置
US8615623B2 (en) * 2006-08-09 2013-12-24 Nec Corporation Internet connection switch and internet connection system
JP4810349B2 (ja) 2006-08-11 2011-11-09 日本電気株式会社 I/o装置及び方法
JP4501916B2 (ja) * 2006-09-20 2010-07-14 日本電気株式会社 I/o機器の共有システムと情報処理装置共有システム及びそれらに用いる方法
US8085673B2 (en) * 2006-11-22 2011-12-27 Ixia Method and apparatus for generating bi-directional network traffic and collecting statistics on same
US7571273B2 (en) * 2006-12-06 2009-08-04 International Business Machines Corporation Bus/device/function translation within and routing of communications packets in a PCI switched-fabric in a multi-host environment utilizing multiple root switches
US7529860B2 (en) * 2006-12-19 2009-05-05 International Business Machines Corporation System and method for configuring an endpoint based on specified valid combinations of functions
US7991839B2 (en) * 2006-12-19 2011-08-02 International Business Machines Corporation Communication between host systems using a socket connection and shared memories
US20080183968A1 (en) 2007-01-30 2008-07-31 Chi-Ting Huang Computer system having cache system directly connected to nonvolatile storage device and method thereof
US7979592B1 (en) * 2007-02-09 2011-07-12 Emulex Design And Manufacturing Corporation Virtualization bridge device
JP4839484B2 (ja) 2007-04-06 2011-12-21 日本電気株式会社 バス接続デバイス、バス接続方法およびバス接続用プログラム
JP5080140B2 (ja) * 2007-06-13 2012-11-21 株式会社日立製作所 I/oデバイス切り替え方法
CN101488106A (zh) 2008-01-18 2009-07-22 鸿富锦精密工业(深圳)有限公司 具有至少两个bios存储器的系统
JP5154238B2 (ja) * 2008-01-18 2013-02-27 株式会社日立製作所 複合型計算機システムの管理方法及び複合型計算機システム
KR101397377B1 (ko) * 2008-02-26 2014-05-19 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 호스트 열거 프로세스 수행 방법 및 장치
WO2009120187A2 (en) * 2008-03-25 2009-10-01 Hewlett-Packard Development Company, L.P. System and method for transforming pcie sr-iov functions to appear as legacy functions
US7958298B2 (en) * 2008-03-26 2011-06-07 Lsi Corporation System and method for providing address decode and virtual function (VF) migration support in a peripheral component interconnect express (PCIE) multi-root input/output virtualization (IOV) environment
US8103810B2 (en) * 2008-05-05 2012-01-24 International Business Machines Corporation Native and non-native I/O virtualization in a single adapter
JP4934642B2 (ja) * 2008-06-11 2012-05-16 株式会社日立製作所 計算機システム
US7904633B2 (en) 2008-10-28 2011-03-08 Hewlett-Packard Development Company, L.P. Switch providing external access to computer-system components and computer-system peripherals
JP5332000B2 (ja) 2008-12-17 2013-10-30 株式会社日立製作所 複合型計算機装置、複合型計算機の管理方法及び管理サーバ

Also Published As

Publication number Publication date
US8341327B2 (en) 2012-12-25
US20100082874A1 (en) 2010-04-01
US8725926B2 (en) 2014-05-13
JP2010079816A (ja) 2010-04-08
US20130111082A1 (en) 2013-05-02

Similar Documents

Publication Publication Date Title
JP5272265B2 (ja) Pciデバイス共有方法
US20210004343A1 (en) Switching Device, Peripheral Component Interconnect Express System, and Method for Initializing Peripheral Component Interconnect Express System
US8223745B2 (en) Adding packet routing information without ECRC recalculation
US10263891B2 (en) Switching device, computer system, method, and program
US7620741B2 (en) Proxy-based device sharing
US7574536B2 (en) Routing direct memory access requests using doorbell addresses
US7613864B2 (en) Device sharing
US7293129B2 (en) Flexible routing and addressing
US8346912B2 (en) System and method of emulating a network controller within an information handling system
US7934033B2 (en) PCI-express function proxy
US7565463B2 (en) Scalable routing and addressing
US7478178B2 (en) Virtualization for device sharing
US8412860B2 (en) Input/output (I/O) virtualization system
US20180213669A1 (en) Micro data center (mdc) in a box system and method thereof
US10684880B2 (en) Allocating and initializing I/O devices at virtual
CN104767838B (zh) 微服务器、分配mac地址的方法、以及计算机可读记录介质
US11086813B1 (en) Modular non-volatile memory express storage appliance and method therefor
US8972611B2 (en) Multi-server consolidated input/output (IO) device
WO2011022375A1 (en) Communicating between host computers and peripheral resources in an input/output (i/o) virtualization system
US10261699B2 (en) Systems and methods for hardware-based RAID acceleration
CN115203101A (zh) PCIe装置及其操作方法
US20120324078A1 (en) Apparatus and method for sharing i/o device
JP6760579B2 (ja) ネットワークラインカード(lc)のホストオペレーティングシステム(os)への統合
CN104933001A (zh) 一种基于RapidIO技术的双控制器数据通信方法
CN115203110A (zh) PCIe功能及其操作方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130329

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130426

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees