分布式存储系统 Ceph
你了解Ceph吗?
Ceph是一种分布式存储系统,它可以将多台服务器组成一个超大集群,把这些机器中的磁盘资源整合到一块儿,形成一个大的资源池(PB级别),然后按需分配给应用使用。
那么你知道Ceph的架构吗?

Ceph的底层实现是RADOS,RADOS是由C++写的,但是它向外界暴露了调用接口,即LibRADOS,应用程序只需要调用LibRADOS的接口,就可以操纵Ceph了。这其中,RADOS GW用于对象存储,RBD用于块存储,它们都属于LibRADOS;CephFS是内核态程序,向外界提供了POSIX接口,用户可以通过客户端直接挂载使用。
你知道RADOS内部架构和工作原理吗?

每台服务器都有好几块磁盘(sda,sdb,sdc等),磁盘又可以进一步分区(sda1,sda2等)。CEPH中最基本的进程就是OSD(对象存储设备),每个磁盘对应一个OSD。
如果用户通过客户端想要存储一个文件,那么在RADOS中,该文件实际上会分为一个个4M块大小的对象。每个文件都一个文件ID(例如A),那么这些对象的ID就是(A0,A1,A2等)。然而在分布式储存系统中,有成千上万个对象,光遍历就要花很长的时间,所以对象会先通过hash-取模运算,存放到一个PG(Place Group)中,PG相当于数据库中的索引(PG的数量是固定的,不会随着OSD的增加或者删除而改变),这样一来,只需要首先定位到PG的位置,然后在PG中查询对象即可,大大提高了查询的效率。之后,PG中的对象又会根据设置的副本数量进行复制,并根据Crush算法存储到OSD节点上。
你知道CEPH的进程还有哪些吗?
CEPH中的Monitor(至少有3个)用于维护和监控整个集群的状态,每个Monitor都有一个Cluster Map,只要有这个Map,就能够清楚知道每个对象存储在什么位置了。客户端会先tcp连接到Monitor,从中获取Cluster Map,并在客户端进行计算,当知道对象的位置后,再直接与OSD通信(去中心化的思想)。OSD节点平常会向Monitor节点发送简单心跳,只有当添加、删除或者出现异常状况时,才会自动上报信息给Monitor。
MDS是可选的,只有需要使用CEPH FS的时候才需要配置MDS节点。在ceph中,元数据也是存放在OSD中的,MDS只相当于元数据的缓存服务器。
在Ceph中,如果要写数据,只能向主OSD写,然后再由主OSD向从OSD同步地写,只有当从OSD返回结果给主OSD后,主OSD才会向客户端报告写入完成的消息。如果要读数据,不会使用读写分离,而是也需要先向主OSD发请求,以保证数据的强一致性。

分布式存储系统 Ceph的更多相关文章
- ceph分布式存储系统初探
前言 由于公司的业务调整,现在我又要接触ceph这个东西,由于我接手的是一个网盘类项目,所以分布式存储系统ceph就是我必须要学的了.现在压力还是比较大的,从业务直接到后台核心. 大概在这几天,我将c ...
- 分布式存储系统之Ceph集群CephX认证和授权
前文我们了解了Ceph集群存储池操作相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16743611.html:今天我们来聊一聊在ceph上认证和授权的 ...
- 架构设计:系统存储(28)——分布式文件系统Ceph(挂载)
(接上文<架构设计:系统存储(27)--分布式文件系统Ceph(安装)>) 3. 连接到Ceph系统 3-1. 连接客户端 完毕Ceph文件系统的创建过程后.就能够让客户端连接过去. Ce ...
- [转载] 360分布式存储系统Bada的设计和应用
原文: http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=208931479&idx=1&sn=1dc6ea4fa28a ...
- 高性能、高容错、基于内存的开源分布式存储系统Tachyon的简单介绍
Tachyon是什么? Tachyon是一个高性能.高容错.基于内存的开源分布式存储系统,并具有类Java的文件API.插件式的底层文件系统.兼容Hadoop MapReduce和Apache Spa ...
- 分布式存储系统-HBASE
简介 HBase –Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBse技术可在廉价PC Server上搭建起大规模结构化存储集群.HBase利用Had ...
- (第6篇)大数据发展背后的强力推手——HBase分布式存储系统
摘要: 今天我们介绍可在廉价PC Server上搭建起大规模结构化存储集群的分布式存储系统——HBase. 博主福利 给大家赠送一套hadoop视频课程 授课老师是百度 hadoop 核心架构师 内容 ...
- 关于分布式存储系统中-CAP原则(CAP定理)与BASE理论比较
CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可得兼. CA ...
- 《SPARK/TACHYON:基于内存的分布式存储系统》-史鸣飞(英特尔亚太研发有限公司大数据软件部工程师)
史鸣飞:大家好,我是叫史鸣飞,来自英特尔公司,接下来我向大家介绍一下Tachyon.我事先想了解一下大家有没有听说过Tachyon,或者是对Tachyon有没有一些了解?对Spark呢? 首先做一个介 ...
随机推荐
- 编程之美 set 13 光影切割问题
题目 给出几条线段, 求解这几条线段把给定平面切成的份数 思路 1. 枚举 3 条直线的情况, 发现有规律可循 两条直线, 一个交点 -> 空间分成 4 份 三条直线, 两个交点 -> 空 ...
- C static 关键字理解
今天来看一下这么一个程序. #include<stdio.h> int count =1; int fun(void) { static int count =10; return cou ...
- MD5骨骼动画模型加载
前面我们分析了静态模型OBJ格式,桢动画模型MD2,这篇主要分析骨骼动画MD5的一些概念并且实现. 混合桢动画有计算简单,容易实现等优点,但是在需要比较细致的效果时,则需要更多的关键桢,每桢都添加相同 ...
- JqGrid 获取所有数据
jqGrid使用本地数据时,当jqGrid配置的rowNum小于本地总数据量(records属性记录总数据,可以通过records获取到本地总数据量),调用getRowData方法获取到的只是显示的部 ...
- Visual Studio Code 配置 gulp
原本用的webstorm部署的gulp,后来由于太卡,打算换个编辑器,考虑了一番,之前用的是sublime,配置很是麻烦,最新听说饥人谷老师用的是vsCode,所以打算尝试一下这个编辑器,安装还是很方 ...
- 1808:公共子序列 即POJ 1458 Common Subsequence
1808:公共子序列 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 我们称序列Z = < z1, z2, ..., zk >是序列X = < ...
- 关于如何将Eclipse中@author进行修改的解决方法
问题:Eclipse和 MyEclipse上的文档注释"/**"里面的"@author Administrator"是自动生成的姓名,有时我们需要将自己的代码进 ...
- Hibernate的映射组成关系
建立域模型(Java的对象模型)和关系数据模型(数据库表模型)有着不同的出发点: 域模型: 由程序代码组成, 通过细化持久化类的的粒度(就是通过把相同的属性,规划为一个类)可提高代码的可重用性, 简化 ...
- Spring 拦截器的使用
一.Web.xml配置 在Web.xml 配置Spring核心控制器DispatcherServlet接收所有请求 <servlet> <servlet-name>spring ...
- hdu4686 简单的矩阵快速幂求前n项和
HDU4686 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4686 题意:题目说的很清楚了,英语不好的猜也该猜懂了,就是求一个表达式的前n项和,矩阵 ...