CompTIA A+220-1101 part13 仮想化

NO IMAGE

仮想化

一つのハードウェア上で複数のオペレーティングシステムやアプリケーション環境を動作させることができる重要なツール、仮想化について詳しく学びます。仮想化はクラウドコンピューティングの中核をなすものであり、伝統的なコンピュータのハードウェア機能を仮想環境内でシミュレートすることにより、仮想コンピュータを作成するプロセスです。

例えば、Mac上で仮想マシンを使用して、LinuxやWindows 10のような異なるオペレーティングシステムを実行することができます。これらは実際のコンピュータではなく、オペレーティングシステムが本物のコンピュータにアクセスしていると信じ込ませるソフトウェア駆動の環境です。

 

仮想化

仮想化とは、物理的なコンピューターシステムのリソースを複数の仮想環境に分割する技術を指します。具体的には、1台の物理的なホストコンピュータ上で、複数のゲストオペレーティングシステムを独立して動作させることができます。この技術の核心部分は「ハイパーバイザー」と呼ばれるソフトウェアです。

ハイパーバイザーは大別して2つのタイプに分けられます。

  1. タイプ1(ベアメタル)ハイパーバイザー: これは物理ハードウェア上に直接インストールされるハイパーバイザーです。ベアメタルハイパーバイザーは、ホストのハードウェア上で直接動作し、その上にゲストオペレーティングシステムを実行します。例えば、Hyper-V、ESXi、XenServerなどがこのタイプに該当します。このタイプのハイパーバイザーは、高いパフォーマンスと安定性が求められる環境で好まれます。
  2. タイプ2ハイパーバイザー: これはホストオペレーティングシステムの上にインストールされるハイパーバイザーで、ハイパーバイザー自体がアプリケーションのように動作します。例えば、WindowsやMacOSの上にインストールして使用するVMware WorkstationやOracle VirtualBoxがこのタイプになります。このタイプのハイパーバイザーは、開発環境やテスト環境など、フルのハードウェアリソースのパフォーマンスが必須でない場合に利用されることが多いです。

どちらのタイプのハイパーバイザーを使用する場合も、仮想マシンごとにオペレーティングシステムを持っており、それぞれの仮想マシンは独立して動作します。そのため、仮想マシンはそれ自体が独立したコンピュータのように扱うことができ、それぞれにセキュリティアップデートやパッチを適用する必要があります。

仮想化の利点として、物理的なリソースの効率的な利用、迅速なデプロイメント、災害リカバリの容易さなどが挙げられます。逆に、仮想マシンの数が増えることで、管理が複雑になることや、ハードウェアのリソースに制限がある場合のパフォーマンスの問題などのデメリットも考慮する必要があります。

 

仮想化技術は、ハードウェア資源の最適化や柔軟性の向上を目指して業界で採用されてきました。サーバー仮想化の後、アプリケーションの仮想化が進展し、それに伴い2つの主要なモデルが登場しました。

  1. サーバーベースのアプリケーション仮想化:ここでは、アプリケーションは中央のサーバー上で動作し、エンドユーザーはリモートアクセス技術を使用してこれらのアプリケーションに接続します。MicrosoftのRDPやCitrixのICAのようなプロトコルが利用されることで、アプリケーションの動作はユーザーのデバイスに透過的です。このアプローチの利点は、アプリケーションの更新や管理が中央で行われるため、エンドユーザーデバイスの種類やスペックを気にする必要が少なくなることです。
  2. クライアントベースのアプリケーション仮想化:このモデルでは、アプリケーションはユーザーのPCに「ストリーム」として配信され、一時的にローカルで動作します。しかし、このアプリケーションはユーザーの主要なオペレーティングシステムから隔離された状態で動作します。MicrosoftのApp-Vは、この仮想化技術を実装する一例です。このアプローチの利点は、アプリケーションのパフォーマンスがローカルであるため高速であり、ネットワークの接続が不安定でも問題ないことです。

