HCIP-OpenStack组件介绍

news2025/1/23 9:08:04

OpenStack排错思路:
OpenStack查询日志,所有日志都在/var/log/模块名称下面。
OpenStack修改配置,所有配置文件都在/etc/模块名称下面。
在这里插入图片描述
openstack把这些组件服务都集成到httpd服务中了,目的是为了提升性能。登入不了openstack在控制节点查下httpd服务,systemctl status httpd
Dashboard horizon:提供webUI图形化界面的
Keystone:提供身份认证服务、授权、endpoint端点(类似于电话簿,给谁打哪个电话),所有的服务都要在keystone组件上注册的,不注册无法访问。
Nova:提供计算服务的,cpu,内存
Cinder:提供块存储服务的,提供磁盘的
Glance:提供镜像服务的,glance加载镜像但不保存镜像,glance后面一定会对接存储的,这里对接的是swift存储镜像(但实验环境是存在本地文件系统的)。
Swift:对象存储,后端可以对接nfs/ceph/glusterfs/aws等
neutron提供网络服务,网络/子网/子接口/dhcp等

每个组件(模块)对应有很多服务的,[root@controller ~]# systemctl list-unit-files |grep cinder
openstack-cinder-api.service                                           enabled  
openstack-cinder-backup.service                                        enabled  
openstack-cinder-scheduler.service                                     enabled  
openstack-cinder-volume.service                                        enabled 

在这里插入图片描述
发放云主机,控制节点的nova-api接收请求,给nova-scheduler处理做完计算调度后,发放给某个计算节点的nova-compute处理。
创建云硬盘,控制节点的cinder-api接收请求,给cinder-scheduler处理做完计算调度后,发放给某个存储节点cinder-volume处理(生产环境有独立的存储节点的,实验环境是将存储部署在控制节点)。

rabbitmq

通过rabbitmq消息队列处理请求,按照规则排队处理互不影响,不会说因为cinder-scheduler调度慢而影响cinder-api接收请求性能,也不会因为cinder-volume处理慢而影响cinder-scheduler调度性能,把这些服务解耦了提升性能了。
rabbitmq基于AMQP协议,rabbitmq来处理消息队列的,每个组件都会生成自己组件的队列,在这个队列里面去消费就行,产生需求信息的叫生产端(如nova-api、cinder-api产生新需求的),把生产端的需求拿过来放到对应队列里面,再由相应组件去对应队列里面取用消费。用rabbitmq为了实现消息的传递互通,能解决并发问题、rabbitmq并发量是毫秒级的,性能很好,不管并发量多大直接扔给rabbitmq,再由其它组件进行消费就行,把这些组件服务充分进行解耦了。
rabbitmq默认部署在控制节点,rabbitmq掌握各个组件的互通,rabbitmq服务停了发放云主机会有问题的,不知哪有问题,就按照组件单个组件查日志,发放云主机先经过nova组件,就先查看nova组件日志,比如查看nova-api.log日志找到error发现rabbitmq连接不上。Systemctl status rabbitmq-server.service

控制节点上已经安装了rabbitmq,rabbitmq默认部署在控制节点
rabbitmq-plugins list 列出所有rabbitmq模块,能查看rabbitmq模块是否启用
rabbitmq-plugins enable rabbitmq_management 启用rabbitmq_management模块就能网页登录rabbitmq
默认只有25672端口给内部rabbitmq互通的,15672 端口是启用rabbitmq_management模块开通的,给用户网页登录rabbitmq用的。

# netstat -utlnp |grep 56
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      6681/beam.smp       
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      6681/beam.smp       
tcp6       0      0 :::5672                 :::*                    LISTEN      6681/beam.smp   

通过ip:15672 尝试网页登录rabbitmq有问题,telnet看15672端口是否通,如果无法登录,添加一条iptables规则,iptables -I INPUT 1 -p tcp --dport 15672 -j ACCEPT
在这里插入图片描述
在这里插入图片描述

Keystone

多域管理,通过domain(域)逻辑隔离不同的租户/项目以及用户,但角色是全局通用的。
如果是管理员角色权限,那么所有的域下面的资源都可以看到。如果是普通用户,只能看到当前所在域下面的资源。
在这里插入图片描述

