![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Clouds
hackerain
这个作者很懒,什么都没留下…
展开
-
openstack nova 基础知识——cfg
纠结了两天,才把nova中的配置文件的管理和命令行的解析了解了一个大概,在nova中,很多地方都用到了cfg这个模块。现在的分析,只是还在表面上,没有深入到实质性的内容,而且,有很多不清楚的地方,这个不清楚的地方,主要是不知道它用来是做什么的,以及怎么去用它。不过随着慢慢的深入,会越来越清楚的。我觉得cfg模块的主要作用有两个:一个是对配置文件进行解析,一个是对命令行参数进行解析,原创 2012-08-11 03:29:19 · 10498 阅读 · 1 评论 -
python学习笔记(2)
37、列表(1)添加新的元素,注意不能使用+号来添加元素,+号的使用级别是列表,即两个操作数都是列表的情况下才可以连接:>>> s=[1,2,3,4]>>> s.append(5)>>> s[1, 2, 3, 4, 5]>>> (2)序列类型函数sorted() and reversed():sorted()只是对s进行排序,并没有改变s的真实顺序>>>s=[4,5,43,原创 2012-08-03 22:01:01 · 2979 阅读 · 2 评论 -
python学习笔记(1)
1、在Python 语言中,对象是通过引用传递的。在赋值时,不管这个对象是新创建的,还是一个已经存在的,都是将该对象的引用(并不是值)赋值给变量。 如:x=1 1这个整形对象被创建,然后将这个对象的引用赋值给x这个变量2、多元赋值,其实就是元组赋值x,y,z=1,2,'string' 等价于 (x,y,z)=(1,2,'string')利用多元赋值实现的两个变量的值交原创 2012-08-03 21:52:13 · 3366 阅读 · 0 评论 -
python——metaclass
元类一般用于创建类。在执行类定义时,解释器必须要知道这个类的正确的元类。解释器会先寻找类属性__metaclass__,如果此属性存在,就将这个属性赋值给此类作为它的元类。如果此属性没有定义,它会向上查找父类中的__metaclass__.如果还没有发现__metaclass__属性,解释器会检查名字为__metaclass__的全局变量,如果它存在,就使用它作为元类。否则, 这个类就是一个传统类原创 2012-11-28 10:52:26 · 5032 阅读 · 0 评论 -
policy机制中经典的python用法
由于接触python时间还不长,属于边用边学,在看项目代码的时候,遇到了很多不太懂的python语法,但是我认为这些用法用的实在是好,希望以后自己在写程序时,也能写出这么经典的代码,在这里记录下来这些:1. 将函数名作为参数传递给另一个模块中的函数使用:def init(): ...... #read_cached_file做的事是读取_POLICY_PATH文件中的数据,原创 2012-11-30 12:33:27 · 3824 阅读 · 0 评论 -
openstack nova 基础知识——policy
终于到了可以总结的时候了,policy本身的实现机制并不难,对我来说,难就难在python语法上,policy用到了很多高级的语法,逻辑性比较复杂,要理清其中的关系,还是要费一番功夫的。为此,还总结了另一篇blog,介绍了一下policy中用到的较为经典的语法。1. 首先还是先来了解一下什么是policy,它是用来做什么的在openstack的用户管理中,有三个概念:Users原创 2012-11-30 00:43:34 · 13178 阅读 · 9 评论 -
openstack nova 基础知识——从源码看一个服务是如何启动的
nova中服务分为两种:Service和WSGIService,后者我还不清楚是用来做什么工作的,但是前者看了一下bin中的代码,知道了它是scheduler, compute, network等这些组件所使用的服务。相对这两种服务,就有两种加载的方法:ServiceLauncher和ProcessLauncher,看代码这两者的主要区别是前者放到了绿色线程中,后者则是用os.fork()出来原创 2012-08-21 03:28:11 · 6648 阅读 · 3 评论 -
使用pdb调试openstack (How to debug openstack using pdb )
终于摸索出了一个调试openstack的简单方法,使用pdb进行单步调试,对于分析代码很有帮助。注意,这个方法只适用于用devstack安装的openstack。调试主要是使用了一个脚本,这个脚本不记得是从哪下载的了,是用来重启使用devstack安装的openstack的各个服务的,后来,我又结合devstack的stack.sh和unstack.sh的脚本,向里面添加了一点内容,添加的功能原创 2012-12-22 17:56:55 · 9765 阅读 · 9 评论 -
网络IO控制——Quality of Service
早上没吃饭,坐在公司里测试,等结果等的太无聊,翻译一下libvirt上的关于网络IO控制的一点内容。希望翻译完,就可以吃饭了。原文如下: ... ...This part of interface XML provides setting quality o翻译 2013-01-30 13:49:30 · 4517 阅读 · 2 评论 -
My OpenStack Weekly Reports——社区
接触openstack社区的时间已经不短了,但是也就是在近段时间,我才感受到开源社区的魅力。一个词形容我的心情:开心要我说openstack社区里,最吸引人的地方,是下面的4个:1. maililg list以前吧,从来就不知道还有邮件列表这个东西,还以为老外都用MSN,像QQ一样开个高级群,都在里面讨论,传个文件啥的也方便,唉,太幼稚了。。。邮件列表中“会话”这个功能原创 2013-01-11 17:18:51 · 2610 阅读 · 8 评论 -
Openstack Nova Security Group——安全组之架构篇
哈,又回来了!公司同事说不要只停留在逻辑层,你要对跑在你程序底下的数据流也要非常的清楚。但是这里还是先介绍一下逻辑层,在代码的角度看是如何实现这个功能的,关于底层的数据流,还需要哦酝酿一段时间,之后会再总结一篇底层数据流的文章,真难为我了!一、什么是安全组安全组,翻译成英文是 security group。安全组是一些规则的集合,用来对虚拟机的访问流量加以限制,这反映到原创 2013-03-12 17:39:25 · 19259 阅读 · 3 评论 -
Horizon学习笔记
horizon牛逼吊炸天!程序的入口点在horizon/openstack_dashboard/urls.py中:url(r'', include(horizon.urls))然后由Horizon这个单例的Site对象,开始加载urls,自动发现并注册dashboard,然后对每一个dashboard,再自动发现并注册panel:```Horizon._lazy_u原创 2014-05-16 00:52:55 · 7049 阅读 · 2 评论 -
python学习笔记(3)
43、函数(1)若函数没有返回值,则默认的返回值是None(2)装饰器装饰器实际就是函数,它接受函数对象。我们在执行函数之前,可以运行些预备代码,也可以在执行代码之后做些清理工作。这类似于java中的AOP,即面向切面编程,可以考虑在装饰器中置入通用功能的代码来降低程序复杂度。例如,可以用装饰器来:引入日志、增加计时逻辑来检测性能、给函数加入事务的能力1. 无参装饰器:@deco原创 2012-08-03 22:03:03 · 1613 阅读 · 0 评论 -
python学习笔记(4)
44、模块(1)修改搜索路径在交互模式下修改sys.path,将自己写的模块所在的目录放到这个搜索路径中,那么解释器就可以找到在这个路径下所定义的模块了,示例:>>>import sys>>> sys.path.append(r'E:\My DBank\python\py\mymodule')若要移除这个路径,那么可以使用列表中的pop()方法(2)名称空间名称空间是名称(标识符原创 2012-08-03 22:06:03 · 2003 阅读 · 0 评论 -
python中的装饰器——@
对装饰器本来就一知半解的,今天终于弄清楚了,python中的装饰器是对装饰者模式的很好运用,简化到骨子里了。python中为什么需要装饰器,看这里:http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.htmlpython原理解释,看这里:http://www.openstack.org.cn/bbs/forum.原创 2012-08-08 10:28:59 · 5480 阅读 · 0 评论 -
openstack nova 基础知识——wsgi
激励自己的话:在微博上看到一句话:一件事成功的概率只有1%,但是要是做上100遍的话,成功的概率将会是63%,这句话对现在的我真是一个极大的鼓励。正文:在nova源码中看到了wsgi这个模块,不懂,于是谷歌去,又全是英文啊!官方网站:http://wsgi.readthedocs.org/en/latest/index.html1. 什么是wsgi?W原创 2012-08-07 07:08:17 · 6335 阅读 · 0 评论 -
openstack nova 基础知识——eventlet
激励自己的话:站在nova的源码面前,不知该从何处开始,木有资料,木有人指导,只能自己去摸索。nova中,除了mysql是我以前就熟知的之外,其它全是陌生,这对我来说,真是一个不小的挑战。另外,就是看英文文档,就好像干嚼馒头一样,嚼得久了,才会觉得它甜,这也实在是没有办法。登山的乐趣不在于到达山顶,而在于到达山顶的过程中,在此记录这个过程,希望我可以走到最后!申明:这里原创 2012-08-07 03:38:25 · 23770 阅读 · 6 评论 -
openstack nova基础知识——RabbitMQ
nova中各个组件之间的交互是通过“消息队列”来实现的,其中一种实现方法就是使用RabbitMQ,对RabbitMQ的使用,官方文档上有一个非常好的Get Started,由浅及深,结合例子,很容易理解。现在对RabbitMQ的理解,就是利用它可以非常灵活的定制自己想要实现的消息收发机制。其中,有这样几个角色:producer, consumer, exchange, queueprodu原创 2012-08-17 06:20:11 · 9083 阅读 · 0 评论 -
openstack nova 基础知识——Kombu
Kombu是一个AMQP(Advanced Message Queuing Protocol)消息框架。所谓框架,就是一个软件的半成品,是为了提高开发效率而开发的。AMQP是一个协议,而RabbitMQ是对这个协议的一个实现。Kombu和RabbitMQ的关系是什么呢?我觉得就好像javaAPI和Structs/Hibernate这些框架的关系一样,Kombu对Rabb原创 2012-08-17 07:28:03 · 8722 阅读 · 2 评论 -
openstack nova基础知识——rpc模块中的kombu
nova中的rpc模块并没有直接使用kombu,而是又对它进行了一次封装,封装的主要是发送者和接收者,在nova中,封装成了两个类:Publisher和ConsumerBase,并且根据这两个类派生出了DirectPublisher, DirectConsumer, TopicPublisher, TopicConsumer等子类,使操作更加的方便。一直就觉得Exchange和发送者的关系很密原创 2012-08-18 11:12:43 · 5661 阅读 · 2 评论 -
openstack nova 基础知识——rpc回调机制(callback)
前几篇已经知道了nova中消息是怎么发送和接收的了,但是不太明白消息被接收之后,是怎么处理的,看代码中消息接收那块传递的参数不是proxy就是callback,或者是callbacks,这个回调方法到底调用的是哪的方法呢?从一个服务的启动程序上看,有这样一段代码:rpc_dispatcher = self.manager.create_rpc_dispatcher()self.conn原创 2012-08-21 02:47:14 · 8292 阅读 · 1 评论 -
openstack nova 基础知识——scheduler的filter和weight
一开始在没有看源码的时候,看了下官方文档的Filter Scheduler,知道过滤(filter)是怎么回事,但是那个weight是什么意思始终没看明白,现在看下源码发现也挺简单的。Scheduler做的工作就是在创建实例(instance)时,为实例找到合适的主机(host),这个过程分为两步:首先是过滤(filter),从所有的主机中找到符合实例运行条件的主机,然后从过滤出来的主机中,找原创 2012-08-21 05:48:48 · 7750 阅读 · 0 评论 -
openstack nova基础知识——libvirt和qemu(2)
前一篇介绍了qemu的基本使用,使用virsh或者virtual manager来管理虚拟机,但没有涉及到libvirt API,这里就使用libvirt的python API来演示一下虚拟机的创建。看nova的源码,关于虚拟机管理的模块是virt,libvirt就是其中的一个包,这个包中包含了使用libvirt管理虚拟机的所有API,看一下下面的示意图:libvirt.dri原创 2012-08-26 14:51:00 · 9631 阅读 · 2 评论 -
openstack nova 基础知识——libvirt和qemu(1)
又纠结了几天,终于到了可以写文章记录下来的时刻了。简单的讲,nova最核心的功能就是对一大堆的虚拟机进行管理,虚拟机可以是各种各样(kvm, qemu, xen, vmware...),而且管理的方法也可以是各种各样(libvirt, xenapi, vmwareapi...),因为我的电脑不支持CPU的VT,而且以前在visualbox中装openstack,也只能使用qemu,所以这次测试原创 2012-08-26 06:22:04 · 22375 阅读 · 11 评论 -
openstack nova 基础知识——Quota(配额管理)
很久没有写博客了,之前在学校的一段时间比较堕落,坐着火车从南到北,穿越长江黄河,来到了一片新的天地。在这里,不管男的女的,老的少的,在吃饭,在路上,我听到的不再是“游戏”这个永久不变的话题,更多的是在讨论“内核”、“高效”、“这段代码”、“这个算法”等等这些技术性的话题。我的想法是对的,我的选择是对的,很喜欢现在的环境,在这样的环境里,会让我成长更快。正文:一、什么是配额(quota)管理原创 2012-11-26 01:08:11 · 29145 阅读 · 13 评论 -
python----yield
包含了关键字"yield"的函数就不是普通的函数。当含有这个关键字的函数被调用的时候,这个函数在遇到yield的时候会停止运行,并且返回一个迭代器(iterator)。每次请求一个值,就会执行生成的代码。直到遇到一个yield或者return。首先,我们先了解什么是迭代器。 lst=[1,2,3,4,5]for i in lst print i从这个例子我们可以看的出转载 2012-11-27 17:53:47 · 1879 阅读 · 0 评论 -
Ceilometer Distributed Alarm
Ceilometer Alarm是H版新添加的功能,监控报警是云平台不可缺少的部分,Ceilometer已经实现了比较完善的监控体系,报警怎么能缺少呢?用过AWS CloudWatch Alarm的人应该不会对Ceilometer的Alarm感到陌生,Ceilometer实现的Alarm和CloudWatch的Alarm很像,概念基本上都一样,Alarm的逻辑也基本上一样,可以说是一个开源版的Cl原创 2014-07-27 16:09:10 · 7952 阅读 · 7 评论