【私有云底层】理解OpenStack核心组件

文章目录

  • 👹 关于作者
  • 一、Keystone 身份认证服务
    • Keystone 架构
    • 工作流程
  • 二、Glance 镜像服务
    • Glance 架构
    • 磁盘与容器
    • Glance 工作流程
  • 三、Placement 放置服务
    • Placement 工作流程
  • 四、Nova 计算服务
    • Nova 架构
    • Nova 工作流程
  • 五、Neutron 网络服务
    • Neutron 架构
    • Neutron 支持的网络类型
    • Neutron 工作流程
  • 六、Dashboard 仪表盘
  • 七、Cinder 块存储服务
    • Cinder 架构
    • Cinder 工作流程
  • ✊ 最后

在这里插入图片描述

👹 关于作者


大家好,我是秋意零。

😈 CSDN作者主页

  • 😎 博客主页

👿 简介

  • 👻 普通本科生在读
  • 在校期间参与众多计算机相关比赛,如:🌟 “省赛”、“国赛”,斩获多项奖项荣誉证书
  • 🔥 各个平台,秋意零 账号创作者
  • 🔥 云社区 创建者
点赞、收藏+关注下次不迷路!

欢迎加入云社区


一、Keystone 身份认证服务

Keystone是身份认证服务,OpenStack核心组件,主要负责用户认证和权限管理。

专业术语: Domain(区域)、Project(项目)、Service(服务)、Endpoint(服务端点)、User(用户)、Role(角色)、Credentials(身份凭证)、Authentication(鉴权)、Token(令牌)

如何理解这些专业术语?

  • 首先我们来看个例子:假如,我在某个地区,比如,重庆、北京(Domain)有一个网吧,这个网吧就是一个项目(Project)。网吧里面对外提供上网、陪玩等服务(Service)供用户使用,这时还需要网吧的详细地址,重庆渝中区xx号,这就是一个服务端点(Endpoint)
  • 有了这些就可以对外提供服务了,但是还不够,上网不是所有用户(User)都可以,比如,要满18岁,这时候我们就需要查看用户(User)身份证等身份凭证(Credentials)鉴权(Authentication),来辨别他是什么角色(Role),不同角色(Role)有不同权限,如,如果是老板就有所有权限,鉴权(Authentication)后可以给用户发放一个令牌(Token),这样用户不用每次过来都进行繁琐的认证、鉴权操作,下次使用服务只需要初始令牌(Token)即可。

把Keystone的 9 个概念纳入到生活当中,是不是一下子全理解并且记住了
在这里插入图片描述

Keystone 架构

在这里插入图片描述
Keystone的服务(Service)是由Token、Catalog、Identity、Policy四大后端模块所支持的。

  • Token backend: 用来生成和管理Token令牌。
  • Catalog backend: 用来存储和管理服务(Service)、服务端点(Endpoint)。
  • Identity backend: 用来管理项目(Project)、用户(User)、角色(Role)和提供验证服务。
  • Policy backend: 用来管理所有访问的权限。

工作流程

在这里插入图片描述

二、Glance 镜像服务

Glance是镜像服务(Image service)的项目代号,是OpenStack的核心组件,主要作用是给虚拟机提供操作系统基础服务,Glance组件可以对Image镜像进行管理,比如,创建、删除、上传、下载、快照的注册、检索、权限管理等操作。

它主要负责对两种镜像数据的管理:

  • 镜像数据: 即镜像文件本身,它存储于后端存储里,所谓的后端存储就是第三方的存储系统,如默认的文件系统、Swift、S3、Cinder等。
  • 镜像元数据(metadata): 存在数据库中的关于镜像的相关信息,如文件名、大小、状态等字符串信息,用于快速检索。

为什么使用 Image 呢?

  • 想象一个场景我们平常安装系统时,首先需要一个 U 盘作为系统的启动盘,将准备在 U 盘里的操作系统,安装在计算机中。这个过程效率低、时间长,安装完成后需要配置一些基础环境,OpenStack 使用这种方式是不可取的,因为如果我需要 1000 或者 10000 台虚拟机,这个时间成本是巨大的,因此使用 Image 。
  • 有了 Image,我们只需安装一个操作系统,及基本配置,然后将它作为一个 Image,这个 Image 就好比一个操作系统模板,直接拿来使用就好了,可以满足同时批量生成大量虚拟机的需求,节约了大量的时间成本。

