仮想化は、IT 経費を削減し、セキュリティを強化し、運用効率を向上させる方法として、普遍的に活用されるようになりました。仮想化には様々な形態がありますが、特にサーバーの仮想化は92%の企業で導入されています。
多くの組織が、仮想マシン(Vertual Mashines、VM)を使用して、ストレージの仮想化、アプリケーションの仮想化、ネットワークとデータの仮想化などを行っています。仮想マシンを使った仮想デスクトップインフラストラクチャ(virtual desktop infrastructure、VDI)も構築されています。
仮想化とは
仮想化とは、物理マシン内のリソースを分割し、個々のインスタンスを個別に実行することで、実際の物理リソースの数量以上のリソースが稼働しているように見せかける技法です。マシンの容量を最大化し、必要な物理マシンの数を減らすことができます。
例えば、メール、アプリケーション、Web ホスティング用に別々のサーバーを実行する代わりに、1つのサーバーで3つのインスタンスすべてを仮想的にホストできます。コンピュータの内部に別のコンピュータを作成するようなものと捉えることもできます。それぞれが異なるタスクを処理しながら独立して作業できます。
仮想化の歴史
仮想化の概念が考案され実装されたのは、1960年代のことです。IBM の System/360 メインフレームのオペレーティングシステム、CP-40 の開発が1964年に始まり、1968年に IBM のハイパーバイザの2番目のバージョンである CP-67に置き換わりました。バッチ処理などのタスクのために複数のユーザーが同時にコンピュータにアクセスできるようになりました。
テクノロジーの進化に伴い、単一のベンダーに頼って複数の物理サーバーを運用する方式から移行して、より安価なサーバーを利用するオプションも選択できるようになりました。ただ、1つのタスクに対しては1台のサーバーが割り当てられ、将来的にも十分な容量を確保しておく目的で通常はサーバーには容量に余裕を持たせてありました。必要になることがないかもしれない過剰な容量に対して支払いを余儀なくされるか、容量に余裕がなければ複数のサーバーを追加する必要に直面するという葛藤がありました。
仮想化を導入すれば、単一のハードウェア上で複数のタスクまたはインスタンスを実行できます。サーバーを分割することにより、同じマシン内で複数のオペレーティングシステムとアプリケーションを実行できます。仮想化によって柔軟性が得られ、サーバーの容量を最大限に活用できるようになりました。
仮想化は、制約の多いベンダーロックインからの解放にも貢献しました。
仮想化は、クラウドコンピューティングが普及したことで、一挙にスタンダードになりました。現在クラウドリソースを使用しているなら、おそらく共有マシン内の仮想化環境を利用していると考えていいでしょう。
仮想化のしくみ
仮想化では、専用のソフトウェアを使用して環境をシミュレーションします。ベアメタル仮想化ではソフトウェアは仮想環境で物理ハードウェアをシミュレートし、ソフトウェアであるにもかかわらず、物理サーバーのように動作します。
ホストマシン
ホストマシンは、仮想マシンが存在する場所です。仮想化ソフトウェアを実行し、仮想マシンが動作するために必要な CPU、RAM、ストレージ、ネットワークなどのコンピューティングパワーを提供します。
仮想マシン
仮想マシンは、仮想環境内のホストマシンに存在します。サーバーやコンピュータなど、単一のハードウェアと見做すことができます。すべてのやり取りは、物理マシンへのリクエストを管理するハイパーバイザを通して行われ、ハードウェアからハイパーバイザに送られたデータが仮想マシンに中継されます。
単一のホストマシンで複数の VM を実行することが可能ですが、各 VM はあたかもそれがマシン上で実行されている唯一のシステムであるかのように動作します。
ストレージなどの他のハードウェアをシミュレートすることもできます。ハイパーバイザに表示される仮想ストレージアレイを、ネットワーク全体で統合された一連の物理ハードドライブと見立てて、構築することができます。
ハイパーバイザ
ホストマシン内で仮想環境を作成および管理し、全体をまとめる要になるのがハイパーバイザです。各 VM が他の VM の動作を妨げることなく効率的に動作できるよう、各オペレーティングシステムに必要なリソースを割り当ててコントロールします。
ハイパーバイザには2つのタイプがあります。
タイプ1ハイパーバイザ
タイプ1ハイパーバイザは、システムのハードウェア上で直接実行されるため、ベアメタル・ハイパーバイザとも呼ばれます。各 VM は独自のオペレーティングシステムを実行する必要があります。
タイプ1ハイパーバイザソフトウェアとしては次のものがあります。
- VMware ESX および ESXi
- Microsoft Hyper-V
- Citrix XenServer
- Oracle VM
タイプ2ハイパーバイザ
タイプ2ハイパーバイザは、ホスト型ハイパーバイザです。ハードウェア上で直接実行するのではなく、ハードウェアのオペレーティングシステムで実行されます。したがって VM ごとに独立したオペレーティングシステムを実行する必要はなく、複数の VM を実行するマシンでよく使用されます。
タイプ2ハイパーバイザソフトウェアとしては次のものがあります。
- VMware Workstation/Fusion
- VMware Server
- Microsoft Virtual PC
- Oracle VM VirtualBox
仮想マシンのプロビジョニング
ハイパーバイザをインストールしても、仮想マシンが自動的にプロビジョニングされることはありません。ソフトウェアに何をすべきかを指示する必要があります。通常、次の4つの領域が含まれます。
- プロビジョニング:リソース要求の処理、テンプレートの作成、VM 設定を行うためにプロビジョニングする必要があります。
- セキュリティとコンプライアンス:ユーザーアクセスの検証など、セキュリティと監視のためのプロセスが必要です。
- リソース管理:将来のニーズの予測、未使用スペースの再利用、使用率の低いリソースの検出など。
- 環境の管理:仮想環境全体 - パブリッククラウド、プライベートクラウド、ハイブリッド、コンテナ を見通した管理が必要です。
新しい VM が追加されると、これら4領域のそれぞれが複雑さを増します。相互依存関係を効率的に管理するために、専用の仮想化ソフトウェアを使用する企業もあります。
ハードウェアの仮想化
ハードウェア仮想化では、ハードウェアシステムに直接、仮想マシンマネージャがインストールされます。ハイパーバイザは、メモリ、プロセス、その他のハードウェアリソースをメインテインします。サーバープラットフォームには、ハードウェア仮想化が一般的です。仮想マシンの操作は、物理サーバーを保守する作業より簡単です。
ネストされた仮想化
仮想化システムは独立して動作します。ハードウェア上で実行されていても、別の仮想マシン内にネストされていても、違いはありません。仮想マシンは、独自のネストされた仮想マシンを持つことができます。鏡を背景にして鏡を見ているようなもので、反射の反射の反射を見ることができます。ネストされた仮想化は、リソースがサポートする深さまで階層化できます。
各仮想マシンは、それぞれが独立した物理ハードウェアであるかのように動作します。
オペレーティングシステムの仮想化
仮想マシンマネージャをホストのオペレーティングシステムにインストールして、プラットフォーム間でアプリケーションをテストすることもできます。
ストレージ仮想化
膨大なリソースのストレージは、ストレージ仮想化でコントロールできます。仮想ストレージシステムで、サーバーのアレイをコントロールできます。クラウドシステムのバックアップと障害復旧のためによく使用されます。
ストレージ仮想化ソフトウェアには次のようなものがあります。
- WMware vSAN
- Microsoft Storage Spaces Direct
- HPE StoreVirtual VSA
- Starwind Virtual SAN (VSAN)
アプリケーションの仮想化
アプリケーションも仮想化が可能で、デバイス自体でアプリケーションを実行する必要はなく、仮想化アプリケーションがサーバーからデバイスに配信されます。リモートワーカーは、デバイスでホストすることなく、アプリケーションとそのデータに接続できます。
デスクトップ仮想化
同様に、デスクトップ仮想化では、仮想デスクトップインフラストラクチャ(VDI)を使用して、デスクトップ上のファイルやアプリケーションにリモートアクセスできます。
仮想化のメリットとデメリット
何においてもそうであるように、仮想化にはメリットとデメリットがあります。
仮想化のメリット
仮想化には様々なメリットがあります。実際の物理マシンの数量を少なく抑えられ、ハードウェア、メンテナンス、運用のために必要なスペースと費用を節約することができます。集中管理のしやすさも大きなメリットです。アプリケーションとの互換性も保てます。さらに、次のようなメリットもあります。
- 災害が発生した場合、復旧がより簡単
- バックアップは同一マシン上で可能
- サーバーの新しいハードウェアへの移行がスムーズ
- ハードウェアリソースを必要に応じて動的に再割り当てでき、ワークロードのバランスが容易
- 負荷分散が有効で、パフォーマンスを向上させるために簡単に設定を変更可能
- 環境移行にかかる時間が短い
もう1つの利点は、オペレーティングシステムの柔軟性です。古いアプリケーションをサポートしない新しいオペレーティングシステムに移行またはアップグレードすることになった場合、仮想マシンで旧オペレーティングシステムを走らせて古いアプリケーションをサポートすることができます。
仮想化のデメリット
仮想化における最大の懸案事項は、サーバーがオフラインになったり誤動作したりすると、そのサーバーがホストしているすべてに影響が及ぶことです。デメリットというよりも、克服するべき課題と言い換えた方がいいかもしれませんが。
仮想化を導入する際には、各仮想環境が使用するリソースに注意を払うことが重要です。1つのホストで複数の仮想マシンが実行されている場合、システムへの負荷が重くなり過ぎる可能性があります。多くのセッションを同時進行させるのに十分なリソースがないと、パフォーマンスが低下する可能性があります。
統合された仮想環境全体のトータルとしてのパフォーマンスが最適になるよう管理することは簡単なことではなく、しっかりした準備と調整が必要です。仮想マシンと物理マシンの間で RAM の消費を「分割」することになるので、RAM の配分が問題になる可能性があります。
また、仮想マシンの構造と階層を文書化するという作業が重要になります。効果的に連携するには、チェーン内に複数のリンクが必要です。リバースエンジニアリングも、ロードマップがないと複雑で困難でしょう。仮想環境インフラストラクチャの動的マップは、仮想環境監視ツールを利用することで自動作成できます。
プログレスのネットワーク監視ソフトウェア、WhatsUp Gold の無料試用版で、仮想環境監視をお試しください。