仮想化で重要な事前検証と運用管理
仮想化技術を活用して古くなったサーバーを統合したり、新しいサーバー環境を構築したりすることはごく当たり前になってきたが、まだまだ仮想化環境の設計、構築についてのノウハウが広く広まっているとは言えないのが実情だろう。本連載では、仮想化専門コンサルタントが実務で培った設計、構築のノウハウを、これから仮想化に取り組むエンジニアにも分かりやすく解説していく。
第4回の今回は、事前検証および運用管理について解説する。
事前検証と「仮想化脳」の獲得
事前検証の重要性は言うまでも無いが、多くのプロジェクトにおいて予算や工数、スケジュールの都合から事前検証を十分に行わずに本番工程に入ってしまうのは、非常に危険なことであると言える。このような事態をいきなり大きく変えることは難しいが、日ごろから事前検証に近いことをスキルアップの一環として行うよう心がけておきたい。
「仮想化脳」とは
仮想化を自在に扱うスキルを身につけるには、従来の物理サーバーを利用したシステム構築のパラダイムから抜け出す必要がある。これを筆者は「仮想化脳」の獲得と呼んでいる。仮想化脳を獲得すると、仮想化するのが当たり前の世界に入ることになる。
では、仮想化脳を獲得するにはどうしたらよいのだろうか。
- 仮想化技術に対する皮膚感覚を養う
- まず、日常的に仮想化を利用することが重要だろう。今回の連載では主にハイパーバイザーを利用したサーバーシステムを中心に解説を行ってきているが、ホストOS型の仮想化ソフトウエアを利用して自分のマシンで複数のOSを実行するなどして、常日ごろから仮想化環境を扱うことに慣れておきたい。
- あり合わせのものでシステムを作ってみる
- 特に高性能なストレージなどは価格が高価なこともあり、日常的に自由に試すということは難しい。しかし、性能や便利な機能などを使わないのであれば、例えば古くなったサーバー機でも仮想マシンを動かすことはできるし、iSCSIストレージであればLinuxでソフトウエアiSCSIターゲットを動かすことで実現できる。ストレージ性能が必要であればSSDを利用するなど、入手可能なものでも工夫次第で仮想化環境の構築は行える。
むしろ、制限の多い中でも必要な機能、性能を満たすことができるかどうかにチャレンジすることで、本番における仮想化環境構築で役立てられるスキルを身につけたい。
仮想化環境における事前検証
仮想化環境を構築するに当たっての事前検証は、機能面と性能面の2つに大きく分けられる。
特に性能面の検証は、ハードウエア構成を決定するための容量決定(サイジング、キャパシティプランニング)のための「ものさし」になるため重要だが、性能検証のノウハウが乏しいことや検証に時間がかかるためおろそかにされがちだ。しかし、後からキャパシティ不足に苦しめられないためにも、可能な範囲で最低限の事前検証は行っておきたい。
ベンチマークによる性能検証
性能検証は「ベンチマーク」と呼ばれる作業で行うことになる。例えばCPUやストレージといったハードウエアによって性能が異なるリソースを実際に動かしてみて、どの程度の性能が得られるのかを確認するのがベンチマーク作業となる。ベンチマーク作業をより現実に即していて役立つものにするためには、何の性能を測定するのかを明確にすることが重要だ。
例えば、あるハードウエアの単体処理の性能を測定するのか、それとも複数処理が同時並行で行われる際の性能を測定するのかでベンチマーク作業は異なってくるし、結果の評価も変わってくる。
仮想化環境のベンチマークは主にCPUとストレージ
仮想化環境に対して行うベンチマークは、主にCPUとストレージに対するものとなる。
CPUは1つのCPUコアを複数の仮想マシンが利用するケースでの性能を測定する。ただし、最近のCPUマルチコア化して並列実行性能が向上していること、CPUが備える仮想化支援技術が高性能化したことでCPUに対するオーバーヘッドはかなり小さくなったことなどから、CPUの性能が大幅に劣化することは少なくなっている。
ストレージは、ハードディスクがCPUやメモリなどに比べて性能向上の度合いが低いこともあり、仮想化環境全体ではボトルネックになりやすい。それでも、頻繁な読み書きが発生しないのであれば高性能なストレージは必要としないので、ハードウエアコストの観点から事前にベンチマークテストを行って必要なストレージ性能が得られるかどうかを確認する。
同時並行処理のベンチマークが重要
現場で行われている多くのベンチマークを見ていると、作業を単純にするため仮想マシン単体の処理性能を測定している場合が多い。しかし、仮想化環境で要求されるのは複数仮想マシンの同時並行処理性能のベンチマーク結果だろう。なぜなら仮想化ホスト上で仮想マシンが複数同時に実行されるし、ストレージも複数の仮想マシンから同時にアクセスされるからだ。
複数仮想マシンのベンチマークは機器の準備や測定作業量が増えるため敬遠されがちだが、より正確に仮想化環境の性能を測定したいのであれば必ず単体テストではなく複数テストを行わなければならないだろう。
図1: 仮想マシン数を変更してテスト(クリックで拡大) |
この例では、同時に実行する仮想マシンの数を増やすことで、システム全体での処理能力が向上している。ただし、1VMと3VMでの性能を比較すると、必ずしも3倍の性能が出ているわけではない点にも注目したい。