PCIe SR-IOV 仮想機能の使用
Oracle VM Server for SPARC 2.2 リリース以降は、SPARC T3 および SPARC T4 プラットフォームで Peripheral Component Interconnect Express (PCIe) シングルルート I/O 仮想化 (SR-IOV) 機能がサポートされます。
SR-IOV の概要
SR-IOV の実装は、PCI-SIG に定義されているバージョン 1.1 の標準に基づきます。SR-IOV 標準は、仮想マシン間での PCIe デバイスの効率的な共有を可能にし、ネイティブのパフォーマンスに匹敵する I/O パフォーマンスを達成するためにハードウェアに実装されます。SR-IOV 仕様は、新しいデバイスを作成し、それにより仮想マシンを I/O デバイスに直接接続できるという、新しい標準を定義しています。
物理機能として知られている 1 つの I/O リソースを、多数の仮想マシンで共有することができます。共有デバイスは専用のリソースを提供し、共有の共通リソースも使用します。このようにして、各仮想マシンが固有のリソースにアクセスすることができます。そのため、ハードウェアと OS が適切にサポートされる SR-IOV 対応の Ethernet ポートなどの PCIe デバイスは、それぞれに独自の PCIe 構成スペースがある、複数の別個の物理デバイスのように見えます。
SR-IOV の詳細は、PCI-SIG web siteを参照してください。
SR-IOV には次の機能の種類があります。
物理機能 – SR-IOV 仕様によって定義されている SR-IOV 機能をサポートする PCI 機能。物理機能には SR-IOV 機能構造が含まれ、SR-IOV 機能を管理します。物理機能は他の PCIe デバイスと同じように検出、管理、および操作が可能な多機能の PCIe 機能です。物理機能を使用して、PCIe デバイスを構成および制御できます。
仮想機能 – 物理機能に関連付けられた PCI 機能。仮想機能は軽量の PCIe 機能であり、1 つ以上の物理リソースを物理機能と共有したり、その物理機能に関連付けられた仮想機能と共有したりします。物理機能とは異なり、仮想機能はそれ自体の動作しか構成できません。
各 SR-IOV デバイスには 1 つの物理機能があり、各物理機能には最大 64,000 の仮想機能を関連付けることができます。この数は、特定の SR-IOV デバイスによって異なります。仮想機能は物理機能によって作成されます。
物理機能で SR-IOV が有効になった後、物理機能のバス、デバイス、および機能数によって、各仮想機能の PCI 構成スペースにアクセスすることができます。それぞれの仮想機能には、そのレジスタセットのマップに使用される PCI メモリー領域があります。仮想機能のデバイスドライバは、その機能を有効にするためにレジスタセットで動作し、仮想機能は実際の PCI デバイスのように見えます。作成した後、仮想機能を I/O ドメインに直接割り当てることができます。この機能により、仮想機能で物理デバイスを共有したり、CPU やハイパーバイザソフトウェアのオーバーヘッドなしで I/O を実行したりできます。
SR-IOV 機能を持つデバイスに関連する利点は次のとおりです。
パフォーマンスの向上と待ち時間の削減 – 仮想マシン環境からハードウェアへの直接アクセス
コストの削減 – 次のような資産および運用上の支出の節約。
節電
アダプタ数の削減
配線の削減
スイッチポートの削減
SR-IOV 機能の現在の制限事項
注 - リブートを最小限に抑えるには、同じ遅延再構成の中で複数の操作を実行します。
今回のリリースでは、SR-IOV 機能に次の制限事項があります。
1 つ以上の仮想機能が割り当てられているドメインでは、移行は無効です。
仮想機能を作成したり破棄したりすると、遅延再構成が開始されます。
アクティブなドメインに仮想機能を割り当てることはできません。仮想機能を primary ドメインに割り当てると、遅延再構成が開始されます。
破棄できるのは、物理機能用に最後に作成された仮想機能のみです。そのため、3 つの仮想機能を作成した場合、最初に破棄できる仮想機能は 3 番目の仮想機能です。
Ethernet SR-IOV カードのみがサポートされます。
SR-IOV 機能は、primary ドメインに取り付けられた SR-IOV カードに対してのみ有効です。PCIe バスの割り当てまたは直接 I/O (DIO) 機能を使用して、ドメインに SR-IOV カードを割り当てた場合、そのカードに対して SR-IOV 機能は有効になりません。
pvid または vid プロパティーのいずれかを設定することで、仮想機能の VLAN 構成を有効にすることができます。これらの仮想機能プロパティーの両方を同時に設定することはできません。
Single Root I/O Virtualizationの略であり,PCIデバイス側で仮想化をサポートする規格です。PCIバス規格を管理している「PCI-SIG」(PCI Special Interest Group)により2007年10月に策定されました。
従来,複数の仮想マシンから送られてきた1つのPCIデバイスへのI/O要求は,ハイパーバイザが調停して要求を一本化し,デバイスから返ってきた結果を仮想マシンに振り分けるソフト処理が必要でした。
しかし,SR-IOVに対応したデバイスがあれば,この処理をPCIデバイス側で行います(図1)。ハードウエアによる処理であるため,パフォーマンスの大幅な向上が期待できます。
米Intel社の「82576ギガビット・イーサーネット・コントローラ」などの電子部品がこの規格に対応しています。2009年9月に開催された開発者向けフォーラム「Intel Developer Forum」では,米LSI社が同社のRAIDコントローラ「MegaRAID」製品でSR-IOVのデモを実施しています。