项目场景
在IDC机房三组机柜(若干台Dell服务器),规划部署OpenStack云平台虚拟化环境,用于承载后期研发测试和其他的一些对内业务和部分对外服务,项目中涉及到的设备硬件、IP、密码等数据已作相关复盘演化处理。
项目中部署基本的OpenStack服务:Keystone 身份认证服务、Glance 镜像服务、Placement 资源服务、Nova 计算节点服务、Neutron 网络服务、Horizon 面板服务、Cinder 存储服务。
OpenStack 基础架构
整个OpenStack由控制节点、计算节点、网络节点、存储节点四大部分组成。
-
控制节点:控制节点包括了管理支持服务、基础管理服务和扩展管理服务,底层的一些软件安装,用于给相关的组件提供服务。例如安装数据库软件、消息队列软件、Memorycache和Etcd等,核心管理服务主要安装了一些核心的服务,例如Kystone、Glance、Nova,也可以安装Neutron和Horizon服务,用于提供用户基础的控制与管理,扩展管理服务是可选的一些组件的安装,例如存储管理,数据库服务等。包括Cinder、Swift、Trove、Heat和Ceilometer主要的可选服务;
-
计算节点主要包含计算服务、网络服务以及监控服务。基础服务是前两个,监控可以扩展选择;
-
网络节点有且仅有Neutron服务,Neutron主要负责管理私有网段和公有网段之间的通信,同时管理虚拟机网络之间的通信以及防火墙等等。一般在部署时会部署两个以上的网络端口,分别用于与控制节点通信、同计算/存储节点通信、用于外部的虚拟机与相应的网络之间的通信;
-
存储节点包含的是块存储以及对象存储,两者都是存储,本质上有着巨大的不同,块存储相当于虚拟出的一块磁盘,可以挂载在对应的虚拟机上,不会受到文件系统的影响,一般用于虚拟机空间不足时扩容场景;对象存储,本质上是虚拟出一块磁盘空间,可以存储文件,但不能进行格式化或转换文件系统,一般用于云磁盘/文件;
架构图概念梳理
理解OpenStack的逻辑架构可以从整体到局部再到个体来理解。
官方逻辑架构
用户或管理者可以通过网络来使用或管理OpenStack云平台系统,主要有三种方法:命令行接口(对应的相关组件接口的调用)、云管理工具如Rightscale和Enstratius等、图形化界面工具如Dashboard、Cyberduck等等。使用OpenStack提供的组件Dashboard,Horizon提供的Web图形化界面工具来创建、管理该云平台,结合接触过阿里云相关服务的经验,就更好理解了。
在OpenStack内部,每个组件服务都有自己的逻辑架构,一般由功能模块、数据库或对应后端以及和其他组件进行交互的API接口,这些接口则是通过消息队列来实现通信的,某些专业术语和名词之后也会整理出来。
环境准备
型号 | 配置 | 规划 | 管理IP | 系统环境 | ||
---|---|---|---|---|---|---|
PowerEdge Rxxx | 32核 128G / 1.2TB+10TB | controller | 10.0.2.16 | CentOS Linux release 7.9.2009 (Core) + Train | ||
PowerEdge Rxxx | 32核 128G / 1.2TB+10TB | node1 | 10.0.2.17 | CentOS Linux release 7.9.2009 (Core) + Train | ||
… | … | … | … | … | … | … |
网络环境规划
租户网络:网段:172.16.2.0/24 网关:172.16.2.254 地址段:172.16.2.1 – 172.16.2.253
管理网络:网段:10.0.2.0/24 网关:10.0.2.254 地址段:10.0.2.16 – 10.0.2.100
环境准备
controller和node节点都需要进行统一配置
[root@localhost ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux # 关闭SElinux
[root@localhost ~]# setenforce 0 # 临时生效
[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld # 关闭firewalld服务和自启firewalld服务
[root@localhost ~]# hostnamectl set-hostname openstack-controller.ponfey # 管理节点
[root@localhost ~]# hostnamectl set-hostname openstack-compute01.ponfey # 计算节点
[root@openstack-controller ~]# vim /etc/hosts # 配置IP与主机名对应关系的解析
10.0.2.16 openstack-controller.ponfey
10.0.2.17 openstack-compute01.ponfey
... ...
[root@openstack-controller ~]# systemctl stop NetworkManager && systemctl disable NetworkManager # 关闭 NetworkManager
[root@openstack-controller ~]# timedatectl set-timezone Asia/Shanghai
[root@openstack-controller ~]# ntpdate time1.aliyun.com
24 Feb 15:05:54 ntpdate[3040]: step time server 203.107.6.88 offset 0.769229 sec
[root@openstack-controller ~]# crontab -e # 配置NTP时间同步
*/10 * * * * /usr/sbin/ntpdate time1.aliyun.com && hwclock -w
[root@openstack-controller ~]# yum install centos-release-openstack-train.noarch -y # 安装OpenStack官方T版的yum源
[root@openstack-controller ~]# yum -y install python-openstackclient openstack-selinux python2-PyMySQL python-memcached # controller 安装openstack客户端、openstack-selinux软件包、mysql模块、memcached模块