仮想マシンとハイパーバイザー
1台のサーバーで複数の分離された仮想コンピューターを動かす仕組みを理解します。
「仮想マシンとハイパーバイザー」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
仮想化とは
仮想化により、1台の物理サーバーを複数の独立したコンピューターとして動作させられます。それぞれのコンピューターは仮想マシン(VM)であり、独自のオペレーティングシステム、アプリケーション、仮想CPU、メモリ、ディスクを持ちます。VMは基盤となる実際のハードウェアを共有しますが、互いに分離されています。
これは、現代のデータセンターとクラウドの基盤です。物理マシン1台につきアプリケーション1つを動かす代わりに、1台の高性能サーバーで数十台のVMをホストできるため、コスト、電力消費、設置スペースを大幅に削減できます。
ハイパーバイザーを知る
ハイパーバイザー(Virtual Machine Monitorとも呼ばれます)は、VMを作成して実行するソフトウェア層です。物理CPU、RAM、ストレージを分割して各VMに割り当て、VM同士を分離します。そのため、1台のVMがクラッシュしても、隣接するVMが停止することはありません。
ハイパーバイザーは、オペレーティングシステムがアプリケーションへのアクセスをスケジュールするのと同じように、実際のハードウェアへのアクセスをスケジュールします。各ゲストOSからは、VMが物理マシン全体を所有しているように見えます。
タイプ1: ベアメタルハイパーバイザー
タイプ1ハイパーバイザーは、その下にホストOSを置かず、ハードウェア上で直接実行されます。ベアメタル上で動作するため、高速で効率的かつ安全であり、本番サーバーやクラウドで選ばれています。
- VMware ESXi
- Microsoft Hyper-V
- KVM (Kernel-based Virtual Machine)
- Xen
データセンターではタイプ1ハイパーバイザーを実行し、1台のホストで多数のテナントに同時にサービスを提供します。
タイプ2: ホスト型ハイパーバイザー
タイプ2ハイパーバイザーは、WindowsやmacOSなどの通常のオペレーティングシステム上でアプリケーションとして動作します。インストールが簡単で、テスト、学習、デスクトップ環境に適していますが、リクエストがまずホストOSを経由するため、速度は低下します。
- VMware Workstation and Fusion
- Oracle VirtualBox
- Parallels Desktop
ノートパソコンでLinuxを実行する場合はタイプ2を使用し、サーバーファームを運用する場合はタイプ1を使用します。
ゲストOSとホスト
ホストは、すべてを実行する物理マシンとハイパーバイザーです。ゲストOSは、VM内にインストールされたオペレーティングシステムです。ゲストは自由に組み合わせられます。1台のホスト上で、Windows Server、Ubuntu Linux、旧バージョンのWindowsを並行して実行することも可能です。
各ゲストは専用のハードウェアを持っていると認識しますが、実際にはハイパーバイザーのスケジュールに従い、ホストのCPUとメモリのプールを共有しています。
リソース割り当て
管理者は各VMにvCPU(仮想プロセッサコア)、RAM、ディスクの一部を割り当てます。オーバーコミットとは、すべてのVMが同時にピーク性能で動作するわけではないと見込んで、ホストに物理的に存在する量を超える仮想リソースを合計で割り当てることです。
慎重に行えば効率が向上しますが、無計画に行うとリソース競合が発生します。これはVM同士がCPUやメモリを奪い合い、動作が遅くなる状態です。各VMに適切なサイズのリソースを割り当てることで、パフォーマンスを予測しやすくなります。
スナップショットとクローン
スナップショットは、ある時点におけるVMの正確な状態を記録します。パッチや変更によって問題が発生した場合は、数秒でスナップショットの状態にロールバックできます。クローンはVM全体をコピーし、同一の新しいVMをすばやく作成します。
これらの機能により、VMは物理サーバーよりはるかに柔軟になります。物理サーバーでは、壊れたマシンの再構築に数時間かかることがあります。ただし、スナップショットは同じホストのストレージ上に存在するため、バックアップではありません。
コンテナとVMの違い
コンテナ(Dockerなど)は、より軽量な仮想化方式です。コンテナごとに完全なゲストOSを用意するのではなく、ホストのカーネルを共有し、アプリケーションと依存関係だけをパッケージ化します。数ミリ秒で起動し、使用するメモリも大幅に少なくて済みます。
VMはそれぞれ完全なOSを備え、ハードウェアレベルで分離します。一方、コンテナはOSレベルで分離します。どちらも一般的に使われており、実際の多くの環境では、階層化された分離を実現するためにVM内でコンテナを実行します。
ライブマイグレーション
ライブマイグレーションは、実行中のVMを、ほとんど、またはまったくダウンタイムなしで、ある物理ホストから別の物理ホストへ移動します。ハイパーバイザーがVMのメモリをネットワーク経由で新しいホストにコピーし、その後シームレスに切り替えるため、ユーザーが気付くことはほとんどありません。
これにより、サービスを停止せずにハードウェアのメンテナンス、負荷分散、フェイルオーバーを実施できます。VMwareではこれをvMotionと呼び、仮想化環境が高い可用性を維持できる重要な理由の1つとなっています。
VMがクラウドを支える理由
クラウドプロバイダーは、大規模なハイパーバイザー群を運用しています。クラウドサーバーを借りるとき、実際に利用しているのは共有ハードウェア上のVMです。仮想化により、プロバイダーは数分でVMを起動し、規模を拡大し、使用した分だけ料金を請求できます。
ネットワーク技術者にとって重要なのは、ネットワークがホスト内部にも広がることです。ホスト内部では、仮想スイッチを通じて仮想マシン同士が接続されます。仮想スイッチについては次のレッスンで学びます。
メリットとトレードオフ
メリット: ハードウェアの統合、迅速なプロビジョニング、スナップショットによる容易なバックアップ、分離、そして稼働時間を維持するためのライブマイグレーションです。
トレードオフ: ハイパーバイザーによるわずかなオーバーヘッドが発生し、オーバーコミットには競合のリスクがあります。また、1台のホストに多数のVMを集約すると、そのホストが停止した場合に単一障害点となります。このリスクに対処するため、優れた設計では重要なVMを複数のホストに分散します。
クイックチェック
ハイパーバイザーの種類について理解度を確認しましょう。
まとめ
仮想化は、1台の物理サーバーを、ハイパーバイザーで管理される複数の分離された仮想マシンに分割します。タイプ1ハイパーバイザーは本番環境向けにベアメタル上で動作し、タイプ2はデスクトップやテスト向けにホストOS上で動作します。各VMにはvCPU、RAM、ディスクが割り当てられ、スナップショット、クローン、ライブマイグレーションを利用できます。VMはクラウドコンピューティングの構成要素です。
よくある質問
「仮想マシンとハイパーバイザー」レッスンは無料ですか?
はい。「仮想マシンとハイパーバイザー」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「仮想マシンとハイパーバイザー」で何を学びますか?
1台のサーバーで複数の分離された仮想コンピューターを動かす仕組みを理解します。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「仮想マシンとハイパーバイザー」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 仮想マシンとハイパーバイザー
- 仮想スイッチと仮想ネットワーク
- パブリック、プライベート、ハイブリッドクラウド
- クラウド接続とVPC