ハードの用途を広げることも可能

 第1回では,仮想化が必要な理由,そして仮想化によりコンピュータ・リソースを効率的に利用できるメリットについて紹介した。

 しかし,

 仮想化にはそのほかにも数多くのメリットがある。特にサーバー仮想化で作った仮想マシンは独立性が強く,1つが障害で停止しても他の仮想マシンに影響が及ばないことに注目できる。これを応用すると,開発環境の確保,可用性向上,システム移行などに役立つ(図4)。

図4●仮想化によるサーバー活用範囲の拡大
図4●仮想化によるサーバー活用範囲の拡大
1台のマシンの上で複数の仮想的なコンピュータを作れば,それぞれを使って異種OSや異なるアプリケーションを同時稼働させたり,フェイルオーバー・クラスタを組んだりできる。

 例えば,システム開発にサーバー仮想化を応用すると,開発用のマシンを別途用意することなく開発環境を構築できる。開発中のプログラムに問題がありOSがクラッシュしても,影響があるのはその仮想マシンだけだ。システムの可能性を上げるフェイルオーバー・クラスタに仮想マシンを利用することも可能である。その場合は待機系のシステムのリソースを実際に必要になるまで減らしておけるというメリットがある。さらに,システム移行も容易になる。仮想化ソフトには,古いバージョンのOSの稼働をサポートしているものが多い。古いアプリケーションをOSごと仮想マシンに移すことで,新しいハードウエアへの移行が容易にできる。

 仮想化技術はシステムの構築はもとより,運用管理も変えていく(図5)。仮想化したサーバーではOSやアプリケーションなどのプログラムや設定全体を1つにまとめて扱える。そのため,少数のファイル・コピーで,OSやアプリケーションの設定も含めてシステムをまるごと別のハードウエアに移せる。

図5●サーバー仮想化は運用管理も変える
図5●サーバー仮想化は運用管理も変える
仮想マシンではOSとAP全体を1つにまとめて扱える。移行やバックアップなどでは,物理マシンと異なる方法が可能になる。

 バックアップとシステムの展開にも仮想化技術は役立つ。OSとアプリケーション全体をまとめた仮想マシンのファイルをバックアップしておけば,障害が発生したときも確実に稼働する環境を簡単に再構築できる。また,システムの展開ではひな形となる仮想マシンのファイルを用意しておいて,コピーすれば同一構成のコンピュータを短期間で稼働させられるようになる。例えば,Webサーバーの台数を増やしたいときは,Webサーバーのひな形になっている仮想マシンをコピーしたあと,設定を変えて起動させるといったような作業で済む。

 ストレージ仮想化では,複数の異なる種類のストレージをあたかも1つの装置として利用できるようになる。

 企業は様々な容量/アクセス速度/ベンダーのストレージを各所に分散保持していることが多い(図6)。

図6●ストレージ仮想化のメリット
図6●ストレージ仮想化のメリット
複数のストレージを1つの装置として利用,ファイルなどの保存場所を情報の価値に応じて自動的に選択─などがある。

 従来は,個々のストレージが特定のコンピュータ用のデータを保管しており,個別最適の仕組みになっていた。空き容量が不足したとき,別のストレージへデータを移すこともなかなかできない。データを移行するときには,そのデータを使うシステムを停止させる必要があるが,一般にデータが大きいためコピーに時間がかかる。移行したあとのデータの保存場所をOSやアプリケーションなどに再設定する作業が必要になることも多い。

 こうした問題はストレージ仮想化を使うと解決する。例えば,頻繁に使うデータは自動的に高速なディスク装置へ移せるようになる。保存から時間がたってあまり使わないデータは自動的にディスク装置からテープ装置に移すことで保存コストを低減できる。さらに,データの移行中もデータ・アクセスが可能になり,移行先のストレージをOSやアプリケーションなどへ再設定する必要もなくなる。

自動的なリソース再配置も実現

 仮想化技術活用の究極は,負荷に応じてハードウエア・リソースを再配分する「自動化」である(図7)。システムの負荷を運用管理ツールで測定し,それと仮想化によるリソース再配分を連動させる。

図7●仮想化技術では負荷に応じて自動的にリソースを再配置することも実現できる
図7●仮想化技術では負荷に応じて自動的にリソースを再配置することも実現できる
仮想化は,物理的な装置の配置に依存せずに,最適なリソース配置を柔軟に実現することが狙いだ。システムの負荷や使用目的に応じて,自動的にリソースを再配置することが実現し始めている。

 例えば,複数の業務システムで共有するサーバーにおいて,業務の負荷や優先度に応じて自動的にリソースを割り当て,重要な業務の処理に関する応答速度を確保するといったことが可能になる。業務システムAの負荷が高まったときは,CPUパワーとメモリーを業務システムAが稼働する仮想マシンに多く割り当て,負荷が低下したときにはリソースを減らすといったようなことを行う。