メディア

仮想化の歴史から学ぶ、アプリケーション仮想化が求められるワケ

サーバにストレージ、ネットワークやデスクトップなどの仮想化の違いは何か。一般的な技術として広く普及してた仮想化技術の歴史を学ぶ。

» 2015年10月05日 10時00分 公開
[酒井洋和てんとまる社]

 ホストコンピュータの時代に誕生した仮想化技術は、今では一般的な技術として広く普及していることはご存じの通り。仮想化技術はさまざまな領域で実装されているが、中でもアプリケーション仮想化はスマートデバイスがビジネスシーンで活躍する現在、有効なソリューションとして注目されている。今回は、数ある仮想化技術の仕組みや利用メリットをおさらいしながら、アプリケーション仮想化を理解するための基礎知識を紹介していく。

仮想化の歴史

 仮想化とは、CPUやメモリ、ディスク、OS、アプリケーションなどハードウェア内に閉じた物理的な構成を、論理的に統合、分離可能にする技術のことで、いわゆる「コンピュータが持っているリソースを抽象化」するものだ。

 その概念はコンピュータの黎明期である1960年代に既に登場しており、ユーザー間でコンピュータリソースを共有して利用できるタイムシェアリングの仕組みがその起源とされている。このタイムシェアリングの考え方によって高価なリソースを効率よく利用することが可能となった。

 その後、CPUの高性能化やメモリ価格の低下に伴ってPCサーバが台頭し、安価なハードウェアが多く乱立する分散環境での運用が中心になっていった。しかし、管理対象が増えることで運用負荷が増大し、かつハードウェアの高性能化でリソースを十分に使い切れない状況が顕在化。そこで、リソースの使用率を高めていくために、あらためて仮想化技術が注目されることになる。

 現在では、サーバ仮想化やストレージ仮想化、ネットワーク仮想化、デスクトップ仮想化など、さまざまな領域でリソースを柔軟に活用するための仮想化技術が進化を続けている。どの領域についても共通しているのが、基本的にはハードウェアとソフトウェアの結び付きをなくし、柔軟なリソース活用が可能となっている点だ。

 ここで、それぞれの領域における仮想化技術を簡単に振り返ってみよう。仮想化というキーワードは同一ながら、それぞれ利用している技術や考え方が異なっている。共通しているのはプロファイル情報やソフトウェアを物理環境とは分けて考えていくことができるという点だ。

サーバ仮想化

 仮想化技術として多くの企業で利用されているのがサーバ仮想化だろう。サーバ仮想化とは、物理的なサーバ上で複数のVM(Virtual Machine、仮想マシン)を稼働させることで、これまで使い切れていなかったリソースが効率よく利用できるようになる技術だ。

 具体的には、ハイパーバイザーと呼ばれる仮想化ソフトウェアをハードウェアとVMの間に介在させることで1つのサーバ上に複数の環境を稼働させることが可能になる。企業で活用されているハイパーバイザとしては、VMwareの「VMware vSphere Hypervisor」やシトリックスの「XenServer」、そしてマイクロソフトの「Microsoft Hyper-V」などがある。

 なお、前述した製品群は主に「ベアメタル型(ハイパーバイザー型)」と呼ばれているが、他にも、ハードウェアと仮想化ソフトウェアの間にホストOSが介在する「ホストOS型」が存在する。ホストOS型の場合はそのOS処理自体にリソースが割かれてしまうため全体のオーバーヘッドが大きくなる傾向にあり、現在はベアメタル型が主流となっている。

サーバ仮想化イメージ 図1 サーバ仮想化イメージ

ストレージ仮想化

 ストレージ仮想化は、ハードウェアの物理的な制約からストレージを解放する技術で、実際にはディスクやブロック、ファイル、ファイルシステム、テープそれぞれに関連した仮想化技術が存在しており、その範囲は多岐にわたっている。他にも、環境の異なる複数ストレージ装置を仮想的に1つのストレージとして使用できるようにした装置全体の仮想化技術もある。身近な例を挙げると、複数のディスクを1つのストレージとして扱うRAIDなどもストレージ仮想化として位置付けることが可能だ。

 ここでは深く掘り下げないが、複数のストレージをプール化して管理しながら、その合計容量を越えた形でサーバに仮想ディスクを割り当てる「シンプロビジョニング」技術や、ディスクに書き込まれる際のI/O処理を監視してデータごとの使用頻度を特定し、SSDやSATAディスク、SASディスクなど階層分けされた領域に動的に移動させるストレージ階層の仮想化技術などは注目の技術となっている。

ネットワーク仮想化

 ネットワーク仮想化は、ネットワーク機器が物理的に持っていたポートプロファイルなどを抽象化し、柔軟なネットワークリソースの再配置が可能になる技術だ。このネットワーク仮想化は、既存技術を拡張する方法とソフトウェアによって柔軟に制御するという2つのアプローチが中心となっている。

 前者は一般的に利用されているVLAN技術を拡張した技術であり、VMwareやCiscoが中心となって進める「VXLAN」やマイクロソフトが提唱する「NVGRE」などのプロトコルを利用し、VIDのフィールド拡張を行うことで柔軟にネットワークの拡張が可能になる。

 後者はソフトウェアでネットワークを制御するSDN(Software-Defined Network)と呼ばれる考え方で、注目されているのがネットワーク制御プロトコル「OpenFlow」だ。OpenFlowでは、OpenFlowコントローラーと呼ばれるコンポーネントを用いてOpenFlow対応のスイッチ制御を行うもので、異なるベンダー間でもソフトウェアで経路制御を柔軟に行うことが可能だ。

 ただし、ネットワーク仮想化はいまだ黎明(れいめい)期にあり広く普及しているものではない。それでも、ネットワーク機器を多数保有している通信事業者やデータセンター事業者は既に実装しているところも少なくない。

