Ceph浅析

Ceph是一个统一的分布式存储系统,支持Object、Block和File接口。其底层基于RADOS,提供高扩展性、高可靠性和高性能。Ceph通过CRUSH算法实现数据分布和故障恢复,无需Name服务器,Client直接与OSD通信。测试显示,虽然单机RBD性能可能低于RAID10,但在多机环境下,Ceph的扩展性优势明显。Ceph适合云计算环境,且易于自动化部署。
摘要由CSDN通过智能技术生成

 Ceph是统一存储系统,支持三种接口。

  • Object:有原生的API,而且也兼容Swift和S3的API
  • Block:支持精简配置、快照、克隆
  • File:Posix接口,支持快照

Ceph也是分布式存储系统,它的特点是:

  • 高扩展性:使用普通x86服务器,支持10~1000台服务器,支持TB到PB级的扩展。
  • 高可靠性:没有单点故障,多数据副本,自动管理,自动修复。
  • 高性能:数据分布均衡,并行化度高。对于objects storage和block storage,不需要元数据服务器。
  • ceph-architecture

    组件

    ceph-topo

    Ceph的底层是RADOS,它的意思是“A reliable, autonomous, distributed object storage”。 RADOS由两个组件组成:

    • OSD: Object Storage Device,提供存储资源。
    • Monitor:维护整个Ceph集群的全局状态。

    RADOS具有很强的扩展性和可编程性,Ceph基于RADOS开发了
    Object Storage、Block Storage、FileSystem。Ceph另外两个组件是:

    • MDS:用于保存CephFS的元数据。
    • RADOS Gateway:对外提供REST接口,兼容S3和Swift的API。

    映射

    Ceph的命名空间是 (Pool, Object),每个Object都会映射到一组OSD中(由这组OSD保存这个Object):

    (Pool, Object) → (Pool, PG) → OSD set → Disk

    Ceph中Pools的属性有:

    • Object的副本数
    • Placement Groups的数量
    • 所使用的CRUSH Ruleset

    在Ceph中,Object先映射到PG(Placement Group),再由PG映射到OSD set。每个Pool有多个PG,每个Object通过计算hash值并取模得到它所对应的PG。PG再映射到一组OSD(OSD的个数由Pool 的副本数决定),第一个OSD是Primary,剩下的都是Replicas。

    数据映射(Data Placement)的方式决定了存储系统的性能和扩展性。(Pool, PG) → OSD set 的映射由四个因素决定:

    • CRUSH算法:一种伪随机算法。
    • OSD MAP:包含当前所有Pool的状态和所有OSD的状态。
    • CRUSH MAP:包含当前磁盘、服务器、机架的层级结构。
    • CRUSH Rules:数据映射的策略。这些策略可以灵活的设置object存放的区域。比如可以指定 pool1中所有objecst放置在机架1上,所有objects的第1个副本放置在机架1上的服务器A上,第2个副本分布在机架1上的服务器B上。 pool2中所有的object分布在机架2、3、4上,所有Object的第1个副本分布在机架2的服务器上,第2个副本分布在机架3的服 器上,第3个副本分布在机架4的服务器上。

    Distributed-Object-Store

    Client从Monitors中得到CRUSH MAP、OSD MAP、CRUSH Ruleset,然后使用CRUSH算法计算出Object所在的OSD set。所以Ceph不需要Name服务器,Client直接和OSD进行通信。伪代码如下所示:

      locator = object_name
      obj_hash = hash(locator)
      pg = obj_hash % num_pg
      osds_for_pg = crush(pg)  # returns a list of osds
      primary = osds_for_pg[0]
      replicas = osds_for_pg[1:]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值