IBMは、同社が2007年に新たなサーバソフトウェアライセンスモデルを導入した後、恥をかくことになった。この新しいライセンスモデルの狙いは、価格体系をマルチコアマシンの利用が増えている状況を反映したものに改めることと、利用量に基づいてソフトウェアに課金できるようにすることだった。
問題は、IBMが顧客がコンピューティング資源の利用量について計画と追跡を行うための追跡ツールを実装する際に、仮想化技術を考慮に入れるのを忘れ、仮想マシン(VM)の中でこのツールを実行すると、可視性が極めて限られたものになってしまったことだ。しかもIBMは、1960年代に仮想化技術を発明した企業なのだ。
絶望的なまでに時代遅れ
この種のトラブルの例は他にもあるが、この事例は、長年の間に作り上げられてきた物の見方と古いソフトウェアライセンスモデルは、ハードウェアとソフトウェアが分離されたものとして存在するようになった途端に、絶望的なまでに時代遅れなものになってしまうということをよく表している。
最近のデータセンターでは、アプリケーションはその時の要求に応じて、多くのマシン上の複数のCPUを行き来し、さまざまな資源を消費する。ある公共サービスの請求書発行のためのアプリケーションが最大の資源(CPU、メモリ、I/Oなど)を使用するのは、1カ月に1度か2度のことかもしれない。
その際、そのアプリケーションは多くのCPU上で同時に実行されるかもしれないが、現在多くのソフトウェアは、ソケットあるいはCPUベースでライセンスされているため、そのような状況ではソフトウェアベンダーに多額の料金を支払わなくてはならなくなる可能性がある。
一部のソフトウェアベンダー、特にOracleの子会社であるBEA Systemsは少なくとも1つの製品でソケット単位でのライセンスを廃止している一方、IBMなどの他のベンダーは、サブキャパシティライセンスのような折衷案を採用している。サブキャパシティライセンスは、仮想マシンで実行されているアプリケーションが使用する資源に比例する形で、支払額が決まるというものだ。これはIBMが栄華を誇ったメインフレーム時代に提供していた監査と価格決定の仕組みの一種だ。
複雑さの問題
当然ながらこれは一次方程式で表せるものではなく、モバイルVMが利用できる仮想化データセンターでは、アプリケーションが絶対に使わないような量の資源に対する料金を支払う羽目になることが多い。最近SafeNetが行った調査によれば、多くの英国企業は、新しい技術の導入によってソフトウェアライセンス契約の複雑さが増し、セキュリティと費用の問題を生むのではないかと恐れているという。これも無理からぬことだ。
Oracleはこの問題を単純なものにしている。例えば、仮に全部で16のコアを持つサーバから、VMが割り当てた4つのコアでソフトウェアが実行されていれば、それがネイティブで実行されていようが、VM内で実行されていようが、16コア分すべての料金を支払うというものだ。このような料金体系は、Oracle製品をできるだけコア数が少なく、より強力なCPUで実行させるインセンティブになる。
興味深いことに、Oracleを強力なUltraSparcのCPUで動かした場合、IntelやAMDのx86プロセッサで動かした場合よりも、料金は50%高くなる。OracleのSun買収が進行中であることを考えると、このOracleをSunで動かすことに対する逆インセンティブは、この買収が完了した場合には変わるのかもしれない。
ソフトウェアのライセンス契約には、多くの落とし穴が待ち受けていることが理解してもらえただろうか。以下では、合法的に必要以上の支払いを避けるための、10の方法を説明する。
1.契約内容について知る
契約を結んでいるすべてのソフトウェアベンダーのライセンス条件を調べる。ライセンス契約でのミスが、仮想化によって節約したハードウェア経費など簡単に御破算にしてしまう可能性があることに注意する。
システムの変更にはライセンス要件の修正を伴う可能性があるため、現在および計画中の状態のニーズに、今あるソフトウェアライセンス契約がどの程度合致しているかをはっきり理解する必要がある。変更には、ライセンスの追加や解除を伴う場合があるが、どちらにせよ契約を結び直すよい機会になり得る。そして、VMへのインストールもそのようなきっかけの1つだ。
2.ソフトウェアベンダーと話をする
条件について再交渉するとよい。もしベンダーが乗り気でなければ、サーバ分割の戦略を練ってみるといいだろう。アプリケーションをVMではなく別のサーバで動かすことで、経費を節約できる可能性もある。あるいはベンダーとの議論の中で、そのベンダーによる仮想化以外のより進んだアプローチが見つかるかもしれない。