ceph存储原理_热门的分布式存储系统ceph入门介绍

e602245f13dbb195e5fb9b7871bdfa53.png

一、什么是ceph

ceph是当前最热门的分布式存储系统之一,是软件定义存储(SDS,SoftwareDefinedStorage)解决方案中的典范。其具备良好的可靠性、可扩展性,应用范围包括块存储(RBD,RadosBlockDevice)、文件存储(CephFS,CephFileSystem)和对象存储(RADOSGW,Reliable、Autonomic、Distributed、ObjectStorageGateway),被广泛应用于云计算底层IAAS平台,更是OpenStack首选的后端存储,不管是互联网企业还是金融等传统行业,都被广泛应用。

ceph使用C++语言开发,采用分布式、无中心化的设计,具备横向扩展能力和故障容灾能力,每个组件都能够线性扩展且不存在单点故障,支持到EB级的存储扩展,对应用程序提供标准统一的访问入口。

ceph每半年发布一个版本,版本分为长期稳定版(LTS)和开发版本,同时会维护多个稳定版本,推进bug的修复。目前最新的版本是v14.2.2 Nautilus,历史的一些版本如下:

9ee74c3717187e42b1a7b8bc859bac79.png

可以看到,ceph基本是按照半年一个版本的速度更新,较为稳定。

二、ceph功能组件

Ceph对于三大存储类型的支持是依赖底层的RADOS存储系统,整体架构上包含了OSD、MDS、Monitor等核心功能组件,如下图所示:

2381463433257a1e1b60095c2765bad1.png

Ceph整体上包含了很多个模块,各个模块均负责不同的功能,以下是一些重点模块:

  • Ceph OSD
    OSD全称是Object Storage Device,用于数据存储、复制、恢复,上报相关数据给Monitor,是Ceph的核心组件之一。一个Ceph集群至少需要两个Ceph OSD实现active+clean的健康状态。一个磁盘、一个分区都可以作为一个OSD,所以实验环境下可以在单机上搭建。
  • Ceph Monitor
    Ceph Monitor用于整个集群的状态监控和决策,实现整个集群视图的一致性,这是Ceph无中心化设计的一个重点。包含了Monitor map、OSD map、PG map和CRUSH map。
  • Monitor map
    Monitor节点也是可以横向扩展的,Monitor map包含所有Monitor节点的信息,包括集群ID,主机名,IP和端口等信息。
  • OSD map
    OSD map包含Ceph Pool的id、名称、类型,副本以及PGP信息,包含OSD的数量、状态、最细清理间隔、OSD所在主机等信息。多个OSD形成一个Ceph Pool。
  • PG map
    Placement Group map包含当前的PG版本、时间戳、空间使用比例以及每个PG的基本信息。
  • CRUSH map
    CRUSH是英文Controlled Replication Under Scalable Hashing的缩写,是一种可扩展哈希发的可控复制算法。CRUSH map存储集群存储设备信息,故障层次结构以及存储数据时失败域规则信息。
  • Ceph MDS
    Ceph Metadata Server,顾名思义,是包含Ceph文件系统(Ceph FS)的元数据的模块。ceph的块存储和对象存储都不需要用到MDS。

三、技术架构

Ceph底层都是依赖于RADOS,提供了一个可靠的具有自我修复能力的分布式存储,如下图所示:

30144fc788826c7a0da717904026fad7.png
  • LIBRADOS

RADOS的应用程序库,提供应用程序的直接访问,提供了Java和Python等类库,这是接口统一性的体现。

  • RADOSGW

RADOSGW是基于restful的网关,兼容S3和Swift,提供统一的访问入口,利用RADOSGW可以实现跨机房的访问和基于近端的负载均衡。

  • RBD

RBD提供Ceph的块设备的功能,其通过内核与QEMU/KVM交互来创建一个块设备挂载到VM上提供使用。

  • Ceph FS

Ceph FS提供了一个兼容POSIX的文件系统,值得注意的是因为历史原因,Ceph FS的支持比较弱,功能还不够完善。

四、安装部署

Ceph-Deploy

Ceph为了方便用户安装Ceph集群简化过程,提供了Ceph-Deploy工具,通过配置免密的SSH自动登录到服务器 安装相关的组件,过程十分的简便。

