[運用]

3大仮想化ソフトウェア機能比較
── Microsoft Hyper-V vs. VMware ESX vs. Xen ──

第1回 VMware ESXのアーキテクチャ概要

1.仮想化環境の基礎

日本アイ・ビー・エム株式会社
Microsoft MVP for Virtualization - Virtual Machine(Jul 2007 - Jun 2009)
渡邉 源太
2009/02/19

仮想化とは

仮想化関連記事
基礎解説
仮想化技術はじめの一歩
仮想化技術の性能を向上させる、ハードウェア仮想化支援機能とは?
Windows Server 2008の基礎知識
第14回 Windows OSに標準搭載された仮想化機能「Hyper-V」
運用
仮想化環境を効率よく管理するSCVMM 2008の概要
第1回 SCVMMによって複数のHyper-Vを一元管理する
第2回 SCVMMによる仮想システムの構築
第3回 SCVMMによる仮想サーバ作成と仮想システムの管理
Hyper-V実践サーバ統合術
第1回 仮想化環境導入の実際と構築ノウハウ
第2回 Hyper-Vゲスト環境管理法
第3回 Hyper-Vによる実践サーバ統合
第4回 Hyper-Vによるクイック・マイグレーションの実践
3大仮想化ソフトウェア機能比較
第1回 VMware ESXのアーキテクチャ概要
第2回 Citrix XenServerとMicrosoft Hyper-Vのアーキテクチャ概要
第3回 仮想化ソフトウェア選択の用途別ポイント

 コンピュータの世界において仮想化とは、資源の物理的特性を抽象化することによって、それを利用するOSやアプリケーション、ユーザーなどから隠ぺいする技法である。それによって、サーバやOS、アプリケーション、ストレージなど1つの物理的な資源(ハードウェア・リソース)を複数の論理的な資源に見せたり、複数のストレージやサーバなどの物理的な資源を1つの論理的なリソースに見せ掛けたりすることが可能になる。現在、一般的に仮想化といった場合は、以下のような種類が挙げられる。

  • サーバの仮想化
  • クライアントの仮想化
  • ストレージの仮想化
  • アプリケーションの仮想化

 ここでは、その中でも特に注目を集めているサーバの仮想化に的を絞って解説していく。サーバの仮想化を使用することによって、1台のサーバ上で複数のOSを同時に稼働させることが可能になる。サーバの仮想化というのは、実はそれほど新しい考え方ではなく、その歴史をたどると、IBMが1960年代に発表したIBM System/360向けの仮想化OS「CP-67」という、メインフレームで実現された仮想マシン技術に行き着く。現在においても、その技術は受け継がれz/VMという名前で広く使用されている。

 x86サーバの世界においても、プロセッサの飛躍的な性能の向上や技術革新により、サーバの仮想化は現実的な選択肢となりつつある。サーバの仮想化によって、複数のOSやその上で動作するアプリケーションを同一のハードウェア上で動作させることが可能になるため、ハードウェアの購入コストを削減することが可能になる。また、資源の利用効率を向上させ、セキュリティ管理を容易にすることによって、運用・管理コストの大幅な削減が期待できる。

仮想化の基礎知識

 サーバ仮想化を実現する製品の紹介の前に、まず仮想化に関する基本的な用語と概念について解説しておきたい。仮想化を実現するためには仮想化レイヤと呼ばれるソフトウェアが必要になるが、仮想化レイヤの種類には、大きく分けてホスト・ベースの仮想化ソフトウェアとベアメタル型(*1)のハイパーバイザ(*2)の2種類がある。ホスト・ベースの仮想化ソフトウェアというのは、ハードウェア上にOS(ホストOS)を導入し、その上に仮想化レイヤを稼働させる方式である。ホスト・ベースの仮想化ソフトウェアの代表的なものとしては、Microsoft Virtual ServerやVMware Serverなどがある。

*1 ベアメタル(bare metal)
直訳すると、むき出しのままの金属という意味。何もOSやソフトウェアが載っていない、素のままのサーバ・ハードウェアのことを指すコンピュータ用語。ベアメタル型の仮想化ソフトウェアとは、何も追加のOSやソフトウェアを必要としないタイプ。

