基礎解説 仮想化技術はじめの一歩 ── 仮想化は何をもたらすのか? 技術上のポイントは? ここから始める仮想化技術入門 ── 1. 仮想化技術が注目される理由インテル株式会社 ソフトウェア&ソリューション統括部分散並列技術部 大原 久樹 2008/08/07 |
|
なぜいま仮想化技術なのか
これまで企業の情報システムは、とかく用途ごとにサーバを導入しがちであった。ファイル/プリント・サーバに始まり、メール・サーバ、データベース・サーバ、グループウェア・サーバなど、企業の成長とともに新たなサーバが導入され、いまや企業内に多くのサーバが存在する状態となっているのではないだろうか。Windowsサーバ自体が安価であることから、複数の用途で共有するために性能やハードウェア要件(メモリやディスク容量など)を見直すよりも、新たにサーバを導入した方が手っ取り早いといった理由から、この傾向に拍車をかけてしまった。確かに用途ごとにサーバを導入すれば、1つのアプリケーション/ハードウェアで障害が発生しても、ほかのアプリケーションへは影響しないなどのメリットがある。
一方、サーバの数が増えたことでシステム全体の複雑さが増し、管理コストを引き上げる結果となっている。構成変更時の煩雑化や障害対応の遅延など、さまざまな悪影響をもたらす原因ともなっている。また、サーバの設置スペースや消費電力、空調コストが増えるといった問題も生じる。
そこで、こうして増加した複数のサーバを1つのサーバに統合する「サーバ統合(サーバ集約)」に注目が集まっている。サーバ統合を行うことで、複数のサーバを管理する手間が軽減されたり、負荷にばらつきがあるサーバ同士をうまくまとめて負荷を平準化することで、サーバの利用効率を向上させたりすることが可能になる。物理サーバの台数が減ることで、設置スペースや消費電力も節約できる。
ただサーバ統合を行うには、それぞれのサーバ上で動作していたアプリケーション環境を移転先のサーバ上のOSで動くように変更する必要があった。しかし異なるOSに移行するなど、大幅な環境変化が伴う場合には、全体工数や互換性の問題から、移行が現実的とはいえないことも多かった。また、別々のサーバで動作していたアプリケーションを1つのサーバ上で動かした場合、システムのトラブル時に双方のアプリケーションが影響を受けてしまうという、耐障害性の低下の問題もあった。
こうした問題の多くは、仮想化技術を用いることで解決可能となってきている。統合先のサーバ上に仮想マシンを構築し、そこに以前のサーバ環境をそのまま移動させることで、複数のサーバを運用したのとほぼ同じ状態を1つのサーバで実現できるからだ。これまでも仮想化技術を利用したサーバ統合は提唱されているが、ゲストOS(仮想マシン上で動作するOS)の性能が低下してしまうため、広く利用されるまでに至らずにいた。しかしプロセッサのマルチコア化によってサーバの性能が大幅に向上したこと、プロセッサに仮想化支援機能が実装され、仮想化による性能ダウンの影響が低減されたことなどにより、状況は大きく変わりつつある。
すでにWindows Server 2008では、Hyper-Vと呼ばれるVMM(Virtual Machine Monitor:仮想マシン・モニタ)が標準で搭載され、Windows Server 2008 Standardでも1つのゲストOS(Windows Server 2008 Standard)が無料で利用可能になるなど、仮想化技術を利用するための追加コストも不要になっている。またハードウェア・ベンダやシステムインテグレータにおける仮想化のノウハウが蓄積されてきたことから、仮想化を導入するための技術的なハードルも下がってきている。本稿では、仮想化技術を利用するメリットとVMMの概要について解説する。(デジタルアドバンテージ)
仮想化技術とは
仮想化技術とは、ソフトウェアだけで仮想的なコンピュータ環境(仮想マシン)を作り、この上でOSやアプリケーションをインストールして使用可能にするものである。仮想マシンで実行されるゲストOSは、仮想化していない場合と同様、1台のコンピュータを専有しているものとして稼働するため、仮想マシンを提供するVMMは、ハードウェア・リソースを制御し、必要に応じてゲストOSに制御を移すといった処理を行うことになる。
下図は、仮想化技術の概念である。後述するように、VMMは実装方法などによりいくつか種類があるが、ここではマイクロソフトのVirtual PC/Virtual ServerやVMwareのVMware Workstationなどが採用しているホスト型の例で示している。
仮想化技術の概念 |
このように、本来は1台のサーバ上で1つのOSしか実行できなかったものが、VMMを利用することで複数のOSの実行が可能になるわけだ。ハードウェアから見ると、1つのOS(ホストOS)だけが実行されているように見えるし、各ゲストOSからはハードウェアを専有しているように見える。ではプロセッサ、メモリ、デバイス、ストレージなどがVMMでどう扱われるのか順番に見ていこう。
●プロセッサ
仮想化技術では、1つのハードウェアを複数の仮想マシンで共有することになる。当然ながらプロセッサも共有の対象となっており、各仮想マシンにどの程度のプロセッサ・リソースを割り当てるかの設定も可能である。割り当てられたプロセッサ・リソースは、仮想マシンからは仮想プロセッサとして見えることになる。仮想プロセッサは、物理プロセッサ能力に対する割合(パーセント)で設定される。
Virtual PCやVirtual ServerといったVMMでは、仮想マシンが1つの仮想プロセッサしか利用できない。そのためホスト・ハードウェアがマルチコア・プロセッサであっても、仮想マシン(ゲストOS)ではシングル・コアでしか利用できない仕様であった。実行する仮想マシンの数が、プロセッサ・コア(独立した1つのプロセッサ。マルチコア・プロセッサでは複数のプロセッサ・コアが1つのプロセッサ・パッケージに搭載されている)の数よりも少ない場合は、プロセッサ・リソースが余ってしまうことになる。
一方、1つのプロセッサ・コアしかサポートしないことから、仮想マシンはプロセッサ・コア単体の性能に依存することになる。特にデータベースやERPなどのプロセッサ・リソースを必要とするアプリケーションを仮想化するような場合は、物理サーバ全体で見てプロセッサ・リソース(プロセッサ・パワー)が余っていても、仮想マシンに割り当てられたプロセッサ・パワーは不足するといったことも起きる。しかし、Windows Server 2008のHyper-Vでは最大2コアまで、VMwareのVMware Virtual SMPでは最大4コアまでのマルチコア(マルチプロセッサ)構成をサポートするVMMも登場してきているので、プロセッサ・パワーを必要とするアプリケーションでは、こうしたマルチコアに対応したVMMの導入を検討するとよい。
●メモリ
仮想マシンを作成する際に設定したサイズのメモリが、その仮想マシンの起動時に物理サーバから割り当てられる。例えば、物理サーバ上に4Gbytesのメモリが搭載されており、仮想マシンに2Gbytesを割り当てるように設定していたとすると、仮想マシンを起動すると、物理サーバ上の2Gbytesのメモリがその時点で使われることになる。仮想マシンのメモリ使用状況に応じて動的にメモリが使われるわけではないので、事前に仮想マシンが使用するメモリ容量を見積もっておく必要がある。
また、物理サーバに搭載されたメモリ以上は当然ながら割り当てられないので、物理サーバには起動する仮想マシンに割り当てたメモリ容量の合計以上(ホストOSやVMMが利用するメモリ容量も必要)のメモリを搭載しておく必要がある。
●ハードディスク
仮想マシンのハードディスク(仮想ハードディスク)は、物理サーバのハードディスク上に1つのファイルとして作成される。多くのVMMでは、仮想ハードディスクの容量は動的に拡張するように設定されており、物理サーバ上のハードディスクの容量を節約できるようになっている。必要に応じて、仮想マシンを作成するときに指定した仮想ハードディスクの容量まで拡張される。ただし仮想ハードディスク上のファイルを削除するなどして、使用している容量が減っても、仮想ハードディスクに対応する物理ハードディスク上のファイル・サイズが減ることはない(VMMに付属のツールなどによって、仮想ハードディスクの容量を圧縮することができるものもある)。
●デバイス
仮想マシン上のゲストOSからは、VMMがサポートするデバイスが見えることになる。例えば、物理サーバ上にAというイーサネット・コントローラが搭載されていても、仮想マシンではBというイーサネット・コントローラに見えるようにVMMがエミュレートする。これにより、物理サーバに搭載されるデバイスにかかわらず、仮想マシンでは常に同じデバイス・ドライバを利用して、デバイスが利用できることになる。
従来、VMMが提供するデバイスは、比較的古めの普及した製品(レガシー・デバイス)をエミュレーションするものが多かった。レガシー・デバイスならば、OSに標準でデバイス・ドライバなどが用意されていることが多く、特別なデバイス・ドライバが不要だからだ。一方で新しいデバイスに対しては、VMM側が対応していないことから利用できないこともあるので注意が必要だ。例えばVirtual PCやVirtual Serverでは、USBインターフェイスはサポートされておらず、USBメモリなどを利用することができない。
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をインストールしてみる
|
|