仮想化はCPUやメモリー,ストレージといったコンピュータのハードウエア・リソースをOSやアプリケーションへ柔軟に割り当てるための技術である。CPUやストレージといった物理的なリソースに対してそれと対応づけた論理的なリソースを作成し,プログラムには論理的なリソースを通じてハードウエアを利用させる。論理的なリソースに対してOSのような基盤プログラムは,物理的なリソースとまったく同じようにアクセスできる。

 柔軟な割り当ては「論理的なリソース」と「物理的なリソース」の対応づけを1対多や多対1にしたり,対応関係を巧妙に変更したりすることで実現する。

 例えば,サーバー仮想化では,物理的に1台しかないマシンが複数台のマシンのように扱え,1台のマシンで異種OSやアプリケーションを同時稼働させられる。同様にストレージ仮想化では,複数のストレージを1つにまとめたり,物理的な単位にとらわれずに領域を分割したりできる(図1)。たとえれば,サーバー・コンピュータの一部を切り出して特定用途のサーバーを何台も構築したり,複数の小さなストレージをくっつけて大きなストレージにしたりできるようなものである。

図1●仮想化とは?
図1●仮想化とは?
物理的なリソース(CPU,メモリー,ストレージなど)とは独立した論理的なリソースを設定し,利用者やプログラムがそれを利用可能にすること。システム構成の柔軟性を高め,リソース利用効率の向上などを実現する。

 こうした仮想化の技術は,もともとメインフレームで開発され利用されてきたが,いまやPCサーバーやそのストレージを含めた広い範囲で普及が始まっている。これからは,重要なシステム基盤技術の1つとして必ず導入を検討することになるだろう。

ハード利用効率の向上に効果

 仮想化が普及している背景は,多くのシステムでハードウエア利用効率の低さが目立っていることだ。

 システムの応答が遅くなったり,データの記録容量が増えたりした場合,「サーバーやストレージの増強」で対応することが普通だろう。だが,そうして増やしたサーバーやストレージは必ずしも効果的に利用されていない。「特定のサーバーやストレージ以外はほとんど遊んでいる」「よく使われているサーバーやストレージもフルに使われている時間帯は限られている」といった状況がよくある。

 従来はやむを得ないとされていたそうした状況も次第に許容できなくなってきた。「電源容量の不足や冷却コストの増加」「設置スペースの不足」「運用コストの増加」などが深刻になっているためだ(図2)。新規にハードウエアを導入すれば,必ず一定の電力を消費するし,発熱がある。設置スペースも用意しなければならないし,保守作業の人員や予算が必要になる。

図2●仮想化が注目される理由
図2●仮想化が注目される理由
サーバーやストレージを増やしても,特定のサーバーやストレージ以外はほとんどが遊んでいることは多い。一方で,運用コストの増加設置スペース不足などが深刻になっている。

 仮想化技術を使えば,このような問題に対処できる。仮想化技術では,物理的なハードウエアの能力を,必要なときに必要とするプログラムに重点的に割り当てられる。仮想化技術自体にはハードウエアの処理能力を向上させる機能はないが,仮想化技術がもたらす「柔軟性」を活用すると,見かけの処理能力を劇的に向上させられる。

 例えば,サーバー仮想化によって,昼に処理のピークがあるサーバーと夜に処理のピーク時間帯があるサーバーをそれぞれ仮想化したマシンに変更し,1台のハードに統合すると効果的だ(図3)。1つの仮想マシンには昼に多くのリソースを割り当て,もう1つの仮想マシンには夜にリソースを多く割り当てる。これにより,1台のサーバーが常に高水準で利用され,それまで2台必要だったハードウエアは半分になる。言い換えるとハードウエアの見かけの処理能力が2倍になるわけだ。同じ原理により,ホスティング・サービスでも,より多くのユーザー企業の環境を少ないサーバーで効率的に運用できる可能性がある。

図3●仮想化によるサーバー統合で平均リソース利用率は向上する
図3●仮想化によるサーバー統合で平均リソース利用率は向上する
1台のコンピュータは通常,短時間集中的にコンピュータのリソースを利用することが多い。複数のコンピュータを集約すれば平均リソース利用率が向上する可能性がある。