仮想化技術のあれこれ ~入れ子とコンテナ~

 皆さま,こんにちは. 迷子のエンリュです.

 第2回から第4回までの仮想化環境構築編を書いておりました.

 仮想化ソフトウェアをどれにするか,随分と悩んだものです.結論としてVMwareをベースに,Macの人にはVirtual Boxも使ってもらいながら,という形になりましたが,いかがでしょうか.

 正直どちらのソフトウェアも,「無料でここまでやらせてくれるの!?」っていう高度なソフトウェアになっています.有料版との違いといえばVMの監視ツールがなかったり,有事の際のサポートがなかったりという点くらいで,自分で全部調べてやっちゃおう,これはうまくいかなかったけど問題ないだろう,っていう,勉強中の学生にはそれほど必要のないものです.仮想マシンが構築できて,そいつが満足に動いてくれるならそれでいい,というような私のような身には,無料版でも有り余るほどの性能ですね.Macの方には制約があるかもといっていましたが,このブログの演習環境としては十分だと思います.

Hyper-VとNested Virtualization

 さて,第2回で問題にさせていただきました,Nested Virtualizationについて,もう少し触れさせていただきましょう.

 最近Nested Virtualizationで話題になっているのは,Windows Server 2016から実現されたNested Hyper-Vでしょう. Windows Insider Preview: Nested Virtualization で,2015年10月13日にearly previewとしてリリースされました.あれからもう1年なんですね.記事の中では,Hyper-Vの入れ子によってWindowsの中のWindowsの中にWindowsが立ち上がっている写真が公開されました.

f:id:LostEnryu:20161014220755p:plain (画像: Windows Insider Preview: Nested Virtualization
https://blogs.technet.microsoft.com/virtualization/2015/10/13/windows-insider-preview-nested-virtualization/)

 これは壮観ですね.

Nested Virtualizationとコンテナ型仮想化による「DevOps」の実現

 しかし,なぜMicrosoftはNested Virtualizationを実装したのでしょうか.一体何のためにこのような複雑なことをしようとしたのでしょうか.記事の中にちらっと「Hyper-V Containers」という言葉が出てきます.これはヒントですね.新しい仮想化技術の概念としてコンテナ型仮想化というものがあります.普通のサーバ仮想化のような,OS丸ごとパッケージするよりも小さく,アプリケーション実行環境をパッケージングし,同一OSの上に分離されたプロセスとして展開する,というものです.

f:id:LostEnryu:20161014221501p:plain (画像:WHAT IS DOCKER? https://www.docker.com/what-docker)

 では,コンテナ型仮想化とNested Virtualizationはどのように関係するのでしょうか.コンテナ型仮想化システムのメリットはサーバ上に素早くサービス実行環境を構築できることです.これにより,従来よりも迅速に開発・運用を行っていく新しいビジネスの形「DevOps」が実現できるのです.そのためには,クラウド上で展開された仮想サーバに,仮想コンテナをどんどん乗っけていく形が理想的です.仮想コンテナを持つホストOSが仮想化されていれば,そのリソースを必要に応じて増減させることができるのです.Microsoftドキュメンテーションには,次のように記されています.

入れ子になった仮想化は、Hyper-V 仮想マシン内での Hyper-V の実行を可能にする機能です。 つまり、入れ子になった仮想化により、Hyper-V ホスト自体を仮想化することができます。 入れ子になった仮想化の使用例として、仮想化されたコンテナー ホストで Hyper-V コンテナーを実行したり、仮想化環境に Hyper-V ラボをセットアップしたり、個別のハードウェアを必要とせずに複数コンピューターのシナリオをテストしたりする方法があります。

(参照: Run Hyper-V in a Virtual Machine with Nested Virtualization)

 Nested Virtualizationの実現とコンテナ型仮想化の普及は,ITビジネスをより高速で効率的なものへと押し上げていくことでしょう.

 日本では文化的になかなか広がっていかないという「DevOps」.これからの世界で戦うために無視することのできないこの新しい概念と,従来のシステムをなかなか変えられない日本文化との折り合いをつけていくことも大切ですね.いつか「DevOps」についても記事を書きたいと思っておりますが,まずはこの新技術,Nested Virtualizationとコンテナ型仮想化について,いろいろ試していきたいところですね.

いろいろ参照記事

注目を浴びる「Dockerコンテナ」、従来の仮想化と何が違うのか?
VMwareとどう違う?Dockerに見るコンテナ型仮想化サービス
コンテナ技術の基礎知識
DevOpsとは何か? そのツールと組織文化、アジャイルとの違い
DevOpsとは開発と運用の改善ではない:4人の“DevOpsガイ”が熱弁

なんだか難しい話だったなあ...

Previous | Top | Next

Prev: 迷いの森

Next: 未定

Index
Journey