Ceph学习笔记(1)- 架构概述
简介
Ceph的目标是采用商业硬件来构建大规模的、具有高可用、高扩展、高性能的分布式存储系统,ceph具有如下特点:
- 软件定义存储:Ceph不需要特定的硬件,在主流的Linux发行版等类Unix操作系统上均可运行
- 分布式存储:得意与计算寻址让Ceph客户端可以直接与服务端任意节点通信,避免因存在访问热点产生的性能瓶颈,这也是他可以轻易管理PB级以上规模集群的重要原因
- 统一存储:Ceph支持传统的块存储(RBD)、文件系统存储(Ceph fs)与新兴的对象存储协议(RADOSGW)
架构
Ceph采用存储应用与存储服务完全分离(Client/Server)的模式,基于Rados对外提供服务。客户端可以直接通过LIBRADOS访问RADOS系统,也可以调用在LIBRADOS上封装的Radosgw、librbd、libcephfs这些接口访问存储。

图1 Ceph架构图
RADOS网关接口(RGW):如图1,RGW提供对象存储服务,通过librados允许APP直接与Ceph对象存储建立连接,基于librados封装的librgw也提供了与Amazon S3协议和OpenStack Swift协议兼容的RESTful API。可以将它理解为对文件(对象)进行上传、下载、查询、删除等。
- 对象存储采用扁平化目录结构,利于进行大规模的扩容。
- S3/Swift接口均分三级:Account/Bucket/Object(账户/桶/对象)
RADOS块设备(RBD)接口:如图1,Ceph块设备,提供持久块存储,并将数据分散到不同OSD上,是一个分布式的块设备。与传统的SAN存储类似,RBD可以通过SCSI或FC给应用提供一个独立的LUN或者卷。
- 在用户态,通过QEMU Driver供虚拟机作为磁盘使用
- 在操作系统内核态将块设备映射给物理主机,供物理主机使用
Ceph文件系统(CephFS)接口:在rados基础上增加了元数据服务器(MDS),它只为CephFS文件系统跟踪文件的层次结构和存储元数据,(RBD与RADOS不需要MDS,MDS不直接提供数据给客户端)。CephFS类似于传统的NAS,通过NFS和CIFS协议提供文件目录服务。
RADOS(Reliable Autonomic Distributed Object Store):如图1,Ceph的底层实现为RADOS。在Ceph中数据以对象的形式存储,RADOS层保存这些对象,并确保数据始终保持一致,进行数据复制、故障检测和恢复、数据迁移、集群各节点的数据平衡等工作,RADOS是Ceph的核心,包括以下功能:
Monitor为整个集群提供全局配置和系统信息(几数个Monitor组成小型的强一致性分布式)
CRUSH算法实现对象寻址过程(Ceph对象落在哪里由CRUSH计算得出)
对数据进行读写操作
集群数据均衡
保证集群副本之间数据一致性
数据自动恢复
克隆和快照
对象分层存储
典型的Rados集群如图2:

