ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-01-20 17:31:36  阅读:185  来源: 互联网

标签:存储 服务 虚拟机 详解 模块 OpenStack root 节点 ct


目录

1、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       #做映射

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

2.1.5、安装基础环境包

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

在这里插入图片描述

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

取消同步会话

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

在这里插入图片描述

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

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

2.2.4、执行MariaDB 安全配置脚本

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

在这里插入图片描述

2.3、安装RabbitMQ

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

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

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述
注:
#可查看25672和5672 两个端口(5672是Rabbitmq默认端口,25672是Rabbit的测试工具CLI的端口)

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

在这里插入图片描述

2.3.4、 查看rabbitmq插件列表

[root@ct ~]# rabbitmq-plugins list

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

2.3.5.1、访问192.168.74.11:15672

注:默认账号密码均为guest

在这里插入图片描述
在这里插入图片描述

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 

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

[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,则表示此集群将作为被加入的对象

在这里插入图片描述

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

在这里插入图片描述

3、总结

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

标签:存储,服务,虚拟机,详解,模块,OpenStack,root,节点,ct
来源: https://blog.csdn.net/weixin_50344814/article/details/112895522

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有