简介

Ceph的目标是采用商业硬件来构建大规模的、具有高可用、高扩展、高性能的分布式存储系统,ceph具有如下特点:

  • 软件定义存储:Ceph不需要特定的硬件,在主流的Linux发行版等类Unix操作系统上均可运行
  • 分布式存储:得意与计算寻址让Ceph客户端可以直接与服务端任意节点通信,避免因存在访问热点产生的性能瓶颈,这也是他可以轻易管理PB级以上规模集群的重要原因
  • 统一存储:Ceph支持传统的块存储(RBD)、文件系统存储(Ceph fs)与新兴的对象存储协议(RADOSGW)

架构

Ceph采用存储应用与存储服务完全分离(Client/Server)的模式,基于Rados对外提供服务。客户端可以直接通过LIBRADOS访问RADOS系统,也可以调用在LIBRADOS上封装的Radosgw、librbd、libcephfs这些接口访问存储。

图1 Ceph架构图

  1. RADOS网关接口(RGW):如图1,RGW提供对象存储服务,通过librados允许APP直接与Ceph对象存储建立连接,基于librados封装的librgw也提供了与Amazon S3协议和OpenStack Swift协议兼容的RESTful API。可以将它理解为对文件(对象)进行上传、下载、查询、删除等。

    • 对象存储采用扁平化目录结构,利于进行大规模的扩容。
    • S3/Swift接口均分三级:Account/Bucket/Object(账户/桶/对象)
  2. RADOS块设备(RBD)接口:如图1,Ceph块设备,提供持久块存储,并将数据分散到不同OSD上,是一个分布式的块设备。与传统的SAN存储类似,RBD可以通过SCSI或FC给应用提供一个独立的LUN或者卷。

    • 在用户态,通过QEMU Driver供虚拟机作为磁盘使用
    • 在操作系统内核态将块设备映射给物理主机,供物理主机使用
  3. Ceph文件系统(CephFS)接口:在rados基础上增加了元数据服务器(MDS),它只为CephFS文件系统跟踪文件的层次结构和存储元数据,(RBD与RADOS不需要MDS,MDS不直接提供数据给客户端)。CephFS类似于传统的NAS,通过NFS和CIFS协议提供文件目录服务。

  4. 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)- 架构概述的更多相关文章

  1. OGG学习笔记01-基础概述

    OGG学习笔记01-基础概述 OGG(Oracle Golden Gate),最近几年在数据同步.容灾领域特别火,甚至比Oracle自己的原生产品DataGuard还要风光,主要是因为其跨平台.跨数据 ...

  2. spring学习笔记(一) Spring概述

    博主Spring学习笔记整理大部分内容来自Spring实战(第四版)这本书.  强烈建议新手购入或者需要电子书的留言. 在学习Spring之前,我们要了解这么几个问题:什么是Spring?Spring ...

  3. Flink学习笔记:Connectors概述

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

  4. Adaptive AUTOSAR 学习笔记 6 - 架构 - 方法论和 Manifest

    本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 AP:AUTOSAR Adap ...

  5. JDBC学习笔记(1)——JDBC概述

    JDBC JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据.JDBC代表Java数据库连接. JDBC库中所包含的API任务通常与数据库使用: 连接到数 ...

  6. Spring学习笔记之Spring概述

    概述   Spring是一个java应用最广的开源框架,它是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Deve ...

  7. JAVA NIO学习笔记1 - 架构简介

    最近项目中遇到不少NIO相关知识,之前对这块接触得较少,算是我的一个盲区,打算花点时间学习,简单做一点个人学习总结. 简介 NIO(New IO)是JDK1.4以后推出的全新IO API,相比传统IO ...

  8. ASP.NET MVC4学习笔记之总体概述

    断断续续使用ASP.NET MVC框架也有一年多了,也算积累了一些经验,唉,一直想写一些笔记好好总结一下,人太懒不想动笔,今天终于决定开始.希望自己能坚持下去. 这篇文章大体介绍ASP.NET MVC ...

  9. Python学习笔记 :01概述

    Python基础 首先推荐学习Python基础的教程和书籍 视频教程推荐南京大学张莉老师在cousera上的教程用Python玩转数据 入门教程<Python基础教程> 数据挖掘教程< ...

  10. 【转】JDBC学习笔记(1)——JDBC概述

    转自:http://www.cnblogs.com/ysw-go/ JDBC JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据.JDBC代表Java数据 ...

随机推荐

  1. Go 语言区块链测试:实践指南

    引言 Go 语言在区块链开发中的应用日益增多,凭借其简洁的语法和强大的并发支持,成为开发区块链应用的热门选择.理解和实践 Go 语言的单元测试对于保证区块链应用的质量和稳定性至关重要. Go 单元测试 ...

  2. PyTorch 实战(模型训练、模型加载、模型测试)

    本次将一个使用Pytorch的一个实战项目,记录流程:自定义数据集->数据加载->搭建神经网络->迁移学习->保存模型->加载模型->测试模型 自定义数据集 参考我 ...

  3. bash shell笔记整理——ls命令

    语法: ls [选项] [文件 或 目录] 选项 使用说明 –a 显示指定目录下的所有文件,包括隐藏文件. -A 显示除了.和..的外的所有文件. -l 显示详细的文件信息. -d 如果是目录,只显示 ...

  4. 数字孪生和GIS系统融合能为水利领域带来什么改变?

    随着科技的不断进步,数字孪生和GIS系统的融合应用逐渐成为了水利领域的新趋势.数字孪生是指通过数字化技术模拟物理实体和过程,将现实世界与虚拟世界相结合的技术,而GIS系统则是地理信息系统,用于收集.存 ...

  5. [笔记01]---solr

    什么是Solr 1.直接使用sql搜索存在的问题 大多数搜索引擎应用都必须具有某种搜索功能 搜索功能往往是巨大的资源消耗 它们由于沉重的数据库加载而拖垮你的应用的性能 所有我们一般在做搜索的时候 会把 ...

  6. javacv实现屏幕录制(一)

    javacv实现屏幕录制(一) javacv从入门到入土系列,发现了个好玩的东西,视频处理,于是我想搞个屏幕录屏,我百度了一下,copy那些代码我没有实现过,那些代码也没有说明,只好去官网看文档找资料 ...

  7. Head First 的学习之道

    <Head First 设计模式>是一本好书,正如书的封面上说的那样,这是一本重视大脑的学习指南.里面提到了一些学习方法,可以尝试下,看看哪些对你有用: 1. 慢一点,理解的越多,需要记得 ...

  8. JavaScript异步编程4——Promise错误处理

    目录 1. 概述 2. 详论 3. 参考 1. 概述 在上一篇文章<JavaScript异步编程3--Promise的链式使用>中,通过Promise的链式使用,避免程序中多次嵌套回调(回 ...

  9. 简化业务代码开发:看Lambda表达式如何将代码封装为数据

    摘要:在云服务业务开发中,善于使用代码新特性,往往能让开发效率大大提升,这里简单介绍下lambad表达式及函数式接口特性. 1.Lambda 表达式 Lambda表达式也被称为箭头函数.匿名函数.闭包 ...

  10. ​iOS上架审核宝典:如何避免被拒一次提交成功

    Xcode 摘要:本文整理了iOS上架需要注意的事项,以帮助从事iOS开发和App运营的朋友们避免审核被拒的困扰.通过遵循这些指南,我们可以在一次提交中成功地将应用上架,并节省宝贵的时间和精力. 引言 ...