![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
openstack
文章平均质量分 76
虚拟化现实
这个作者很懒,什么都没留下…
展开
-
OpenStack之Nova分析——Nova Scheduler服务启动
在继续介绍Nova虚拟机创建过程之前,我们来穿插一个很重要的内容,这就是Nova组件的“大脑”——Nova Scheduler(调度器)。它是我们后续分析虚拟机创建的基础。这个子服务的作用前面已经介绍过,从其名称也可以看出该子服务就是负责调度各子服务工作的。Nova Scheduler属于RPC服务(至于什么是RPC服务可以关注我之前的文章),这篇文章我们先来分析一下Nova Schedule原创 2015-01-27 16:16:00 · 4454 阅读 · 0 评论 -
OpenStack Eventlet分析(一)
转自http://blog.csdn.net/gaoxingnengjisuan/article/details/12913275本来打算总结一下eventlet在OpenStack中的应用,正巧在网上找到几篇别人已经总结好的资料,而且总结的很好,这里直接转载过来。同时也向作者表示感谢。 Eventlet库在OpenStack服务中上镜率很高,尤其是在服务的多线程和WSGI Se转载 2015-01-19 14:34:23 · 815 阅读 · 0 评论 -
OpenStack之Nova分析——创建虚拟机(六)
接着上篇文章谈到的,这篇文章我们继续,来分析ComputeManager类下的_spawn方法。class ComputeManager(manager.SchedulerDependentManager): def _spawn(self, context, instance, image_meta, network_info, block_devi原创 2015-02-06 14:32:37 · 1729 阅读 · 0 评论 -
OpenStack之调试——Pdb调试
用pdb调试有多种方式可选:1. 命令行启动目标程序,加上-m参数,这样调用myscript.py的话断点就是程序的执行第一行之前python -m pdb myscript.py2. 在Python交互环境中启用调试>>> import pdb>>> import mymodule>>> pdb.run(‘mymodule.test()’)3. 比较常用的,就转载 2015-02-09 11:11:09 · 1571 阅读 · 0 评论 -
OpenStack之Nova分析——创建虚拟机(八)
前面几篇文章已经通过大量的篇幅分析了虚拟机的创建过程原创 2015-02-13 15:50:09 · 2296 阅读 · 0 评论 -
OpenStack之Nova分析——Nova Compute定时任务(一)
我们在分析虚拟机的创建和Nova Scheduler调度算法中,其实已经涉及到了Nova Compute服务的一些内容,不过Nova Compute服务完成的工作要更多。这篇文章我们来详细的分析一下Nova Compute服务的一个重要内容——定时任务。在前面分析Nova Scheduler调度算法中,大家是否还记得在HostManager对象中有两个重要的变量:1. host_state原创 2015-02-16 09:05:27 · 2539 阅读 · 0 评论 -
OpenStack之Nova分析——Nova API服务
Nova是OpenStack中最核心的组件,可以说OpenStack中的其它组件都是为Nova服务的。所以Nova也是OpenStack最复杂的组件。Nova服务由多个子服务组成,这些子服务通过RPC实现通信,而其它组件(如glance等)是通过Nova对外提供的API,实际上就是RESTful API,实现与Nova的通信。所以可以看到,前面提到的OpenStack应用的两种通信方式(RPC、R原创 2015-01-19 15:51:01 · 2403 阅读 · 1 评论 -
OpenStack之Nova分析——Nova Compute定时任务(二)
这篇文章,我们来详细的分析一下Nova Compute服务的update_available_resource定时任务。update_available_resource定时任务的主要功能是定时更新Nova Compute服务所管理的计算节点的资源信息,它对应的周期方法就是ComputeManager类的update_available_resource方法。来看一下update_avai原创 2015-03-03 09:23:55 · 2620 阅读 · 0 评论 -
OpenStack之Nova分析——Nova Compute定时任务(三)
上篇文章我们分析了update_available_resourced定时任务,这篇文章我们来继续分析Nova Compute定时任务——report_driver_status和publish_service_capabilities定时任务。report_driver_status定时任务的主要功能是定时更新ComputeManager对象缓存的计算节点的capabilities信息。一个原创 2015-03-03 17:34:29 · 1417 阅读 · 0 评论 -
OpenStack之Nova分析——创建虚拟机(七)——创建虚拟机镜像文件
虚拟机的镜像文件主要是指磁盘镜像文件,当然有的还包括ramdisk和kernel镜像来配合磁盘镜像文件使用,这篇文章我们来重点分析一下创建虚拟机镜像的整个过程。先来概述一下整个流程:1. LibvirtDriver类中的_create_img方法,完成虚拟机镜像文件的创建工作的准备工作后,调用Qcow2类的cache方法。2. Qcow2类的cache方法调用create_image方原创 2015-02-09 09:29:05 · 2900 阅读 · 0 评论 -
Horizon二次开发
注:openstack horion项目和其他的项目有所不同,它主要提供一套工具,我们可以自己定制开发我们想要的dashboard(控制面板)。翻译自:http://docs.openstack.org/developer/horizon/topics/tutorial.html翻译 2015-04-02 09:07:04 · 4894 阅读 · 1 评论 -
keystone性能优化
openstack采用了token认证的机制,各api的调用都会涉及到token的验证问题,使得keystone成为一个性能的瓶颈。token的验证环节包括:验证请求中包含的token是否有效、过期,该token对应的用户组和用户id,对应的授权服务访问地址等。性能瓶颈的解决-1:由于openstack中的各api都是wsgi服务,并且都用到了keystoneclient提供的一个中间原创 2015-05-25 17:07:21 · 3612 阅读 · 0 评论 -
OpenStack之RESTful API调用(二)
接着上面的文章,我们继续来谈原创 2015-01-17 20:45:27 · 2117 阅读 · 0 评论 -
OpenStack之Nova分析——创建虚拟机(五)
上篇两篇文章分析了Nova Scheduler服务,这篇文章我们继续来分析创建虚拟机的过程。先来回顾一下。class FilterScheduler(driver.Scheduler): def scheduler_run_instance(self, context, request_spec, admin_passwor原创 2015-02-05 11:00:17 · 1815 阅读 · 0 评论 -
OpenStack之Nova分析——Nova Scheduler调度算法
上篇文章介绍了Nova Scheduler服务的启动流程,我们知道Nova Scheduler服务作为一个调度者,其核心便是调度算法。这篇文章我们就来分析一下Nova Scheduler服务的调度算法吧。在配置文件中,调度算法默认的驱动类是FilterScheduler,该类位于nova/nova/scheduler/filter_scheduler.py中。其算法的原理是比较简单的,就是“过原创 2015-01-28 16:14:34 · 7382 阅读 · 0 评论 -
openstack集群架构
来到云计算&云存储团队已经小半年了,摸索openstack也快半年了,总觉得是时候该把学到的东西总结一下了。以下博文都是个人的一些心得,有不妥的地方还望列为技术大师不吝赐教。关于openstack架构等相关概念就不在这介绍了(这些东西资料一大坨,都被说烂了)。首先来看一下我们的openstack部署架构吧。原创 2014-12-08 16:00:18 · 3172 阅读 · 3 评论 -
[RabbitMQ+Python入门经典] 兔子和兔子窝
RabbitMQ作为一个工业级的消息队列服务器,在其客户端手册列表的Python段当中推荐了一篇blog,作为RabbitMQ+Python的入门手册再合适不过了。不过,正如其标题Rabbit and Warrens(兔子和养兔场)一样,这篇英文写的相当俏皮,以至于对于我等非英文读者来说不像一般的技术文档那么好懂,所以,翻译一下吧。翻译过了,希望其他人可以少用一些时间。翻译水平有限,不可能像原转载 2014-12-09 16:02:44 · 1402 阅读 · 0 评论 -
nova-network网络模式
作为openstack中的核心组件,nova肩负着管理虚拟机的使命。nova提供nova-api,nova-scheduler,nova-network等几个重要的服务。而其中nova-network是openstack网络管理模块neutron还没有独立出来时候的前身,当然其功能就是网络和地址管理,它会创建虚拟网络,原创 2014-12-05 16:55:48 · 2941 阅读 · 0 评论 -
OpenStack之RPC调用(一)
众所周知,OpenStack的通信方式有两种,一种是基于HTTP协议的RESTFul API方式,另一种则是RPC调用。两种通信方式的应用场景有所不同,在OpenStack中,前者主要用于各组件之间的通信(如nova与glance的通信),而后者则用于同一组件中各个不同模块之间的通信(如nova组件中nova-compute与nova-scheduler的通信)。关于OpenStack原创 2015-01-13 09:00:35 · 5781 阅读 · 1 评论 -
OpenStack之RPC调用(二)
我们接着上篇博文,下面来分析一下客户端4. 客户端:向主题服务器发送RPC请求主题消费者创建完成后,客户端就可以向RabbitMQ服务器发送RPC请求了。还是先来看一下client.pyclinet.py原创 2015-01-14 16:59:23 · 1249 阅读 · 0 评论 -
OpenStack之Nova分析——创建虚拟机(三)
继续上篇文章谈到的_get_project_quotas方法,进入这个方法。def get_project_quotas(self, context, resources, project_id, quota_class=None, defaults=True, usages=T原创 2015-01-23 16:38:11 · 1338 阅读 · 0 评论 -
OpenStack之Nova分析——创建虚拟机(二)
接着上篇文章,我们来继续分析_create_instance方法。这个方法定义在nova/nova/compute/api.py中。class API(base.Base): def _create_instance(self,context,instance_type, ...): ... #验证原创 2015-01-22 10:11:11 · 1710 阅读 · 0 评论 -
OpenStack之Nova分析——创建虚拟机(四)
上篇文章我们分析完了_validate_and_provision_instance方法,回到_create_instance方法,我们来回顾一下这个方法class API(base.Base): def _create_instance(self,context,instance_type, ...): .原创 2015-01-27 15:01:00 · 1426 阅读 · 0 评论 -
OpenStack Eventlet分析(二)
转自http://blog.csdn.net/gaoxingnengjisuan/article/details/12914831上一篇博客OpenStack-Eventlet分析(1)以eventlet库中的spawn函数为代表,详细的介绍了spawn函数的运行过程。最终的重点是在hubs用来进行调度的一面,而hubs关于网络的一面还没有涉及。然而,上一篇只专注于每一行代码的执行流程了,转载 2015-01-19 14:44:58 · 643 阅读 · 0 评论 -
OpenStack之RESTful API调用(一)
前面两篇文章分析了OpenStack同一组件下不同模块之间的通信方式——RPC。这篇文章我们来继续看一下OpenStack中的另一种通信方式——RESTful API。在OpenStack中,RESTful API用于不同组件之间的通信。先来简单的了解一下REST吧。REST构建于HTTP协议之上,遵循并扩展和规范了传统HTTP协议中的标准方法,以下是RESTful API定义的标准方法:原创 2015-01-16 09:03:00 · 4058 阅读 · 0 评论 -
OpenStack之Nova分析——创建虚拟机(一)
上篇文章主要介绍了Nova API的启动流程,这篇文章我们来分析一下一个虚拟机的创建产生过程是怎样的。由前一篇文章的分析,我们知道,处理HTTP请求的核心工作实际上都在底层的Controller对象中定义完成。Resource对象只是在Controller的基础上完成的封装,用来实现数据的序列化和反序列化。Controller类中,处理虚拟机创建请求的方法是create,该方法最终调用了Com原创 2015-01-20 16:04:55 · 3742 阅读 · 0 评论 -
OpenStack配额(Quota)设计与实现
配额(Quota)模块在openstack中是一个比较小的模块,具有比较好的扩展性。功能配额能够以user、project以及 quota class 这三个单位计算配额。默认情况下,是以project为计算单元。抽象配额在使用的过程中,抽象出三个概念:资源、驱动、引擎。资源BaseResource定义了一个配额单元的基本属性,如下class BaseRes原创 2015-05-25 16:20:02 · 4274 阅读 · 0 评论