Hyper-V 統合サービスの管理

Hyper-V 統合サービスは、Hyper-V ホストとの双方向通信を活用することで、仮想マシンのパフォーマンスを向上させ、便利な機能を提供します。 これらのサービスの多くは、ゲスト ファイルのコピーのように便利なものですが、統合デバイス ドライバーのように仮想マシンの機能にとって重要なものもあります。 この一連のサービスとドライバーは、統合コンポーネントと呼ばれることもあります。 個々の便利なサービスが特定の仮想マシンで動作するかどうかを制御できます。 ドライバー コンポーネントは、手動でサービスを提供するためのものではありません。

各統合サービスの詳細については、「Hyper-V 統合サービス」を参照してください。

重要

使用したいサービスは、ホストとゲストの両方で有効になっていないと機能しません。 ホストでサービスを有効にすると、その実行がゲストで自動的に開始されます。 Windows ゲスト オペレーティング システムでは、 Hyper-V ゲスト サービス インターフェイスを除くすべての統合サービスが既定でオンになっています。 サービスのオン/オフは、個別に切り替えることができます。 次のセクションでは、その方法を説明します。

Hyper-V マネージャーを使用して統合サービスをオンまたはオフにする

  1. 中央のペインで仮想マシンを右クリックし、[設定] を選択します。

  2. [設定] ウィンドウの左ペインで、[管理] の下にある [統合サービス] を選択します。

[統合サービス] ペインには、Hyper-V ホストで使用可能なすべての統合サービスの一覧と、そのホストで仮想マシンが使用できるようになっているかどうかが表示されます。

PowerShell を使用して統合サービスをオンまたはオフにする

これを PowerShell で行うには、Enable-VMIntegrationServiceDisable-VMIntegrationService を使用します。

次の例では、Demovm という名前の仮想マシンで、ゲスト ファイル コピー統合サービスをオンまたはオフにする方法を示します。

  1. 実行中の統合サービスの一覧を取得します。

    Get-VMIntegrationService -VMName "DemoVM"
    
  2. 出力は次のようになります。

    VMName      Name                    Enabled PrimaryStatusDescription SecondaryStatusDescription
    ------      ----                    ------- ------------------------ --------------------------
    DemoVM      Guest Service Interface False   OK
    DemoVM      Heartbeat               True    OK                       OK
    DemoVM      Key-Value Pair Exchange True    OK
    DemoVM      Shutdown                True    OK
    DemoVM      Time Synchronization    True    OK
    DemoVM      VSS                     True    OK
    
  3. ゲスト サービス インターフェイスをオンにします。

    Enable-VMIntegrationService -VMName "DemoVM" -Name "Guest Service Interface"
    
  4. ゲスト サービス インターフェイスが有効になっていることを確認します。

    Get-VMIntegrationService -VMName "DemoVM"
    
  5. ゲスト サービス インターフェイスをオフにします。

    Disable-VMIntegrationService -VMName "DemoVM" -Name "Guest Service Interface"
    

ゲストの統合サービスのバージョンを確認する

ゲストの統合サービスが最新でない場合、一部の機能が正しく機能しないか、まったく動作しない可能性があります。 Windows のバージョン情報を取得するには、ゲスト オペレーティング システムにサインインしてコマンド プロンプトを開き、次のコマンドを実行します。

REG QUERY "HKLM\Software\Microsoft\Virtual Machine\Auto" /v IntegrationServicesVersion

以前のゲスト オペレーティング システムでは、利用可能なサービスの一部が提供されません。 たとえば、Windows Server 2008 R2 のゲストが Hyper-V ゲスト サービス インターフェイスを持つことはできません。

Windows ゲストから統合サービスを開始および停止する

統合サービスを完全に機能させるには、それに対応するサービスがホスト上で有効になっていることに加え、ゲスト内で実行されている必要があります。 Windows ゲストでは、各統合サービスが標準 Windows サービスとして一覧表示されます。 これらのサービスは、コントロール パネルの [サービス] アプレットまたは PowerShell を使用して停止および開始できます。

