博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]Hyper-V Guest OS啟用Jumbo Frame-使用Windows Server 2012 Beta 測試
阅读量:7003 次
发布时间:2019-06-27

本文共 2394 字,大约阅读时间需要 7 分钟。

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之後提出的總結

 

文中有提到開啟之後的優點,雖然不是跟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 increase and other vendors have achieved more than in network throughput.

 

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

 

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

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

 

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

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

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

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

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

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

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

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

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

 

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

转载地址:http://iprvl.baihongyu.com/

你可能感兴趣的文章
elasticsearch 安装ik中文分词
查看>>
解决OS睡眠功能中,移动鼠标就会唤醒
查看>>
深入理解VMware虚拟机网络通信原理
查看>>
SpringMVC中使用Interceptor拦截器
查看>>
摩斯密码加解密
查看>>
徒弟涨工资排行榜
查看>>
关于庖丁分词
查看>>
JavaScript 数组去重并统计重复元素出现的次数
查看>>
ZJOI2002昂贵的聘礼题解
查看>>
Java并发:多线程和java.util.concurrent并发包总结
查看>>
【msdn wpf forum翻译】获取当前窗口焦点所在的元素
查看>>
1tb等于多少g 1TB和500G有什么区别
查看>>
收购/代理游戏或其它成熟的在线应用
查看>>
让人难以置信的HTML5和JavaScript实验
查看>>
远程访问linux的利器 NXFree
查看>>
C++11 正则表达式——基础知识介绍
查看>>
潜移默化学会WPF(样式)-- DataGrid(转载)
查看>>
C|C++中的静态全局变量,静态局部变量,全局变量,局部变量的区别
查看>>
mongo-mapreduce测试(6)——综合测试
查看>>
利用top构造Sql Server分页查询
查看>>