自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (11)
  • 收藏
  • 关注

原创 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 9654 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 22413 11

原创 openstack nova 基础知识——scheduler的filter和weight

一开始在没有看源码的时候,看了下官方文档的Filter Scheduler,知道过滤(filter)是怎么回事,但是那个weight是什么意思始终没看明白,现在看下源码发现也挺简单的。Scheduler做的工作就是在创建实例(instance)时,为实例找到合适的主机(host),这个过程分为两步:首先是过滤(filter),从所有的主机中找到符合实例运行条件的主机,然后从过滤出来的主机中,找

2012-08-21 05:48:48 7781

原创 openstack nova 基础知识——从源码看一个服务是如何启动的

nova中服务分为两种:Service和WSGIService,后者我还不清楚是用来做什么工作的,但是前者看了一下bin中的代码,知道了它是scheduler, compute, network等这些组件所使用的服务。相对这两种服务,就有两种加载的方法:ServiceLauncher和ProcessLauncher,看代码这两者的主要区别是前者放到了绿色线程中,后者则是用os.fork()出来

2012-08-21 03:28:11 6672 3

原创 openstack nova 基础知识——rpc回调机制(callback)

前几篇已经知道了nova中消息是怎么发送和接收的了,但是不太明白消息被接收之后,是怎么处理的,看代码中消息接收那块传递的参数不是proxy就是callback,或者是callbacks,这个回调方法到底调用的是哪的方法呢?从一个服务的启动程序上看,有这样一段代码:rpc_dispatcher = self.manager.create_rpc_dispatcher()self.conn

2012-08-21 02:47:14 8317 1

原创 openstack nova基础知识——rpc模块中的kombu

nova中的rpc模块并没有直接使用kombu,而是又对它进行了一次封装,封装的主要是发送者和接收者,在nova中,封装成了两个类:Publisher和ConsumerBase,并且根据这两个类派生出了DirectPublisher, DirectConsumer, TopicPublisher, TopicConsumer等子类,使操作更加的方便。一直就觉得Exchange和发送者的关系很密

2012-08-18 11:12:43 5682 2

原创 openstack nova 基础知识——Kombu

Kombu是一个AMQP(Advanced Message Queuing Protocol)消息框架。所谓框架,就是一个软件的半成品,是为了提高开发效率而开发的。AMQP是一个协议,而RabbitMQ是对这个协议的一个实现。Kombu和RabbitMQ的关系是什么呢?我觉得就好像javaAPI和Structs/Hibernate这些框架的关系一样,Kombu对Rabb

2012-08-17 07:28:03 8741 2

原创 openstack nova基础知识——RabbitMQ

nova中各个组件之间的交互是通过“消息队列”来实现的,其中一种实现方法就是使用RabbitMQ,对RabbitMQ的使用,官方文档上有一个非常好的Get Started,由浅及深,结合例子,很容易理解。现在对RabbitMQ的理解,就是利用它可以非常灵活的定制自己想要实现的消息收发机制。其中,有这样几个角色:producer, consumer, exchange, queueprodu

2012-08-17 06:20:11 9111

原创 openstack nova 基础知识——cfg

纠结了两天,才把nova中的配置文件的管理和命令行的解析了解了一个大概,在nova中,很多地方都用到了cfg这个模块。现在的分析,只是还在表面上,没有深入到实质性的内容,而且,有很多不清楚的地方,这个不清楚的地方,主要是不知道它用来是做什么的,以及怎么去用它。不过随着慢慢的深入,会越来越清楚的。我觉得cfg模块的主要作用有两个:一个是对配置文件进行解析,一个是对命令行参数进行解析,

2012-08-11 03:29:19 10531 1

原创 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 5512

原创 openstack nova 基础知识——wsgi

激励自己的话:在微博上看到一句话:一件事成功的概率只有1%,但是要是做上100遍的话,成功的概率将会是63%,这句话对现在的我真是一个极大的鼓励。正文:在nova源码中看到了wsgi这个模块,不懂,于是谷歌去,又全是英文啊!官方网站:http://wsgi.readthedocs.org/en/latest/index.html1.  什么是wsgi?W

2012-08-07 07:08:17 6370

原创 openstack nova 基础知识——eventlet

激励自己的话:站在nova的源码面前,不知该从何处开始,木有资料,木有人指导,只能自己去摸索。nova中,除了mysql是我以前就熟知的之外,其它全是陌生,这对我来说,真是一个不小的挑战。另外,就是看英文文档,就好像干嚼馒头一样,嚼得久了,才会觉得它甜,这也实在是没有办法。登山的乐趣不在于到达山顶,而在于到达山顶的过程中,在此记录这个过程,希望我可以走到最后!申明:这里

2012-08-07 03:38:25 23825 6

原创 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 2007

原创 python学习笔记(3)

43、函数(1)若函数没有返回值,则默认的返回值是None(2)装饰器装饰器实际就是函数,它接受函数对象。我们在执行函数之前,可以运行些预备代码,也可以在执行代码之后做些清理工作。这类似于java中的AOP,即面向切面编程,可以考虑在装饰器中置入通用功能的代码来降低程序复杂度。例如,可以用装饰器来:引入日志、增加计时逻辑来检测性能、给函数加入事务的能力1. 无参装饰器:@deco

2012-08-03 22:03:03 1615

原创 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 2990 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 3373

openstack 服务重启/调试 脚本

openstack 服务重启/调试 脚本, 针对devstack环境

2012-12-22

数据重现+文件系统原理精解与数据恢复最佳实践.马林

数据重现+文件系统原理精解数据重现+文件系统原理精解与数据恢复最佳实践.

2012-09-30

汇编语言王爽

汇编语言王爽

2012-09-30

openstack nova cfg

openstack nova cfg

2012-08-11

Struts2.2.3.1帮助文档,免积分下载

Struts2.2.3.1帮助文档,chm格式,免积分下载

2011-11-05

Boson NetSim for CCNP v6.0.Beta2b以及注册机和帮助文档

里面有Boson NetSim for CCNP v6.0.Beta2b以及注册机和帮助文档,全都安装测试过,可以注册使用!

2011-10-13

数据结构全部程序打包下载

这是和数据结构相关的程序,每一章都有相关的源代码,适合刚学习数据结构的同学使用,好好学习哦!您也可以到这里免积分下载:http://bbs.quanlaila.com/thread-1947-1-1.html

2011-09-25

拓扑排序的C++源代码

拓扑排序的源代码,是用栈来实现的拓扑排序,是很基础的东西。

2010-12-01

哈夫曼树及哈夫曼编码

这个资源是哈夫曼树及哈夫曼编码的C++代码,我觉得哈夫曼编码很有用,这就是技术使之然!

2010-11-16

用线性表实现的通讯录,C++代码实现

用线性表写的通信录管理系统,资源只是把源代码写出来,并没有设计界面!代码写的也比较粗陋,适合刚学C++和数据结构的同学使用!

2010-11-13

单链表C++代码实现、插入、删除结点等

单链表C++代码实现、插入、删除结点等,还有有关单链表的练习作业题

2010-10-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除