- 浏览: 303135 次
- 性别:
- 来自: 西安
最新评论
-
happyxiaomo:
...
【openstack】openstack的调度(Scheduler) -
linuxgao:
请问,OpenStack在关心消息返回值的情况下,两个队列一发 ...
【架构】关于RabbitMQ -
wangchao719:
zfj_0928 写道引用1. 消息ACK,通知RabbitM ...
【架构】关于RabbitMQ -
zfj_0928:
引用1. 消息ACK,通知RabbitMQ消息已被处理,可以从 ...
【架构】关于RabbitMQ -
zhangwind:
写的好,很感谢!
【架构】关于RabbitMQ
Quantum消息处理流程
1 Paste.deploy配置
2 authtoken
调用kestone进行鉴权。
3 keystonecontext
根据鉴权信息(user_id,tenant_id,roles等),更新请求中的环境上下文。
4 extensions
1) 获取quantum.conf中core_plugin配置的插件类
2) 如果在quantum/extensions/extensions.py中ENABLED_EXTS中有该插件的配置信息,默认如下图:
则加载ext_db_models表示的数据库建模类
3) 加载core_plugin插件类
4) 初始化PluginAwareExtensionManager类及其父类ExtensionManager,两个类的类图如下:
类ExtensionManager初始化主要是加载扩展类目录中的扩展类,代码解析如下:
5) 初始化ExtensionMiddleware
整个初始化过程主要使用从Ruby移植到Python的Routes开发包,用来定义URL和应用程序接口之间的映射,这里不是很懂,网上关于Routes的资料除了官方文档外几乎没有。
def __init__(self, application, ext_mgr=None): self.ext_mgr = (ext_mgr or ExtensionManager( get_extensions_path())) # 定义mapper mapper = routes.Mapper() # extended resources for resource in self.ext_mgr.get_resources(): LOG.debug(_('Extended resource: %s'), resource.collection) for action, method in resource.collection_actions.iteritems(): path_prefix = "" parent = resource.parent conditions = dict(method=[method]) path = "/%s/%s" % (resource.collection, action) if parent: path_prefix = "/%s/{%s_id}" % (parent["collection_name"], parent["member_name"]) with mapper.submapper(controller=resource.controller, action=action, path_prefix=path_prefix, conditions=conditions) as submap: submap.connect(path) submap.connect("%s.:(format)" % path) mapper.resource(resource.collection, resource.collection, controller=resource.controller, member=resource.member_actions, parent_resource=resource.parent) # extended actions action_controllers = self._action_ext_controllers(application, self.ext_mgr, mapper) for action in self.ext_mgr.get_actions(): LOG.debug(_('Extended action: %s'), action.action_name) controller = action_controllers[action.collection] controller.add_action(action.action_name, action.handler) # extended requests req_controllers = self._request_ext_controllers(application, self.ext_mgr, mapper) for request_ext in self.ext_mgr.get_request_extensions(): LOG.debug(_('Extended request: %s'), request_ext.key) controller = req_controllers[request_ext.key] controller.add_handler(request_ext.handler) # 个人理解,开始根据Mapper解析URL,_dispatch()方法根据解析的结果进行处理 self._router = routes.middleware.RoutesMiddleware(self._dispatch, mapper) super(ExtensionMiddleware, self).__init__(application)
对于每一个资源的处理是在quantum/api/v2/base.py/Controller类中
5 quantumapiapp_v2_0
处理类:quantum/api/v2/router.py::APIRouter类
初始化:
1) 根据扩展类的配置更新quantum/api/v2/attributes.py::RESOURCE_ATTRIBUTE_MAP定义的对象属性,因为有的扩展类扩展了标准对象(network, port, subnet)的属性。
2) 同样使用Routes,定义URL和应用接口的映射关系。
3) 在父类的初始化中,同样调用:
self._router = routes.middleware.RoutesMiddleware(self._dispatch, self.map)
发表评论
-
【OpenStack】OpenStack服务的启动
2013-03-15 13:35 12261OpenStack服务的启动 本博客欢迎转发,但请保 ... -
【OpenStack】使用Rest工具向OpenStack消息发送指导
2013-03-13 20:15 3363本博客欢迎转发,但请保留原作者(新浪微博:@孔令贤HW;博客 ... -
【OpenStack】【转】Openstack之Cinder服务初探
2013-03-11 14:22 2088这篇blog是一个同事不久前写的,得到允许后,在此转载 ... -
【OpenStack】创建虚拟机时与Quantum的交互(F版)
2013-02-27 14:33 1793本博客欢迎转发,但请保留原作者(新浪微博:@孔令贤HW;博 ... -
【OpenStack】 Grizzly中的nova-conductor
2013-02-24 11:26 5357OpenStack Grizzly中的nova ... -
【OpenStack】Folsom版Quantum对象模型
2013-02-19 11:43 1533本博客欢迎转发,但请保留原作者信息(@孔令贤HW)!内容系 ... -
【openstack】Quantum(Folsom版)中update_floatingIP流程
2013-02-18 17:56 1292本博客欢迎转发,但请保留原作者信息(@孔令贤HW)!内容系 ... -
【OpenStack】G版中关于Nova的Cell
2013-02-02 03:02 4049本博客欢迎转发,但请保留原作者(新浪微博:@孔令贤HW;博 ... -
【OpenStack】G版Keystone对象模型
2013-02-02 01:14 3390本博客欢迎转发,但请保留原作者信息(@孔令贤HW)!内 ... -
【OpenStack】Grizzly版本中Scheduler filter机制详解
2013-01-26 18:11 2576Grizzly版本中Scheduler filter机制详 ... -
【OpenStack】Grizzly目前版本相对于Folsom的变更
2013-01-24 10:05 2961本博客欢迎转发,但请保留原作者(新浪微博:@孔令贤HW;博 ... -
Grizzly中的LoadBalancer初步分析
2013-01-22 09:41 2140Grizzly中的LoadBalancer初步分析 ... -
OpenStack网络知识片断(持续更新)
2012-12-26 16:14 13303OpenStack网络知识片断(持续更新) ... -
Quantum中的L3模型实战
2012-12-20 09:01 5053Quantum中的L3模型实战 ... -
在OpenStack使用XenServer资源池浅析
2012-12-13 13:33 3056在OpenStack使用XenServer资源池浅析 ... -
使用Komodo远程调试python(OpenStack)
2012-12-10 14:42 7188使用Komodo远程调试python(OpenStack) ... -
如何在openstack环境中实现定制化功能
2012-12-03 20:02 2757本博客欢迎转发,但请保留原作者(@孔令贤HW)信息!内容系本 ... -
由浅入深(源码)分析nova的资源刷新机制
2012-11-30 17:06 5132本博客欢迎转发,但请保留原作者(@孔令贤HW)信息!内容系本 ... -
【转】Ubuntu12.04 OpenStack Folsom 安装(VLAN模式)
2012-11-27 16:45 4003Ubuntu12.04 OpenStack Folsom ... -
【openstack】Nova中的policy
2012-11-10 13:32 3987Nova中的policy 本博 ...
相关推荐
综上所述,这份文档提供了关于 OpenStack Quantum(Neutron)的全面介绍和深入指导,不仅涵盖了基本的安装配置流程,还深入探讨了许多高级特性和配置选项。对于希望深入了解并有效利用 OpenStack Networking 的管理...
### OpenStack Quantum网络模型介绍 #### 一、OpenStack Essex架构回顾 OpenStack Essex作为早期版本之一,在架构设计上相对简单。在Essex版本中,网络功能主要由`nova-network`组件来实现,该组件负责处理虚拟机...
3. 创建虚拟机流程:用户发起创建虚拟机的请求后,OpenStack 会将请求交于后续服务开始处理,包括认证、网络、存储、镜像等服务的参与。 4. 认证通过:用户的认证信息会被传递给 Keystone 服务,以获取后续操作的 ...
Quantum的工作流程主要包括以下几个步骤: 1. **创建网络**:首先在Quantum中定义逻辑网络。 2. **创建端口**:为特定的虚拟机或接口创建网络端口。 3. **连接接口**:将创建好的端口与虚拟机的网络接口相连接。 ...
- **故障处理流程**:识别故障现象、收集相关信息(如日志、配置文件等)、分析原因、采取措施解决故障。 #### 三、OpenStack故障处理工具 - **监控工具**:如Ceilometer用于监控资源使用情况。 - **日志工具**:...
openstack Neutron 简析
### OpenStack + Quantum 之 OVS 配置详解 #### 概述 OpenStack 是一个开源的云操作系统,Quantum(现在称为 Neutron)是 OpenStack 的网络服务组件,负责管理虚拟网络基础设施。Open vSwitch (OVS) 是一种高性能的...
### 云计算系统安装OpenStack之Essex+Quantum完整篇 #### 一、引言 随着互联网技术的发展,云计算已成为企业信息化建设的重要组成部分。而构建一个稳定可靠的私有云平台,成为了众多企业和个人关注的焦点。本文将...
Openstack_Folsom_quantum网络虚拟化
本文档生产环境中如何使用kolla快速部署openstack,实现短周期内搭建生产可用的私有云平台。
Openstack 的各个组件相互之间是通过网络来进行互联互通,不同的组件理论上都可以 部署在不同的节点上,可以通过一些的额外的步骤来提高 openstack 的可用性。基于我们的 实验环境和现实情况,我们选择了官网推荐的...
4. 部署rabbitmq消息队列:rabbitmq是OpenStack中用来处理消息传递的组件。 - 所有控制节点安装rabbitmq和erlang软件包。 - 查看集群状态和插件,配置和检查Web管理界面。 - 修改默认用户密码,添加OpenStack用户并...
openstack-nova openstack-glance openstack-keystone openstack-quantum \ openstack-swift* openstack-dashboard openstack-utils memcached qpid-cpp-server \ rabbitmq-server mysql-server avahi ``` 这里值得...
第3篇主要从源码剖析的角度讲解了Keystone、Swift、Quantum和Nova重要组件的设计思想与实现方法;第4篇介绍了如何利用OpenStack进行扩展开发,包括如何在OpenStack平台上搭建Hadoop,对Nova进行扩展,以及如何开发...
OpenStack 由六个核心服务和多个可选服务组成,分别负责处理核心云计算服务,包括计算、网络、存储、身份和镜像服务。 六个核心服务分别是: 1. Keystone:认证所有 OpenStack 服务并对其进行授权,同时也是所有...
OpenStack 核心组成主要有对象存储(Swift)、计算管理(Nova)、网络管理(Quantum)、块存储(Cinder)、镜像管理(Glance)、身份认证(Keystone)和管理界面(Horiaon)。 OpenStack 的安装方法有多种,包括...
《OpenStack开源云王者归来:云计算虚拟化Nova、Swift、Quantum与Hadoop》按照入门、剖析、扩展的讲授方式,由浅入深地介绍了开源云计算平台OpenStack(Grizzly版本)的整体框架、安装部署、源码剖析及扩展开发。...
OpenStack是一个开源的云计算平台,用于...通过深入研究源码,可以掌握OpenStack的工作流程,为自定义功能或优化性能提供可能。此外,参与社区的开发活动,阅读官方文档和相关博客,也是学习OpenStack源码的好方法。
书中首先介绍了PXE和网络相关的内容,接着介绍了nova-network安装模式、Quantum安装模式、Quantum GRE模式等,然后讨论了Cinder部件、中央存储与虚拟机运态迁移、云服务的开放EC2接口、RabbitMQ的集群冗余架构等,...
4. **RABBITMQ消息队列服务安装**:RabbitMQ作为OpenStack的消息传递中间件,负责在不同服务之间传递信息,实现异步处理和解耦。 5. **PYTHON-NOVACLIENT库安装**:这个Python库是与Nova计算服务交互的客户端工具,...