谁终将声震人间,必长久深自缄默;谁终将点燃闪电,必长久如云漂泊。 ——尼采
关于OpenStack
该系统由OpenStack的若干服务组成,这些服务根据您的云一起工作,服务包括该计算机的身份、网络、图像、存储块,对象存储、遥测、业务流程及数据库服务。任何项目的安装可以分开和独立的配置作为连接或实体。
OpenStack各组件名称及功能
项目名称 | 项目代码 | 描述 |
---|---|---|
Dashboard | Horizon | 为OpenStack提供了一个web管理界面,可在web界面创建实例等操作 |
Network | Neutron | 实现了虚拟机的网络资源管理。 |
Computer | Nova | 通过虚拟化技术提供计算资源池 |
Identify Service | Keystone | 为其他服务提供管理身份验证,授权和端点目录 |
Block Service | Cinder | 为运行的实例提供持久的存储 |
Object Service | Swift | 是一个多租户对象存储系统,用于存储帐户,容器和对象的磁盘 |
Image Service | Glance | Image服务使用户能够发现,注册和检索虚拟机映像 |
Orchestration Service | Heat | 编排服务通过运行OpenStack API调用来生成正在运行的云应用程序,从而提供基于模板的业务流程来描述云应用程序。 |
Bare Metal Service | Ironic | 裸机服务是一组组件集合,可以为管理和配置物理机器提供支持。 |
Database Service | Trove | 数据库服务为关系数据库引擎和非关系数据库引擎提供了可扩展且可靠的云配置功能。用户可以快速轻松地使用数据库功能,而无需处理复杂的管理任务。云用户和数据库管理员可以根据需要配置和管理多个数据库实例。 |
Metering & Data Collecting Service | Ceilometer | 提供监控和数据采集、计量服务 |
Containers Service | Zun | Zun是Openstack中提供容器管理服务的组件 |
Clustering Service | Senlin | Senlin是OpenStack云的集群服务。它创建并运行由其他OpenStack服务公开的同类对象群集。使相似对象的集合更容易编排。 |
Shared File Systems Service | Manila | 为虚拟机提供文件存储。文件共享系统服务提供了管理和供应文件共享的抽象化。该服务还支持共享类型的管理以及驱动程序支持共享快照。 |
Load-balancer Service | Octavia | Octavia是一款开源的运营商级负载均衡解决方案,旨在与OpenStack配合使用。 |
OpenStack架构图
OpenStack逻辑体系结构
OpenStack基础环境搭建
1.查看环境配置,配置好名称解析,并关闭selinux和firewall,在计算节点也做相同配置
2.安装并配置时间服务器
[root@controller~]# yum install chrony
为了使其他节点连接到控制器上的chrony守护程序
[root@controller~]# sed -i '7a server 173.168.16.224 iburst' /etc/chrony.conf
[root@controller~]# sed -i '8a allow 173.168.16.0/24' /etc/chrony.conf
启动时间服务器并随系统开机启动
[root@controller~]# systemctl enable chronyd
[root@controller~]# systemctl start chronyd
3.安装OpenStack软件包(在所有节点上安装)
安装OpenStack存储库(这里我选择的是OpenStack的pike版本)
[root@controller ]# yum install centos-release-openstack-pike
升级所有节点上的安装包
[root@controller~]# yum upgrade
注意:这里出现一个错误,yum源出问题了,执行下图的第四条和第五条命令即可
安装openstack客户端
[root@controller ]#yum -y install python-openstackclient
安装openstack-selinux软件包
[root@controller ]# yum install openstack-selinux
4.安装并配置mariadb数据库
[root@controller ~]# yum install mariadb mariadb-server python2-PyMySQL
创建并编辑该/etc/my.cnf.d/openstack.cnf文件并添加以下部分:
[mysqld]
bind-address= 173.168.16.224
default-storage-engine= innodb
innodb_file_per_table= on
max_connections= 4096
collation-server= utf8_general_ci
character-set-server= utf8
启动数据库并随着系统开机启动
[root@controllermy.cnf.d]# systemctl enable mariadb
[root@controllermy.cnf.d]# systemctl start mariadb
初始化mariadb数据库,运行mysql_secure_installation脚本来保护数据库服务。特别是为数据库root帐户选择一个合适的密码。
5.安装消息队列
[root@controller /]# yum install rabbitmq-server
启动消息队列服务并将其配置为在系统引导时启动
[root@controller/]# systemctl enable rabbitmq-server.service
[root@controller/]# systemctl start rabbitmq-server.service
添加OpenStack用户
[root@controller/]# rabbitmqctl add_user openstack openstack
允许用户进行配置,写入和读取访问openstack
[root@controller/]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"
重启消息队列服务
[root@controller/]# systemctl restart rabbitmq-server
6.安装memcached缓存服务
[root@controller /]# yum install memcached python-memcached
启动Memcached服务并将其配置为在系统引导时启动
[root@controller/]# systemctl enable memcached
[root@controller/]# systemctl start Memcached
7.安装ETCD
OpenStack服务可能使用Etcd,这是一个分布式可靠的键值存储,用于分布式密钥锁定,存储配置,跟踪服务的实时性和其他场景。
安装软件包
[root@controller /]# yum install etcd
编辑/etc/etcd/etcd.conf文件并设置控制器节点,以使经由管理网络通过其他节点的访问的管理IP地址
#[Member]
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS=http://173.168.16.224:2380
ETCD_LISTEN_CLIENT_URLS=http://173.168.16.224:2379
ETCD_NAME="controller"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS=http://173.168.16.224:2380 ETCD_ADVERTISE_CLIENT_URLS=http://173.168.16.224:2379 ETCD_INITIAL_CLUSTER="controller=http://173.168.16.224:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01" ETCD_INITIAL_CLUSTER_STATE="new"
开启etcd服务并随系统开机启动
[root@controller/]# systemctl enable etcd
[root@controller/]# systemctl start etcd
至此,openstack基础环境搭建完成,公众号回复openstack即可获取openstack的pike所有安装文档
参考链接:https://docs.openstack.org/install-guide/environment.html