IO Visor:又一个开源项目横空出世

日前,Linux组织宣布成立开源项目IO Visor,该项目主要针对Linux内核的输入/输出请求任务。这个项目听上去似乎很深奥,事实上该项目与网络有很大的相关性。IO Visor无需借助网络硬件就可以创建整个网络的拓扑。

在实际应用场景中,IO Visor通过增加Linux内核中运行的元件数量可以有效地提高虚拟交换机等网络元件的性能。在去年VMware主办的 Open vSwitch大会上就讨论过这个问题,当时围绕“将一些数据包处理移出Linux内核是否会更好?”展开讨论。

创建IO Visor项目得到了业内很多公司的支持,其中包括 Barefoot Networks、Broadcom、Canonical、 Cavium、Cisco、Huawei、Intel、PLUMgrid以及SUSE。其中PLUMgrid是核心成员,向IO Visor项目贡献了初始代码。

相较于涉及整个云计算的OpenStack,IO Visor更加侧重于Linux内部,内核作为中枢神经将应用的输入/输出请求与硬件进行连接。Linux组织的执行董事Jim Zemlin认为,无论是内核中还是内核上层都有大量的代码开发和创新研究工作。而相关设备商正试图集体完成这项工作。

如下图所示,其他开放网络项目可能更加深入堆栈,尤其是开放计算项目,已经深入到硬件层面了,但是IO Visor项目却是其中最深奥的。

IO Visor面对的挑战是Linux内核没有虚拟化,因为Linux内核与内存、CPU等硬件元件直接对话,其性能远胜于Linux用户空间。但是没有虚拟化就意味着Linux内核一次只能处理一个请求。为了适应一个新的请求——一个新的IO模块——需要重新编译内核。

IO Visor希望虚拟机可以自发的添加到内核空间中,这就需要修改内核中的Berkeley Packet Filter (BPF)。顾名思义,BPF就是设置一个过滤器只允许确定类型的数据通过。

这样一来,网络功能虚拟化(NFV)就可能受到一定的影响。可以在一个内核中运行多个虚拟网络功能(VNFs),在内核中运行一个完整的服务链,从而享受到相应的性能优势。同样受到影响的还有安全应用,想象一下,虚拟防火墙和安全防御系统可以在内核中自动运行,并且无需进行重编译。思科的软件战略的高级主管 Lauren Cooney说道“在IO Visor帮助下就可以实现真正的实时处理,而不是启动-关闭-重启。”

如果规模足够大,就可以借助IO Visor创建一个包含多个计算结点的完整虚网,内核会负责数据层面所有的处理工作。实现这项工作的机制称为IO Visor引擎,IO Visor项目的主要工作就是开发这样的引擎、与之配套的插件和开发工具。

不可否认IO Visor确实可以提高应用性能,但是如何将大量的任务移动到内核空间中也是一个不小的问题,毕竟目前几乎所有虚拟机都运行在用户空间中。PLUMgrid产品与市场副总裁Wendy Cartee说道:“我相信开发人员经过一段时期的琢磨后一定可以判断出哪些任务适合在内核空间中运行,哪些任务适合在用户空间运行,这两个空间肯定都会得到充分的利用。”

PLUMgrid 如何邂逅IO Visor
自PLUMgrid成立之初就向Linux组织提出虚拟化内核的想法。早期在进行虚拟网络堆栈开发的时候PLUMgrid就发现了其中的局限性。尤其是添加路由、交换机后问题更为明显,Cartee说道“在部署过程中经常会出现一个集中结点,所有的流量都通过这个集中结点,这样一来就不是完全的分布式了。”

PLUMgrid一直在钻研这个问题,事实上很多开发者就是被PLUMgrid的这个想法所吸引而加入这家公司。

本文转载自SDNLAB,原文链接:http://www.sdnlab.com/13144.html

时间: 2024-08-26 19:48:59

IO Visor:又一个开源项目横空出世的相关文章

www808888webcom基金的一个开源项目19908836661也是apache基金的一个开源

Flume也是apache基金的一个开源项目,由cloudera公司开发的一款分布式.高可靠.高可用的日志传输工具.其以agent为一个单位,agent由source.channel和sink构成.一个agent最少由一个source.channel和sink构成,数量可以自由组合 Source主要用来收集源数据,并对源数据进行反序列化.Source在读取数据文件时,会遍历日志文件中的每一行,并把这一行封装在一个event当中,一个event包含一个header和一个body,header是一个

如何参与一个开源项目!

