网络设备中的多核OS的讨论.docx

上传人:b****6 文档编号:5108437 上传时间:2022-12-13 格式:DOCX 页数:40 大小:34.81KB
下载 相关 举报
网络设备中的多核OS的讨论.docx_第1页
第1页 / 共40页
网络设备中的多核OS的讨论.docx_第2页
第2页 / 共40页
网络设备中的多核OS的讨论.docx_第3页
第3页 / 共40页
网络设备中的多核OS的讨论.docx_第4页
第4页 / 共40页
网络设备中的多核OS的讨论.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

网络设备中的多核OS的讨论.docx

《网络设备中的多核OS的讨论.docx》由会员分享,可在线阅读,更多相关《网络设备中的多核OS的讨论.docx(40页珍藏版)》请在冰豆网上搜索。

网络设备中的多核OS的讨论.docx

网络设备中的多核OS的讨论

精品

 

网络设备中的多核OS的讨论–Case

 

StudyHillstoneStoneOS

 

作者deltali|2010-12-2307:

30|类型行业动感|73条用户评论?

 

分享到:

新浪微博QQ空间开心人人DiggFBTwitter

 

引子:

 

10月中旬的时候,首席发了个北京上地的pre-ipo的网络通信公司招聘帖子。

 

里面的股票,重金一下子刺激了我的眼球。

凭借着对linuxkernel和虚拟化技

 

术的热爱,我毅然投了简历。

结果如泥牛入海,杳无音讯。

但在此期间内,我

 

为了方便面试提前做了些调查功课。

在目标上根据北京,上地,海龟,通信安

 

全公司,我的第一反应和大家一样,认为是山石,但是随后我又锁定了另一家

 

公司—a10networks。

Google了下2家公司,发现它们的产品都是基于多核

 

平台,特别的它们都开发了基于多核的OS。

于是多核,智能化调度,64位并

 

行OS一下子取代了股票和重金对我的眼球开始了新一轮的冲击。

作为一名内核开发的爱好者自然想了解下这些OS是如何实现的。

因此特地以山石的

 

StoneOS写了这篇文章,希望和弯曲的高人能一起探讨一下。

 

感谢下载载

精品

 

资料来源:

 

并没有Google出太多的相关资料,还好有相关的白皮书,于是我就以白皮书

 

为参考资料来写这篇文章。

如果有什么理解错误,希望大家能及时指出。

 

 

e-WhitePaper.pdf

 

 

itePaper-0424.pdf

 

山石使用的是Cavium公司的octeon系列的产品,具体型号我不知道。

但是

 

并不影响我们的讨论。

 

产品架构:

 

从山石的白皮书和他们的产品宣传看:

 

1.硬件平台架构:

 

感谢下载载

精品

 

2.StoneOS软件架构

 

Hillstone的网络级安全是由ASIC来实现,而耗费cpu的应用层的安全加速则

 

感谢下载载

精品

 

由多核cpu来实现。

 

3.全并行架构

 

Hillstone点出了当前并行的技术难点,他们是通过实现3个并行来解决:

板卡,

 

cpu和核内多功能。

 

1.板卡间的并行应该是IOM硬件来将负荷智能分发数据到各板卡

 

2.各个板卡上的cpu的功能应该是对等的,除非是某个数据包必须要在某

 

感谢下载载

精品

 

个cpu上处理,否者数据包可以在任意一个cpu上被处理

 

3.每个cpucore上跑的软件也是相同的,这样就能实现全并行数据处理

 

1是硬件来处理,2最终是由3来决定的。

 

从白皮书来分析的话,最让我不明白的是3的实现:

 

我原本的理解是各个cpu之间是smp的关系,每个cpu的处理功能都是一样,

 

但是cpu里的多个core是amp的,它们根据要处理的功能的多少和先后关系,

 

把当前的cpu内的核划分成不同的group来实现流水线并行。

 

但是根据白皮书的上图和山石的宣传看,每个core上都集成了所有的功能能让

 

一个数据包在该core上做完所有的处理,AV,IPS,,Qos,FW等。

 

这样的话,问题就来了:

 

多个功能共享单个core时,一个数据包是只能串行的走完各种功能的扫描。

 

