CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
前回に続いて、OPNFV(Open Platform for NFV)の活動を紹介しましょう。今回は、OPNFVとOpenStack開発コミュニティの関係を説明します。先月、OpenStack Days Tokyo/2015の講演で来日していたChris Wrightと話し込む機会があり、その際に彼から聞き出した情報が元になっています。
前回、OPNFVでは、OpenStackをベースとした「NFVI(NFV Infrastructure)」の実装を直近の目標にしていることを説明しました。この際、NFVとして求められる機能をOpenStackに追加していく必要があります。現在、OpenStackの開発コミュニティの中には、「TelcoWorkingGroup」が作られており、NFVに関連する機能やユースケースについてのディスカッションが行われています。Chrisは、OPNFVのボードメンバーと同時に、TelcoWorkingGroupのメンバーにもなっています。
それでは、実際にOpenStackの開発を手がけている個々のエンジニアは、NFV対応機能についてどのように考えているのでしょうか? 実は、OpenStackの開発エンジニアの多くは、NFVにはそれほど熱狂しているわけではありません。Chrisの言葉によると「lukewarm(生暖かい感じ)」ということで、積極的に反対するわけではないけれど、積極的に実装していきたいとも感じていないエンジニアが多いようです。
これは、OpenStackが本来目指す「クラウドとしての抽象化」と、NFVが必要とする機能のギャップに原因があります。OpenStackが提供するクラウド環境は、「仮想マシンインスタンス」「仮想ネットワーク」「仮想ストレージ」と言った抽象化された機能コンポーネントを提供することが目的です。これらのコンポーネントは、標準化されたAPIを介して、物理的なハードウェア構成にとらわれずに操作できることにメリットがあります。一方、NFVの観点では、ハードウェアの性能を最大限に引き出したいという要望があり、ハードウェア構成を意識した機能の追加が求められています。分かりやすい例としては、仮想マシンインスタンスに特定のCPUコアを専有して使用させる「CPU Pinning」や、仮想マシンインスタンスに物理的なPCIデバイスを直接割り当てる「PCI Path-through」などがあります。
このようなギャップを埋めるために、OPNFVでは、2つの方針でコミュニティとの共同作業を進めているそうです。1つは、これらの機能が、NFVだけではなく、OpenStackが本来目指しているクラウドの世界でも役立つことを説明していくことです。たとえば、CERN(欧州原子核研究機構)の事例に代表されるように、「HPC(High Performance Computing)」と呼ばれる科学技術計算のプラットホームとしてもOpenStackの活用が広がっています(*1)。HPCの領域では、当然ながら、計算速度の向上は重要になるため、CPU PinningやPCI Path-throughは一定のメリットをもたらします。
もう1つは、追加機能の「実装方式」はあえて示さずに、まずは、「解決したい課題」を説明して、コミュニティメンバーの理解を得ることに注力することです。前述のように、「OpenStackが目指す抽象化」に合致しない実装では、コミュニティに受け入れられませんので、開発コミュニティとのディスカッションの中で、適切な実装方式を見つけ出していきます。たとえば、CPU PinningにおけるCPUコアの指定方法を考えてみると、仮想マシンイメージ内部での指定、インスタンスタイプによる指定、仮想マシンインスタンス起動時のオプションによる指定など、さまざまな指定方法が考えられます。これらをどのように組み合わせるのがよいのか、開発コミュニティとディスカッションしながら実装を進めていきます。OpenStack開発コミュニティのWikiページには、このようなディスカッションの結果がきちんと残されています(*2)。
上記の話をする中で、Chrisは、CGL(Carrier Grade Linux)の例を引き合いに出して、「OPNFV独自のOpenStackは作らない」という事を強調していました。CGLは、2000年代の初期に行われていた取り組みで、「通信事業者向けのサーバーに求められる信頼性/性能要件を満たすLinuxの実現」が目的でした。CGLのグループでは、当時のLinuxにはなかった機能を独自に開発しており、CGL対応の特別なLinuxディストリビューションも提供されていました。ただ残念なことに、CGLで開発した機能は、本家の開発コミュニティにスムーズに還元することができませんでした。その後、本家の開発コミュニティがメンテナンスする標準的なLinuxにおいても、CGLと同等の機能が実装されていき、現在では、わざわざCGL対応の古いディストリビューションを使う理由はなくなってしまいました。
OpenStackのNFV対応においても、NFV用に独自機能を追加した別バージョンのOpenStackを作ってしまうと、長期的には、OpenStack本来の進化から取り残されることになります。このため、本家の開発コミュニティと協力しながら、あくまでもOpenStackの標準機能として開発を進めることを基本方針としているそうです。
先日、Red Hat Enterprise Linux 7.1のリリースに合わせて、RHEL Atomic Hostが正式リリースされました。実はこの直前に、Red HatのWestfordオフィスでは、社内向けの技術トレーニングが行われていました。WestfordはRed Hat Enterprise Linuxの開発拠点となるオフィスで、ボストンの中心部から車で約1時間の所にあります。筆者もこのトレーニングに参加して、RHEL Atomic Hostの他に、KubernetesやOpenShift v3の内部構造の解説を受けてきました。以前のコラムでは、ベータ版の情報を元にRHEL Atomic Hostを紹介しましたが、正式リリース版ではさらに機能追加が行われていて、ちょっと驚いたりという事もありました。
次回は、RHEL Atomic Hostについて、正式リリース版の追加機能を紹介したいと思います。
(*1) 「CERN Uses OpenStack」
(*2) 「Virtualization Driver Guest CPU / Memory Placement」
++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
CTC教育サービス Linuxのページ
http://www.school.ctc-g.co.jp/linux/
筆者書籍紹介 Software Design plusシリーズ 「独習Linux専科」サーバ構築/運用/管理 ――あなたに伝えたい技と知恵と鉄則 本物の基礎を学ぶ!新定番のLinux独習書 中井悦司 著 B5変形判/384ページ 定価3,129円(本体2,980円) ISBN 978-4-7741-5937-9 詳しくはこちら(出版社WEBサイト) |
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes