検索

3.4. 仮想化されたハードウェアデバイス

download PDF
Red Hat Enterprise Linux 7 の仮想化では、仮想マシンがホストの物理ハードウェアを 3 つの異なるタイプのデバイスとして使用できます。
  • 仮想化およびエミュレートされたデバイス
  • 準仮想化デバイス
  • 物理的に共有されているデバイス
これらのハードウェアデバイスはすべて、仮想マシンに物理的に接続されたハードウェアデバイスとして表示されますが、デバイスドライバーはさまざまな方法で機能します。

3.4.1. 仮想化およびエミュレートされたデバイス

KVM は、仮想マシンの多くのコアデバイスをソフトウェアとして実装します。これらのエミュレートされたハードウェアデバイスは、オペレーティングシステムの仮想化に不可欠です。エミュレートされたデバイスは、完全にソフトウェア内に存在する仮想デバイスです。
さらに、KVM はエミュレートされたドライバーを提供します。 これらのドライバーは、仮想マシンと (ソースデバイスを管理する) Linux カーネルの間の変換レイヤーを形成します。デバイスレベルの命令は、KVM ハイパーバイザーによって完全に変換されます。Linux カーネルによって認識される同じタイプのデバイス (ストレージ、ネットワーク、キーボード、またはマウス) は、エミュレートされたドライバーのバッキングソースデバイスとして使用できます。
仮想 CPU (vCPU)
Red Hat Enterprise Linux 7.2 以降では、ホストシステムは、ホスト CPU の数に関係なく、ゲストに提示して使用できる仮想 CPU (vCPU) を最大 240 個持つことができます。これは、Red Hat Enterprise Linux 7.0 の 160 から増加しています。
エミュレートされたシステムコンポーネント
基本的なシステム機能を提供するために、次のコアシステムコンポーネントがエミュレートされます。
  • Intel i440FX ホスト PCI ブリッジ
  • PIIX3 PCI-ISA ブリッジ
  • PS/2 マウスとキーボード
  • EvTouch USB グラフィックタブレット
  • PCI UHCI USB コントローラーと仮想化された USB ハブ
  • エミュレートされたシリアルポート
  • EHCI コントローラー、仮想化された USB ストレージ、および USB マウス
  • USB 3.0 xHCI ホストコントローラー (Red Hat Enterprise Linux 7.3 ではテクノロジープレビュー)
エミュレートされたストレージドライバー
ストレージデバイスとストレージプールは、エミュレートされたドライバーを使用して、ストレージデバイスを仮想マシンに接続できます。ゲストは、エミュレートされたストレージドライバーを使用して、ストレージプールにアクセスします。
すべての仮想デバイスと同様に、ストレージドライバーはストレージデバイスではないことに注意してください。ドライバーは、バッキングストレージデバイス、ファイル、またはストレージプールボリュームを仮想マシンに接続するのに使用されます。バッキングストレージデバイスは、サポートされている任意のタイプのストレージデバイス、ファイル、またはストレージプールボリュームにすることができます。
エミュレートされた IDE ドライバー
KVM は、2 つのエミュレートされた PCI IDE インターフェイスを提供します。エミュレートされた IDE ドライバーは、最大 4 つの仮想化 IDE ハードディスクまたは仮想化 IDE CD-ROM ドライブの組み合わせを各仮想マシンに割り当てるために使用できます。エミュレートされた IDE ドライバーは、仮想化された CD-ROM および DVD-ROM ドライブにも使用されます。
エミュレートされたフロッピーディスクドライブドライバー
エミュレートされたフロッピーディスクドライブドライバーは、仮想化されたフロッピードライブを作成するために使用されます。
エミュレートされたサウンドデバイス
エミュレートされた (Intel) HDA サウンドデバイス intel-hda は、次のゲストオペレーティングシステムでサポートされています。
  • Red Hat Enterprise Linux 7 (AMD64 および Intel 64 アーキテクチャー向け)
  • Red Hat Enterprise Linux 4、5、および 6 (32 ビット AMD および Intel アーキテクチャー向け、AMD64 および Intel 64 アーキテクチャー向け)
