IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

クラウド時代のオープンソース実践活用

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第53回 NFVとIntel DPDK(前編) (中井悦司) 2014年10月

はじめに

 先週、Red Hat Forum 2014/Tokyoで日本のオフィスに来ていたChris Wrightと会話をする機会があり、Intel DPDKについて、いろいろ教えてもらいました。Chrisは、以前は、Linuxカーネルや仮想化(Xen/KVM)の開発に深く関わっていましたが、現在は、「Technical Director of SDN at Red Hat」という肩書で、SDN関係の仕事をしています。OpenDaylightのボードメンバーやOpenStackのNFVサブチームにも参加しています。

 Intel DPDKの話題になったのは、まさにこのNFVの話題からでした。

NFVとは?

 NFV(Network Function Virtualization)は、欧州電気通信標準化機構(ETSI:ヨーロッパの電気通信全般に関わる標準化組織)が提唱する取り組みで、専用のアプライアンス機器で提供されていたネットワーク機器をIAサーバー上の仮想マシンで動作する、仮想アプライアンスに置き換えようというものです。

 「専用のアプライアンス機器で提供されるネットワーク機器」と言ってもピンとこないかも知れませんが、たとえば、LTEなどの無線通信を支える通信装置が挙げられます。LTEのバックエンドの仕組みについては、Web記事(*1)にわかりやすい説明がありますが、MME(Mobility Management Entity)、S-GW(Serving Gateway)、P-GW(Packet data network Gateway)など、通常のネットワーク機器とは異なる、特殊なパケット処理装置が使われていることが分かります。

 このような装置は、専門のネットワーク機器メーカーがハードウェアとして販売していますが、性能面などを考えなければ、同じ仕組みをIAサーバー上のソフトウェアとして実現することは、それほど難しくはありません。ETSIの目標は、これを仮想マシン上のソフトウェアとして実現しようということです。さらに、OpenStackなどのクラウド基盤と組み合わせれば、必要な際は、ボタン1つで新しい通信機器群を追加できるというわけです。

Intel DPDKによるネットワークアプリケーションの実装

 先ほど、「性能面などを考えなければ」という但し書きをつけて、通信装置の仮想マシン化はそれほど難しくないと表現しました。IAサーバーにLinuxをインストールすれば、ルーターやファイアウォールなど、ネットワークの基本機能を利用するのは簡単ですが、専用の通信装置ほどの性能が実現できるわけではありません。

 しかしながら、Intel社は、これは、IAサーバーのハードウェアとしての性能限界によるものとは考えていないようです。もともと、Linuxは、ネットワーク処理専用に開発されたOSというわけではありません。Linuxカーネルが提供するネットワーク機能は、あくまで、上位のアプリケーションを支えるインフラ機能であり、ネットワーク処理がいくら速くても、その分だけアプリケーションの実行速度が遅くなっては意味がありません。その一方で、さまざまな要件のアプリケーションを実行する汎用OSとして、さまざまなネットワークプロトコルに対応する必要があります。

 つまり、次のような事情により、現在のLinuxは、IAサーバーのネットワーク性能を限界まで引き出す設計にはなっていないということです。

  • Linuxカーネルは、ネットワーク処理だけを専門に実施するものではない。
  • 汎用OSとして、さまざまなネットワークプロトコルに対応する必要がある。

 そこで、Intel社が考えだしたのが、「Intel DPDK(Data Plane Development Kit)」の仕組みです。これは、現在のLinux上で、ネットワーク処理に特化したアプリケーションを作成するためのソフトウェアライブラリー群です。Intel DPDKを利用することで、ユーザーは、Linuxカーネルの代わりに、ネットワークパケットを処理するアプリケーションを独自に作成することが可能になります(図1)。

fig01

図1 一般的なアプリケーションとIntel DPDKによるネットワークアプリケーションの違い

 Intel DPDKを利用するアプリケーションは、Linuxカーネルを介さずに、ネットワークカードに届いたパケットを直接に受け取って処理します。たとえば、このアプリケーションを特定のCPUコアに割り当てて、最高の優先度で実行するとどうなるでしょうか? 簡単に言うと、Linux上に、ネットワーク処理専用のCPUコアが用意されることになります。これにより、CPUコアの性能を限界まで引き出して、IAサーバーのネットワーク性能を飛躍的に向上することが可能になるわけです。

 Intel DPDKが提供するライブラリーと関連するデバイスドライバーは、オープンソースとして公開されており、開発者向けのドキュメントも公式のWebサイトで入手が可能です(*2)。

次回予告

 今回、NFVとIntel DPDKの2つの話をしましたが、もちろん、これらは関係しています。NFVの観点では、仮想マシン上で実行するNFVのアプリケーションをIntel DPDKと組み合わせることで、専用の通信装置に匹敵するネットワーク処理性能を実現することが最終的なゴールとなります。ただし、Intel DPDKは、あくまでアプリケーションライブラリーですので、このライブラリーを利用したアプリケーションの実装には、さまざまなバリエーションが考えられます。さらに、仮想マシンと組み合わせる場合は、仮想化ハイパーバイザーとの関係も考える必要があります。次回は、仮想マシン環境における、Intel DPDKの利用パターンについて、解説したいと思います。

参考資料

(*1)「次世代の無線技術、LTEの仕組みが分かる(6)

(*2)「Intel® DPDK: Data Plane Development Kit

 

++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
 CTC教育サービス Linuxのページ
 http://www.school.ctc-g.co.jp/linux/
 

Linux研修トレーニングならCTC教育サービス


 

筆者書籍紹介

Software Design plusシリーズ
「独習Linux専科」サーバ構築/運用/管理
  ――あなたに伝えたい技と知恵と鉄則

本物の基礎を学ぶ!新定番のLinux独習書

中井悦司 著
B5変形判/384ページ
定価3,129円(本体2,980円)
ISBN 978-4-7741-5937-9
詳しくはこちら(出版社WEBサイト)
「独習Linux専科」サーバ構築/運用/管理

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes