サーバー仮想化技術いろいろ

仕事上、ウィンドウズマシン上で Linux ツールを使いたいというケースが多いため、Virtualbox や Vmware を使うことは結構ありました。

VMware Japan:クラウド、モビリティ、ネットワークとセキュリティ
VMware が提供するソフトウェアベースのソリューションでデジタル基盤を構築し、クラウド経由であらゆるアプリをあらゆるデバイスで使用可能に。
Oracle VM VirtualBox

最近は、そういったソリューション以外にも、Kubernates やら Docker やら、そもそも KVM というのもあったり(KVMって単なるウィンドウマネージャだとずっと思ってたんですが仮想化技術だったんですね)、いろいろ乱立しているので、この辺りいったん整理しておきたいと思いました。

Vmaware, Virtualbox, Docker, Kubernetes, KVM

まず概要として、こちらのサイトを見ると、分かりやすかったです。

各仮想化技術の違いをざっと理解するッ!! - Qiita
仮想サーバ(仮想マシン)vs. コンテナ 自身の開発環境でWebサイトを動かしたい場合,まず,パソコン内にLinux環境のWebサーバ,APサーバ,DBサーバなどの物理サーバを仮想的に構築する.そして,自身のパソコンをクライアン...

これによると、

  • Vmware や Virtualbox はホスト型で、実在のHWの上にホストOSがいて、その上に仮想化アプリ(Vmware や Virtualbox )が動いて、その中で複数の仮想マシンを作ることができる。
  • KVM はハイパーバイザー型で、ホストOSがなくて BIOS からいきなりハイパーバイザーが立ち上がって、その上で仮想マシンが作られる。
  • Docker はコンテナ型で、仮想マシン全体(HW+ゲストOS)を作らず、サーバとしての機能を持つコンテナを仮想的に構築する。

という感じですかね。

KVM の詳細はこちらがわかりやすいかな。QEMU との組み合わせの話もありました。

【図解】Linux KVMの仕組みとは? | カゴヤのサーバー研究室
KVMとは、Linuxに最適化された仮想化技術の一つです。この記事ではKVMの基本的な仕組みを整理したあと、KVMを実際に動かす方法を解説しています。

こちらには、Docker と Virtualvox の違いについての議論がありました。

DockerとVirtualBoxの違いについて|teratail
DockerとVirtualBoxの違いについて以前研究室でわけも分からずvirtualboxを利用していたのですが、今それとは別にDockerなるものの名前をよく聞くようになったので勉強したいと考え質問させていただきました。

Dockerは、Linux上ではOSより上の部分だけ仮想化するので、マシンごと仮想化するVirtualBoxより軽量化できます(なお、WindowsやmacOSでは動かないので、Linuxの動くVirtualBoxを介して使う必要があります)

なるほど、分かってきた気がする。

 

じゃあ、Docker と Kubernetes は?

この記事のコンテナ技術に関する説明が分かりやすかったです。

いまさら聞けないDocker/Kubernetes|IT Leaders

今回のもう1つのキーワードが「Kubernetes」だ。これは簡単に言うと、様々な環境で稼働する数多くのDockerコンテナを、効率よく管理するための“オーケストレーションツール”である。

Docker自体はこうしたコンテナの“作成・廃棄”の機能は持っているが、コンテナを効率よく配置したり、管理したりといった機能は備えていない。こうした文字通りオーケストラの指揮者の役割を果たすのがKubernetesというわけである。

なるほど、Docker と Kubernetes 、Vmware と Virtualbox の関係とは異なるんですね。

こういった棲み分け、使ってる人には何てことない話なんですが、使ったことないと、全体像が見えないんですよね。

っということで、仮想化技術の概要理解でした。

タイトルとURLをコピーしました