注記
次のエミュレートされたサウンドデバイスも利用できますが、特定のゲストオペレーティングシステムとの互換性の問題があるため、推奨されません。
  • ac97、エミュレートされた Intel 82801AA AC97 Audio 互換サウンドカード
エミュレートされたグラフィックスカード
次のエミュレートされたグラフィックスカードが提供されます。
  • Cirrus CLGD 5446 PCI VGA カード
  • Bochs VESA 拡張機能を備えた標準 VGA グラフィックスカード (すべての非標準モードを含むハードウェアレベル)
ゲストは、Simple Protocol for Independent Computing Environments (SPICE) プロトコルまたは Virtual Network Computing (VNC) システムを使用してこれらのデバイスに接続できます。
エミュレートされたネットワークデバイス
次の 2 つのエミュレートされたネットワークデバイスが提供されます。
  • e1000 デバイスは、Intel E1000 ネットワークアダプター (Intel 82540EM、82573L、82544GC) をエミュレートします。
  • rtl8139 デバイスは、Realtek 8139 ネットワークアダプターをエミュレートします。
エミュレートされたウォッチドッグデバイス
ウォッチドッグを使用すると、マシンが過負荷になったり応答しなくなったりしたときに、仮想マシンを自動的に再起動できます。
Red Hat Enterprise Linux 7 は、以下のエミュレートされたウォッチドッグデバイスを提供します。
  • i6300esb、エミュレートされた Intel 6300 ESB PCI ウォッチドッグデバイス。これは、ゲストオペレーティングシステムの Red Hat Enterprise Linux バージョン 6.0 以降でサポートされており、使用が推奨されるデバイスです。
  • ib700、エミュレートされた iBase 700 ISA ウォッチドッグデバイス。ib700 ウォッチドッグデバイスは、Red Hat Enterprise Linux 6.2 以降を使用するゲストでのみサポートされます。
どちらのウォッチドッグデバイスも、ゲストオペレーティングシステム Red Hat Enterprise Linux 6.2 以降の 32 ビットおよび 64 ビットの AMD および Intel アーキテクチャーでサポートされています。

3.4.2. 準仮想化デバイス

準仮想化は、ゲストがホストマシン上のデバイスを使用するための高速で効率的な通信手段を提供します。KVM は、ハイパーバイザーとゲストとの間のレイヤーとして virtio API を使用して、準仮想化デバイスを仮想マシンに提供します。
I/O レイテンシーを低減し、ベアメタルに近いレベルまで I/O スループットを向上させる準仮想化デバイス もあれば、他の方法では利用できない機能を仮想マシンに追加する準仮想化デバイスもあります。I/O 集約型アプリケーションを実行する仮想マシンには、エミュレートされたデバイス の代わりに準仮想化デバイスを使用することが推奨されます。
すべての virtio デバイスには、ホストデバイスとゲストドライバーの 2 つの部分があります。準仮想化デバイスドライバーにより、ゲストオペレーティングシステムはホストシステム上の物理デバイスにアクセスできます。
このデバイスを使用するには、準仮想化デバイスドライバーをゲストオペレーティングシステムにインストールする必要があります。デフォルトでは、準仮想化デバイスドライバーは Red Hat Enterprise Linux 4.7 以降、Red Hat Enterprise Linux 5.4 以降、および Red Hat Enterprise Linux 6.0 以降に含まれています。
注記
準仮想化デバイスおよびドライバーの使用に関する詳細は、Red Hat Enterprise Linux 7 仮想化の導入および管理ガイド を参照してください。
準仮想化ネットワークデバイス (virtio-net)
準仮想化ネットワークデバイスは、I/O パフォーマンスが高くレイテンシーが低いネットワークアクセスを仮想マシンに提供する仮想ネットワークデバイスです。
準仮想化ブロックデバイス (virtio-blk)
準仮想化ブロックデバイスは、I/O パフォーマンスが高くレイテンシーが低いストレージを仮想マシンに提供する高パフォーマンスの仮想ストレージデバイスです。準仮想化ブロックデバイスは、ハイパーバイザーによってサポートされ、仮想マシンに接続されます (エミュレートする必要があるフロッピーディスクドライブを除く)。
準仮想化コントローラーデバイス (virtio-scsi)
準仮想化 SCSI コントローラーデバイスは、virtio-blk に代わる、より柔軟でスケーラブルな代替手段です。virtio-scsi ゲストは、ターゲットデバイスの機能セットを継承することができ、28 個のデバイスしか処理できない virtio-blk と比較して、数百のデバイスを処理できます。
virtio-scsi は、次のゲストオペレーティングシステムで完全にサポートされています。
  • Red Hat Enterprise Linux 7
  • Red Hat Enterprise Linux 6.4 以降
