基礎解説
|
|
VMMとは
仮想化の基盤となるソフトウェアがVMMである。OSがユーザー・アプリケーションに対して果たしているのと同じような役割を、VMMはゲスト環境に対して担っている。OSがデバイスやメモリなどの物理リソースを管理し、メモリ空間をユーザー・アプリケーション(プロセス)ごとに隔離するように、VMMはゲスト環境ごとに物理リソースをエミュレーションしてゲスト環境からの要求を調停し、ゲスト環境ごとにメモリ空間を隔離するのがその役割である。VMMが置かれる場所やデバイスの取り扱いによって、VMMは大きく3種類に分類することが可能である。
ホスト型 | ハイパーバイザ型 | ハイブリッド型 | |
仮想化のオーバーヘッド | △(多い) | ◎(少ない) | ○(中間) |
デバイスへの対応 | ◎(ゲスト側での対応は不要) | △(VMMでの対応が必要) | ○(中間) |
実装例 | Virtual PC Virtual Server VMware Workstation Parallels Workstation KVM Virtual Box |
VMware ESX Parallels Server beta Virtual Iron |
Xen Citrix XenServer Microsoft Hyper-V SUN xVM Oracle VM |
VMMの主なアーキテクチャ |
■ホスト型アーキテクチャ
ホスト型のVMMは、仮想化されていない通常のOS(ホストOSと呼ばれる)上でデバイス・ドライバやアプリケーションとして存在する。デバイス・ドライバはホストOS上の既存のものを利用し、VMMにおいてゲスト環境向けに仮想デバイスを提供する。仮想デバイスは、レガシー・デバイスを採用するものが多く、例えばVirtual PCでは、ゲスト環境からはチップセットとしてPentium II世代のIntel 440BX(1998年提供開始)が搭載されたコンピュータに見えるように仮想デバイスを提供している。
物理デバイスのドライバは既存のものを用いることができるため、仮想デバイスとのインターフェイスさえVMMで確立できれば、新しいデバイスにも対応しやすいという利点がある。またゲスト環境の管理などに、ホストOSのメモリ管理やプロセス・スケジューラといった既存のリソース管理機構を再利用できる。ただし仮想デバイスから物理デバイスに至るには、VMM、ホストOSと多くの階層を経由するために、仮想化によるオーバーヘッドは無視できない。
ホスト型は、マイクロソフトのVirtual PC/Virtual Server、VMwareのVMware Workstationなど多くのVMMが採用している。
ホスト型のアーキテクチャ |
■ハイパーバイザ型アーキテクチャ
ハイパーバイザ型では、下図のようにVMMはゲスト環境とハードウェア層の間に位置する。デバイス・ドライバはVMMが提供し、ゲスト環境向けに見せる仮想デバイスをVMM内でモデル化する。VMMが提供するデバイス・ドライバは、トップとボトムという2層構造になっており、トップ側はゲスト環境に対して仮想デバイスのインターフェイスを、ボトム側は本来のデバイス・ドライバとしての物理デバイスに対するインターフェイスを提供する。これにより、異なる物理デバイスに対しても、ゲスト環境には同じ仮想デバイスのインターフェイスが提供できるようになっている。
シンプルなアーキテクチャであるため、仮想化によるオーバーヘッドは少なくて済むという利点がある。半面、新しいデバイスに対応するにはVMMによって提供されるデバイス・ドライバの変更が必要になるという欠点がある。そのため、利用するデバイスの種類が比較的少なく、かつ「枯れたデバイス」を用いるサーバ向けのアーキテクチャといえる。
ハイパーバイザ型の代表的な実装としては、VMware ESXが挙げられる。
ハイパーバイザ型のアーキテクチャ |
■ハイブリッド型アーキテクチャ
ハイパーバイザ型とホスト型を組み合わせたのがハイブリッド型になる。VMMが位置するのはハイパーバイザ型と同じくゲスト環境とハードウェアの間となるが、デバイスの管理はVMMだけではなく、ホスト型におけるホストOS相当の機能を持つ専用のゲストOS(管理OSや親パーティション、ドメイン0などと呼ばれる)でデバイスを管理する。
このアーキテクチャは、実装が複雑になってしまうが、性能上オーバーヘッドを最小限に抑えたいデバイスはVMM内で管理し、汎用性の求められるネットワークやハードディスクのようなデバイスは専用ゲストで管理することによって、性能と運用のバランスの取れたアーキテクチャとすることが可能である。
代表的な実装例としては、XenSource(現在はCitrix Systemsに買収され、同社の仮想化事業部門に統合)のXenやWindows Server 2008のHyper-Vなどが挙げられる。
ハイブリッド型のアーキテクチャ |
準仮想化とは 一方、ゲスト環境のOSカーネルやドライバを、VMMと協調するようなものに改変できれば、VMMがハードウェアをエミュレーションするためのオーバーヘッドが大幅に軽減でき、性能向上を図ることができる。このような仮想化を「準仮想化(para-virtualization)」と呼び、Xenが採用している。 準仮想化では、前述のようにOSカーネルの改変が必要になるため、ゲスト環境は改変が可能なLinuxなどのオープンソースのOSに限定されてしまうという欠点がある。これも、プロセッサの仮想化支援機能(Intel VT-x/AMD-V)のサポートにより、状況は変わってきており、最新のXenでは、OSカーネルの改変なしにゲスト環境として、Windows OSのサポートが可能になっている。(デジタルアドバンテージ) |
すべてのITエンジニアに不可欠の存在となった仮想化技術
仮想化の利点をひとことでいえば、システム構築や運用管理の柔軟性が飛躍的に高まるということだろう。歴史的にOSは、特定のハードウェアに依存しないアプリケーション環境を提供するために発展してきたが、OSがハードウェアに依存するため、結果として情報システム全体がハードウェアの呪縛から逃れられない。これが、情報システムの設計や運用管理を難しくしてきた。
しかし仮想化技術の発達により、OSを含むソフトウェアのハードウェア独立性が一段と向上した。サーバの物理構成や設置場所によらず、必要に応じて柔軟にハードウェア・リソースをソフトウェアの実行に割り当てられる。これまで述べたとおり、この特長を生かせば、システム設計や運用管理のリスクや作業負担を大幅に軽減するとともに、ディザスタ・リカバリや可用性向上などにも容易かつ柔軟に対応できるようになる。ハードウェアの性能向上や、VMMの低価格化(OS標準装備)なども進んでおり、仮想環境導入のハードルは極めて低くなってきた。小規模から大規模環境まで、もはや仮想化技術に関する知識は、すべてのITエンジニアにとって不可欠の存在になったといってよいだろう。
今回は仮想化技術を理解するための第一歩として概要をまとめたが、VMMの技術詳細や実際のVMM製品の活用法などについては触れられなかった。これらについては、別稿でご紹介する予定である。
INDEX | ||
[基礎解説]仮想化技術はじめの一歩 | ||
1.仮想化技術が注目される理由 | ||
2.仮想化技術が利用される用途 | ||
3.仮想マシン・モニタの概要 | ||
基礎解説 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|