OpenStack 入门及三大存储组件浅析

栏目: 编程工具 · 发布时间: 5年前

内容简介:大家好,想必大家也听说过 openstack ,很多人在学习过程中都感觉openstack 整个架构比较复杂,涉及到的组件较多,学习也比较吃力。OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives admini

大家好,想必大家也听说过 openstack ,很多人在学习过程中都感觉openstack 整个架构比较复杂,涉及到的组件较多,学习也比较吃力。

一、认识 OpenStack

OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.

以上是官网对 OpenStack 的定义,OpenStack 对整个数据中心的计算、存储以及网络资源进行统一的管理。云计算平台是一个面向服务层面的架构,按照提供服务的不同可分为 IaaS(Infrastructure as a Service,基础设施即服务)、PaaS(Platform as a Service,平台即服务)和 SaaS(Software as a Service,软件即服务)。由上述官网定义来看,OpenStack 针对的是 IT 基础设施,是 IaaS 层的云操作系统。

OpenStack 已经走过了 9 个年头。每半年会发布一个新的版本,版本以字母顺序命名。现在已经到了第 18 个版本 Rocky(版本 R),从最初的只有两个模块(服务),发展到现在的数十个模块,每个模块都作为独立的子项目开发。那么,既然有那么多的服务模块,我们应该如何去进行高效的学习呢——抓住 openstack 最本质的东西(计算,存储,网络资源的统一管控),如下图所示:

OpenStack 入门及三大存储组件浅析

在 openstack 这么庞大的架构里面,究竟哪些组件模块是负责管理计算,存储,网络资源的呢?组件之间又是如何进行协调工作的呢?(下图被称为「神图」,图片有点大,请横屏来看)

OpenStack 入门及三大存储组件浅析

架构是个好东西,它能够帮助我们站在高处看清楚事物的整体结构,上图是 openstack 各个组件之间以及组件内部的交互图,其实也并不复杂。今天我们先来学习一下 openstack 的三大存储组件 Glance,Cinder,Swift。

二、浅析 OpenStack 的三大存储组件 Glance,Cinder,Swift

I.Glance,Cinder,Swift 是什么?

首先咱们要明白,Glance,Cinder,Swift 究竟是什么东西?在 openstack 当中,Glance 是负责提供 Image Service(镜像服务)的,这个所谓的镜像服务指的就是去管理 Image,让用户能够发现、获取和保存 Image。Image 是一个模板,里面包含了基本的操作系统和其他的应用软件,在云环境的大需求下,(大规模)手动去安装部署系统比较不灵活,时间较长,效率低下,这个时候就需要更加高效的解决方案————Image。再来看 Cinder,在 openstack 当中,Cinder 是用来提供块存储服务的。什么是块存储?大家其实可以简单理解为裸硬盘,通过某种协议(SCSI,iSCSI,SAN 等)挂接裸硬盘,然后进行分区、格式化、创建文件系统,或者直接使用裸硬盘提供存储空间,进行数据存储。Swift,为 openstack 提供一种分布式、持续虚拟对象存储,他其实类似于 Amazon Web Service 的 S3 简单存储服务。Swift 具有跨节点百级对象的存储能力,內建冗余和失效备援管理,也能够处理归档和媒体流,特别是对大数据(千兆字节)和大容量(多对象数量)的测度非常有效。该服务不是必需的,为可选服务。接下来咱们具体来看下三大组件的内部架构以及各个子组件的作用。

II.Glance

OpenStack 入门及三大存储组件浅析

Glance-api:接收 REST API 请求,通过其他模块(glance-registry 及 image store)来完成诸如镜像的查找、获取、上传、删除等操作。

glance-registry:用于与 MySQL 数据库交互,用于存储或获取镜像的元数据(metadata)。

image store:是一个存储的接口层,通过这个接口,glance 可以获取镜像,image store 支持的存储有 Amazon 的 S3、OpenStack 本身的 Swift,还有诸如 ceph,sheepdog,GlusterFS 等分布式存储。

III.Cinder

OpenStack 入门及三大存储组件浅析

Cinder Client 封装 Cinder 提供的 rest 接口,以 CLI 形式供用户使用。

