1、OpenStack框架
(1)版本对应组件说明:由于不同版本的组件也各不相同,新版本中会出现越来越多的组件。我主要针对 Juno这个版本说明它的组件。
(2)核心组件及对应的功能服务
- Compute (Nova)计算服务
- Image Service (Glance)镜像服务
- Object Storage (Swift)对象存储
- Block Storage (Cinder)块存储
- Networking (Neutron)网络服务
- Dashboard (Horizon)仪表板
- ldentity Service (Keystone)认证服务
- Orchestration (Heat)编排
- Telemetry (Ceilometer)监控
- Database Service (Trove)数据库服务
- Data Processing (Sahara)数据处理
2 OpenStack基础环境介绍
下面介绍OpenStack的基础环境介绍,先给出网络拓扑及ip地址规划,然后给出资源配置情况。根据需求创建相应的虚拟机并搭建基础环境。
(1)网络拓扑及ip地址规划:由拓扑可知,我们需四个虚拟机。由于我的PC资源有限,将多个组件的安装在controller虚拟机上。controller和block只需要一张网卡,连接管理网络上,compute多了一张网卡连接到实例网络。而neutron配置三张网卡,需要一张网卡连接到外网中。
我的IP地址规划如下:
compute | M:192.168.119.179 I:172.16.0.10 |
neutron | M:192.168.119.180 I:172.16.0.11 E:100.100.100.11 |
controller | M:192.168.119.181 |
block | M:192.168.119.182 |
(2)资源配置情况(compute资源尽量多给一点。):
compute | 12核 、6G内存、2网卡、100G磁盘 |
neutron | 2核、1.5G内存、3网卡、20G磁盘 |
controller | 2核、1.5G内存、1网卡、100G磁盘 |
block | 2核、2G内存、1网卡、20G磁盘 |
3、OpenStack基础环境搭建
首先我们按照资源配置情况搭建创建四个虚拟机,镜像我选择CentOS-7.0-1406-x86_64-Everything.iso,可从官网下载。然后开始安装操作系统,划分网络,配置ip(按照IP地址规划配置即可)。这不我就省略了,我主要介绍每个虚拟机在搭建OpenStack前期的操作。
(1)先决条件,关闭NetworkManager、防火墙和selinux并设置主机名。
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl stop firewalld
systemctl disable firewalld
sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
hostnamectl set-hostname controller.nice.com
reboot
主机名可以自行设置,对应各自的虚拟机ip,并在hosts文件中添加解释 ,可参考我的hosts文件:
[root@controller ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.119.179 compute.nice.com
192.168.119.180 network.nice.com
192.168.119.181 controller.nice.com
192.168.119.182 block.nice.com
(2)配置epel扩展yum源并安装OpenStack的YUM源
#epel yum源
yum install -y https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm
#OpenStack yum源
cd /etc/yum.repos.d/
vim openstack.repo
[openstack]
name=openstack
baseurl=https://repos.fedorapeople.org/openstack/EOL/openstack-juno/epel-7/
gpgcheck=0
enable=1
yum clean all
yum makecache
#安装yum-plugin-priorities包,防止高优先级软件被低优先级软件覆盖
yum -y install yum-plugin-priorities
(3)配置时间同步服务器
controller作为ntp server,其它作为ntp客户端
controller节点配置:
yum install -y ntp
vim /etc/ntp.conf
systemctl start ntpd
systemctl enable ntpd
其它三个节点配置:
yum install ntpdate -y
ntpdate -u controller.nice.com
#编写计划任务,每一分钟同步时间
crontab -e
*/1 * * * * /sbin/ntpdate -u controller.nice.com &> /dev/null
systemctl restart crond
systemctl enable crond
注意:以下操作只是在controller节点进行
(4)在controller节点安装数据库。
yum install -y mariadb mariadb-server MySQL-python
#配置数据库文件,只需要在[mysqld]下面添加即可
vim /etc/my.cnf
[mysqld]
bind-address = 192.168.119.181
default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8
#启动数据库并做初始化
systemctl start mariadb
systemctl enable mariadb
mysql_secure_installation
(5)安装Message server服务,协调操作和状态信息服务。我们利用RabbitMQ这个开源的消息代理软件。
yum install rabbitmq-server -y
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
#可以修改rabbitmq的用户名和密码,默认都是guest我就不修改了。
rabbitmqctl change_password guest new_passwd