何实现功能并行处理呢?

当然如果说把这些功能弄成流水线,core每次读入一

 

批数据包,然后依次切换到对应的功能处理模块线程。

即便是在cpu性能高的

 

时候这行但是随着业务的发展要处理的功能增多时,各种功能模块切换的开销

 

也会递增,cpu利用率也会变低。

另外一个问题就是某个流水线阶段处理较慢

 

的话,除了动态加大它在该core上的处理时间外,没有其它的加速方法了。

 

知道山石的真实设计究竟是咋样的。

 

我猜想的设计可能是:

 

感谢下载载

精品

 

1.每个core都是硬件多thread,但是山石使用的是octeon芯片,octeon

 

芯片好像没有实现硬件多线程

 

2.虽然每个core上的功能一样,但是每个core只全速跑设定的某个功能,

 

除非有命令让它执行另外一个功能。

这样的好处是将cpu里的core划分成不

 

同的组来执行功能处理流水线,当某个组在处理某个功能流水阶段(比如:

IPS)

 

很吃力时,可以把其它的负荷较小的组里的core划分过来来增强处理,因为每

 

个core的代码是相同的,这种划分是很容易的,通过设置某个标记就能让core

 

改变要执行的功能。

整个网络负荷小的时候还可以减少各个group里的core

 

数量。

这样每个core都是全速的跑应用而且没有任何的线程切换开销。

 

希望山石的大牛能出来给我指点一番哈。

 

综上:

 

StoneOS大概由控制平面+数据平面多核的资源管理+数据平面上每个核的代

 

码组成

 

1.控制平面的话:

处理各种命令,显示数据平面的处理结果,进行各种配

 

置和管理

 

2.数据平面多核的资源管理:

在IOM分流的基础上,监控各个cpu的状

 

态,能根据实际负荷进一步的对数据包做智能调度。

同时对各cpu内的各核状

 

态也进行必要的调整

 

3.数据平面上的代码:

主要是针对应用层的处理,按照实现安排好的顺序

 

感谢下载载

精品

 

走完功能流水线

 

4.因为需要使用共享资源,所以如果没有硬件提供同步与互斥的话,

 

stoneos需要提供能同步和互斥访问共享资源的软件手段。

 

最后:

 

在资料查找过程中会发现,各厂家的多核基础架构都大同小异。

都有自己对应

 

的OS,比如:

 

A10networks的ACOS

 

 

p

 

 

 

anchiva的AnchivaOS

 

 

还有国内的SecOS,TOS,几乎各个安全厂家的多核产品都有自己的OS,通过对

 

应的白皮书可以看到去除各自的业务需求,在OS这层的功能实现应该是大同

 

小异。

大家要有兴趣也可以继续分析。

 

谢谢能有人看到这里,说实话这种文章不好写,没见过相关的产品,也没用过

 

感谢下载载

精品

 

网络多核处理器,好多东西只能凭着对白皮书的理解来写。

写了一半的时候曾

 

想放弃了,但是想了下多核是将来的一个趋势,肯定有很多跟我一样想深入了

 

解下多核操作系统的应用的人。

网络无疑是多核应用的最多的领域,然而很多

 

东西只有弄过了才能真正的了解,但是这种机会太少了。

有时候行内人或者牛

 

人的一句评论比很多人花费几天时间研究出的东西还有价值,希望这篇文章能

 

有这种效果

 

(没有打分)

 

工具箱

 

本文链接|邮给朋友|打印此页|73条用户评论?

 

雁过留声

 

“网络设备中的多核OS的讨论–CaseStudyHillstoneStoneOS”有73个

 

回复

 

1.陈怀临于2010-12-237:

34上午

 

DeltaLi,你是自己在乱投的,还是把简历给了我?

最好的办法是读者们

 

把简历都在我这里存一个copy。

 

2.陈怀临于2010-12-239:

30上午

 

感谢下载载

精品

 

另外,透露一哈。

山石的N个创办人没事也在这里溜达,潜水。

所以,

 

你这个文章一出来,后果会很严重。

山石的同学们,回答人家

 

的技术问题呀。

裸奔一下嘛。

 

我来谈一下:

 

前端的Classifier是一个关键。

 