Cinder API 对外提供 rest API,对操作需求进行解析,对 API 进行路由寻找相应的处理方法。包含卷的增删改查(包括从源卷、镜像、快照创建)、快照增删改查、备份、volume type 管理、挂载/卸载(Nova 调用)等。

Cinder scheduler 负责收集 backend 上报的容量、能力信息,根据设定的算法完成卷到指定 cinder-volume 的调度。

Cinder volume 多节点部署,使用不同的配置文件、接入不同的 backend 设备,由各存储厂商插入 driver 代码与设备交互完成设备容量和能力信息收集、卷操作。

Cinder backup 实现将卷的数据备份到其他存储介质(目前 Swift/Ceph/TSM 提供了驱动)。

SQL DB 提供存储卷、快照、备份等数据,支持 Mysql、PG、MSSQL 等 SQL 数据库。

IV.Swift

OpenStack 入门及三大存储组件浅析

Proxy Server:对外提供对象服务 API,由于采用无状态的 REST 请求协议,可以进行横向扩展来均衡负载。 ◎Account Server:提供账户元数据和统计信息,并维护所含容器列表的服务,每个账户的信息被存储在一个 SQLite 数据库中。 ◎Container Server:提供容器元数据和统计信息,并维护所含对象列表的服务,每个容器的信息也存储在一个 SQLite 数据库中。 ◎Object Server:提供对象元数据和内容服务,每个对象的内容会以文件的形式存储在文件系统中,元数据会作为文件属性来存储,建议采用支持扩展属性的 XFS 文件系统。

Replicator:检测本地分区副本和远程副本是否一致,发现不一致时会采用推式(Push)更新远程副本,并且确保被标记删除的对象从文件系统中移除。 ◎Updater:当对象由于高负载的原因而无法立即更新时,任务将会被序列化到在本地文件系统中进行排队,以便服务恢复后进行异步更新。 ◎Auditor:检查对象,容器和账户的完整性,如果发现比特级的错误,文件将被隔离,并复制其他的副本以覆盖本地损坏的副本;其他类型的错误会被记录到日志中。

Account Reaper:移除被标记为删除的账户,删除其所包含的所有容器和对象。

三、三大存储组件的区别

功能上的区别

Glance 提供镜像服务,他负责对镜像进行管理,例如发现、注册,镜像是产生虚拟机系统盘的模板;Cinder 给虚拟机提供块级的持久化卷,通过 Cinder 可以实现卷的创建、挂载、快照等功能;Swift 是 openstack 提供的一种分布式、持续虚拟对象存储。

存储空间的区别

Glance 并不保存镜像,他将数据交给后端存储去进行保存:Swift、本地存储、OBS 等;Cinder 本身也不保存卷,但他可以通过 Driver 来接管各种存储,并通过这些存储给虚拟机提供空间。他可以接管华为 VRM Datastore、VMware Datastore、华为 FusionStorage、华为 OceanStorV3、LVM 等;Swift 它本身维持空间并对外提供对象存储服务,通常使用本地存储+XFS 文件系统。

总结一下,今天我们学习了 openstack 以及三大存储组件的本质以及作用,想要深入学习的同学可以课下去查阅 openstack 相关的文档,参照对应的文档不妨可以搭建 openstack 实验环境来进行一个系统的学习。Openstack经过多年的发展,整个组织架构变得越来越庞大。本身提供多种存储服务,这也是为了满足更多不同的需求,体现出开源项目灵活快速的特性。总的说来,当需要去选择存储的时候,如果考虑到将来会被多个应用所共同使用,应该视为长期的决策。Openstack作为一个开放的系统,最主要是解决软硬件供应商锁定的问题,可以随时选择新的硬件供应商,将新的硬件和已有的硬件组成混合的集群,统一管理,当然也可以替换软件技术服务的提供商,不用动应用。这是开源本身的优势。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Mathematica Cookbook

Mathematica Cookbook

Sal Mangano / O'Reilly Media / 2009 / GBP 51.99

As the leading software application for symbolic mathematics, Mathematica is standard in many environments that rely on math, such as science, engineering, financial analysis, software development, an......一起来看看 《Mathematica Cookbook》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码