汎用機からオープン系システムへのダウンサイジングという流れは、一巡しつつある感がある。 この次に、この流れの中で、各所に乱立されたオープン系サーバを統合管理するという動きがある。 1つの見方ではあるが、 この動きを外部のITベンダーのリソースに委ねるのがクラウドコンピューティング、自組織内で解決しようとするのが、 サーバ統合、統合運用管理である。 どちらの場合もこれらを支える技術としてサーバ仮想化技術が注目されている。
サーバ仮想化の意義
単に箱(サーバ)を変えるのではなく、なぜ、仮想化するのか、 これは、アプリケーションの移行コストをできるだけ抑えるためである。 つまり、仮想化を使わずに、サーバ統合を図ろうとすると、 必然的に、標準OSや標準ミドルウェアの設定が必要となり、 このためのアプリケーションの改修に伴う移行コストが増大してしまうが、仮想化技術を使えば、 これまでのOS・ミドルウェア等の環境を極力残しながら、サーバの物理的な統合が可能となる。
サーバ仮想化の目的には、2つの側面がある、1つは、多数のサーバを統括的に運用することにより、 運用コストを抑える統合運用管理、 もう1つは、複数サーバのリソースを全体で最適化するハードウェアの最適化である。 前者の運用とは、サーバやネットワークやアプリケーション等のリソースの死活監視、 ユーザアカウント管理等をさす。 後者を実現する負荷分散の技術としては、クラスタリングやグリッドなどの分散処理技術がその一端をなす。
つまり、サーバ仮想化の意義は、複数の仮想マシンという多様性を許しつつ、 物理サーバは、ブレード等でスケーラビリティを確保し、 これにより、ハードウェアのリソースの最適化と運用コストの削減を実現することである。
ライセンス・コストの見積とサイジングが重要
仮想化の最大のメリットは、物理サーバの台数の縮退である。 これにより、スペースの節約、管理・運用コストの削減が可能となる。 システム構築・移行コストについては、物理的なサーバ台数の縮退に伴い、 ハードウェアやその保守コストは、削減される。 一方、ミドルウェアやアプリケーションのコストは、増加する傾向にある。 サーバ仮想化が登場した初期の頃は、仮想サーバ単位でソフトウェアのライセンスを購入しなければならなかったが、 最近は、ソフトウェアベンダーもサーバ仮想化という状況に対応するライセンス体系を提供しはじめている。 しかし、サーバ仮想化においては、コア数やユーザ数など様々な条件を考慮した上で、 ライセンスにかかるコストを把握しておく必要がある。
ハードウェアからアプリケーションまでの仮想化の層は、いくつかのパターンが考えられる。 特に仮想マシンを用い、層の多いパターンとなると、下層からハードウェア、ファームウェア、 ホストOS、仮想マシン・モニター、仮想マシン、ゲストOS、 アプリケーションというハードウェアの上に6層の構造となる。 また、ホストOSに代えて、ハイパーバイザーと呼ばれる仮想化ソフトを用いた仮想化では、 「OSの特権命令をエミュレートする際にオーバーヘッドが現れやすい」といわれる。 故に、サーバ仮想化では、このような状況を考慮した性能シミュレーションが必要となる。 仮想化システムのベンチマークは、仮想化ソフトのベンダーが提供するものもあるが、これらを参照しつつ、 ベンチマークの標準化団体SPECの仮想化システム向けベンチマークの開発組織 により標準化が進められている。
仮想化するか否かに係らず、アプリケーションの性能は、つまるところ、ハードウェアリソースが足りているか否かに左右される。 従来は、別々の物理サーバに閉じていたものが、仮想化により、特定のリソースの競合を引き起こすということも、 可能性としてはありえる。このために、仮想環境でのリソース使用率の監視と適切な割当てが、性能を担保するうえで重要となる。 これを正確に見積もるためには、移行元のサーバのリソースの使用状況を、リソース使用状況モニタリングツールなどで把握するとともに、 これらを元に仮想化サーバを前提としたベンチマーク等を用いて、サイジングする必要がある。