监控Hyper-V虚拟机的基本网络流量统计很简单,但是由于Hyper-V中网络的虚拟化方式,执行实际的数据包捕获就很难了。下面是你的选择:
计数器
最基本的监控是给定VM的简单带宽利用率,这一点都不难。Hyper-V有四个基本的网络性能计数器群组,你可以记录和分析它们来了解Hyper-V本身和每个独立虚拟机的网络流量。
网络接口。这个计数器设置描述Hyper-V中使用的物理网络设备。这种设置的计数器可用来查看Hyper-V中流入流出的流量作为一个整体运行得怎么样。如果你的物理网络接口上有大量错误,比如,可能是适配器本身饱和了或者是Hyper-V连接的网络结构太慢了。
Hyper-V虚拟交换机。它让你可以统计Hyper-V虚拟机之间交换的流量。还有一个相似的计数器设置叫做Hyper-V虚拟交换机端口,它让你看到这个交换机上某个特定端口的数据统计。
Hyper-V遗留网络适配器和Hyper-V虚拟网络适配器。这两个性能计数器设置提供特定VM的网络活动详细信息。这些计数器组中每一个的子设置都有一个VM易记的名字,还有其网络适配器的名字,加上VM和适配器的GUID,防止了你想使用Windows管理规范(WMI)来查询它们的情况。
这两个计数器设置的***不同在于你监控的VM是否使用了集成服务。很明显,你想要在任何可能的时候使用集成服务,并且使用虚拟网络适配器计数器。(Windows Server 2008和之后版本都有预安装的集成服务,所以你不用担心它们。)没有集成服务运行的虚拟机需要使用遗留网络适配器计数器,尽管这会带来一定的效能损失。
数据包捕获
如果在一个Hyper-V实例中,你想要监控所有来自或去向虚拟机的数据包级网络流量怎么办?也就是说,你要进行数据包检查和网络捕获。不幸的是,现在还没有在Hyper-V本身中直接这么做的方法。虚拟网络适配器还没有混合模式,某种程度上是为了增强安全性和VM间的独立性,也是为了保护管理程序本身。
达成此目的的一种方式是通过在每个需要有数据包捕获设置的虚拟机上安装WireShark或相似产品。出于多方面的原因,这并不是一个理想的解决方案。一方面,你必须在每台机器上而不是每个管理程序上安装数据包捕获软件。你也许可以通过软件部署来解决,但是这是假设你捕获数据包的虚拟机都是运行Windows。
但是,图景正在发生改变。Windows Server 8中计划的一个新功能是“扩展交换机”系统。这实现了扩展的捕获、过滤和转送,这些扩展都注入到Hyper-V的虚拟交换机堆栈中,所以可以在Hyper-V上分别检查VM中流入和流出的流量。这意味着要等Hyper-V 3.0出现,但是至少微软已经承诺了对这个特性的需求,也正在为这个需求努力改变。