本特集「KVM徹底解説」の第2回では、仮想化技術「KVM」が提供する機能と各クラウドOSを紹介しました。
今回はクラウドOSの特徴や特性、そしてKVMとの関係を解説します。
1. クラウドコンピューティングの概念とは?
クラウドOSとKVMの関係を見る前に、そもそもクラウドを構成している概念について整理してみましょう。まず、クラウドコンピューティングを概念的にまとめた図として、Cloud Computing Use Case groupが発行しているホワイトペーパーが参考になります。
図1をベースに、クラウドを構成する要素を簡単に整理してみましょう。
- Service Consumer
クラウドサービスの提供を受ける側です。ユーザーインターフェースやAPIを通じてサービスの提供を受けます。 - Service Developer
クラウドサービスを開発する側です。 - Service Provider
クラウドサービスが稼働する環境であり、クラウドコンピューティングの中核を為す環境です。ハードウェアインフラを最低位レイヤとし、その上位で仮想化環境が動作します。
クラウド=仮想化ではありませんが、クラウドコンピューティングに求められる柔軟な拡張性を実現するためには、仮想化技術の活用をおいて他には無いというのが現実です。これには、仮想化環境をイメージ化して、必要な時に新しいアプリケーション稼働環境を瞬時に用意できる特性があります。
したがって、仮想化されたアプリケーション稼働環境をイメージ化して保存し、いつでも動作可能な仕組みを用意することが重要になります。
また、図1に見える重要な機能として「Management」というボックスで提供している部分があります。これは、単に仮想化されたコンピュータ環境では必要のない機能ですが、クラウドコンピューティングでは必要不可欠です。というのも、多くの「Service Consumer」から多くのトランザクションを引き受ける十分な受容性を実現するためには、Service Provider環境全体のリソース利用状態を監視して、必要に応じて要求を受け付けられる状態にアプリケーション稼働環境を自動的に増強する機能が必要となるからです。
図1の「Service Provider」は概念的なものであり、実際には複数のハードウェア、異なるネットワークセグメントにまたがる環境で、多くの場合はインターネットを介した異なるクラウド環境との連携も考慮された概念です。
2. クラウドコンピューティングにみるKVM(仮想化技術)の位置づけ
クラウドコンピューティングとKVM−−というよりも、類似の仮想化技術全般の関係では、高いポータビリティ性が重要な意味を持ちます。ハイパーバイザ上で動作するゲストOSと、その上で動作するアプリケーション環境をイメージ化して保存し、必要な時に新しい仮想化環境として動作可能にする機能こそ、クラウドコンピューティングの中核を支えています。
図1の赤い点線で囲んだ箇所は、KVMが提供している機能です。柔軟に拡張および収縮可能なコンピューティング環境を実現するための要素技術を、ここで提供しているわけです。