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

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

研修コース検索

コラム

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

CTC 教育サービス

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

第57回 OpenStack Neutronの新機能!DVRとL3HA(VRRP) (中井悦司) 2014年12月

はじめに

 先日、OpenStackユーザ会による「Neutron勉強会」が開催されました。本ユーザ会による勉強会は定期的に開催されているもので、初心者向けから上級者向けまで、さまざまなセッションが実施されるのが特徴です。この時は、「OpenStack(Neutron)を自力で動かせるだけの知識が必要です」との事前注意がついており、中級~上級者向けに、技術的にも深い内容のセッションが展開されました。

 具体的な内容としては、Junoからの新機能となる「DVR(Distributed Virtual Router)」と「L3HA(VRRP)」の解説があり、そして、筆者からは、先日オープンソースとなった「MidoNet」の技術解説を行いました。今回は、DVRとL3HA(VRRP)について、その概要を紹介したいと思います。

DVR(Distributed Virtual Router)とは?

 DVRは、Neutron標準のOVSプラグインの新機能で、仮想ルーターの機能をコンピュートノード上に分散配置するというものです。従来の構成では、仮想ルーターは、専用の「ネットワークノード」の上に配置されており、仮想ルーターを経由するパケットは、すべてネットワークノードを経由してやりとりする必要がありました(図1の左)。

 たとえば、2台の仮想マシンインスタンスが同一のコンピュートノードで動いていたとしても、接続する仮想ネットワーク(仮想L2スイッチ)が異なる場合、これらの仮想マシンインスタンスは、ネットワークノードを経由してパケットをやりとりする必要があります。外部ネットワークと通信する際も、当然ながら、ネットワークノード上の仮想ルーターを経由することになります。このため、仮想マシンインスタンスの数が増えてくると、ネットワークノードを通るパケット量が増加していき、ネットワークノードの性能がネットワーク通信のボトルネックとなる恐れがでてきます。この問題を解消するのが、DVRの役割です。

 DVRの仕組みを簡単に言うと、「同じ仮想ルーターのコピーをすべてのコンピュートノードに配置する」ということです(図1の右)。仮想マシンインスタンスから送信されたパケットは、同じノード上の仮想ルーターで転送先が決定されますので、転送先の仮想マシンインスタンスが同じノードにあれば、そのまま目的の仮想マシンインスタンスにパケットが届けられます。外部ネットワークと通信する場合は、コンピュートノードからそのまま外部ネットワークにパケットが送信されます。

 図にすると単純に見えますが、各コンピュートノードに仮想ルーター機能が配置されるため、コンピュートノード内部の構成はそれなりに複雑になります。詳細については、当日の発表資料を参考にしてください(*1)。

fig01

図1 DVRの仕組み

L3HA(VRRP)とは?

 こちらは、ネットワークノードのボトルネックを解消するもう一つの方法です。複数の仮想ルーターがある場合に、複数のネットワークノードを用意して、仮想ルーターを分散配置するという手法になります。特定の仮想ルーターを経由する通信は、特定のネットワークノードを回ることになりますが、仮想ルーター単位でネットワークノードを分けることで、全体としての負荷分散を行います。

 さらに、図2にあるように、異なるネットワークノードにスタンバイルーターが配置されます。これは、仮想ルーターを冗長構成にする仕組みで、稼働中の仮想ルーター(アクティブルーター)が障害で停止した際は、自動的にスタンバイルーターに処理を切り替えます。VRRPは、物理ルーターを冗長化する際に以前から利用されていた仕組みですが、これと同じ仕組みを仮想ルーターに対して適用する形になります。図2では、ネットワークノードが2台の場合を示していますが、実際には、3台以上のネットワークノードを使用することも可能です。

 当日の発表資料では、設定ファイルの内容や仮想ルーターの切り替え処理の詳細も記載されていますので、興味のある方は参考にしてください(*2)。

fig02

図2 L3HA(VRRP)の仕組み

次回予告

 冒頭でも触れたように、当日の勉強会では、筆者からはMidoNetの解説を行いました(*3)。MidoNetについては、本連載の第51回も参考にしてください。第51回の原稿を執筆していた時は、MidoNetのソースコードは非公開でしたが、その後、開発元のMidokura社の判断で、オープンソースとしてソースコードが公開されることとなりました。これで、MidoNetの内部構造も勉強し放題です(笑)。ソースコードには、技術解説のドキュメントも付随しています(*4)。

 さて、本年の連載は今回が最終回となります。次回のコラムは、新年1月12日の週にお届けする予定です。

参考資料

(*1) 「Neutron Deep Dive - DVR

(*2) 「Neutron L3HA(VRRP)

(*3) 「完全分散エッジ処理で実現するNeutron仮想ネットワーク

(*4) 「Midonet: docs

 

++ 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