OpenStack O版 安装部署及问题解决

OpenStack项目是由Rackspace和NASA(美国国家航空航天局)共同发起的。它是一个开源软件,它提供了一个部署云的平台。为虚拟计算或存储服务的公有/私有云,提供可扩展的、灵活的云计算。是一个旨在为公共及私有云的建设与管理提供软件的开源项目。OpenStack目前版本Pike并在持续更新中,本文选用Ocata版本进行部署,并记录部署过程中遇到的问题。

环境准备

操作系统
Centos7.2.1151 mini(国内mirrors没有,官方下载)

服务节点
本文使用三个节点部署stand-one方式,按照官方文档进行部署,高可用部署之后文章会跟进。

  • controller节点
  • computer节点
  • block storage节点

网络说明

  • Manage network 管理网络,OpenStack各个模块之间的交互,连接数据库,连接Message Queue都是通过这个网络来进行。
  • Private network 私有网络,虚拟机之间的数据传输通过这个网络来进行,虚拟机要连接虚拟路由都是通过这个网络来进行。
  • External network 外部网络,无论是用户调用OpenStack的API,还是创建出来的虚拟机要访问外网,或者外网要ssh到虚拟机,都用这个网络。

OpenStack将三个网络进行隔离,一方面是安全,在虚拟机里面,干扰的都仅仅是Private Network,都不可能访问到我的数据库。一方面是流量分离,Manage Network的流量不是很大的,而且一般都会比较优雅的使用,而Prviate Network和External Network就需要有流量控制策略。

节点Manage networkPrivate networkExternal network
controller10.50.1.1110.50.1.1110.112.1.116
computer10.50.1.1010.50.1.1110.112.1.117(临时)
block storage10.50.1.1210.50.1.1210.112.1.118(临时)

注意:非高可用环境采用Manage Private同网方式,computer和block storage节点的External network的外网用于安装环境的。

配置节点别名

修改/etc/hostname的主机名称,修改每个节点的/etc/hosts

1
2
3
10.50.1.11 controller
10.50.1.10 computer
10.50.1.12 blokstorage

Yum下载源

1
2
3
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache

安装流程

请参看官方Ocata版本安装向导进行安装。请一步一步进行安装,官方文档已经非常详尽了,这里就不在重复写了,我会我部署过程中的问题中列举出来并记录。

安装问题及解决方案

编码unknown locale: UTF-8
在进行同步数据库命令时,有时会出现unknown locale: UTF-8错误并同步失败。终端中输入以下命令后再执行同步命令即可:

1
2
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

连接不上rabbitmq的问题
其它节点连接不上rabbitmq并提示127.0.0.1:5672(/var/log/下的日志),文档中已经明确配置了transport_url = rabbit://openstack:RABBIT_PASS@controller,这里的rabbitmq的主机是controller而不是127.0.0.1。问题在于配置中还有rabbit_host参数指定,配置rabbit_host=controller重启服务即可。

chrony时间同步问题
参看各个节点的时区是否一致,可使用timedatectl命令进行查看与修改。如果chrony没有能同步时间,请使用命令修改系统时间后再systemctl restart chrony。如果时间没有同步,会导致controller检查block storage的cinder-volume服务一直为down状态。controller节点使用命令openstack volume service list查看。

设置时区

1
timedatectl set-timezone Asia/Shanghai

重启机器后无法访问web的问题
重启后mysql、rabbitmq服务可能没有启动,需要检查并启动。启动后先需要重启http和memcached.

1
2
3
systemctl start mariadb.service
systemctl start rabbitmq-server.service
systemctl restart httpd.service memcached.service