另外,PCI-E的ASIC还是不错。

是NetScreen的方案体系结构的一种继

 

承。

 

总之,多核+ASIC确实不错。

表扬一哈。

 

3.WillChie于2010-12-2311:

09上午

 

坊间传闻,ASIC不存在。

 

4.理客于2010-12-233:

38下午

 

一般的产品如何设计定位,是决定于如何平衡客户需要、竞争对手和自身

 

资源这个三角关系,不同的公司,这个三角关系是不一样的。

 

比如华赛:

客户方面和运营商好、竞争对手C/J为主、自身资源可以利用

 

路由器平台,那么它的安全产品必然要和山石不同。

华赛有硬件平台好、

 

共享硬件成本低,利用HW的运营商关系等好处,但劣势是缺乏企业网

 

的经验

 

比如山石:

客户方面主要是企业用户、竞争对手是诸多企业级安全厂商、

 

感谢下载载

精品

 

自身资源有NS的ASIC功夫

 

在此三角关系上,再考虑业界趋势判断,一起来确定产品的功能性能、主

 

打客户、生命周期、成本控制、核心器件选型等等。

这里一个是要有牛人

 

掌舵,另外一个就是要有系统的分析管理而不是关键时刻总是拍脑袋。

 

5.billy于2010-12-234:

31下午

 

to理客:

非常好的点评对于绝大多数产品经理来说真应该看一下你

 

这段话尽管未提及山石设计本身但是跳出“设计”的框框来统观产

 

品的“定位”这一点尤为关键大多数网络/安全公司都缺乏这样的产品

 

经理人云亦云亦步亦趋的反而更多一些

 

6.小错误于2010-12-235:

20下午

 

图2是P2P/IM吧?

 

7.yfydz于2010-12-235:

33下午

 

如果真有ASIC,小包怎么才3G?

 

8.kevin于2010-12-235:

47下午

 

用商用芯片的后果就是产品同质化,每家的xxOS都差不多,最后做出来

 

的产品规格也差不多

 

9.deltali于2010-12-236:

16下午

 

谢谢首席帮忙把名字排版了一下。

 

感谢下载载

精品

 

其实没啥,真正的核心还是在设计细节和对业务的理解。

大面的东西估计

 

各大厂家都差不多。

只不多是对我们这些局外人来说还比较神秘。

 

强大的ASIC设计能力,对业务精准的划分,才是这些OS的存在基石。

 

另外:

 

首席,我没法瞎投的,你那个帖子好像只留了你的邮件。

不过这只是写文

 

章时开的小玩笑,我都工作多年了,被工作据过也据过工作,心理能力

 

ganggang的。

 

其实说实话股票和高薪啥的都是一时的刺激,真正我还是想去个能耐心踏

 

踏实实做事的公司,不要忽悠。

真正搞技术的人最大的成就就是有天能指

 

着某个产品说,嘿,这是我搞出来的。

当然必须是很骄傲的说。

 

10.陈怀临于2010-12-236:

20下午

 

你把resume给我一个。

刚才有人越洋电话来要人了。

整的现在像我

 

失职的样子。

 

11.天外有天于2010-12-236:

50下午

 

没仔细看,随便说说。

 

如果只是协议和状态处理这些(ip包解码),

 

多核就能做的很好,似乎用不着asic,

 

如果是ips和av,那么多核的网络处理器

 

性能很差,

 

感谢下载载

精品

 

所以要么就一个多核处理器,包打天下,

 

性能差点,好在便宜。

 

要么加处理器(各家五花八门,asci,fpga,协处理器都有)做内容检测。

 

12.陈怀临于2010-12-236:

58下午

 

说良心话,我基本上没有真正的琢磨石头OS。

据说医生不给亲人看病;

 

首席不给朋友把脉:

-)。

 

有时瞄一瞄结构图。

总觉得这个48G的Fabric是个大问题。

估计一灌

 

multicasttraffic,就歇了?

有没有测试数据?

 

13.打酱油的于2010-12-237:

15下午

 

请教首席,谁家的七层设备灌multicast不歇?

他的架构是如何设计的?

 

14.陈怀临于2010-12-237:

30下午

 

咔咔卡。

