云计算
文章平均质量分 89
飞翔的美食家
这个作者很懒,什么都没留下…
展开
-
【OpenVswitch源码分析之二】架构
OpenVswitch架构概览 Open vSwitch的架构和模块与传统的物理交换机是一一对应的,包括控制面和数据平台,只是传统的物理交换机通常使用NP芯片来进行转发,而Openvswitch使用Linux内核模块做数据平面。OpenVswitch包括三个核心模块:ovs-vswitchd,ovsdb-server以及内核模块openvswitch datapath。每个模块有不原创 2017-06-28 20:45:02 · 2385 阅读 · 0 评论 -
【OpenStack源码分析之九】看 nova-scheduler 如何选择计算节点
本节重点介绍 nova-scheduler 的调度机制和实现方法:即解决如何选择在哪个计算节点上启动 instance 的问题。创建 Instance 时,用户会提出资源需求,例如 CPU、内存、磁盘各需要多少。OpenStack 将这些需求定义在 flavor 中,用户只需要指定用哪个 flavor 就可以了。 可用的 flavor 在 System->Flavors 中管理。 F转载 2017-07-23 12:50:32 · 1103 阅读 · 0 评论 -
【OpenStack源码分析之四】WSGI与Nova API服务启动
前言前文已经介绍了RPC Server的启动,而Nova API启动的是WSGI服务,所以先介绍一下WSGI。WSGIWeb服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口。WSGI是作为Web服务器原创 2017-07-18 22:49:30 · 1827 阅读 · 0 评论 -
【OpenStack源码分析之十】虚机启动流程中Nova Compute与周边组件的交互
前文也讲述过 【OpenStack源码分析之三】Nova-Compute启动流程分析Nova Compute组件在整个Nova里面是一个核心角色,控制节点上的Nova-api,Nova-Conductor, Nova-Scheduler在虚机启动流程中主要只做了一个事情,就是选出了启动虚机的Host,剩下的网络资源的搭建,Image的下载,卷的申请等工作都是通过Nova-compute来做,所以说它原创 2017-07-23 21:29:39 · 1080 阅读 · 0 评论 -
【OpenStack源码分析之五】Nova API 的插件管理
Openstack使用 stevedore作为其第三方开发和加载的框架,其使用setuptools的entry points来定义并加载插件。entry point引用的是定义在模块中的对象,比如类、函数、实例等,只要在import模块时能够被创建的对象都可以。[nova.api.v21.extensions]remote_consoles = nova.api.openstack.compute原创 2017-07-19 21:05:18 · 746 阅读 · 0 评论 -
【OpenStack源码分析之十一】分布式事务和相关算法
前言在【OpenStack源码分析之六】从虚拟机启动流程看安全认证 中有提到一个问题是关于OpenStack的HA机制和灾难恢复(DR机制)的,HA和DR都是保障可用性的,两者都可以用两个维度来衡量,RTO (Recovery Time Objective)和 RPO(Recovery Point Objective)。RTO 是服务恢复的时间,最佳的情况是 0,这意味着服务立即恢复;最坏是无穷大意原创 2017-07-25 23:34:57 · 2561 阅读 · 4 评论 -
【SDN控制器分析之一】ONOS架构概述
ONOS 设计目标ONOS是一个采用OSGI技术来管理子项目的SDN控制器开源项目,在最初设计时有这么几个目标是明确的:代码模块化:支持把新的功能作为新的独立单元引入特性可配置:无论是在启动还是运行时,支持动态加载和卸载特性协议无关:应用不需要和具体的协议库和实现绑定模块化的实现:ONOS项目由一组子项目组成,每个项目都有自己的源代码树,可以独立构建。为此,ONOS的源码采用分层的方式来组织原创 2017-08-03 22:06:07 · 10562 阅读 · 1 评论 -
【SDN控制器分析之二】ONOS网络状态表述
概述控制平面所维护的关键信息是网络状态。控制平面必须聚合此信息,并使其对应用程序可用。此外,为了保持可扩展性和组件重用,应用程序应该免受协议细节的影响,即使网络状态信息是通过特定协议的方式获得的。ONOS协议不可知的拓扑结构是采用两个互补机制:网络发现和配置来实现的。前者利用网络协议让ONOS识别网络元素的位置和/或性能,在功能使能的情况下会主动开展相关的采集工作。后者允许应用程序和操作人员配置预期原创 2017-08-04 19:26:02 · 2220 阅读 · 0 评论 -
【SDN控制器分析之三】ONOS Device Subsystem
概述设备子系统负责发现和跟踪组成网络的设备,并使管理员和应用程序能够控制它们。大多数ONOS核心子系统都依赖Device子系统的Device和Port的模型对象来进行管理和创建,也会通过Device Provider来和网络进行交互。Device子系统由以下几个部分组成:DeviceManager : 能够与多个Provider通过deviceproviderservice接口交互和多个监听者通过原创 2017-08-04 20:18:43 · 1251 阅读 · 1 评论 -
【OpenStack源码分析之一】初探OpenStack
打算开始写一个Openstack的分析系列,其实接触Openstack也比较久了,但是一直没有深入了解,而且因为本人对Python知之甚少,用之甚少,所以想研究Openstack的代码上手就会比较困难,再加上代码量也比较大。 不过还是打算下定决心做一个系列的分析,不会全部看,大概只看NOVA和Neutron两个模块,而且按照我的认知习惯,还是先要了解全局再去深入细节,所以头几篇分析都会集中在Wha原创 2017-07-12 20:52:03 · 2360 阅读 · 1 评论 -
【OpenStack源码分析之八】openstack中虚拟机在线迁移
转自:https://www.ibm.com/developerworks/cn/cloud/library/1508_wangyx_openstacklivemigrate/本文尝试回答与 Live migration 相关的几个问题:Live migration 是什么?为什么要做 Live migration?如何做 Live migration?如果你读完本文,基本了解了这三个问题的答案,转载 2017-07-22 17:52:37 · 2438 阅读 · 0 评论 -
【OpenStack源码分析之七】openstack中的RPC请求分析
转自:http://blog.csdn.net/hhp_hhp/article/details/51497560概述在OpenStack各个项目中,我们通常会用到如下几种RPC请求:RPC.call:发送请求到消息队列,等待返回最终结果。 RPC.cast:发送请求到消息队列,不需要等待最终返回的结果。 RPC.Notifier:发送各类操作消息到队列,不需要等待最终的返回结果。 RPC.ca转载 2017-07-22 17:03:48 · 933 阅读 · 0 评论 -
【OpenVswitch源码分析之三】控制面关键接口与调用流程
控制面总览 上图只是描述了控制面的调用流程,控制面的接口包括如下几各方面: 1. 虚拟设备的生命周期接口 2. 虚拟设备的业务配置接口 3. 二层基础协议的运行启动 4. Openflow协议的运行开启与流表下发 下面就这几个层面的分别简述一下虚拟设备的生命周期接口虚拟设备不同于物理设备,除了FCAPS管理之外还需要对其生命周期进行管理,在OVS中,设备类型被分成了很多类(图中只标注了四原创 2017-07-02 16:48:50 · 1287 阅读 · 0 评论 -
【OpenVswitch源码分析之四】控制面关键接口与调用流程
受限于篇幅,前文只讲述了控制面板关键接口的前两个部分,本篇继续讲述基本二层协议的配置,Openflow的控制又是一个很大的命题,会放到下一篇文章做阐述。 1. 虚拟设备的生命周期接口 2. 虚拟设备的业务配置接口 3. 二层基础协议的运行启动 4. Openflow协议的运行开启与流表下发 本节以BFD的配置为例做讲解,无论是STP,BFD的配置,初始的配置接口都是在vsctl中,原创 2017-07-02 21:15:45 · 2726 阅读 · 0 评论 -
【OpenVswitch源码分析之五】用户空间转发面数据结构与流程
传统交换机是基于MAC表进行转发的,所以OVS也支持MAC学习特性,但是由于OVS也支持Openflow协议作为控制面,其功能就不仅仅是一个二层交换机了。先简单谈谈Openflow由于现在的网络暴露出了越来越多的弊病以及人们对网络性能需求的提高,于是研究人员不得不把很多复杂功能加入到路由器的体系结构当中,例如OSPF,BGP,组播,区分服务,流量工程,NAT,防火墙,MPLS等等。这就使得路由器等交原创 2017-07-06 23:44:18 · 2700 阅读 · 0 评论 -
【OpenStack源码分析之二】RabbitMQ分析
前言正在捋Nova的代码,从服务启动的入口这块就用到了第三方的Oslo_messaging库,可能也是因为消息中间件确实是整个软件的瓶颈,Oslo_messaging试图隔离出消息中间件和应用之间的接口,使得不仅仅可以使用RabbitMQ,也可以使用Kafka等其他中间件。RabbitMQ介绍这里十分感谢anzhsoft的技术专栏http://blog.csdn.net/column/details原创 2017-07-16 18:27:48 · 1741 阅读 · 0 评论 -
【OpenStack源码分析之三】Nova-Compute启动流程分析
Nova架构概览Nova是OpenStack社区最核心的项目,也是社区诞生之时就一直存在的项目,它主要提供计算资源的服务,这个计算资源包含了虚机以及配套的存储,网络等资源。我比较喜欢把OpenStack和Linux做类比,我们知道进程(Task)是处于执行期的程序以及相关资源的总称,如果把虚机类比为进程,Nova就类似于Linux中的进程管理和调度模块。所以Nova会和很多其他的组件交互,不仅包括O原创 2017-07-17 20:31:08 · 5058 阅读 · 0 评论 -
【OpenVswitch源码分析之六】内核空间转发面数据结构与流程
内核态的报文处理起始有不少人已经写了比较详细的分析,这里有SDNLAB的一篇文章(http://www.sdnlab.com/15713.html),这里只是对那些文章再做些总结;内核对报文的处理整体上分为三个大的步骤:报文头的提取流表项的匹配动作的执行 对于报文头的提取,与传统的路由器、交换机不同,OpenFlow的匹配域包含了L2-L4等匹配域。所以其设计了一个数据结构sw_flow_k原创 2017-07-09 17:52:14 · 1073 阅读 · 0 评论 -
【OpenVswitch源码分析之一】背景
什么是OpenVswitch Open vSwitch是基于开源Apache 2 license的多层软件交换机,其目的是实现一个产品级质量的交换平台,其支持标准的管理接口,并开放转发功能接口供编程扩展和控制。 Open vSwitch适于VM环境中的虚拟交换,除了开放标准的控制和可视化接口给虚拟网络层,它还支持跨多个物理服务器的分布式部署,另外OpenVswitch还兼容多个基于Linux的虚原创 2017-06-26 21:44:13 · 1153 阅读 · 0 评论 -
【OpenStack源码分析之六】从虚拟机启动流程看安全认证
前言从7.8号开始分析OpenStack已经有两周了,原本计划一个月分析完Neutron和Nova的,但是捋了下Nova的虚拟机启动流程,尤其是看到popsuper1982仁兄写得虚拟机启动的100个知识点,大概流程是清楚了,但是我没办法再去逐一深究,所以想把这里面再提取几个我关注的知识点研究一下。先借用一下网上的两张图: 虚拟机启动的100个知识点虚拟机启动的整体流程 这里面我比较关注的几个问原创 2017-07-22 10:26:28 · 1259 阅读 · 0 评论 -
【云计算基础技术提高班之一】体系化认识RPC
本文主体源自体系化认识RPC,文章整体写得不错,本文稍作细化,同时更正了部分不实之处。RPC技术在分布式系统中有广泛的使用,因而在云计算平台中也是经常使用的技术,本文体系性地介绍了 RPC 包含的核心概念和技术,希望读者读完文章,一提到 RPC,脑中不是零碎的知识,而是具体的一个脑图般的体系。本文并不会深入到每一个主题剖析,只做提纲挈领的介绍。RPC 最核心要解决的问题就是在分布式系统间,如何执行另原创 2017-09-18 22:27:03 · 848 阅读 · 0 评论