nkjmkzk.net

A Place to discuss Oracle VM, Linux and Other Great Software.

VMを本番環境で使えますか?

一昔前までI/Aサーバ用のVMは完全に検証環境用でした。I/Aサーバ用の仮想化技術は当初デスクトップマシンに仮想化ソフトをインストールし、そのソフトがハードウェアをエミュレーションすることでOS上にさらに複数のOSを稼動させることができるという技術でした。この画期的な技術は主に検証時に度々必要となる新しいOS環境、H/W環境の用意を素早く効率的に行う目的で検証作業、開発作業において広く受け入れられています。

一方、「エミュレーション」という言葉から連想されるのは「高度な抽象化」であると同時に「顕著な性能劣化」です。エミュレーションといってもその実装は様々だと思いますが、とかく仮想化 = エミュレーション = 性能は望めない という図式が通念となっていることは容易に想像できます。実際には現在サーバ仮想化分野で採用されている実装の主力はHypervisor型であり、従来のVMware Workstationのようなものとは全くことなる方式で複数OSの稼動が実現されています。Hyperviosr型仮想化ソフトウェアのパフォーマンスについては現在ではWebの記事掲載や各社が独自に性能検証を行っていることである程度知られるようになってきていると思います。ただしユーザの頭からはそう簡単には不安は消えません。性能劣化についての懸念や、漠然とした「安定性」への不安はソフトウェアベンダーがいくら理屈をこねてもすんなり受け入れられるものではないでしょう。それは性能や安定性を支える技術がOSやHypervisorのコアの部分に左右されるところであり、一部のカーネル開発者を除いて一般的なエンジニアにはその妥当性を技術的な観点で判断するのは極めて難しいことが理由だとおもいます。技術的には判断できないからこそ「事例」といった形の結果的、客観的な証明が求められるのだと思います。しかし事例というのは鶏と卵の関係で、ソフトウェアを開発してリリースした時点では当然事例は0です。そして事例がなければ受け入れられないのであれば事例が生まれることもありません。なのでソフトウェアベンダーはファーストリリースのソフトウェアの話に耳を傾けていただけるお客様に対して事例ではなく、技術的に、理論的に、そのコンセプトに熱意をもってアプローチしていかなければならないと思います。その観点で今回のポストは「事例があるかどうか」という話ではなくその前のフェーズで「VMを本番環境で使えるか?」について少し検証してみたいと思います。

多くのユーザはVMに漠然として不安を感じています。その不安の内訳は「性能劣化」と「安定性」が大部分を占めると思っています。今回は性能劣化について言及したいと思います。率直に言って現在のHypervisor型の、それもXenの準仮想化アーキテクチャは非常に優秀です。多くの方が抱かれている性能に関する不安はいろいろなテストを行えばほとんどは払拭できるのではないかと思っています。それどころか経験上は性能の良さに驚かれるケースの方が多いと感じています。特に純粋なCPUの演算能力についてはほとんどNativeのOSと際がない程です。仮想化環境で最も劣化が起こるのはI/O処理だと言われていますが、この劣化もそれほど影響が大きいものではありません。この劣化具合は残念ながら個別にテストしたデータをお見せするわけにはいかないのですが、第三者テスト機関のTolly GroupがOracle VM上のOracle Databaseに関するベンチマークを行い、そのレポートを公開しています。

Performance Evaluation of Oracle VM: Tolly Group Benchmark

これは性能データが公開されている極めて異例で貴重な資料です。この資料を参照するとOLTPの負荷に対してVMはNative OSと比較してわずか数%の劣化しか示していません。もちろん性能テストは環境やテスト内容によって結果は大きくことなりますが、一つの指標として有用な情報だと思います。この資料をもって全てのユーザが抱く性能についての不安払拭されることはないと思いますが、このようなデータをきっかけに興味を持っていただき、個別にテストを実施していただいて是非を判断いただければ良いなと思います。

without comments

Written by nkjm

March 28th, 2009 at 3:14 pm

Posted in Virtualization

Leave a Reply