摘要:
实例的实际创建过程是通过调用libvirt函数来完成,在virt/Libvirt/driver.py中spawn方法来完成真正的虚拟机创建过程。View Code 1 def spawn(self, context, instance, image_meta, injected_files, 2 admin_password, network_info=None, block_device_info=None): 3 disk_info = blockinfo.get_disk_info(CONF.libvirt_type, 4 ... 阅读全文
摘要:
以下是我对Openstack的一些自我认识和感想 Openstack看起来很神秘很牛b,但是可以将其进行简单的理解。Openstack其实主要就是一个虚拟机群集管理软件(不考虑Baremetal,其实他也可以管理物理机),管理虚拟机的创建停止等生命周期全过程,制定虚拟机的分配策略(虚拟机如何选择要运行的物理机),进行虚拟机的迁移,分配管理网络,对创建虚拟机的镜像进行统一管理,还有一套用户验证系统等等。这些工作都是管理虚拟机要面对的主要问题,只是Openstack给提供了一个一体化的解决方案。上边的理解不是很全面,但列出了Openstack的一个主要目的,对于认识Openstack还是有帮助的. 阅读全文
摘要:
HorizonSite类代表整个网站,是整个程序结构的集合体。其中HorizonSite类继承自Site类通过类变量实现单件模式,产生全局单一的变量。Site类为一个Container,里边包含dashbord的相关方法,dashboard的注册解析,panel的注册方法,处理各个dashboard目录下的panel的url结构的解析,dashboard,panel相关目录的模块载入,网站的初始化相关信息。 一个site下有多个Dashboard,一个Dashboard下有多个PanelGroup,一个PanelGroup有多个Panel。其中project和admin是Dashboard,. 阅读全文
摘要:
Openstack G版中有一个很有意思的特性就是Baremetal。简单的理解就是裸机部署,使openstack同机器的硬件直接进行交互,将一个物理机看做一个实例,也就是可以通过glance直接将一个img部署到一个没有装操作系统的裸机上。这个特性很令人振奋,使openstack不仅仅停留在虚拟机管理的概念上,而是可以直接管理物理机。 Baremetal中主要用到的技术是PXE技术(实现镜像安装)IPMI技术(实现电源的控制)。还专门实现了对tilera体系的管理。 官方文档给出这种方式的应用场景主要有,部署一个不能虚拟化的主机,为一个数据库实现一个单独的物理机。其中最有用的应该是实现op. 阅读全文
摘要:
在openstack中不管程序内部之间的调用还是,对于openstack中的各种服务的和功能的内部调用,还是外部调用都是通过api的形式来进行的。这里分析一下openstack中的几种常见api类型。 第一种是程序内部的api主要是给本机程序内部使用,如nova_master/nova/compute/api.py文件中的api class主要是为了给manager去调用,其中调用哪个api class也是利用openstack中非常重要的动态载入方法来确定的,非常灵活,我认为这种用法非常向c#,c++这类语言中的面向接口编程,甚至更为灵活,充分利用了动态语言的优点。 一种api是rpc a. 阅读全文
摘要:
Nova在整个openstack中是代码最多的一部分也是最复杂的一部分。如果对这部分代码和架构有比较深的理解,就可以说对整个openstack的程序架构有了一个比较深的理解,这里将分步骤的进行相关的讲解,这一章先从一些核心的概念讲起。 先提一下几个在openstack中非常重要的基本概念Server,Manager,Driver。Server顾名思义就是服务,openstack的各种应用都是以服务的形式暴露出来,openstack中主要有两种服务一种是以linux中的服务守护进程方式存在,一种是WSGIService一种以WSGI标准形式存在的web服务。在这里讨论的server就是第一种形式 阅读全文
摘要:
1记录每个用例执行的时间,内存使用情况,cpu使用情况,可以为性能测试提供帮助(可以通过监控软件或者写程序获得,时间是最重要的,还要考虑监控数据的传输问题)。2采用多任务中心的方式可以避免单节点故障,同时便于管理,可以有不同形式的分支代码任务中心支持不同的组。(通过ip来定位虚拟机,内部ip还是外部ip这需要测试,或者可以定义两者的映射关系)3记录每个实例最后获取test的时间可以帮助判断虚拟机是否挂掉,或者test运行是否挂掉。4.可以用消息队列重写原先代码,也可以直接用原先代码,增加的功能如写数据库用消息队列。5.对于超时脚本,关闭虚拟机再开一台,同时保存虚拟机的最后状态(cpu内存tes 阅读全文