情報畑でつかまえてロゴ
本サイトは NTTテクノクロスが旬の IT をキーワードに
IT 部門が今知っておきたい最新テクノロジーに関する情報をお届けするサイトです

SR-IOVとDPDK ~高速化技術とクラウド 第10回~

今回は仮想化環境のおけるボトルネック解消方法についてSR-IOVやDPDKを交えながら解説します。

はじめに

こんにちは、NTTテクノクロスの山下です。仮想化技術は、データセンターやクラウド環境においてリソースの効率的な利用を可能にし、コスト削減や柔軟性の向上を実現しています。しかし、仮想化環境ではネットワークパフォーマンスがボトルネックとなることが多く、特に高スループットや低レイテンシが求められるアプリケーションにおいては課題となります。そこで登場するのが、SR-IOV(Single Root I/O Virtualization)とDPDK(Data Plane Development Kit)です。本記事では、SR-IOVとDPDKの基本概念、利点、実装方法、および両者の比較について詳しく解説します。

仮想化構成におけるボトルネック

現代において、仮想化構成で動作しているサーバは多く存在しますが、仮想化におけるネットワークボトルネックについて解説します。

仮想化構成におけるネットワークボトルネックとは、仮想化環境においてネットワークの性能が制約される現象のことです。仮想化では、複数の仮想マシンがホスト上で共有されるため、ネットワークトラフィックが増加し、ネットワークリソースの競合が発生することがあります。これにより、ネットワークの帯域幅や遅延が制限され、パフォーマンスの低下や応答時間の遅延が生じる可能性があります。

ボトルネックの解消方法

先に述べたボトルネックの解消方法としては、主に2種類が候補として挙げられます。

方法1)仮想スイッチをDPDKを用いて高速化する

方法2)SR-IOVで、ハイパーバイザーのネットワーク処理をバイパスして高速化する

ボトルネック解消方法その1(仮想スイッチをDPDKを用いて高速化する)

先に述べたボトルネックへの対応方法のうち一つは、仮想スイッチをDPDKで高速化してしまうものです。ここでは、仮想スイッチとしては例えばOvS(Open vSwitch)を想定しています。

仮想スイッチのDPDKを用いた高速化により、パケット処理の高速化や低レイテンシ化が可能となります。これにより、仮想マシン間のネットワークトラフィックの処理性能を向上させ、ネットワークボトルネックを軽減することができます。

DPDKとは?

ここで改めてDPDKについて簡単に解説します。DPDKは、ユーザースペースで高速なパケット処理を実現するためのライブラリとドライバのセットです。DPDKは、ネットワークパケットの処理をカーネルスペースからユーザースペースに移行することで、パフォーマンスを大幅に向上させます。

DPDKの利点として、以下2つがあげられます。

  1. 高パフォーマンス:

    • DPDKは、ユーザースペースで直接パケットを処理するため、カーネルのオーバーヘッドを削減し、高スループットを実現します。
    • その結果として、パケット処理のレイテンシを最小限に抑えます。
  2. 柔軟性:

    • DPDKは、さまざまなネットワークアダプタやプロトコルに対応しており、カスタマイズが容易です。



ボトルネック解消方法その2(SR-IOV)

以下に、ボトルネック解消の別の方法を示します。

この方法では、SR-IOVという技術を利用します。(SR-IOVについては後述します)

VMが直接ホストマシン上のNICにアクセスします。

SR-IOVとは?

SR-IOVは、PCI-SIG(Peripheral Component Interconnect Special Interest Group)によって策定された規格で、1つの物理ネットワークインターフェースカード(NIC)を複数の仮想インターフェースに分割し、それぞれを仮想マシン(VM)に直接割り当てることを可能にします。これにより、仮想化環境におけるネットワークパフォーマンスが大幅に向上します。

SR-IOVの基本構造

SR-IOVは、以下の2つの主要なコンポーネントで構成されています:

  1. Physical Function (PF):

    • 物理NICの主要な機能を提供し、管理操作を行います。
    • ホストOSがPFを管理し、仮想機能(VF)の作成や設定を行います。
  2. Virtual Function (VF):

    • PFから派生した軽量な仮想インターフェース。
    • 各VFは、仮想マシンに直接割り当てられ、ネットワークトラフィックを処理します。

SR-IOVの利点

SR-IOVの利点として、以下3つがあげられます。

  1. 高パフォーマンス:

    • SR-IOVを使用することで、仮想マシンは物理NICのハードウェアリソースに直接アクセスできるため、ネットワークパフォーマンスが向上します。
    • その結果、レイテンシが低減し、スループットが向上します。
  2. リソースの効率的な利用:

    • 1つの物理NICを複数の仮想マシンで共有できるため、リソースの効率的な利用が可能です。
  3. セキュリティの向上:

    • 各仮想マシンが独立したVFを使用するため、ネットワークトラフィックの分離が強化され、セキュリティが向上します。

方法1と方法2の比較

以下は、仮想スイッチ+DPDKとSR-IOVの比較を表形式で示したものです。

特徴 方法1(仮想スイッチ+DPDK) 方法2(SR-IOV)
技術 仮想スイッチとデータプレーンの高速化 物理デバイスの直接割り当て
パフォーマンス データプレーンの高速化による高性能 物理デバイスへの直接アクセスで高性能
ネットワーク機能 仮想スイッチの機能を利用可能 物理デバイスの機能をそのまま利用
ホストリソース 仮想スイッチとデータプレーンのため、ホストリソースの使用量が増加する 物理デバイスを仮想マシンに直接割り当てるため、ホストリソースの使用量が少ない
ネットワーク管理 仮想スイッチの管理が可能 物理デバイスの管理が必要
フレキシビリティ 仮想スイッチの柔軟性により、ネットワークの設定変更が容易 物理デバイスの制約により柔軟性が制限される場合がある
専用機器の必要性 DPDK対応NIC SR-IOV対応NIC

この表は、仮想スイッチ+DPDKとSR-IOVの一般的な特徴を示していますが、個々の環境や要件によって異なる場合があります。

SR-IOVとDPDKの組み合わせ

SR-IOVとDPDKは組み合わせ利用することが可能なのでしょうか?結論からいえば、可能です。
SR-IOVとDPDKの組み合わせは、仮想化環境におけるネットワークパフォーマンスの向上に効果的です。

SR-IOVとDPDKは高速化する対象が異なります。SR-IOVはホストマシンの物理NICとVM間を高速化し、VM内はDPDKで高速化します。よって組み合わせて使用する事も可能です。

おわりに

SR-IOVとDPDKは、仮想化環境におけるネットワークパフォーマンスの向上に効果的な技術です。SR-IOVは物理デバイスを仮想マシンに直接割り当てることで高性能なネットワークアクセスを実現し、DPDKはカーネルバイパスにより処理性能を向上させます。両者を組み合わせることで、仮想マシンが物理デバイスに直接アクセスしながら高速なパケット処理を行うことができます。これにより、ネットワークボトルネックを軽減し、高性能なネットワークパフォーマンスを実現することができます。

本件に関するお問い合わせ

NTTテクノクロス
フューチャーネットワーク事業部

山下英之

お問い合わせ

連載シリーズ
テクノロジーコラム
著者プロフィール
山下 英之
山下 英之

[著者プロフィール]
フューチャーネットワーク事業部 第二ビジネスユニット
山下 英之(YAMASHITA HIDEYUKI)