仮想化とクラウド・コンピューティングの用語
- デスクトップ・コンピュータ
ユーザのオフィスや自宅など,エンドユーザの手元にあり,業務や個人用途で使用されるデスクトップ型のコンピュータのこと.
- クラウド・コンピュータ・センター
クラウド・コンピューティングにおいて,以下のサービスを提供する各種機器とソフトウェアの統合環境.
- 仮想マシン
- 仮想マシン上で動作するゲスト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センター,PaSセンターの管理者としての役割に加え,クラウド・コンピューティング・センター特有の以下の役割を担う.
- 仮想サーバ・ブートイメージ・ファイルの包括的管理(記憶領域の割り当て,バックアップ,リカバリ)
- プロビジョニングの適切な機能維持
- システム負荷やサービス需要の状況に応じた資源の事前確保,および即時の資源調達・融通を実現する仕組みの整備
- アプリケーション・プログラムの仮想化
遠隔地のコンピュータ上のアプリケーション・プログラムを,ローカルのデスクトップ・コンピュータ上で動作しているかのように提供する技術.Webブラウザ上で動作するオフィスソフトなどがその例である.仮想化されたアプリケーション・プログラムは遠隔地のコンピュータ上にのみ存在し,ユーザのデスクトップ・コンピュータにはインストールされない.
- デスクトップの仮想化
遠隔地のコンピュータ上のデスクトップ環境を,ローカルのデスクトップ・コンピュータ上で操作しているかのように提供する技術.デスクトップへのすべての操作は,実体が存在する遠隔地のコンピュータに反映される.ローカルのデスクトップ・コンピュータにデータを残さないことで,ノートパソコンの盗難時における情報漏えいなど,セキュリティ上の課題を解決できる.
デスクトップの仮想化を実現する手法の一つとして,仮想マシン・ブートイメージ・ファイルにアプリケーションとデスクトップを統合する方式がある.これがリモートデスクトップとの主な相違点となる.
- サービスとしてのソフトウェア提供者
Software as a Service (SaaS)とも呼ばれる.アプリケーション・プログラムをパッケージ販売せず,ネットワークを介してその機能を提供するサービス形態.以下の業務が外部委託の対象となる.
- データの管理(バックアップ,リカバリなど)
- アプリケーションの管理(ライセンス,バージョンアップ,パッチ,OSとの互換性検証など)
- 物理サーバの管理(サーバを構成するコンピュータの増設など)
- サービスとしてのプラットフォーム提供者
Platform as a Service (PaaS)とも呼ばれる.仮想マシンを業として提供する事業者.ユーザは仮想マシンに関する要件(OSや性能など)を提示するのみで,物理サーバ等の詳細を明示的に指定する必要はない. 以下の業務が外部委託の対象となる.
- 特定OSの導入・構築
- 特定性能を持つコンピュータの導入
- データの管理(バックアップ,リカバリなど)
- アプリケーションの管理(ライセンス,バージョンアップ,パッチ,OSとの互換性検証など)
- 物理サーバの管理(サーバを構成するコンピュータの増設など)
- Xen
仮想マシン上で動作するゲストOSと,アプリケーション・プログラムの仮想化機能を提供するソフトウェアの一つ.商用版とフリーソフトウェア版が提供されている.
- Apache Hadoop
クラスタコンピューティング向けに開発された,分散ファイルシステムを実現するフリーソフトウェアの一つ.
- chroot 環境
ファイルシステムが分離された実行環境.プロセスやソケットなど,ファイルシステム以外のシステムリソースは分離されない.