OpenStack常见模块+环境配置详解

目录

1、OpenStack架构

■ 云计算概念图
OpenStack常见模块+环境配置详解
● 四个核心模块
Nova、Glance、 Cinder、Neutron
● 四个辅助模块
Horizon、Ceilometer、Keystone、Swift

1.1.1、控制台Horizon

● 管理、控制OpenStack服务 的Web控制面板

■ Horizon特点
● 实例管理
● 访问与安全管理
● 偏好设定
● 镜像管理
● 用户管理
● 卷管理
● 对象存储处理

1.1.2、身份认证模块Keystone

● 负责管理身份验证、服务规则和服务令牌功能的模块

■ Keystone涉及概念
● User (用户)
● Tenant/Project(租户/项目)
● Role (角色)
● Service (服务)
● Token (令牌)
● Endpoint (端点)

1.1.3、镜像模块Glance

● 提供发现、注册和下载的镜像服务,虚拟机镜像的集中式仓库
● 通过虚拟机镜像创建虚拟机

■ Glance主要组件
● glance-api
● glance-registry
● database
● storage repository for image files

■ 镜像的格式
● RAW
● QCOW2
● VHD
● VMDK
● VDI
● ISO
● AKI、ARI、 AMI

1.1.4、计算模块Nova

● 负责虚拟机实例的生命周期管理、网络管理、存储卷管理、用户管理以及其他的相关云平台管理功能

■ Nova主要组件
● Nova-api服务
● Nova-api-metadata服务
● Nova-Compute服务
● Nova-placement-api服务
● Nova-Conductor模块
● Nova-Scheduler服务

1.1.5、网络模块Neutron

● 实现实例与实例之间以及实例与外部网络之间的通信
● 提供二层(L2)vSwitch交换和三层(L3)Router路由抽象功能

■ 实现功能
● Router:为租户提供路由、NAT等服务
● Network:对应于一个真实物理网络中的二层局域网(VLAN)
● Subnet:指定一段IPV4或IPV6地址并描述其相关的配置信息

■ 虚拟网络
● 对二层物理网络Network的抽象与管理
◆ 虚拟交换机/网桥
◆ 虚拟路由器
◆ Namespace
◆ DHCP
◆ 浮动IP地址

■ 组网模型
● Local
● Flat
● VLAN
● Overlay之VXLAN

1.1.6、块存储Cinder

● 提供对Volume从创建到删除整个生命周期的管理

■ Cinder功能
● 提供REST API
● 调度Volume创建请求,合理优化存储资源的分配
● 支持多种back-end (后端) 存储方式

■ Cinder组件
● Cinder-Api
● Cinder-Volume
● Cinder- Scheduler
● Cinder-Backup
● Message Queue
● Database

■ Volume创建的步骤
● 用户向API发送创建卷请求
● API对请求做一些必要处理后,向消息队列发送消息
● Scheduler从消息队列获取到消息,执行调度算法,选出节点A
● Scheduler向Messaging发送消息(让存储节点A创建Volume )
● 存储节点A的Volume从消息队列中获取到消息,通过卷提供者的驱动创建卷

1.1.7、对象存储swift

● 使用普通硬件来构建冗余的、可扩展的分布式对象存储集群,存储容量可达PB级
● Swift属于对象存储,用于永久类型的静态数据的长期存储(如虚拟机镜像、图片存储、邮件存储和存档备份)

■ Swift特点
● 极高的数据持久性
● 完全对称的系统架构
● 无限的可扩展性
● 无单点故障
● 简单、可依赖

■ Swift组件
● 代理服务(ProxyServer)
● 认证服务(AuthenticationServer)
● 缓存服务(CacheServer)
● 账户服务(AccountServer)
● 容器服务(ContainerServer)
● 对象服务(ObjectServer)
● 复制服务(Replicator)
● 更新服务(Updater)
● 审计服务(Auditor)
● 账户清理服务(AccountReaper)

■ Swift存储结构
● Objects
● Accounts
● Containers .
● Tmp
● async_pending
● quarantined

1.2、OpenStack的构成

■ 整个OpenStack是由控制节点,计算节点,网络节点,存储节点,四大部分组成(这四个节点可以单机部署)