Step-By-Step Deploy
除了使用Ceph-Deploy之外,官方亦提供了一步步手工安装的方案,过程比较复杂麻烦,很多文章都建议初学 者直接使用Ceph-Deploy,笔者却认为手工一步步安装的方案虽然复杂但是可以对Ceph集群理解更深,安装过程中不免遇到各种各样的问题,一步步去解决以后,绝对会收获良心。

本文是对Ceph的整体技术架构的介绍,后续会对ceph的安装部署、各模块详细功能和原理进行分析,欢迎继续关注。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2017计算机应用考研大纲,2017考研计算机大纲

出国留学考研网为大家提供2017年考研计算机大纲:数据结构,更多考研资讯请关注我们网站的更新!2017年考研计算机大纲:数据结构一、数据结构考查目标1. 掌握数据结构的基本概念、基本原理和基本方法。2. 掌握数据的逻辑结构、存储结构及其基本操…

[SCOI2009] windy数

[SCOI2009] windy数 题目大意:求\([L,R]\)中相邻每一位之差至少大于\(2\)的数字个数,(只有一位也算) Solution 数位\(dp\)直接搞,对于前导零,其实不用卡下界,只要一个用一个状态来表示就好,还可以取\(0\) Code #include <iostream> #include <cstdio> #include <…

小程序点击调转带参数_带你走遍苏大的每个角落,校园导览小程序上线!

精彩推荐 1. 招新 | 携手趁韶华&#xff0c;约你同做“校媒人”&#xff01;2. 迎新现场 | 今天&#xff0c;“小20”是苏大的主角3. 苏州大学与亨通集团签订战略合作协议钟楼、红楼、精正楼……存菊堂、敬贤堂、子实堂……初至校园的“小20”们是否会有这样的烦恼在这楼宇亭台…

ArrayList与LinkedList

我必须承认这篇文章的标题有点吸引人。 我最近阅读了此博客文章 &#xff0c;这是有关此主题的讨论和辩论的一个很好的摘要。 但是这次&#xff0c;我想尝试一种不同的方法来比较这两个众所周知的数据结构&#xff1a;使用硬件性能计数器 。 我不会进行微基准测试&#xff0c…

koa中上传文件到阿里云oss实现点击在线预览和下载

比较好的在线预览的方法&#xff1a; 跳转一个新的页面&#xff0c;里面放一个iframe标签&#xff0c;或者object标签 <iframe src"xxx"></iframe> <object data"xxx"></object> 但是这两个标签也有限制&#xff0c;有些可以直接…

反序列化 还是记一下吧

JsonConvert.DeserializeObject<dynamic>(result) https://www.cnblogs.com/caofangsheng/p/5687994.html 转载于:https://www.cnblogs.com/sajiao/p/10303072.html

三菱st语言编程实例_LD、FBD、IL、ST、SFC、CFC六种编程语言的特点

CODESYS共支持六中不同的编程语言&#xff0c;很多学者在学习的过程中常会问一个问题&#xff0c;哪种编程语言最好&#xff1f;其实本人觉得没有哪种编程语言是绝对的好或不好&#xff0c;不同的工程应用具有不同的最佳编程方式&#xff0c;每种编程语言都具有其不同的特点&am…

假定某一个数据列表是一个班级的计算机课程,若需要利用形参直接访问实参,则应把形参变量说明为()参数。A.指针B.引用C.传值D.常值...

参考答案如下有机化合物系统命名法中&#xff0c;若需根据位次规则给官能团和取代基定位&#xff0c;常用 ( ) 编号要利用形引用RGB是与设备无关的色彩空间。参直参参变参数传值常值病毒灭活是指在理化因素作用下使病毒失去A1在后场向前场传球时&#xff0c;接访球触碰到了双脚…

爬虫

爬虫 1、设计 分布式爬虫系统允许位于多个不同主机上的爬虫程序并行爬取提交的爬虫作业&#xff0c;进而协调他们之间的爬取能力。爬取队列由redis管理&#xff0c;每个spider通过修改的调度程序从queue中拉取job。 页面被spider成功爬取后&#xff0c;就交给管线进行进一步处理…

