SDN・ネットワーク仮想化

SR-IOV(Single Root I/O Virtualization) えすあーるあいおーぶい

仮想化NICPCIe仮想マシンハイパーバイザーパススルー
SR-IOVって何?

簡単に言うとこんな感じ!

1枚のネットワークカードを「分身」させて、複数の仮想マシンに直接つなぐ技術だよ!ソフトウェアを介さずにハードウェアを使えるから、通信がめちゃくちゃ速くなるんだ。特に大量のデータをさばくサーバーで大活躍してるってこと!


SR-IOVとは

SR-IOV(Single Root I/O Virtualization) とは、1つの物理的なPCIeデバイス(主にNIC=ネットワークインターフェースカード)を、複数の仮想的なデバイスとして分割し、複数の仮想マシン(VM)から直接利用できるようにする技術です。PCI-SIG(PCI Special Interest Group) が策定した規格で、ハードウェアレベルでI/O仮想化を実現します。

通常の仮想化環境では、仮想マシンがネットワーク通信をするたびにハイパーバイザー(仮想化ソフトウェア)が間に入って処理を肩代わりします。これはCPUに余計な負荷をかけ、通信の遅延(レイテンシ)を生む原因になります。SR-IOVを使うと、仮想マシンがハードウェアに直接アクセス(パススルー) できるため、ハイパーバイザーの介在によるオーバーヘッドをほぼゼロにできます。

特に金融システムのリアルタイム取引処理、動画配信、クラウド基盤、NFV(Network Functions Virtualization)など、低遅延・高スループットが求められる場面で積極的に採用されています。


SR-IOVの仕組みと構造

SR-IOVは物理デバイスを「PF」と「VF」という2種類の機能に分けて管理します。

機能名正式名称役割
PFPhysical Function(物理ファンクション)NIC全体を管理する親。SR-IOVの設定・制御を担う
VFVirtual Function(仮想ファンクション)PFから切り出された仮想デバイス。各VMに割り当てる
物理サーバー
├── 物理NIC(1枚)
│   ├── PF(Physical Function)× 1 ← ハイパーバイザーが管理
│   └── VF(Virtual Function)× N  ← 各仮想マシンに直接割り当て
│       ├── VF1 → VM1
│       ├── VF2 → VM2
│       ├── VF3 → VM3
│       └── VF4 → VM4

VFの数はNICの機種によって異なりますが、最大256個まで作成できる製品もあります。各VFはPCIeデバイスとしてOSから独立して見えるため、VMはあたかも専用のNICを持っているかのように動作します。

覚え方:「親(PF)が子(VF)を量産する」

PFを「親カード」、VFを「子カード」と考えると分かりやすいです。親が工場長として全体を管理し、子どもたちが実際に各VMへ仕事(通信)を届けるイメージです。

VF数の目安(主要NICベンダー)

ベンダー製品例最大VF数
IntelX710 / E810128〜256
Mellanox(NVIDIA)ConnectX-6256
BroadcomBCM5750464

歴史と背景

  • 2007年 — PCI-SIGがSR-IOV仕様 ver.1.0を策定。x86サーバーの仮想化ブームに合わせてI/Oボトルネック解消を目的に登場
  • 2008年 — Intelがサーバー向けNIC「82576」でSR-IOVを初めて製品実装
  • 2009〜2010年 — VMwareのESXi、Linux KVMがSR-IOVサポートを追加。クラウド基盤への採用が拡大
  • 2012年 — OpenStackがSR-IOV対応のNeutronプラグインを整備。NFV基盤で本格活用が始まる
  • 2016年 — ETSIがNFV標準にSR-IOVを参照技術として明記。通信キャリアの採用が加速
  • 2020年代 — DPU(Data Processing Unit)やSmartNICの普及により、SR-IOVと組み合わせた高度なオフロード構成が一般化

SR-IOVが生まれた背景には、仮想化の普及によるI/Oボトルネック問題があります。CPUやメモリの仮想化技術が成熟する一方、ネットワークI/Oだけがソフトウェア処理に頼ったままで、VMの増加とともにハイパーバイザーのCPU消費が問題視されるようになったのです。


通常の仮想化 vs SR-IOV

通常の仮想化(ソフトウェアスイッチ) SR-IOV(ハードウェアパススルー) VM1 VM2 VM3 仮想スイッチ(ハイパーバイザー) 物理NIC(1枚) ⚠ ソフトウェア処理でCPU負荷・遅延が発生 VM1 VM2 VM3 VF1 VF2 VF3 物理NIC(PF + VF) ✅ ハードウェア直結で低遅延・低CPU負荷 パフォーマンス比較 仮想スイッチ スループット SR-IOV 〜20〜40Gbps (100GbE NIC使用時) 〜90Gbps以上

SR-IOVと混同されやすい技術を整理すると以下の通りです。

技術仕組みメリットデメリット
SR-IOVNICをVFに分割してVM直結低遅延・低CPU負荷ライブマイグレーション制約あり
vSwitch(仮想スイッチ)ソフトウェアでスイッチング柔軟・機能豊富CPU負荷・遅延大きめ
PCIeパススルー物理デバイスを1VMに丸ごと渡す最高パフォーマンス共有不可・1VM専用
DPDKカーネルバイパスでソフト処理高速化SR-IOVと組み合わせ可能専用アプリが必要

ライブマイグレーション(稼働中のVMを別ホストへ移動する機能)はSR-IOVでは制限がかかる場合があります。これはVFが物理ハードウェアに強く紐づいているためです。この制約を緩和するためにVFIO(Virtual Function I/O) や最新のNICが対応を進めています。


関連する規格・RFC

規格・RFC番号内容
PCI-SIG SR-IOV Specification 1.1SR-IOVの基本仕様を定義したPCI-SIG標準規格
IEEE 802.1QVLANタギング規格。SR-IOVのVFにVLANを割り当てる際に使用
RFC 7498NFV(Network Functions Virtualization)のユースケース。SR-IOVが活用される基盤技術として言及

関連用語