如何監(jiān)控Hyper-V虛擬機(jī)流量?
監(jiān)控Hyper-V虛擬機(jī)的基本網(wǎng)絡(luò)流量統(tǒng)計(jì)很簡(jiǎn)單,但是由于Hyper-V中網(wǎng)絡(luò)的虛擬化方式,執(zhí)行實(shí)際的數(shù)據(jù)包捕獲就很難了。下面是你的選擇:
計(jì)數(shù)器
最基本的監(jiān)控是給定VM的簡(jiǎn)單帶寬利用率,這一點(diǎn)都不難。Hyper-V有四個(gè)基本的網(wǎng)絡(luò)性能計(jì)數(shù)器群組,你可以記錄和分析它們來(lái)了解Hyper-V本身和每個(gè)獨(dú)立虛擬機(jī)的網(wǎng)絡(luò)流量。
網(wǎng)絡(luò)接口。這個(gè)計(jì)數(shù)器設(shè)置描述Hyper-V中使用的物理網(wǎng)絡(luò)設(shè)備。這種設(shè)置的計(jì)數(shù)器可用來(lái)查看Hyper-V中流入流出的流量作為一個(gè)整體運(yùn)行得怎么樣。如果你的物理網(wǎng)絡(luò)接口上有大量錯(cuò)誤,比如,可能是適配器本身飽和了或者是Hyper-V連接的網(wǎng)絡(luò)結(jié)構(gòu)太慢了。
Hyper-V虛擬交換機(jī)。它讓你可以統(tǒng)計(jì)Hyper-V虛擬機(jī)之間交換的流量。還有一個(gè)相似的計(jì)數(shù)器設(shè)置叫做Hyper-V虛擬交換機(jī)端口,它讓你看到這個(gè)交換機(jī)上某個(gè)特定端口的數(shù)據(jù)統(tǒng)計(jì)。
Hyper-V遺留網(wǎng)絡(luò)適配器和Hyper-V虛擬網(wǎng)絡(luò)適配器。這兩個(gè)性能計(jì)數(shù)器設(shè)置提供特定VM的網(wǎng)絡(luò)活動(dòng)詳細(xì)信息。這些計(jì)數(shù)器組中每一個(gè)的子設(shè)置都有一個(gè)VM易記的名字,還有其網(wǎng)絡(luò)適配器的名字,加上VM和適配器的GUID,防止了你想使用Windows管理規(guī)范(WMI)來(lái)查詢它們的情況。
這兩個(gè)計(jì)數(shù)器設(shè)置的***不同在于你監(jiān)控的VM是否使用了集成服務(wù)。很明顯,你想要在任何可能的時(shí)候使用集成服務(wù),并且使用虛擬網(wǎng)絡(luò)適配器計(jì)數(shù)器。(Windows Server 2008和之后版本都有預(yù)安裝的集成服務(wù),所以你不用擔(dān)心它們。)沒(méi)有集成服務(wù)運(yùn)行的虛擬機(jī)需要使用遺留網(wǎng)絡(luò)適配器計(jì)數(shù)器,盡管這會(huì)帶來(lái)一定的效能損失。
數(shù)據(jù)包捕獲
如果在一個(gè)Hyper-V實(shí)例中,你想要監(jiān)控所有來(lái)自或去向虛擬機(jī)的數(shù)據(jù)包級(jí)網(wǎng)絡(luò)流量怎么辦?也就是說(shuō),你要進(jìn)行數(shù)據(jù)包檢查和網(wǎng)絡(luò)捕獲。不幸的是,現(xiàn)在還沒(méi)有在Hyper-V本身中直接這么做的方法。虛擬網(wǎng)絡(luò)適配器還沒(méi)有混合模式,某種程度上是為了增強(qiáng)安全性和VM間的獨(dú)立性,也是為了保護(hù)管理程序本身。
達(dá)成此目的的一種方式是通過(guò)在每個(gè)需要有數(shù)據(jù)包捕獲設(shè)置的虛擬機(jī)上安裝WireShark或相似產(chǎn)品。出于多方面的原因,這并不是一個(gè)理想的解決方案。一方面,你必須在每臺(tái)機(jī)器上而不是每個(gè)管理程序上安裝數(shù)據(jù)包捕獲軟件。你也許可以通過(guò)軟件部署來(lái)解決,但是這是假設(shè)你捕獲數(shù)據(jù)包的虛擬機(jī)都是運(yùn)行Windows。
但是,圖景正在發(fā)生改變。Windows Server 8中計(jì)劃的一個(gè)新功能是“擴(kuò)展交換機(jī)”系統(tǒng)。這實(shí)現(xiàn)了擴(kuò)展的捕獲、過(guò)濾和轉(zhuǎn)送,這些擴(kuò)展都注入到Hyper-V的虛擬交換機(jī)堆棧中,所以可以在Hyper-V上分別檢查VM中流入和流出的流量。這意味著要等Hyper-V 3.0出現(xiàn),但是至少微軟已經(jīng)承諾了對(duì)這個(gè)特性的需求,也正在為這個(gè)需求努力改變。