Glance 架构

在这里插入图片描述

  • Glance-API:应用接口,对外、提供服务接口。
    – 如果服务请求是对元数据的操作,则与数据库进行交互,实现检索、存储、获取镜像的元数据。
    – 如果是对镜像(Image)数据的操作将会通过存储接口(Glance Store)调用后端存储(Store BackEnd)的相应驱动,完成具体镜像文件的上传、删除、查询等操作。
  • Glance Store:存储接口,提供镜像文件存储和查询的操作
    – 包含有对镜像文件的各种操作方法,但是具体的镜像文件操作需要调用后端存储(Store BackEnd)中的具体文件系统(Swift、S3、Cinder等)来处理。
  • Store BackEnd:后端存储,不属于 Glance 组件,所以 Glance 自己并不存储镜像。
    – Image 镜像文件都存放在这里,Glance 支持多种后端存储

在这里插入图片描述

磁盘与容器

磁盘格式(Disk format)

  • Glance 中的磁盘格式指的是虚拟机镜像的磁盘格式,可以理解为镜像文件的后缀名。在虚拟机的创建时,需要指定镜像的磁盘格式。
    在这里插入图片描述

容器格式(Container format)

  • 容器格式我们可以理解为把镜像元数据、用户自定义数据和镜像数据同时装载于一个“容器”中重新打包的格式。在虚拟镜像文件创建的时候,需要管理员指定镜像的容器格式(Container format)。
    在这里插入图片描述

Glance 工作流程

在这里插入图片描述

三、Placement 放置服务

Placement 放置服务,主要做一个监控资源的操作。

创建虚拟机是需要硬件资源的,比如,CPU、内存、磁盘等,所以我们需要知道自己物理机上是否还有资源创建对应虚拟机所请求的资源,而 Placement 是监控物理机上资源的情况,当 Nova 创建虚拟机时就需要通过这个 Placement 组件了解资源情况,从而判断是否可以创建虚拟机。

Placement 工作流程

在这里插入图片描述

四、Nova 计算服务

Nova 是计算服务,主要负责管理虚拟机实例的创建、删除、启动、停止等操作。是 OpenStack 架构中心、核心组件。

  • Nova 是依赖于其他组件为它提供服务的,比如,Glance 为它提供 Image 镜像服务(操作系统),Plancement 提供资源监控服务,Neutron 为虚拟机提供网络服务等等。
  • Nova 本身是没有虚拟化功能的,它通过调用 Libvirt-API(虚拟化应用接口)来创建和管理云主机,Libvirt-API 是管理虚拟化平台的应用接口,提供多种虚拟化技术的接口服务,比如,KVM、Xen、VMware ESX,QEMU等。

Nova 架构

在这里插入图片描述

  • Nova-api
    对外、提供服务接口,接收和响应外部请求
  • Nova-scheduler
    虚拟机调度,和 Placement 配合,负责在那个物理机上创建虚拟机
  • Nova-compute
    Nova 核心服务,负责虚拟机的创建,需要调用底层的虚拟化技术(KVM、Xen、Qemu等)
  • Nova-conductor
    负责与数据库交互,虚拟机相关信息,都保存在数据库中
  • RabbitMQ
    消息队列服务,负责组件服务之间有序通信传递消息,防止消息挤堆、混乱。

Nova 工作流程

在这里插入图片描述

五、Neutron 网络服务

Neutron 是网络服务,核心组件,主要负责虚拟网络设备(虚拟交换机等)的创建和管理网络基础设施,比如,交换机、路由器、网络、子网等,为虚拟机提过网络服务。

Neutron 架构

在这里插入图片描述

  • Neutron-server
    Neutron与外部交流的接口(API),接收与响应外部请求
  • Neutron-plugin
    Neutron 插件对应网络功能,主要作用,在数据库中创建对应网络资源信息,发送请求给 Neutron-agent 实现具体网络功能
  • Neutron-agent
    Neutron-agent 是 Neutron-plugin 的代理,实现 Neutron-plugin 的具体功能,Neutron-agent 接收到 Neutron-plugin 请求后会在 Network Provider (一块真实的网卡)上实现各种网络功能如创建网络、子网、网桥等操作。
  • Network Provider
    网络提供者(一块真实的网卡),是实际执行功能的虚拟或物理网络设备,例如“Linux Bridge”、“Open vSwitch”或者其他支持Neutron的物理交换机。

