Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1125409
  • 博文数量: 170
  • 博客积分: 1603
  • 博客等级: 上尉
  • 技术积分: 1897
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 15:54
文章分类

全部博文(170)

文章存档

2016年(27)

2015年(21)

2014年(27)

2013年(21)

2012年(7)

2011年(67)

我的朋友

分类: 云计算

2016-05-03 12:12:49

因为从零开始、所以下面结论有可能是错误的,后面会随着深入而修正

对应项目页


centos7安装只需要
yum install centos-release-openstack-mitaka

然后安装yum对应rpm包即可
以python打头的是实际代码
openstack打头的是配置文件和外部shell工具


首先确定架构
看Service Projects,先认识openstack主要的service的作用及关系

那么多service,找出主要的service
打开devstack,一个自动安装openstack的脚本,找到里面的install部分

点击(此处)折叠或打开

  1. # Install Oslo libraries
  2. install_oslo

  3. # Install client libraries
  4. install_keystoneauth
  5. install_keystoneclient
  6. install_glanceclient
  7. install_cinderclient
  8. install_novaclient
  9. if is_service_enabled swift glance horizon; then
  10. install_swiftclient
  11. fi
  12. if is_service_enabled neutron nova horizon; then
  13. install_neutronclient
  14. fi
  15. if is_service_enabled heat horizon; then
  16. install_heatclient
  17. fi

  18. # Install middleware
  19. install_keystonemiddleware

  20. if is_service_enabled keystone; then
  21. if [ "$KEYSTONE_AUTH_HOST" == "$SERVICE_HOST" ]; then
  22. stack_install_service keystone
  23. configure_keystone
  24. fi
  25. fi

  26. if is_service_enabled swift; then
  27. if is_service_enabled ceilometer; then
  28. install_ceilometermiddleware
  29. fi
  30. stack_install_service swift
  31. configure_swift

  32. # swift3 middleware to provide S3 emulation to Swift
  33. if is_service_enabled swift3; then
  34. # Replace the nova-objectstore port by the swift port
  35. S3_SERVICE_PORT=8080
  36. git_clone $SWIFT3_REPO $SWIFT3_DIR $SWIFT3_BRANCH
  37. setup_develop $SWIFT3_DIR
  38. fi
  39. fi

  40. if is_service_enabled g-api n-api; then
  41. # Image catalog service
  42. stack_install_service glance
  43. configure_glance
  44. fi

  45. if is_service_enabled cinder; then
  46. # Block volume service
  47. stack_install_service cinder
  48. configure_cinder
  49. fi

  50. if is_service_enabled neutron; then
  51. # Network service
  52. stack_install_service neutron
  53. install_neutron_third_party
  54. fi

  55. if is_service_enabled nova; then
  56. # Compute service
  57. stack_install_service nova
  58. cleanup_nova
  59. configure_nova
  60. fi

  61. if is_service_enabled horizon; then
  62. # django openstack_auth
  63. install_django_openstack_auth
  64. # dashboard
  65. stack_install_service horizon
  66. fi

  67. if is_service_enabled heat; then
  68. stack_install_service heat
  69. install_heat_other
  70. cleanup_heat
  71. configure_heat
  72. fi

  73. if is_service_enabled tls-proxy || [ "$USE_SSL" == "True" ]; then
  74. configure_CA
  75. init_CA
  76. init_cert
  77. # Add name to ``/etc/hosts``.
  78. # Don't be naive and add to existing line!
  79. fi


  80. # Extras Install
  81. # --------------

  82. # Phase: install
  83. run_phase stack install

  84. # Install the OpenStack client, needed for most setup commands
  85. if use_library_from_git "python-openstackclient"; then
  86. git_clone_by_name "python-openstackclient"
  87. setup_dev_lib "python-openstackclient"
  88. else
  89. pip_install_gr python-openstackclient
  90. fi




找出里面主要服务
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再测试吧



阅读(2281) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~