免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 989 | 回复: 0
打印 上一主题 下一主题

解读为什么基于流量的转发不适合虚拟机 [复制链接]

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-24 09:47 |只看该作者 |倒序浏览
  
我想大家现在应该都清楚,基于流量的转发并不适合现有硬件。为大流量设计的交换机,如转发入口(NEC ProgrammableFlow交换机,Entersys 数据中心交换机等)或许是个例外,但即便他们不能应付反应流安装所要求的巨大数据流更新速度,我们当然期望虚拟交换机能运行更好,但遗憾的是,情况并非如此。
  定义
  基于流量的转发有时候被定义为单独传输层对话的转发(有时候被称作是微流量),大量事实表明这种方法不能做扩展,其他人将基于流量的转发定义为所有不是仅限目的地地址的转发,我不了解这些定义欲MPLS Forwarding Equivalence Class (FEC)有何不同,也不知道我们为什么要弄个新的令人费解的词语来定义。
  在Open vSwitch中的微数据流转发
  Open vSwitch的原始版本是基于理想微流的典型转发架构:内核转发模块执行微流转发,并将所有未知数据包发给用户模式的后台程序,然后,用户模式的后台程序会执行数据包检查(使用OpenFlow转发条目或其他转发法则),并且为内核模块中心发现的数据流安装微流量条目。
  如果你还记得Catalyst 5000,或许你会想起Netflow交换机一些令人不愉快的记忆,但这个方案的问题应该是硬件和CPU的性能不佳造成的。事实表明,虚拟交换机也不会好到哪儿去。
  向Open vSwitch深入挖掘发现一个有意思的事情:流量驱逐,一旦内核模块达到微流量的峰值,它就会抛出之前的流量,直到你意识到默认峰值为2500微流量,这个数值已经足够一个Web服务器使用,而对托管50或100个虚拟机的Hypervisor而言,数量级肯定太低。
  为什么?
  微流量缓存非常小,没有很明显的效果,毕竟,Web服务器可以轻易应对10000个对话,而一些基于Linux的负载平衡器为每个服务器控制的对话数可以多出一个数量级,你可以增加默认的缓冲OVS流量,这下会有人好奇为什么默认数值如此低了?
  我不能说明造成这种情况的潜在原因,但我怀疑和单位流量计数有关——流量计数器必须周期性地从内核模块转到用户模式后台程序。在比较短的间隔期里,在用户-内核槽之间复制成千上万的流量计数器或许会占用很多CPU空间。
  如何修复?
  还不够明显吗?放下所有关于基于微流量转发的概念包袱,按传统方式来做,OVS在1.11版本中走的就是这个路子,OVS 1.11在内核模块中部署了兆位流量,再从内核把流量发送到用户模式OpenFlow代理那里(因为内核转发条目几乎可以与用户模式OpenFlow条目做精确匹配,所以效果显著)。
  不出意外,没有哪个虚拟机使用基于微流量的转发。VMware vSwitch,思科Nexus 1000V和IBM的5000V根据目的地的MAC地址做转发决定,Hyper-V和Contrail根据目的地的IP地址做转发决定,甚至用于vSphere的VMware NSX也使用分布式vSwitch和核内 Layer -3转发模块。
转自 http://net.it168.com/a2014/0323/1605/000001605738.shtml

本文来自ChinaUnix新闻频道,如果查看原文请点:http://news.chinaunix.net/opensource/2014/0324/3128375.shtml
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP