1. 首页 > 娱乐 > 生活科普

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

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

一、认识 OpenStack

OpenStack is a cloud operating system that controls large pools of compute,storage, and networking resources throughout a>

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

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

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

I.Glance,Cinder,Swift 是什么?

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

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

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

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

III.Cinder

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 数据库。

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

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

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

三、三大存储组件的区别

功能上的区别

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

存储空间的区别

Glance 并不保存镜像,他将数据交给后端存储去进行保存:Swift、本地存储、OBS 等;Cinder 本身也不保存卷,但他可以通过 Driver来接管各种存储,并通过这些存储给虚拟机提供空间。他可以接管华为 VRM> 来源: Cloud云说

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载者并注明出处:https://www.jmbhsh.com/shenghuokepu/34598.html

联系我们

QQ号:***

微信号:***

工作日:9:30-18:30,节假日休息