#2:ソフトウェアの一覧を作成する
サーバの仮想化を行おうとするのであれば、該当サーバ上で稼働するソフトウェアの一覧も作成しておくべきだろう。どのような環境を仮想化する場合であっても、すべての仮想サーバは1台のホストサーバ上で稼働することになる。こういったホストサーバのハードウェアリソースには限りがあるため、サーバ上で稼働するすべての仮想マシンと、ホストのOSとの間でそういったリソースを共有しなければならないのだ。
このため、サーバ上で稼働しているソフトウェアを洗い出し、それらが必要とするシステムリソースを把握しておく必要があるわけである。アプリケーションを仮想化環境上で稼働させるようになったからといって、そのアプリケーションの動作に最低限必要となるリソースが減るわけではないという点を忘れないでもらいたい。仮想化環境でも、物理サーバ上で稼働させている際と同程度のハードウェアリソースを割り当てなければならないのである。
#3:ベンチマークテストにより、システムのパフォーマンスを評価する
特定のサーバについて、仮想化を行えそうだと判断できる段階になったのであれば、システムのパフォーマンスを評価するためにベンチマークテストを実施しておくべきだろう。ユーザーは、サーバが仮想化された場合であっても、少なくとも現在と同程度のパフォーマンスを期待するはずだ。専用の物理サーバ上でのパフォーマンスと、サーバを仮想化した後のパフォーマンスを客観的に比較する唯一の方法は、パフォーマンスモニターを用いて仮想化の前と後のパフォーマンスを測定するというものである。また、ホストサーバに対するリソースの過剰割り当てにも気を付けるようにすべきだろう。そうすることで、仮想サーバのパフォーマンスに問題が生じた際に、より多くのリソースを割り当てることが可能になる。
#4:サポートポリシーをチェックしておく
サーバの仮想化を行う前に、該当サーバ上で稼働しているすべてのソフトウェアのサポートポリシーをチェックしておくべきである。ソフトウェア企業のなかには、仮想ハードウェア上での特定アプリケーションの稼働をサポートしていないところもある。
この例としてMicrosoft Exchangeを挙げることができる。Microsoftは、仮想サーバ上ではExchange Server 2007やExchange Server 2010におけるユニファイドメッセージングという役割をサポートしていない。また同社は、仮想ハードウェア上におけるExchange Server 2003の稼働もサポートしていない。実のところ筆者は、実験環境の仮想サーバ上でExchange Server 2003やExchange Server 2007のユニファイドメッセージングという役割を選択したことがあり、問題なく稼働しそうだという感触を得たことがある。とは言うものの、サーバをサポートされていない状態に置くようなことは決して行うべきでないため、本番環境をこういった構成にすることはあり得ないだろう。