第2回は,サーバー仮想化に関する予測である。仮想化(バーチャリゼーション)とは何かについては改めて説明するまでもないだろう。物理的な実体の複雑性を隠して,単純な論理的実体を利用者(人の場合もあれば,プログラムなどの場合もある)に見せるためのテクノロジの総称である。

 仮想化については既にこのコラムでも何回か述べてきたが,本稿で特に触れたいサーバー仮想化とは,1台のサーバーを分割し,仮想的な複数のサーバーに見せるためのテクノロジである。具体的には,パーティショニング(区画分割),VM(バーチャル・マシン)などと呼ばれるテクノロジである。

 単に物理的サーバーを分割してできた仮想サーバー上で,複数の独立したOSを稼働するだけでなく,仮想サーバー上へのCPUやメモリなどの資源の割り当てを変更できることで,サーバー管理の柔軟性は飛躍的に向上する。

◆なぜ,サーバー仮想化が必要なのか?

 サーバー仮想化を採用する大きな動機の1つはサーバー資源の有効利用である。現在,典型的なオープン系サーバー(RISC/Intelサーバー)のプロセサ利用率は30%以下である。ピーク時の業務量に備えて余裕を持ったハードウエア構成を採用するのは当然の判断だが,1つのアプリケーションが1台のサーバーで固定的に運用されている環境,つまり,仮想化が採用されていない環境では,サーバーごとに余裕を持たせなければならないため,全体としてみると多くの資源が未使用の状態になってしまうのである。

 これに対して,比較的仮想化のテクノロジが進んでいるメインフレーム環境では,プロセサ利用率は80%以上であることが多い。オープン系サーバーにおいても,仮想化テクノロジを採用することで,1台のマシンの資源を多くのアプリケーションで融通し合い,全体的なハードウエア資源の利用率を向上することが可能なはずである。

 ここで,サーバーの価格性能比は今後ますます向上していくのだから,サーバー資源の利用率を苦労して上げるよりも,難しいことを考えずにどんどんサーバーを買ってしまった方が楽ではないか,とお考えの方もいるかもしれない。確かにハードウエア購買コストだけを見ればそうかもしれない。

 しかし,実際には,サーバーの台数が増えれば運用管理の人件費,設置スペースなどのコストも比例して大きくなる。ならば,できるだけ少数のサーバーの資源を有効活用して,できるだけ多くのアプリケーションを稼働したいというのは当然の要請である。

 2008年までの間で仮想化テクノロジを活用しないユーザー企業は,活用している企業と比較して,Intelサーバー上では25%の,RISCサーバー上では15%のコスト増を経験することになると,ガートナーは予測している。

◆サーバー仮想化はインフラの柔軟性も高める

 サーバー仮想化のもう1つのメリットはアプリケーションからの資源の要求の変化に迅速に対応できることである。仮想化された資源をプールしておき,必要な時にシステムを停止せずに追加できるようにする,いわゆる,プロビジョニングを実現することで,インフラの柔軟性は極めて向上する。

 サーバー資源の不足が明らかになった時に,購買の計画から始めなければいけない企業と,プロビジョニングによりほぼ瞬時に資源を追加できる企業の格差は極めて大きいと言えるだろう。

◆Wintelの世界の仮想化も急速に進化している

 先にも述べたが,サーバー仮想化の観点で最も先進的な環境は実はメインフレームである。ハードウエア(正確には,マイクロコード)による区画分割機能のLPAR,そして,ソフトウエアによる区画分割機能であるVMは大型メインフレーム環境では当たり前になっている。Unixの世界でもハイエンド・サーバーの領域ではこれらの機能が一般化しつつある。

 今,特に注目すべきはWintelの世界でもサーバー仮想化に向けた動きが急速に進んでいる点である。米Intelは「Vanderpool」と呼ばれるハードウエア・レベルの仮想マシン・テクノロジを実装予定である。また,VMwareによる仮想マシン機能は,デスクトップだけではなく,サーバーにおいても重要視されている。さらに,米Microsoftも米Connetixから取得した仮想化テクノロジをベースに「Virtual Server」機能を提供しようとしている。

 2005年末までにはフォーチュン1000企業の25%がWindowsサーバー上で仮想化機能を使用することになるとガートナーは見ている。

◆サーバー仮想化普及の阻害要因

 サーバー仮想化を行う場合にはいくつかの課題がある。特に,Wintel環境では,仮想化テクノロジは発展途上であり,十分枯れているとはいえない。しかし,真に重要な課題はテクノロジにあるのではない。

 おそらく,最大の課題はユーザーのインフラに対する考え方にあるだろう。どうせサーバーは安いのだから,アプリケーション案件ごとにサーバーを買ってしまうという考え方である。このような決断を繰り返し,企業内に多数のサーバーが乱立して管理が困難になっているケースは少なくない。

 もう1つ忘れてはならない阻害要因の1つが,ソフトウエアの価格体系である。現在,多くのサーバー系ソフトウエアがサーバーの処理能力に応じた価格体系を採用している。例えば,CPU数に応じた価格体系は一般的である。しかし,サーバーが仮想化された環境では,物理的なCPU数とソフトウエアが実際に使用するCPU数が一致するとは限らない。

 さらに,区画のCPU数が動的に変化するような場合には,CPU数ベースの価格体系の適用は困難になる(メインフレーム系のソフトウエアでは,実際の使用率をモニターし,それに応じた課金が発生する方式もある。しかし,あらゆるソフトウエア・パッケージにこのような仕組みを導入することは難しいし,ユーザーにとっても,ソフトウエアの価格が事前に確定しないということでは,予算計画上の問題となるだろう)。

 米Sun Microsystemsが9月に発表したミドルウエア・スイートであるJava Enterprise Systemでは,サーバー処理能力ベースの価格体系を撤廃し,ユーザー企業の社員数に応じた価格体系が採られている(1社員あたり年間100ドルの料金で無制限に使用可能,関連記事)。これは,実質値下げで,ソフトウエア市場での地位を獲得しようという点もあるが,サーバー資源の仮想化を念頭においた価格体系ということもできるだろう。今後,多くのソフトウエア・ベンダーがサーバー仮想化時代に適合したライセンス体系を提供することになるだろう。

◆サーバー仮想化の時代に備えて何をすべきか

 Unixサーバー環境では仮想化への準備は整っている。今から段階的に仮想化機能を活用したサーバー統合の戦略を実施していくべきだろう。いったん,サーバーが過剰に分散してしまうと,それを統合するのは容易ではない。特に,ソフトウエアのバージョンのばらつきが発生するとそれを再度標準化することは困難だからである。

 Windows環境については,HP superdomeやUnisys ES7000などのハードウエア・ベースの区画分割機能を提供するハイエンド・サーバー環境を除いては,しばらく様子見の段階が続くだろう。しかし,上記のサーバー資源がスカスカで有効活用されていないという状況は,Windowsサーバーにおいてこそ典型的に見られる問題であり,仮想化テクノロジ採用のメリットも大きいと考えるべきだろう。