企业级cMLC寿命,DPDK、NOS网络应用杂谈

 

本文转载自我一位朋友@小麦1212的微博文章,他曾就职于某著名网络厂商多年,在IT基础设施技术方面很资深。...

点击上方“企业存储技术”可以订阅哦
原文地址:http://weibo.com/p/1001603976653452776223(点击底部“阅读原文”也可访问

本文转载自我一位朋友@小麦1212 的微博文章,他曾就职于某著名网络厂商多年,在IT基础设施技术方面很资深。

DPDK LVS Maglev BGP

今天在群里有朋友聊到dpdk,说刚听某cloud公司自己开发了一个单边的l4 router使用了dpdk可以实现非常高的吞吐性能,不过因为实现不了rsa又处理不好丢包等一些问题所以不敢跑满性能。当时就猜想这个就是基于dpdk实现的lvs 的dr 模式,其实lvs已经有一些HA的解决方案了,比如keepalived 实现的冗余或配合交换机使用ospf ecmp的fullnat模式。联想到最近突然又热起来的evpn vxlan方案,我提出应该还可以采用anycast的方式实现ha。

晚上看了下google 3月份放出来的Maglev 论文,果然就是采用了bgp和anycast实现的ecmp的ha模式,Maglev是google从2008年就开始用的LB软件,思路同intel的dpdk方式类似,都是采用kernel bypass的方式在userspage处理报文,在单机(双路8核CPU)配合10G网卡上可以跑到12Mpps的转发速率,接近小包线速的效率了,在使用40G网卡时可以达到15Mpps的转发速率。现在许多的sdn方案比如微软的Sonic上面都使用了bgp,估计下一步lvs上也会采用bgp来实现了。google的这篇论文还有许多细节可以仔细研究下,有空再来细看了。

cMLC

群里提到的另一个话题是HPE 3par存储上的cMLC,本来cMLC是consumer MLC,一般用在消费级产品上,不过3par通过所谓的adaptive sparing技术可以将普通cMLC的dpwd提高到2.5于是将cMLC称之为commercial MLC,就也可以用作(相对)write intensive的业务上了。

这个Adaptive Sparing技术其实就是在ssd的firmware里取消了作为保留空间的预留改为可调整的预留,这样就相当于提高了over-provisioning比例于是在使用空间较少时实现较高的dwpd了,但号称的将28%的op降低到7%,其实只适用在将512G裸容量的nand做成400G SSD时,但HPE的cMLC SSD容量其实都是480/960/1920/3840G这样的容量,真是op率也只有14%不到,所以宣称的2.5dpwd其实还是存疑的。

只不过如果实际使用的容量比例不高时,提高endurance的效果应该还是很明显的,这一点就类似netapp存储上,当实际使用容量比例较大时,io性能会急剧下降一样,当实际使用容量比例大之后,实际能达到的dwpd也就下降到cMLC的真实endurance 也就是1了。



NOS

在另外一个群里聊到开放的网络操作系统NOS,现在的可用的NOS有不少了,比如cumulus、bigswitch、ipinfusion、pica8,还有微软前几个月放出的sonic,有朋友推荐说可以关注下hpe的ops和centec的cnos,cumulus的nos

我前一段时间装了社区版的vm玩了一下,其实就是个可以安装到交换机上的linux,在网络方面倒没有什么创新,不过现在OCP也是基于cumulus的版本做的ONIE,类似Sonic这些NOS其实也都依赖onie进行安装,这个东东倒也适合对linux熟悉的系统运维人员使用,可以赶一下devops潮流。

bigswitch本来是oepnflow的拥趸,不过在opendaylight项目上没能争过cisco,现在推的BCF方案市场接受程度似乎不高,不过这位朋友说bigswitch最有价值的是它的BMF(big monitor

fabric),也就是用做网络流量监控的方案,这位朋友的公司现在也做这一块的解决方案,这么看得上bmf说明bmf还是有其亮点的,有空再研究下了。

pica8 是家国内的公司,只听说百度用得比较多,不知道他们的亮点在哪儿。

关于SONiC,下面是前几个月刚出来时研究了一下做的笔记:

SONiC 是什么?

SONiC 是Software for Open Networking in the Cloud 的缩写。

SONiC是安装在Linux上并运行在网络硬件交换机(白牌机)里的一系列软件组件的集合,可以在数据中心里为交换机提供完整的L2/L3功能。



SONiC包含的软件组件:

1.linux内核补丁以及相关硬件的驱动

kernel补丁主要还是基于cumulus的版本,用来提供对交换机上的一些硬件组件比如风扇、电源以及面板上的端口和指示灯提供支持和管理,并针对两款具体的交换机机型提供了驱动支持,这两款机型分别是Arista 7050和戴尔S6000两款交换机的支持。

Arista 7050是一款10GE接口为主的ToR交换机,而戴尔S6000提供32个40G接口,结合微软发布SmartNIC40G接口来看,微软Azure Cloud Switch使用的什么硬件昭然若揭了。

2.提供对交换机ASIC芯片的驱动

这部分的软件主要提供对交换机上ASIC的基本交换和路由功能的支持,而这些基本功能的API由芯片厂商提供API并通过SAI提供统一封装,在Broadcom发布的SAI 1.0.0.1版本里提供了诸如开关机、vlan、acl、route以及QOS等一些功能,另外还需要提供对交换机上各种状态数据库的支持,并保持数据库和ASIC状态的同步。

3.提供对上层协议软件的支持和封装

SONiC里采用Docker发布了诸如BGP、LLDP、SNMP等一些上层协议的封装和支持,微软在自己的数据中心网络里使用BGP已经不是什么新闻了,不过SONiC里使用的BGP实现似乎仍然还是Quagga而不是微软之前开源的Exabgp实现。

另外SONiC作为一个NOS,同样需要ONIE的支持才能安装和使用,从这个角度来看,SONiC更像是微软基于Cumulus linux做的一个定制版软件,微软在自己的Azure Cloud Switch上也运行SONiC软件,不过目前微软自己运行的版本还是1.0,而这次贡献给社区的版本是2.0,相比社区版本,微软ACS上使用的SONiC版本还多了一些Azure内部的云应用管理程序,微软并不会发行和销售SONiC软件,也不会提供技术支持。

SONiC虽然提供了开源了代码,但并没有提供二进制的发行版,而且目前只提供了对戴尔S6000和Arista 7050两个机型的driver patch,虽然理论上可以移植到其它负责OCP规范的交换机上,但现在看起来似乎还比较遥远,如果正好你用的是这两款交换机中的某个幸好,可以试试看,毕竟这个也算是在Azure这么大的云环境里得到了检验的SDN解决方案了。

:本文版权归原作者所有,只代表作者个人观点,与任何组织机构无关。进一步交流技术,可以加我的QQ/微信:490834312

 

感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage


长按二维码可直接识别关注
点击下方“阅读原文”,查看更多历史文章

↓↓↓


    关注 企业存储技术


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册