Openstack高可用离线部署(使用Kolla部署,后端存储使用CEPH)
前提概要:
一、简介
Docker容器化再加上Ansible自动化运维工具的部署方式,构成了Kolla-Ansible项目。Kolla-Ansible的官方文档介绍了如何在在线的情况下,如何使用该项目部署Openstack。
本文详细介绍如何使用Kolla-Ansible项目,在离线的情况下,在物理机服务器上操作部署Openstack(Pike或是Queens)多节点(Multinodes)的步骤。将Kolla-Ansible转化为离线部署,主要就是yum源,python源以及docker仓库的搭建配置,有了这些离线基础,才具备离线安装部署Openstack的条件。
本文中设计的yum安装,python安装涉及的源均为自己搭建好的离线源,docker的registry本地私有仓库。其中yum源,python源以及docker仓库的搭建,参照其对应的文档,此处不详细叙述。
二、部署结构设计
本文部署示例采用七台机器部署高可用(HA)的Openstack环境,分别是: monitor,controller01,controller02,controller03,computer01,computer02, computer03另外一台机器提供离线yum、python源以及docker私有仓库,主机名是source。
注:
1)controller01、controller02、controller03三个组成control角色高可用(配置三台control自动会配置成HA),同时,部署ceph分布式集群,由三台controller和三台computer共同组成storage存储。
2)源配置source主机,配有yum源、python源以及docker私有仓库。
3)网卡做bond设置,模式(mode)取4,链路聚合(LACP)。本示例中俩个万兆网卡绑定做bond0, 俩个前兆网卡绑定做bond1。bond0走openstack管理和ceph存储,bond1走虚机对外访问公开网络。
三、双网卡绑定Bond设置
三台controller和三台computer以及monitor均执行。双网卡绑定,模式取4,链路聚合模式(LACP),俩个万兆的网卡(eth0和eth1)做bond0(有IP),俩个前兆的网卡(eth2和eth3)做bond1(无IP)。
1)bond0、eth0和eth1的配置文件如下:
ifcfg-bond0 ifcfg-eth0 ifcfg-eth1
2)bond1、eth2和eth3的配置文件如下:
ifcfg-bond1 ifcfg-eth2 ifcfg-eth3
配置修改完之后,重启网卡:
# service network restart
查看绑定结果
# cat /proc/net/bonding/bond0
# cat /proc/net/bonding/bond1
查看到的结果中,eth0、eth1和bond0的mac地址一致,eth2、eth3和bond1的mac地址一致,即可。
四、基础环境准备
三台controller和三台computer以及monitor均执行。
4.1升级系统
# yum update -y
4.2安装必须的软件
# yum install git net-tools ntp vim wget ansible gcc openssl-devel python-devel python-pip libffi-devel libselinux-python python-openstackclient python-neutronclient -y
4.3添加ntp时钟服务器
# vi /etc/ntp.conf
如下图所示,
添加ntp时钟主备服务器,“XX.XX.XXX.XX, XXX.XXX.XX.XXX”是我们自己的时钟主备服务器,大家在安装部署中可以使用自己的时钟服务器,目的是保持各个服务器之间的时间一致,不然会导致openstack的服务异常。
server XX.XX.XXX.XX prefer server 1XXX.XXX.XX.XXX |
# systemctl enable ntpd.service && systemctl start ntpd.service && systemctl status ntpd.service
# ntpq -p
可以查看到同步的时间主机:
4.4关闭libvirtd服务
创建的虚机没有libvirtd服