【公有云底层】核心组件基础概念

简介: 【公有云底层】核心组件基础概念

关于作者


大家好,我是秋意零。

😈 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⊙)!!!

目录
相关文章
|
6月前
|
监控 负载均衡 算法
构建高效微服务架构的五大核心组件
【4月更文挑战第6天】随着现代业务需求的多样化和复杂性增加,传统的单体应用已无法满足快速迭代与灵活部署的需求。微服务架构应运而生,以其高度模块化、独立部署和可伸缩性成为企业转型的关键。本文聚焦于构建高效微服务架构的核心组件,从服务发现、配置管理、负载均衡、容错处理到服务监控五个方面进行深入剖析,旨在提供一套全面的技术指南以支持后端开发的最佳实践。
|
敏捷开发 Kubernetes Docker
《深度解析Docker与微服务架构:构建灵活可扩展的现代应用》
《深度解析Docker与微服务架构:构建灵活可扩展的现代应用》
599 0
|
3天前
|
运维 Kubernetes Cloud Native
云原生架构:构建现代应用程序的基石####
本文将深入探讨云原生架构的核心概念、关键特征及其对现代软件开发的重要性。不同于传统的摘要概述,我们将通过一个生动的案例引入——想象一下,一家初创企业如何在短短几个月内,从零开始构建起一个能够支撑数百万用户访问量、具备高可用性与弹性伸缩能力的在线服务平台。这个过程中,云原生技术扮演了怎样的角色?它是如何帮助这家企业快速响应市场变化,同时保持系统稳定性和成本效益的?带着这些问题,让我们一起揭开云原生架构背后的神秘面纱。 ####
|
3天前
|
API 持续交付 网络架构
深入解析微服务架构:原理、优势与实践
深入解析微服务架构:原理、优势与实践
8 0
|
2月前
|
运维 Cloud Native 持续交付
探索云原生技术:构建高效、可扩展的现代应用程序
在当今数字化时代,企业面临着日益增长的压力,需要快速开发和部署应用程序以保持竞争力。传统的软件开发方法已经无法满足这些需求,因此许多企业转向了云原生技术。本文将深入探讨云原生的概念、优势以及如何利用云原生技术构建高效、可扩展的现代应用程序。通过分析实际案例,我们将揭示云原生技术在实现业务敏捷性、降低运维成本和加快产品上市时间方面的巨大潜力。
56 1
|
2月前
|
Cloud Native Devops 持续交付
探索云原生架构:构建高效、灵活和可扩展的系统
本文将深入探讨云原生架构的核心概念、主要技术以及其带来的优势。我们将从云原生的定义开始,了解其设计理念和技术原则;接着分析容器化、微服务等关键技术在云原生中的应用;最后总结云原生架构如何助力企业实现数字化转型,提升业务敏捷性和创新能力。通过这篇文章,读者可以全面了解云原生架构的价值和应用前景。
|
2月前
|
Cloud Native Devops 持续交付
探秘云原生架构:构建高效、灵活的现代应用
在当今数字化时代,企业面临着日益复杂的技术挑战和快速变化的业务需求。为了适应这种环境,云原生架构应运而生。本文将带您深入了解云原生的核心概念、关键技术和应用案例,揭示其在提升业务效率、降低运维成本方面的独特优势。通过阅读本文,您将获得关于如何利用云原生技术构建现代化应用的宝贵见解。
39 0
|
3月前
|
监控 负载均衡 Java
(九)漫谈分布式之微服务组件篇:探索分布式环境下各核心组件的必要性!
本文将深入探讨微服务中各个组件的必要性,以此帮助各位更好地加深对分布式系统的掌握度。
116 1
|
5月前
|
存储 缓存 Linux
【实战指南】嵌入式RPC框架设计实践:六大核心类构建高效RPC框架
在先前的文章基础上,本文讨论如何通过分层封装提升一个针对嵌入式Linux的RPC框架的易用性。设计包括自动服务注册、高性能通信、泛型序列化和简洁API。框架分为6个关键类:BindingHub、SharedRingBuffer、Parcel、Binder、IBinder和BindInterface。BindingHub负责服务注册,SharedRingBuffer实现高效数据传输,Parcel处理序列化,而Binder和IBinder分别用于服务端和客户端交互。BindInterface提供简单的初始化接口,简化应用集成。测试案例展示了客户端和服务端的交互,验证了RPC功能的有效性。
402 7
|
运维 Java Serverless
深度解析四大主流软件架构模型:单体架构、分布式应用、微服务与Serverless的优缺点及场景应用
深度解析四大主流软件架构模型:单体架构、分布式应用、微服务与Serverless的优缺点及场景应用
1162 0