OpenStack搭建日记(一)
硬件部分搭建
OpenStack主要有以下4种节点:控制器、网络、存储、计算。
控制器——这个节点包含控制器和其他共享服务。这个节点维护服务器端的API服务。控制器协调组件请求和作为OpenStack部署的主要接口。
网络——这个节点为虚拟机提供网络资源,这个节点连接了内部OpenStack网络和外部网络。
存储——这个节点为虚拟机提供和管理存储资源。
计算——这个节点为虚拟机提供计算资源。代码的执行会出现在这些节点上。可以认为被OpenStack管理的虚拟机就是运行在这些节点上。
因此我们在搭建OpenStack时,使用设备为5台服务器,内网使用10 G光纤连接,hosts如下:
1 | 10.10.10.1 master |
OpenStack部署准备
五台机器全部安装CentOS 7.9.2009,因此使用OpenStack版本为Train。
1、同步时间NTP服务
首先关闭管理节点防火墙
1 | systemctl stop firewalld |
关闭SELinux服务
1 | sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config |
关闭后,重启后生效
1.1 在管理节点中,安装chrony软件包
1 | yum install chrony -y |
修改chrony.conf文件
1 | vim /etc/chrony.conf |
注释掉默认的ntp.org时钟源,添加一个ntp服务器时钟源,如ntp.aliyun.com
添加:ntp.aliyun.com
修改Allow NTP client access from local network此选项,改为(自己的ip地址段)
allow 10.10.10.0/24
启动ntp服务并加入开机启动
1 | systemctl start chronyd.service |
1.2 在其他节点上安装chrony
通过yum安装软件包
1 | yum install chrony -y |
配置文件
1 | vim /etc/chrony.conf |
注释掉默认的ntp.org时钟源,添加
1 | server master iburst |
启动ntp服务并加入开机启动
1 | systemctl start chronyd.service |
2、安装OpenStack库
1 | yum install centos-release-openstack-train -y |
上面关闭了SELinux,如果打开了,还需要执行
1 | yum install openstack-selinux |
3、组件图
OpenStack架构图如下:
全部 service 地址:https://www.openstack.org/software/project-navigator/openstack-components#openstack-services
3.1 控制节点架构
控制节点包括以下服务
- 管理支持服务
- 基础管理服务
- 扩展管理服务
管理支持服务包括MySQL与Qpid两个服务
- MySQL:数据库作为基础/扩展服务产生的数据存放的地方
- Qpid:消息代理(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务
基础管理服务包括Keystone,Glance,Nova,Neutron,Horizon五个服务
- Keystone:认证管理服务,提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库
- Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板
- Nova:计算管理服务,提供了对计算节点的Nova的管理,使用Nova-API进行通信
- Neutron:网络管理服务,提供了对网络节点的网络拓扑管理,同时提供Neutron在Horizon的管理面板
- Horizon:控制台服务,提供了以Web的形式对所有节点的所有服务的管理,通常把该服务称为DashBoard
控制节点一般来说只需要一个网络端口用于通信/管理各个节点。
3.2 网络节点架构
网络节点仅包含Neutron服务
- Neutron:负责管理私有网段与公有网段的通信,以及管理虚拟机网络之间的通信/拓扑,管理虚拟机之上的防火等等
3.3 计算节点架构
计算节点包含Nova,Neutron,Telemeter三个服务
基础服务
- Nova:提供虚拟机的创建,运行,迁移,快照等各种围绕虚拟机的服务,并提供API与控制节点对接,由控制节点下发任务
- Neutron:提供计算节点与网络节点之间的通信服务
扩展服务
- Telmeter:提供计算节点的监控代理,将虚拟机的情况反馈给控制节点,是Centimeter的代理服务
3.4 存储节点架构
存储节点包含Cinder,Swift等服务
- Cinder:块存储服务,提供相应的块存储,简单来说,就是虚拟出一块磁盘,可以挂载到相应的虚拟机之上,不受文件系统等因素影响,对虚拟机来说,这个操作就像是新加了一块硬盘,可以完成对磁盘的任何操作,包括挂载,卸载,格式化,转换文件系统等等操作,大多应用于虚拟机空间不足的情况下的空间扩容等等
- Swift:对象存储服务,提供相应的对象存储,简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件