準仮想化されたクロック
Time Stamp Counter (TSC) をクロックソースとして使用しているゲストには、タイミングの問題が発生する場合があります。KVM は、ゲストに準仮想化クロックを提供することで、一定の Time Stamp Counter を持たないホストに対処します。さらに、準仮想化クロックは、ゲストがスリープ (S3) または RAM へのサスペンド操作を実行した後に必要な時間調整を支援します。
準仮想化されたシリアルデバイス (virtio-serial)
準仮想化シリアルデバイスは、バイトストリーム指向の文字ストリームデバイスであり、ホストのユーザー空間とゲストのユーザー空間の間の単純な通信インターフェイスを提供します。
バルーンデバイス (virtio-balloon)
バルーンデバイスは、仮想マシンの RAM の一部が使用されていないことを指定できます (バルーンの 膨張 として知られているプロセス)。これにより、ホストや、そのホストのその他の仮想マシンが使用するメモリーを解放できます。仮想マシンにメモリーが再度必要になると、バルーンが収縮 され、ホストは RAM を仮想マシンに分散して戻すことができます。
準仮想化乱数ジェネレーター (virtio-rng)
準仮想化乱数ジェネレーターは、仮想マシンがホストから直接エントロピーまたはランダム性を収集して、暗号化されたデータとセキュリティーに使用できるようにします。仮想マシンでは、通常の入力 (ハードウェアの使用状況など) が利用できないため、エントロピーが枯渇することがよくあります。エントロピーの収集には時間がかかる場合があります。virtio-rng は、エントロピーをホストからゲスト仮想マシンに直接注入することで、このプロセスを高速化します。
準仮想化グラフィックカード (QXL)
準仮想化グラフィックカードは QXL ドライバーと連携して、リモートホストから仮想マシンのグラフィックを表示する効率的な方法を提供します。 SPICE を使用するには、QXL ドライバーが必要です。

3.4.3. 物理ホストデバイス

