JP2009123217A - データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム - Google Patents

データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム Download PDF

Info

Publication number
JP2009123217A
JP2009123217A JP2008291371A JP2008291371A JP2009123217A JP 2009123217 A JP2009123217 A JP 2009123217A JP 2008291371 A JP2008291371 A JP 2008291371A JP 2008291371 A JP2008291371 A JP 2008291371A JP 2009123217 A JP2009123217 A JP 2009123217A
Authority
JP
Japan
Prior art keywords
input
virtual
client
imp
output
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.)
Granted
Application number
JP2008291371A
Other languages
English (en)
Other versions
JP5305848B2 (ja
Inventor
Aaron Ches Brown
アーロン・チェス・ブラウン
J Recio Renato
レナート・ジェイ・レシオ
Steven Mark Thurber
スティーヴン・マーク・サーバー
M Freimuth Douglas
ダグラス・エム・フレイマス
A Pafumi James
ジェイムズ・エー・パフミ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009123217A publication Critical patent/JP2009123217A/ja
Application granted granted Critical
Publication of JP5305848B2 publication Critical patent/JP5305848B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Abstract

【課題】 入出力仮想化管理パーティション(IMP)が入出力アダプタ(IOA)の物理機能(PF)を介して入出力仮想化(IOV)対応IOAの共用機能を制御するためのメカニズムを提供し、仮想機能(VF)が通常の入出力動作のためにクライアント・パーティションに直接割り当てられるシステムおよび方法を提供することにある。
【解決手段】 ハイパーバイザは、IMPおよびクライアント・パーティション内で実行されるコードに対して装置独立機能を提供する。IMPは、ハイパーバイザがそのサイズ、頑強性、およびアップグレード性を犠牲にする必要なしに、装置固有コードを含むことができる。ハイパーバイザは、IOAの制御機能の共用および制御のための仮想仲介機能を提供する。
【選択図】 図3

Description

本発明は、一般に、改良されたデータ処理システムおよび方法に関する。より具体的には、本発明は、ハイパーバイザ内の仮想仲介(virtual intermediary)を介して、ならびに入出力仮想化(IOV:input/outputvirtualization)管理パーティション内の管理プログラムを介して、周辺装置相互接続(PCI:PeripheralComponent Interconnect)IOVアダプタなどのIOVアダプタを管理するためのシステムおよび方法を対象とする。
最新のコンピューティング・デバイスは、そもそも1990年代にインテル社によって作成された周辺装置相互接続規格の何らかのバージョンまたは実装例を使用する入出力(I/O:input/output)アダプタおよびバスを使用する。周辺装置相互接続(PCI)規格では、コンピュータのマザーボードに周辺装置を接続するためのコンピュータ・バスを規定している。PCIエクスプレス(PCI Express)すなわちPCIeは、既存のPCIプログラミング概念を使用するPCIコンピュータ・バスの一実装例であるが、そのコンピュータ・バスは、まったく異なり、さらに高速のシリアル物理層通信プロトコルを基礎とする。この物理層は、複数の装置間で共用可能な双方向バスではなく、正確に2つの装置に接続される単一の単方向リンクから構成される。
図1は、PCIe規格によるPCIエクスプレス(PCIe)ファブリック・トポロジを組み込むシステムを例示する模範的な図である。図1に図示されている通り、システム100は、ルート複合体130に結合されたホスト・プロセッサ(CPU)110およびメモリ120からなり、次にこのルート複合体130は、PCIeエンドポイント140(「エンドポイント(endpoint)」という用語は、PCIe対応入出力アダプタを指すためにPCIe規格で使用されている)、PCIeエクスプレス−PCIブリッジ150、および1つ以上の相互接続スイッチ160のうちの1つ以上に結合されている。ルート複合体130は、CPU/メモリを入出力アダプタに接続する入出力階層のルートを示す。ルート複合体130は、ホスト・ブリッジと、0個以上のルート複合体統合エンドポイントと、0個以上のルート複合体イベント・コレクタと、1つ以上のルート・ポートとを含む。各ルート・ポートは、個別の入出力階層をサポートする。入出力階層は、ルート複合体130と、0個以上の相互接続スイッチ160またはブリッジ150あるいはその両方(スイッチまたはPCIeファブリックを含む)と、エンドポイント140、170、182〜188などの1つ以上のエンドポイントからなる可能性がある。PCIおよびPCIeに関する詳細については、www.pcisig.comにある周辺装置相互接続分科会(PCI−SIG:peripheral component interconnect special interest group)のWebサイトから入手可能なPCIおよびPCIe規格を参照する。
PCIおよびPCIe規格に加えて、PCI−SIGは、いくつかのロジカル・パーティション(LPAR:logical partition)によって共用可能な入出力アダプタ(IOA:I/Oadapter)を設計する方法を定義するための入出力仮想化(IOV)規格も定義した。LPARは、各リソース・セットがそれ自体のオペレーティング・システム・インスタンスおよびアプリケーションにより独立して動作できるように、複数のリソース・セットに分割されたコンピュータのプロセッサ、メモリ、および記憶域の一区分である。作成可能なロジカル・パーティションの数は、使用可能なシステムのプロセッサ・モデルおよびリソース次第である。典型的には、テストおよび実稼働環境などを分離するために、データベース動作、クライアント/サーバ動作などの種々の目的のためにパーティションが使用される。各パーティションは、他のパーティションが個別マシン内にある場合のように他のパーティションと通信することができる。LPARをサポートする最新システムでは、いくつかのリソースを複数のLPAR間で共用することができる。前述の通り、PCIおよびPCIe規格では、共用可能なリソースの1つは、入出力仮想化メカニズムを使用する入出力アダプタである。
PCI−SIGは、いくつかのLPARによって共用可能なIOAを設計する方法を定義するための規格を提供しているが、この規格は、IOAをホスト・システム内に接続する方法を定義していない。その上、この規格は、入出力仮想化を使用するIOAの共用機能を管理する方法を指定していない。これは、PCI−SIG規格がルート複合体の下にあるPCIeファブリックの動作に関する設定規格に関係しているからである。換言すれば、PCI−SIGは、システム・ハウスの領域で考慮されるので、ルート複合体以上に関する規格の定義を提供していない。すなわち、たとえば、インテル・プラットフォーム、IBM Power(商標)プラットフォーム、およびSparcプラットフォームのそれぞれは、PCI−SIG規格に明記されていない種々のシステム実装要件を有する可能性がある。
例示的な諸実施形態は、入出力仮想化(IOV)管理パーティション内の機能管理とともにハイパーバイザ内の仮想仲介を介して、IOVアダプタを管理するためのシステムおよび方法を提供する。例示的な諸実施形態のメカニズムは、1つの入出力(I/O)ファブリックが2つ以上のロジカル・パーティション(LPAR)によって共用され、各LPARが潜在的に1つの入出力アダプタ(IOA)を他のLPARと共用できる状況に対処するものである。例示的な諸実施形態は、入出力仮想化管理パーティション(IMP:I/O virtualization management partition)において、1つのLPARが物理機能(PF:physical function)により入出力仮想化対応IOAの共用機能を制御するためのメカニズムを定義し、仮想機能(VF:virtual function)は通常の入出力動作のためにクライアント・パーティションに直接割り当てられる。
特に、例示的な諸実施形態のメカニズムにより、各LPARには、それに割り当てられた仮想機能(VF)にアクセスするため、ならびにそれに割り当てられたVFから直接、割り込みを受信するために、それ自体の個別アドレス空間が割り当てられ、各LPARの認識では、通常の入出力動作のためにそれがそれ自体の独立IOAを有することになっている。PCIエクスプレス(PCIe)入出力仮想(IOV:I/O Virtual)アダプタなどのIOAの各VFは、複数のLPARの全域で共用することができる。例示的な諸実施形態のメカニズムは、入出力仮想化管理パーティション(IMP)にIOVアダプタの物理機能(PF)を割り当てることにより、そのPFを介してIOVアダプタの共用リソースを管理するための機能を提供する。加えて、IMPは、共通VF機能にアクセスするためにPFへのインターフェース(たとえば、ネットワーク・アダプタ用のVFのためのネットワーク・アドレス)として動作し、ここではアダプタ・サウスサイド管理(adapter south-side management)という。
ハイパーバイザは、IMP内で実行されるコードに対してIOV独立機能を提供する。IMPは、ハイパーバイザがそのサイズ、頑強性、およびアップグレード性を犠牲にする必要なしに、装置固有コードを含むことができる。ハイパーバイザは、IOVアダプタの制御機能の共用および制御のための仮想仲介機能を提供する。より具体的には、ハイパーバイザ内で実行されるコードは、VFエラー処理動作、VFリセット動作、および構成動作を完全に管理するためにVFへの仮想仲介(VI)として動作する。
例示的な一実施形態では、入出力(I/O)仮想化を管理するための方法が提供される。この方法は、データ処理システム内で1つ以上のクライアント・パーティションを作成するステップであって、各クライアント・パーティションがデータ処理システムのリソースの関連部分を有するステップと、データ処理システムに関連する1つ以上の入出力エンドポイントにより入出力仮想化管理動作を実行するステップとを含むことができる。入出力仮想化管理動作は、1つ以上の入出力エンドポイントの物理機能または仮想機能のうちの少なくとも1つを構成するように動作することができる。この方法は、入出力仮想化管理パーティション(IMP)から分離した仮想仲介を使用して、1つ以上の入出力エンドポイントのリソースに対する入出力仮想化管理動作のアクセスを制御するステップをさらに含むことができる。仮想仲介は、あるクライアント・パーティションがそのクライアント・パーティションに割り当てられていない1つ以上の入出力エンドポイントのリソースにアクセスするのを防止することができる。
この方法は、データ処理システム内で入出力仮想化管理パーティション(IMP)を作成するステップをさらに含むことができる。IMPは、データ処理システムに関連する1つ以上の入出力エンドポイントにより入出力仮想化管理動作を実行することができ、それにより、1つ以上の入出力エンドポイントの少なくとも1つの物理機能を管理することができる。1つ以上のクライアント・パーティションは、少なくとも1つの物理機能に対する入出力仮想化管理動作を実行することを許可されない可能性がある。
1つ以上のクライアント・パーティションを作成するステップと、IMPを作成するステップは、仮想仲介によって実行することができる。この仮想仲介は、データ処理システムに関連するハイパーバイザにすることができる。ハイパーバイザは、1つ以上の入出力エンドポイント内の物理機能および仮想機能用の構成空間にアクセスすることができる。IMPは、1つ以上の入出力エンドポイントにおいて、IMPに割り当てられた物理機能用の構成空間と、IMPに割り当てられた物理機能に属す仮想機能用の構成空間のみにアクセスすることができる。ハイパーバイザは、1つ以上の入出力エンドポイントにおいて、あるクライアント・パーティションに割り当てられた仮想機能の構成空間に対するそのクライアント・パーティションによるアクセスを許可することができ、1つ以上の入出力エンドポイントにおいて、クライアント・パーティションに割り当てられていない仮想機能の構成空間に対するそのクライアント・パーティションによるアクセスをブロックすることができる。
この方法は、入出力仮想化管理動作の実行を指示するハードウェア管理コンソール(HMC:hardware management console)から入力を受信するステップをさらに含むことができる。HMCからの入力は、新しい入出力エンドポイントをデータ処理システムに追加するためにホット・プラグ動作を開始するためのコマンドにすることができる。このような場合、入出力仮想化管理動作を実行するステップは、新しい入出力エンドポイントの追加に基づいて1つ以上のクライアント・パーティションにリソースを割り振るステップと、新しい入出力エンドポイントの追加に基づいてIMPを構成するステップと、1つ以上のクライアント・パーティション内の少なくとも1つのクライアント・パーティションに新しい入出力エンドポイントの少なくとも1つの仮想機能を動的に追加するステップとを含むことができる。
HMCからの入力は、データ処理システムから既存の入出力エンドポイントを除去するためにホット・プラグ動作を開始するためのコマンドにすることができる。このような場合、入出力仮想化管理動作を実行するステップは、除去すべき入出力エンドポイントの仮想機能に関連するリソースを有する1つ以上のクライアント・パーティション内の少なくとも1つのクライアント・パーティションを識別するステップと、仮想機能と、仮想機能に関連するリソースを、少なくとも1つのクライアント・パーティションによる使用から除去するステップとを含むことができる。入出力仮想化管理動作を実行するステップは、物理機能と、物理機能に関連するリソースを、IMPによる使用から除去するステップと、除去すべき入出力エンドポイントの電源を遮断するステップとをさらに含むことができる。
HMCからの入力は、データ処理システムを動的に再構成するためのコマンドにすることができる。このような場合、入出力仮想化管理動作を実行するステップは、1つ以上のクライアント・パーティション内の選択されたクライアント・パーティションに追加するための入出力エンドポイントの仮想機能の選択を受信するステップと、選択されたクライアント・パーティション内で選択された仮想機能用のリソースをセットアップするステップと、選択されたクライアント・パーティション内で選択された仮想機能用のデバイス・ドライバをロードするステップとを含むことができる。
HMCからの入力は、データ処理システムを動的に再構成するためのコマンドにすることができる。このような場合、入出力仮想化管理動作を実行するステップは、1つ以上のクライアント・パーティション内の選択されたクライアント・パーティションから除去するための入出力エンドポイントの仮想機能の選択を受信するステップと、選択されたクライアント・パーティションによりさらに使用することから選択された仮想機能を除去するステップと、選択されたクライアント・パーティション内で選択された仮想機能用のリソースを除去するステップとを含むことができる。
HMCからの入力は、入出力エンドポイントの選択された仮想機能に関連するネットワーク・アドレスを変更するためのコマンドにすることができる。このような場合、入出力仮想化管理動作を実行するステップは、選択された仮想機能に関連する物理機能を識別するステップと、IMPに管理要求を送信するステップとを含むことができる。管理要求は、選択された仮想機能のネットワーク・アドレスを変更するためのアドレス情報を含むことができる。入出力仮想化管理動作を実行するステップは、管理要求内のアドレス情報に基づいて物理機能に関連するデバイス・ドライバを介して選択された仮想機能のネットワーク・アドレスを変更するステップをさらに含むことができる。
入出力仮想化管理動作を実行するステップは、仮想仲介において、1つ以上のクライアント・パーティションのうちの1つのクライアント・パーティション内のデバイス・ドライバから、仮想機能エラー状態照会ファームウェア呼び出しを受信するステップと、入出力エンドポイントの仮想機能のエラー状態を識別するエラー情報を仮想仲介からデバイス・ドライバに提供するステップとを含むことができる。その上、入出力仮想化管理動作を実行するステップは、デバイス・ドライバにより、仮想仲介から受信したエラー情報をログ記録するステップと、エラー状態を有する仮想機能をリセットするためにデバイス・ドライバからデータ処理システムのファームウェアに仮想機能リセット要求を送信するステップと、リセット後に仮想機能を構成するステップとを含むことができる。
入出力仮想化管理動作を実行するステップは、仮想仲介により、クライアント・パーティション障害を検出するステップと、クライアント・パーティション・リブート動作を実行すべきかどうかを判断するステップと、クライアント・パーティションをリブートするべきではない場合に、1つ以上の入出力エンドポイントから故障クライアント・パーティションに関連する仮想機能リソースを除去するステップと、除去された仮想機能リソースをフリー仮想機能リソース・プールに追加するステップとを含むことができる。その上、入出力仮想化管理動作を実行するステップは、クライアント・パーティションをリブートするべきである場合に、仮想仲介により、故障クライアント・パーティションのリブート後に仮想機能リソースを故障クライアント・パーティションに再割り当てするステップを含むことができる。
さらに、入出力仮想化管理動作を実行するステップは、IMPの障害を検出するステップと、仮想仲介により、IMPのリブートを開始するステップとを含むことができる。入出力仮想化管理動作を実行するステップは、IMPのリブートが完了するまでIMPに割り当てられた物理機能に関連する仮想機能に関する1つ以上のクライアント・パーティションによるファームウェア呼び出しを停止するステップと、IMPのリブートの完了後に1つ以上のクライアント・パーティションによるファームウェア呼び出しの停止を中断するステップとをさらに含むことができる。
他の例示的な諸実施形態では、そこにコンピュータ可読プログラムが記録されたコンピュータ記録可能媒体を含むコンピュータ・プログラム(computer program product)が提供される。このコンピュータ可読プログラムは、コンピューティング・デバイス上で実行されたときに、方法の例示的な実施形態に関して上記で概要を示した動作のうちの様々なものおよびそれらの組み合わせをコンピューティング・デバイスに実行させる。
さらに他の例示的な実施形態では、装置が提供される。この装置は、プロセッサと、プロセッサに結合されたメモリとを含むことができる。このメモリは、プロセッサによって実行されたときに、方法の例示的な実施形態に関して上記で概要を示した動作のうちの様々なものおよびそれらの組み合わせをプロセッサに実行させる命令を含むことができる。
本発明の上記その他の特徴および利点は、本発明の模範的な諸実施形態に関する以下の詳細な説明に記載されるか、または以下の詳細な説明を考慮して当業者にとって明白なものになるであろう。
本発明ならびに本発明の好ましい使用態様と追加の目的および利点については、添付図面に併せて読んだときに、例示的な諸実施形態に関する以下の詳細な説明を参照することにより最も良く理解されるであろう。
例示的な諸実施形態は、ハイパーバイザ内の仮想仲介を介して、ならびに入出力仮想化(IOV)管理パーティション内の管理プログラムを介して、IOVアダプタを管理するためのメカニズムを提供する。したがって、例示的な諸実施形態のメカニズムを理解するために、ハイパーバイザまたはその他の仮想化プラットフォームを使用するシステム内で入出力仮想化をどのように実装できるかをまず理解することが重要である。周辺装置相互接続エクスプレス(PCIe)アダプタまたはエンドポイントに関して例示的な諸実施形態を説明するが、本発明はこれらに限定されないことを認識されたい。むしろ、例示的な諸実施形態のメカニズムは、入出力アダプタ内で入出力仮想化をサポートする任意の入出力ファブリックで実装することができる。その上、ハイパーバイザが使用される実装例に関して例示的な諸実施形態を説明するが、本発明はこれに限定されないことを認識されたい。それとは反対に、ハイパーバイザ以外のその他のタイプの仮想化プラットフォームは、現在知られているかまたは今後開発されるソフトウェア、ハードウェア、またはソフトウェアとハードウェアの任意の組み合わせのいずれで実装されるとしても、本発明の精神および範囲を逸脱せずに使用することができる。
図2は、当技術分野で一般に知られているシステム仮想化を例示する模範的な図である。システム仮想化は、各リソース・セットがそれ自体のシステム・イメージ・インスタンスおよびアプリケーションにより独立して動作する、物理システムのプロセッサ、メモリ、入出力アダプタ、記憶域、およびその他のリソースの一区分である。このようなシステム仮想化では、仮想リソースは、物理リソースから構成され、物理リソースのプロキシ、たとえば、同じ外部インターフェースおよび機能を有し、構築されたインターフェース/機能を備えたメモリ、ディスク・ドライブ、その他のハードウェア・コンポーネントとして動作する。システム仮想化は、典型的には、仮想リソースを作成し、それを物理リソースにマッピングする仮想化層を使用し、それにより、仮想リソース間の分離を提供する。仮想化層は、典型的には、ソフトウェア、ファームウェア、ハードウェア・メカニズムのうちの1つまたはこれらの組み合わせとして提供される。
図2に図示されている通り、典型的には仮想化システムでは、アプリケーション210は、汎用または特殊目的オペレーティング・システムなどのソフトウェア・コンポーネントであるシステム・イメージ(SI:system image)220と通信し、それにより特定の仮想および物理リソースが割り当てられる。システム・イメージ220は、単一のSIインスタンスを実行するために必要な物理または仮想化リソース、たとえば、仮想化プロセッサ、メモリ、入出力アダプタ、記憶域などからなる仮想システム230に関連付けられる。
システム・イメージ220は、仮想システム230の使用を介して、仮想化層240を経由して物理システム・リソース250にアクセスする。仮想化層240は、SIへのリソースの割り振りを管理し、他のSIによるアクセスからSIに割り当てられたリソースを分離する。この割り振りおよび分離は、仮想化層240によって実行されるリソース・マッピングと、仮想化層240によって維持される1つ以上のリソース・マッピング・データ構造に基づいて実行される場合が多い。
このような仮想化を使用すると、入出力動作および入出力リソースの仮想化を可能にすることができる。すなわち、入出力仮想化(IOV)に関しては、部分的にまたは全面的にハイパーバイザとして実装可能な仮想化層240を使用して、2つ以上のSIにより、単一の物理入出力装置を共用することができる。ハイパーバイザは、たとえば、SIからの構成動作、入出力動作、およびメモリ動作と、SIへの直接メモリ・アクセス(DMA:direct memory access)動作、完了動作、および割り込み動作のうちの1つ以上について仲介することにより、IOVをサポートするために使用される、ソフトウェア、ファームウェアなどにすることができる。
図3は、仮想化層を使用して、PCIルート複合体の入出力を仮想化するための第1の手法を例示する模範的な図である。図3に図示されている通り、ホスト・プロセッサ・セット310は、チップ、マザーボード、ブレードなどの1つ以上のプロセッサにすることができ、それによりアプリケーション(図示せず)がPCIeエンドポイント370〜390などのシステム・リソースにアクセスできる複数のシステム・イメージ320〜330をサポートすることができる。システム・イメージは、仮想化層340、PCIeルート複合体350、および1つ以上のPCIeスイッチ360またはその他のPCIeファブリック・エレメントあるいはその両方を介して仮想化リソースと通信する。
図3に例示されている手法により、仮想化層340は、部分的にまたは全面的にハイパーバイザまたはその他のタイプの仮想化プラットフォームとして実装可能であり、すべての入出力トランザクションに関わり、すべての入出力仮想化機能を実行する。たとえば、仮想化層340は、様々なSIの入出力キューからの入出力要求をPCIeエンドポイント370〜390内の単一のキューに多重化する。したがって、仮想化層340は、SI320〜330と物理PCIeエンドポイント370〜390との間のプロキシとして動作する。
図4は、最初から共用されるPCI入出力アダプタを使用して、PCIルート複合体の入出力を仮想化するための第2の手法を例示する模範的な図である。図4に図示されている通り、ホスト・プロセッサ・セット410は、チップ、マザーボード、ブレードなどの1つ以上のプロセッサにすることができ、それによりアプリケーション(図示せず)がPCIe入出力仮想化(IOV)エンドポイント470〜490などのシステム・リソースにアクセスできる複数のシステム・イメージ420〜430をサポートすることができる。システム・イメージ420〜430は、PCIeルート複合体440および1つ以上のPCIeスイッチ460またはその他のPCIeファブリック・エレメントあるいはその両方を介して仮想化リソースと通信する。
PCIeルート複合体440は、1つ以上のアドレス変換および保護テーブル・データ構造、割り込みテーブル・データ構造などを含むことができ、IOV対応エンドポイント470〜490による入出力動作の仮想化を容易にするルート複合体仮想化イネーブラ(RCVE:root complex virtualization enabler)442を含む。アドレス変換および保護テーブル・データ構造は、たとえば、仮想化リソースに関する仮想アドレスと実アドレスとのアドレス変換を実行し、仮想リソースからSIへのマッピングに基づいて仮想リソースへのアクセスを制御し、その他の仮想化動作を実行するために、PCIeルート複合体440が使用することができる。これらのルート複合体割り込みテーブル・データ構造は、PCIeメモリ・アドレス空間によりアクセス可能であり、たとえば、SIに関連する適切な割り込みハンドラに割り込みをマッピングするために使用される。
図3に図示されている手法のように、図4の仮想化構造にも仮想化層450が提供される。仮想化層450は、PCIeスイッチ460に結合可能な非IOV対応PCIeエンドポイントとともに使用される。すなわち、仮想化層450は、部分的にまたは全面的にハイパーバイザまたはその他の仮想化プラットフォームとして実装可能であり、固有のすなわち、エンドポイント内部の入出力仮想化(IOV)用のサポートを備えていないPCIeエンドポイントについて図3に関して上述したものと同様に、PCIeエンドポイントとともに使用される。
IOV対応PCIeエンドポイント470〜490の場合、仮想化層450は、主に構成トランザクションのために使用され、SIから開始されるメモリ・マップ入出力(MMIO)動作またはPCIeエンドポイント470〜490から開始される直接メモリ・アクセス(DMA)動作などのメモリ・アドレス空間動作に関わらない。それとは反対に、SI420〜430とエンドポイント470〜490との間のデータ転送は、仮想化層450による介入なしに直接実行される。SI420〜430とエンドポイント470〜490との間の直接入出力動作は、RCVE442およびIOV対応PCIeエンドポイント470〜490の組み込み入出力仮想化ロジック、たとえば、物理機能および仮想機能を経由して可能になる。直接入出力動作を実行する能力により、入出力動作を実行できる速度が大幅に増加されるが、PCIeエンドポイント470〜490が入出力仮想化をサポートすることが必要になる。
図5は、PCIe入出力仮想化(IOV)対応エンドポイントの模範的な図である。図5に図示されている通り、PCIe IOVエンドポイント500は、それによりPCIeファブリックのPCIeスイッチなどとの通信が実行可能なPCIeポート510を含む。内部ルーティング520は、構成管理機能530および複数の仮想機能(VF)540〜560への通信経路を提供する。構成管理機能530は、仮想機能540〜560とは対照的に物理機能(PF)にすることができる。物理「機能」とは、この用語がPCI規格で使用されるように、単一の構成空間によって表される1組のロジックである。換言すれば、物理「機能」は、たとえば、分離不能リソース570内に設けることができるような、メモリ内のその機能の関連構成空間内に保管されたデータに基づいて構成可能な回路論理である。
構成管理機能530を使用して、仮想機能540〜560を構成することができる。仮想機能は、入出力仮想化対応エンドポイント内で、1つ以上の物理エンドポイント・リソース、たとえば、リンクを共用する機能であって、たとえば、他の機能とともにPCIe IOVエンドポイント500の共用可能リソース・プール580内に設けることができる機能である。仮想機能は、ハイパーバイザによるランタイム介入なしに、システム・イメージからの入出力動作およびメモリ動作のためのシンクになることができ、システム・イメージ(SI)への直接メモリ・アクセス(DMA)動作、完了動作、および割り込み動作のソースになることができる。
PCIeエンドポイントは、PCIeエンドポイントによってサポートされる「機能」に関する多種多様なタイプの構成を有することができる。たとえば、エンドポイントは、単一の物理機能(PF)、複数の独立PF、または複数の従属PFをサポートすることができる。固有の入出力仮想化をサポートするエンドポイントでは、そのエンドポイントによってサポートされる各PFは1つ以上の仮想機能(VF)に関連付けることができ、その仮想機能自体は他のPFに関連するVFに依存する可能性がある。
例示的な諸実施形態は、入出力仮想化(IOV)管理パーティション内の機能管理とともにハイパーバイザ内の仮想仲介を介して、図5に図示されているIOV対応PCIeエンドポイント500などのIOVアダプタを管理するためのシステムおよび方法を提供する。例示的な諸実施形態のメカニズムは、図4のPCIeスイッチ460などの1つ以上のPCIeスイッチを含むことができる1つの入出力(I/O)ファブリックが2つ以上のロジカル・パーティション(LPAR)によって共用され、各LPARが潜在的に1つの入出力アダプタ(IOA)、たとえば、図4のPCIeエンドポイント470〜490を他のLPARと共用できる状況に対処するものである。例示的な諸実施形態は、入出力仮想化管理パーティション(IMP)において、1つのLPARが物理機能(PF)により入出力仮想化対応IOAの共用機能を制御するためのメカニズムを定義し、仮想機能(VF)は通常の入出力動作のためにクライアント・パーティションに直接割り当てられる。
特に、例示的な諸実施形態のメカニズムにより、各LPARには、それに割り当てられた仮想機能(VF)にアクセスするため、ならびにそれに割り当てられたVFから直接、割り込みを受信するために、それ自体の個別アドレス空間が割り当てられ、各LPARの認識では、通常の入出力動作のためにそれがそれ自体の独立IOAを有することになっている。PCIエクスプレス(PCIe)入出力仮想(IOV)アダプタまたは入出力エンドポイントなどのIOAの1組のVFは、複数のLPARの全域で共用することができ、各LPARはそれ自体のVFを取得する。例示的な諸実施形態のメカニズムは、入出力仮想化管理パーティション(IMP)にそのPFを割り当てることにより、IOVアダプタ/エンドポイントの物理機能(PF)を介してIOVアダプタまたは入出力エンドポイントの共用リソースを管理するための機能を提供する。加えて、IMPは、共通VF機能にアクセスするためにPFへのインターフェース(たとえば、ネットワーク・アダプタ用のVFのためのネットワーク・アドレス)として動作し、ここではアダプタ・サウスサイド管理という。
ハイパーバイザは、IMP内で実行されるコードに対してIOV独立機能を提供する。IMPは、ハイパーバイザがそのサイズ、頑強性、およびアップグレード性を犠牲にする必要なしに、装置固有コードを含むことができる。ハイパーバイザは、IOVアダプタの制御機能の共用および制御のための仮想仲介機能を提供する。より具体的には、ハイパーバイザ内で実行されるコードは、VFエラー処理動作、VFリセット動作、および構成動作を完全に管理するためにVFへの仮想仲介(VI)として動作する。
図6は、例示的な一実施形態により、IOV対応エンドポイントまたはアダプタが使用されるシステム構造の模範的な図である。図6に図示されているメカニズムは、図4に例示されているメカニズムに併せて実装することができる。たとえば、図6に図示されているIMP603は、図4のシステム・イメージ1 420に関連して提供することができ、図6のクライアント・パーティション604は、図4のシステム・イメージ2 430に関連して提供することができる。同様に、図6の入出力ファブリック611は図4のPCIeスイッチ460を含むことができ、IOVエンドポイント614は図4のPCIeエンドポイント470〜490のうちのいずれか1つと同様のものにすることができ、エンドポイント615および616は、図3のエンドポイント370〜390など、IOV対応エンドポイントまたは非IOV対応エンドポイントにすることができる。
図6に図示されている通り、システム601は、任意のデータ処理装置、たとえば、サーバ、クライアント・コンピューティング・デバイスなどにすることができるホスト・システム626と、1つまたは複数の通信リンクと1つ以上のスイッチを含むことができる入出力ファブリック611と、例示的な一実施形態ではPCIe入出力エンドポイントにすることができる1つ以上の入出力エンドポイント614〜616とを含み、入出力エンドポイント614はIOV対応エンドポイントであり、残りのエンドポイント615〜616はIOV対応エンドポイントまたは非IOV対応エンドポイントにすることができる。ホスト・システム626は、データ処理装置の基礎ハードウェアであるプラットフォーム・ハードウェア610と、ハイパーバイザ625と、ロジカル・パーティション(LPAR)603および604と、対応するパーティション・ファームウェア(PFW:partition firmware)623および624とを含む。本明細書ではハイパーバイザ625による使用に関して例示的な諸実施形態を説明しているが、本発明の精神および範囲を逸脱せずに他のタイプの仮想化プラットフォームを使用できることが認識されるであろう。
ハイパーバイザ625は、例示的な一実施形態では、プラットフォーム・ハードウェア610上で実行されるコードにすることができ、プラットフォームのファームウェアの一部になる。同様に、パーティション・ファームウェア(PFW)623〜624も、プラットフォームのファームウェアの一部になる可能性があるが、それらはLPAR内で実行されるLPARコードの一部であると論理的に見なされるので、LPAR603および604に関連して図示されている。
LPAR603および604は、リソースおよびLPAR内で実行されるオペレーティング・システム・イメージまたはインスタンスを割り振っている。加えて、LPAR603および604は、LPAR内でその他のアプリケーション、ソフトウェア、コードなどを実行することができる。たとえば、例示的な諸実施形態に対する特定の重要性により、LPARのうちの1つ、たとえば、LPAR603は、そのLPAR603にIOV管理パーティション(IMP)603として動作させるコードを実行する。その他のLPAR604はクライアント・パーティションとして動作することができる。図6には1つのIMP603と1つのクライアント・パーティション604のみが図示されているが、例示的な諸実施形態の精神および範囲を逸脱せずにホスト・システム626内に2つ以上のIMP603およびクライアント・パーティション604を設けることができることを認識されたい。
ハイパーバイザ625は、IOVエンドポイント614の構成空間619、621と、入出力ファブリック611の構成空間617にアクセスできる。「構成空間(configuration space)」という用語は、本明細書で使用されるように、システム601の特定のコンポーネントに関する構成データを保管する際に使用するために割り振られたメモリ・マップ入出力(MMIO)アドレス空間からの非結合アドレス空間(disjoint address space)を指す。さらに、IMPのオペレーティング・システム631およびデバイス・ドライバ605は、IMP603に割り当てられたときに物理機能(PF)612のための構成空間619にアクセスでき、IMP603に割り当てられたPFに属す仮想機能(VF)613の構成空間621にアクセスできる。クライアント・パーティションのオペレーティング・システム632およびデバイス・ドライバ606は、それに割り当てられたVF613の構成空間621のいずれにも直接アクセスできる。ハイパーバイザ625は、仲介として、より具体的には、クライアント・パーティションがそのVF613を適切に操作するために必要な構成空間にはアクセスできるが、他のクライアント・パーティションに関する問題を引き起こす可能性がある構成空間にはアクセスできないことを確認するための仮想仲介(VI)として動作する。すなわち、クライアント・パーティション604は、そのVF613に割り振られた構成空間のみにアクセスできる。クライアント・パーティション604はさらに、その割り当てられたVF613用のメモリ・マップ入出力(MMIO)空間622にアクセスできる。
ホスト・システム626上または個別データ処理システム(図示の通り)内に常駐する可能性のある、ハードウェア管理コンソール(HMC)609上の管理アプリケーション640と、HMC609自体は、リモート管理コマンド(RMC:Remote Management Command)インターフェース602を介してIMP603およびクライアント・パーティション604に通報し、同じタイプのインターフェース620を介してハイパーバイザ625に通報する。管理アプリケーション640(以下、HMC603とまとめて単純にHMC609という)は、システム601内の様々なコンポーネントの全域で機能を制御するためのオーケストレータ(orchestrator)として動作し、人間がシステム構成を眺め、どのリソースをどのLPAR603〜604に割り当てる必要があるかに関する情報を入力するためのユーザ・インターフェース642を提供する。管理アプリケーション640は、以下により詳細に記述する通り、ユーザによって呼び出し可能な多種多様な機能を提供することができる。代わって、これらの機能は、このような機能の開始を起動するイベントまたは入力に応答してユーザ介入なしに自動的に呼び出すことができる。
前述の通り、クライアント・パーティション604は、IOV対応エンドポイント614内のそれぞれの仮想機能(VF)613の構成空間621にアクセスするために、IOV対応エンドポイント614と直接通信することができる。ハイパーバイザ625は、このような通信のための仮想仲介(VI)として動作し、他のクライアント・パーティションに影響する恐れのある構成空間について、たとえば、そのクライアント・パーティションに割り当てられていない仮想機能(VF)の構成空間について、クライアント・パーティションが構成動作を実行するのを防止する。
図7は、例示的な一実施形態により、ロジカル・パーティション(LPAR)からプラットフォーム・ファームウェアへの1組の模範的な呼び出しの定義を例示する模範的な図である。特に、図7は、例示的な諸実施形態の諸態様を実装するために使用できる模範的なプラットフォーム・ファームウェア呼び出し700ならびにこれらの呼び出しがどちらのパーティション(クライアントまたはIMP)に適用されるかを例示している。これらの呼び出しは、たとえば、図6の関連プラットフォーム・ファームウェア623または624に対してパーティション603または604によって実行することができる。これらのLPARからプラットフォーム・ファームウェアへの呼び出し700の使用の例については、以下の図9〜図18の様々なものに関する説明に示す。これらの呼び出しについては、これらの呼び出しに関連する動作を実行可能な諸要素の模範的なものとして図6の諸要素を引き続き参照して説明する。
第1の呼び出し702、すなわち、入出力構成空間読み取り/書き込み呼び出し702は、それに関連するVF613の構成空間621にアクセスするためにクライアント・パーティション604によって使用される。ハイパーバイザ625は、これらの呼び出しのためのVIとして動作し、クライアント・パーティション604が他のクライアント・パーティションに影響する恐れのある構成動作を実行するのを防止する。また、この呼び出しは、そのPF619を構成するためにIMP603によっても使用され、この場合もハイパーバイザ625は、IMP603がその制御領域の一部ではないPFおよびVFの構成空間にアクセスするのを防止するためにVIとして動作する。加えて、IOV環境内のVIとして、ハイパーバイザ625は、PCI SIG IOV規格によって指定されたアクションを実行する必要もある。たとえば、構成フィールドの一部はVF内で複製されず、したがって、ハイパーバイザ625によって提供されるVIは、VFの構成空間621を介してアクセスされると、PFの構成空間619からこれらのフィールドを入手しなければならない。
PFリセット呼び出し704は、IMP603によって行うことができるPF固有の呼び出しの1つである。この呼び出しは、PF、たとえば、PF612をリセットし、その結果、そのPFに関連するすべてのVF、たとえば、VF613もリセットする。この呼び出しが行われると、IMP603は、まず、以下に記載するVF使用不可呼び出し706を使用して、そのPFに関連するすべてのVFを使用不可にし、PFをリセットし、次にPFリセット前の状態にすべてのVF構成を復元しなければならない。
VF使用不可呼び出し706は、指定されたVF(複数も可)に対する任意の追加MMIO動作を使用不可にし、VF(複数も可)からの直接メモリ・アクセス(DMA)および割り込みがクライアント・パーティション604まで通過するのを防止するようプラットフォーム・ファームウェアに通知する。データ保全性の問題が発生しないことを確認するためにこれを実装する方法はいくつか存在する。例示的な一実施形態では、クライアント・パーティション604がそのVFからのMMIOロード動作を実行しようとした場合に、VFが存在しない場合と同じようにクライアント・パーティション604がすべて1のデータを受信できるように、ハードウェアを設計することができる。デバイス・ドライバ606は、すべて1のデータを予想していないときにすべて1のデータの有無をチェックし、以下に記載するPF/VFエラー状態照会ファームウェア呼び出し710を使用して、すべて1のデータがエラー状態を表すかどうかを検証することが予想される。VF使用不可呼び出し706は、主にエラー回復シナリオで使用されることが予想され、したがって、上述し以下に詳述する通り、VFドライバ、たとえば、デバイス・ドライバ606を呼び出して、それ自体の回復を始めることができる。
クライアント・パーティション604は、VFリセット呼び出し708を使用することにより、そのVF613をリセットすることができる。ハイパーバイザ625は、VIとして動作し、VFリセット呼び出し708に指定されたVF613がVF613に対してリセットを発行する前にそのパーティションに割り当てられていることを妥当性検査する。このようにして、ハイパーバイザ625は、あるクライアント・パーティションが他のクライアント・パーティションのVF(複数も可)をリセットするのを防止する。ハイパーバイザは、以下に詳述する通り、このような割り当て動作に関わっているので、どのVFがどのパーティションに割り当てられるかを追跡し、たとえば、ハイパーバイザのデータ構造の1つにその情報を保管することにより、これらのような妥当性検査動作のためにその情報を手元に置いておくことができる。
PFおよびVFエラー状態照会呼び出し710は、IMP603内のPFドライバ、たとえば、デバイス・ドライバ605またはクライアント・パーティション604内のVFドライバ、たとえば、デバイス・ドライバ606が、それぞれPF612またはVF613に関するエラー状態情報を取得できるようにするプラットフォーム・ファームウェアへの呼び出しである。このエラー状態情報は、たとえば、プラットフォーム・ハードウェア610内のハードウェア状況レジスタからハイパーバイザによって入手することができる。このエラー状態は、たとえば、入出力エンドポイント614の動作におけるエラーの発生によって設定することができ、エラーから回復できるようにするためにIMP603内のPFドライバ、たとえば、デバイス・ドライバ605またはクライアント・パーティション604内のVFドライバ、たとえば、デバイス・ドライバ606によって使用することができる。このエラー状態情報は、たとえば、PFリセット呼び出し704またはVFリセット呼び出し706によってハードウェアからクリアすることができる。
エラー回復に関するプラットフォーム・エラー・データを入手するために、ロードおよび保管動作のためのPFおよびVF使用可能呼び出し712ならびに入出力ファブリック・エラー情報照会呼び出し714が提供される。PFおよびVFエラー状態照会呼び出し710が、それに関連するPF612またはVF613がエラー状態にあることを適切なデバイス・ドライバ605または606に示すエラー状態情報を返すと、デバイス・ドライバ605、606は、DMAパスを開けるようにせずに、ロードおよび保管動作のためのPFおよびVF使用可能呼び出し712を使用して、PF612またはVF613へのパスを開放することができる。次に、デバイス・ドライバ605、606は、MMIOロードおよび保管動作を使用して、問題判別のために入出力エンドポイント614から状態情報を取得することができる。入出力ファブリック・エラー情報照会呼び出し714は、MMIOロードおよび保管動作からの装置固有エラー情報に加えて、問題判別のために非装置固有エラー情報を取得するために使用することができる。
割り込みソース照会呼び出し716は、割り込みコントローラを仮想化するために、割り込みソースを取得するためにすべての割り込みについて使用される。したがって、図7に描かれている通り、割り込みソース照会呼び出し716は、クライアント・パーティション604とIMP603の両方が使用することができる。DMA変換セットアップ呼び出し718は、入出力アドレスをシステム・アドレスに変換するための変換メカニズムをセットアップするために使用される。このようなアドレス変換メカニズムは入出力仮想化に必要である。ハイパーバイザ625は、これらの呼び出しのためのVIとして動作し、クライアント・パーティション604が他のクライアント・パーティションに影響する恐れのあるアドレス変換をセットアップするのを防止する。ハイパーバイザ625は、たとえば、メモリ、プロセッサ、および入出力リソースなどのリソースを様々なパーティションに割り当てる責任があり、その後、そのリソースにアクセスするためのパーティションの権限を妥当性検査するためにその情報、たとえば、特定のメモリ・アドレスをそのデータ構造内に保持する。図7に図示されている通り、PFは一般にIMP603へのDMA動作を実行する必要がないので、DMA変換セットアップ呼び出し718は、クライアント・パーティション604が使用することができるが、一般にIMP603が使用することはできない。
最後に、LPAR使用からのVFの追加/除去呼び出し720およびLPAR使用からのPFの追加/除去呼び出し722は、以下に記載する通り、IOAホット・プラグ動作および動的再構成動作で使用するためのものである。定義によれば、VFはIMP603に割り当てられず、VFの所有者がVFのホット・プラグを制御するので、LPAR使用からのVFの追加/除去呼び出し720は、クライアント・パーティション604が使用することができるが、IMP603が使用することはできない。LPAR使用からのPFの追加/除去呼び出し722は、IMP603が使用することができるが、クライアント・パーティション604が使用することはできない。クライアント・パーティション604がそれを行えるようにすると、そのPFに関連する他のクライアント・パーティションに関連するVFについてセキュリティ問題を提起する可能性があるので、クライアント・パーティション604は、いずれの方法でもPFを変更することが許可されておらず、したがって、LPAR使用からのPFの追加/除去呼び出し722を使用することができない。
図8は、例示的な一実施形態により、ハードウェア管理コンソール(HMC)からプラットフォームへの1組の模範的な要求および応答の定義を例示する模範的な図である。特に、図8は、HMCからプラットフォーム・ファームウェアへの模範的な要求/応答800を例示し、システム内のどのコンポーネントに対してこの要求が行われることが予想されるかならびにそのコンポーネントの予想応答を識別する。これらの呼び出しは、たとえば、インターフェース602および620のうちの1つ以上を介して、図6のHMC609によって行うことができる。たとえば、HMC609がIMP603またはクライアント・パーティション604のいずれかをターゲットにする呼び出しを行う場合、HMC609はRMCインターフェース602を介して呼び出しを行うことができる。HMC609がハイパーバイザ625、たとえば、あるハイパーバイザをターゲットにする呼び出しを行う場合、その呼び出しはインターフェース620を介して行うことができる。これらのHMCからプラットフォームへの要求/応答800の使用の例については、以下の図9〜図18の様々なものに関してより詳細に示す。
図8に図示されている通り、ハイパーバイザ625は、入出力ファブリック構成照会要求802の使用により、入出力ファブリック構成について照会を受けることができる。この要求802は、たとえば、初期システム立ち上げ時に可能な入出力装置およびその機能をすべて取得するためにHMC609が使用することができ、その結果、ユーザが構成を希望する様々なLPARに対する選択および割り当てのためにこれらをユーザに提示することができる。
初期LPAR入出力構成設定要求804は、HMC609のユーザが何を構成しようと決定したかをハイパーバイザ625に通知するためにHMC609によって使用される。この構成は、入出力構成のみならず、システム内の様々なLPARに割り当てられたCPUの数およびメモリの量などのLPAR構成特性も含む。
また、ハイパーバイザ625は、入出力アダプタまたはエンドポイントの電源を投入する時期および遮断する時期をHMC609から通知を受けることもできる。これは、IOA電源投入/遮断要求806により実施することができる。
システムが動作可能である間および初期構成後に、システムへのPFまたはVFの動的追加を指示するためにHMCによって使用される、HMCからプラットフォームへの要求808〜812がいくつか存在する。PF/VFの動的追加要求808は、1つまたは複数のLPARへの特定のリソースの追加を予想するよう、ハイパーバイザ625に通知するためにHMC609によって使用される。ハイパーバイザ625は、これらのLPAR用のリソースを割り振ることができるように、このようなリソースを追加する意図について前もって通知を受ける必要がある。このようにして、LPARが、VFまたはPFをそのLPARに追加するようハイパーバイザ625に要求すると、ハイパーバイザ625はすでにこれらのリソースを割り振る準備が整っている。
ハイパーバイザ625がPF/VFの動的追加要求808を完了すると、IMP603およびクライアント・パーティション604は、任意の追加について通知を受けることができる。PFの動的追加要求810は、新しいPFが追加するために使用可能であることをIMP603に通知する。これは、たとえば、以下に述べるように、システムへの入出力アダプタまたはエンドポイントのホット・プラグ追加時に行われる可能性がある。この要求810は、そのファブリック構成にPFを追加し、PF構成空間を初期設定し、デバイス・ドライバをロードし、PFのIOV機能を使用可能にするよう、IMP603に通知する。IMP603は、図7のLPAR使用からのPFの追加/除去呼び出し722のうちの「追加」機能により、動作の完了をハイパーバイザ625に通知する。
VFの動的追加要求812は、新しいVFが追加するために使用可能であることをクライアント・パーティション604に通知する。これは、たとえば、システムへの入出力アダプタまたはエンドポイントのホット・プラグ追加時、あるいはユーザがクライアント・パーティション604に対して未使用VFとともに既存の入出力アダプタまたはエンドポイントの追加機能の追加を必要とするときに行われる可能性がある。この要求812は、そのファブリック構成にVFを追加し、VF構成空間を初期設定し、デバイス・ドライバをロードし、VFの使用を開始するよう、クライアント・パーティション604に通知する。クライアント・パーティション604は、LPAR使用からのVFの追加/除去呼び出し720のうちの「追加」機能により、動作の完了をハイパーバイザ625に通知する。
システムが動作可能である間および初期構成後に、システムからのPFまたはVFの動的除去を指示するためにHMC609によって使用される、HMCからプラットフォームへの要求814〜818がいくつか存在する。PF/VFの動的除去要求814は、1つまたは複数のLPARからの特定のリソースの除去を予想するよう、ハイパーバイザ625に通知するためにHMC609によって使用される。ハイパーバイザ625は、LPAR(複数も可)によって除去が通知された後、これらのLPAR用のリソースを割り振り解除できるように、前もって通知を受ける必要がある。ハイパーバイザ625がPF/VFの動的除去要求814を完了すると、IMP603およびクライアント・パーティション604は、任意の除去について通知を受けることができる。
次にVFの動的除去要求816は、使用からならびにLPARの構成からVFを除去する必要があることをクライアント・パーティション604に通知するために、HMC609によって使用される。これは、たとえば、そのLPARの使用のために他のLPARに再割り当てできるように、システムからの入出力アダプタまたはエンドポイントのホット・プラグ除去時、あるいはユーザがクライアント・パーティション604から既存の入出力アダプタまたはエンドポイントの機能の除去を必要とするときに行われる可能性がある。この要求は、VFの使用を停止し、VFのリセットを要求し、デバイス・ドライバを除去し、OSのファブリック構成からVFを除去するよう、クライアント・パーティション604に通知する。クライアント・パーティション604は、LPAR使用からのVFの追加/除去呼び出し720のうちの「除去」機能により、動作の完了をハイパーバイザ625に通知する。
PFの動的除去要求818は、PFが除去されることをIMP603に通知する。この要求を発行する前に、HMC609は、上述の通り、PFに関連するすべてのVFを使用中のクライアント・パーティション604から除去しておかなければならない。PFの除去は、たとえば、システムからの入出力アダプタまたはエンドポイントのホット・プラグ除去時に行われる可能性がある。この要求818は、PFの使用を停止し、リセット呼び出し704によりPFのリセットを要求し、デバイス・ドライバを除去し、OSのファブリック構成からPFを除去するよう、IMP603に通知する。IMP603は、LPAR使用からのPFの追加/除去呼び出し722のうちの「除去」機能により、動作の完了をハイパーバイザ625に通知する。
IMP603の重要な機能の1つは、あるPFに関連するVFを使用する複数のLPAR全域で共用されるか、またはあるVFにとって固有のものであるが、そのPFによる変更のためにアクセス可能であってはならない入出力アダプタまたはエンドポイントのリソースへの確実なアクセスを可能にすることである。ネットワーク入出力アダプタまたはエンドポイントのこのようなリソースの一例は、複数のVFによって共用されるPFに関連するネットワーク・アドレスまたはあるVFにとって固有のものであるネットワーク・アドレスである。このような装置固有リソースの管理は、本明細書では入出力アダプタまたはエンドポイントの「サウスサイド」管理という。これは、入出力アダプタ(IOA)またはエンドポイント・サウスサイド管理要求820によってHMC609を介して実施され、このような管理はいずれもHMC609上のセキュリティ・アプリケーション、たとえば、ログオン・アプリケーションまたはその他の認証アプリケーションを介して保護される。IMP603がIOAに関するIOAサウスサイド管理要求820を受信すると、IMP603はそのPF用のデバイス・ドライバ605にその要求を渡し、デバイス・ドライバ605は、その要求を実施するためにIOAへのPFインターフェースを介して装置固有要求を実行する。
HMCからプラットフォームへの要求800のすべての現行状況は、前のコマンド完了および状況照会要求822の使用により、元の要求のターゲットに対して作成することができる。これにより、HMC609は、一連のHMC要求を調整し、HMCインターフェースを介して前の要求の状況をユーザに対して示すことができる。動作によっては完了するのがかなり遅いものがあり、このような要求の現行状況にアクセスできることが望ましいので、このような要求が行われる可能性がある。
次に、この説明では、図7〜図8に上記で例示されている様々な要求および呼び出しの使用に関するより詳細な説明に取りかかる。図9〜図18は、例示的な諸実施形態のメカニズムの様々な動作の概要を示す流れ図である。図9〜図18に概要が示されている動作は、様々なメカニズム、たとえば、図6に描かれているHMC、ハイパーバイザ、IMP、クライアント・パーティション、プラットフォーム・ファームウェア/ハードウェア、入出力エンドポイントなどによって実装することができる。したがって、適切であれば、図9〜図18に概要が示されている動作の実行に関与可能な例示的な諸実施形態のメカニズムの一例として、図6の諸要素を参照する。
流れ図の各ブロックおよび流れ図内の複数ブロックの組み合わせは、コンピュータ・プログラム命令によって実装可能であることが理解されるであろう。これらのコンピュータ・プログラム命令は、マシンを生産するためにプロセッサまたはその他のプログラマブル・データ処理装置に提供することができ、プロセッサまたはその他のプログラマブル・データ処理装置上で実行される命令は流れ図の1つまたは複数のブロックに指定された機能を実装するための手段を作成する。また、これらのコンピュータ・プログラム命令は、特定の方法で機能するようプロセッサまたはその他のプログラマブル・データ処理装置に指示することができるコンピュータ可読メモリまたは記憶媒体に保管することもでき、コンピュータ可読メモリまたは記憶媒体に保管された命令は流れ図の1つまたは複数のブロックに指定された機能を実装する命令手段を含む装置(article of manufacture)を生産する。
したがって、流れ図の複数ブロックは、指定の機能を実行するための手段の組み合わせ、指定の機能を実行するための複数ステップの組み合わせ、および指定の機能を実行するためのプログラム命令手段をサポートする。また、流れ図の各ブロックおよび流れ図内の複数ブロックの組み合わせは、指定の機能またはステップを実行する特殊目的ハードウェアベースのコンピュータ・システムによって、または特殊目的ハードウェアとコンピュータ命令の組み合わせによって、実装可能であることが理解されるであろう。
さらに、流れ図は、例示的な諸実施形態内で実行される動作を実証するために提供されている。流れ図は、特定の動作または詳細には動作の順序に関する制限を明記または暗示するためのものではない。流れ図の動作は、本発明の精神および範囲を逸脱せずに特定の実装例に適合するように変更することができる。
図9は、例示的な一実施形態により、入出力仮想化(IOV)アダプタを有するシステムに関する模範的な「立ち上げ(bring-up)」動作の概要を示す流れ図を例示している。図9に図示されている通り、初期入出力ファブリック立ち上げ動作900は、入出力ファブリックの電源投入が実行されることから始まる(ステップ902)。入出力ファブリックの電源投入に応答して、ハイパーバイザ625は、入出力ファブリック611の構成空間を探索することなどにより、入出力ファブリック611に結合されたすべての入出力アダプタ614〜616を発見することができ(ステップ904)、発見動作によって検出された入出力アダプタ614〜616の機能を発見することができ(ステップ906)、IOV構成空間の検出などにより、発見されたアダプタのうちのいずれがPF612であるかを発見することができる(ステップ908)。
PFについて、ハイパーバイザ625は、構成空間を探索し、たとえば、各PFの構成空間内の初期VF(InitialVF)フィールドを読み取ることなどにより、各PFによってサポート可能なVFの数をさらに決定することができる(ステップ910)。次にハイパーバイザ625は、システム601内の入出力アダプタ(IOA)614〜616に必要なすべてのシステム・リソースを決定することができ、より具体的には、この場合、VFが必要とするリソースを決定することができる(ステップ912)。リソースとしては、システム内のプロセッサからメモリ・マップ入出力(MMIO)ロードおよび保管動作用のメモリ空間にIOAをマッピングするのに必要な入出力アドレス空間、必要なリクエスタID(RID:Requester Identifier)の数、必要なDMAウィンドウ空間の量、および必要な割り込みの数などの項目を含む。DMAウィンドウ空間は、ルート複合体(RC)内のアドレス変換機能に必要なデーブル・スペースの量である。
必要なリソースについて決定が行われると、ハイパーバイザ625は、システム601内のリソース制限事項のために使用可能にするVFの数を制限する必要があるかどうかを判断することができる(ステップ914)。次にハイパーバイザ625は、ユーザへの提示などのために、入出力構成空間の探索から収集したすべての情報をHMC609に報告することができる(ステップ916)。HMC609は、たとえば、図8の入出力ファブリック構成照会HMC要求802に対する応答として、ハイパーバイザにこの情報を報告することができる。次にユーザは、LPARまたはフリー・リソースの使用可能プールにリソースを割り当てることができる。報告される情報としては、たとえば、ベンダID、デバイスID、および機能数などの項目を含み、入出力ファブリックおよびエンドポイント内に何があるかについて決定するためにユーザが必要とする情報を含むことができる。この情報は、入出力アダプタまたはエンドポイントによってサポートされるPFの数、PFの初期VFによって決定可能なものなどの各PFについてサポート可能なVFの数、上述の方法でハイパーバイザ625によって計算されたシステム制限によるサポート可能VFの数の計算などをさらに含むことができる。
次に、すべてのシステム・リソースをどのように割り振る必要があるかを決定することは、HMC609のユーザの責務である。これは、人間ではなく、HMC609内で実行される自動スクリプトあるいはシステム601のロジカル・パーティションにシステム・リソースを割り当てるかまたは割り振るための任意のその他の自動メカニズムによって実行できることも留意されたい。このため、HMC609は、模範的な実施形態では、収集した入出力ファブリックおよびエンドポイント情報をユーザに提示し(ステップ918)、ユーザはリソースをどのように割り振るべきかを指定する(ステップ920)。この割り振りは、入出力を含むだけでなく、プロセッサおよびメモリなどの他のシステム・リソースを含むことにもなる。ユーザがリソースの割り当てを行うと、これは、たとえば、図8の初期LPAR入出力構成設定HMC要求804を介してハイパーバイザ625に報告される(ステップ922)。
VFについて、ユーザによって指定されたVFの数(割り当てられたものとフリー・プールの両方)が対応するPF用の初期VF未満である場合、ハイパーバイザ625は、PFのVF数(NumVF)構成空間パラメータを所望の値に設定することができ、PCI IOV規格によって定義されたVFイネーブル・ビットを介してPFに関する入出力仮想化を使用可能にすることができる。次にハイパーバイザ625は、MMIOアドレッシング、DMAアドレッシング、割り込み、およびその他のリソースを含む、各パーティションのリソースをセットアップすることができ(ステップ926)、IMP(複数も可)603に必要なパーティションを作成することができる(ステップ928)。
次にハイパーバイザ625は、IMP(複数も可)603およびクライアント・パーティション(複数も可)604に関するパーティション・ファームウェア623および624をブートすることができ、これらのLPAR内のOSが使用するためにIMP(複数も可)603およびクライアント・パーティション(複数も可)604に入出力構成構造を渡すことができる(ステップ930)。ハイパーバイザ625は、クライアント・パーティション(複数も可)604へのVF(複数も可)613の割り当て時に、クライアント・パーティション(複数も可)604からそのVF(複数も可)613へのすべての入出力構成アクセスについて、仲介(moderate)し始め、すなわち、仮想仲介として動作し始める(ステップ932)。ハイパーバイザ625は、IMPパーティションのOS(複数も可)をブートすることができ、次にPF(複数も可)612が初期設定されたというIMP(複数も可)603からの表示を待つことができる(ステップ934)。IMP(複数も可)603は、たとえば、図7のLPAR使用からのPFの追加/除去ファームウェア呼び出し722のうちの「追加」機能を介してこの表示を示すことができる。
VF613に関するIMP603がPF612を初期設定すると、VF613用のOSをロードすることができる(ステップ936)。クライアント・パーティション(複数も可)604は、そのVF(複数も可)613用のデバイス・ドライバ606をロードすることができる(ステップ938)。VF613用のデバイス・ドライバ606がロードされると、それは、たとえば、入出力構成空間読み取り/書き込み呼び出し702を介してそのVF613を構成する必要がある(ステップ940)。次にデバイス・ドライバ606はそのVF613を使用し始めることができ、次に動作は終了する。
システムが立ち上げられ、動作可能になると、新しい入出力アダプタまたはエンドポイントをシステムに動的に追加できることが望ましい。図10〜図11は、例示的な一実施形態により、システムにIOVアダプタを追加するための模範的なホット・プラグ動作の概要を示す流れ図を例示している。図10〜図11に図示されている通り、ホット・プラグ追加動作1000は、ホット・プラグ動作によりユーザに指示するためのユーザ・インターフェースを提供するホット・プラグ・アプリケーションをHMCコンソール609のユーザが開始することから始まる(ステップ1004)。ホット・プラグ・アプリケーションにより、ユーザまたはアプリケーションは、そこに新しい入出力アダプタまたはエンドポイント、たとえば、入出力エンドポイント614を差し込む、入出力ファブリック611内の空の入出力スロットを選択することができる(ステップ1006)。次にユーザは、新しい入出力アダプタ(IOA)またはエンドポイントを差し込むことができ(ステップ1008)、IOAが差し込まれたことをHMC609を介して報告することができる(ステップ1010)。当業者であれば、新しいIOAを未使用スロットに挿入し、システムにホット・プラグ・アプリケーションを自動的に呼び出させることにより、PCIeなどの入出力バス用のホット・プラグ・アプリケーションを自動的に呼び出すことができることを認識している。次にHMC609は、たとえば、図8の電源投入/遮断HMC要求806の「電源投入」機能を使用することにより、IOAの電源を投入するよう、ハイパーバイザ625にメッセージを送信することができ、その構成情報を取得することができ(ステップ1012)、動作は図11のステップ1014に継続する。
ハイパーバイザ625が初期ファブリック立ち上げ動作900で情報を収集したのと同様に、ハイパーバイザ625は、IOAを発見することができ(ステップ1014)、IOA上の機能を発見することができ(ステップ1016)、どの機能がPFであるかを発見することができる(ステップ1018)。PFについて、ハイパーバイザ625は、各PFによってサポート可能なVFの数を発見することができ(ステップ1020)、必要なシステム・リソースを決定することができ(ステップ1022)、システム・リソース制限を決定し(ステップ1024)、IOA構成情報をHMC609に報告することができる(ステップ1016)。
HMC609は、構成情報をユーザに提示することができる(ステップ1018)。ユーザは、どのリソースをどのクライアント・パーティションに割り当てるかを指定することができ(ステップ1030)、HMC609は、このリソース割り振りをハイパーバイザ625に報告することができ(ステップ1032)、ハイパーバイザ625は、必要であれば構成空間内のVF数を設定することができる(ステップ1034)。ハイパーバイザ625は、各パーティションのリソースをセットアップすることができ(ステップ1036)、新しいIMP(複数も可)603に関するパーティション(複数も可)を作成することができる(ステップ1038)。ハイパーバイザ625は、IMP(複数も可)603をブートし、これらのIMP(複数も可)603に入出力構成構造を渡すことができ(ステップ1040)、IMP OS(複数も可)をブートすることができ、PF612が初期設定されたというIMP OS(複数も可)からの信号を待つことができる(ステップ1042)。この時点で、VF613の追加を除いてIOAの追加は完了し、ハイパーバイザ625は、PF612の追加完了をHMC609に通知することができる(ステップ1044)。
次にHMC609は、新しいIOA614からVF613を受信するクライアント・パーティション(複数も可)604にVFの動的追加要求812を発行することができる。これは、VF(複数も可)を追加するためのクライアント・パーティション604のプロセスを開始するものである(ステップ1046)。クライアント・パーティション(複数も可)604内のOS(複数も可)は、新しいVF(複数も可)613を検出することができ、新しいVF(複数も可)613用のデバイス・ドライバ(複数も可)606をロードすることができる(ステップ1048)。VF(複数も可)613用のデバイス・ドライバ(複数も可)606は、たとえば、入出力構成空間読み取り/書き込み呼び出し702を介してそのVF(複数も可)613を構成することができ(ステップ1050)、その新たに構成されたVF(複数も可)613を使用し始めることができる。次に動作は終了する。
例示的な諸実施形態のシステム601の入出力ファブリック611に入出力アダプタまたはエンドポイントを動的に追加することに加えて、入出力アダプタまたはエンドポイントを入出力ファブリック611から動的に除去できるようにすることは有益なことである。図12は、例示的な一実施形態により、システムからIOVアダプタを除去するための模範的なホット・プラグ動作の概要を示す流れ図である。図12に図示されている通り、ホット・プラグ除去動作1100は、HMCコンソール609のユーザがホット・プラグ・アプリケーションを開始することから始まる(ステップ1104)。ユーザは、入出力エンドポイント614などの入出力アダプタ(IOA)またはエンドポイントを除去することを選択することができる(ステップ1106)。
HMC609は、除去すべきIOAからのPF612およびVF613というリソースを含むパーティションがある場合に、どのパーティションであるかを決定する(ステップ1108)。HMC609は、たとえば、PF/VFの動的除去要求814の使用により、差し迫ったリソースの除去をハイパーバイザ625に通知することができる(ステップ1110)。次にHMC609は、IOA上のVF613を含む各クライアント・パーティション604に、たとえば、VFの動的除去要求816を介して、そのVFを使用から除去するための要求を送信することができる(ステップ1112)。クライアント・パーティション(複数も可)604は、VFの動的除去要求816に関連するそのVF(複数も可)613の使用を停止することができる(ステップ1114)。
クライアント・パーティション(複数も可)604は、たとえば、LPAR使用からの追加/除去呼び出し720のうちの「除去」機能を介して、クライアント・パーティション(複数も可)604による使用からVF(複数も可)613を除去するようハイパーバイザ625に通知することができる(ステップ1118)。ハイパーバイザ625は、そのVF(複数も可)のそれぞれのリリースを通知するためにすべての使用クライアント・パーティション604を待ち(ステップ1120)、次にVF除去(複数も可)をHMC609に報告することができる(ステップ1122)。
VF除去が完了すると、次にHMC609は、IOA614に関連するPF(複数も可)612を除去するプロセスを開始することができる。HMC609は、たとえば、PFの動的除去要求818を介してPF(複数も可)612を使用から除去するためのメッセージをIOA614上のPF612を含む各IMP603に送信することにより、これを実行する(ステップ1124)。次にIMP(複数も可)603は、指示通り、指定のPF(複数も可)612の使用を停止することができ(ステップ1126)、LPAR使用からのPFの追加/除去呼び出し722のうちの「除去」機能によりPF612をそのパーティションの使用から除去するよう、ハイパーバイザ625に通知することができる。次にIMP(複数も可)603は、そのパーティションから関連PF612のリソースを除去することができる(ステップ1128)。
ハイパーバイザ625は、そのVF(複数も可)612のそれぞれのリリースを通知するためにすべての使用IMP(複数も可)603を待ち(ステップ1130)、次にPF除去(複数も可)をHMC609に報告することができる(ステップ1132)。この時点でIOA614はもはや使用されておらず、HMC609は、たとえば、IOA電源投入/遮断要求806の「電源遮断」機能を介してIOA614への電源をオフにするようハイパーバイザ625にメッセージを送信することができる(ステップ1134)。次にハイパーバイザ625は、IOA614の電源を遮断することができ、ハイパーバイザ625からIOA614のリソースを除去することができ、HMC609に完了を報告することができる(ステップ1136)。HMC609はユーザに完了を報告することができ(ステップ1138)、ユーザは、望ましい場合にはIOA614を抜くことができ、動作は完了する。
入出力仮想化およびVFの実装例の有用な特徴の1つは、ロード・バランシングに必要なときにこれらのリソースを動的にシフトするためにシステム内に十分なリソースを有する能力である。これは、それからLPARに追加するためのVFを選択できる使用可能なリソースのプールを有することによるか、または必ずしもVFのリソースを適切に使用していないLPARからVFを除去し、そのVFのリソースをより適切に使用できるLPARにそのVFを追加することにより、行うことができる。図13は、例示的な一実施形態により、ロジカル・パーティション(LPAR)に仮想機能(VF)を動的に追加するための模範的な動作の概要を示す流れ図である。図13に概要が示されている動作は、たとえば、システム601の動作を最適化するために必要なときに、あるLPARから他のLPARにVFのリソースをシフトするために使用することができる。
図13に図示されている通り、VF追加動作1200は、HMC609のユーザが動的再構成(DR:Dynamic Reconfiguration)アプリケーションを開始することから始まる(ステップ1204)。ユーザは、追加すべきVF613の使用可能リストから選択することができ、どのクライアント・パーティションにVF613を追加すべきかを指定することができる(ステップ1404)。HMC609は、たとえば、PF/VFの動的追加要求808を介して、この情報をハイパーバイザ625に提示することができる(ステップ1208)。ハイパーバイザ625は、MMIOアドレッシング、DMAアドレッシング、割り込みなどのクライアント・パーティションのリソースをセットアップすることができない。
ハイパーバイザ625は、要求された動作の完了を通知することにより、動作が進行準備完了であることをHMC609に通知することができる(ステップ1212)。次にHMC609は、VFの動的追加要求812を介して、VF613を動的に追加するようクライアント・パーティション604に要求することができる(ステップ1214)。クライアント・パーティション604は、新しいVF613を検出することができ、新しいVF613用のデバイス・ドライバ606をロードすることができる(ステップ1216)。VF613用のデバイス・ドライバ606は、たとえば、入出力構成空間読み取り/書き込み呼び出し702を介してそのVF613を構成することができる(ステップ1218)。最後に、HMC609は動作の完了をユーザに通知することができ、動作は完了する(ステップ1220)。
図14は、例示的な一実施形態により、LPARからVFを動的に除去するための模範的な動作の概要を示す流れ図である。図14の動的VF除去動作1300は、システム601の様々なLPAR間で入出力リソースを移動する能力のもう一方の部分である。すなわち、VFは、図14に図示されている動作を使用して、あるLPARとの関連付けから除去することができ、上記の図13に概要が示されているVF追加動作を使用して、他のLPARに追加することができる。このようにあるパーティションからVFを除去し、他のパーティションに追加することは、詳細な例に示す通り、手動ユーザ・プロセスによって実行することができるか、またはそのVFがあるパーティションによって十分利用されておらず、他のパーティションによって使用することができるというプログラムによる判断により自動的に実行することができる。このようなロード・バランシング・プログラムは、メモリのようなリソースに関する技術分野では既知のものである。本明細書に記載した本発明のVF動的除去および追加を使用すると、入出力リソースのバランスを取るためのロード・バランシング・プログラムを拡張することもできる。
図14に図示されている通り、VF除去動作1300は、ユーザがHMC609でDRアプリケーションを開始することから始まる(ステップ1304)。ユーザは、VF613などの除去すべきVFを選択することができ(ステップ1306)、HMC609は、たとえば、PF/VF動的除去要求818をハイパーバイザ625に送信することができる(ステップ1308)。HMC609は、たとえば、VFの動的除去要求816をクライアント・パーティション604に送信して、VF除去プロセスを開始することができる(ステップ1310)。クライアント・パーティション604は、この要求を受信し、指示通り、VF613の使用を停止することができる(ステップ1312)。
クライアント・パーティション604は、たとえば、LPAR使用からのVFの追加/除去呼び出し720のうちの「除去」機能を介してパーティションによる使用からVF613を除去するよう、ハイパーバイザ625に通知することができる(ステップ1314)。次にハイパーバイザ625は、関連VF613のリソースをクライアント・パーティション604から除去することができる(ステップ1316)。ハイパーバイザ625は、VFの除去をHMC609に報告することができる(ステップ1318)。HMC609はユーザに動作の完了を通知することができ(ステップ1320)、動作は終了する。
入出力アダプタまたはエンドポイントを動的に追加および除去し、VFおよびそれに関連するリソースをLPAR間でシフトできることに加えて、仮想化システムでは、エラーから回復できることがエラー処理の頑強性(robustness)のために有用である。例示的な諸実施形態は、エラー情報を検索し、エラー情報をログ記録し、VFをリセットおよび構成し、未処理の入出力動作を再始動するよう試みることにより、エラーから回復できるようにするためのメカニズムを提供する。この動作は、以下に記載する通り、図15に概要が示されている。
図15は、例示的な一実施形態により、VFが被るエラーからのエラー回復のための模範的な動作の概要を示す流れ図である。図15に概要が示されている動作は、エラーが存在することをデバイス・ドライバが認識でき、適切に回復できるまで、VFへのすべてのDMAおよびMMIOを停止する既存の技法を使用する。しかし、図15の動作は、VFに関するエラー回復プロセスを制御するためにこの既存の技法を拡大するように、例示的な諸実施形態のメカニズムを使用する。
図15に図示されている通り、VFエラー回復動作1400は、VFをMMIO停止状態(MMIO Stopped State)およびDMA停止状態(DMA StoppedState)にしたエラーが発生した後で開始する。この状態では、VFからのDMA動作はいずれも完了せず、MMIO保管動作はMMIO停止状態である間に廃棄され、MMIOロード動作では、すべて1のデータが返されることになる。エラー回復のプロセスは、デバイス・ドライバ、たとえば、デバイス・ドライバ606がMMIOロード動作からすべて1のデータを受信することから始まる(ステップ1404)。デバイス・ドライバ606は、すべて1のデータの取り戻しを予想しておらず(または予想しなければならないかどうかが確かではない)、たとえば、VF613についてVFエラー状態照会ファームウェア呼び出し710を使用して、VF状態情報を取得する(ステップ1406)。VF613はこの時点でエラー状態にあるので、ハイパーバイザ625は、照会に対して、VF613がMMIO停止およびDMA停止エラー状態にあると応答することができる(ステップ1408)。デバイス・ドライバ606は、たとえば、入出力ファブリック・エラー情報照会ファームウェア呼び出し714を使用して、その後の問題判別のために入出力ファブリック611内のエラー・レジスタに関する情報を入手することができる(ステップ1410)。ハイパーバイザ625はエラー情報で照会に応答することができ(ステップ1412)、デバイス・ドライバ606はその後の分析のためにその情報をエラー・ログにログ記録することができる(ステップ1414)。
この時点でデバイス・ドライバ606は、そのVFをリセットする準備が完了し、動作を再始動しようと試みることができる。デバイス・ドライバ606は、たとえば、VFリセット・ファームウェア要求708を使用してVF613をリセットすることができ(ステップ1416)、ハイパーバイザ625は、完了応答で要求に応答することができる(ステップ1418)。次にデバイス・ドライバ606は、たとえば、入出力構成空間読み取り/書き込み呼び出し702を使用して、そのVF613を構成することができる(ステップ1420)。デバイス・ドライバ606は未処理の入出力動作を再始動しようと試み(ステップ1422)、動作は終了する。
前述の通り、IMP603の重要な機能の1つは、あるPFに関連するVFを使用する複数のLPAR全域で共用されるか、またはあるVFにとって固有のものであるが、そのPFによる変更のためにアクセス可能であってはならないIOAまたはエンドポイントのリソースへの確実なアクセスを可能にすることである。ネットワーク入出力アダプタ(IOA)またはエンドポイントのこのようなリソースの一例は、複数のVFによって共用されるPFに関連するネットワーク・アドレスまたはあるVFにとって固有のものであるネットワーク・アドレスである。このような装置固有リソースの管理は、入出力アダプタまたはエンドポイントのIOA「サウスサイド」管理という。図16は、例示的な一実施形態により、ネットワーク・アダプタ上のネットワーク・アドレスを変更するための模範的なIOAサウスサイド管理動作の概要を示す流れ図である。図16は、具体的にはネットワーク・アダプタ上のネットワーク・アドレスの変更を対象とするが、あるPFに関連するVFを使用するか、またはあるVFにとって固有のものである複数のLPAR全域で共用されるその他のリソースについて、同様の動作を実行できることを認識されたい。
図16に図示されている通り、動作は、HMCコンソール609のユーザがVF613用のネットワーク・アドレスを変更するためのアプリケーションを開始することから始まる(ステップ1504)。ユーザは、VF613およびアドレスを選択することができる(またはアプリケーションは、動作のコンテキストに基づいてアドレスを提供することができる)(ステップ1506)。HMC609は、VF613を制御するPF612およびIMP603を決定することができ、IMP603にIOAサウスサイド管理要求820を送信し、IOAサウスサイド管理要求820内のVF613およびアドレス情報を渡すことができる(ステップ1508)。IMP603はPFデバイス・ドライバ605に情報を渡すことができ、PFデバイス・ドライバ605は処理のためにPF612にそれを渡すことができる(ステップ1510)。HMC609は、コマンド完了についてIMP603に照会することができ、完了すると、動作が完了したことをユーザに通知することができ(ステップ1512)、動作は終了する。
システム601内のクライアント・パーティション604は、システム601が動作可能である間に動作を終了できることを認識されたい。クライアント・パーティション内のソフトウェアの回復不能エラーまたはハードウェアが割り当てられているパーティションのみに影響する回復不能ハードウェア・エラーなど、クライアント・パーティション604が終了する可能性のある多種多様な理由が存在する可能性がある。図17は、例示的な一実施形態により、クライアント・パーティション終了のための模範的な動作の概要を示す流れ図である。図17に概要が示されている動作1600は、クライアント・パーティションが終了してリブートするか、または永続的に終了するケースを対象とする。
図17に図示されている通り、クライアント・パーティション604が何らかの理由で終了すると動作が始まる。ハイパーバイザ625は、たとえば、回復不能ソフトウェア・エラーによるかまたは回復不能ハードウェア・エラー時のハードウェアからのマシン・チェック割り込みによるパーティションからハイパーバイザへのパニック呼び出し(panic call)によりクライアント・パーティションが終了する時期を検出することができ、クライアント・パーティション604が終了したことを検出することができる(ステップ1604)。次にハイパーバイザ625は、たとえば、パーティションの初期セットアップの一部として設定されたユーザのリブート・ポリシーにより判断された通り、クライアント・パーティション604がリブートのために設定されているかどうかを判断することができる(ステップ1606)。
クライアント・パーティション604がリブートのために設定されていない場合、ハイパーバイザ625は、VFリソースを除去し、終了したパーティションからハイパーバイザVFフリー・プールにVF(複数も可)を追加することができる(ステップ1608)。それが終了であるということは、故障中のクライアント・パーティション604がいつでも直ちにリブートされるわけではないことを意味し、したがって、動作は終了する。
クライアント・パーティション604がリブートされるという判断が行われた場合(ステップ1606)、ハイパーバイザ625は、終了したパーティション内のVF(複数も可)に関連するリソースを、それがリブートされたときに対応するパーティションに再割り当てする(ステップ1610)。次に動作は終了する。
システム601の動作中に、IMP603が故障する可能性があることも可能であることを認識されたい。IMP603は、多くのクライアント・パーティション604内の潜在的に多くのVF813のためにリソース用のコントローラとして動作しているので、故障した場合にリブートするように必ず設定されることが予想される。図18は、例示的な一実施形態により、IMPパーティション終了のための模範的な動作1700の概要を示す流れ図である。図18に図示されている通り、動作1700は、IMPパーティションの終了から始まる。ハイパーバイザ625は、たとえば、回復不能ソフトウェア・エラーによるかまたは回復不能ハードウェア・エラー時のハードウェアからのマシン・チェック割り込みによるパーティションからハイパーバイザへのパニック呼び出しにより、IMP603のパーティション終了を検出することができ、IMP603のリブートを開始する(ステップ1704)。
ハイパーバイザ625は、リブートが完了するまでリブート中のIMP603内のPF(複数も可)に関連するすべてのVF(複数も可)について、すべてのファームウェア呼び出し700を停止することができるが(ステップ1706)、ただし、通常の動作が続行できるように、割り込みソース照会ファームウェア呼び出し716およびDMA変換セットアップ・ファームウェア呼び出し718は停止されない。リブート中のIMP603内のPF(複数も可)に関連するVF(複数も可)を有するクライアント・パーティション604は、停止するファームウェア呼び出しを実行する必要がない限り、通常通り動作し続け、必要がある場合は、IMPリブートが完了するまでハイパーバイザ625はファームウェア呼び出しを停止する(ステップ1708)。ハイパーバイザ625は同じPFリソースをIMP603に割り当て、リブート時のIMP603は、動作がリブートであることを検出し、VF動作に影響しないように状態を慎重に復元する(ステップ1710)。次に動作は終了する。
したがって、例示的な諸実施形態は、サウスサイド・アダプタ固有管理のための管理ソフトウェアが、ハイパーバイザ内ではなく、個別の管理パーティション内で実行できるようにし、構成およびエラー管理のようなアダプタ独立動作はハイパーバイザによって実行されるメカニズムを提供する。ハイパーバイザに対するパフォーマンス上の影響を防止するために、入出力アダプタ依存コードをハイパーバイザの中に入れないようにすることが望ましい。その上、たとえば、異なるアダプタ固有のサウスサイド管理ソフトウェア用のコードの更新の必要性による頻繁な更新によるハイパーバイザ・コードの不安定性を最小限にするために、入出力アダプタ依存コードを個別の管理パーティションに入れることが望ましい。したがって、例示的な諸実施形態のメカニズムは、不安定性を最小限にしながら、ハイパーバイザのより効率的な動作を提供する。
例示的な諸実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェアとソフトウェアの両方の要素を含む実施形態の形を取ることができることを認識されたい。模範的な一実施形態では、例示的な諸実施形態のメカニズムは、ソフトウェアで実装され、そのソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されない。
さらに、例示的な諸実施形態は、コンピュータまたは任意の命令実行システムによりあるいはそれに関連して使用するためのプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形を取ることができる。この説明のために、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによりあるいはそれに関連して使用するためのプログラムを収容、保管、通信、伝搬、または伝送可能な任意の装置にすることができる。
この媒体は、たとえば、電子、磁気、光、電磁、赤外線、または半導体システム(あるいは装置またはデバイス)もしくは伝搬媒体にすることができる。コンピュータ可読媒体の例としては、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、剛性磁気ディスク、および光ディスクを含む。光ディスクの現在の例としては、コンパクト・ディスク読み取り専用メモリ(CD−ROM)、書き換え可能コンパクト・ディスク(CD−R/W)、およびDVDを含む。
プログラム・コードの保管または実行あるいはその両方に適したデータ処理システムは、システム・バスを介して記憶素子に直接または間接的に結合された少なくとも1つのプロセッサを含むことになる。記憶素子としては、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量記憶装置と、実行中に大容量記憶装置からコードを検索しなければならない回数を削減するために少なくとも何らかのプログラム・コードの一時記憶を提供するキャッシュ・メモリとを含むことができる。
入出力またはI/O装置(キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定されない)は、直接あるいは介在する入出力コントローラにより、システムに結合することができる。データ処理システムが介在する私設網または公衆網を介してその他のデータ処理システムあるいはリモート・プリンタまたは記憶装置に結合された状態になれるようにするために、ネットワーク・アダプタもシステムに結合することができる。モデム、ケーブル・モデム、およびイーサネット・カードは、現在使用可能なタイプのネットワーク・アダプタのうちのいくつかに過ぎない。
本発明の説明は、例示および解説のために提示されたものであり、網羅するためまたは開示された形式に本発明を限定するためのものではない。多くの変更および変形は当業者にとって明白なものになるであろう。この実施形態は、本発明の原理、実用的な適用例を最も良く説明するため、ならびにその他の当業者が企図された特定の用途に適した様々な変更を含む様々な実施形態について本発明を理解できるようにするために、選択され記載されたものである。
当技術分野で一般に知られているPCIeファブリック・トポロジを組み込むシステムを例示する模範的な図である。 当技術分野で一般に知られているシステム仮想化を例示する模範的な図である。 仮想化層を使用して、PCIルート複合体の入出力を仮想化するための第1の手法を例示する模範的な図である。 最初から共用されるPCI入出力アダプタを使用して、PCIルート複合体の入出力を仮想化するための第2の手法を例示する模範的な図である。 PCIe入出力仮想化対応エンドポイントの模範的な図である。 例示的な一実施形態により、IOV対応エンドポイントまたはアダプタが使用されるシステム構造の模範的な図である。 例示的な一実施形態により、ロジカル・パーティション(LPAR)からプラットフォーム・ファームウェアへの1組の模範的な呼び出しの定義を例示する模範的な図である。 例示的な一実施形態により、ハードウェア管理コンソール(HMC)からプラットフォームへの1組の模範的な要求および応答の定義を例示する模範的な図である。 例示的な一実施形態により、入出力仮想化(IOV)アダプタを有するシステムに関する模範的な「立ち上げ」動作の概要を示す流れ図である。 例示的な一実施形態により、システムにIOVアダプタを追加するための模範的なホット・プラグ動作の概要を示す流れ図である。 例示的な一実施形態により、システムにIOVアダプタを追加するための模範的なホット・プラグ動作の概要を示す流れ図である。 例示的な一実施形態により、システムからIOVアダプタを除去するための模範的なホット・プラグ動作の概要を示す流れ図である。 例示的な一実施形態により、ロジカル・パーティション(LPAR)に仮想機能(VF)を動的に追加するための模範的な動作の概要を示す流れ図である。 例示的な一実施形態により、LPARからVFを動的に除去するための模範的な動作の概要を示す流れ図である。 例示的な一実施形態により、VFが被るエラーからのエラー回復のための模範的な動作の概要を示す流れ図である。 例示的な一実施形態により、ネットワーク・アダプタ上のネットワーク・アドレスを変更するための模範的なIOAサウスサイド管理動作の概要を示す流れ図である。 例示的な一実施形態により、クライアント・パーティション終了のための模範的な動作の概要を示す流れ図である。 例示的な一実施形態により、IMPパーティション終了のための模範的な動作の概要を示す流れ図である。
符号の説明
310:ホストCPUセット
320:SI(システム・イメージ)1
330:SI(システム・イメージ)2
340:仮想化層
350:PCIルート複合体
360:PCIeスイッチ
370:PCIeエンドポイント
380:PCIeエンドポイント
390:PCIeエンドポイント

Claims (25)

  1. データ処理システム内で、入出力(I/O)仮想化を管理するための方法であって、
    前記データ処理システム内で1つ以上のクライアント・パーティションを作成するステップであって、各クライアント・パーティションが前記データ処理システムのリソースの関連部分を有するステップと、
    前記データ処理システムに関連する1つ以上の入出力エンドポイントにより入出力仮想化管理動作を実行するステップであって、前記入出力仮想化管理動作が前記1つ以上の入出力エンドポイントの物理機能または仮想機能のうちの少なくとも1つを構成するように動作するステップと、
    入出力仮想化管理パーティション(IMP)から分離した仮想仲介を使用して、前記1つ以上の入出力エンドポイントのリソースに対する前記入出力仮想化管理動作のアクセスを制御するステップであって、前記仮想仲介が、あるクライアント・パーティションが前記クライアント・パーティションに割り当てられていない前記1つ以上の入出力エンドポイントのリソースにアクセスするのを防止するステップと、
    を含む方法。
  2. 前記データ処理システム内で入出力仮想化管理パーティション(IMP)を作成するステップであって、前記IMPは、前記データ処理システムに関連する1つ以上の入出力エンドポイントにより入出力仮想化管理動作を実行し、それにより、前記1つ以上の入出力エンドポイントの少なくとも1つの物理機能を管理し、前記1つ以上のクライアント・パーティションは、前記少なくとも1つの物理機能に対する入出力仮想化管理動作を実行することを許可されないステップ
    をさらに含む、請求項1に記載の方法。
  3. 1つ以上のクライアント・パーティションを作成する前記ステップと、前記IMPを作成する前記ステップが、前記仮想仲介によって実行され、前記仮想仲介が前記データ処理システムに関連するハイパーバイザである、請求項1に記載の方法。
  4. 前記ハイパーバイザが、前記1つ以上の入出力エンドポイント内の物理機能および仮想機能用の構成空間にアクセスすることができ、前記IMPが、前記1つ以上の入出力エンドポイントにおいて、前記IMPに割り当てられた物理機能用の構成空間と、前記IMPに割り当てられた物理機能に属す仮想機能用の構成空間のみにアクセスすることができる、請求項3に記載の方法。
  5. 前記ハイパーバイザが、前記1つ以上の入出力エンドポイントにおいて、あるクライアント・パーティションに割り当てられた仮想機能の構成空間に対する前記クライアント・パーティションによるアクセスを許可し、前記1つ以上の入出力エンドポイントにおいて、前記クライアント・パーティションに割り当てられていない仮想機能の構成空間に対する前記クライアント・パーティションによるアクセスをブロックする、請求項4に記載の方法。
  6. 前記入出力仮想化管理動作の実行を指示するハードウェア管理コンソール(HMC)から入力を受信するステップをさらに含む、請求項2に記載の方法。
  7. 前記HMCからの前記入力が、新しい入出力エンドポイントを前記データ処理システムに追加するためにホット・プラグ動作を開始するためのコマンドであり、前記入出力仮想化管理動作を実行する前記ステップが、
    前記新しい入出力エンドポイントの追加に基づいて前記1つ以上のクライアント・パーティションにリソースを割り振るステップと、
    前記新しい入出力エンドポイントの追加に基づいて前記IMPを構成するステップと、
    前記1つ以上のクライアント・パーティション内の少なくとも1つのクライアント・パーティションに前記新しい入出力エンドポイントの少なくとも1つの仮想機能を動的に追加するステップと、
    を含む、請求項6に記載の方法。
  8. 前記HMCからの前記入力が、前記データ処理システムから既存の入出力エンドポイントを除去するためにホット・プラグ動作を開始するためのコマンドであり、前記入出力仮想化管理動作を実行する前記ステップが、
    除去すべき前記入出力エンドポイントの仮想機能に関連するリソースを有する前記1つ以上のクライアント・パーティション内の少なくとも1つのクライアント・パーティションを識別するステップと、
    前記仮想機能と、前記仮想機能に関連するリソースを、前記少なくとも1つのクライアント・パーティションによる使用から除去するステップと、
    物理機能と、前記物理機能に関連するリソースを、前記IMPによる使用から除去するステップと、
    除去すべき前記入出力エンドポイントの電源を遮断するステップと、
    を含む、請求項6に記載の方法。
  9. 前記HMCからの前記入力が、前記データ処理システムを動的に再構成するためのコマンドであり、前記入出力仮想化管理動作を実行する前記ステップが、
    前記1つ以上のクライアント・パーティション内の選択されたクライアント・パーティションに追加するための入出力エンドポイントの仮想機能の選択を受信するステップと、
    前記選択されたクライアント・パーティション内で選択された仮想機能用のリソースをセットアップするステップと、
    前記選択されたクライアント・パーティション内で前記選択された仮想機能用のデバイス・ドライバをロードするステップと、
    を含む、請求項6に記載の方法。
  10. 前記HMCからの前記入力が、前記データ処理システムを動的に再構成するためのコマンドであり、前記入出力仮想化管理動作を実行する前記ステップが、
    前記1つ以上のクライアント・パーティション内の選択されたクライアント・パーティションから除去するための入出力エンドポイントの仮想機能の選択を受信するステップと、
    前記選択されたクライアント・パーティションによりさらに使用することから前記選択された仮想機能を除去するステップと、
    前記選択されたクライアント・パーティション内で選択された仮想機能用のリソースを除去するステップと、
    を含む、請求項6に記載の方法。
  11. 前記HMCからの前記入力が、入出力エンドポイントの選択された仮想機能に関連するネットワーク・アドレスを変更するためのコマンドであり、前記入出力仮想化管理動作を実行する前記ステップが、
    前記選択された仮想機能に関連する物理機能を識別するステップと、
    前記IMPに管理要求を送信するステップであって、前記管理要求が、前記選択された仮想機能の前記ネットワーク・アドレスを変更するためのアドレス情報を含むステップと、
    前記管理要求内の前記アドレス情報に基づいて前記物理機能に関連するデバイス・ドライバを介して前記選択された仮想機能の前記ネットワーク・アドレスを変更するステップと、
    を含む、請求項6に記載の方法。
  12. 前記入出力仮想化管理動作を実行する前記ステップが、
    前記仮想仲介において、前記1つ以上のクライアント・パーティションのうちの1つのクライアント・パーティション内のデバイス・ドライバから、仮想機能エラー状態照会ファームウェア呼び出しを受信するステップと、
    入出力エンドポイントの仮想機能のエラー状態を識別するエラー情報を前記仮想仲介から前記デバイス・ドライバに提供するステップと、
    前記デバイス・ドライバにより、前記仮想仲介から受信した前記エラー情報をログ記録するステップと、
    前記エラー状態を有する前記仮想機能をリセットするために前記デバイス・ドライバから前記データ処理システムのファームウェアに仮想機能リセット要求を送信するステップと、
    リセット後に前記仮想機能を構成するステップと、
    を含む、請求項1に記載の方法。
  13. 前記入出力仮想化管理動作を実行する前記ステップが、
    前記仮想仲介により、クライアント・パーティション障害を検出するステップと、
    クライアント・パーティション・リブート動作を実行すべきかどうかを判断するステップと、
    前記クライアント・パーティションをリブートするべきではない場合に、前記1つ以上の入出力エンドポイントから故障クライアント・パーティションに関連する仮想機能リソースを除去し、前記除去された仮想機能リソースをフリー仮想機能リソース・プールに追加するステップと、
    前記クライアント・パーティションをリブートするべきである場合に、前記仮想仲介により、前記故障クライアント・パーティションのリブート後に前記仮想機能リソースを前記故障クライアント・パーティションに再割り当てするステップと、
    を含む、請求項1に記載の方法。
  14. 前記入出力仮想化管理動作を実行する前記ステップが、
    前記IMPの障害を検出するステップと、
    前記仮想仲介により、前記IMPのリブートを開始するステップと、
    前記IMPの前記リブートが完了するまで前記IMPに割り当てられた物理機能に関連する仮想機能に関する前記1つ以上のクライアント・パーティションによるファームウェア呼び出しを停止するステップと、
    前記IMPの前記リブートの完了後に前記1つ以上のクライアント・パーティションによるファームウェア呼び出しの停止を中断するステップと、
    を含む、請求項1に記載の方法。
  15. プロセッサと、
    前記プロセッサに結合されたメモリとを含み、前記メモリが、前記プロセッサによって実行されたときに、前記プロセッサに、
    前記データ処理システム内で1つ以上のクライアント・パーティションを作成するステップであって、各クライアント・パーティションが前記データ処理システムのリソースの関連部分を有するステップと、
    前記データ処理システムに関連する1つ以上の入出力エンドポイントにより入出力仮想化管理動作を実行するステップであって、前記入出力仮想化管理動作が前記1つ以上の入出力エンドポイントの物理機能または仮想機能のうちの少なくとも1つを構成するように動作するステップと、
    入出力仮想化管理パーティション(IMP)から分離した仮想仲介を使用して、前記1つ以上の入出力エンドポイントのリソースに対する前記入出力仮想化管理動作のアクセスを制御するステップであって、前記仮想仲介が、あるクライアント・パーティションが前記クライアント・パーティションに割り当てられていない前記1つ以上の入出力エンドポイントのリソースにアクセスするのを防止するステップと、
    を実行させる命令を含む、データ処理システム。
  16. 前記命令が、前記プロセッサに、
    前記データ処理システム内で入出力仮想化管理パーティション(IMP)を作成するステップであって、前記IMPは、前記データ処理システムに関連する1つ以上の入出力エンドポイントにより入出力仮想化管理動作を実行し、それにより、前記1つ以上の入出力エンドポイントの少なくとも1つの物理機能を管理し、前記1つ以上のクライアント・パーティションは、前記少なくとも1つの物理機能に対する入出力仮想化管理動作を実行することを許可されないステップ
    をさらに実行させる、請求項15に記載のシステム。
  17. 1つ以上のクライアント・パーティションを作成する前記ステップと、前記IMPを作成する前記ステップが、前記仮想仲介によって実行され、前記仮想仲介が前記データ処理システムに関連するハイパーバイザである、請求項15に記載のシステム。
  18. 前記ハイパーバイザが、前記1つ以上の入出力エンドポイント内の物理機能および仮想機能用の構成空間にアクセスすることができ、前記IMPが、前記1つ以上の入出力エンドポイントにおいて、前記IMPに割り当てられた物理機能用の構成空間と、前記IMPに割り当てられた物理機能に属す仮想機能用の構成空間のみにアクセスすることができる、請求項17に記載のシステム。
  19. 前記ハイパーバイザが、前記1つ以上の入出力エンドポイントにおいて、あるクライアント・パーティションに割り当てられた仮想機能の構成空間に対する前記クライアント・パーティションによるアクセスを許可し、前記1つ以上の入出力エンドポイントにおいて、前記クライアント・パーティションに割り当てられていない仮想機能の構成空間に対する前記クライアント・パーティションによるアクセスをブロックする、請求項18に記載のシステム。
  20. 前記命令が、前記プロセッサに、前記入出力仮想化管理動作の実行を指示するハードウェア管理コンソール(HMC)から入力を受信するステップをさらに実行させる、請求項16に記載のシステム。
  21. 前記HMCからの前記入力が、新しい入出力エンドポイントを前記データ処理システムに追加するためにホット・プラグ動作を開始するためのコマンドであり、前記命令が、
    前記新しい入出力エンドポイントの追加に基づいて前記1つ以上のクライアント・パーティションにリソースを割り振るステップと、
    前記新しい入出力エンドポイントの追加に基づいて前記IMPを構成するステップと、
    前記1つ以上のクライアント・パーティション内の少なくとも1つのクライアント・パーティションに前記新しい入出力エンドポイントの少なくとも1つの仮想機能を動的に追加するステップと、
    により、前記プロセッサに前記入出力仮想化管理動作を実行させる、請求項20に記載のシステム。
  22. 前記命令が、
    前記仮想仲介において、前記1つ以上のクライアント・パーティションのうちの1つのクライアント・パーティション内のデバイス・ドライバから、仮想機能エラー状態照会ファームウェア呼び出しを受信するステップと、
    入出力エンドポイントの仮想機能のエラー状態を識別するエラー情報を前記仮想仲介から前記デバイス・ドライバに提供するステップと、
    前記デバイス・ドライバにより、前記仮想仲介から受信した前記エラー情報をログ記録するステップと、
    前記エラー状態を有する前記仮想機能をリセットするために前記デバイス・ドライバから前記データ処理システムのファームウェアに仮想機能リセット要求を送信するステップと、
    リセット後に前記仮想機能を構成するステップと、
    により、前記プロセッサに前記入出力仮想化管理動作を実行させる、請求項15に記載のシステム。
  23. 前記命令が、
    前記仮想仲介により、クライアント・パーティション障害を検出するステップと、
    クライアント・パーティション・リブート動作を実行すべきかどうかを判断するステップと、
    前記クライアント・パーティションをリブートするべきではない場合に、前記1つ以上の入出力エンドポイントから故障クライアント・パーティションに関連する仮想機能リソースを除去し、前記除去された仮想機能リソースをフリー仮想機能リソース・プールに追加するステップと、
    前記クライアント・パーティションをリブートするべきである場合に、前記仮想仲介により、前記故障クライアント・パーティションのリブート後に前記仮想機能リソースを前記故障クライアント・パーティションに再割り当てするステップと、
    により、前記プロセッサに前記入出力仮想化管理動作を実行させる、請求項15に記載のシステム。
  24. 前記命令が、
    前記IMPの障害を検出するステップと、
    前記仮想仲介により、前記IMPのリブートを開始するステップと、
    前記IMPの前記リブートが完了するまで前記IMPに割り当てられた物理機能に関連する仮想機能に関する前記1つ以上のクライアント・パーティションによるファームウェア呼び出しを停止するステップと、
    前記IMPの前記リブートの完了後に前記1つ以上のクライアント・パーティションによるファームウェア呼び出しの停止を中断するステップと、
    により、前記プロセッサに前記入出力仮想化管理動作を実行させる、請求項15に記載のシステム。
  25. そこにコンピュータ可読プログラムが記録されたコンピュータ記録可能媒体を含むコンピュータ・プログラムであって、前記コンピュータ可読プログラムが、データ処理システム内で実行されたときに、前記データ処理システムに、
    前記データ処理システム内で1つ以上のクライアント・パーティションを作成するステップであって、各クライアント・パーティションが前記データ処理システムのリソースの関連部分を有するステップと、
    前記データ処理システムに関連する1つ以上の入出力エンドポイントにより入出力仮想化管理動作を実行するステップであって、前記入出力仮想化管理動作が前記1つ以上の入出力エンドポイントの物理機能または仮想機能のうちの少なくとも1つを構成するように動作するステップと、
    入出力仮想化管理パーティション(IMP)から分離した仮想仲介を使用して、前記1つ以上の入出力エンドポイントのリソースに対する前記入出力仮想化管理動作のアクセスを制御するステップであって、前記仮想仲介が、あるクライアント・パーティションが前記クライアント・パーティションに割り当てられていない前記1つ以上の入出力エンドポイントのリソースにアクセスするのを防止するステップと、
    を実行させる、コンピュータ・プログラム。
JP2008291371A 2007-11-15 2008-11-13 データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム Active JP5305848B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/940357 2007-11-15
US11/940,357 US8141092B2 (en) 2007-11-15 2007-11-15 Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition

Publications (2)

Publication Number Publication Date
JP2009123217A true JP2009123217A (ja) 2009-06-04
JP5305848B2 JP5305848B2 (ja) 2013-10-02

Family

ID=40643336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008291371A Active JP5305848B2 (ja) 2007-11-15 2008-11-13 データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム

Country Status (3)

Country Link
US (1) US8141092B2 (ja)
JP (1) JP5305848B2 (ja)
CN (1) CN101436165B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013514588A (ja) * 2009-12-17 2013-04-25 マイクロソフト コーポレーション 仮想記憶ターゲットオフロード技術
JP2013534664A (ja) * 2010-06-23 2013-09-05 インターナショナル・ビジネス・マシーンズ・コーポレーション アダプタ・イベントに応答して実行されるアクションの通信を容易にするためのコンピュータ・システム、方法、およびコンピュータ・プログラム
JP2015001867A (ja) * 2013-06-17 2015-01-05 富士ゼロックス株式会社 情報処理装置

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8141093B2 (en) * 2007-11-15 2012-03-20 International Business Machines Corporation Management of an IOV adapter through a virtual intermediary in an IOV management partition
US8141094B2 (en) 2007-12-03 2012-03-20 International Business Machines Corporation Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions
JP5119902B2 (ja) * 2007-12-19 2013-01-16 富士通セミコンダクター株式会社 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム
US8359415B2 (en) * 2008-05-05 2013-01-22 International Business Machines Corporation Multi-root I/O virtualization using separate management facilities of multiple logical partitions
US8990468B2 (en) * 2008-05-28 2015-03-24 Nec Corporation I/O connection system, method and program
US8117346B2 (en) * 2008-10-03 2012-02-14 Microsoft Corporation Configuration space virtualization
US7913024B2 (en) * 2008-12-09 2011-03-22 International Business Machines Corporation Differentiating traffic types in a multi-root PCI express environment
US8144582B2 (en) * 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment
US8601128B2 (en) * 2009-12-10 2013-12-03 Hewlett-Packard Development Company, L.P. Managing hardware resources for soft partitioning
US8595362B2 (en) * 2009-12-10 2013-11-26 Hewlett-Packard Development Company, L.P. Managing hardware resources for soft partitioning
US8239655B2 (en) * 2010-01-18 2012-08-07 Vmware, Inc. Virtual target addressing during direct data access via VF of IO storage adapter
US8473947B2 (en) * 2010-01-18 2013-06-25 Vmware, Inc. Method for configuring a physical adapter with virtual function (VF) and physical function (PF) for controlling address translation between virtual disks and physical storage regions
US8719817B2 (en) * 2010-03-25 2014-05-06 Vmware, Inc. Virtualization intermediary/virtual machine guest operating system collaborative SCSI path management
US8327055B2 (en) 2010-04-12 2012-12-04 International Business Machines Corporation Translating a requester identifier to a chip identifier
US8606984B2 (en) 2010-04-12 2013-12-10 International Busines Machines Corporation Hierarchical to physical bus translation
US8316169B2 (en) 2010-04-12 2012-11-20 International Business Machines Corporation Physical to hierarchical bus translation
US8364879B2 (en) 2010-04-12 2013-01-29 International Business Machines Corporation Hierarchical to physical memory mapped input/output translation
US8429323B2 (en) 2010-05-05 2013-04-23 International Business Machines Corporation Memory mapped input/output bus address range translation
US8650349B2 (en) 2010-05-26 2014-02-11 International Business Machines Corporation Memory mapped input/output bus address range translation for virtual bridges
US8949499B2 (en) 2010-06-24 2015-02-03 International Business Machines Corporation Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch
US8271710B2 (en) 2010-06-24 2012-09-18 International Business Machines Corporation Moving ownership of a device between compute elements
US9697086B2 (en) 2010-06-30 2017-07-04 EMC IP Holding Company LLC Data access during data recovery
US9367561B1 (en) 2010-06-30 2016-06-14 Emc Corporation Prioritized backup segmenting
US9235585B1 (en) 2010-06-30 2016-01-12 Emc Corporation Dynamic prioritized recovery
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
US8561064B2 (en) 2010-10-26 2013-10-15 International Business Machines Corporation Retaining ownership of a virtual function while an adapter is replaced
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
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
US8561066B2 (en) * 2010-12-08 2013-10-15 International Business Machines Corporation Simplified DMA mappings for self-virtualizing input/output device virtual functions
US8726276B2 (en) * 2011-01-26 2014-05-13 International Business Machines Corporation Resetting a virtual function that is hosted by an input/output adapter
US9116725B1 (en) * 2011-03-15 2015-08-25 Symantec Corporation Systems and methods for using virtualization of operating-system-level components to facilitate software testing
JP5585844B2 (ja) * 2011-03-25 2014-09-10 株式会社日立製作所 仮想計算機の制御方法及び計算機
US9218195B2 (en) 2011-05-17 2015-12-22 International Business Machines Corporation Vendor-independent resource configuration interface for self-virtualizing input/output device
US8893267B1 (en) * 2011-08-17 2014-11-18 Applied Micro Circuits Corporation System and method for partitioning resources in a system-on-chip (SoC)
EP2829024B1 (en) * 2012-03-19 2020-07-08 Intel Corporation Techniques for packet management in an input/output virtualization system
CN103210379B (zh) * 2012-08-17 2016-05-25 华为技术有限公司 服务器系统、管理方法及设备
US8856788B2 (en) * 2012-09-05 2014-10-07 Red Hat Israel, Ltd. Activity based device removal management
US9047208B1 (en) * 2012-12-10 2015-06-02 Qlogic, Corporation Method and system of configuring virtual function in peripheral devices
US9298658B2 (en) * 2013-02-26 2016-03-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Using PCI-E extended configuration space to send IOCTLS to a PCI-E adapter
US9015353B2 (en) * 2013-03-14 2015-04-21 DSSD, Inc. Method and system for hybrid direct input/output (I/O) with a storage device
US9218310B2 (en) * 2013-03-15 2015-12-22 Google Inc. Shared input/output (I/O) unit
US9304849B2 (en) * 2013-06-12 2016-04-05 International Business Machines Corporation Implementing enhanced error handling of a shared adapter in a virtualized system
US9323620B2 (en) 2013-06-12 2016-04-26 International Business Machines Corporation Implementing shared adapter configuration updates concurrent with maintenance actions in a virtualized system
US9111046B2 (en) 2013-06-12 2015-08-18 International Business Machines Corporation Implementing capacity and user-based resource allocation for a shared adapter in a virtualized system
US9720775B2 (en) 2013-06-12 2017-08-01 International Business Machines Corporation Implementing concurrent adapter firmware update for an SRIOV adapter in a virtualized system
US9317317B2 (en) 2013-06-12 2016-04-19 International Business Machines Corporation Implementing concurrent device driver maintenance and recovery for an SRIOV adapter in a virtualized system
US9400704B2 (en) * 2013-06-12 2016-07-26 Globalfoundries Inc. Implementing distributed debug data collection and analysis for a shared adapter in a virtualized system
WO2014201623A1 (zh) * 2013-06-18 2014-12-24 华为技术有限公司 用于数据传输的方法、装置和系统以及物理网卡
US9043501B2 (en) 2013-07-25 2015-05-26 International Business Machines Corporation Input/output monitoring mechanism
US11018988B2 (en) * 2013-08-26 2021-05-25 Vmware, Inc. Translating high level requirements policies to distributed configurations
US9454394B2 (en) 2013-11-22 2016-09-27 Red Hat Israel, Ltd. Hypervisor dynamically assigned input/output resources for virtual devices
US20150149995A1 (en) * 2013-11-22 2015-05-28 International Business Machines Corporation Implementing dynamic virtualization of an sriov capable sas adapter
CN103853676B (zh) * 2014-03-28 2016-08-17 苏州科达科技股份有限公司 基于PCIe总线的信道分配、释放、数据传输方法和系统
US10089129B2 (en) * 2014-06-30 2018-10-02 International Business Machines Corporation Supporting flexible deployment and migration of virtual servers via unique function identifiers
EP3159802B1 (en) * 2014-07-15 2018-05-23 Huawei Technologies Co. Ltd. Sharing method and device for pcie i/o device and interconnection system
US9569242B2 (en) * 2014-07-16 2017-02-14 International Business Machines Corporation Implementing dynamic adjustment of I/O bandwidth for virtual machines using a single root I/O virtualization (SRIOV) adapter
US9747240B2 (en) * 2014-10-24 2017-08-29 Cisco Technology, Inc. Dynamic connection of PCIe devices and functions to an array of hosts
CN104506389A (zh) * 2015-01-29 2015-04-08 浪潮电子信息产业股份有限公司 一种高密度服务器整机稳定性测试方法
KR102398213B1 (ko) 2015-03-09 2022-05-17 삼성전자주식회사 저장 장치, 그것을 포함하는 호스트 시스템, 및 그것의 맵 테이블 업데이트 방법
US9858102B2 (en) * 2015-05-21 2018-01-02 Dell Products, L.P. Data path failover method for SR-IOV capable ethernet controller
US10067900B2 (en) 2015-08-25 2018-09-04 Oracle International Corporation Virtualized I/O device sharing within a distributed processing node system
US9535740B1 (en) * 2015-08-26 2017-01-03 International Business Machines Corporation Implementing dynamic adjustment of resources allocated to SRIOV remote direct memory access adapter (RDMA) virtual functions based on usage patterns
US10042720B2 (en) 2016-02-22 2018-08-07 International Business Machines Corporation Live partition mobility with I/O migration
US10002018B2 (en) 2016-02-23 2018-06-19 International Business Machines Corporation Migrating single root I/O virtualization adapter configurations in a computing system
US10042723B2 (en) 2016-02-23 2018-08-07 International Business Machines Corporation Failover of a virtual function exposed by an SR-IOV adapter
US10025584B2 (en) 2016-02-29 2018-07-17 International Business Machines Corporation Firmware management of SR-IOV adapters
CN107515775B (zh) * 2016-06-15 2021-11-19 华为技术有限公司 一种数据传输方法及装置
US10127068B2 (en) * 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
US9715469B1 (en) 2016-10-21 2017-07-25 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9720863B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9720862B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9785451B1 (en) 2016-10-21 2017-10-10 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
CN106502941A (zh) * 2016-11-25 2017-03-15 北京兆芯电子科技有限公司 输入输出扩展器、计算机系统以及其配置方法
US9785519B1 (en) * 2017-02-16 2017-10-10 Red Hat Israel, Ltd. Driver switch for device error recovery for assigned devices
US10853299B2 (en) * 2017-09-15 2020-12-01 Dell Products L.P. Hot-plugged PCIe device configuration system
US11068203B2 (en) * 2018-08-01 2021-07-20 Micron Technology, Inc. NVMe direct virtualization with configurable storage
CN110688237B (zh) * 2019-06-25 2024-02-09 华为技术有限公司 转发报文的方法、中间设备和计算机设备
CN116185554A (zh) * 2021-11-29 2023-05-30 华为技术有限公司 一种配置装置、调度装置及配置方法和调度方法
US20230205287A1 (en) * 2021-12-28 2023-06-29 Ati Technologies Ulc Processing unit reset by a virtual function

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004342109A (ja) * 2003-05-15 2004-12-02 Internatl Business Mach Corp <Ibm> 入出力ファブリックにおけるハードウェア・エラーからの自動回復
JP2006523339A (ja) * 2003-03-13 2006-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーション ロジカル・パーティション・コンピュータ・システム内のリソース転送を制御するための装置および方法
JP2007510198A (ja) * 2003-10-08 2007-04-19 ユニシス コーポレーション ホストシステムのパーティション内に実装されているハイパーバイザを使用したコンピュータシステムの準仮想化
US20070255865A1 (en) * 2006-04-28 2007-11-01 Gaither Blaine D System for controlling I/O devices in a multi-partition computer system

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247080B1 (en) * 1997-05-13 2001-06-12 Micron Electronics, Inc. Method for the hot add of devices
US5941972A (en) 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US20030005068A1 (en) * 2000-12-28 2003-01-02 Nickel Ronald H. System and method for creating a virtual supercomputer using computers working collaboratively in parallel and uses for the same
US6842857B2 (en) * 2001-04-12 2005-01-11 International Business Machines Corporation Method and apparatus to concurrently boot multiple processors in a non-uniform-memory-access machine
US6880002B2 (en) * 2001-09-05 2005-04-12 Surgient, Inc. Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources
US7565398B2 (en) * 2002-06-27 2009-07-21 International Business Machines Corporation Procedure for dynamic reconfiguration of resources of logical partitions
US7836211B2 (en) * 2003-01-21 2010-11-16 Emulex Design And Manufacturing Corporation Shared input/output load-store architecture
US20040158834A1 (en) * 2003-02-06 2004-08-12 International Business Machines Corporation Apparatus and method for dynamically allocating resources of a dead logical partition
US7073002B2 (en) 2003-03-13 2006-07-04 International Business Machines Corporation Apparatus and method for controlling resource transfers using locks in a logically partitioned computer system
JP2004349626A (ja) * 2003-05-26 2004-12-09 Toshiba Corp 冷却装置および冷却装置を搭載した電子機器
US8301809B2 (en) 2003-07-02 2012-10-30 Infortrend Technology, Inc. Storage virtualization computer system and external controller thereof
US7237139B2 (en) * 2003-08-07 2007-06-26 International Business Machines Corporation Services heuristics for computer adapter placement in logical partitioning operations
US7502842B2 (en) * 2003-09-25 2009-03-10 International Business Machines Corporation Auto-configuration of an internal VLAN network interface
US7171417B2 (en) * 2003-09-30 2007-01-30 International Business Machines Corporation Method and apparatus for improving performance and scalability of an object manager
US7254652B2 (en) * 2003-09-30 2007-08-07 International Business Machines Corporation Autonomic configuration of port speeds of components connected to an interconnection cable
US7111102B2 (en) 2003-10-06 2006-09-19 Cisco Technology, Inc. Port adapter for high-bandwidth bus
US20070061441A1 (en) * 2003-10-08 2007-03-15 Landis John A Para-virtualized computer system with I/0 server partitions that map physical host hardware for access by guest partitions
US20070067366A1 (en) * 2003-10-08 2007-03-22 Landis John A Scalable partition memory mapping system
US7234037B2 (en) * 2003-11-25 2007-06-19 International Business Machines Corporation Memory mapped Input/Output operations
US7660322B2 (en) 2003-12-11 2010-02-09 International Business Machines Corporation Shared adapter
US7487258B2 (en) 2004-01-30 2009-02-03 International Business Machines Corporation Arbitration in a computing utility system
US8782024B2 (en) * 2004-02-12 2014-07-15 International Business Machines Corporation Managing the sharing of logical resources among separate partitions of a logically partitioned computer system
US7530071B2 (en) * 2004-04-22 2009-05-05 International Business Machines Corporation Facilitating access to input/output resources via an I/O partition shared by multiple consumer partitions
US20050246453A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
US7249208B2 (en) 2004-05-27 2007-07-24 International Business Machines Corporation System and method for extending the cross-memory descriptor to describe another partition's memory
US7240177B2 (en) 2004-05-27 2007-07-03 International Business Machines Corporation System and method for improving performance of dynamic memory removals by reducing file cache size
IL163314A (en) * 2004-08-02 2010-06-16 Lsi Technologies Israel Ltd Booting from a storage area network
JP2006113767A (ja) 2004-10-14 2006-04-27 Sony Corp 情報処理システム、および、情報処理方法、並びに、プログラム
CN1773473A (zh) * 2004-11-10 2006-05-17 张冉 利用软件虚拟技术结合硬件实现电子音乐信号输入设备的方法
US20060123111A1 (en) * 2004-12-02 2006-06-08 Frank Dea Method, system and computer program product for transitioning network traffic between logical partitions in one or more data processing systems
JP4733399B2 (ja) * 2005-01-28 2011-07-27 株式会社日立製作所 計算機システム、計算機、ストレージ装置及び管理端末
US7694047B1 (en) * 2005-02-17 2010-04-06 Qlogic, Corporation Method and system for sharing input/output devices
US20060195663A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Virtualized I/O adapter for a multi-processor data processing system
US7543305B2 (en) * 2005-03-24 2009-06-02 International Business Machines Corporation Selective event registration
US20060236063A1 (en) 2005-03-30 2006-10-19 Neteffect, Inc. RDMA enabled I/O adapter performing efficient memory management
US7415034B2 (en) * 2005-04-04 2008-08-19 Sun Microsystems, Inc. Virtualized partitionable shared network interface
US20060250945A1 (en) * 2005-04-07 2006-11-09 International Business Machines Corporation Method and apparatus for automatically activating standby shared Ethernet adapter in a Virtual I/O server of a logically-partitioned data processing system
US7620741B2 (en) * 2005-04-22 2009-11-17 Sun Microsystems, Inc. Proxy-based device sharing
US8223745B2 (en) 2005-04-22 2012-07-17 Oracle America, Inc. Adding packet routing information without ECRC recalculation
US7949766B2 (en) * 2005-06-22 2011-05-24 Cisco Technology, Inc. Offload stack for network, block and file input and output
US8521912B2 (en) * 2006-01-12 2013-08-27 Broadcom Corporation Method and system for direct device access
US8230153B2 (en) * 2006-01-20 2012-07-24 Broadcom Corporation Method and system for HBA assisted storage virtualization
US20070192518A1 (en) 2006-02-14 2007-08-16 Aarohi Communications, Inc., A California Corporation Apparatus for performing I/O sharing & virtualization
US7613749B2 (en) * 2006-04-12 2009-11-03 International Business Machines Corporation System and method for application fault tolerance and recovery using topologically remotely located computing devices
US7613847B2 (en) * 2006-05-16 2009-11-03 Hewlett-Packard Development Company, L.P. Partially virtualizing an I/O device for use by virtual machines
JP5068056B2 (ja) * 2006-10-11 2012-11-07 株式会社日立製作所 障害回復方法、計算機システム及び管理サーバ
US9098347B2 (en) * 2006-12-21 2015-08-04 Vmware Implementation of virtual machine operations using storage system functionality
US7734859B2 (en) * 2007-04-20 2010-06-08 Nuon, Inc Virtualization of a host computer's native I/O system architecture via the internet and LANs
US8464260B2 (en) * 2007-10-31 2013-06-11 Hewlett-Packard Development Company, L.P. Configuration and association of a supervisory virtual device function to a privileged entity
US7945436B2 (en) * 2007-11-06 2011-05-17 Vmware, Inc. Pass-through and emulation in a virtual machine environment
US8141093B2 (en) 2007-11-15 2012-03-20 International Business Machines Corporation Management of an IOV adapter through a virtual intermediary in an IOV management partition
US8141094B2 (en) 2007-12-03 2012-03-20 International Business Machines Corporation Distribution of resources for I/O virtualized (IOV) adapters and management of the adapters through an IOV management partition via user selection of compatible virtual functions
US8359415B2 (en) 2008-05-05 2013-01-22 International Business Machines Corporation Multi-root I/O virtualization using separate management facilities of multiple logical partitions
US7913024B2 (en) 2008-12-09 2011-03-22 International Business Machines Corporation Differentiating traffic types in a multi-root PCI express environment
US8144582B2 (en) 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006523339A (ja) * 2003-03-13 2006-10-12 インターナショナル・ビジネス・マシーンズ・コーポレーション ロジカル・パーティション・コンピュータ・システム内のリソース転送を制御するための装置および方法
JP2004342109A (ja) * 2003-05-15 2004-12-02 Internatl Business Mach Corp <Ibm> 入出力ファブリックにおけるハードウェア・エラーからの自動回復
JP2007510198A (ja) * 2003-10-08 2007-04-19 ユニシス コーポレーション ホストシステムのパーティション内に実装されているハイパーバイザを使用したコンピュータシステムの準仮想化
US20070255865A1 (en) * 2006-04-28 2007-11-01 Gaither Blaine D System for controlling I/O devices in a multi-partition computer system
JP2007299386A (ja) * 2006-04-28 2007-11-15 Hewlett-Packard Development Co Lp マルチパーティションコンピュータシステムのi/oデバイスを制御するためのシステム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200700241004; 中野 淳: 'IBM System pサーバにおける仮想化' UNIX magazine2007Winter 第22巻第1号, 20070101, pp.46-53, 株式会社アスキー *
JPN6012051919; 中野 淳: 'IBM System pサーバにおける仮想化' UNIX magazine2007Winter 第22巻第1号, 20070101, pp.46-53, 株式会社アスキー *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013514588A (ja) * 2009-12-17 2013-04-25 マイクロソフト コーポレーション 仮想記憶ターゲットオフロード技術
US9389895B2 (en) 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
US10248334B2 (en) 2009-12-17 2019-04-02 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
JP2013534664A (ja) * 2010-06-23 2013-09-05 インターナショナル・ビジネス・マシーンズ・コーポレーション アダプタ・イベントに応答して実行されるアクションの通信を容易にするためのコンピュータ・システム、方法、およびコンピュータ・プログラム
JP2015001867A (ja) * 2013-06-17 2015-01-05 富士ゼロックス株式会社 情報処理装置

Also Published As

Publication number Publication date
US20090133028A1 (en) 2009-05-21
CN101436165B (zh) 2012-06-27
US8141092B2 (en) 2012-03-20
CN101436165A (zh) 2009-05-20
JP5305848B2 (ja) 2013-10-02

Similar Documents

Publication Publication Date Title
JP5305848B2 (ja) データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム
JP5305866B2 (ja) データ処理システム内で入出力(i/o)仮想化を管理するための方法およびコンピュータ・プログラムならびにデータ処理システム
US8141093B2 (en) Management of an IOV adapter through a virtual intermediary in an IOV management partition
US8359415B2 (en) Multi-root I/O virtualization using separate management facilities of multiple logical partitions
US9411654B2 (en) Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation
US9311127B2 (en) Managing configuration and system operations of a shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies
US9135044B2 (en) 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
US10333865B2 (en) Transformation of peripheral component interconnect express compliant virtual devices in a network environment
US8103810B2 (en) Native and non-native I/O virtualization in a single adapter
JP5733628B2 (ja) 仮想計算機を制御する計算機装置及び仮想計算機の制御方法
CN108139924B (zh) 热插拔硬件及软件实施方案
US9626207B2 (en) Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to single function hierarchies
US20130159572A1 (en) Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to multi-function hierarchies
US20130191821A1 (en) Transparent update of adapter firmware for self-virtualizing input/output device
US8527666B2 (en) Accessing a configuration space of a virtual function
US10635499B2 (en) Multifunction option virtualization for single root I/O virtualization
TW200817920A (en) Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters
JP4692912B2 (ja) リソース割り当てシステム、及びリソース割り当て方法
US8813072B1 (en) Inverse virtual machine
US20190213147A1 (en) Storage system and mapping method
US11829772B2 (en) Heterogeneous compute domains with an embedded operating system in an information handling system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110906

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20121029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121211

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: 20130604

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130625

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5305848

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150