ESXiの使いどころ!
開発・テスト環境の効率化
これまでの3回で、VMware ESXi(以下、ESXi)の概要とインストール、環境構築について説明してきました。最終回となる今回はまとめとして、その使いどころという観点で考察します。
ESXiに限らずサーバー仮想化の使いどころとしてまず思い浮かぶのは、「開発・テスト環境を効率的に利用するために使う」ということではないでしょうか?
多くの開発現場では、アプリケーションが動作する複数のインフラ環境に対応する必要があり、それぞれの環境用に開発機、テスト用のサーバーを用意している場合もあるでしょう。
また、本番運用中もアプリケーションのメンテナンスを考えると、開発・テスト環境は残しておかなければなりません。しかも、時間がたつにつれ開発言語のバージョンアップや、利用しているミドルウエアのバージョンアップなど、過去と統一した環境で開発したくてもできないために、どうしても開発テスト環境が複数存在してしまいます。
ところが、開発中や本番移行前のテスト以外にその環境が使われることはありません。これは非常に非効率です。とはいっても、必要な時に再インストールして環境を構築することは面倒ですし、リムーバブルHDDを利用して複数環境をHDDの交換によって利用する方法では、同時に複数の環境が起動できません。
そんな時に利用するのがサーバー仮想化の技術です。必要な時に必要な環境だけを簡単に起動して利用することができるのですから、こんなに便利なことはありません。
無償版ESXiを開発・テスト環境に利用する
それでは、ESXiを使うことにより良くなることとは何があるのでしょうか?例えば、既にこれまで無償公開されていたVMware Serverや有償版のVMware Workstationを利用している環境を考えた場合には、さまざまなメリットがあります。いくつかピックアップして解説します。
まずは、メモリオーバーコミットができる点が挙げられると思います。メモリオーバーコミットとは、物理環境に搭載されたメモリの容量以上に、各仮想マシンに対してメモリを割り当て、仮想的なswapでコントロールするという技術です。
簡単に言うと、4GBメモリを搭載したサーバー上で1GB割り当ての仮想マシンを5つ起動して利用することができるのです。
各仮想マシンに割り当てられたメモリの「使用率の合計」が低い場合は当然快適に動作しますし、ある一部の仮想マシンだけ使用率が上がっている状態であるならば、ESXiはアイドル状態の仮想マシンが保持するメモリ領域を意図的にロックし、ほかのアクティブな仮想マシンのためにメモリを解放してくれます。ご想像の通り、開発・テスト環境であるならば本番環境と比較して、より効果的にこの機能は働いてくれます。
また、各仮想マシンに割り当てるCPUやメモリといったリソースに対して、Reservation(予約)とLimit(制限)の値として、それぞれMHz、MBという単位で制御することができ、しかも仮想マシンを起動したまま動的に変更することが可能です。また、リソースの競合が発生した場合に備え、優先度をつけることもできます。
特定の環境だけはリソースを確保して快適に動作させたい場合や、ある環境で開発中のプログラムが暴走してCPUを占有しても、ほかの開発環境に影響を与えないようにしたい場合などに有効です。
これらの機能はESXiというよりもESXが本来持っていた機能ですが、これらも無償の範囲で利用できるのですから、本当にすばらしいことだと思います。
もう少し、ESXiならではの使い道を考察します。