毛袁宏 發表於 2015-7-2 15:22:09

KVM虚拟网络优化方案整理

<p>一个完整的数据包从虚拟机到物理机的路径是:</p>
<p>虚拟机--QEMU虚拟网卡--虚拟化层--内核网桥--物理网卡<br /><img alt="201572152456762.gif (554×100)" src="https://img.jbzj.com/file_images/article/201507/201572152456762.gif?201562152516" /></p>
<p>KVM的网络优化方案,总的来说,就是让虚拟机访问物理网卡的层数更少,直至对物理网卡的单独占领,和物理机一样的使用物理网卡,达到和物理机一样的网络性能。</p>
<p><br /><strong>方案一 全虚拟化网卡和virtio<br /></strong><img alt="201572152527709.gif (554×100)" src="https://img.jbzj.com/file_images/article/201507/201572152527709.gif?201562152538" /></p>
<p>Virtio与全虚拟化网卡区别&nbsp;&nbsp;&nbsp; <br />全虚拟化网卡是虚拟化层完全模拟出来的网卡,半虚拟化网卡通过驱动对操作系统做了改造;&nbsp;&nbsp;&nbsp; <br />viritio简单的说,就是告诉虚拟机,hi 你就是在一个虚拟化平台上跑,咱们一起做一些改动,让你在虚拟化平台上获得更好的性能;&nbsp;&nbsp;&nbsp; <br /><img alt="201572152548554.jpg (558×219)" src="https://img.jbzj.com/file_images/article/201507/201572152548554.jpg?201562152559" /></p>
<p>关于virtio的使用场景&nbsp;&nbsp;&nbsp; <br />因 为windows虚拟机使用viritio有网络闪断的情况发生,windows 虚拟机如果网络压力不高,建议使用e1000这样的全虚拟化网卡,如果网络压力比较高,建议使用SRIVO或者PCI Device Assignment这样的技术;viritio也在不断的演进,希望windows的闪断的问题越来越少。</p>
<p>KVM天生就是为linux系统设计的,linux系统请放心大胆的使用viritio驱动;</p>
<p><br /><strong>方案二 vhost_net macvtap技术<br /></strong><img alt="201572152609559.gif (554×100)" src="https://img.jbzj.com/file_images/article/201507/201572152609559.gif?201562152626" /></p>
<p>vhost_net使虚拟机的网络通讯直接绕过用户空间的虚拟化层,直接可以和内核通讯,从而提供虚拟机的网络性能;</p>
<p>macvtap则是跳过内核的网桥;</p>
<p><br />使用vhost_net,必须使用virtio半虚拟化网卡;</p>
<p>vhost_net虚拟机xml文件配置,<br />&nbsp;<br /></p>
<div class="codeText">
<div class="codeHead"><span class="lantxt">XML/HTML Code</span><span style="CURSOR: pointer" class="copyCodeText" onclick="copyIdText('code_7830')">复制内容到剪贴板</span></div>
<div id="code_7830">
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">interface</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">'bridge'</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">mac</span><span>&nbsp;</span><span class="attribute">address</span><span>=</span><span class="attribute-value">''</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">source</span><span>&nbsp;</span><span class="attribute">bridge</span><span>=</span><span class="attribute-value">'br0'</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">model</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">'virtio'</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span></span><span class="tag">&lt;</span><span class="tag-name">driver</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;vhost&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">address</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">'pci'</span><span>&nbsp;</span><span class="attribute">domain</span><span>=</span><span class="attribute-value">'0x0000'</span><span>&nbsp;</span><span class="attribute">bus</span><span>=</span><span class="attribute-value">'0x00'</span><span>&nbsp;</span><span class="attribute">slot</span><span>=</span><span class="attribute-value">'0x03'</span><span>&nbsp;</span><span class="attribute">function</span><span>=</span><span class="attribute-value">'0x0'</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">interface</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<p>如果不使用vhost_net,则为<br />&nbsp;<br />&lt;driver name=&quot;qemu&quot;/&gt;</p>
<p>macvtap 虚拟机xml配置<br />&nbsp;<br /></p>
<div class="codeText">
<div class="codeHead"><span class="lantxt">XML/HTML Code</span><span style="CURSOR: pointer" class="copyCodeText" onclick="copyIdText('code_5245')">复制内容到剪贴板</span></div>
<div id="code_5245">
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">interface</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">'direct'</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">mac</span><span>&nbsp;</span><span class="attribute">address</span><span>=</span><span class="attribute-value">'00:16:3e:d5:d6:77'</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">source</span><span>&nbsp;</span><span class="attribute">dev</span><span>=</span><span class="attribute-value">'lo'</span><span>&nbsp;</span><span class="attribute">mode</span><span>=</span><span class="attribute-value">'bridge'</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">model</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">'e1000'</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">address</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">'pci'</span><span>&nbsp;</span><span class="attribute">domain</span><span>=</span><span class="attribute-value">'0x0000'</span><span>&nbsp;</span><span class="attribute">bus</span><span>=</span><span class="attribute-value">'0x00'</span><span>&nbsp;</span><span class="attribute">slot</span><span>=</span><span class="attribute-value">'0x03'</span><span>&nbsp;</span><span class="attribute">function</span><span>=</span><span class="attribute-value">'0x0'</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">interface</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<p>注意:macvtap在windows虚拟机上性能很差,不建议使用</p>
<p>vhost_net macvtap比较</p>
<p>macvlan的功能是给同一个物理网卡配置多个MAC地址,这样可以在软件商配置多个以太网口,属于物理层的功能。&nbsp; <br />macvtap是用来替代TUN/TAP和Bridge内核模块,macvtap是基于macvlan这个模块,提供TUN/TAP中tap设备使用的接口,&nbsp;&nbsp;&nbsp; <br />使用macvtap以太网口的虚拟机能够通过tap设备接口,直接将数据传递到内核中对应的macvtap以太网口。&nbsp;&nbsp;&nbsp; <br />vhost-net是对于virtio的优化,virtio本来是设计用于进行客户系统的前端与VMM的后端通信,减少硬件虚拟化方式下根模式个非根模式的切换。&nbsp;&nbsp;&nbsp; <br />而是用vhost-net后,可以进一步进入CPU的根模式后,需要进入用户态将数据发送到tap设备后再次切入内核态的开销,而是进入内核态后不需要在进行内核态用户态的切换,进一步减少这种特权级的切换,说vhost-net属于哪个层不准确,而是属于进行二层网络数据传递的优化。</p>
<p><br /><strong>方案三 虚拟机网卡独占<br /></strong><img alt="201572152643817.jpg (437×554)" src="https://img.jbzj.com/file_images/article/201507/201572152643817.jpg?20156215270" /></p>
<p>网卡passthrough在虚拟机的配置方法</p>
<p>1 使用lcpci 设备查看pci设备信息<br />&nbsp;<br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode147"><br />04:00.0 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)<br />04:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet Controller (rev 06)</div></p>
<p>也可以使用virsh nodedev-list &ndash;tree得到信息<br />&nbsp;<br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode148"><br />+- pci_0000_00_07_0<br />|   |<br />|   +- pci_0000_04_00_0<br />|   |   |<br />|   |   +- net_p1p1_00_1b_21_88_69_dc<br />|   |<br />|   +- pci_0000_04_00_1<br />|       |<br />|       +- net_p1p2_00_1b_21_88_69_dd</div></p>
<p>2 使用virsh nodedev-dumxml pci_0000_04_00_0得到xml配置信息<br />&nbsp;<br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode149"><br /># virsh nodedev-dumpxml pci_0000_04_00_0<br /> <br />&lt;device&gt;<br />&lt;name&gt;pci_0000_04_00_0&lt;/name&gt;<br />&lt;parent&gt;pci_0000_00_07_0&lt;/parent&gt;<br />&lt;driver&gt;<br />   &lt;name&gt;e1000e&lt;/name&gt;<br />&lt;/driver&gt;<br />&lt;capability type='pci'&gt;<br />   &lt;domain&gt;0&lt;/domain&gt;<br />   &lt;bus&gt;4&lt;/bus&gt;<br />   &lt;slot&gt;0&lt;/slot&gt;<br />   &lt;function&gt;0&lt;/function&gt;<br />   &lt;product id='0x105e'&gt;82571EB Gigabit Ethernet Controller&lt;/product&gt;<br />   &lt;vendor id='0x8086'&gt;Intel Corporation&lt;/vendor&gt;<br />&lt;/capability&gt;<br />&lt;/device&gt;</div></p>
<p>3 编辑虚拟机xml文件,加入pci设备信息<br />&nbsp;<br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode150"><br />&lt;hostdev mode='subsystem' type='pci' managed='yes'&gt;<br />   &lt;source&gt;<br />       &lt;address domain='0x0000' bus='0x04' slot='0x00' function='0x0'/&gt;<br />   &lt;/source&gt;<br />&lt;/hostdev&gt;</div></p>
<p>Domain bus slot function信息从dumpxml出的xml文件获取,define虚拟机,然后开启虚拟机就可以,注意以为附件上去的是物理设备,需要在系统里面安装相应的驱动。</p>
<p><br /><strong>方案四 SR-IVO技术</strong></p>
<p><br />SRIOV的原理&nbsp;&nbsp;&nbsp; <br />SR-IVO 是the single root I/O virtualization 的简写,是一个将PCIe共享给虚拟机使用的标准,目前用在网络设备上比较多,理论上也可以支持其他的PCI设备,SRIOV需要硬件的支持。<br /><img alt="201572152719161.gif (288×347)" src="https://img.jbzj.com/file_images/article/201507/201572152719161.gif?201562152751" /></p>
<p>以下内容来自oracle网站,链接为&nbsp; <br />http://docs.oracle.com/cd/E38902_01/html/E38873/glbzi.html<br /><img alt="201572152805561.gif (506×369)" src="https://img.jbzj.com/file_images/article/201507/201572152805561.gif?201562152814" /></p>
<p>物理功能 (Physical Function, PF)&nbsp; <br />用 于支持 SR-IOV 功能的 PCI 功能,如 SR-IOV 规范中定义。PF 包含 SR-IOV 功能结构,用于管理 SR-IOV 功能。PF 是全功能的 PCIe 功能,可以像其他任何 PCIe 设备一样进行发现、管理和处理。PF 拥有完全配置资源,可以用于配置或控制 PCIe 设备。&nbsp;&nbsp;&nbsp; <br />虚拟功能 (Virtual Function, VF)&nbsp;&nbsp;&nbsp; <br />与物理功能关联的一种功能。VF 是一种轻量级 PCIe 功能,可以与物理功能以及与同一物理功能关联的其他 VF 共享一个或多个物理资源。VF 仅允许拥有用于其自身行为的配置资源。&nbsp;&nbsp;&nbsp; <br />每 个 SR-IOV 设备都可有一个物理功能 (Physical Function, PF),并且每个 PF 最多可有 64,000 个与其关联的虚拟功能 (Virtual Function, VF)。PF 可以通过寄存器创建 VF,这些寄存器设计有专用于此目的的属性。&nbsp;&nbsp;&nbsp; <br />一 旦在 PF 中启用了 SR-IOV,就可以通过 PF 的总线、设备和功能编号(路由 ID)访问各个 VF 的 PCI 配置空间。每个 VF 都具有一个 PCI 内存空间,用于映射其寄存器集。VF 设备驱动程序对寄存器集进行操作以启用其功能,并且显示为实际存在的 PCI 设备。创建 VF 后,可以直接将其指定给 IO 来宾域或各个应用程序(如裸机平台上的 Oracle Solaris Zones)。此功能使得虚拟功能可以共享物理设备,并在没有 CPU 和虚拟机管理程序软件开销的情况下执行 I/O。&nbsp;&nbsp;&nbsp; <br />SR-IOV 的优点&nbsp;&nbsp;&nbsp; <br />SR-IOV 标准允许在 IO 来宾域之间高效共享 PCIe 设备。SR-IOV 设备可以具有数百个与某个物理功能 (Physical Function, PF) 关联的虚拟功能 (Virtual Function, VF)。VF 的创建可由 PF 通过设计用来开启 SR-IOV 功能的寄存器以动态方式进行控制。缺省情况下,SR-IOV 功能处于禁用状态,PF 充当传统 PCIe 设备。&nbsp;&nbsp;&nbsp; <br />具有 SR-IOV 功能的设备可以利用以下优点:&nbsp;&nbsp;&nbsp; <br />性能-从虚拟机环境直接访问硬件。&nbsp;&nbsp;&nbsp; <br />成本降低-节省的资本和运营开销包括:&nbsp;&nbsp;&nbsp; <br />节能&nbsp;&nbsp;&nbsp; <br />减少了适配器数量&nbsp;&nbsp;&nbsp; <br />简化了布线&nbsp;&nbsp;&nbsp; <br />减少了交换机端口&nbsp;&nbsp;&nbsp; <br />SRIOV的使用&nbsp;&nbsp;&nbsp; <br />启动SRIVO内核模块&nbsp;&nbsp;&nbsp; <br />modprobe igb&nbsp;&nbsp;&nbsp; <br />激活虚拟功能VF&nbsp;&nbsp;&nbsp; <br />modprobe igb max_vfs=7&nbsp;&nbsp;&nbsp; <br />千兆网卡最多支持8个vf0-7,千兆网卡目前支持比较好的是INTEL I350, 82576S虽然也支持SRIOV但是只支持虚拟机是linux的情况,windows系统不支持;&nbsp;&nbsp;&nbsp; <br />万兆网卡最多支持64个vg0-63,intel的新新一代万兆网卡都支持SRIOV x520 x540等;&nbsp;&nbsp;&nbsp; <br />如果需要重新设置vf 可以删除模块在重新加载&nbsp;&nbsp;&nbsp; <br />modprobe -r igb&nbsp;&nbsp;&nbsp; <br />将配置永久写入配置文件&nbsp;&nbsp;&nbsp; <br />echo &quot;options igb max_vfs=7&quot; &gt;&gt;/etc/modprobe.d/igb.conf&nbsp;&nbsp;&nbsp; <br />通过lspci命令可以看多主网卡和子网卡&nbsp;&nbsp;&nbsp; <br />&nbsp;<br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode151"><br /># lspci | grep 82576    <br />0b:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)    <br />0b:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)    <br />0b:10.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)    <br />0b:10.1 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)    <br />0b:10.2 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)    <br />0b:10.3 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)    <br />0b:10.4 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)    <br />0b:10.5 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)    <br />0b:10.6 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)    <br />0b:10.7 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)    <br />0b:11.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)    <br />0b:11.1 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)    <br />0b:11.2 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)    <br />0b:11.3 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)    <br />0b:11.4 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)    <br />0b:11.5 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)</div></p>
<p>&nbsp;<br />虚拟机可以听过pci网卡独占的方式使用子网卡;&nbsp;&nbsp;&nbsp; <br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode152"> <br /># virsh nodedev-list | grep 0b    <br />pci_0000_0b_00_0    <br />pci_0000_0b_00_1    <br />pci_0000_0b_10_0    <br />pci_0000_0b_10_1    <br />pci_0000_0b_10_2    <br />pci_0000_0b_10_3    <br />pci_0000_0b_10_4    <br />pci_0000_0b_10_5    <br />pci_0000_0b_10_6    <br />pci_0000_0b_11_7    <br />pci_0000_0b_11_1    <br />pci_0000_0b_11_2    <br />pci_0000_0b_11_3    <br />pci_0000_0b_11_4    <br />pci_0000_0b_11_5</div></p>
<p>虚拟机网卡xml文件&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;<br /></p>
<div class="codeText">
<div class="codeHead"><span class="lantxt">XML/HTML Code</span><span style="CURSOR: pointer" class="copyCodeText" onclick="copyIdText('code_4555')">复制内容到剪贴板</span></div>
<div id="code_4555">
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">interface</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">'hostdev'</span><span>&nbsp;</span><span class="attribute">managed</span><span>=</span><span class="attribute-value">'yes'</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">source</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">address</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">'pci'</span><span>&nbsp;</span><span class="attribute">domain</span><span>=</span><span class="attribute-value">'0'</span><span>&nbsp;</span><span class="attribute">bus</span><span>=</span><span class="attribute-value">'11'</span><span>&nbsp;</span><span class="attribute">slot</span><span>=</span><span class="attribute-value">'16'</span><span>&nbsp;</span><span class="attribute">function</span><span>=</span><span class="attribute-value">'0'</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">source</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">interface</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<p><br /><strong>方案五 网卡多队列</strong></p>
<p>centos 7开始支持virtio网卡多队列,可以大大提高虚拟机网络性能,配置方法如下:</p>
<p>虚拟机的xml网卡配置<br />&nbsp;<br /></p>
<div class="codeText">
<div class="codeHead"><span class="lantxt">XML/HTML Code</span><span style="CURSOR: pointer" class="copyCodeText" onclick="copyIdText('code_8189')">复制内容到剪贴板</span></div>
<div id="code_8189">
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">interface</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">'network'</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">source</span><span>&nbsp;</span><span class="attribute">network</span><span>=</span><span class="attribute-value">'default'</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">model</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">'virtio'</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">driver</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">'vhost'</span><span>&nbsp;</span><span class="attribute">queues</span><span>=</span><span class="attribute-value">'N'</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">interface</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
</div>
<p>N 1 - 8 最多支持8个队列</p>
<p>在虚拟机上执行以下命令开启多队列网卡<br />&nbsp;<br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode153"> <br />#ethtool -L eth0 combined M</div></p>
<p><br />M 1 - N M小于等于N</p>
<p><br />KVM网络优化方案个人认为以硬件为主,硬件上万兆+SRIOV的方案会越来越普及,但是在线迁移的问题有待解决。<br /></p>
頁: [1]
查看完整版本: KVM虚拟网络优化方案整理