OpenStack搭建日记(一)

硬件部分搭建

OpenStack主要有以下4种节点:控制器、网络、存储、计算。

控制器——这个节点包含控制器和其他共享服务。这个节点维护服务器端的API服务。控制器协调组件请求和作为OpenStack部署的主要接口。

网络——这个节点为虚拟机提供网络资源,这个节点连接了内部OpenStack网络和外部网络。

存储——这个节点为虚拟机提供和管理存储资源。

计算——这个节点为虚拟机提供计算资源。代码的执行会出现在这些节点上。可以认为被OpenStack管理的虚拟机就是运行在这些节点上。

因此我们在搭建OpenStack时,使用设备为5台服务器,内网使用10 G光纤连接,hosts如下:

1
2
3
4
5
10.10.10.1 master
10.10.10.2 storage
10.10.10.3 computer1
10.10.10.4 computer2
10.10.10.5 computer3

OpenStack部署准备

五台机器全部安装CentOS 7.9.2009,因此使用OpenStack版本为Train

1、同步时间NTP服务

首先关闭管理节点防火墙

1
2
3
systemctl stop firewalld
systemctl disable firewalld
systemctl status 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
2
systemctl start chronyd.service
systemctl enable chronyd.service

1.2 在其他节点上安装chrony

通过yum安装软件包

1
yum install chrony -y

配置文件

1
vim /etc/chrony.conf

注释掉默认的ntp.org时钟源,添加

1
server master iburst

启动ntp服务并加入开机启动

1
2
systemctl start chronyd.service
systemctl enable chronyd.service

2、安装OpenStack库

1
2
3
4
yum install centos-release-openstack-train -y
yum install https://rdoproject.org/repos/rdo-release.rpm -y
yum upgrade -y
yum install python-openstackclient -y #客户端安装

上面关闭了SELinux,如果打开了,还需要执行

1
yum install openstack-selinux

3、组件图

OpenStack架构图如下:

openstack-architecture

全部 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:对象存储服务,提供相应的对象存储,简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件

4、架构图

来源

openstack_kilo_conceptual_arch

来源

openstack-arch-kilo-logical-v1