Azure Linux 仮想マシン (VM) 用 Data Plane Development Kit (DPDK) の一般提供をすべての Azure リージョンで開始しました。この機能は、VM のカーネル ネットワーク スタックをバイパスするハイ パフォーマンス アプリケーション向けの、ユーザー領域のパケットを高速で処理するフレームワークです。
DPDK は、仮想ルーター、ファイアウォール、VPN、ロード バランサー、Evolved Packet Core (EPC)、サービス拒否 (DoS) アプリケーションなどをネットワーク仮想アプライアンスの形で実装するネットワーク機能の仮想化を進めるうえで、パフォーマンス向上に大きく貢献します。DPDK は、Azure で実行されている複数の Linux OS VM (Ubuntu、RHEL、CentOS、SLES) で使用可能で、秒間パケット処理数 (PPS) を増加させることができます。
Azure ギャラリーでは、以下のディストリビューションでサポートされています。
Linux OS |
カーネルのバージョン |
Ubuntu 16.04 |
4.15.0-1015-azure |
Ubuntu 18.04 |
4.15.0-1015-azure |
SLES 15 |
4.12.14-5.5-azure |
RHEL 7.5 |
3.10.0-862.9.1.el7 |
CentOS 7.5 |
3.10.0-862.3.3.el7 |
Azure Linux VM で DPDK を使用しない場合、パケットはカーネルのネットワーク スタックを経由して処理され、割り込み駆動型になります。ネットワーク アダプターが外からのパケットを受信するたびに、パケットとカーネル領域からユーザー領域へのコンテキスト スイッチを処理するためにカーネルが割り込みます。
Azure Linux VM で DPDK を使用すると、コンテキスト スイッチと割り込み駆動型メソッドが不要になり、ポール モード ドライバーを使用して高速でパケットを処理できるユーザー領域を実装できます。カーネルをバイパスしてユーザー領域でパケットを制御することで、サイクル数を減少させ、Azure Linux VM の秒間パケット処理数を増加させることができます。
Azure Accelerated Networking で Azure Linux VM の DPDK を有効化すると、FPGA に対応した高性能 NIC を使用できます。
まずは Microsoft Azure の Linux VM で DPDK を設定してみてください。