Neutron 支持的网络类型

Neutron支持多种网络拓扑结构,可以组建多种不同功能的网络

  • FLAT网络模式

在这里插入图片描述

  • Flat 网络模式虚拟机通过一个网桥来与宿主机通信,虚拟机和宿主机在同一网段,所以组网简单。
  • 其缺点是虚拟机和宿主机都在同一个网络内,没有进行网络隔离,容易产生广播风暴。而且每个虚拟机都要用到宝贵的外网IP,这就注定了Flat模式的网络中能容纳的虚拟机(云主机)数量不会多。
  • GRE网络模式

在这里插入图片描述

  • GRE 采用路由转发的方式实现虚拟机和宿主机通信,虚拟机和宿主机不在同网段。
  • 解决了 Flat 模式中虚拟机使用外网IP的缺点。
  • VLAN网络模式
    在这里插入图片描述
  • VLAN 虚拟的局域网,只有在同一个 VLAN 中的虚拟机才能通信,不同 VLAN 可以使用 Trunk 通信
  • VLAN 可以有效解决 Flat 网络模式中网络风暴和占用宿主机 IP 的问题

Neutron 工作流程

在这里插入图片描述

六、Dashboard 仪表盘

仪表板 Dashboard 在 OpenStack 中的项目名称是 Horizon,Dashboard 不是 OpenStack 的核心组件,它是 Web 服务,用户通过 Web 页面操作完成对 OpenStack 的管理,对普通用户比较友好,省去了部分学习成本。

七、Cinder 块存储服务

Cinder 块存储服务,主要作用是为虚拟机提供块设备(硬盘)可以称为 Volume(卷),Cinder 对 Volume 管理,为虚拟机创建和附加块设备,如,创建卷、删除卷和附加卷等。

Cinder 架构

在这里插入图片描述

  • Cinder-api
    Cinder-api 是与外部交互的接口,它接收外部的请求
  • Cinder-volume
    Cinder-volume 提供块存储实际操作和管理的组件。它通过驱动支持不同的存储类型,包括如支持本地存储的“LVM”和实现网络存储的“NFS”等。
  • Cinder-scheduler
    Scheduler 组件通过调度算法,现在在那个存储节点中创建卷
  • Cinder-backup
    Cinder-backup 为存储卷(Volumes)提供了备份服务。

Cinder 工作流程

在这里插入图片描述

✊ 最后


👏 我是秋意零,欢迎大家一键三连、加入云社区

👋 我们下期再见(⊙o⊙)!!!


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅谈测试用例设计 | 京东云技术团队

作者:京东物流 王莹莹 一、测试用例为什么存在 1.1 定义 测试用例(Test Case)是指对特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。测试用例内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,…

FreeRTOS系统学习第一步:新建 FreeRTOS 工程—软件仿真

创建一个FreeRTOS系统工程 1.新建工程文件夹2.Keil新建工程2.1 New Project2.2 Select Device For Target2.3 Manage Run-Time Environment 3. 在 KEIL 工程里面新建文件组3.1在 KEIL 工程里面添加文件 4. 编写 main 函数5. 调试配置5.1 设置软件仿真5.2 修改时钟大小在时钟相关…

基于python的socket网络通信【1】

一、Socket原理 学习了大佬的知识,简单记一些笔记 https://www.jianshu.com/p/066d99da7cbd http://c.biancheng.net/view/2351.html 1.1什么是Socket 在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种…

计算机网路常见面试题(上)

计算机网络基础 # 网络分层模型 # OSI 七层模型是什么?每一层的作用是什么? OSI 七层模型 是国际标准化组织提出一个网络分层模型,其大体结构以及每一层提供的功能如下图所示: 每一层都专注做一件事情,并且每一层都…

网络安全:namp扫描工具

-sP可以扫描一个网段ip以及状态和基本信息,10.1.1.2-3就是扫描2和3这两个ip的主机 -p可以扫描指定ip对应主机的端口号,可以是一个范围 nmap简单扫描:nmap 地址 检查地址是否在线以及open的端口号 在端口开放,不一定可以与对方正常…

Spring 依赖注入源码

文章目录 依赖注入原始依赖注入方式注解方式寻找注入点注入点进行注入 从BeanFactory中找注入对象总结 依赖注入 具体代码是在AbstractAutowireCapableBeanFactory类的populateBean()方法,此方法中主要做的事情如下: 实例化之后,调用Instan…

