第一回では『仮想化技術の概要』について記載しました。第二回では『無料で使えるサーバの仮想化ソフトウェア』をターゲットとして記載します。
今回の記載内容は以下の構成となります。
5. サーバの仮想化について
6. サーバの仮想化ソフトウェアについて
7. 製品比較
5. サーバの仮想化について
仮想化の中心を司る技術と言えるのが、サーバ仮想化です。複数の異なったOSを動作させるための受け皿となる仮想ハードウェアと、物理サーバ上にエミュレートすることで実現します。
サーバ仮想化には2つの手法が存在します。1つは「ホストOS型」、もう1つは「ハイパーバイザ型」です。いずれの手法も、仮想ハードウェアのエミュレーションという点は同じです。
(1) ホストOS型
ホストOS型では、ホストOS(WindowsやMac OS X、Linuxなど)の上で仮想化ソフトを実行し、そこで仮想マシンを作成して実行する方法です。サーバ仮想化ソフトは仮想化されたハードウェアを作り、そこにOSやアプリケーションを導入できるようにします。1台の物理マシン上に複数の仮想マシンをつくることも可能です。その場合は物理的なCPUを共有して利用します。仮想化のための専用のOSを用意する必要がなく、アプリケーションと同じように手軽に実行できるため、別のマシンを用意せずに他のOSを新たにインストールしたい場合や、実行・検証環境などに用いられています。
ホストOS型のデメリットとしては、仮想マシンとハードウェアの間にフル機能のOSが介在するため、実行時のオーバヘッドが大きく、仮想マシンの動作速度が遅くなってしまう点があります。
(2) ハイパーバイザ型
ハイパーバイザ型は、ハードウェアのBIOSから直接仮想化ソフトを起動して、その上で仮想マシンを実行するタイプです。ホストOSの起動の介さずに仮想マシンの実行が行えるため、ホストOS型に比べてオーバヘッドが小さいのが特徴です。このため、パフォーマンスを必要とするサーバの仮想化で主に使用されていて、近年のサーバ仮想化の主流となっています。
ハイパーバイザ型には、「完全仮想化」と「準仮想化」の2種類の仮想マシン実現方式が存在します。
完全仮想化は、物理マシンを完全に仮想マシンとして実現する方式で、WindowsなどのOSに手を加えることなくそのまま仮想マシンで実行することが可能です。
準仮想化は、現実のハードウェアのエミュレーションは行わず、仮想ハードウェアにのみアクセスするようにカスタマイズされた準仮想化対応OSをゲストOSとして稼動させることができます。ハードウェアを完全にエミュレーションする処理は大きな負荷が伴うため、仮想環境の実行速度が低下してしまう懸念がありますが、その処理が不要な準仮想化技術では性能をそれほど低下させることなく仮想OSを走らせることができます。ただし、準仮想化では、仮想ハードウェアを規定するため、仮想環境で動作させるOSごとに対応するドライバが必要になります。未対応のOSに関しては完全仮想化を使用することになります。
6. サーバの仮想化ソフトウェアについて
(1) VMware Server
VMware ServerはVMware社が無償で提供しているホストOS型の仮想化ソフトウェアです。特徴はWebベースのインターフェースを採用している点です。そのためネットワーク上のどのマシンからでも、VMware Serverにアクセスでき、仮想マシンの作成、管理、実行ができます。クライアント/サーバ型で使用する仮想化ソフトでもあります。但し、VMware ServerをインストールしたホストOSが起動していないと仮想マシンが起動できないデメリットもある反面、ホストOSが備えているドライバが対応した全てのデバイスを使用できるといったメリットがあります。
VMware Serverは、以下のURLからダウンロードできます。
http://www.vmware.com/jp/products/server/
(アカウントを持っていない場合はアカウントを作成する必要があります。)
(2) VMware vSphere Hypervisor(VMware ESXi)
VMware vSphere HypervisorはVMware社が無償で提供しているハイパーバイザ型の仮想化ソフトウェアです。サーバ機の上に直接インストールし、この上で様々なOSを動作することが可能とします。ゲストOSに仮想化のための修正を必要とせず、通常のOS製品を仮想マシンにそのままインストールして利用することができます。「vmkernel(※1)」をベースにした仮想マシンの実行環境を使用しているため、専用のデバイスドライバが必要となります。
※1:VMware社が開発した仮想化を実現するための独自のカーネルです。
VMware vSphere Hypervisorは、以下のURLからダウンロードできます。
http://www.vmware.com/jp/products/datacenter-virtualization/vsphere-hypervisor
(アカウントを持っていない場合はアカウントを作成する必要があります。)
(3) Citrix XenServer
Citrix XenServerはXenをベースとしたハイパーバイザ型の仮想化ソフトウェアです。XenSource社によって開発されていたオープンソースソフトウェアXenが、2007年にCitrix Systems(以降Citrix)社に買収され、XenServerと名を改めて提供されています。2009年3月にはXenServerを無償化し、エンタープライズ向けの機能の無償提供を始めました。XenServerは、仮想化のオーバヘッドを軽減するために、準仮想化のアーキテクチャを採用しています。Xenの特徴は準仮想化の仕組みを取り入れていることにあります。またIntel-VTといったプロセッサの仮想化支援機能を利用した完全仮想化の仕組みを対応したことによって、WindowsをはじめとするゲストOSを修正なしにそのまま稼働させることが可能になっています。
XenServerは仮想マシンを制御するだけなので、仮想マシンを経由して命令を受けることになります。この命令を与える仮想マシンはドメイン0と呼ばれる特殊な仮想マシンになります。それ以外の仮想マシンはドメインUと呼ばれます。
Citrix XenServerは、以下のURLからダウンロードできます。
http://www.citrix.co.jp/products/xenserver/download.html
(4) Hyper-V
Hyper-V はMicrosoft社が提供するサーバ向けの仮想化ソフトウェアです。Hyper-V Server 2008(以下、Hyper-V)は2008年10月より無償ダウンロード提供を開始しています。Windows Serverの64ビット版の機能の1つとして、Windows Server 2008 x64に組み込まれて提供されています。
Hyper-Vでは、「Windows Hypervisor」と呼ばれる新たなレイヤー上でゲストOSやWindows Server 2008自信が動作するハイパーバイザアーキテクチャを採用しています。
Hyper-VはWindows Server 2008をベースに開発されたシステムのため、管理コンソールも従来のWindows Serverの運用担当者のスキルをそのまま活かせることができるため、汎用性のも特徴の1つです。Hyper-Vでは管理用のOSを必要とし、ゲストOSは管理用のOSのデバイスドライバに接続します。
Hyper-V Server 2008(最新版はHyper-V Server 2008 R2)は以下のURLからダウンロードできます。
(5) KVM(Kernel-based Virtual Machine)
KVMはLinux上で仮想化環境を利用するためのハイパーバイザ型のソフトウェアです。Linux Kernelに仮想マシンモニタ(VMM:Virtual Machine Monitor (※2))を実装し、仮想的なコンピュータの上で複数のOSを並列に動作させられるようにします。CPUのスケジューラ、メモリ管理など、Linux Kernelがもつ機能をそのまま利用することができます。
KVMはQUMRANET社が開発し、オープンソースとして公開したもので、Linux Kernel 2.6.20から標準搭載されています。同社は2008年9月にRed Hat社に買収され、子会社となっています。
KVMでの仮想マシンを動かすには「QEMU」というエミュレータが必要となります。
※2:VMMはゲスト環境ごとに物理リソースをエミュレーションして、ゲスト環境からの要求を調停し、ゲスト環境ごとにメモリ空間を隔離する役割も持っています。OSがユーザ・アプリケーションに対して果たしているのと同じような役割をVMMはゲスト環境に対して提供しています。
KVMは、以下のURLからダウンロードできます。
http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers
(6) OpenVZ
OpenVZはParallels社が開発した仮想化ソフト「Virtuozzo」のオープンソース版で、OS仮想化技術を使ったサーバ仮想化ソフトウェアです。サーバを複数の仮想プライベート(VPS(※3))に分割することができるのが特徴です。但し、複数のOSを実行できないという欠点もあります。Linuxのホスト上でLinuxを稼動させることしかできません。その代わり、他の仮想化ソフトに比べるとシステムリソースを少なくできるメリットがあります。
※3:Virtual Private Serverの略で、1台のサーバの中で専用のソフトウェアを使ってあたかも複数のサーバが動作しているかのような環境を実現するためのサービスのことです。レンタルサーバを提供しているホスティング会社などで導入が進んでいます。
OpenVZのカーネルは以下のURLからダウンロードできます。
http://openvz.org/download/kernel/
7. 製品比較
6章で紹介しました製品について表にまとめました。
※ 7.1.1:対応ゲストOSについて
WindowsやLinux以外にも以下のUNIXと幅広くOSをサポートしています。
・ FreeBSD 4.9以降
・ Solaris オペレーティング システム x86 プラットフォーム版 8以降 など
※ 7.1.2:対応ゲストOSについて
WindowsやLinux以外にも多くのOSをサポートしています。
・ FreeBSD 6
・ Solaris
※ 7.1.3.1:対応ゲストOSについて
対応するゲストOSはWindowsや一部のLinuxのみサポートされています。
※ 7.1.3.2:XenServerではLinuxをゲストOSとする場合、準仮想化カーネルを使用してゲストOSの中でCPU仮想化への対応を行っているが、WindowsゲストOSではCPUの仮想化支援機能を使用します。そのため、WindowsゲストOSを使用する場合は、Intel-VT-x/AMD-Vがサポートされているサーバを用意する必要があります。
※ 7.1.4:対応ゲストOSについて
対応するゲストOSはWindowsや一部のLinuxのみサポートされています。
※ 7.1.5:対応ゲストOSについて
対応するゲストOSはWindows、Linux以外にもUNIXと幅広くサポートされています。対応しているOSが他のソフトウェアに比べると格段に多いのも特徴です。
いかがでしたか、今回は『無料で使えるサーバの仮想化ソフトウェア』について記載しました。仮想化技術は今後さらに普及してくる技術だと思います。ブログを見て、仮想化技術について興味をもって頂けたらありがたいです。
【参考文献】
特集 仮想化入門
http://www.plathome.co.jp/solution/virtualserver/introduction/
第1回 仮想化技術のメリットとデメリット
http://thinkit.co.jp/story/2011/02/01/1970?page=0,0
仮想化の真実
http://www.computerworld.jp/topics/602/%E4%BB%AE%E6%83%B3%E5%8C%96
仮想化のメリットとデメリットを見極める
http://enterprisezine.jp/article/detail/1536/
株式会社ジェイエスピー
吉田 利充
monipet
動物病院の犬猫の見守りをサポート
病院を離れる夜間でも安心
ASSE/CORPA
センサー、IoT、ビッグデータを活用して新たな価値を創造
「できたらいいな」を「できる」に
OSGi対応 ECHONET Lite ミドルウェア
短納期HEMS開発をサポート!
GuruPlug
カードサイズ スマートサーバ
株式会社ジェイエスピー
横浜に拠点を置くソフトウェア開発・システム開発・
製品開発(monipet)、それに農業も手がけるIT企業