• [转]HyperV Guest OS啟用Jumbo Frame使用Windows Server 2012 Beta 測試


    http://www.dotblogs.com.tw/daniel07793/archive/2012/05/11/72128.aspx

    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之間網路的關係

    IC535216_thumb

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

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

    00164_thumb

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

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

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

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

    20

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

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

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

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

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

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

    12

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

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

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

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

    00324

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

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

    00325

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

    00326

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

    00328

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

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

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

    00329

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

    00335

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

    00332

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

    00333

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

    00334

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

    00336

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

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

    00337

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

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

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

    00338

  • 相关阅读:
    一起谈.NET技术,深入ASP.NET 2.0的提供者模型(2) 狼人:
    一起谈.NET技术,从.NET中委托写法的演变谈开去(上):委托与匿名方法 狼人:
    一起谈.NET技术,将Flash 嵌入WPF 程序 狼人:
    一起谈.NET技术,数组排序方法的性能比较(中):Array.Sort<T> 实现分析 狼人:
    人一生当中最应该珍惜的十种人
    《程序员的第一年》复习一下C#的【封装 多态 继承 简单计算器源码实例】
    myeclipse 修改模板
    三星将在百思买零售店内开设1400家体验店
    谷歌Q3推Android本 蚕食自己平板市场
    Spring Setting
  • 原文地址:https://www.cnblogs.com/licheng/p/2989566.html
Copyright © 2020-2023  润新知