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,历史的一些版本如下:

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

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

Ceph组成模块

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

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

ceph技术架构

LIBRADOSRADOS的应用程序库,提供应用程序的直接访问,提供了Java和Python等类库,这是接口统一性的体现。RADOSGWRADOSGW是基于restful的网关,兼容S3和Swift,提供统一的访问入口,利用RADOSGW可以实现跨机房的访问和基于近端的负载均衡。RBDRBD提供Ceph的块设备的功能,其通过内核与QEMU/KVM交互来创建一个块设备挂载到VM上提供使用。Ceph FSCeph FS提供了一个兼容POSIX的文件系统,值得注意的是因为历史原因,Ceph FS的支持比较弱,功能还不够完善。Ceph安装部署

Ceph-DeployCeph为了方便用户安装Ceph集群简化过程,提供了Ceph-Deploy工具,通过配置免密的SSH自动登录到服务器安装相关的组件,过程十分的简便。Step-By-Step Deploy除了使用Ceph-Deploy之外,官方亦提供了一步步手工安装的方案,过程比较复杂麻烦,很多文章都建议初学者直接使用Ceph-Deploy,笔者却认为手工一步步安装的方案虽然复杂但是可以对Ceph集群理解更深,安装过程中不免遇到各种各样的问题,一步步去解决以后,绝对会收获良心。本篇先进行Ceph的整体技术架构的介绍,下篇会考虑编写Ceph详细的安装部署文档以及进阶内容,有任何问题欢迎探讨。文章末尾做个小调查,你认为当前最好的分布式存储系统是哪个?

java ceph_后台开发高级工程师必备技能-分布式存储ceph介绍相关推荐

  1. android 技能标签功能_android开发工程师必备技能

    厚 学 网 android 开发工程师必备技能 android 软件开发工程师是 Android 平台发展中不可或缺的人才要素. 据介 绍,就我国目前来说, Android 研发人才缺口至少 30 万 ...

  2. Java程序员涨薪必备技能

    2019独角兽企业重金招聘Python工程师标准>>> Java程序员涨薪必备技能 Java程序员涨薪必备技能 工作1-3年,当我们向老板提出加薪的时候,或者跳槽去"捡&q ...

  3. Linux后台开发应该具备技能

    Linux后台开发应该具备技能 一.linux和os: 1.命令:netstat tcpdump ipcs ipcrm  这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验 2.cpu 内存 ...

  4. (转)Linux后台开发应该具备技能

    Linux后台开发应该具备技能 分类: 杂谈 2013-04-14 12:45 741人阅读 评论(0) 收藏 举报 Linux后台开发应该具备技能 一.linux和os: 1.命令:netstat ...

  5. python必备入门代码-小白入门Python开发,必备技能有哪些?

    原标题:小白入门Python开发,必备技能有哪些? 用Python完成项目,编写的代码量更少,代码简短可读性强,团队协作开发时读别人的代码速度会非常快,使工作变得更加高效.优雅做开发不再是梦,所以Py ...

  6. 强大的Java前台后台开发工具

    强大的Java前台后台开发工具 常用的文本编辑器:Sublime Text.Notepad++.EditPlus等 常用的IDE:WebStorm.Intellij IDEA.Eclipce等 我们这 ...

  7. 大数据开发工程师必备技能有哪些?

    大数据开发工程师必备技能有哪些?随着全行业数字化转型和新基建时代的到来,对技术人才提出了更高的要求.不管是面试还是实际工作过程中,数据工程师要时时刻刻面对这些层出不穷的技术演进. 随着数据的爆发式增长 ...

  8. 『腾讯后台开发』实习生技能要求

    一.操作系统方面 1. 多线程相关与线程之间同步技术 熟练使用(但不局限于)以下linux API linux下的线程创建.等待.获取线程id int pthread_create(pthread_t ...

  9. 分布式存储 Ceph 介绍及原理架构分享--云平台技术栈系列01

    导读:之前发布了云平台技术栈(ps:点击可查看),本文主要说一下其中的Ceph,从架构简介使用场景,以及内部IO流程.心跳机制.通信框架.CRUSH算法.QOS等多个方面逐渐介绍分布式存储系统Ceph ...

最新文章

  1. 爬虫正则表达式遇到的困难
  2. Nginx 出現 500 Error 修復 (too many open file, connection)
  3. Struts1之Action小结
  4. python计算圆周率_Python实现计算圆周率π的值到任意位的方法示例
  5. java 注解 静态变量_Spring中静态方法中使用@Resource注解的变量
  6. ads s参数拟合_ADS S参数仿真介绍
  7. 浅析 Linux 初始化系统(系统服务管理和控制程序/init system) -- UpStart
  8. python爬虫:两种方法模拟登录博客园
  9. mysql gtid模式主键主突_Mysql基于GTID主从复制
  10. flex制作一个用户登录框(含验证码)
  11. Ubuntu18.04安装微信(可用)
  12. Java虚拟机(JVM)(自动内存管理机制)
  13. 德标螺纹规格对照表_德标、欧标、国际、国标对照表
  14. linux下游戏制作工具,在Linux下可用Wine安装和运行D5Power游戏制作工具、蜂窝助手...
  15. 微信消息自动回复并汇总
  16. 计算机伦理学理论分析三大思想,人工道德能动性的三种反驳进路及其价值
  17. RouterOS如何实现多线路带宽叠加功能
  18. java语言就业方向_Java的就业方向有哪些?
  19. 轮播图插件--swiper
  20. Redis set 类型 查询命令

热门文章

  1. 数据结构——树的思维导图,帮助自己记忆。
  2. R语言美元/欧元汇率的日对数收益率的TGarch模型
  3. thinkphp3.2 实现 Phpmailer 发送邮件 配置
  4. 省钱小妙招,隐藏优惠券怎么设置?
  5. matlab大津法函数,大津(Ostu)阈值分割方法在matlab中的实现
  6. React-18(组件化开发) -- 插槽 Context的应用场景 setState(18之前与18的对比)
  7. python实现中文文本分句
  8. SMP865X广告机之破解dcchd
  9. BW学习十六(dso)
  10. 树莓派Raspberry Pi - 文件共享