Openstack架构解析

2022-6-9 216 6/9

什么是Openstack

OpenStack是一个开源的云计算管理平台项目,虽然KVM实现了物理计算资源的虚拟化,但这些虚拟化资源的管理维护成为了问题且无其他扩展功能,而Openstack很好的解决了这个问题,它不是某一个单一的产品或者技术,而且一套技术栈,包含诸多模块化服务组件,实际使用时,可根据需求进行配置。

Openstack架构简介

Openstack架构解析

Openstack服务组件的名称及关系如上,其中可根据重要程度分为三类:

◆核心服务提供计算、网络、镜像、存储,分别为Nova、Neutron、Glance、Cinder。

◆辅助管理服务Keystone、Ceilometer、Horizon。

◆其他为扩展服务,分别为Swift、Ironic、Trove、Sahara、Heat。

Openstack各个服务之间通过公用的API接口进行交互,大部分服务均包含一个API进程,用于监听API请求,根据服务的性质选择处理请求或转发请求,服务进程之间的通讯通过消息队列实现。

服务介绍

每个服务包含诸多组件来实现不同功能,本文只对服务做介绍,详细的组件咱不列举。

Nova

管理虚拟机的整个生命周期:创建、运行、挂起、调度、关闭、销毁等。这是真正的执行部件。接受 DashBoard 发來的命令并完成具体的动作。但是 Nova 不是虛拟机软件,所以还需要虚拟机软件(如 KVM、Xen、Hyper-v 等)配合。

Neutron

Neutron为 OpenStack 提供网络连接服务,负责创建和管理L2、L3 网络,为 VM 提供虚拟网络和物理网络连接。

Glance

Glance 可存储和检索多个位置的虚拟机磁盘镜像,Nova 创建 VM 时将使用 Glance 提供的镜像。

Cinder

Cinder为 VM 提供块存储服务。Cinder 提供的每一个存储卷在 VM 看来就是一块虚拟硬盘,一般用作数据盘,存储的分配和消耗是由块存储驱动器或者多后端配置的驱动器决定的,如NAS/SAN、 NFS、ISCSI、CEPH等。

Keystone

Keystone提供认证服务,接收来自用户和服务的认证请求,并且对其身份进行认证请求,并且对其身份进行认证。

Ceilometer

Ceilometer提供 OpenStack监控和计量服务,为报警、统计或计费提供数据。

Horizon

Horizon提供了一个网页界面,用户登录后可以做这些操作:管理虚拟机、配置权限、分配 IP 地址、创建租户和用户等。本质上就是通过图形化的 操作界面控制其他服务。

Swift

Swift提供对象存储服务。VM 可以通过 RESTful API 存放对象数据。作为可选的方案,Glance 可以将镜像存放在 Swift 中;Cinder 也可以将卷数据备份到Swift。

Ironic

Ironic为Openstack提供裸金属管理的功能,将物理机直接加入到资源池中,用户可直接在物理机上部署操作系统和应用、

Trove

Trove是OpenStack提供的数据库即服务的服务。主要是为了使用户能够快速轻松地利用关系数据库的功能,而无需承担处理复杂管理任务的负担。云用户和数据库管理员可以根据需要配置和管理多个数据库实例。

Sahara

Sahara是OpenStack提供的数据处理服务,主要是为用户提供一种简单的方法来在OpenStack上预配数据处理框架(例如Hadoop,Spark和Storm),使用户能够在 OpenStack 平台上(利用虚拟机)一键式创建和管理如Hadoop 集群。

Heat

Heat是OpenStack提供的编排服务,用于通过运行OpenStack API调用来生成正在运行的云应用程序,描述云应用程序。使用模板,可以创建大多数OpenStack资源类型,例如实例,浮动IP,卷,安全组和用户。

其他组件

Openstack还包含诸多非核心组件,这些组件都丰富了云平台的功能和操作,如Congress(策略服务)、Designate(DNS 服务)、Freezer(备份及还原服务)、Magnum(容器支持)、Mistral(工作流服务)、Monasca(监控服务)、Searchlight(索引和搜索)、Senlin(集群服务)、Solum(APP集成开发平台)等。

举例:在部署完成的云系统平台上,用户通过Horizon或者RestAPI的方式在经Keystone模块认证授权后,可以执行创建虚拟机服务。通过Nova模块创建虚拟机实例,Nova调用Glance模块提供的镜像服务,然后调用Neutron模块提供网络服务。根据需要可以选择给虚拟机增加存储卷,卷功能由Cinder模块提供服务。整个过程在Ceilometer模块的资源监控下完成。同时Cinder提供的Volume和Glance提供的镜像可以通过Swift对象存储机制进保存。

Openstack四大节点

Openstack是由管理节点、计算节点、网络节点、存储节点四大部分组成,(当然测试环境四个节点也可以部署一台机器上)。

Openstack架构解析

其中:

管理节点:负责对其余节点的控制,包含虚拟机建立,迁移,网络分配,存储分配等等。
计算节点:负责创建虚拟机并运行。
网络节点:负责对外网络与内网络之间的通信。
存储节点:负责对虚拟机的额外存储管理等等。

管理节点

管理节点包括:管理支持服务、基础管理服务、扩展管理服务。

管理支持服务:

MySQL:数据库作为基础扩展服务产生的数据存放的地方。
Qpid:消息队列(也称为消息中间件)为其他服务之间提供统一的消息通信服务。

基础管理服务:

Keystone:认证管理服务,提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库。
Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板。
Nova:计算管理服务,提供了对计算节点的Nova的管理,使用Nova-API进行通信。
Neutron:网络管理服务,提供了对网络节点的网络拓扑管理,同时提供了Neutron在Horizon的管理面板。
Horizon:控制台服务,提供了以web的形式,对所有节点的所有服务管理,,通常把该服务称为DashBoard。

扩展管理服务:

Cinder:提供管理块存储节点服务,同时提供Cinder在Horizon中的管理面板。
Swift:提供管理对象存储节点服务,同时提供Swift在Horizon中的管理面板。
Trove:提供管理数据库的节点服务,同时提供Trove在Horizon中的管理面板。
Heat:提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性。
Centimeter:提供对物理资源以及虚拟资源的监控,并且记录这些数据,对该数据进行分析,在一定的条件下,触发相应的动作。

计算节点

计算节点一般包括Nova、Neutron、Telemeter三个服务。

基础服务

Nova:提供虚拟机的创建、运行、迁移、快照等各种围绕虚拟机的服务,并且提供API与控制节点对接,有控制节点下发任务。
Neotron:提供计算节点与网络节点之间的通信服务。

扩展服务

Telmeter:提供计算节点的监控代理,将虚拟机的情况反馈给控制节点,是Centimeter的代理服务。

网络节点

网络节点只包含Neutron服务。

Neutron:负责管理私有网段与公有网段的通信,以及管理虚拟机网络之间的通信拓扑,管理虚拟机之上的防火墙等等。

存储节点

存储节点包括块存储和对象存储服务等等。

Cinder:块存储服务,提供相应的块存储服务,简单来说,就是虚拟出一块磁盘,可以挂载到相应的虚拟机之上,不受文件系统等因素的影响,对于虚拟机来说,这个操作就像新加了一块硬盘,可以对完成对磁盘的任何操作,包括挂载,卸载,格式化,转换文件系统等操作,大多应用于虚拟机空间不足的情况。
Swift:对象存储服务,提供相应的对象存储,简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件。

- THE END -
Tag:

Tenkms

12月01日00:10

最后修改:2023年12月1日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论