文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何构建基于Ceph对象存储

2023-06-02 02:00

关注

这篇文章主要介绍了如何构建基于Ceph对象存储,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

存储发展

数据存储是人类永恒的话题和不断探索的主题

存储的三种方式

块存储

如何构建基于Ceph对象存储

DAS

直接附加存储(Directed Attached Storage,DAS)作为一种最简单的外接存储方式,通过数据线直接连接在各种服务器或客户端扩展接口上。它本身是硬件的堆叠,不带有任何存储操作系统,因而也不能独立于服务器对外提供存储服务。DAS常见的形式是外置磁盘阵列,通常的配置就是RAID控制器+一堆磁盘。DAS安装方便、成本较低的特性使其特别适合于对存储容量要求不高、服务器数量较少的中小型数据中心。

SAN

存储区域网络(Storage Area Network,简称SAN),SAN默认指FC-SAN,SAN存储有两种结构:

优点
缺点

NAS存储

如何构建基于Ceph对象存储

图片来源:redhat官网

Network Attached Storage 网络附加存储,采用 NFSCIFS 协议访问数据,以文件为传输协议,通过 TCP/IP实现网络化存储,可扩展性好、价格便宜、用户易管理,如目前在集群计算中应用较多的NFS文件系统。

优点
缺点

对象存储

如何构建基于Ceph对象存储

块存储读写快、不利于数据共享,文件存储数据共享方便、但是读写慢,能否弄一个读写快而且可以共享数据的存储,于是对象存储就诞生了。块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构。

3个核心概念
对象

对象是对象存储中的最小单元,比如照片就是一个对象,对象由元数据信息(MataData,包含Length,lastModify等),用户数据(Data),用户自定义的数据信息(拍摄者、拍摄设备等)和文件名(Key)组成。

如何构建基于Ceph对象存储

存储桶

作为存放对象的容器

用户

对象存储的使用者,存储桶的拥有者,每个用户使用AccessKeyId 和 SecretAccessKey对称加密的方法来验证某个请求的发送者身份。

对象存储适合存什么

用来存海量非结构化数据的,对象存储将数据以对象的方式存储,而不是以传统的文件和数据块的形式存储,每个对象都要存储数据、元数据和一个唯一的标识符。

缺点

应用代码需要改动,无法修改对象,需要一次性完整写入

优点

无限扩容

基于Ceph的对象存储构建实践

什么是Ceph

加州大学 Santa Cruz 分校的 Sage Weil(DreamHost 的联合创始人)博士论文设计的新一代自由软件分布式文件系统。软件定义存储(Software Defined Storage, SDS)。统一的存储解决方案。 提供了三种存储方式:块存储、文件存储、对象存储。Ceph的架构如下:

如何构建基于Ceph对象存储

图片来源:Ceph官网

Ceph组件

Ceph Monitor(监视器,简称Mon)

Mon通过保存一份集群状态映射来的维护整个集群的健康状态。它分别为每个组件维护映射信息。所有集群节点都向Mon节点汇报状态信息

RADOS

(Reliable Autonomix Distributed Object Store),是存储集群的基础。在Ceph中所有的数据都是以对象的形式存储,RADOS就负责存这些数据,不考虑它们的类型。

Ceph对象存储设备OSD

Ceph 分布式对象存储系统的对象存储守护进程。它负责把对象存储到本地文件系统,并使之通过网络可访问。

RADOS网关(RGW)

提供了兼容Amazon S3和OpenStack对象存储API(Swift)的restful API接口。支持多租户和OpenStack Keystone身份验证。

MDS(Ceph元数据服务器)

为CephFS跟踪文件层次结构和存储元数据。

librados

librados库为PHP,Ruby,Java,Python,C和C++这些编程语言提供了方便地访问RADOS接口的方式。

RBD(RADOS块设备)

Ceph块设备,原名是 RADOS 块设备,提供可靠的分布式和高性能块存储磁盘给客户端,将块数据以顺序条带化的形式分散存储在的多个 OSD 上,支持自动精简配置、动态调整大小、完整和增量快照、写实复制克隆等企业级特性,而且RBD服务已经被封装成了基于 librados 的一个原生接口。

CephFS(Ceph Filesystem)

Ceph  文件系统提供了一个使用Ceph存储集群存储用户数据的与POSIX兼容的文件系统。和RBD、RGW一样,基于librados封装了原生接口。

Ceph的特点

基于Ceph的对象存储实践

客户端通过 4,7 层负载均衡,基于HTTP协议,将请求转发至对象存储网关(Rados GateWay), 对象存储网关通过Sockets与集群通信,至此,完成了整个数据的传输。

如何构建基于Ceph对象存储

用户认证

如何构建基于Ceph对象存储

  1. 应用在发送请求前,使用用户私有秘钥(secret key)、请求内容等,采用与RGW网关约定好的算法计算出数字签名后,将数字签名以及用户访问秘钥access_key封装在请求中发送给RGW网关

  2. RGW网关接受到请求后,使用用户访问秘钥作为索引送RADOS集群中读取用户信息,并从用户信息中获取到用户私有秘钥。

  3. 使用用户私有秘钥、请求内容等,采用与应用约定好的算法计算数字签名。

  4. 判断RGW生成的数字签名和请求的签名是否匹配,如果匹配,则认为请求是真实的,用户认证通过,如果匹配返回 S3 error: 403 (SignatureDoesNotMatch)

对象存储IO路径分析

如何构建基于Ceph对象存储

应用通过http协议将请求发送至对象存储网关,网关收到 I/O 请求后,从http语义中解析出S3或Swift数据并进行一系列检查,检查通过后,根据不同API操作请求执行不同的数据处理逻辑,通过 librados 接口从 RADOS Cluster中 GET 或者 PUT 数据,完成整个I/O过程。

感谢你能够认真阅读完这篇文章,希望小编分享的“如何构建基于Ceph对象存储”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