python下划线怎么输入_python下划线怎么打出来

python中下划线使用键盘上的Shift减号键即可打出&#xff0c;减号键位于0和加号键之间。 在Python中下划线还具有 private 和 protected 类似的访问权限作用&#xff0c;下面我们具体分析。Python主要存在四种命名&#xff1a; &#xff08;1&#xff09;object #公用方法 &…

在测试中使用匹配器

我们被迫在测试代码中写太多断言行的日子已经一去不复返了。 镇上有一个新的警长&#xff1a;assertThat和他的代理人&#xff1a;匹配者。 好吧&#xff0c;这不是什么新东西&#xff0c;但是无论如何&#xff0c;我想向您介绍匹配器的使用方式&#xff0c;然后对匹配器概念进…

二、先在SD卡上启动U-boot,再烧写新的U-boot进Nandflash

1. 制作SD卡 先准备一张2G的SD卡&#xff08;不能用8G的&#xff0c;2G的卡和8G的卡协议不一样&#xff09;&#xff0c;和烧写SD卡的工具write_sd以及需要烧写到SD卡中的u-boot-movi.bin。将SD卡格式化后连接到Ubuntu虚拟机中&#xff0c;注意在SD卡需要插入到读卡器中&#x…

泉州经贸职业技术学院计算机系,部门简介-泉州经贸职业技术学院网络电教中心...

泉州经贸职业技术学院网络电教中心成立于2004年&#xff0c;是学院教学辅助部门&#xff0c;为学院教学、行政和后勤等工作提供计算机及网络技术支持。网络电教中心是学院信息化建设职能部门&#xff0c;主要负责各类计算机公共机房、多媒体教室的运行与维护&#xff0c;学院信…

编译型语言,解释型语言,脚本语言

编译型语言 编译型语言在执行之前就将代码编译成了机器语言&#xff0c;当执行的时候就直接运行机器语言&#xff0c;就可以了&#xff0c;如java&#xff0c;编译之后产生.class文件&#xff0c;然后JVM直接执行编译产生的文件就可以了&#xff0c;只要源代码没有发生改变&…

pandas 生成html表格_Pandas 读写html

Pandas 读写html,pandas提供read_html(),to_html()两个函数用于读写html格式的文件。这两个函数非常有用,把DataFrame等复杂的数据结构转换成HTML表格很简单,无需编写一长串HTML代码就能实现。pandas这方面的能力很强大,如果你从事web开发,这个功能将给你带来很多便捷。 读…

java comparator_Java基础之String漫谈(二)

Java-String1. 导读上期分享了本人关于String四个问题, 本期我们继续探讨String中的两个问题:.1 String既然已经实现了Comparable接口, 为什么还要提供内部类----CaseInsensitiveComparator;.2 使用 "" 拼接String究竟干了什么? 为什么在循环中不让使用""…

vue给input file绑定函数获取当前上传的对象

HTML<input type"file" change"tirggerFile($event)"> JS(vue-methods)tirggerFile : function (event) {var file event.target.files; // (利用console.log输出看结构就知道如何处理档案资料)// do something... } 如果直接在绑定的函数中传入thi…

掌握Java字节码

嘿! Happy Advent&#xff1a;D我是ZeroTurnaround的技术布道者Simon Maple&#xff08; sjmaple&#xff09; 。 您知道&#xff0c; JRebel伙计们&#xff01; 由于编写了类似于JRebel的产品&#xff0c;该产品与字节码进行交互的结果比您想像的更多&#xff0c;因此&#xf…

elasticsearch——海量文档高性能索引系统

elasticsearch elasticsearch是一个高性能高扩展性的索引系统&#xff0c;底层基于apache lucene。 可结合kibana工具进行可视化。 概念&#xff1a; index 索引: 类似SQL中的一张表&#xff0c;索引名必须是全小写单词。type&#xff08;索引类型&#xff09;&#xff1a;设计…

全国计算机c二级编程题,全国计算机二级C上机 编程题.doc

全国计算机二级C上机 编程题.doc全国计算机二级C上机 编程题全国计算机等级考试C语言――编程题1&#xff0e;m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。例如,当score数组中的数据为…