仮想化技術のメリットとデメリット

2011年2月1日(火)
宮原 徹(みやはら とおる)

仮想化の性能の考え方

仮想化支援技術の発展によってCPUやメモリーの性能劣化が改善されたのと同様に、I/Oについても、仮想化支援技術が高速化することで改善に向かうと考えられる。

ただし、現状においては、I/Oがボトルネックになることが多い。これに対しては、いくつかの対策が考えられる。

1. 性能を要求しない
仮想化統合の対象となる従来のサーバーは、全体的に負荷が低いものが多いため、高いI/O性能を要求しないことが多い。このため、仮想化環境でI/Oの性能が劣化していても、それほど大きな問題にならないことが多い。仮想化環境で動くシステムの大部分が、このパターンに当てはまる。
2. キャッシュ技術を活用する
ストレージのI/Oを高速化する技術として、キャッシュの活用が挙げられる。キャッシュ技術の難点は、電源断などによるキャッシュ・データの消失だが、最近ではバッテリ・バックアップ型のキャッシュが大容量化したり、フラッシュ・メモリーを利用したキャッシュなども登場している。これらのキャッシュを使用すれば、障害発生時のデータ消失も、ある程度は回避できる。
3. より高速なデバイスの利用
ネットワーク接続であれば10Gビット・イーサネット(10GbE)、ストレージ接続であればFCoE(Fibre Channel over Ethernet)などを使うことで、帯域の確保が可能となる。ストレージ・デバイスも、低速なHDDではなく、高速なSSD(Solid State Drive)に少しずつシフトしていくと考えられる。

仮想化導入の指針

ここまで、6つの物差しを用いて、仮想化導入について評価を行った。仮想化には、メリットもあればデメリットもある。例えば、仮想化によって性能は劣化するが、システム要求の観点からは問題とならないことが多い。しゃくし定規にならず、実情に合わせて仮想化導入の可否を判断するようにしなければならない。今回の解説のまとめとして、以下に仮想化導入の指針をまとめる。

コスト削減メリットを追求し過ぎない
仮想化を導入することでコスト削減は可能だが、これは、従来のシステムにおいて無駄が多かった部分を省くことによるコスト削減である。仮想化は、コスト削減の万能ツールではない。過度なコスト削減メリットへの期待は禁物である。
拡張性の事前検討
仮想化を導入することで、さまざまな便利な機能が利用できるようになる。このため、仮想マシンの数は、当初予定していたよりも増加する傾向がある。そうすると、各種リソースが不足してくるため、リソースの追加投入の必要性も出てくるだろう。未来を予測するのは困難だが、事前に拡張の余地を残した設計が必要だろう。
耐障害性に配慮を
仮想化することで、全体が緩やかに冗長化されるのがメリットとなる。しかし、集約率が高まると、とあるハードウエアの障害が、結果として多くのシステムに影響を及ぼしてしまうことがある。過度に集約率を高めず、万が一障害が発生した場合の影響範囲とのバランスでリソース配分を考えるべきである。
性能設計は慎重に
多くのシステムでは、それほど性能を要求しない。一方で、より性能を要求するシステムを仮想化環境上に構築する場合には、「本当に仮想化するべきなのか」「要求を満たせるのか」を考える必要がある。できれば、想定される処理を、実際にベンチマーク・テストで事前に確認しておくべきだろう。

次回は、仮想化環境の具体的な設計について解説する。

著者
宮原 徹(みやはら とおる)
日本仮想化技術株式会社 代表取締役社長兼CEO

日本オラクルでLinux版Oracleのマーケティングに従事後、2001年に(株)びぎねっとを設立し、Linuxをはじめとするオープンソースの普及活動を積極的に行い、IPA「2008年度 OSS貢献者賞」を受賞。2006年に日本仮想化技術(株)を設立し、仮想化技術に関する情報発信とコンサルティングを行う。現在は主にエンタープライズ分野におけるプライベートクラウド構築や自動化、CI/CDなどの活用について調査・研究を行っている。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています