SR-IOVとは?PF・VFの仕組みからPCIパススルーとの違い・採用判断まで実装者向けに解説【2026年版】
SR-IOV(Single Root I/O Virtualization)は、1枚の物理的なPCI Expressデバイスを、あたかも複数の独立したデバイスであるかのように見せ、それぞれを個別の仮想マシンへ直接割り当てるための仮想化技術です。PCI-SIGが定めた業界標準で、対応したネットワークカードなどが持つ機能を指します。最大の狙いは性能で、ゲストがハードウェアへ直接アクセスできるため、ハイパーバイザーの介在によるオーバーヘッドをほぼ取り除けるのが特徴です。この記事では、SR-IOVを構成するPF(物理機能)とVF(仮想機能)の役割、なぜ高いスループットと低遅延を実現できるのか、ソフトウェアの仮想スイッチやPCIパススルーとどう違うのか、隔離を支えるIOMMU、有効化の前提条件、そしてライブマイグレーションの制約を含めた採用判断までを、実際に仮想化基盤を設計する解像度で整理します。
目次
まとめ:SR-IOVは1枚のNICを複数の仮想デバイスに分割しゲストへ直接渡す技術
SR-IOVは、SR-IOV対応のPCIeデバイス(多くはネットワークカード)が自分自身を1つの管理用機能(PF)と複数の軽量な機能(VF)に分割し、各VFを仮想マシンへそのまま割り当てる仕組みです。VFを受け取ったゲストは、途中のソフトウェア仮想スイッチを経由せずに物理デバイスとデータをやり取りするため、CPU負荷が下がり、物理環境に近いスループットと低遅延を得られます。通信の生存性を保つためのメモリ隔離は、CPU側のIOMMU(Intel VT-dやAMD-Vi)が担います。
その代わり、VFが特定の物理カードに紐づくため、稼働中のゲストを別ホストへ移すライブマイグレーションが難しくなり、対応ハードウェア・ファームウェア・ゲストドライバという前提もそろえる必要があります。したがってSR-IOVは万能の既定設定ではなく、NFVや高頻度取引、大容量データ転送のように「仮想スイッチのオーバーヘッドが要件に響く」ワークロードで選ぶ、目的特化の技術だと捉えると設計を誤りません。可搬性より生の性能を優先する場面で効き、汎用の可搬性を重視する構成では従来のソフトウェア仮想ネットワークのほうが扱いやすくなります。
SR-IOVの仕組み:PF(物理機能)とVF(仮想機能)で1枚のデバイスを分割する
SR-IOVを理解する入口は、1枚のカードが提供する2種類のPCIe機能、PFとVFの役割分担です。この2つがどう連携するかが、そのまま性能と隔離の設計につながります。
PFは全体の管理と設定を担い、VFはI/Oだけを担う軽量な機能
PF(Physical Function)は、SR-IOVの機能一式を備えた完全なPCIeデバイスです。ホスト側のハイパーバイザーが通常のデバイスとして認識し、VFをいくつ生成するかといった設定や、デバイス全体の管理をここで行います。一方のVF(Virtual Function)は、データの送受信というI/Oだけに機能を絞った軽量なPCIe機能で、PFから派生して作られる存在です。VF自身は設定や管理の権限を持たず、割り当てられた仮想マシンのためにデータを流すことに専念します。つまりPFが「親として全体を統括する窓口」、VFが「子として実データを運ぶ実働部隊」という分業です。管理系の操作をPFに集約し、性能が要るデータ経路をVFへ切り出すこの構造が、SR-IOVの土台になります。
ハイパーバイザーの仮想スイッチを迂回してゲストが直接I/Oする経路
従来の仮想化では、ゲストの通信はいったんホスト上のソフトウェア仮想スイッチを通り、ハイパーバイザーがパケットを仕分けしてから物理NICへ渡します。この中継は便利さと引き換えにCPUを消費し、遅延の原因になるのが弱点です。SR-IOVでは、ゲストに割り当てたVFが物理カードと直結するため、この中継を迂回してデータがやり取りされます。仮想スイッチの処理を挟まないので、ホストCPUを使わずに高いスループットを出せるわけです。ハイパーバイザーが担っていた仕分けの役割は、SR-IOV対応カードに内蔵された分類・振り分けの機能が肩代わりします。ハイパーバイザー自体の位置づけを整理したい場合はハイパーバイザーの解説を、割り当て先となるゲストの基礎は仮想マシンの解説を合わせて押さえると全体像がつかめます。
SR-IOVと従来の仮想NIC・PCIパススルーの違いを性能と可搬性で比較
SR-IOVの位置づけは、両隣にある2つの方式と並べると輪郭がはっきりします。一方はソフトウェアで柔軟に仮想化する方式、もう一方はデバイスを丸ごと1台のゲストへ渡す方式です。
ソフトウェア仮想スイッチ・PCIパススルーとSR-IOVの三者比較
| 観点 | ソフトウェア仮想スイッチ(virtio等) | SR-IOV(VF割り当て) | PCIパススルー(デバイス丸ごと) |
|---|---|---|---|
| 性能・遅延 | 中継分のCPU負荷と遅延 | 物理に近い高速・低遅延 | 物理そのもの |
| 1枚あたりの共有 | 多数のゲストで共有 | 複数ゲストでVF分割 | 1ゲストが専有 |
| 可搬性・移行 | ライブマイグレーション容易 | 移行が難しい | 移行が難しい |
| 柔軟な制御 | ホスト側で自在に制御 | 制御機能は限定的 | ホストから切り離される |
ソフトウェア仮想スイッチは、ホスト側でトラフィックを自在に制御でき、稼働中の移行もしやすい反面、中継のCPU負荷と遅延がついて回ります。PCIパススルーは1台のカードを丸ごと1つのゲストへ渡すため性能は最高ですが、1枚を1ゲストが専有してしまい台数効率が悪くなります。SR-IOVはその中間で、パススルー並みの直結性能を保ちながら、1枚のカードを複数のゲストで分け合える点が持ち味です。性能と共有効率を両立させたい場面で、ちょうど間を埋める選択肢になります。
IOMMU(VT-d/AMD-Vi)がVF間とホストのメモリ隔離を担保する
ゲストがハードウェアへ直接アクセスできるということは、裏を返せば、あるゲストのVFが他のゲストやホストのメモリ領域へ勝手に書き込めては困る、という隔離の課題を伴います。この隔離を担うのがCPU側のIOMMU(Intel VT-d、AMD-Vi)です。IOMMUは、デバイスがDMA(メモリへの直接アクセス)で使うアドレスを変換・制限し、各VFが割り当てられたゲストのメモリ範囲だけに触れるよう仕切る役目です。この仕組みがあるからこそ、直接I/Oの速さと、仮想マシン同士を隔てる安全性を同時に成り立たせられます。SR-IOVを有効にするにはBIOS/UEFIでIOMMUを併せて有効化する必要があり、これが前提条件として効いてくる理由もここにあります。
SR-IOVを有効化する前提条件とVFをゲストへ割り当てる流れ
SR-IOVはソフトウェアだけで後付けできる機能ではなく、ハードウェアから順に前提を満たして初めて動きます。実装時に確認すべき条件と、割り当てまでの筋道を押さえます。
ハードウェア・ファームウェア・ドライバの3層でそろえる前提条件
SR-IOVを使うには、3つの層で対応がそろっている必要があります。第一に、SR-IOVに対応したPCIeデバイス(対応NICなど)とマザーボードという物理側の条件。第二に、BIOS/UEFIでSR-IOVとIOMMU(VT-d/AMD-Vi)を有効化するファームウェア側の設定。第三に、ホストとゲストの双方にVFを扱えるドライバが入っていること、です。どれか1つでも欠けると、VFが生成されなかったり、ゲストがVFを認識できなかったりして機能しません。とくにゲスト側は、VF専用のドライバを持つOSでないと割り当てても通信できないため、載せる仮想マシンのOS対応状況を先に確認しておくと手戻りを避けられます。物理サーバー・仮想化基盤・ゲストという層構造そのものは、仮想化技術の解説で全体像を整理しています。
VFの数の上限を踏まえVFをゲストへアタッチするまでの基本手順
前提がそろえば、割り当ての流れ自体は段階的です。実務では次の順序で進めます。
- BIOS/UEFIでSR-IOVとIOMMUを有効化し、ホストを起動する
- PFのドライバに対し、生成するVFの数を指定してVFを作り出す
- 作られたVFを、割り当て先の仮想マシンへPCIデバイスとしてアタッチする
- ゲスト内でVFドライバを読み込ませ、ネットワークインターフェースとして認識させる
VFの数はカードごとに上限があり、無制限には増やせません。1枚を何ゲストで分け合うかは、この上限とワークロードの帯域要件から逆算して決めます。VF単位でVLANやMACアドレスを割り当てて論理的に分離する運用もあり、ネットワーク側の分割設計はVLANの解説と地続きで考えると整理しやすくなります。
SR-IOVを採用すべき場面と見送るべき場面を分ける実装判断の基準
ここまでを踏まえ、どんなワークロードでSR-IOVを選ぶべきかを言い切ります。原則は「生の性能が要件に直結する場面で使い、汎用の可搬性が要るなら避ける」です。
採用が効く条件:NFV・低遅延・大容量トラフィックのワークロード
SR-IOVが力を発揮するのは、仮想スイッチのオーバーヘッドがそのまま要件に響く領域です。具体的には、通信機能を仮想化するNFV(ネットワーク機能仮想化)、金融取引やリアルタイム処理のように遅延を極力削りたいシステム、そして大容量のパケットを高いスループットで捌く必要があるワークロードが典型です。これらでは、ホストCPUを中継に取られずにゲストが直接I/Oできる利点が、性能指標に直接効きます。逆に言えば、こうした厳しい性能要件がないのにSR-IOVを持ち込んでも、次に述べる可搬性の制約という代償だけを払うことになります。
見送るべき場面と、高性能基盤の設計を外部に相談するという選択肢
SR-IOVを避けたほうがよい場面もはっきりしています。稼働中のゲストを止めずに別ホストへ移すライブマイグレーションを日常的に使う構成では、VFが物理カードに紐づく性質が障害になります。移行のたびにVFを切り離す・付け直すといった追加の段取りが要り、無停止移行を前提にした運用とは相性が良くありません。また、ホスト側で通信を細かく制御・監視したい構成でも、経路がハイパーバイザーを迂回する分、従来の仮想スイッチほど自在には制御できません。可搬性や制御性を優先するなら、素直にソフトウェアの仮想ネットワークを選ぶほうが運用は軽くなります。判断が難しいのは、性能要件と可搬性要件が両方そこそこ高い中間のケースです。自社にハードウェア寄りの仮想化基盤を設計した経験が薄い場合は、AWS/GCP/Azureのインフラ構築支援のように、要求する性能特性と運用要件からSR-IOVの要否や代替構成を棚卸しするところから入ると、対応ハードウェアへの投資や移行制約の見落としを避けられます。まず何を指標に性能を測り、可搬性とどう釣り合わせるかを外部の視点で詰めるだけでも、設計の遠回りを減らせます。
SR-IOVの導入を検討する現場から実際に寄せられるよくある質問
SR-IOVの採否を検討する際に、実務でよく挙がる疑問に答えます。
SR-IOVとは何ですか?
SR-IOV(Single Root I/O Virtualization)は、1枚のSR-IOV対応PCIeデバイスを複数の仮想デバイスに分割し、それぞれを仮想マシンへ直接割り当てるPCI-SIG標準の仮想化技術です。ゲストがハイパーバイザーの仮想スイッチを迂回してハードウェアへ直接アクセスできるため、CPU負荷を抑えつつ物理環境に近いスループットと低遅延を得られます。おもにネットワークカードで用いられます。
PFとVFの違いは何ですか?
PF(物理機能)はSR-IOVの機能一式を備えた完全なPCIeデバイスで、VFの生成やデバイス全体の管理・設定を担います。VF(仮想機能)はデータのI/Oだけに機能を絞った軽量な機能で、PFから派生して作られ、各仮想マシンへ割り当てられる存在です。管理系はPFに集約し、性能が要るデータ経路をVFへ切り出す分業構造だと捉えると分かりやすくなります。
SR-IOVとPCIパススルーはどう違いますか?
PCIパススルーは1枚のデバイスを丸ごと1台のゲストへ専有させる方式で、性能は最高ですが1枚を1ゲストしか使えません。SR-IOVは1枚のカードを複数のVFに分割し、複数のゲストで分け合いながらパススルーに近い直結性能を保ちます。台数効率と高性能を両立させたい場面ではSR-IOV、単一ゲストで最大性能が要るならパススルー、という使い分けになります。
SR-IOVを使うと何が速くなりますか?
ゲストの通信がホスト上のソフトウェア仮想スイッチを経由しなくなるため、その中継にかかっていたCPU負荷と遅延が減り、スループットが上がります。とくに大容量トラフィックや低遅延が要件のワークロードで効果が顕著です。隔離はCPU側のIOMMU(VT-d/AMD-Vi)が担保するため、直接I/Oの速さと仮想マシン間の分離を両立できます。
SR-IOVを有効にするには何が必要ですか?
SR-IOV対応のPCIeデバイスとマザーボード、BIOS/UEFIでのSR-IOVとIOMMUの有効化、そしてホストとゲスト双方のVF対応ドライバの3層がそろって初めて動きます。どれか1つでも欠けるとVFが生成されない、あるいはゲストが認識できないため、載せるOSのVFドライバ対応も含めて事前に確認しておくと手戻りを防げます。
関連記事
- 仮想化技術とは?種類・仕組みからサーバー仮想化の採用判断まで実装目線で解説:SR-IOVが位置づく仮想化全体の種類と仕組みを俯瞰し、I/O仮想化の立ち位置を整理できます。
- ハイパーバイザーとは?Type1・Type2の違いから仮想化基盤の選定まで実装者向けに解説:SR-IOVが迂回するハイパーバイザーの役割と、仮想化基盤の選定基準を押さえられます。
- 仮想マシンとは?物理マシン・コンテナとの違いから作成・運用まで実装者向けに解説:VFの割り当て先となる仮想マシンの基礎と、物理・コンテナとの違いを確認できます。
- VLANとは?仕組み・ポートVLAN/タグVLAN・IEEE 802.1QからVLAN間ルーティング設計まで実装者向けに解説:VF単位でのVLAN割り当てにつながる、ネットワーク分割設計の考え方を補えます。
- 仮想環境とは?venv・コンテナ・仮想マシンの違いと隔離レベルの選び方を実装者向けに解説:SR-IOVの隔離を含め、仮想化における隔離レベルの違いを横断的に整理できます。