ONOS是一个分布式的控制器,为了提高数据的读写效率,采用自实现的基于In-Memory的Key-Value数据存储系统。针对实际的需要,不同的数据模型采用不同的数据一致性方法,即强一致性(strong consistency)和最终一致性(eventually consistency)。ONOS使用raft协议实现强一致性,使用anti-entropy(gossip)协议实现最终一致性。
Flow Rule Subsystem简要分析
Flow Rule Subsystem实现Flow rule的管理,存储和同步,用户可通过Flow Rule Subsystem提供的北向API(FlowRuleService)查询,下发和删除Flow rule。下面将结合Flow Rule Subsystem的代码,并以OpenFlow为例,简要分析Flow Rule Subsystem的实现过程,希望以此抛砖引玉。
ONOS子系统结构和事件分发处理机制
ONOS是一个支持分布式的复杂网络操作系统,ONOS的设计高度层次化,模块化和抽象化,ONOS不同的模块和组件一般都使用特定的接口类型和异步事件机制通信协作。因此,理解ONOS子系统结构和事件分发处理机制对进一步深入了解ONOS是有很大帮助的。
ONOS中的OpenFlow Channel状态机解析
ONOS使用OFChannelHandler类来处理交换机和控制器的信道连接,同时将switch message分发到合适的位置,代码在package org.onosproject.openflow.controller.impl中。
OSGi简介与基于OSGi框架(Felix)的简单应用实现
OSGi(Open Service Gateway Initiative),其英文定义为:The Dynamic Module System for Java。由此可见,OSGi的主要职责就是为了让开发者能够构建动态化、模块化的Java系统。使用OSGi,系统的各个组件就像插件一样,暴露特定的接口,实现“即插即用”。