ceph ---(ceph简介)

摘要:
RedHat和OpenStack可以与Ceph集成,以支持虚拟机映像的后端存储。它还存储当前版本信息和最新更改信息。MDS:ceph元数据主要存储ceph文件系统的元数据。
ceph简介:

Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。ceph 的统一体现在可以提供文件系统、块存储和对象存储,分布式体现在可以动态扩展。在国内一些公司的云环境中,通常会采用 ceph 作为openstack 的唯一后端存储来提高数据转发效率。

Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。

网站:

ceph特点

高性能:

  1. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。
  2. 考虑了容灾的隔离, 能够实现各类负载的副本放置规则,跨机房,机架感知等。
  3. 能够支持上千个存储结点的规模,支持TB到PB级的数据

高可用:

  1. 副本数可以灵活控制
  2. 支持故障域分离,数据强一致性
  3. 多种故障场景进行自动修复自愈
  4. 没有单点故障,自动管理

高扩展性

  1. 去中心化
  2. 扩展灵活
  3. 随着节点增长而线性增长

特点丰富:

  1. 支持三种存储接口:块存储、文件存储、对象存储
  2. 支持自定义接口,支持多种语言驱动。

ceph应用

  • ceph 可以提供对象存储、块设备存储和文件系统储存,
  • 一般我们主要关心的还是块存储;其块设备存储可以对接(IaaS),当前主流的IaaS运平台软件,如:OpenStack、CloudStack、Zstack、Eucalyptus等以及kvm等

ceph 核心组件

ceph ---(ceph简介)第1张

  1. Monitors: 监视器,维护集群的状态的多种映射,同时提供认证和日志记录服务,包括monitor节点端到端的信息,其中包括ceph集群ID,监控主机名和IP以及端口。并且存储当前版本信息以及最新更改信息,(通过 "ceph mon" 查看monitor map)
  2. MDS(Metadata Server): ceph 元数据,主要保存ceph文件系统的元数据。注意:ceph的 块存储和对象存储都不需要MDS
  3. OSD(Object Storage Device): 它的主要功能是存储数据、复制数据、平衡数据、恢复数据等,与其它OSD间进行心跳检查等,并将一些变化情况上报给Ceph Monitor。一般情况下一块硬盘对应一个OSD,由OSD来对硬盘存储进行管理,当然一个分区也可以成为一个OSD.
    伴随OSD的还有一个概念叫做Journal盘,一般写数据到Ceph集群时,都是先将数据写入到Journal盘中,然后每隔一段时间比如5秒再将Journal盘中的数据刷新到文件系统中。
  4. RADOS(Reliable Autonomic Distributed Object Store): RADOS是ceph存储集群的基础,RADOS中的存储节点被称为OSD,在ceph中,所有数据都以对象的形式存储,并且无论什么数据类型,RADOS对象存储都将负责保存这些对象。RADOS层可以确保数据始终保持一致。
  5. librados: librados库,为应用程序提供访问接口,同时也为块存储、对象存储、文件系统提供原生接口。
  6. RADOSGW: 网关接口,提供对象存储服务。它使用librgw和librados来实现允许应用程序与Ceph对象存储建立连接。并且提供S3 和 Swift 兼容的RESTful API接口。
  7. RBD: 块设备,他能够自动精简配置并可以调整大小,而且将数据分散存储在多个OSD上。
  8. CephFS: CephFS:Ceph文件系统,与POSIX兼容的文件系统,基于librados封装原生接口。

ceph数据存储过程

ceph ---(ceph简介)第2张

无论使用哪种存储方式(对象、块、文件系统),存储的数据都会切分成Object;Object size 大小可以由管理员调整,通常为2M或4M。每个对象都会有一个唯一的OID,由ino和ono生成,

  • ino:即是文件的File ID,用于在全局唯一标识每一个文件
  • ono:则是分片的编号
  1. file:用户需要访问和存储的数据
  2. object:RADOS的基本存储单元
  3. PG(Placement Group):对object的存储进行组织和位置映射;
  4. OSD:object storage dervice

三次映射:

  1. File -> object映射
  2. Object -> PG映射,hash(oid) & mask -> pgid
  3. PG -> OSD映射,CRUSH算法

ceph ---(ceph简介)第3张

免责声明:文章转载自《ceph ---(ceph简介)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【转】inputfile的本地图片预览+等比例缩放兼容IE8、火狐i386和X86各是什么意思下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java的泛型

版权声明:本文系博主原创,未经博主许可,禁止转载。保留所有权利。 引用网址:https://www.cnblogs.com/zhizaixingzou/p/9992847.html 目录 1. 泛型1.1. 解决什么问题 先来看如下的一个类,它封装了一个String类型的值。 1 public class StringEntry { 2 p...

Python的魔法函数

概要 如何定义一个类 类里通常包含什么 各个部分解释 类是怎么来的 type和object的关系 判断对象的类型 上下文管理器 类结构 #!/usr/bin/env python #-*- coding: utf-8 -*- #Author: rex.cheny #E-mail: rex.cheny@outlook.com #类名后面写(object...

javascript console

javascript console console.log(object[, object, ...])在控制台输出一条消息。如果有多个参数,输出时会用空格隔开这些参数。 第一个参数可以是一个包含格式化占位符输出的字符串,例如: console.log("The %s jumped over %d tall buildings", animal, co...

[C++]智能指针的实现与使用

智能指针 智能指针是当我们在使用对象时,有时会把对象的内存分配在堆上忘记释放,导致内存泄露,并且当多个指针共享同一个对象的内存时,容易出现重复释放内存,导致错误。 我们针对所需要共享的对象,手动完成一个智能指针类来代替该类别的指针,自动帮我们释放内存,共享内存。以一个共享Object类的对象数据来说明两个版本的共享指针的实现。 class Object...

Python标准库存储对象(pickle包,cPickle包)

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在之前对Python对象的介绍中 (面向对象的基本概念,面向对象的进一步拓展),我提到过Python“一切皆对象”的哲学,在Python中,无论是变量还是函数,都是一个对象。当Python运行时,对象存储在内存中,随时等待系统的调用。然而...

ASP.NET 全局变量和页面间传值方法

http://www.cnblogs.com/dgjack/archive/2011/05/28/2060913.html 1. 使用QueryString变量 QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。 如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不...