重要

統合サービスを停止すると、ホストの仮想マシンを管理する機能が深刻な影響を受けます。 正しく機能させるには、使用する各統合サービスをホストとゲストの両方で有効にする必要があります。 ベスト プラクティスとしては、上記の手順に従って、Hyper-V からの統合サービスのみ制御することをお勧めします。 Hyper-V で状態を変更すると、ゲスト オペレーティング システムで一致するサービスが停止するか、自動的に開始されます。 ゲスト オペレーティング システムでサービスを開始しても、それが Hyper-V で無効になっている場合、サービスは停止します。 Hyper-V で有効になっているゲスト オペレーティング システムでサービスを停止すると、Hyper-V によって、最終的に再開されます。 ゲストでサービスを無効にすると、Hyper-V は起動できなくなります。

Windows サービスを使用して Windows ゲスト内の統合サービスを開始または停止する

  1. 管理者として services.msc を実行するか、コントロール パネルの [サービス] アイコンをダブルクリックして、サービス マネージャーを開きます。

    Windows サービス ペインを示すスクリーン ショット

  2. Hyper-V で開始するサービスを検索します。

  3. 開始または停止するサービスを右クリックします。 目的のアクションを選択します。

Windows PowerShell を使用して Windows ゲスト内の統合サービスを開始または停止する

  1. 統合サービスの一覧を取得するには、次のように実行します。

    Get-Service -Name vmic* | FT -AutoSize
    
  2. 出力は次のようになります。

    Status  Name               DisplayName
    ------  ----               -----------
    Running vmicguestinterface Hyper-V Guest Service Interface
    Running vmicheartbeat      Hyper-V Heartbeat Service
    Running vmickvpexchange    Hyper-V Data Exchange Service
    Running vmicrdv            Hyper-V Remote Desktop Virtualization Service
    Running vmicshutdown       Hyper-V Guest Shutdown Service
    Running vmictimesync       Hyper-V Time Synchronization Service
    Stopped vmicvmsession      Hyper-V PowerShell Direct Service
    Running vmicvss            Hyper-V Volume Shadow Copy Requestor
    
  3. Start-Service または Stop-Service を実行します。 たとえば、Windows PowerShell Direct をオフにする場合は次のように実行します。

    Stop-Service -Name vmicvmsession
    

Linux ゲストから統合サービスを開始および停止する

一般的に、Linux 統合サービスは Linux カーネルで提供されます。 Linux 統合サービス ドライバーは hv_utils という名前です。

  1. hv_utils がロードされているかどうかを調べるには、次のコマンドを使用します。

    lsmod | grep hv_utils
    
  2. 出力は次のようになります。

    Module                  Size   Used by
    hv_utils               20480   0
    hv_vmbus               61440   8 hv_balloon,hyperv_keyboard,hv_netvsc,hid_hyperv,hv_utils,hyperv_fb,hv_storvsc
    
  3. 必要なデーモンが実行されているかどうかを確認するには、次のコマンドを使用します。

    ps -ef | grep hv
    
  4. 出力は次のようになります。

    root       236     2  0 Jul11 ?        00:00:00 [hv_vmbus_con]
    root       237     2  0 Jul11 ?        00:00:00 [hv_vmbus_ctl]
    ...
    root       252     2  0 Jul11 ?        00:00:00 [hv_vmbus_ctl]
    root      1286     1  0 Jul11 ?        00:01:11 /usr/lib/linux-tools/3.13.0-32-generic/hv_kvp_daemon
    root      9333     1  0 Oct12 ?        00:00:00 /usr/lib/linux-tools/3.13.0-32-generic/hv_kvp_daemon
    root      9365     1  0 Oct12 ?        00:00:00 /usr/lib/linux-tools/3.13.0-32-generic/hv_vss_daemon
    user     43774 43755  0 21:20 pts/0    00:00:00 grep --color=auto hv
    
  5. 使用できるデーモンを表示するには、次を実行します。

    compgen -c hv_
    
  6. 出力は次のようになります。

    hv_vss_daemon
    hv_get_dhcp_info
    hv_get_dns_info
    hv_set_ifconfig
    hv_kvp_daemon
    hv_fcopy_daemon
    

    一覧表示される可能性のある統合サービス デーモンは次のとおりです。 表示されないものがある場合は、システムでサポートされていないか、インストールされていない可能性があります。 詳細については、「Windows 上の Hyper-V がサポートされている Linux および FreeBSD の仮想マシン」を参照してください。

    • hv_vss_daemon: このデーモンは、Linux 仮想マシンのライブ バックアップを作成するために必要です。
    • hv_kvp_daemon: このデーモンを使用すると、組み込みと外部のキーと値のペアを設定および照会できます。
    • hv_fcopy_daemon: このデーモンは、ホストとゲストの間にファイル コピー サービスを実装します。

