管理 Hyper-V 集成服务
Hyper-V 集成服务通过利用与 Hyper-V 主机的双向通信来增强虚拟机性能并提供便利功能。 其中许多服务都很便利,例如来宾文件复制,而其他服务则对虚拟机的功能很重要,例如合成设备驱动程序。 这组服务和驱动程序有时称为集成组件。 可以控制是否针对任何给定虚拟机运行单个便利服务。 驱动程序组件不打算手动提供。
有关每个集成服务的详细信息,请参阅 Hyper-V 集成服务。
重要
要使用的每个服务都必须同时在主机和来宾中启用才能正常运行。 在主机中启用一项服务时,它自动开始在来宾中运行。 默认情况下,除 Hyper-V 来宾服务接口之外的所有集成服务在 Windows 来宾操作系统上均处于打开状态。 可以单独打开和关闭服务。 接下来的部分介绍如何操作。
使用 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 开头的服务。
右键单击要启动或停止的服务。 选择所需操作。
使用 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,请查看输出的第二列,或使用
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 来宾设置为从Windows 更新获取重要更新,则会默认保持最新状态。 使用当前内核的 Linux 来宾包含内置集成服务,但可能会提供可选更新。 更新内核时,将收到最新的集成组件。 有关 Linux 来宾的详细信息,请参阅 Windows 上 Hyper-V 支持的 Linux 和 FreeBSD 虚拟机。
注意
从 Windows Server 2016 和 Windows 10 开始,映像文件集成服务磁盘 (vmguest.iso) 不包含在 Hyper-V 中,因为不再需要它。 Windows Server 2012 及更早版本需要数据交换集成服务。 如果无法启用数据交换集成服务,这些来宾的集成服务将在下载中心中作为 Cabinet (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 主机,需要在来宾操作系统中手动安装或更新集成服务。
若要手动安装或更新集成服务,请执行以下操作:
打开 Hyper-V 管理器。
连接到虚拟机。 右键单击虚拟机,选择“连接”。
在“虚拟机连接”的“操作”菜单中,选择“插入集成服务安装盘”。 该操作将在虚拟 DVD 驱动器中加载安装盘。 根据来宾操作系统,可能需要从文件资源管理器手动启动安装。
安装完成后,集成服务即可使用。