查看域,[root@controller ~(admin)]# openstack domain list
创建域,[root@controller ~(admin)]# openstack domain create memeda 
删除域,[root@controller ~(admin)]# openstack domain delete memeda
Failed to delete domain with name or ID 'memeda': Cannot delete a domain that is enabled, please disable it first. (HTTP 403) (Request-ID: req-2b24ee89-3200-4e07-bbb9-3265c131910a)
1 of 1 domains failed to delete.
删除域失败,得先禁用域disable再删除
查看域的详情信息,[root@controller ~(admin)]# openstack domain show memed
发现域是enabled启用的,得先禁用域disable再删除
禁用域,[root@controller ~(admin)]# openstack domain set --disable memeda
查看域的详情信息,[root@controller ~(admin)]# openstack domain show memeda
删除域,[root@controller ~(admin)]# openstack domain delete memeda
查看memeda域下面的项目[root@controller ~(admin)]# openstack project list --domain memeda
查看memeda域下面的用户,[root@controller ~(admin)]# openstack user list --domain memeda
在memeda域里面创建项目和用户再关联角色
在memeda域里面创建项目
[root@controller ~(admin)]# openstack project create memeda --domain memeda
在memeda域里面创建用户
[root@controller ~(admin)]# openstack user create --password redhat --domain memeda memeda
关联角色,给哪个域哪个项目哪个用户关联角色(项目和用户最好用id唯一的,防止多个域内用户项目名重复)这里给关联了admin角色权限
[root@controller ~(admin)]# openstack role add --project 333d5d01d0074b8c854d6c8e7de67bc5 --user f6e8c320a6e8482e8c967d5036bab143 admin

启用多域,修改配置文件,vim /etc/openstack-dashboard/local_settings

[root@controller openstack-dashboard(admin)]# vim local_settings
#OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = False
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True   启用多域 ,默认禁用多域 

# Overrides the default domain used when running on single-domain model
# with Keystone V3. All entities will be created in the default domain.
#OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'Default'
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'Default'  默认使用Default域 
启用多域了,想使用默认的Default域登入时也必须手工输入Default

重启apache服务,[root@controller ~(admin)]# systemctl restart httpd
重新登录,输入对应的域,用户名和密码进行登录。
在这里插入图片描述
在这里插入图片描述

Cinder

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建卷的流程,和挂载卷的流程是不一样的。从创建卷到挂载卷,它是两个动作,分别由不通的组件来执行。创建卷的时候,是由cinder组件来创建;而挂载卷的时候,是由nova组件来挂载。
在这里插入图片描述
创建云硬盘,控制节点的cinder-api接收请求,给cinder-scheduler处理做完计算调度后,发放给某个存储节点cinder-volume处理(生产环境有独立的存储节点的,实验环境是将存储部署在控制节点)。
/etc/libvirt/qemu目录下有个xml配置文件,将物理机的/dev/sda映射给虚拟机的/vda,先挂载到物理机再通过xml配置文件映射给虚拟机使用。
在这里插入图片描述
Cinder对接后端NFS存储
具体操作流程请大家参考视频及https://blog.51cto.com/cloudcs/5387939
在这里插入图片描述
cinder-api接收外部请求,放到消息队列中由cinder-scheduler消费,cinder-api和cinder-scheduler服务位于控制节点,cinder-volume在存储节点(这里有3台linux主机存储节点,cinder-scheduler根据调度选择合适linux主机),在下面有驱动,不同的对接存储类型有不同的存储驱动driver,存储不同所执行的命令不同,通过驱动进行翻译在底层存储创建。

Glance

在这里插入图片描述
Glance提供镜像服务的,不是提供镜像存储的。现在实验环境镜像是存储在本地的文件系统中。
在这里插入图片描述
可以把glance对接到swift对象存储,现在实验环境swift对象存储对接的后端存储是在本地文件系统。
在这里插入图片描述
swift是个组件本身不存储,是要对接到后端存储的,后端存储对接默认也是在本地文件系统。
在这里插入图片描述
让glance对接到swift里面,修改配置文件,修改配置文件前先备份。

