【かそうか】

仮想化 とは?

最終更新:
💡 1台のサーバーを「何台にも分身」させる

物理的なコンピュータの資源をソフトウェアで分けたりまとめたりして、仮想的なコンピュータなどとして使う技術。代表例は1台の物理サーバー上で複数の仮想マシンを動かすサーバー仮想化。

📌 このページのポイント
物理サーバー 1台 CPU × 8コア RAM 64GB SSD 2TB 仮想化 ハイパーバイザー(仮想化レイヤー) VM 1 Guest OS: Linux Web サーバー Apache / Nginx vCPU×2 RAM 8GB SSD 200GB VM 2 Guest OS: Linux DB サーバー MySQL など vCPU×4 RAM 32GB SSD 1TB VM 3 Guest OS: Windows メールサーバー Postfix など vCPU×2 RAM 16GB SSD 500GB 各VMは分離して動作(物理資源は共有)
1台の物理サーバーを複数の仮想マシンとして利用
ひよこ ひよこ
なんで仮想化するの?
ペンギン先生 ペンギン先生
用途ごとに物理サーバーを分けると、処理が少ない時間はCPUやメモリが余りがちなんだ。仮想化で1台に複数の仮想マシンを載せれば、資源をまとめて使えてサーバー台数や電力・設置場所を減らせることがあるよ。必要なときにすぐVMを作れるのも利点で、IaaS型のクラウドも仮想化を中心的な技術として使っているんだ
ひよこ ひよこ
仮想マシンとコンテナの違いは?
ペンギン先生 ペンギン先生
仮想マシンは自分専用のOS(カーネルを含む)を丸ごと動かすよ。コンテナは同じホストのカーネルを共有して、アプリを隔離されたプロセスとして動かすから、一般に起動が速くサイズも小さくなりやすいんだ。仮想マシンは「マンション(部屋ごとに設備がある)」、コンテナは「シェアハウス(台所などを共有)」のイメージだね。ただ、クラウドではVMの上でコンテナを動かすように組み合わせることも多いよ
ひよこ ひよこ
ペンギン先生 ペンギン先生
仮想マシンを動かし、CPUやメモリを割り当てて管理するソフトウェアだよ。ハードウェアの上で直接動くベアメタル型(Type1、例:VMware ESXi、Hyper-V)と、WindowsやmacOSなどのOSの上で動くホスト型(Type2、例:VirtualBox、VMware Workstation)があるんだ。NISTの資料では、サーバーはベアメタル型、デスクトップはホスト型で仮想化されることが多いと説明されているよ
ひよこ ひよこ
仮想マシンを動かしたまま別のサーバーへ移せるって本当?
ペンギン先生 ペンギン先生
本当だよ。ライブマイグレーションといって、VMを動かしたまま別の物理ホストへ移す機能なんだ。VMwareのvSphere vMotionでは、移行中もVMのプロセスが動き続けるので、ホストの保守のときに役立つよ。ただし移行先の資源や共有ストレージ、ネットワークなどの条件がそろっている必要があるんだ
もっと詳しく知りたい人へ

仮想マシン同士は完全に分離されているの?

強く分離されているけど「完全」とは言えないよ。NISTの仮想化セキュリティガイド(SP 800-125)は、ホスト型の仮想化ではファイル共有やコピー&ペーストのような仕組みでゲストOSとホストがつながり、それが攻撃経路になりうると注意している。同じ物理サーバーのCPUやディスクを共有するので、ほかのVMの負荷で性能が落ちることもあるんだ。ハイパーバイザーの更新や、不要な共有機能を無効にすることが大事だよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「仮想化」って出てきたら「1台の物理マシンで複数の仮想環境を動かす技術」と思えればだいたいOK!
📖 おまけ:英語の意味
「Virtualization」 = 仮想化
💬 Virtual(仮想的な)にコンピュータリソースを分割・統合する技術だよ

参考資料

← 用語集にもどる