仮想化とは、名前のとおり「物理的なものを仮想的な形で再現すること」を指します。
データセンターを構成する要素の中で、仮想化の対象となるものには、オペレーティングシステム、サーバー、ストレージデバイス、デスクトップ環境などがあります。
仮想化では、アプリケーションやオペレーティングシステムといったテクノロジーを抽象化して基盤となるハードウェアやソフトウェアから分離します。
その結果、1つの物理リソースを複数の仮想リソースとして扱うことが可能になります。
ハードウェアの仮想化では、仮想マシンを構築します。仮想マシンは、「物理的なOSを搭載した物理コンピュータ」の代わりとして利用できる、ソフトウェアで作られたコンピュータ環境です。
仮想化ソリューションは、エンタープライズデータセンターの効率化を大幅に促進します。
仮想化されたデーセタンターは、仮想化ソリューション固有のデプロイや管理の複雑さを抽象化によって解消し、モダンデータセンターに欠かせない高い柔軟性を提供します。
また、仮想化は当然ながら以下のような運用コスト削減にも貢献します:
しかし、仮想化のメリットはコスト削減だけではありません。
多くの企業が仮想化を推進するのは、以下のようにより本質的で多面的な利点があるためです。
仮想化により、必要な物理サーバーの台数を大幅に削減できます。サーバー数が減れば、データセンター内の発熱量が低下するため、冷却に必要な電力やコストも抑えられます。また、物理サーバーが多く存在したことで発生していた「データセンター内の混雑」も解消され、運用効率が向上します。
ハードウェアの削減は、コスト削減の最も重要なポイントの1つです。仮想化を活用すると、ハードウェアの使用量を削減できるほか、保守作業と関連コストの削減、障害対応やダウンタイムの減少、電力コストの継続的な削減が実現できます。
仮想化された環境では、新しいサーバーを迅速に再デプロイできます。物理サーバーが停止した場合でも、仮想マシンのスナップショットを活用し、数分で復元が可能です。
仮想マシンは常にスナップショットを保持し、終日バックアップを実行できます。そのため、最新のデータを継続的に利用でき、障害時の復旧時間も大幅に短縮されます。また、仮想マシンは別のサーバーへ容易に移動できるため、バックアップ環境からの再デプロイもスムーズです。
データセンターを仮想化すればするほど、物理的な設備(フットプリント)が減少し、炭素排出量も削減されます。これにより、環境負荷の軽減、ハードウェアコストの削減、電力・冷却コストの最適化といったメリットが得られます。
仮想化環境はテストに非常に適しており、仮想マシンのスナップショットによりエラー発生時も簡単に元の状態へ戻れます。開発・検証・QAのサイクルを高速化できます。
仮想化はソフトウェアとハードウェアの間に抽象化レイヤーを提供します。これは、仮想マシンが特定のハードウェアに依存せず、どの環境でも動作できることを意味します。そのため、ベンダーロックインの回避、既存機器と新規機器の混在利用、将来的な拡張への柔軟対応が可能です。
データセンターが仮想インスタンスに依存している場合、ディザスタリカバリの負担は大幅に軽減されます。ダウンタイムの短縮、影響範囲の縮小、スナップショットを利用した迅速復旧、仮想マシンの別ロケーションへの移動などが可能です。
仮想化はデータセンターのクラウド化を進めるうえでも重要な技術です。完全または大部分が仮想化された環境はクラウド環境を模倣でき、クラウド移行に向けた準備が整います。また、仮想マシンをクラウドへ直接デプロイする選択肢も持つことができます。
組織が仮想化技術を利用する主な理由の1つに、ハイパーバイザを用いてハードウェアを“仮想的に複製”するサーバー仮想化があります。非仮想化環境では、ゲストOSは物理ハードウェアと直接連携して動作するのが一般的です。
しかし仮想化環境では、OSはあたかも物理ハードウェア上で動作しているかのように振る舞いながら、実際にはハイパーバイザ上で仮想マシンとして稼働します。そのため、物理ハードウェアが存在しなくても、期待されるパフォーマンスの多くを得ることができます。
もちろん、物理ハードウェアの性能と仮想化環境の性能が完全に一致するわけではありません。しかし、ほとんどのオペレーティングシステムはハードウェアリソースの全てを必要としないため、仮想化は十分に機能し、多くの企業で採用されています。
仮想化を活用することで、企業は高い柔軟性と制御性を得られ、単一のハードウェアに依存しないシステム運用が可能になります。サーバー仮想化が成功を収めた結果、仮想化技術はネットワーク仮想化、アプリケーション仮想化、データ仮想化、デスクトップ仮想化など、さまざまな領域へ拡大しています。
仮想マシン(VM)は、仮想化技術を構成する重要なコンポーネントの1つです。仮想化とは、物理リソースに依存せず、サーバー、ストレージ、OS、ネットワークなどのコンピューティングリソースを仮想的に再現する技術を指します。仮想マシンは、この仮想化によって構築される、コンピュータシステムを模倣したソフトウェア上のコンピュータです。
仮想マシンは、基盤となる物理ハードウェアをハイパーバイザが抽象化・分離することで作成され、1台の物理サーバー上で複数のオペレーティングシステムを同時に実行できます。
仮想マシン技術の歴史は50年以上に及び、近年はリモートワークの普及やエンドユーザーコンピューティングの進展により、さらに利用が拡大しています。
現在広く利用されている主要な仮想化スタックやハイパーバイザには、次のようなものがあります。
これらの技術は、企業のデータセンター運用を高度化・効率化する基盤として広く採用されています。
ハイパーバイザーとは、物理ハードウェアとオペレーティングシステム(OS)を抽象化し、メモリ、ストレージ、CPU、ネットワーク帯域幅といったリソースを独立した仮想マシンへ分離して割り当てるためのソフトウェアです。各仮想マシンを互いに分離しながら、必要に応じて仮想マシン同士の通信を可能にすることも、ハイパーバイザーの重要な役割です。
ハイパーバイザーは、物理ハードウェアを仮想的にモデル化し、各仮想マシンが正しく動作するように制御するため、次の3つのコンポーネントで構成されています。
これら3つのコンポーネントが連携することで、ハイパーバイザーは単一の物理サーバー上で複数の仮想マシンを効率的かつ柔軟に稼働させることができます。
データ仮想化(英語ページ)は、複数のアプリケーションや物理ロケーションに存在するデータを、複製や移動を行うことなく統合的に利用できるようにするデータ管理手法です。さまざまなデータベースに接続する単一の仮想抽象レイヤーを作成し、ユーザーやアプリケーションには一貫した仮想ビューを提供します。これにより、データの統合やアクセスが容易になり、運用負荷を大幅に軽減できます。
サーバー仮想化は、1台の物理サーバー上に複数のサーバーインスタンス(仮想環境)を作成する技術です。各仮想環境には独立したオペレーティングシステムが存在し、それぞれが個別に動作します。これにより、一台の物理サーバーで多数のマシンを統合して運用でき、サーバーの分散管理による非効率を解消し、運用コストの削減につながります。
OS仮想化は、サーバー仮想化に似た仕組みで、1台のホストOS上にLinuxやWindowsなど複数の独立したOS環境を動作させる技術です。これにより、多数のユーザーがそれぞれ異なるアプリケーションを同時に使用できるようになります。OSレベルの仮想化とも呼ばれ、コンテナ技術に近い形態を持つ分野です。
デスクトップ仮想化(VDI)は、デスクトップ環境を物理デバイスから切り離して仮想化する技術です。1つのデスクトップ環境を複数の端末に一括で提供できるため、ITリソースと時間の節約につながります。また、セキュリティパッチの適用やシステム更新を中央からまとめて実施でき、管理性の向上とセキュリティ強化にも大きく寄与します。
ネットワーク仮想化は、ネットワークのハードウェア機能とソフトウェア機能を統合し、単一の仮想ネットワークとして扱えるようにする技術です。リソース仮想化と組み合わせて、複数のネットワークリソースを統合し、それらをセグメントごとに分割して必要なデバイスやサーバーへ割り当てることが可能です。これにより、ネットワークのスピード、拡張性、信頼性が向上します。
ストレージ仮想化は、複数のストレージデバイスからリソースを抽出し、それらを1つの大容量ストレージに統合する技術です。管理者は中央コンソールから必要に応じて仮想ストレージを割り当てることができ、物理的な構成を意識する必要がありません。ソフトウェアはストレージ要求を受け取り、必要な容量を持つデバイスを自動的に判断するため、柔軟性と効率性が大きく向上します。
クラウドのような柔軟性と拡張性を備えたIT環境を目指す組織にとって、まず取り組むべき基盤技術が仮想化です。自社のデータセンターを仮想化することで、サーバーリソースをこれまでよりも効率的に活用できるようになります。
従来は、1つのアプリケーション(例えば電子メールなど)を動作させるために、専用の物理サーバーを用意する必要がありました。そのため、多数のアプリケーションを運用する場合は多くのサーバーを配置する必要があり、結果としてサーバーリソースが十分に活用されないケースが多く見られました。また、サーバーの増加に伴い、コストや設置スペースも膨らむため、運用効率は低下していました。
仮想化ソリューションを導入すると、ITチームは単一の仮想マシン上で複数のアプリケーション、ワークロード、OSを同時に実行できるようになります。さらに、リソースの追加や削除を柔軟に行えるため、システムをビジネスの需要にあわせて効率的に拡張できます。
仮想化により、需要の変動に対しても迅速に対応でき、リソース利用状況の把握と最適化が容易になります。その結果、IT環境をより柔軟で効率的なものへ進化させることが可能になります。
仮想化は、システムを適切に構成することで、物理システムと同等の安全性を確保できます。しかし、仮想化は物理環境のセキュリティ課題を改善できる一方、新たなリスクを生み出す場合もあります。そのため、仮想化のメリットだけでなく潜在的なリスクも理解し、使用する仮想環境に適切な保護を施すことが重要です。物理システムと仮想化システムのどちらにおいても起こり得るセキュリティ問題を把握することで、リスクを最小限に抑えるための適切な対策が可能になります。
仮想化に伴う主なセキュリティリスクには、次のようなものがあります。
仮想マシンは同一の物理サーバー上に存在していても互いに分離されています。しかし、攻撃者がホストサーバーそのものへ侵入した場合、そのホストが管理するすべての仮想マシンへアクセスされる可能性があります。さらに、管理者アカウントを不正に作成され、重要な企業データを削除・改ざん・収集されるリスクも存在します。
スナップショットとは、特定時点における仮想マシンの状態を保存するデータです。主にバックアップやディザスタリカバリなど、データ保護を目的として利用されます。しかし、仮想マシンの状態は常に変化するため、スナップショットは本来、短期的かつ一時的な保護手段として扱う必要があります。
スナップショットを長期間保持すると、古い設定や脆弱性を含んだ状態が残り続け、攻撃者に機密データを取得されるリスクが高まります。
多くの環境では、初期設定ではホストと仮想マシン間のファイル共有やコピー&ペーストが無効化されています。しかし、デフォルト設定が変更された環境では、管理システムへ侵入した攻撃者が仮想マシンから機密情報をコピーしたり、管理機能を悪用して仮想マシンをマルウェア感染させる危険があります。
仮想マシンはテスト用途などで簡単に作成できますが、利用後に削除されず放置されるケースが多くあります。長期間放置された仮想マシンにはパッチや更新が適用されず、脆弱な状態が続くため、攻撃者に侵入されやすくなります。結果としてシステム全体のセキュリティリスクを高める原因となります。
仮想マシンも物理システムと同様に、ランサムウェアやウイルス、その他のマルウェアに感染する可能性があります。脅威が高度化し続ける現在では、仮想環境も定期的なバックアップとセキュリティ更新が欠かせません。
2022年の調査によると、サーバー仮想化に関連するセキュリティリスクのうち、3分の1以上(35%)がハイパーバイザーに起因すると報告されています。
ハイパーバイザーはサーバー上で仮想マシンを実行するための基盤ソフトウェアであり、IT部門はハイパーバイザーを活用することで仮想マシンの迅速なデプロイや、コンピューティング、ネットワーク、ストレージといったリソースの最適化を実現できます。
しかし、複数の仮想マシンを統合的に管理するという特性から、ハイパーバイザーは攻撃者にとって魅力的な標的にもなります。攻撃者がハイパーバイザーへ不正アクセスした場合、そのサーバー上のすべてのオペレーティングシステムや仮想マシン(アプリケーションやデータを含む)に被害が及ぶ可能性があります。
ハイパーバイザーの安全性を確保するための主なベストプラクティスは次のとおりです。
多くのハイパーバイザーには自動アップデート機能がありますが、手動による確認も定期的に行うことで最新のセキュリティパッチを確実に適用できます。
ベアメタル型ハイパーバイザーは、ホストOSを介さず直接ハードウェア上で動作します。攻撃者がOSに侵入してもハイパーバイザーへ直接アクセスできないため、他のタイプよりも安全性が高いとされています。
ホストサーバーとハイパーバイザーをつなぐ物理NICの使用を必要最小限に抑えることで、攻撃者の侵入口を減らせます。必要ないときはNICを無効化することが望ましいです。
ホストOSとゲストOSをつなぐ機能(ファイル共有など)は、利用しない場合は無効にします。不要なサービスは攻撃対象となりやすいため、利用しないものは必ず停止します。
ハイパーバイザーに接続される全てのOSに対して、ファイアウォールやアンチウイルスなどの最低限のセキュリティ要件を義務づけることが重要です。
仮想化の大きなメリットの1つは、1台の物理サーバーで複数の仮想マシンをホストできる点です。
仮想マシン同士は完全に分離されており、互いの存在を検知することすらできません。これはセキュリティ上大きな利点です。
例えば、攻撃者が特定の仮想マシンへ侵入したとしても、同じサーバー上の他の仮想マシンへ自動的にアクセスできるわけではありません。管理者権限も仮想マシンごとに分離して管理されます。
ただし、物理マシンと同様に、各仮想マシンにもデータ暗号化、アンチウイルス、ファイアウォールなどの保護が必要です。
また、仮想マシン内部の構成要素も分離して保護する必要があります。たとえば、ユーザーインターフェースに不要な要素をサブネットワーク側に隠すことで、攻撃者がそのアドレスを発見する難易度が上がります。
ホストサーバーのリソース使用量と制限値を細かく設定することで、攻撃リスクを軽減できます。
例えば、「仮想マシンが利用できるCPUリソースを15%以上25%未満に制限する」といった設定を行うことで、DoS攻撃を受けた仮想マシンが大量のリソースを占有し、他の仮想マシンへ悪影響を及ぼすことを防げます。
各仮想マシンには、ファイアウォール、アンチウイルス、暗号化、その他セキュリティソリューションを適用する必要があります。
保護を怠った仮想マシンは攻撃者の侵入口となり、パブリックアドレス空間やプライベートアドレス空間をスキャンして更なる侵入や攻撃を引き起こす可能性があります。
VMエスケープは、仮想マシンからハイパーバイザーへ侵入する攻撃手法の1つです。
攻撃者は脆弱な仮想マシン上で不正コードを実行し、仮想マシンの境界を超えて(エスケープして)ハイパーバイザーへアクセスしようとします。
これによりホストOSや他の仮想マシンに直接侵入される危険があります。
VMエスケープ攻撃への対策としては以下が推奨されています。
仮想マシン間やゲスト間でのリソース共有は、セキュリティリスクを引き起こすことがあります。
共有フォルダや共有ファイルは攻撃者の標的になりやすいため、使用しない場合は共有機能を無効化します。また、ホストとリモートユーザー間のコピー&ペーストも同様に無効にすべきです。
ネットワークを保護するため、管理APIの分離が推奨されています。
インフラ管理アプリケーションやオーケストレーション機能は、通常のサービスから切り離して管理することで、APIが攻撃者の標的となるリスクを減らせます。
クラウド上で仮想化を行う場合は、ETSI(欧州電気通信標準化機構)が策定する仮想ネットワーク機能管理(VNF Manager)の規定に準拠することが推奨されます。この規定では、インフラやオーケストレーションツールと接続するAPIに対して一定のセキュリティ要件が定められています。
仮想化とコンテナ化は関連する技術ですが、アプリケーションやコンピューティングリソースの管理方法・デプロイ方法が異なります。
仮想化は、オペレーティングシステム、アプリケーション、データを物理ハードウェアから抽象化し、コンピューティング・ネットワーク・ストレージなどのリソースを複数の仮想マシンに分割して割り当てる技術です。
一方コンテナは仮想化の一部とされ、OSレベルで動作する仮想化(OSレベル仮想化)と説明されることがあります。仮想マシンがハードウェア全体を仮想化するのに対し、コンテナはOS上でアプリケーションと依存関係のみを仮想化します。
仮想マシンは互いに独立して動作し、単独のシステムとして機能します。コンテナもほかのアプリケーションから独立して動作し、リソースを共有しながら隔離性を保つ点では仮想マシンと共通する部分があります。
仮想マシンとコンテナの最も大きな違いは、仮想化する対象です。仮想マシンはOSやアプリケーション、データ、関連ライブラリなどを含むため、数十GB規模になることもあります。一方コンテナはアプリケーションと依存関係のみを含み、複数コンテナが共通のOSと制御機能を共有するため、軽量で迅速に実行できます。
以下に主な違いを整理します。
仮想マシンは完全に独立したOSを持ちますが、コンテナは1つのOSを共有します。
そのため、ホストOSが侵害されるとすべてのコンテナが影響を受ける可能性があります。
仮想マシンはそれぞれが独自のOSを持ちます。
コンテナは共通のOSを共有して動作します。
仮想マシンは1つの物理サーバー上で異なるOSを同時に実行できます。
例:Windowsの仮想マシンとLinuxの仮想マシンを同一ホストで稼働可能。
コンテナはOSを共有するため、LinuxコンテナはLinux上、WindowsコンテナはWindows上でのみ実行できます。
仮想マシンはハイパーバイザーがリソース割り当てと動作を管理します。
コンテナはDockerなどのコンテナランタイムで動作し、複数のコンテナ全体を管理するにはKubernetesなどのオーケストレーションツールが必要です。
仮想マシンは独立した仮想ディスクや、共有ストレージプール(例:SMB)を利用します。
コンテナはホストOSの物理ディスクをそのまま利用します。
仮想化環境ではフェイルオーバークラスタを用いて冗長性と負荷分散を行います。
コンテナ環境ではKubernetesなどのオーケストレーションツールがロードバランシングを担当します。
仮想マシンは仮想ネットワークアダプタ(VNA)を介してネットワーク接続します。
コンテナはVNAを細かく分割し、軽量なネットワーク構成を実現します。
コンテナと仮想マシンには違いがありますが、併用することも可能です。
例えば、システムオンチップ(SoC)の動作検証を行う際、物理ハードウェアで試す前に仮想マシン内でコンテナを使ってテストすることができます。
多くの企業では、次の観点でどちらを採用するかを決定しています。
どちらを選択するかは、必要なリソース、ユースケース、メリットとデメリットを比較して判断する必要があります
仮想化とコンテナ化が関連しつつも異なる技術であるように、仮想化とクラウドコンピューティングも密接に関係していますが、同じものではありません。
クラウド環境での仮想化は、サーバーOSやストレージデバイスを抽象化したエコシステムを構築するために使われます。ユーザーは、個別の仮想マシンを通じて、ネットワーキング、コンピューティング、ストレージなど特定のリソースの物理インスタンスを共有できます。
この仕組みにより、クラウド上のワークロード管理はより柔軟・効率的で、かつコスト効果の高いものになります。実際に、仮想化はクラウドコンピューティングの基本技術のひとつです。
クラウドコンピューティングでは、データやアプリケーションをクラウド上に保存します。一方、仮想化は複数ユーザーが共通のインフラを共有できるようにする仕組みです。Amazon や Azure のようなクラウドサービスプロバイダが、物理サーバーやネットワーク、その他のハードウェアを管理するため、仮想化とクラウドコンピューティングを組み合わせることで大きなコスト削減を実現できます。
オペレーティングシステム(OS)の仮想化は、数十年前に誕生しました。ソフトウェアによって1台のハードウェアで複数のOSを同時に実行できるようになり、メインフレームの時代から企業のIT運用に大きな影響を与えてきました。
仮想マシンの起源は1960年代に遡ります。タイムシェアリング機能を備えた大型メインフレームで活用され、特にIBM 360/67は象徴的な存在でした。1970年代にはメインフレーム環境で広く使用され、その後、1980年代には仮想マシンがパーソナルコンピュータ領域にも広がっていきました。
仮想化が本格的に普及したのは、1980年代後半から1990年代初頭にかけてです。IBMのメインフレーム上で仮想マシン技術は現在も限定的に利用されていますが、当時のような主流ではありません。
仮想マシンを一般的な選択肢へと押し上げたのは Insignia Solutions です。同社が開発した SoftPC は、x86ベースのソフトウェアエミュレーターとして大きな成功を収めました。これを契機に、Apple、Nutanix、Citrix など多くの企業が独自の仮想化製品の開発に取り組むようになりました。