其實監控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出現,但是至少微軟已經承諾了對這個特性的需求,也正在為這個需求努力改變。