*2 ハイパーバイザ(hypervisor)
一般に、ユーザー・プログラムなどから見てそれを制御する側にあるOSなどをスーパーバイザと呼ぶ。それを制御するさらに上位の概念/機構をハイパーバイザという。

ホスト・ベースの仮想化ソフトウェアの構成

 一方、ベアメタル型のハイパーバイザとは、ハードウェアの上で直接仮想化レイヤが稼働する方式であり、ホスト・ベースの仮想化ソフトウェアと比較して仮想化にともなうオーバーヘッドが少なく、より高速に動作するという特長がある。通常、管理用としてLinuxやWindowsなどのOSをハイパーバイザ上で動作させることが多い。

 ベアメタル型のハイパーバイザは、単にハイパーバイザ方式と呼ばれることもある。ハイパーバイザ方式の仮想化ソフトウェアの代表的なものとしては、VMware ESXやXen、Microsoft Hyper-Vなどがある。従来、x86向けの仮想化ソフトウェアは、ホスト・ベースが主流であったが、現在ではオーバーヘッドが少ないハイパーバイザ方式に移りつつある。

ベアメタル型の仮想化ソフトウェアの構成

 また、仮想化を実現する仕組みとして完全仮想化(Full Virtualization)と準仮想化(Para Virtualization)の2つに分類することができる。完全仮想化とはバイナリ・トランスレーションとも呼ばれ、仮想化レイヤにおいてプロセッサの特権命令を変換する仕組みである。これにより、仮想マシン上で動作するゲストOSには特別な修正を行う必要がなく、そのまま動作させることが可能になる。これに対し準仮想化では、ゲストOS自体を修正して仮想化に対応させることで、仮想化にともなうオーバーヘッドを削減する方式である。完全仮想化に対応した仮想化ソフトウェアには、Microsoft Virtual ServerやVMware Server、VMware ESXなどがあり、準仮想化に対応した仮想化ソフトウェアとしては代表的なものとしてオープンソースのXenなどがある。

 さらに、現在ではIntel VTやAMD-Vといったようなプロセッサ自体に仮想化を支援する機能が実装されているものがある。プロセッサの仮想化支援機能は、プロセッサの特権モード(リング0)に仮想化ソフトウェアが動作するためのVMX rootモードとゲストOSが動作するためのVMX non-rootモードを用意し、仮想化ソフトウェアの操作によりこの2つのモードを切り替えて稼働させる(プロセッサの仮想化支援機能については、「仮想化技術の性能を向上させる、ハードウェア仮想化支援機能とは?」を参照のこと)。

 この機能を使用することによって、プロセッサの仮想化支援機能に対応する仮想化ソフトウェアをより高速に動作させたり、Xenの上で準仮想化に対応していないWindowsなどのゲストOSを修正なしにそのまま稼働させたりすることなどが可能となる。そのため、現在では多くの仮想化ソフトウェアがプロセッサの仮想化支援機能に対応するようになってきている。

 それ以外にも、Virtuozzoやそのオープンソース版であるOpen VZのような、x86ハードウェアではなくOSインスタンスを仮想的に稼働させる、OSの仮想化と呼ばれる方式などがある。VirtuozzoにはWindows版とLinux版があり、それぞれWindowsやLinuxのOSを複数同時に稼働させることができるが、WindowsとLinuxの混在環境は実現できない。この方式では、ハードウェアの仮想化と比較して、より多くのOSインスタンスを少ないオーバーヘッドで稼働できるため、主にWebサーバのホスティング用途などに使用されている。

OS仮想化の構成

 このように、仮想化を実現する方式にはさまざまな種類がある。本連載では、この中から比較的よく利用されている製品である「VMware Infrastructure 3」「Citrix XenServer」「Microsoft Hyper-V」を取り上げ、それぞれの機能や特徴を解説、その中でそれぞれの製品がどのような方式を採用しているのかを明らかにしていく。なお、仮想化技術の概要については、「仮想化技術はじめの一歩」)にて解説しているため、詳しくはそちらを参照してほしい。


 INDEX
  [運用] 3大仮想化ソフトウェア機能比較
  第1回 VMware ESXのアーキテクチャ概要
  1.仮想化環境の基礎
    2.VMware Infrastructure 3の概要

 運用


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間