opendaylight架构剖析PPT_第1页
opendaylight架构剖析PPT_第2页
opendaylight架构剖析PPT_第3页
opendaylight架构剖析PPT_第4页
opendaylight架构剖析PPT_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

opendaylight,1,2020/5/11,opendaylight,背景核心技术主要特色编译与使用Ad-sal与Md-salPacket处理,2,2020/5/11,背景,SDN市场,未来应用为主,底层屏蔽,网络服务于应用,controller的争夺,由IT厂商发起的组织思科,IBM,dell,Redhat,Vmware等主要为网络设备制造商,软件商,ONF由网络用户发起,成员都是网络设备用户,致力于标准化,openflow,而南向接口不仅仅是openflow,SDNController协作开发,由各公司贡献project,打造统一开放的SDN平台,本质核心控制和转发分离,南向不需标准化,推动产业向前,需要标准化,但又不希望标准化,硬件,最初核心代码由思科和bigswitch,目标是打造一个网络操作系统,3,2020/5/11,核心技术,OSGI一种面向服务的架构,将应用视为对等模块的相互协作,支持在控制器运行时进行服务的安装、删除和更新。Maven构建工具,能够帮我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。Infinispan实现集群Sal多种南向协议对上提供统一的北向服务接口。南向netty管理底层的并发IO北向Rest,4,2020/5/11,osgi,模块化定义了osgi模块的概念,并将之称为一个bundle,包含一个元数据的jar文件,其中元数据MANIFEST.mf,由name-value对组成,由类及相关资源组成,关注的是打包和共享代码。生命周期定义了osgi在框架中如何动态安装和管理,通过生命周期的操作(安装,更新,卸载等)动态地管理和改进应用程序,不需要重启应用程序。重点在于执行时模块管理和对底层osgi框架的访问。服务层面向服务,服务注册,查找等,接口与实现分离,osgi服务是java接口,模块内的组件间交互和通信。,5,2020/5/11,Maven,优秀的构建的工具,可以每个mavn项目中核心是pom.xml,其定义了项目的基本信息,编译时就是使用了mavencleaninstall,一个重要插件maven-bundle-plugin在pom.xml,可自动生成osgi中元数据,MANIFEST.mf,设置如importpackage,exportpackage,以及最重要的Bundle-Activator,设置其bundle;,6,2020/5/11,7,2020/5/11,Project,协作开发,目前有很的project,20个左右,由各公司开发,目前发布了Hydrogen版本,主要涉及以下几个projectBaseOpendaylightController,YANGTools,OpenflowPluginVirtualizationAffinityDefense4All,OpenDOVE,OVSDB,VTNSerivceProviderBGP/LSandPCEP,LISPFlowMapping,SNMP4SDN下个版本为Helium,8,2020/5/11,InHydrogenRelease,TheOpendaylightControllerConsistsOfTheFollowingModules:AD-SAL-Api-drivenServiceAbstractionLayerAD-SALNetworkServiceFunctionsForOpenflow-capableNodes:SwitchManagerStatisticsManagerHostTrackerARPHandlerForwardingRulesManager(FRM)TopologyManagerClusteringAndHigh-availabilityServicesForAD-SALMD-SAL-Model-drivenServiceAdaptationLayer-ASetOfInfrastructureCommonAndGenericServicesForApplicationsAndPlugins(Basically,APlumbingThatConnectsApplicationsAndPluginsToEachOther).Md-salBaseNetworkFunctions:TopologyExportersInventoryManagersMD-SALNetworkServiceFunctionsForOpenflow-capableNodes:ForwardingRulesManager(FRM)StatisticsManagerMD-SALNetconfConnector(SouthboundNetconfPlugin)MD-SALRestconfConnector(NorthboundRestconfPlugin)-AnInfrastructureComponentThatRendersRESTApisForDevice/ServiceModelsLoadedIntoTheControllerConfigSubsystem-Netconf/YangBasedFrameworkForConfiguration,PerformanceAndFaultManagementOfControllerInfrastructureAndPluginsDeployedIntoTheControllerNSFAdapters-NetworkServiceFunctionAdapterThatAllowTheMD-SALBasedOF1.0/1.3PluginToTalkWithAS-SALBasedNetworkServiceFunctions,9,2020/5/11,安装与使用,/view/release/hydrogen/base/installation_guideInstallingFromZip/content/repositories/opendaylight.release/org/opendaylight/integration/distributions-base/0.1.1/distributions-base-0.1.1-osgipackage.zipInstallingFromRPMvirtualboximage下载源码,编译,10,2020/5/11,编译与运行,搭建环境,Ubuntu12.04安装jdk,maven,设置环境变量,eclipse,安装插件/view/opendaylight_controller:eclipse_cli_setup下载project,openflowplugin,controller:gitclone/gerrit/p/controller.gitMvncleaninstallor-DskipTestsDcheckstyle.skip运行./run.sh,11,2020/5/11,OpenDayLight中的bundles,核心基类:ComponentActivatorAbstractBase每个模块的bundle都要继承,Start(context)启动方法,会遍历其所提供的实现,依次配置依赖关系。getGlobalImplementations()获取全局的实现类,其导出接口的实现类。getImplementations()获取容器相关的实现。ConfigureGlobalinstance(c,Impsi),c是前面提到的ComponentconfigureInstance()在一个容器中配置实现的依赖关系。containerCreate(StringcontainerName)配置Componet,里面说明了导出的接口和依赖的接口,最后放到dm及缓存中。会在ContainerMangaer的bundle启动中调用。CreateServiceDependency()生成服务依赖对象,需要被子类调用,在配置componet的依赖关系的时候需要用到。,12,2020/5/11,依赖管理,bundle的抽象基类,管理全局和容器相关的服务,当然bundle本身就是一个大服务。Container是OpenDaylight中的一个网络域,有很多链接信息、整个域网络信息等,由ContainerManager管理容器,而OSGI管理各个bundle;每个模块中有多个实现,其中通过DependencyManager管理其依赖关系。每个实现一个Component,每个Component就是一个服务,里面说明了导出的接口和依赖的接口。通过DependencyManager以component管理依赖。,13,2020/5/11,Sal,主要作用将服务抽象出来,不管控制器和网络设备之间使用何种协议,提供协约国的一服务,是odl的核心设计,支持多种南向协议,为各模块和应用提供一致的服务,这些服务的实现,是由底层插件(基于已存在的组件(如OF)和网络设备的功能))的所提供的接口,但是与SAL是松耦合的。具体将请求,映射到相应的插件,完成服务。所提供服务DataPacketServices为数据报文的处理,提供服务TopologyService为应用提供节点和链路的更新信息,Inventoryservice为如节点或者节点连接提供API查询FlowProgrammingService流编程服务Resourceservice资源服务,,14,2020/5/11,SaldapacketService,首先OF组件收到APR,需要交到ARPHandler处理,将首先根据类型,调用IPOPS到SAL,交由SAL层Sal中的DataPacketservice实现了IPOPS其会通过dispacthPacket()方法,其会调用实现IListendatapacket的应用,依赖于实现些接口,会最后ARP实现了IListenDatapacket会将其送到ARPHandler处理。,15,2020/5/11,MD-sal,Md-sal的主要功能是促进提供者和使用者之间的管道。它可以提供提供者和使用者之间的管道在不同的容器中。它将连接到一个消息总线和共享数据存储的集群opendaylight容器。南向与北向的一致性。提供者或消费者在md-sal中注册。从而,一个消费者可以找到所需的供应商。提供者可以生成通知,消费者可以接收通知,并从提供者获取数据。插件sal角色(消费者或生产者)定义的sal中的数据是被移走或存储数据。提供者可以将数据存入sal的,一个消费者可以从sal读取数据。Md-sal提供请求路由和基础设施服务,以支持服务,但它不提供服务本身;由插件提供服务。Yang使得Componet之间、plugin、北向等api,使得这种接口和ad-salREST接口相比更抽象,符合模型驱动(MD)的思想。,16,2020/5/11,1)FPC注册RegistersWithTheMDSALForFlowConfigurationDataNotifications与OPAddFlowRPCimplementationwiththeSAL2)requestsaflowaddthroughtheControllersRESTAPI3)theMD-SALgeneratesadatachangednotificationtotheFlowProgrammerService4)usestheOFPlugingeneratedAPItocreatetheRPCinputparameterDTOfortheOFPlugins“AddFlow”RPC5)MD-SALwillroutetherequesttotheappropriateOFPlugin6)下发流表(与AD-sal类似),17,2020/5/11,Packet处理流程,PacketIn消息到来,经过底层plugin,经由sal层,调用实现了IListenDataPacket的reciviceD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论