サーバを動かす土台には、もう1つ大事な考え方があります。1台のマシンを仕切って複数として使う——仮想化です。
概要 — まず全体をつかむ
詳細 — 1段階ずつ追う
これは何をする係?
仮想化とは、1台の物理マシンを、ソフトウェアの力で複数の仮想マシン(※1 VM)に分けて使う技術です。
たとえるなら、1つの建物を壁で仕切って、複数の部屋として貸すイメージ。建物(=物理マシン)は1つでも、部屋(=VM)ごとに別の人が、別の使い方をできます。各部屋には独立した鍵があり、隣の部屋の中は見えません。
登場人物メモ:
- ※1 VM(仮想マシン) — 物理マシンの中に作った、独立した1台分の「仮想の部屋」
- ※2 資源 — CPU・メモリ・ストレージなど、マシンが持つ計算の元手
この部分をもっと深く(中級)
VMを束ねる管理役がハイパーバイザ(※1)です。1台分の物理資源を切り分けて、各VMへ割り当てます。
アニメーション『仮想化の層構造(ハイパーバイザとVM)』を開く
図のように、下からハードウェア → ハイパーバイザ → 複数のVMが積み上がります。各VMは、上にアプリ、下にゲストOS(※2)を丸ごと積んでいます。ここが大事な点で、VMは中に1台分のOSを持つため、しっかり分離できる反面、その分だけ重くなります。
ハイパーバイザには置き場所で2タイプあります。
- Type1(ベアメタル) — ハードの直上で動く。速く、サーバ向き
- Type2(ホスト型) — ホストOSの上で動く。手元のPCに入れて使う向き
登場人物メモ:
- ※1 ハイパーバイザ — 物理資源を切り分け、各VMへ割り当てる管理役(VMM とも)
- ※2 ゲストOS — VMの中で動くOS。VMごとに1つずつ積む
- ※3 ホストOS — Type2で、ハイパーバイザを載せる土台側のOS
なぜ仕切るのか
わざわざ仕切るのには、はっきりした理由があります。
- 資源を無駄なく使える — 1台を持て余さず、余った力を別のVMに回せる
- 環境を分離できる — 部屋ごとに分かれるので、片方が壊れても隣に影響しにくい
- すぐ作って壊せる — ソフトなので、必要なときに増やし、要らなくなれば消せる
昔は「アプリごとに物理マシンを1台ずつ」用意しがちで、多くのマシンが力を余らせていました。仮想化はその無駄をまとめて解消したのです。
この部分をもっと深く(中級)
「仮想化」といっても、実体は資源をあるように見せかけて割り当てることです。
- CPU — 物理コアの時間を細切れにして、各VMへ順番に貸す
- メモリ — 物理メモリの一部を切り出し、VMには「専用の連続したメモリ」に見せる
- ストレージ — 1つのファイルやボリュームを、VMには1台のディスクとして見せる
- ネットワーク — 仮想的なNICやスイッチを作り、VM同士や外とつなぐ
VM側からは、どれも本物の1台に見えます。この「見せかけ」を破綻なくやるのがハイパーバイザの仕事です。
どこで使われている?
- クラウド — クラウドで借りるサーバの多くは、実は誰かの物理マシンを仮想化したVMです
- 手元のPC — 1台のPCの中に、別のOSをVMとして入れて試す
- コンテナの土台 — もっと軽い仕切り方であるコンテナ/Dockerも、この「分けて使う」発想の延長にあります
つまり仮想化は、今どきのサーバ運用の土台の考え方なのです。
この部分をもっと深く(中級)
VMの弱点は、はっきりしています——OSを丸ごと積むので重い。起動に時間がかかり、1台に積める数も限られます。
その反省から生まれたのがコンテナ(Docker/コンテナ)です。コンテナはOSを積まず、ホストのカーネルを共有したまま、プロセスを隔離して動かします。だから軽く、起動も速い。VMとコンテナの積み方の違いは、既存の対比図で確かめられます。
アニメーション『VMとコンテナの違い』を開く
分離の強さがほしいならVM、身軽さがほしいならコンテナ——用途で使い分けます。
そして、クラウドで借りるサーバの中身は、結局この仮想化です。物理マシンを大量に持つ事業者が、それをVMやコンテナに切り分けて、必要な分だけ貸している——それがクラウドの正体なのです。
⚠️ 気をつけたいこと
- 入れすぎると重い — 1台に詰め込みすぎると、部屋同士が資源を取り合って遅くなる
- 土台が倒れると全滅 — 物理マシン1台が壊れると、その上のVMがまとめて止まる
- 中身は本物のマシン — VMも1台分のOSを持つので、更新や管理の手間は物理マシンと同じだけかかる
この部分をもっと深く(中級)
- オーバーコミット — 資源を実際より多く約束しすぎると、混んだときに取り合って遅くなる
- 単一障害点 — 物理1台の上のVMは、そのハードが倒れるとまとめて止まる(分散配置で緩和)
- オーバーヘッド — 仮想化の見せかけ処理そのものが、わずかに性能を食う
- VMの増えすぎ — 作るのが簡単なぶん、使われないVMが放置されがち(棚卸しが要る)
関連する知識
理解度チェック
そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。
問1. 仮想化を一言でいうと?
問2. 仮想化がうれしい理由として近いのは?
問3. 本文が仮想化にたとえているのはどれ?
問4. 「環境を分離できる」がうれしい理由として正しいのはどれ?
問5. 本文によると、クラウドで借りるサーバの多くの正体はどれ?
問6. 注意点「土台が倒れると全滅」とはどういうことか?
問7. 物理マシンの中に作った、独立した1台分の「仮想の部屋」を、英字2文字の略で何と呼ぶ?
問8. CPU・メモリ・ストレージなど、マシンが持つ計算の元手をまとめて日本語2文字で何と呼ぶ?