これらの技術のどちらも、企業がアプリケーションを安全に、そして効果的にデリバリーするための強力なツールとして役立ちます。特にセキュリティ面での利点は、データの不正アクセスや漏洩のリスクを大幅に削減することができるため、業界での採用が進んでいます。

 

コンテナ化

コンテナベースの仮想化は、近年のIT業界における技術的な革命の一部として、急速に人気を集めています。この技術は、従来の仮想マシン(VM)技術とは異なり、柔軟性と効率性を大幅に向上させることができます。

  1. コンテナベースの仮想化とは?
    コンテナベースの仮想化は、一つのオペレーティングシステムの上で複数の独立した実行環境を動かす技術です。それぞれのコンテナは他のコンテナと隔離されており、それぞれのアプリケーションや依存ライブラリを含んでいます。これにより、アプリケーションは一貫した環境で動作し、ホストマシンや他のコンテナの影響を受けません。
  2. 利点
    • 効率性: コンテナは軽量であり、迅速に起動、停止が可能です。これは、従来の仮想マシンよりもはるかに少ないオーバーヘッドで動作します。
    • 移植性: アプリケーションとその依存関係はコンテナ内にパッケージ化されているため、開発環境から本番環境への移行が容易になります。
    • 拡張性: コンテナは簡単にスケールアウトすることができ、クラウド環境でのデプロイが容易です。
  3. 著名な技術とツール
    • Docker: コンテナ技術のデファクトスタンダード。Dockerを使用することで、アプリケーションをコンテナ化して実行することが可能になります。
    • Kubernetes: 複数のコンテナを管理・オーケストレーションするためのオープンソースプラットフォーム。
  4. セキュリティとの関係
    コンテナは、アプリケーションとその依存関係を隔離することができますが、ホストオペレーティングシステムを共有しているため、ホストOSが攻撃を受けると、すべてのコンテナが影響を受ける可能性があります。そのため、ホストのセキュリティ対策や、コンテナ間の通信を制御する必要があります。
  5. チャレンジ
    コンテナ技術の導入には、新しいツールやプラットフォームの学習、既存のシステムとの統合、セキュリティの懸念など、多くの課題が伴います。しかし、適切な計画と実装により、これらの課題を克服することができます。

総括すると、コンテナベースの仮想化は、IT環境をより柔軟かつ効率的にするための強力なツールとしての位置づけられています。従来の仮想化技術と比較して、多くの利点を持っていますが、その導入と実装には注意と計画が必要です。

