ノイジーネイバーを遮断する新型コンテナ「Hyper-V Container」をマイクロソフトが発表。Windows Server上の新しいコンテナ実装
マイクロソフトは次期Windows Serverに搭載予定の新型コンテナ「Hyper-V Container」を発表しました。
マイクロソフトは昨年10月にDockerと提携し、次期Windows ServerにDockerコンテナを実装することを表明しています。今回発表された「Hyper-V Container」は、このWindows Server上で実装されるDockerコンテナの基盤となるコンテナ技術の1つです。
下記は、Hyper-V Conatinerの発表記事に掲載されていた図を基に、Publickeyで分かりやすく改変した図です。
Windows Server上にまず独自コンテナを実装する
この図からは、いくつかのことが読み取れます。
1つは、マイクロソフトがDockerコンテナを実装する方法です。これは以前から説明されていたことではありますが、Windows Server上にまずWindows Server独自のコンテナである「Windows Server Container」を実装し、その上にDocker Engineを載せるという構造になっています。
Docker互換を必要としないユースケースでは、Windows Server Containerをネイティブに利用することが可能ではないかと推測されます。
そしてもう1つが、Windows Server上のコンテナ実装には2種類あるという点です。1つは、カーネル(Windows Server Kernel)の上に分離した空間を実装した「Windows Server Container」。もう1つは、カーネルの上でHyper-Vの仮想化による分離を行い、その中でコンテナを動かす「Hyper-V Container」です。
Windows Server Containerは、Linuxコンテナと同様の一般的なコンテナの実装のようです。では、Hyper-V Containerとはどのような特長を持つものなのでしょうか。
Windows Server Kernel上のHyper-Vでコンテナを分離
マイクロソフトはHyper-V Containerを、これまでにない新しい種類の分離機能を備えたコンテナ技術だと説明しています。「Microsoft Announces New Container Technologies for the Next Generation Cloud」から引用します。
Hyper-V Containers will ensure code running in one container remains isolated and cannot impact the host operating system or other containers running on the same host.
Hyper-V Containerはあるコンテナ内で実行されているコードが分離され、ホストOSや同一ホスト上のほかにコンテナまったく影響を与えないことを確実にするようになる。
マイクロソフトの説明が本当であれば、いわゆる「ノイジーネイバー」と呼ばれる問題、同一ホスト上のあるコンテナで負荷の高い処理を行っているアプリケーションなどがあると、それに影響を受けて別のコンテナなどでの処理が遅くなってしまうという問題をHyper-V Containerは解決し、より優れたコンテナ実装を提供することが可能だということになります。
Windows Server Kernel上でHyper-Vの技術をどのように用いるのか、技術的な詳細はまだ明らかになっていませんが、同時に発表されたコンテナに最適化されたWindows Serverの「Nano Server」など、マイクロソフトはWindows ServerをLinuxよりも優れたコンテナのプラットフォームにすべく、さまざまな取り組みを進めていることは明らかなようです。
参考
あわせて読みたい
クラウドでコードが走る「AWS Lambda」正式公開。AWS Mobile SDKでモバイル対応。Node.jsに加えてJavaでの記述も可能に
≪前の記事
マイクロソフト、Windows Serverをコンテナ向けに徹底軽量化した「Nano Server」を発表。サイズを10分の1以下に