[運用]3大仮想化ソフトウェア機能比較 第1回 VMware ESXのアーキテクチャ概要 1.仮想化環境の基礎 日本アイ・ビー・エム株式会社Microsoft MVP for Virtualization - Virtual Machine(Jul 2007 - Jun 2009) 渡邉 源太 2009/02/19 |
仮想化とは
コンピュータの世界において仮想化とは、資源の物理的特性を抽象化することによって、それを利用する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の概要 | ||
運用 |
- 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をインストールしてみる
|
|