我的意思是,我感觉StoneOS就是灌正常的throughtraffic

 

都歇。

当然要求过分了。

反正石头一定是通过switch接在router后面的。

 

不能拿routing的要求去要求stoneos。

 

15.小飞侠于2010-12-237:

58下午

 

A10的系统构架主要是为了解决L4-L7的并行处理问题。

 

16.老韩于2010-12-2310:

20下午

 

感谢下载载

精品

 

文中引用的资料太老了,基于此讨论价值不大

 

17.陈怀临于2010-12-2310:

49下午

 

我刚才与石头的CEO打了个电话。

他吞吞吐吐的告诉我:

似乎没有ASIC

 

了。

情何以堪!

 

是,如果有ASIC,FPGA,还是很花银子的。

 

18.deltali于2010-12-2310:

53下午

 

to老韩:

 

如果你有新资料,而且方便公布的话,也可以发出来让大家分析下。

 

其实这个东西就像大家分析魔术一样,观众来分析就是好个明白,但是魔

 

术师是不会告诉你答案的,尽管他们知道大多数人即使知道答案也不会去

 

表演魔术一样,毕竟行规如此。

 

当然了如果能有人点拨一两下,那就是这篇文章的最大收获。

没有也没啥,

 

就当是我的一个阅读笔记。

 

19.deltali于2010-12-2310:

57下午

 

to首席:

 

哈哈,这么晚还在奋斗啊。

 

感谢下载载

精品

 

其实当时在写文章的时候还在想,对于没有实力研发ASCI的小厂家来说。

 

通过并行把网络功能和应用功能做到多核上,不就能冲击下低端市场了

 

吗?

 

20.天外有天于2010-12-2310:

59下午

 

哈哈哈。

果然是没有asic的。

 

其实如果用acic或者别的协助处理,

 

就要下决心把ips做到G以上(av木有办法滴),

 

但是ips又涉及实时响应和分析队伍,

 

这个比较难搞。

 

21.老韩于2010-12-2311:

16下午

 

新资料,Release的我原来写文章都引用过了,可翻查。

 

22.ABC于2010-12-2412:

20上午

 

现在硬件平台也同质化了。

如果这里有做平台的或平台的客户,应该知道

 

我说的是谁。

 

基于平台的硬件开发也是个方向,好处坏处各半吧。

 

做一颗ASIC在设备里面,真的需要很大的投入和很多的积累。

也只有思

 

科和有专业芯片体系支撑才能真正去做。

 

刚看的第一个帖子是说FPGA+A9,用来做板卡或设备未必不是个新选择。

 

感谢下载载

精品

 

23.WillChie于2010-12-2412:

24上午

 

传说asic不适合以后应用方向的发展,不只是在多核的能力下体现不出

 

多高的性能,而且还影响软件架构。

 

24.清华土著于2010-12-243:

15上午

 

每个core上都集成了所有的功能能让一个数据包在该core上做完所有

 

的处理,AV,IPS,,Qos,FW等。

 

//真跑起来了,FW的只是更新下seq,AV算下哈希,IPS走走prefilter,

 

QoS则只是根据一次性的policy查找进某个queue,这时候不并行也快。

 

真跑不起来了,AV文件重组,IPS正则表达式匹配,这时候再并行也还

 

是慢。

 

多个功能共享单个core时,一个数据包是只能串行的走完各种功能的扫

 

描。

如何实现功能并行处理呢?

当然如果说把这些功能弄成流水线,core

 

每次读入一批数据包,然后依次切换到对应的功能处理模块线程。

 

//Core一次从POW读一个包出来,由硬件完成保序;费劲的处理可以

 

resubmit到其他powgroup,交由片上(crypto/dfaengine)和片外

 

(asic)协处理器处理,之后再回来,实现流水作业。

 

//ps:

谁能搞清hillstone中对cache的管理和对packetdata而非work

 

的存储和优化?

FullDPI玩的是包,不是meta了。

 

25.kk于2010-12-243:

34下午

 

感谢下载载

精品

 

首席还需要和石头的CEO确认一下有没有ASIC,他们的项目没有请你先

 

review?

 

不过好像有的安全公司经常把FPGA说成是ASIC。

 

突然发现蹦出来这样一个公司,,什么背景?