[root@controller glance(admin)]# cp glance-api.conf glance-api.conf.bak
[root@controller glance(admin)]# vim glance-api.conf
3057 stores=file,http,swift     glance支持的选项
3111 default_store=swift      glance默认使用的选项,默认是file对接的本地文件系统
3982 swift_store_region = RegionOne   默认存储的区域
4032 swift_store_endpoint_type = publicURL 端点类型public,走哪个endpoint去连接
4090 swift_store_container = glance  名字可以自定义,未来上传镜像后,会自动创建一个以glance开头的容器名。
4118 swift_store_large_object_size = 5120 限制最大单个上传的对象为5G大小。
4142 swift_store_large_object_chunk_size = 200 类似于条带化大小,不能超过200个chunk
4160 swift_store_create_container_on_put = true 要不要自动给你创建一个容器
4182 swift_store_multi_tenant = true 是否支持多租户/项目
4230 swift_store_admin_tenants = services   swift对应的租户/项目名称
4382 swift_store_auth_version = 2 身份认证版本
4391 swift_store_auth_address = http://192.168.100.151:5000/v3 身份认证地址(keystonerc_admin环境变量文件里面的OS_AUTH_URL)
4399 swift_store_user = swift  对象存储使用的默认用户swift
4408 swift_store_key = 6424bb8bc0e04f6c  swift用户的密码(去应答文件里面搜索SWIFT)

修改完配置文件后,重启glance服务。
[root@controller glance(admin)]# systemctl restart openstack-glance-*
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
把镜像存在对象存储中,对象存储中存储的内容一般是不改动的数据,查询读取性能好,适合大量永久存储。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/883325.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spark MLlib机器学习库(一)决策树和随机森林案例详解

Spark MLlib机器学习库(一)决策树和随机森林案例详解 1 决策树预测森林植被 1.1 Covtype数据集 数据集的下载地址: https://www.kaggle.com/datasets/uciml/forest-cover-type-dataset 该数据集记录了美国科罗拉多州不同地块的森林植被类型,每个样本…

Git 如何使用TortoiseGit 操作本地仓库

初始化仓库 方法一: 新建一个文件夹,进入文件夹内部操作 1、右键--> 在这里创建Git 版本库 注意: 不要直接在桌面上操作,否则桌面就是一个仓库 方法二: 1、右键-->Git GUI here 方法三: 命令行模式 1、 git init 创建完毕仓库,我们发现,此时我们创建的文件夹下…

安防视频监控有哪些存储方式?哪种存储方式最优?

视频监控系统涉及到大量的视频数据,需要对这些数据进行存储,以备日后查看或备份。视频监控的存储需求需要根据场所的实际情况进行选择,以保证监控数据的有效存储和日后的调阅、回溯。 当前视频监控的存储方式,通常有以下几种&…

Redis数据库的可视化工具AnotherRedisDesktopManager使用+抖音直播小玩法实践

一、它是什么 Another Redis DeskTop Manager 是一个开源项目,提供了以可视化的方式管理 Redis 的功能,可供免费下载安装,也可以在此基础上进行二次开发,主要特点有: 支持 Windows 平台和 MacOS 平台 支持查询 Key、…

分布式图数据库 NebulaGraph v3.6.0 正式发布,强化全文索引能力

本次 v3.6.0 版本,主要强化全文索引能力,以及优化部分场景下的 MATCH 性能。 强化 强化增强全文索引功能,具体 pr 参见:#5567、#5575、#5577、#5580、#5584、#5587 优化 支持使用 MATCH 子句检索 VID 或属性索引时使用变量&am…

蓝帽杯2022

计算机取证 1 内存取证获取开机密码 现对一个windows计算机进行取证,请您对以下问题进行分析解答。 从内存镜像中获得taqi7的开机密码是多少?(答案参考格式:abcABC123) 首先我们直接对 1.dmp 使用 vol查看 py -2 v…

WSL2 Ubuntu子系统安装OpenCV

文章目录 前言一、基本概念二、操作步骤1.下载源码2.安装依赖3.运行编译4.配置路径 前言 OpenCV用C语言编写,它的主要接口也是C语言,但是依然保留了大量的C语言接口。该库也有大量的Python, Java and MATLAB/OCTAVE (版本2.5)的接口。这些语…