1.首先在github上注册一个自己的账号 2.然后在左上部分搜索一个开源项目,比如说我的项目syj-ratelimit 3.进入项目之后,单击右上角的fork按钮,github就会在你的帐户下fork一个同样的项目. 4.此时点击右上角自己的头像,可以看到一个your repositories,点击进入就可以看到刚才的那个项目了 5.现在你就可以在这个项目里取发挥你的个人才智进行修改bug.开发新功能等各种方式的贡献了 6.当你贡献完毕后就可以把你的贡献推荐给这个项目的开发者了.再次打开git

一个开源项目中用到的bash shell脚本

请看系统鸟瞰图: 因为笔者所在的地方并无可用的宽带和Wifi,所以暂且只能采用上图中的联网方法,使用ssh走手机GPRS流量的方法进行远程操作云风典藏官网的服务器,以完成所有任务.  关于云风典藏的更多信息,请看文章<四个月的隐居和一个新的开源项目——云风典藏>. 第一步:SSH安全设置  服务器现在由我们全部负责,远程登录的安全为重中之重.  1.创建一普通用户,以后只使用此用户来远程登录系统:  2.修改root密码:  3.修改sshd的配置: 1 #vim sshd_config fi

给各位聚聚和大大介绍一个开源项目 Expression2Sql

一.Expression2Sql介绍 Expression2Sql是一个可以将Expression表达式树解析成Transact-SQL的开源项目.简单易用,几分钟即可上手使用,因为博主在设计Expression2Sql的时候就尽可能的按照Transact-SQL的语法语义风格来设计,只要调用者熟悉基本的Transact-SQL语法即可迅速开码,大大降低了学习Expression2Sql的成本,甚至零成本.对象化操作,链式编程,任意组装sql,自动生成表别名,参数化赋值,防止sql注入,支持多数

如何熟悉一个开源项目?

参考来源: http://www.lai18.com/content/436209.html 你有个任务,需要用到某个开源项目:或者老大交代你一个事情,让你去了解某个东西.怎么下手呢?如何开始呢?我的习惯是这样: 1.首先,查找和阅读该项目的博客和资料,通过google你能找到某个项目大体介绍的博客,快速阅读一下就能对项目的目的.功能.基本使用有个大概的了解. 2.阅读项目的文档,重点关注类似Getting started.Example之类的文档,从中学习如何下载.安装.甚至基本使用该项目所需

怎样在Github参与一个开源项目

转载:http://www.csdn.net/article/2014-04-14/2819293-Contributing-to-Open-Source-on-GitHub 最近一年开源项目特别的热,很多技术大会或论坛都以开源项目作为主题进行探讨,可见这是一种趋势.而Github作为开源项目的著名托管地,可谓无人不知,越来越多的个人和公司纷纷加入到Github的大家族里来,为开源尽一份绵薄之力.对于个人来讲,你把自己的项目托管到Github上并不表示你参与了Github开源项目,只能说你开源了

正式推荐我的一个开源项目2-自定义编译器

在项目里面有时有这样的场景,我们需要一个权限表来控制权限,当满足权限表条件时,阻止用户操作并返回错误信息,表的结构类似: 这时有一种传统方式是,我们用mybatis之类的工具,写一段sql,每次用这段sql校验权限: SELECT * from permission_test where `condition1` = #{condition1} and `condition2` = #{condition2} 另外一种方式是,我们将table编译为一段可执行代码,然后每次执行这段代码,这段代码类

一个开源项目的想法

最近因为受到工作上的启发,还有Konrad先生的框架的启发,想要自己动手写一个javascript的框架. 现在设想的框架是mvc模型,纯javascript,加上一些预定义css界面元素.面向Cordova端移动应用开发. 名字叫XJ框架 计划: 现在这里建立一个开源代码库 有空就进行初步架构的开发 稳定代码

正式推荐我的一个开源项目,可以处理网页抓取,语法分析

autogrammerspider项目,今天在[www.taobao.com]上面测试成功了,这个项目可以大大缓解你抓取网页时,分析网页的痛苦. 目前在功能,效率上面虽然还有很大的提升空间,但是基本运行已经问题不大.我今天正式介绍这个项目,希望各位有兴趣的话可以用用,提出宝贵意见,如果真的需要什么功能的话也可以告诉我,我会尽快完善. 这个东西的使用如下, 首先配置特征文件,放在resource, autospider下面, 特征文件的内容如下: 在这个特征文件里面有3个地方需要注意, 一个是最上