各大外卖平台占据共享经济市场主要份额,占比近50%

哈喽大家好,随着大量互联网用户和移动支付的普及、大量用户通过共享平台将闲置资源和服务与需求方进行匹配,实现了资源的高效利用和消费者福利的提升。在全球化驱动的新型消费需求以及政策支持下,共享经济正在向更加成熟和规范化的方向发展。…

瑞芯微RK3568智慧视频录像机NVR设备解决方案

NVR技术应用功能模式,较为灵活且能够在很大程度上满足当今视频监控系统功能需求。以NVR技术为核心的小型NVR方案,具有规模较小、操作灵活、使用方便、经济实用等优点,其前端主要配合高清视频摄像机支持8路720P的高清视频图像接入,…

13-NumPy

文章目录 一.基础1.Ndarray对象2.数据类型 二.数组1.数组属性(1)arange(2)shape(3)ndim(4)itemsize 2.创建数组(1)empty(2)zero&#…

Chat GPT在全球变暖中的潜在应用

01 摘要 气候变化是一个全球性的重大挑战,需要整合包括大气科学、海洋学和生态学在内的许多不同科学领域。解决这一问题的复杂性和规模需要利用先进的工具和技术来理解、建模和预测未来的气候状况。人工智能和自然语言处理技术,如Chat GPT,…

Maven 依赖下载失败解决方案——配置国内源 + 具体解决办法

目录 前言 一、配置 Maven 国内源 二、重新下载jar包 三、其他问题 前言 最近发现 spring-boot 框架更新到 2.7.11 了,由于以前一直使用的是 2.7.9 ,所以一直出现依赖下载失败的问题,实际上这是由于 IDEA 会先加载之前下载好的依赖&#xf…

Linux操作系统命令大全

Linux是一种操作系统 Operating System 简称 OS ,是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁。 操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置…

业内常用即时传输网盘

工具名称 业内常用即时传输网盘 功能简介 无需登录,短时间内有效,多用于传输小型敏感文件 外部链接 请见文内 内部网盘链接 在线站点,无网盘链接 使用说明 许多安全行内人士在团队内互传敏感文件时,为实现上传和下载文件…

现场工程师救火-UEFI(BIOS)节能设置导致金牌服务器只跑出龟速

近期协助出现场,解决了一个非常典型的UEFI 启动参数配置不当导致的服务器降效案例。错误的节能参数配置,导致价值几十万的服务器变成龟速服务器,并造成严重的生产事故。 1. 现象 朋友公司近期准备升级2010年就部署的服务器组,新…

《斯坦福数据挖掘教程·第三版》读书笔记(英文版) Chapter 2 MapReduce and the New Software Stack

来源:《斯坦福数据挖掘教程第三版》对应的公开英文书和PPT Chapter 2 MapReduce and the New Software Stack Computing cluster means large collections of commodity hardware, including conventional processors (“compute nodes”) connected by Ethernet …

centos8 mysql 主从复制

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放,树高千尺,落叶归根人生不易,人间真情 目录 Linux centos8

使用D435i深度相机运行ORB-SLAM3

下载安装链接 下载ORB-SLAM3地址: git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git eigen3多版本安装:https://blog.csdn.net/weixin_41756645/article/details/129570141 ORB-SLAM2中eigen3版本为:3.2.10版本 ORB-SLAM3中eigen3版…

【分布式】一致性哈希和哈希槽

当我们拥有了多台存储服务器之后,现在有多个key,希望可以将这些个key均匀的缓存到这些服务器上,可以使用哪些方案呢? 1. 普通哈希取模法 1.1 直接哈希取模 这是一种最容易想到的方法,使用取模算法hash(k…

AI绘图实战(七):室内设计线稿渲染、景观设计手绘稿改动、建筑照片转线稿|Stable Diffusion成为设计师生产力工具

S:AI能取代设计师么? I :至少在设计行业,目前AI扮演的主要角色还是超级工具,要顶替?除非甲方对设计效果无所畏惧~~ 预先学习: 安装及其问题解决参考:《Windows安装Stable Diffusion …

javaScript:cropperjs是一款非常强大却又简单的图片裁剪工具

cropperjs是一款非常强大却又简单的图片裁剪工具,它可以进行非常灵活的配置,支持手机端使用,支持包括IE9以上的现代浏览器。(关键是使用方法简单,几行代码就可以搞定) 官方github文档:GitHub -…