特定のハードウェアプラットフォームにより、仮想マシンはさまざまなハードウェアデバイスやコンポーネントに直接アクセスできます。仮想化におけるこのプロセスは、デバイス割り当てパススルー と呼ばれます。
VFIO デバイスの割り当て
Virtual Function I/O (VFIO) は、Red Hat Enterprise Linux 7 の新しいカーネルドライバーであり、物理ハードウェアへの高パフォーマンスアクセスを仮想マシンに提供します。
VFIO は、ホストシステム上の PCI デバイスを仮想マシンに直接接続し、さまざまなタスクのために PCI デバイスへの排他的アクセスをゲストに提供します。これにより、PCI デバイスがゲスト仮想マシンに物理的に接続されているかのように表示され、動作するようになります。
VFIO は、KVM ハイパーバイザーからデバイス割り当てを移動し、カーネルレベルでデバイス分離を実施することにより、以前の PCI デバイス割り当てアーキテクチャーを改善します。VFIO はより優れたセキュリティーを提供し、セキュアブートと互換性があります。VFIO は Red Hat Enterprise Linux 7 のデフォルトのデバイス割り当てメカニズムです。
VFIO により、割り当てられるデバイスの数が増加し、Red Hat Enterprise Linux 7 では 32 デバイスとなりました。Red Hat Enterprise Linux 6 では最大 8 デバイスです。VFIO は、NVIDIA GPU の割り当てもサポートしています。
注記
VFIO デバイスの割り当てに関する詳細は、Red Hat Enterprise Linux 7 仮想化の導入および管理ガイド を参照してください。
USB、PCI、および SCSI パススルー
KVM ハイパーバイザーは、ホストシステム上の USB、PCI、および SCSI デバイスの仮想マシンへの接続をサポートしています。USB、PCI、および SCSI デバイスの割り当てにより、デバイスが仮想マシンに物理的に接続されているかのように表示され、動作するようになります。そのため、さまざまなタスクを実行するために、これらのデバイスへの排他的アクセスをゲストに提供できます。
注記
USB、PCI、および SCSI パススルーの詳細については、Red Hat Enterprise Linux 7 仮想化の導入および管理ガイド を参照してください。
SR-IOV
SR-IOV (Single Root I/O Virtualization) は、単一の物理 PCI 機能を拡張してその PCI リソースを個別の 仮想機能 (VF) として共有する PCI Express (PCI-e) 標準です。各機能は、PCI デバイスの割り当てを介して異なる仮想マシンで使用できます。
SR-IOV 対応の PCI-e デバイスは、シングルルート機能 (単一のイーサネットポートなど) を提供し、複数の個別の仮想デバイスを独自の PCI デバイス機能として提供します。各仮想デバイスには、独自の固有の PCI 設定領域、メモリーにマップされたレジスター、および個々の MSI ベースの割り込みがあります。
注記
SR-IOV の詳細は、Red Hat Enterprise Linux 7 仮想化の導入および管理ガイド を参照してください。
NPIV
N_Port ID Virtualization (NPIV) は、一部のファイバーチャネルデバイスで使用できる機能です。NPIV は、単一の物理 N_Port を複数の N_Port ID として共有します。NPIV は、SR-IOV が PCIe インターフェイスに提供するのと同様の機能をファイバーチャネルホストバスアダプター (HBA) に提供します。NPIV を使用すると、ストレージエリアネットワーク (SAN) への仮想ファイバーチャネルイニシエーターを仮想マシンに提供できます。
NPIV は、エンタープライズレベルのストレージソリューションを備えた高密度の仮想化環境を提供できます。
NPIV の詳細は、SCSI デバイスを使用した storage pools を参照してください。

3.4.4. ゲスト CPU モデル

CPU モデル は、どのホスト CPU 機能をゲストオペレーティングシステムに公開するかを定義します。KVMlibvirt には多くのプロセッサーモデルの定義が含まれており、ユーザーは新しい CPU モデルでのみ利用可能な CPU 機能を有効にすることができます。ゲストに公開できる CPU 機能のセットは、ホスト CPU、カーネル、および KVM コードでのサポートに依存します。
CPU 機能のセットが異なるホスト間で仮想マシンを安全に移行できるように、KVM は、デフォルトでホスト CPU のすべての機能をゲストオペレーティングシステムに公開しません。そうではなく、選択された CPU モデルに基づいて CPU 機能を公開します。 仮想マシンで特定の CPU 機能が有効になっている場合、その機能をゲストに公開することをサポートしていないホストにその仮想マシンを移行することはできません。
注記
ゲスト CPU モデルの詳細は、Red Hat Enterprise Linux 7 仮想化の導入および管理ガイド を参照してください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.