VMの目的

  1. クラウドコンピューティングと仮想化: クラウドコンピューティングは、ITリソースをインターネットを通じてオンデマンドで提供する技術の一つです。仮想化技術を活用することで、物理的なリソースを複数の仮想リソースとして分割して利用することが可能になります。具体的には、1台の物理的なサーバー上で複数の仮想マシンを稼働させることができます。これにより、データセンターのスペースや電力を効率的に使用することができ、コスト削減や高可用性の実現が期待できます。
  2. セキュリティの懸念: クラウドサービスを利用することで、物理的な環境とは異なるセキュリティのリスクが生じることがあります。例えば、マルチテナント環境でのデータの隔離や、クラウドプロバイダのセキュリティポリシーの適切性などが挙げられます。また、物理的なサーバと同様に、仮想マシンもセキュリティの脆弱性を持つ場合があります。そのため、クラウドサービスを利用する際には、適切なセキュリティ対策を講じることが必要です。
  3. ハイパーバイザ: ハイパーバイザは、仮想マシンを実行するための中間層の役割を果たすソフトウェアです。タイプ1は物理ハードウェア上で直接実行され、高い性能と安定性を持っています。一方、タイプ2は既存のOS上で実行されるため、性能面でのオーバーヘッドが生じることがあります。しかし、タイプ2は設定や管理が容易で、開発やテスト環境として利用されることが多いです。
  4. コンテナベースの仮想化: コンテナは、ハイパーバイザを使用せずに、同じOSカーネルを共有しながら、それぞれのアプリケーションとその依存関係を隔離する技術です。DockerやKubernetesなどの技術がこのカテゴリに属します。コンテナは、軽量で起動が速く、アプリケーションの移植性が高いという特長を持っています。
  5. ハイパーコンバージドインフラ: ハイパーコンバージドインフラは、ストレージ、計算、ネットワークを一つのプラットフォームに統合する技術です。これにより、リソースの管理が効率的になり、スケーラビリティや冗長性も向上します。特に中小規模の企業やリモートオフィスの環境での導入が進んでいます。
  6. アプリケーション仮想化: アプリケーション仮想化は、アプリケーションを直接OSにインストールすることなく実行できるようにする技術です。これにより、異なるOSやバージョン間での互換性の問題を緩和することができます。特にレガシーアプリケーションの移行や、異なるデバイスでの利用が容易になります。
  7. VDI (仮想デスクトップインフラ): VDIは、ユーザーに仮想デスクトップ環境を提供する技術です。ユーザーは、任意のデバイスからセキュアに自身のデスクトップ環境にアクセスすることができます。また、管理者は一元的にデスクトップの管理やセキュリティ対策を行うことができます。
  8. トレーニングのための仮想マシン: 教育やトレーニングの環境では、実際のシステムに影響を与えずに様々なシナリオを試すことが重要です。仮想マシンを利用することで、実際の環境を模倣し、ミスやトラブルが起きてもすぐに元の状態に戻すことができます。
  9. エミュレーション対仮想化: エミュレーションは、一つのハードウェア環境を別のハードウェア上で完全に模倣する技術です。これに対して、仮想化はホストシステムのリソースを効率的にゲストシステムに分配する技術です。エミュレーションは汎用性が高い反面、パフォーマンスのオーバーヘッドが大きいことが多いです。一方、仮想化は高い性能を実現することができますが、ホストとゲストのアーキテクチャが同じである必要があります。

リソース要件

CPU & 仮想化拡張:

  • CPUの仮想化技術の理解の重要性:
    CPUの仮想化技術は、一台の物理的なマシン上で複数の仮想マシン(VM)を実行する能力を提供します。この技術を理解し、最適に活用することで、ハードウェアリソースの最大限の効率を実現できます。
  • IntelとAMDの仮想化技術:
    現代のプロセッサは仮想化をサポートするための特定の技術や拡張を持っています。Intelのプロセッサでは「VT-x」、AMDのプロセッサでは「AMD-V」という技術がそれにあたります。これらの技術は、VMのパフォーマンスと効率を向上させるためのものです。
  • SLAT (Second Level Address Translations):
    SLATは、仮想マシンのメモリアクセスを最適化するための技術です。具体的には、VMと物理ハードウェア間のメモリのマッピングを効率化します。IntelのEPT (Extended Page Table) やAMDのRVI (Rapid Virtualization Indexing) はこの技術の例です。
  • マルチコアとハイパースレッディング:
    現代のコンピュータは複数のコアやスレッドを持つプロセッサを使用しています。これにより、各VMが複数のタスクを並列に処理することが可能となり、全体的なパフォーマンスが向上します。

2. システムメモリ:

物理的なメモリは、仮想マシンの数や性能に直接影響します。各仮想マシンには、オペレーティングシステムやアプリケーションの実行に必要な一定量のRAMが必要です。例として、MacOSやWindowsの推奨RAM量はそれぞれ異なります。メモリが豊富にあれば、より多くのVMを効果的に実行できます。MacOSはおおよそ8GBを必要とし、Windowsは最適なパフォーマンスのために約4GBを必要とする。

3. ストレージ:

VMは物理的なストレージ上にディスクイメージとして存在します。各オペレーティングシステムやアプリケーションには、最適なパフォーマンスを達成するために必要なディスクスペースが異なります。したがって、十分なストレージ容量を確保することが必要です。

Windowsのインストールは20GBを必要とするが、40-50GBを割り当てることが推奨される。Linuxディストリビューションはより軽量で、通常4-8GBが必要である。MacOSは一般的に20-40GBを必要とする。

4. ネットワーキング:

