第34回 Open vSwitchで作るDockerのネットワーク(OVSを知る編)古賀政純の「攻めのITのためのDocker塾」(2/3 ページ)

» 2017年02月01日 07時30分 公開

OVSがもたらす分散仮想スイッチの世界

 仮想スイッチは、ネットワークの仮想化技術の発展に多いに寄与しました。ハイパーバイザ型の仮想化基盤やDockerなどのコンテナ環境、OpenStackに代表されるクラウド環境で採用されている一般的な仮想スイッチは、ホストOSが稼働する物理サーバの物理NICと、仮想マシンやコンテナ内の仮想NICを接続する機能を有します。当然ながら仮想的なスイッチは、仮想マシン同士やコンテナ同士を接続していますので、ホストOSの外側のスイッチを経由することなく、仮想マシン同士やコンテナ同士の仮想NICで通信することも可能です。

 近年はクラウド基盤の浸透によって、プライベートクラウド内における複数の物理ホスト、複数種類のハイパーバイザやコンテナエンジンの混在が議論され、そのようなヘテロ(異種混在)環境においても、シームレスで柔軟なネットワーク環境の構築が必要になってきました。そこで登場したのが、「分散仮想スイッチ」(Distributed Virtual Switch)と呼ばれるものです。

 分散仮想スイッチは、物理サーバの機種、CPUの種類、OSの種類などに依存することなく、複数のサーバを跨いだ仮想的なネットワークを構成できます。具体的には、ホストOSで稼働する仮想スイッチのOVS同士が連係します。

Dcoker OVSがもたらす分散仮想スイッチの世界

DockerとOVSの関係

 以上のことから、仮想化基盤やクラウド基盤のような柔軟性に富んだネットワーキングにおいて、OVSが有用であることが理解できたかと思います。それでは、Docker環境におけるOVSの利用は、どうなのでしょうか。

 通常Linux OSには、OVSはなく、「Linuxブリッジ」が搭載されています。Dockerは、デフォルトでホストOSのLinuxの標準機能であるLinuxブリッジを利用します。連載第29回でもご紹介したように、DockerはこのLinuxブリッジとして「docker0」というインタフェースが、標準のブリッジとして利用されます。しかしLinuxブリッジには、取り扱える最大ポート数が1024個という制限があります。1つのネットワークインタフェースを有するコンテナが同時に通信を行えるのは1024個までで、1024個を超えてコンテナを通信させるには、別の仕組みを検討しなければなりません。これを可能とするのがOVSです。

 Dockerのように、大量のコンテナが起動するような環境におけるポート数の枯渇は、システムとして致命的です。そのような問題を解決できるのがOVSであり、まさにコンテナのような大量のポート数を消費し、しかも、仮想スイッチによるコンテナ同士の通信が求められるような基盤にとって、OVSが非常に有用なソリューションとなるでしょう。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