仮想化とクラウド・コンピューティングの用語
- デスクトップ・コンピューター
ユーザーのオフィスや自宅など、エンドユーザーの手元にあり、業務や個人用途で使用されるデスクトップ型のコンピューターのことである。
- クラウド・コンピューター・センター
クラウド・コンピューティングにおいて、以下のサービスを提供する各種機器とソフトウェアの統合環境である。
- 仮想マシン
- 仮想マシン上で動作するゲストOS
- ゲストOS上で実行されるアプリケーション・プログラム
- ローカル環境のように操作可能なリモート・デスクトップ環境
- データを一元管理するファイルサーバー(データセンター)
デスクトップ・コンピューターとクラウド・コンピューター・センターは、ネットワークで接続される。クラウド・コンピューター・センターは複数拠点に分散配置されることがある。「クラウド」という概念において、クラウド・コンピューター・センターの数、場所、特性、物理サーバーの構成などは、ユーザーから完全に抽象化される。
- 実マシンのディスクイメージ配信
- ゲストOSへのリモートログイン
- 物理サーバー
クラウド・コンピューター・センターに設置され、クラウド・コンピューティングのサービスを提供する基盤となるコンピューター群である。物理サーバーは、単一または複数のコンピューターで構成され、異機種混在環境もサポートする。
- 物理サーバーの資源
物理サーバーが保持する計算機資源の総称であり、一般に「資源」と略される。主な要素として以下がある。
- CPU: コア数、クロック速度 など
- メモリ: 容量、速度 など
- 2次記憶装置: 容量、種類、速度 など
- I/O: 帯域 など
- ホストOS
物理サーバー上で稼働する基盤となるオペレーティングシステム (OS) である。この上で仮想マシン・マネージャーが動作し、さらにその上で複数のゲストOSが稼働するため、ゲストOSと区別する目的でホストOSと呼称する。
- 仮想マシン・マネージャー
ホストOS上で動作し、仮想マシンの機能を提供するソフトウェアであり、VMM (Virtual Machine Manager) とも呼ばれる。このプラットフォーム上で、仮想マシンのプロセスが実行される。
- ハイパーバイザー
仮想マシンの機能を提供するソフトウェアで、物理サーバー上でOSに依存せず直接動作する。ハイパーバイザー上で仮想マシンのプロセスが実行される。ハイパーバイザーでは、仮想マシンを実現するための独自の仮想ハードウェア環境が定義されており、ホストOS上の仮想マシン・マネージャーと比較して、仮想化に特化した低オーバーヘッドな実行環境を提供する。
- 仮想マシン
エンドユーザーが専用マシンとして利用できる仮想化された計算機環境である。単一の物理サーバー上で複数の仮想マシンが並行稼働する。仮想マシンは、容易な操作で追加、削除、起動、停止、活線移動(live migration)が可能である。実体は物理サーバー上で実行されるプロセスである。仮想サーバーとも呼ばれる。
- 仮想マシンのテンプレート
仮想マシンに割り当てられる資源の仕様を定義したものである。物理マシンの資源から割り当てられるため、物理マシンの資源構成に基づく組み合わせに名前を付与したものとなる。ただし、仮想マシンのテンプレートでは、プロセッサー名など物理マシンの機種固有の情報は抽象化される。仮想マシンのテンプレートにおける主な資源項目は以下の通りである。
- メモリ
- プロセッサー (数の指定も可能)
- ディスク (多くの場合仮想化される)
- ネットワーク
同一構成の仮想マシンは同一のテンプレートとして定義される。なお、資源の記述は単純な量的指定だけでなく、「夜間はCPU時間を優先的に割り当てる」「トラフィックピーク時は帯域を拡張する」といった動的な割り当て計画も含まれる。割り当て量は仮想マシンの稼働中に動的に変更可能である。
- ゲストOS
仮想マシン上で稼働するオペレーティングシステム (OS) である。
- アプリケーション・プログラム
単にアプリケーション・プログラムと表記する場合、ゲストOS上で稼働するアプリケーション・プログラムを指す。ホストOS上で直接実行されるアプリケーション・プログラムは、ネイティブ・アプリケーション・プログラムと呼称して区別する。
- 仮想マシン・ブートイメージ・ファイル
仮想マシン用に作成されるイメージファイルである。仮想マシン・マネージャーまたはハイパーバイザー上に展開され、プロセスとして実行されることで仮想マシンとして機能する。クラウド・コンピューティングにおける仮想マシン・ブートイメージ・ファイルには、仮想マシン上で動作するゲストOSとエンドユーザーが使用するアプリケーション・プログラムが含まれる。つまり、仮想マシン・ブートイメージ・ファイルは、仮想マシン上で実行されるゲストOSとアプリケーション・プログラムの組み合わせごとに個別に作成される。仮想マシンの再起動時には、再度仮想マシン・ブートイメージ・ファイルからの起動が実行されるため、2次記憶装置を除き再起動前の仮想マシンの状態は保持されない。
- 仮想マシン・ブートイメージ・ファイルの作成
仮想マシン・ブートイメージ・ファイルは、特定の仮想マシン上で稼働するゲストOSと特定のアプリケーション・プログラムの組み合わせごとに作成される。物理サーバーの差異が仮想マシンより下位層(ホストOSやハイパーバイザーの層)で吸収される場合、OSとアプリケーション・プログラムが同一構成の仮想マシンの稼働は、物理サーバーの種別に依存せず単一の仮想マシン・ブートイメージ・ファイルで対応可能である。仮想マシン・ブートイメージ・ファイル作成用コンピューターにOSとアプリケーションをインストールした後、仮想マシン・ブートイメージ・ファイル抽出の処理を実行する。
- 仮想マシン・ブートイメージ・ファイルの展開
仮想マシンの起動時に、仮想マシン・ブートイメージ・ファイルを物理マシン上の仮想マシン・マネージャーまたはハイパーバイザー上に展開する処理である。単一の仮想マシン・ブートイメージ・ファイルを物理マシン上に同時に複数展開し、複数の仮想マシンを並行起動することも可能である。
- 物理サーバーの構成変化
物理サーバーを構成するコンピューターにおけるハードウェアの変更(機種変更など)、またはコンピューターの増設、削除などの構成変更である。ハードウェアの変更には以下が含まれる。
- CPU: コア数、クロック速度 など
- メモリ: 容量、速度 など
- 2次記憶装置: 容量、種類、速度 など
- I/O: 帯域 など
物理サーバーの変更は、ホストOSまたはハイパーバイザーのみに影響する場合と、より上位の仮想マシン層にも影響が波及する場合がある。前者では物理サーバーが変更されても同一の仮想マシン・ブートイメージ・ファイルが継続して動作可能であるが、後者では仮想マシン・ブートイメージ・ファイル内のデバイスドライバーの更新などが必要となる。
- 仮想マシンの追加
クラウド・コンピューティングにおける仮想マシンの追加では、以下の項目を指定する。必要に応じて、仮想マシン用の仮想マシン・ブートイメージ・ファイルが動的かつ自動的に生成される。
- 仮想マシンのテンプレート名
- 仮想マシンの識別名
- 仮想マシン上で稼働するゲストOSの種類
- 実行するアプリケーション・プログラムの組み合わせ
- 仮想マシンの稼働
仮想マシン・マネージャーまたはハイパーバイザー上に展開し、プロセスとして実行することで仮想マシンとして機能させる操作である。稼働開始時点で、仮想マシンのテンプレートに定義された資源が割り当てられる。
- 仮想マシンの活線移動
仮想マシンの稼働中に、仮想マシンが実行される物理マシンを変更する処理である。この移動はユーザーから完全に透過的に実行される。
- 仮想マシンの資源割り当て
仮想マシンの稼働または活線移動において、仮想マシンのテンプレートで定義された資源(VMメモリ、プロセッサー、ディスク、ネットワークなど)を起動時に動的に割り当てる処理である。
この実現には、(1) 停止中の仮想マシンからの資源回収、(2) 仮想マシンに必要な資源の事前準備(システム負荷やサービス需要の状況に応じた資源の確保、および即時の資源調達・融通を可能にする仕組みの整備)が必要となる。
- プロビジョニング
エンドユーザーが必要とするアプリケーション・プログラム(または組み合わせ)を設定済みの状態で、仮想マシン・ブートイメージ・ファイルとして提供する機能である。すなわち、仮想マシン・ブートイメージ・ファイルにアプリケーションを組み込み、仮想化を実現する。
- 仮想マシン管理ソフトウェア
以下の機能を提供するソフトウェアである。
- エンドユーザーによる仮想マシンの起動、停止の実行
- 仮想マシン管理者または権限を付与されたエンドユーザーによる仮想マシンの追加、削除の実行
- 仮想マシン管理者による、エンドユーザーの仮想マシン追加・削除権限の設定
- 仮想マシン管理者による、仮想マシンテンプレートの作成・保守
- 仮想マシン管理者による、仮想マシンの活線移動(live migration)の実行
- 仮想マシン管理者による、仮想マシンの負荷・性能情報の収集
- エンドユーザー
デスクトップ・コンピューターを使用してアプリケーション・プログラムとデータを利用する一般ユーザーである。実際にはクラウド・コンピューティング・センターをネットワーク経由で利用するが、仮想マシン上で動作するゲストOS、アプリケーション・プログラムの仮想化、デスクトップの仮想化により、クラウド・コンピューティング・センターを意識せずに利用できる。
- エンドユーザーは、通常のマシンを使用する感覚で、仮想マシンの起動、停止を実行できる。
- 権限を付与されたエンドユーザーは、仮想マシンの追加、削除を実行できる。従来の物理マシンの増設、削除と比較して作業工数が大幅に削減される点で、クラウド・コンピューティングの利点を享受できる。
- エンドユーザーは、仮想マシンの性能、アプリケーション・プログラムのバージョン、最新パッチの適用状況、データバックアップの確実性について関心を持ち、仮想マシン管理者に要望を伝えることはあるが、管理作業自体は実施しない。
- 仮想マシン管理者
エンドユーザーが所属する組織・団体において、仮想マシン管理ソフトウェアを活用し、以下の管理業務を遂行する。
- 仮想マシンの追加、削除の実行
- エンドユーザーによる仮想マシンの追加、削除権限の設定
- 仮想マシンのテンプレートの作成、保守
- 仮想マシンの活線移動(live migration)の実行
- 仮想マシンの負荷や性能に関する情報の収集と分析
- クラスター・コンピューティング・センター管理者
通常のファイルサーバー(データセンター)、SaaSセンター、PaaSセンターの管理者としての役割に加え、クラウド・コンピューティング・センター特有の以下の役割を担う。
- 仮想サーバー・ブートイメージ・ファイルの包括的管理(記憶領域の割り当て、バックアップ、リカバリー)
- プロビジョニングの適切な機能維持
- システム負荷やサービス需要の状況に応じた資源の事前確保、および即時の資源調達・融通を実現する仕組みの整備
- アプリケーション・プログラムの仮想化
遠隔地のコンピューター上のアプリケーション・プログラムを、ローカルのデスクトップ・コンピューター上で動作しているかのように提供する技術である。Webブラウザー上で動作するオフィスソフトなどがその例である。仮想化されたアプリケーション・プログラムは遠隔地のコンピューター上にのみ存在し、ユーザーのデスクトップ・コンピューターにはインストールされない。
- デスクトップの仮想化
遠隔地のコンピューター上のデスクトップ環境を、ローカルのデスクトップ・コンピューター上で操作しているかのように提供する技術である。デスクトップへのすべての操作は、実体が存在する遠隔地のコンピューターに反映される。ローカルのデスクトップ・コンピューターにデータを残さないことで、ノートパソコンの盗難時における情報漏えいなど、セキュリティ上の課題を解決できる。
デスクトップの仮想化を実現する手法の一つとして、仮想マシン・ブートイメージ・ファイルにアプリケーションとデスクトップを統合する方式がある。これがリモートデスクトップとの主な相違点となる。
- サービスとしてのソフトウェア提供者
Software as a Service (SaaS) とも呼ばれる。アプリケーション・プログラムをパッケージ販売せず、ネットワークを介してその機能を提供するサービス形態である。以下の業務が外部委託の対象となる。
- データの管理(バックアップ、リカバリーなど)
- アプリケーションの管理(ライセンス、バージョンアップ、パッチ、OSとの互換性検証など)
- 物理サーバーの管理(サーバーを構成するコンピューターの増設など)
- サービスとしてのプラットフォーム提供者
Platform as a Service (PaaS) とも呼ばれる。仮想マシンを業として提供する事業者である。ユーザーは仮想マシンに関する要件(OSや性能など)を提示するのみで、物理サーバーなどの詳細を明示的に指定する必要はない。以下の業務が外部委託の対象となる。
- 特定OSの導入・構築
- 特定性能を持つコンピューターの導入
- データの管理(バックアップ、リカバリーなど)
- アプリケーションの管理(ライセンス、バージョンアップ、パッチ、OSとの互換性検証など)
- 物理サーバーの管理(サーバーを構成するコンピューターの増設など)
- Xen
仮想マシン上で動作するゲストOSと、アプリケーション・プログラムの仮想化機能を提供するソフトウェアの一つである。商用版とオープンソースソフトウェア版が提供されている。
- Apache Hadoop
クラスターコンピューティング向けに開発された、分散ファイルシステムを実現するオープンソースソフトウェアの一つである。
- chroot 環境
ファイルシステムが分離された実行環境である。プロセスやソケットなど、ファイルシステム以外のシステムリソースは分離されない。