Hyper-V 統合サービスの管理
Hyper-V 統合サービスは、Hyper-V ホストとの双方向通信を活用することで、仮想マシンのパフォーマンスを向上させ、便利な機能を提供します。 これらのサービスの多くは、ゲスト ファイルのコピーのように便利なものですが、統合デバイス ドライバーのように仮想マシンの機能にとって重要なものもあります。 この一連のサービスとドライバーは、統合コンポーネントと呼ばれることもあります。 個々の便利なサービスが特定の仮想マシンで動作するかどうかを制御できます。 ドライバー コンポーネントは、手動でサービスを提供するためのものではありません。
各統合サービスの詳細については、「Hyper-V 統合サービス」を参照してください。
重要
使用したいサービスは、ホストとゲストの両方で有効になっていないと機能しません。 ホストでサービスを有効にすると、その実行がゲストで自動的に開始されます。 Windows ゲスト オペレーティング システムでは、 Hyper-V ゲスト サービス インターフェイスを除くすべての統合サービスが既定でオンになっています。 サービスのオン/オフは、個別に切り替えることができます。 次のセクションでは、その方法を説明します。
Hyper-V マネージャーを使用して統合サービスをオンまたはオフにする
中央のペインで仮想マシンを右クリックし、[設定] を選択します。
[設定] ウィンドウの左ペインで、[管理] の下にある [統合サービス] を選択します。
[統合サービス] ペインには、Hyper-V ホストで使用可能なすべての統合サービスの一覧と、そのホストで仮想マシンが使用できるようになっているかどうかが表示されます。
PowerShell を使用して統合サービスをオンまたはオフにする
これを PowerShell で行うには、Enable-VMIntegrationService と Disable-VMIntegrationService を使用します。
次の例では、Demovm という名前の仮想マシンで、ゲスト ファイル コピー統合サービスをオンまたはオフにする方法を示します。
実行中の統合サービスの一覧を取得します。
Get-VMIntegrationService -VMName "DemoVM"
出力は次のようになります。
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
ゲスト サービス インターフェイスをオンにします。
Enable-VMIntegrationService -VMName "DemoVM" -Name "Guest Service Interface"
ゲスト サービス インターフェイスが有効になっていることを確認します。
Get-VMIntegrationService -VMName "DemoVM"
ゲスト サービス インターフェイスをオフにします。
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 ゲスト内の統合サービスを開始または停止する
管理者として
services.msc
を実行するか、コントロール パネルの [サービス] アイコンをダブルクリックして、サービス マネージャーを開きます。Hyper-V で開始するサービスを検索します。
開始または停止するサービスを右クリックします。 目的のアクションを選択します。
Windows PowerShell を使用して Windows ゲスト内の統合サービスを開始または停止する
統合サービスの一覧を取得するには、次のように実行します。
Get-Service -Name vmic* | FT -AutoSize
出力は次のようになります。
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
Start-Service または Stop-Service を実行します。 たとえば、Windows PowerShell Direct をオフにする場合は次のように実行します。
Stop-Service -Name vmicvmsession
Linux ゲストから統合サービスを開始および停止する
一般的に、Linux 統合サービスは Linux カーネルで提供されます。 Linux 統合サービス ドライバーは hv_utils という名前です。
hv_utils がロードされているかどうかを調べるには、次のコマンドを使用します。
lsmod | grep hv_utils
出力は次のようになります。
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
必要なデーモンが実行されているかどうかを確認するには、次のコマンドを使用します。
ps -ef | grep hv
出力は次のようになります。
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
使用できるデーモンを表示するには、次を実行します。
compgen -c hv_
出力は次のようになります。
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 デーモンの停止と開始を示しています。
プロセス ID (PID) を使用して、デーモンのプロセスを停止します。 PID を検索するには、出力の 2 番目の列を確認するか、
pidof
を使用します。 Hyper-V デーモンはルートとして実行されるので、ルート アクセス許可は必要ありません。sudo kill -15 `pidof hv_kvp_daemon`
hv_kvp_daemon
プロセスすべてが失われたことを確認するには、次のように実行します。ps -ef | hv
デーモンを再起動するには、ルートとしてデーモンを実行します。
sudo hv_kvp_daemon
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 で統合サービスを手動でインストールまたは更新する必要があります。
統合サービスを手動でインストールまたは更新するには:
Hyper-V マネージャーを開きます。
仮想マシンへの接続 仮想マシンを右クリックして [接続] を選択します。
[仮想マシン接続] の [操作] メニューで、[統合サービス セットアップ ディスクの挿入] を選択します。 この操作により、仮想 DVD ドライブにセットアップ ディスクが読み込まれます。 ゲスト オペレーティング システムによっては、エクスプローラーから手動でインストールを開始する必要があります。
インストールが完了すると、統合サービスを使用できるようになります。