因为从零开始、所以下面结论有可能是错误的,后面会随着深入而修正
对应项目页
centos7安装只需要
yum install centos-release-openstack-mitaka
然后安装yum对应rpm包即可
以python打头的是实际代码
openstack打头的是配置文件和外部shell工具
首先确定架构
看Service Projects,先认识openstack主要的service的作用及关系
那么多service,找出主要的service
打开devstack,一个自动安装openstack的脚本,找到里面的install部分
找出里面主要服务
1、nova
2、keystone
3、neutron
4、horizon
5、cinder
6、swift
7、glance
8、heat
5、6、7(swift,cinder,glance)参考
参考内容摘要
Swift——提供对象存储 (Object Storage),在概念上类似于Amazon S3服务,不过swift具有很强的扩展性、冗余和持久性,也兼容S3 API
Glance——提供虚机镜像(Image)存储和管理,包括了很多与Amazon AMI catalog相似的功能。(Glance的后台数据从最初的实践来看是存放在Swift的)。
Cinder——提供块存储(Block Storage),类似于Amazon的EBS块存储服务,目前仅给虚机挂载使用。
总结
Swift 云存储服务、网盘之类、cdn目录之类、无对应需求可以不装
Glance 虚拟机镜像文件备份、模板景象、快照之类 估计也可以不装
Cinder 虚拟机可挂载的外部硬盘文件管理、应该就是提供创建虚拟机创建以后可以挂载的外部硬盘,不需要这个功能估计也可以不装,创建虚拟机应该是用物理机本地硬盘
4(horizon)参考
http://blog.sina.com.cn/s/blog_4cccd8d30102vbr5.html
参考内容摘要
在整个openstack应用体系中,horizon就是整个应用的入口。提供了一个模块化的、基于WEB的图形化界面服务门户。用户可以通过浏览器使用这个WEB图形化界面来访问、控制他们的计算、存储和网络资源。
总结
horizon相当于阿里、ucloud用户登陆后可以操作的那个页面,基于django开发,代码目前拆分为horizon和openstack_dashboard
前者为基本库,后者为整个站点文件
这个基本是必须安装的
8(heat)参考
http://www.ibm.com/developerworks/cn/cloud/library/1511_zoupx_openstackheat/index.html
参考内容摘要
OpenStack 从最开始就提供了命令行和 Horizon 来供用户管理资源。然而靠敲一行行的命令和在浏览器中的点击相当费时费力。即使把命令行保存为脚本,在输入输出,相互依赖之间要写额外的脚本来进行维护,而且不易于扩展。用户或者直接通过 REST API 编写程序,这里会引入额外的复杂性,同样不易于维护和扩展。 这都不利于用户使用 Openstack 来进行大批量的管理,更不利于使用 OpenStack 来编排各种资源以支撑 IT 应用。
总结
建立一个mysql集群,需要在页面点击创建N个mysql,申请浮动ip什么等等操作
heat可以实现一个模板、建立好模板以后直接点一下就能创建好mysql集群了
可以不用安装
2(keystone)参考
http://blog.csdn.net/wsfdl/article/details/20492343
参考内容摘要
keystone作为openstack的Identity Service,提供了用户信息管理和完成各个模块认证服务。
总结
身份验证服务,一个网站如果把身份验证服务写在站点里,那么当网站要做集群的时候,网站之间需要通信才能解决几个站点通信之类的问题
同样问题也出现在各种工具里,工具只是登陆到mysql然后做完验证就工作,那么同时有多个人使用工具的时候,就会出现问题
解决方法
1、在mysql里加锁,通过mysql的锁达到互斥的目的,但是业务层的逻辑明显不应该由mysql去做
2、类似tomcat多播形式,但是这种形式也只适合复制session之类的业务,在里面加锁也不适合
3、专门写一个做身份验证的程序
so keystone就是这个专门做验证的程序,这个验证程序会和各个service通信
一套openstack里只需要一个keystone service,但是要对这个keystone service做双机热备和lvs负载均衡,因为所有的service基本都需要和keystone通信
3(neutron)参考
参考内容摘要
现在很多已部署的Openstack云还在继续使用nova-network,因为它简单,稳定,尤其是多节点部署的可扩展性和可靠性让人不愿割舍。但是我们必须考虑往Neutron上迁移了
总结
openstack处理虚拟网络的服务,用于替代nove-network,在M版中依然可以配置nove-network,新版本应该直接使用neutron而不是nove-network
支持openvswitch需要安装
neutron-plugin-openvswitch-agent
每台openstack的物理机器都要安装这个服务以便设置网络
上面结论是错误,neutron和nova-api一样是个controller服务,每台物理机设置网络的是neutron-xxxx-agent服务
1(nova)比较复杂
我们先看nova的rpm打包文件
去到去对应版本的spec文件
/nova/blob/mitaka-rdo/openstack-nova.spec
可以看到nova拆分为好几部分,顺便感慨下...不再提供init脚本,只提供了systemd的文件....
nova部分结构比较复杂,直接用一个新的章节来说明
追加说明:所有的spec文件去centos官网搞定
(自动重定向到
koji/)
通过搜索对应的rpm包,找到src包并下载下来
有些包可能因为名字问题搜索不到,比如
python-keystone其实就是openstack-keystone打包出来的,直接搜不到....蛋痛还拆成2个
RPMs
src
openstack-keystone-9.0.2-1.el7.src.rpm (info) (download)
noarch (build logs)
openstack-keystone-9.0.2-1.el7.noarch.rpm (info) (download)
openstack-keystone-doc-9.0.2-1.el7.noarch.rpm (info) (download)
python-keystone-9.0.2-1.el7.noarch.rpm (info) (download)
python-keystone-tests-9.0.2-1.el7.noarch.rpm (info) (download)
顺便放
下载源
如果需要改成非systemd,工作量还是比较大,找到一个参考包
openstack-nova-2014.2.2-2.el6.src.rpm
需要对修改有服务的程序spec文件并写init脚本...
所以.....还是升级centos7再测试吧