1.2.1、控制节点

负责对其余几点的控制,包含虚拟机创建、迁移、网络分配、存储分配等等

■ 控制节点架构
● 管理支持服务
◆ 管理支持服务包含数据库与消息代理服务
◆ 数据库作为基础/扩展服务产生的数据存放的地方
◆ 消息代理服务(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务
● 基础管理服务
基础管理服务包含Keystone、Glance、Nova、Neutron、Horizon五个服务
◆ Keystone:认证管理服务、提供了其余所有组件的认证信息/令牌的管理、创建、修改等等、使用MySQL等数据库存储认证信息
◆ Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供镜像的管理、包含镜像的导入、格式以及制作相应的模板
◆ Nova:计算管理服务,提供了对计算节点的Nova管理、使用Nova-API进行通信
◆ Neutron:网络管理服务、提供了对网络节点的网络拓扑管理,同时提供Neutron在Horizon的管理界面
◆ Horizon:控制台服务,提供了以Web形式对所有节点的所有服务的管理,通常把该服务成为Dashboard
● 扩展管理服务
扩展管理服务包含Cinder、Swift、Trove、Heat、Centimeter五个服务
◆ Cinder:提供管理存储节点的Cinder相关、同时提供Cinder在Horizon中的管理面板
◆ Swift:提供管理存储节点Swift相关、同时提供Swift在Horizon中的管理面板
◆ Trove:提供管理数据库节点的Trove先关、同时提供Trove在Horizon中的管理面板
◆ Heat:提供了基于模板来实现云环境中的资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩、负载均衡等高级特性
◆ Centimeter:提供对物理资源以及虚拟资源的监控,并记录这些书库,读数据进行分析,在一定条件下出发现货供应动作

小结:
控制节点通常来说只需要一个网络端口来用于通信和管理各个节点

1.2.2、计算节点

计算节点负责虚拟机运行

■ 计算节点架构
计算节点包含Nova、Neutron、Telemter三个服务
● 基础服务
◆ Nova:提供虚拟机的创建、运行、迁移、快照等围绕虚拟机的服务、并提供API与控制节点对接、由控制节点下发任务
◆ Neutron:提供计算节点与网络节点之间的通信
● 扩展服务
◆ Telmeter:提供计算节点监控代理、将虚拟机的情况反馈的控制节点,是 Centimeter的代理服务
计算节点包含最少两个网络端口
端口1:与控制节点进行通信,受控制节点统一调配
端口2:与网络节点,存储节点进行通信

1.2.3、网络节点

负责对外网络与内网之间的通信

■ 网络节点仅包含Neutron服务
● Neutron:负责管理私有网络与公有网络的通信,以及管理虚拟机网络之间通信/拓扑、管理虚拟机之上的防火墙等等
网络节点包含三个网络端口
◆ 端口1:用于与控制节点进行通信
◆ 端口2:用于除了控制节点之外的计算/存储节点之间的通信
◆ 端口3:用于外部的虚拟机与相应的网络之间通信

1.2.4、存储节点

负责对虚拟机的额外存储管理等等

■ 存储节点架构
存储节点包含Cinder,Swift等服务
● Cinder:块存储服务,提供相应的块才能出,简单来说,就是虚拟出一块存盘,可以挂载到相应的虚拟机之上,不收文件系统的影响,对虚拟机来说,这个操作像是加了一块硬盘,可以完成对磁盘的任何操作,包括挂载、卸载、格式化,转换文件系统等等操作,大多应用于虚拟机空间不足的情况下的空间扩容等。
● Swift:对象存储服务,提供相应的独享存储、简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件
存储节点包含最少两个网络端口
◆ 端口1:与控制节点进行通信,接受控制节点任务,受控制节点统一调配
◆ 端口2:与计算/网络节点进行通信,完成控制节点下发的各类任务

2、OpenStack 环境配置

虚拟机资源信息

■ 控制节点ct
CPU:双核双线程-CPU虚拟化开启
内存:8G 硬盘:300G+30G
双网卡:VM1-(局域网)192.168.74.11 NAT-192.168.140.11
操作系统:Centos 7.6(1810)-最小化安装

■ 计算节点c1
CPU:双核双线程-CPU虚拟化开启
内存:8G 硬盘:300G+30G
双网卡:VM1(局域网)-192.168.74.12 NAT-192.168.140.12
操作系统:Centos 7.6(1810)-最小化安装

■ 计算节点c2
CPU:双核双线程-CPU虚拟化开启
内存:8G 硬盘:300G+30G
双网卡:VM1(局域网)-192.168.74.13 NAT-192.168.140.13
操作系统:Centos 7.6(1810)-最小化安装

2.1、基础环境配置

■ 配置项(所有节点)
● 主机名
● 防火墙、核心防护
● 免交互
● 基础环境依赖包

2.1.1、所有节点修改主机名

[root@localhost ~]# hostnamectl set-hostname ct
[root@localhost ~]# su
[root@localhost ~]# hostnamectl set-hostname c1
[root@localhost ~]# su
[root@localhost ~]# hostnamectl set-hostname c2
[root@localhost ~]# su

2.1.2、关闭防火墙,核心防护

开启同步会话

[root@ct ~]# systemctl stop firewalld         #临时关闭防火墙
[root@ct ~]# setenforce 0                     #关闭核心防护
[root@ct ~]# systemctl disable firewalld      #永久关闭防火墙

2.1.3、配置Hosts,并让三台节点做免交互

[root@ct ~]# vi /etc/hosts       #做映射

OpenStack常见模块+环境配置详解

[root@ct ~]# ssh-keygen -t rsa          #生成密钥
[root@ct ~]# ssh-copy-id ct
[root@ct ~]# ssh-copy-id c1
[root@ct ~]# ssh-copy-id c2

OpenStack常见模块+环境配置详解

2.1.4、所有节点安装基础环境依赖包

[root@ct ~]# yum -y install net-tools bash-completion vim gcc gcc-c++ make pcre  pcre-devel expat-devel cmake  bzip2 
[root@ct ~]# yum -y install centos-release-openstack-train python-openstackclient openstack-selinux openstack-utils

OpenStack常见模块+环境配置详解

2.1.5、安装基础环境包

[root@ct ~]# yum install chrony -y

OpenStack常见模块+环境配置详解

2.1.5.1、控制节点ct时间同步配置

取消同步会话

[root@ct ~]# vim /etc/chrony.conf 

OpenStack常见模块+环境配置详解

[root@ct ~]# systemctl enable chronyd
[root@ct ~]# systemctl restart chronyd

2.1.5.2、使用 chronyc sources 命令查询时间同步信息

[root@ct ~]# chronyc sources
[root@ct ~]# date

OpenStack常见模块+环境配置详解

2.1.5.3、设置周期性任务

[root@ct ~]# crontab -e
*/5 * * * * /usr/bin/chronyc sources >> /var/log/chronyc.log

2.1.5.4、compute节点做时间同步

[root@c1 ~]# vim /etc/chrony.conf

OpenStack常见模块+环境配置详解

[root@c1 ~]# systemctl enable chronyd
[root@c1 ~]# systemctl restart chronyd
[root@c1 ~]# chronyc sources

OpenStack常见模块+环境配置详解

2.2、系统环境配置

配置服务(控制节点)

2.2.1、安装、配置MariaDB

[root@ct ~]# yum -y install mariadb mariadb-server python2-PyMySQL

注:
python2-PyMySQL
此包用于openstack的控制端连接mysql所需要的模块,如果不安装,则无法连接数据库,此包只安装在控制端

[root@ct ~]# yum -y install libibverbs

OpenStack常见模块+环境配置详解

2.2.2、添加MySQL子配置文件

[root@ct ~]# vim /etc/my.cnf.d/openstack.cnf
增加如下内容
[mysqld]
bind-address=192.168.74.11      #控制节点局域网地址
default-storage-engine=innodb   #默认存储引擎
innodb_file_per_table=on       #每张表独立表空间文件
max_connections=4096           #最大连接数
collation-server=utf8_general_ci #默认字符集,不区分大小写
character-set-server=utf8

2.2.3、开机自启动、开启服务

[root@ct ~]# systemctl enable mariadb
[root@ct ~]# systemctl start mariadb

OpenStack常见模块+环境配置详解

2.2.4、执行MariaDB 安全配置脚本

[root@ct ~]# mysql_secure_installation      #安全的初始化

OpenStack常见模块+环境配置详解

2.3、安装RabbitMQ

注:
所有创建虚拟机的指令,控制端都会发送到rabbitmq,node节点监听rabbitmq

[root@ct ~]# yum -y install rabbitmq-server

OpenStack常见模块+环境配置详解

2.3.1、配置服务,启动RabbitMQ服务,并设置其开机启动

[root@ct ~]# systemctl enable rabbitmq-server.service
[root@ct ~]# systemctl start rabbitmq-server.service

2.3.2、创建消息队列用户,用于controler和node节点连接rabbitmq的认证

[root@ct ~]# rabbitmqctl add_user openstack RABBIT_PASS

OpenStack常见模块+环境配置详解

2.3.3、配置openstack用户的操作权限(正则,配置读写权限)

[root@ct ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*"

OpenStack常见模块+环境配置详解
注:
#可查看25672和5672 两个端口(5672是Rabbitmq默认端口,25672是Rabbit的测试工具CLI的端口)

[root@ct ~]# netstat -anpt | grep 5672

OpenStack常见模块+环境配置详解

2.3.4、 查看rabbitmq插件列表

[root@ct ~]# rabbitmq-plugins list

OpenStack常见模块+环境配置详解

2.3.5、开启rabbitmq的web管理界面的插件,端口为15672

[root@ct ~]# rabbitmq-plugins enable rabbitmq_management

OpenStack常见模块+环境配置详解

[root@ct ~]# netstat -anpt | grep 5672

OpenStack常见模块+环境配置详解

2.3.5.1、访问192.168.74.11:15672

注:默认账号密码均为guest

OpenStack常见模块+环境配置详解
OpenStack常见模块+环境配置详解

2.4、安装memcached

作用:
安装memcached是用于存储session信息;服务身份验证机制使用Memcached来缓存令牌 在登录openstack的dashboard时,会产生一些session信息,这些session信息会存放到memcached中

2.4.1、安装Memcached

[root@ct ~]# yum install -y memcached python-memcached
#python-*模块在OpenStack中起到连接数据库的作用

2.4.2、修改Memcached配置文件

[root@ct ~]# vim /etc/sysconfig/memcached 

OpenStack常见模块+环境配置详解

[root@ct ~]# systemctl enable memcached
[root@ct ~]# systemctl start memcached
[root@ct ~]# netstat -nautp | grep 11211

OpenStack常见模块+环境配置详解

2.5、 安装etcd并修改配置文件

[root@ct ~]# yum -y install etcd
[root@ct ~]# cd /etc/etcd/
[root@ct etcd]# ls -lh

OpenStack常见模块+环境配置详解

[root@ct etcd]# vim etcd.conf
#数据目录位置
#监听其他etcd member的url(2380端口,集群之间通讯,域名为无效值)
#对外提供服务的地址(2379端口,集群内部的通讯端口)
#集群中节点标识(名称)
#该节点成员的URL地址,2380端口:用于集群之间通讯。
#
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.74.11:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.74.11:2379"
ETCD_NAME="ct"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.74.11:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.74.11:2379
ETCD_INITIAL_CLUSTER="ct=http://192.168.74.11:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01" #集群唯一标识
ETCD_INITIAL_CLUSTER_STATE="new"   #初始集群状态,new为静态,若为existing,则表示此ETCD服务将尝试加入已有的集群
若为DNS,则表示此集群将作为被加入的对象

OpenStack常见模块+环境配置详解

2.5.1、开机自启动、开启服务,检测端口

[root@ct etcd]# cd
[root@ct ~]# systemctl enable etcd.service
[root@ct ~]# systemctl start etcd.service
[root@ct ~]# netstat -anutp |grep 2379
[root@ct ~]# netstat -anutp |grep 2380

OpenStack常见模块+环境配置详解

3、总结

OpenStack环境配置为了后面更好的进行整体搭建,不同于一键化部署,这样配置,功能更完整。

上一篇:错题集:The authentication token issued by the Identity service has expired in keystone


下一篇:Universal Source_free Domain Adaption论文阅读笔记