大数据_SLA,SLO,SLI 名词解读

参考 : SLI、SLO和SLA,一文彻底搞懂!!!_木给哇啦丶的博客-CSDN博客 前言 SLO和SLA是大家常见的两个名词:服务等级目标和服务等级协议。 云计算时代,各大云服务提供商都发布有自己服务的 SLA 条…

应用层读取wfp防火墙阻断记录

前言 之前的文档中,描写了如何对WFP防火墙进行操作[链接在此],这篇文档中,描述如何获取WFP防火墙进行阻断的操作记录。 需要注意的坑点 使用FWPM_NET_EVENT_TYPE获取防火墙日志时,需要注意,只有丢弃和内核丢弃&…

指定CUDA版本失败的解决方案

新电脑安装的WIN11系统,因为CUDA只有11和12目前能装到WIN11上,所以就装了一个CUDA 11.7。但是编译PBRT失败,所以无奈之下又装了CUDA 12。 但是因为我有的代码需要CUDA 11里的函数,这些函数在CUDA12里被彻底删除了,但是…

CentOS7的journalctl日志查看方法

多台服务器间免密登录|免密拷贝 Cenos7 搭建Minio集群部署服务器(一) Cenos7 搭建Minio集群Nginx统一访问入口|反向动态代理(二) Spring Boot 与Minio整合实现文件上传与下载(三) CentOS7的journalctl日志查看方法 MySQL8.xx一主两从复制安装与配置 1、概述 日志管理工…

下单接口调优实战,性能提高10倍

目录 概述 用到的工具和环境 工具 环境 找瓶颈 总结 概述 最近公司的下单接口有些慢,老板担心无法支撑双11,想让我优化一把,但是前提是不允许大改,因为下单接口太复杂了,如果改动太大,怕有风险。另外…

【Django】Task1安装python环境及运行项目

【Django】Task1安装python环境及运行项目 写在最前 8月份Datawhale组队学习,在这个群除我佬的时代,写一下blog记录学习过程。 参考资源: 学习项目github:https://github.com/Joe-2002/sweettalk-django4.2 队长博客&#xff1a…

使用K8s的一些经验和体会

Java应用程序的奇怪案例 ​在微服务和容器化方面,工程师倾向于避免使用 Java,这主要是由于 Java 臭名昭著的内存管理。但是,现在情况发生了改变,过去几年来 Java 的容器兼容性得到了改善。毕竟,大量的系统&#xff08…

RocketMQ部署 Linux方式和Docker方式

一、Linux部署 准备一台Linux机器,部署单master rocketmq节点 系统ip角色模式CENTOS10.4.7.126Nameserver,brokerMaster 1. 配置JDK rocketmq运行需要依赖jdk,安装步骤略。 2. 下载和配置 从官网下载安装包 https://rocketmq.apache.org/zh/downlo…

三.net core 自动化发布到docker (创建一个dotnet工程发布)

创建Jenkins-create a job 输入名称(建议不要带“”这类的字符),选择自由风格的类型(红框标注的),点击确定 用于测试,下面选项基本没有选择-配置代码地址 选择执行shell #!/bin/bash # 获取短版本号 GITHA…

会一点stm32,只后是做嵌入式Linux还是转JAVA?

选择嵌入式Linux还是转向JAVA,取决于你的兴趣、职业规划和就业市场的需求。以下是一些考虑因素:兴趣和擅长:首先,你应该考虑自己对嵌入式Linux和JAVA的兴趣和擅长程度。如果你对嵌入式系统、硬件交互和底层编程更感兴趣&#xff0…

echart 3d立体颜色渐变柱状图

如果可以实现记得点赞分享,谢谢老铁~ 1.需求描述 根据业务需求将不同的法律法规,展示不同的3d立体渐变柱状图。 2.先看下效果图 3. 确定三面的颜色,这里我是自定义的颜色 // 右面生成颜色const rightColorArr ref(["#79D…

【图像融合】融合算法综述(持续更新)

按时间顺序,综述近5年的融合算法。重点分析了最近两年的work,欢迎留言探讨 文章目录 前言1.SSR-Laplacian Image Fusion(2017)2、FusionGAN(2019)3、MBNet(2020)4、DIDFuse&#xff…