图2 Rados集群
学习自:
《Ceph源码分析》 常涛
《Ceph Cookbook》 Karan Singh
《Ceph之RADOS设计原理与实现》 谢型果 严军
Ceph学习笔记(1)- 架构概述的更多相关文章
- OGG学习笔记01-基础概述
OGG学习笔记01-基础概述 OGG(Oracle Golden Gate),最近几年在数据同步.容灾领域特别火,甚至比Oracle自己的原生产品DataGuard还要风光,主要是因为其跨平台.跨数据 ...
- spring学习笔记(一) Spring概述
博主Spring学习笔记整理大部分内容来自Spring实战(第四版)这本书. 强烈建议新手购入或者需要电子书的留言. 在学习Spring之前,我们要了解这么几个问题:什么是Spring?Spring ...
- Flink学习笔记:Connectors概述
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- Adaptive AUTOSAR 学习笔记 6 - 架构 - 方法论和 Manifest
本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 AP:AUTOSAR Adap ...
- JDBC学习笔记(1)——JDBC概述
JDBC JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据.JDBC代表Java数据库连接. JDBC库中所包含的API任务通常与数据库使用: 连接到数 ...
- Spring学习笔记之Spring概述
概述 Spring是一个java应用最广的开源框架,它是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Deve ...
- JAVA NIO学习笔记1 - 架构简介
最近项目中遇到不少NIO相关知识,之前对这块接触得较少,算是我的一个盲区,打算花点时间学习,简单做一点个人学习总结. 简介 NIO(New IO)是JDK1.4以后推出的全新IO API,相比传统IO ...
- ASP.NET MVC4学习笔记之总体概述
断断续续使用ASP.NET MVC框架也有一年多了,也算积累了一些经验,唉,一直想写一些笔记好好总结一下,人太懒不想动笔,今天终于决定开始.希望自己能坚持下去. 这篇文章大体介绍ASP.NET MVC ...
- Python学习笔记 :01概述
Python基础 首先推荐学习Python基础的教程和书籍 视频教程推荐南京大学张莉老师在cousera上的教程用Python玩转数据 入门教程<Python基础教程> 数据挖掘教程< ...
- 【转】JDBC学习笔记(1)——JDBC概述
转自:http://www.cnblogs.com/ysw-go/ JDBC JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据.JDBC代表Java数据 ...
随机推荐
- [THUPC 2023 初赛] 快速 LCM 变换
题目描述 小 I 今天学习了快速最小公倍数变换(Fast Least-Common-Multiple Transform, FLT),于是他想考考你. 给定一个长度为 \(n\) 的正整数序列 \(r ...
- 关于RichEdit的那些坑
项目开发中用到了richedit,但是并没有用到图文的功能,只是说使用他的各种属性,集成了一个自己的超文本编辑器. 开发遇到了各种坑,在这里跟大家分享下: 1: 跳转编辑界面,无法获取焦点. 通过Ri ...
- ElasticSearch之Refresh API
使用本方法,显式的执行refresh操作. 默认情况下,ElasticSearch启动后台任务,周期性执行refresh操作,周期使用参数index.refresh_interval控制. 本方法触发 ...
- 国产Geoscene Server 4.0编译SOE总结
背景:公司一直使用Arcgis Server 10.1.Visual Studio 2010开发SOE功能,随着国产化软件发展大趋势,SOE中的各种分析功能,需要升级到Geoscene Server环 ...
- 2021-01-16:我截获了登录token的话,是不是就获得了登录状态,这样就不安全了。如何保证安全?
福哥答案2021-01-06: 知乎答案: 首先,Token 一般放在 Header 或者 Cookies 中,Http 是明文传输,Https 是密文传输.可以一定程度防止Token 截获. 第二, ...
- 记录:idea git push失败问题
问题描述: 重复弹出密码登录框,但是push失败 解决,用ssh的方式登录 1.生成ssh 配置用户名 git config --global user.name "tmqq2333&quo ...
- 华为云数据治理生产线DataArts,让“数据‘慧’说话”
摘要:数据治理生产线DataArts改变了传统"人拉肩抗"的数据处理方式,帮助提升效率:降低技术门槛,让"人人都是分析师":让"数据'慧'说话&quo ...
- 云图说|云上应用监控神器——应用性能监控APM2.0
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: 应用性能管理服务 ...
- 从下个月开始,App Store 要求使用 Xcode 14 构建的 iOS 16 兼容应用程序
Xcode 继向开发者发布第一个iOS 16.5 测试版后,苹果公司周二宣布了对开发者向 App Store 提交应用程序的新要求.从下个月开始,Apple 将要求每个应用程序都必须使用 Xcode ...
- Spring 太肥、太慢?你受不了?那 Solon Java Framework 就是你的西施
Solon 是什么? Java 生态型应用开发框架.它从零开始构建,有自己的标准规范与开放生态(历时五年,已有全球第二级别的生态规模).与其他框架相比,它解决了两个重要的痛点:启动慢,费内存.2023 ...