首席

 

分析一下?

 

26.today.tusday于2010-12-247:

58下午

 

这样的话,问题就来了:

 

多个功能共享单个core时,一个数据包是只能串行的走完各种功能的扫

 

描。

如何实现功能并行处理呢?

当然

 

胡乱猜想一下:

数据面不需要并行处理吧,一个连接一个控制块,来一个

 

包查一次HASH表,这样收一个包处理一个包的速度应该很快的。

可能

 

需要将LINUX内核的中断处理去掉,CPU直接暂询网卡及周边设备的寄

 

存器状态。

这样,整个系统一个锁都不需要。

不过可能需要解决数据面会

 

话与CPU的会话保持问题

 

27.仰望于2010-12-249:

39下午

 

是H3C出来的人搞的安全公司吧,目的是进

 

入政府,军队行业的项目,貌似老大的是王冰?

高人指点一下看看。

 

28.陈怀临于2010-12-2410:

02下午

 

感谢下载载

精品

 

在杭州。

感觉还真是H3C出来的弟兄:

-)。

 

哪天我来写个初创公司,推荐一哈。

 

安全市场的市场pie很小,但为啥能容纳这么多小公司。

我反正也是想不

 

明白。

Switch,Routing市场大,但其实反而没有许多小公司。

 

什么?

Barrier高?

 

29.中兴小象于2010-12-251:

58上午

 

“安全市场的市场pie很小,但为啥能容纳这么多小公司。

我反正也是想

 

不明白。

 

因为需要无数的”墙”

 

“Switch,Routing市场大,但其实反而没有许多小公司。

”因为业务同质化

 

30.戴小鼠于2010-12-254:

44上午

 

问下小象,墙是啥意思?

 

31.戴小鼠于2010-12-254:

48上午

 

使用asic,硬件功能扩展比较难了。

 

控制面流量不大,不需要并行处理的。

我感觉是弄一个core专门处理控

 

制面,没有什么并行。

其他核用来并行处理数据流

 

感谢下载载

精品

 

32.防火墙于2010-12-258:

24下午

 

,听说还有大鱼!

 

33.multi-core于2010-12-2511:

25下午

 

感谢弯曲评论,搭建了一个与高端人士沟通的平台,能了解到很多前言的

 

技术。

 

同时感谢给我发邮件的精英分子,因出差耽误了邮件处理,导致延迟产生,

 

但是没有丢包,都回复了。

 

本公司规模小,但是里面的人都是精通安全编程、安全攻防,现在想把产

 

品移植到多核,或者大家有什么更好的平台架构给我推荐,再次感谢大家。

 

我的邮件地址:

asdf8360@

 

期待着大家的建议,同时也招聘兼职或者专职!

 

34.multi-core于2010-12-2511:

31下午

 

回答29楼的中兴小象:

其实安全防护不等同于防火墙。

构建安全保障体

 

系需要多种技术手段共同创建,才能保证用户的安全,降低用户的风险。

 

但是遗憾的是并不是大安全厂商都能通吃一切,相反有些小安全公司正是

 

精通某个领域的小的安全技术,因此就存活了,如我们公司很小,但是生

 

存下来了。

 

35.multi-core于2010-12-2511:

46下午

 

感谢下载载

精品

 

邀请对WEB攻防有研究的人士加盟,最近正在做WEB防火墙产品开发

 

规划,恳请大家拍砖提意见。

请发asdf8360@

 

36.加菲猫于2010-12-266:

50下午

 

看完了~哈哈,个人感觉

 

1.多核并发的关键在于数据平面最底层的分发策略.

 

比如:

按连接发起者地址分发(源地址),如此一来,同一个用户的连接只

 

会在一个core上面处理,需要跨core共享的数据就基本上可以忽略了.

 

流跟踪,用户跟踪,等数据结构

 

都不需要并发保护机制.

 

2.数据平面上,每个core需要完全负责处理被分发到该core上的流.如:

 

流跟踪,DPI,当前流统计,甚至是QOS.这样,core都在干活,而且大家

 

互相之间基本上没有需要共享

 

的数据,都在个忙各的.数据平面提供API供管理平面获取流信息,DPI

 

处理结果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1