ハイパーバイザは、仮想マシンにネットワーク接続の機能を提供します。物理的なネットワークインターフェイスカード(NIC)を使用して、VMがインターネットや他のネットワークリソースにアクセスできるようにします。効率的なネットワーキングのためには、高速なNICや複数のNICを組み合わせる技術などがあります。

結論:

仮想化を成功させるためには、適切なハードウェアリソースの確保と、それらのリソースの効果的な管理が不可欠です。CPU、メモリ、ストレージ、ネットワーキングなど、各リソースの要件と特性を理解することで、高性能な仮想化環境を実現することができます。

 

セキュリティ要件

  1. VMエスケープ: 仮想マシンエスケープ、通称VMエスケープとは、仮想マシン(VM)の孤立した環境から脱出し、その基盤となるハイパーバイザーに直接コマンドを送信することを試みる攻撃のことを指します。VMは通常、ハイパーバイザーによって物理マシンから隔離されており、この孤立性がセキュリティの要となっています。VMエスケープが成功すると、攻撃者は物理サーバーのリソース(メモリ、ハードドライブ、CPUなど)に直接アクセスすることが可能になります。そのため、ホストOS、ゲストOS、ハイパーバイザーを常に最新の状態に保つことが、このタイプの攻撃からシステムを守るための最も基本的な手段となります。
  2. VMホッピング: VMホッピングは、脅威のアクターが同じホスト上の一つの仮想マシンから別の仮想マシンへと移動する攻撃手法を指します。これは、ハイパーバイザーや仮想化ソフトウェアに存在する脆弱性を悪用する形で行われます。この攻撃の特徴として、2つの仮想マシン間での移動を目的としている点が挙げられます。セキュリティ対策として、ハイパーバイザーを最新の状態に保つとともに、VM間での不要な接続を許可しないよう適切な設定が求められます。
  3. サンドボックスエスケープ: サンドボックスとは、システムやアプリケーションの障害や脆弱性が他の部分に拡散するのを防ぐため、実行中のプロセスやプログラムを隔離するセキュリティメカニズムのことを指します。サンドボックスエスケープは、この隔離された環境から脱出し、保護されたOSや他の特権を持つプロセスにアクセスすることを目的とした攻撃です。対策としては、常にソフトウェアを最新に保つ、エンドポイント保護ソフトウェアを導入する、ウェブブラウザの拡張機能やアドオンを最小限にすることが推奨されます。
  4. 仮想マシンの懸念点:
    仮想化技術が持つメリットの一つに、動作中の仮想マシンを別のホストへの「ライブ移行」があります。しかし、この移行は通常ネットワーク越しに行われるため、暗号化されていない接続で行われるとデータの漏洩のリスクが高まります。したがって、仮想マシンのデータ移行時には、データを暗号化し、セキュアな接続を使用することが非常に重要です。また、仮想マシンをクラウド環境で使用する際には、デプロビジョニング後のデータ残存のリスクがあります。これを防ぐためには、仮想マシンのストレージを暗号化し、不要になった際に暗号化キーを破壊することが重要です

 

仮想マシン

ハイパーバイザーは、仮想マシン モニターとも呼ばれ、仮想マシン (VM) を作成して実行するプロセスです。ハイパーバイザーを使用すると、メモリや処理などのリソースを仮想的に共有することで、1 台のホスト コンピューターが複数のゲスト VM をサポートできるようになります。Windows 2019 オペレーティング システム内で仮想マシンを作成およびプロビジョニングするには、VM Ware や VirtualBox などのタイプ II ハイパーバイザーを使用できます。

仮想マシンには仮想 NIC が含まれます。仮想 NIC は、論理区画上に構成してネットワーク・インターフェースを提供できる仮想アダプターの一種です。この仮想 NIC を物理 NIC とペアにしてマッピングし、VM をネットワークに接続できます。

 

 

関連記事

クラウド クラウドの特性クラウドの数々の利点高い可用性:可用性とは、システムが実際に使用可能で動作している期間のことを指します。多くのクラウドサービスプロバイダは、99.999%のアップタイムという、通常 "f[…]

IMG