Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試


要讓Guest OS支援Jumbo Frame需要Windows Server 2008 R2以上(Windows Server 2012也支援)

比較常見的應用範例是在iSCSI上,因為這會需要網路節點的支援,應用在File Server上還是有點難度

換句話說,就算用在iSCSI上,如果中間的Switch不支援Jumbo Frame的話,或者網路卡不支援,一樣不能用

範例將會以Windows Server 2012進行測試(但不會進行效能上的測試,我沒那麼大的I/O…)

不過有人測出可以提高40%~80%的傳輸速率,有興趣的人可以測看看:P

這是國外針對NetApp啟用Jumbo Frame之後提出的總結

http://netapp-blog.blogspot.com/2009/08/jumbo-frames-in-netapp.html

文中有提到開啟之後的優點,雖然不是跟Hyper-V Guest啟動Jumbo Frame的測試有直接關係

但是以實體機來說成長的幅度並不小

Benefits:

Less CPU overhead as system has to do less header processing because in VIF mode TOE on NetApp cards are disabled. 9000 bytes frames are six times higher then stock frames of 1500 MTU so larger frame size leads to higher throughput. Some tests in NetApp show upto 30% increase and other vendors have achieved more than 60% in network throughput.

首先,先看一下圖,了解一下Guest OS跟Host之間網路的關係

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客

因為Windows Server 2012中,有多了支援Single-root I/O Virtualization

就算啟用了,因為最後還是要透過實體網路卡出去,所以實體網路卡還是要啟用Jumbo Frame

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客

其實很多人會混淆(還是只有我??),當Host的網路卡有勾選【允許作業系統共用網路卡】的時候

Hyper-V的Guest OS最後是透過哪一張網路卡出去的?

該啟用Jumbo Frame的是共用的那張網路卡,還是實體網路卡(不能設IP的那張)

答案是:實體網路卡(不能設IP的那張)

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客

那如果是Host本身需要用Jumbo Frame,要設定哪一張?

答案還是實體網路卡(這好像在講廢話…但是應該還是有人會被混淆)

換句話說,勾選【允許作業系統共用網路卡】而出現的那張網路卡,如果要啟用Jumbo Frame,他並不需要做任何的設定

雖然在啟用了Hyper-V角色的Host,在概念上會像Guest OS一樣,也是其中之一的虛擬機器(父分割)

但是它的網路卡實際真正在使用的並不是可以設定IP的那張,而是實體網卡

這篇我會透過兩台Hyper-V主機來模擬這種情況(如下圖所示)

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客

圖中的箭頭方向,表示網路的流向,從圖中可以很清楚的看出,Host1裡的Guest OS網路最後是透過實體網路卡到另一部主機的實體網路卡

接著再進到另一部Hyper-V主機(Host2)的VSP透過VMBus到vNIC

所以上圖這個圖例,需要設定Jumbo Frame的就是【Host1、Host2的實體網路卡】、【兩台Guest OS裡面的虛擬網路卡】

接著來介紹今天的主角,WIN8HOST1裡面有一台VM1(右邊),以及WIN8HOST2裡面有一台VM2(左邊)

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客

然後看一下Hyper-V的vSwitch的設定,在Host1上是沒有啟用SR-IOV,而Host2是有啟用的

兩台都有勾選【允許Host共用網路卡】,然而這個測試環境是將這個Port進行對串(沒有透過其他Switch)

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客

透過Netsh interface ipv4 show interfaces這個指令,去查Guest OS的MTU是1500(預設)

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客

然後看一下Host上的網路卡,Jumbo Packet是Disable的(兩台Host都長的一樣,所以只截一張圖)

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客

先嘗試在全未啟用Jumbo Frame的情況下,去試試看一次傳送8972 Byte的封包,會發生甚麼事

(VM2的IP是10.0.0.200、VM1的IP是10.0.0.251)

Ping裡的參數則使用-l去指定封包大小、使用-f表示這個封包不允許切割(代表通道最少要一次可傳送這樣大的封包)

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客

Ping的參數可以透過PIng -?去查詢

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客

接著在兩台Guset OS裡面,把Jumbo Frame都開啟,並設定到9014 Byte,但是Host的實體網卡都保持不變

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客

接著我們再測試一次看看,訊息會變成Time out,因為中間的實體網路卡過不去

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客

接著把兩台Host,網路卡裡的Jumbo Frame都啟用,並設定成9014 Byte

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客

接著再測試一次,就會發現已經通了

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客

前面之所以沒有在Host上使用netsh interface ipv4 show interfaces這個指令,是因為看不到那張實體網路卡

當您指定了實體網路卡啟用,但是勾選【共用網路卡】的那張並沒有啟用的情況下,依然生效

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客

那麼,接下來我反過來設,讓Host2上的實體網路卡關閉Jumbo Frame,在共用的網路卡啟用Jumbo Frame,看看會發生甚麼事

會發現即使指定IP的那張網路卡MTU已經顯示9000,一樣不會通,代表Host實際使用的資源是實體網路卡,並非虛擬出來的共用網路卡

因為共用網路卡不論是有沒有設定,只要實體網路卡有啟用都會通。

Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試 - 技術資源回收場- 點部落 - yyimen - yyimen的博客


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值