これらの例は、hv_kvp_daemonという名前の KVP デーモンの停止と開始を示しています。

  1. プロセス ID (PID) を使用して、デーモンのプロセスを停止します。 PID を検索するには、出力の 2 番目の列を確認するか、pidof を使用します。 Hyper-V デーモンはルートとして実行されるので、ルート アクセス許可は必要ありません。

    sudo kill -15 `pidof hv_kvp_daemon`
    
  2. hv_kvp_daemon プロセスすべてが失われたことを確認するには、次のように実行します。

    ps -ef | hv
    
  3. デーモンを再起動するには、ルートとしてデーモンを実行します。

    sudo hv_kvp_daemon
    
  4. hv_kvp_daemon プロセスが新しいプロセス ID と共に一覧表示されることを確認するには、次のように実行します。

    ps -ef | hv
    

統合サービスを最新の状態に保つ

仮想マシンの最高のパフォーマンスと最新機能を利用するには、統合サービスを最新の状態に保つことをお勧めします。 Windows Update から重要な更新プログラムを取得するように設定されている場合、これは既定で Windows ゲストに対して発生します。 現在のカーネルを使用している Linux ゲストには統合サービスが組み込まれていますが、オプションの更新プログラムを利用できる場合もあります。 カーネルを更新すると、最新の統合コンポーネントが表示されます。 Linux ゲストの詳細については、「Windows 上の Hyper-V でサポートされている Linux および FreeBSD の仮想マシン」を参照してください。

注意

統合サービス ディスクのイメージ ファイル (vmguest.iso) は、Windows Server 2016 および Windows 10 以降では不要になったため、Hyper-V に同梱されていません。 Windows Server 2012 以前では、データ交換統合サービスが必要です。 データ交換統合サービスを有効にできない場合は、これらのゲストの統合サービスをキャビネット (cab) ファイルとしてダウンロード センターから入手できます。 cab の適用方法については、Microsoft TechCommunity のブログ記事に掲載されています。 Hyper-V ホストが Windows Server 2012 R2 以前のバージョンの場合、統合サービスをインストールまたは更新する方法については、次のセクションを参照してください。

Windows Server 2016 および Windows 10 より前の Hyper-V ホスト用の統合サービスをインストールまたは更新する

注意

Windows Server 2016 および Windows 10 以降では必要ありません。

Windows Server 2016 および Windows 10 より前の Hyper-V ホストの場合、ゲスト OS で統合サービスを手動でインストールまたは更新する必要があります。

統合サービスを手動でインストールまたは更新するには:

  1. Hyper-V マネージャーを開きます。

  2. 仮想マシンへの接続 仮想マシンを右クリックして [接続] を選択します。

  3. [仮想マシン接続] の [操作] メニューで、[統合サービス セットアップ ディスクの挿入] を選択します。 この操作により、仮想 DVD ドライブにセットアップ ディスクが読み込まれます。 ゲスト オペレーティング システムによっては、エクスプローラーから手動でインストールを開始する必要があります。

  4. インストールが完了すると、統合サービスを使用できるようになります。