デスクトップ仮想化

 デスクトップ仮想化は、仮想化したクライアント環境をサーバ上に集約し、サーバ側で実行することが可能な技術だ。利用者はネットワーク経由でサーバ上にある仮想クライアントOSにアクセスし、キーボードやマウスの入力情報に応じてサーバ上で実行された結果の画面情報が転送される。

 つまり、サーバ上にあるデスクトップOSをクライアントに配信する技術になる。製品によっては一時的にクライアント側に環境を転送することでオフラインにも対応可能な仕組みもある。利用するクライアントごとにインスタンスがサーバ上に立ち上がるのが基本だが、中にはWindows ServerなどサーバOSのデスクトップ画面を利用者で共有して配信する仕組みもあるなど、用途によってさまざまな方式が選択可能だ。

 製品としては、シトリックスの「Citrix XenDesktop」やVMwareの「VMware Horizon View」、マイクロソフトの「Microsoft VDI」などがある。

アプリケーション仮想化とは一体何だ?

 これまで見てきた仮想化技術の中で、アプリケーション仮想化はどのような位置付けになるのだろうか。

 アプリケーション仮想化は、他の仮想化技術同様、ハードウェアだけでなくOSやプロファイル情報などさまざまなリソースからアプリケーションを切り離してクライアントに配信することで、端末の機種やOS種別と関係なく、業務で必要なアプリケーションを利用することが可能になる技術だ。

 サーバ上で稼働しているアプリケーションを複数のユーザーで共有して画面情報を配信するサーバ共有型と、アプリケーションと合わせて動作に必要なレジストリ情報などを1つの実行形式でサーバから配信するVDI方式がある。

アプリケーション仮想化の方式 図2 アプリケーション仮想化の方式(出典:シトリックス・システムズ・ジャパン)

 前者の方式については、入出力の結果を画面転送で表示するデスクトップ仮想化と考え方が似通っているため、同じ文脈で語られることも多い。実際には、アクセスする利用者ごとにインスタンスが立ち上がるデスクトップ仮想化と、1つのアプリケーションを共有して利用するアプリケーション仮想化という違いがあるものの、画面転送で利用するという意味ではさほど違いはない。

 デスクトップ仮想化との違いを端的に言えば、アプリケーションを利用する際にデスクトップ画面を経由するかどうかの違いともいえる。日常の使い勝手を維持するのであればデスクトップ仮想化を利用するのが最適だが、本当に使いたいのはデスクトップ画面ではなく業務で使うアプリケーションのはず。コストや使い勝手を考慮して選択していくことが必要になってくる。

 ここで、アプリケーション仮想化のメリットについて振り返ってみよう。管理者である情報システム部門はもちろん、利用するユーザー部門としてもメリットが得られる優れものだ。

管理者視点のアプリケーション仮想化のメリット

 これまでハードウェアごとに管理が必要だったOSやアプリケーション、ユーザーが作成するデータをサーバ側で一元管理できるのは、管理者として大きなメリットだろう。クライアント環境が全てサーバの中に用意されているため、サーバ側でのセキュリティ対策を強化すればセキュリティレベルが向上し、情報が外部に漏れるリスクも少ない。

 また、本来なら1台ずつ行わなければならないアプリケーションの更新やセキュリティパッチ配布などの作業がサーバ側だけで済んでしまうため、運用管理の手間も大幅に軽減できる。

 新たなWindows環境が登場するたびに、古いアプリケーションが新たな環境に適用できないといった課題も顕在化している。最近よく耳にするのは、古いInternet Explorerのバージョンに依存した業務アプリケーションを延命して新たな環境でも使えるように、アプリケーション仮想化技術を使うケースだ。

 他にも、スマートフォンやタブレットなど新たなデバイスでも既存のアプリケーションが利用できるよう、端末やOSに依存せずにアプリケーションを動かせるアプリケーション仮想化技術が採用されるケースもある。新たな環境への対応策の1つとしてアプリケーション仮想化技術が役立つ場面が増えている。

利用者視点のアプリケーション仮想化のメリット

 一般的に新たなアプリケーションを利用する際には、環境整備のためにインストール作業を行ったり動作確認をしたりする必要がある。アプリケーション仮想化を使えば、サーバ側にアプリケーション環境を用意するだけで、PCにインストールすることなく利用することが可能になる。環境整備の手間と時間が大幅に軽減できるようになるのも1つのメリットだろう。

 これまでWindowsPCでしか使えなかったアプリケーションが、iOSやAndroidなどのスマートデバイスOSでも使えるだけでなく、MacOS上でも使いなれた業務アプリケーションが利用できるようになる。これは、自宅での作業や外出先で仕事を継続するといった、昨今叫ばれているワークスタイル変革にも大きな効果を発揮する。PC側に環境をインストールせずに利用できるため、セキュリティを確保したままネットワークがつながる環境であればどこでも業務が継続できる。

 ワークスタイルを変えることでワークライフバランスが最適化され、より働きやすい環境が手に入るようになる。これは利用者視点だけでなく、新たなワークスタイル環境を整備しなければならない管理者視点でもメリットがあるだろう。

Copyright © ITmedia, Inc. All Rights Reserved.

会員登録(無料)

製品カタログや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます。