Linuxカーネルを拡張する「eBPF」のWindows対応を進めるマイクロソフト。eBPFの代表的なアプリ「Cilium」をWindowsへ移植

今回は「Linuxカーネルを拡張する「eBPF」のWindows対応を進めるマイクロソフト。eBPFの代表的なアプリ「Cilium」をWindowsへ移植」についてご紹介します。

関連ワード (判断、変換、心強等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


eBPF(Extended Berkeley Packet Filter)はクラウドネイティブ関連で最も注目されている技術の1つです。

CiliumやCalicoといったCNI(Container Network Interface)のためのプロジェクトでeBPFが採用され、昨年10月にはKubeCon+CloudNative Non NA 2021と同時に「Cloud Native eBPF Day North America」が開催されています。

eBPFとはLinuxカーネルを書き換えることなくその内部の機能をフックし、フック先でサンドボックス化されたプログラムを実行することにより、カーネルをプログラマブルに機能拡張できる機能です。これによってパケットのフィルタリングやパフォーマンス監視などさまざまな実装が可能になります。

eBPFはLinuxを基盤に登場した技術ですが、マイクロソフトは2021年5月にこれをWindowsにも実装することを明らかにしています。

  • WindowsがまたLinuxを取り込む。マイクロソフト、Linuxカーネルが備える拡張機能「eBPF」互換機能をWindowsにもオープンソースで実装へ

そして2021年8月にはeBPFを推進する業界団体「eBPF Foundation」が結成されました。

  • Google、Facebook、マイクロソフトらが、OSカーネルをプログラマブルに拡張できる「eBPF」の開発と発展を目指す「eBPF Foundation」を結成

Linux用のeBPFコード、Widowsへの移植に96%程度成功

マイクロソフトはWindowsでeBPFを実装するにあたり、ソースコードとツール群の互換性を実現すると説明しています。つまり、eBFPに対応したアプリケーションのソースコードをWindows用にコンパイルする際に、同じツール群が使えるようにし、再コンパイルすればそのままWindowsで実行できることを目指す、ということです。

マイクロソフトが2月22日付けで公開したブログ「Getting Linux based eBPF programs to run with eBPF for Windows」では、このeBPFのWindows対応に関する現状が、Linux用に開発されているCiliumをWindowsへ移植する例を基に説明されました。

CiliumではLinuxのeXpress Data Path(XDP)のフックと、Socket/Traffic Controlサブシステムのフックが使われていますが、主要な機能はXDPのフックをベースに作られているとのこと。WindowsではXDP相当のフックがWindows Filtering Platrormによって実装されていたため、今回はこれが用いられました。

さらにCiliumではeBPFで「Helper」(ヘルパー)と呼ばれる、eBPFで安全に呼び出せるカーネルのAPIを複数用いていますが、これらをリストアップした上で、Windows SDKの既存のAPIで相当するものを代替として割り当てて使用したとのことです。

またいくつかLinuxを前提にアセンブリ言語で書かれた部分はC言語で書き直すなどの作業も行われました。

これらの作業により、マイクロソフトはLinux用に書かれたコードの96%程度をWindows版に移植できたと、次のように説明しています。

After commenting out functionality we identified as optional (as far as a demo is concerned) and handling the aforementioned cases of assembly instructions, we were able to get around 96 percent of the eBPF code that was written for Linux to run on top of the eBPF for Windows platform. This includes eBPF code written for Maglev hashing, NAT engine, connection tracker, packet handling code, and so on. We think this is very encouraging and exciting because it demonstrates the cross-platform value of eBPF.

(今回のデモを考慮して)オプション機能と私たちが判断したものをコメントアウトし、前述のアセンブリ言語を扱うなどしたところ、Linux用に記述されたeBPFのコードの96%をWindowsプラットフォーム用のeBPFにすることができた。これには、Maglevハッシング、NATエンジン、コネクショントラッカー、パケットハンドリングコードなどが含まれている。これはeBPFのクロスプラットフォーム対応の価値を示すものであり、非常に心強く、かつエキサイティングなことだと考えている。

今回の移植作業により、Linux用に書かれたeBPFのコードが実際にWindowsへ移植できることが示されました。

これはマイクロソフトが主張する、eBPFはLinuxとWindowsのクロスプラットフォーム対応が可能であることを実証する上で大事なサンプルになったと言えそうです。ただ一方で、多数存在するeBPFのフックやヘルパーの変換やマッピングなどを、さまざまなeBPFのコードに対して汎用的に、あるいは自動的に行おうとすると、その道のりはまだ遠そうだ、と言うことも改めて明らかになったのではないでしょうか。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
JR東日本が駅にシェアサイクル拠点整備 MaaS構築に向けOpenStreetに出資
企業・業界動向
2021-05-11 22:30
ドローンを家庭で自動製造できる工作機 MITとMicrosoftの「LaserFactory」 :Innovative Tech
イラスト・デザイン
2021-03-13 12:06
会社に届くすべての郵便物を電子化し自宅から一元管理、クラウド郵便サービスのatenaが1.25億円のシリーズA調達
IT関連
2022-03-26 14:58
「AppOps市場のリーダーを目指す」–ライムライト・ネットワークスが国内事業戦略
IT関連
2022-02-05 12:36
レノボ、エッジコンピュータ「ThinkEdge」を日本に投入
クラウドユーザー
2021-03-11 11:30
テック業界における多様性の欠如は「パイプライン問題」が原因ではない、その言い訳の背後にある歴史を分析
パブリック / ダイバーシティ
2021-03-08 12:39
ここまで進んだ最新治療 移動型治療室「モバイルSCOT」、5Gで高度な遠隔手術が可能に
IT関連
2021-01-22 10:12
グーグルCEO、「Bard」のアップデートを予告–現状は「チューンアップした大衆車」
IT関連
2023-04-05 18:06
MongoDB 5.0が登場。時系列データ対応、実行中のシャーディング変更に対応など
MongoDB
2021-07-19 00:41
トレンドマイクロ、XDRにセキュリティ製品群の運用管理機能を追加
IT関連
2023-08-30 15:01
Apple Podcastランキング1位「歴史を面白く学ぶコテンラジオ」を運営するCOTENが8400万円を調達
EdTech
2021-07-02 08:00
NY州で米国初のワクチンパスポート、IBMの技術活用–導入進展へ期待
IT関連
2021-03-30 23:28
WebAssembly化したPostgreSQLをWebブラウザ上で実際に動かして学ぶ「Postgres playground」をCrunchy Dataが公開
PostgreSQL
2022-08-19 22:28
みずほ銀、システム障害がトップ人事に波及 経営改革に遅れも
IT関連
2021-03-19 23:29