Ceph——多爪鱼(开源云存储平台软件),目前由红帽支持

目录

概述

系统设计

对象存储

块存储

文件系统

名词

历史

版本发布历史

名称来源


概述

多爪鱼(Ceph)是一个开源软件存储平台,实现了在一个统一的分布式计算机集群上的对象存储,并提供三合一的接口,用于对象级、块级和文件级的存储。多爪鱼(Ceph)的主要目标是:

  • 进行完全的分布式运营而不用担心单节点的失效
  • 可以扩展到EB级别(百万TB)
  • 可以自由使用

多爪鱼(Ceph)会复制数据,并使其具有差错容忍性,使用通用硬件(commodity hardware)并且不要求任何特殊的硬件支持。它被设计为可自愈的(self-healing)和可自管理的(self-managing),目标是最小化管理时间和其他花费。

多爪鱼(Ceph)的编写语言是C++和派森(Python)。

 

系统设计

多爪鱼(Ceph)使用了5个完全不同类型的守护进程(daemon):

  • 集群监视器(ceph-mon):持续追踪活跃的和失效的集群节点、集群配置,以及关于数据存放位置的信息,还有全局集群状态
  • 对象存储设备(ceph-osd):使用一个直接的、日志磁盘存储(被称为“蓝存”——BlueStore,它从12.x版本开始替代了底层使用文件系统的FileStore)
  • 元数据服务器(ceph-mds):缓存和代理对CephFS文件系统内的索引节点号(inodes)和目录的访问
  • HTTP网关(ceph-rgw):向对象存储层暴露为一个接口,与亚马逊S3或开放栈(OpenStack)的雨燕(Swift)API兼容
  • 管理器(ceph-mgr):实现集群监视、记账(bookkeeping)、维护任务,向外部管理和监视系统提供接口,例如:负载均衡器(Load Balancer)、监控仪表界面(Dashboard)、Prometheus、Zabbix插件。

 

所有这些都是完全分布式的,并且可以运行在同一个服务器集合中。而具有不同需求的客户端则可以直接与它们中的不同子集进行交互。

  • 条带化(striping):多爪鱼(Ceph)会对单个文件进行跨越多个节点的条带化(striping),以获得更高的吞吐量,与RAID0跨越多个硬盘的条带化分区类似。
  • 负载均衡(Load Balancing):最常被访问的对象会被复制到更多的节点上。
  • 物理存储管理
    • 蓝储(BlueStore)。截至2017年9月,蓝储是默认的、也是推荐的用于生产环境的存储类型,它是多爪鱼(Ceph)自有的存储实现,提供比Filestore更好的时延性和可配置性,同时避免了基于文件系统的存储在附加处理和缓存层上的短板
    • 文储(Filestore)。Filestore后台仍然被认为是有效和非常稳定的。
    • 文件系统(Filesystem)。XFS曾经是推荐的、用于生产环境的底层文件系统类型,而Btrfs则被推荐用于非生产环境。ext4文件系统是不推荐的,因为它对最大的RADOS对象长度存在限制。即使使用蓝存(BlueStore),XFS也被用于一个小型的元数据分区

 

对象存储

多爪鱼(Ceph)实现了分布式对象存储“蓝储”(BlueStore)。多爪鱼(Ceph)的软件库提供了客户端应用程序,它可以直接访问“可靠原子分布式对象存储”(RADOS)这个基于对象的存储系统,同时为一些多爪鱼(Ceph)的功能提供一个基础,包括:

  • RADOS块设备(RBD)
  • RADOS网关
  • 多爪鱼(Ceph)文件系统

librados软件库提供C、C++、爪哇(Java)、PHP和派森(Python)的访问接口。RADOS网关同时将对象存储对外暴露为一个RESTful接口,它既可以呈现为本地的亚马逊S3接口,也可以呈现为开放栈(OpenStack)雨燕(Swift)API。

 

块存储

多爪鱼(Ceph)的对象存储系统允许用户将多爪鱼(Ceph)挂载为一个“瘦提供”块设备。当一个应用程序使用一个块设备向多爪鱼(Ceph)写入数据的时候,多爪鱼(Ceph)会自动将数据横跨集群进行条带化和复制。多爪鱼(Ceph)的RADOS块设备(RBD)同时还会与KVM虚拟机进行集成。

多爪鱼(Ceph)RBD与相同的多爪鱼(Ceph)对象存储系统对接,这个提供提供librados接口,以及CephFS文件系统,并将块设备映像存储为对象。因为RBD是构建在librados之上的,因此RBD继承了librados的能力,包括只读快照,以及回退到快照。通过横跨集群地对映像进行条带化,Ceph为大尺寸块设备映像提升了读访问的性能。

块设备可以被虚拟化,向虚拟机提供块存储,可以在很多虚拟化平台上实现,包括:

  • 阿帕奇的云栈(Apache CloudStack)
  • 开放栈(OpenStack)
  • 开放星云(OpenNebula)
  • 加内特(Ganeti)
  • 普罗克斯摩克斯虚拟环境(Proxmox Virtual Environment)

 

文件系统

多爪鱼(Ceph)的文件系统被称为“多爪鱼FS”(CephFS),它是运行在下层的对象存储系统之上的,这个下层系统提供对象存储和块设备接口。多爪鱼(Ceph)元数据服务器集群会提供一个服务,它将文件系统的目录和文件名,映射到存储在RADOS集群中的对象。这个元数据服务器集群可以扩展或收缩,它也可以对文件系统进行重新“平衡”,从而动态地将数据均匀分布到集群中的各个主机。这确保了高性能,并防止了集群中特定节点的高负载。

客户端使用一个Linux内核客户端来挂载POSIX兼容的文件系统。一个更早期的基于FUSE的客户端也可以使用。这些服务器就像普通Unix守护进程一样运行。

 

 

名词

CMDS:Ceph Matadata Daemon,多爪鱼(Ceph)元数据守护进程

COSD:Ceph Opject Storage Daemon,多爪鱼(Ceph)对象存储守护进程

CMON:Ceph Monitor,多爪鱼(Ceph)监视器

RADOS:Reliable Autonomic Distributed Ojbect Store,可靠自动分布式对象存储

RBD:RADOS Block Device,RADOS块设备

BTRFS:B-Tree File System,B-树文件系统

 

历史

美国人赛奇·威尔(Sage Weil)最初是为他的博士毕业论文,在加州大学圣克鲁兹分校(UCSC)杰克·巴斯金工程学院(Jack Baskin School)的斯科特·A·布兰迪教授(Professor Scott A. Brandt)的建议下,创建了多爪鱼(Ceph),并得到了先进模拟和计算项目(Advanced Simulation and Computing Program,简称ASC)的资助,该项目成员包括:

  • 洛斯阿拉莫斯国家实验室(LANL)
  • 桑迪亚国家实验室(SNL)
  • 劳伦斯利弗莫尔国家实验室(LLNL)

多爪鱼(Ceph)的第一行代码由赛奇·威尔(Sage Weil)在2004年写下,当时他在LLNL做夏季实习生,承担关于可伸缩文件系统元数据管理方面的工作——今天被称为多爪鱼(Ceph)MDS。在2005年,作为斯科特·A·布兰迪(Scott A. Brandt)所发起的、卡洛斯·马尔扎恩(Carlos Maltzahn)所领导的夏季项目的一部分,赛奇·威尔(Sage Weil)创建了一个具有完全功能的文件系统原型,采用了多爪鱼(Ceph)作为其名称。多爪鱼(Ceph)在赛奇·威尔于2006年11月所做的两场演示中初次亮相,一次是2006年度USENIX(UNIX用户群)OSDI(操作系统设计与实现座谈会),另一次则是在SC(超算大会,现更名为高性能计算、组网、存储和分析国际大会)。

在他于2007年秋季毕业以后,威尔继续全职投入多爪鱼(Ceph)的工作,而核心开发团队则进一步扩展,吸纳了犹大·萨迪·韦因拉布和格里高利·法那姆。2010年03月19日,林纳斯·托瓦兹(Linus Torvalds)将Ceph客户端合入到Linux内核版本2.6.34中,并与2010年05月16日发布。2012年,威尔创建了墨水柜存储(Inktank Storage),来为Ceph提供专业服务和支持。

2014年04月,红帽公司收购了墨水柜(Inktank),使得多爪鱼(Ceph)的大部分工作都变成内部开发。

2015年10月,多爪鱼(Ceph)社区咨询委员会成立,目的是在驱动开源的软件定义存储技术方面,帮助社区。宪章咨询委员会包括来全球的、对多爪鱼(Ceph)项目有承诺义务的IT组织的多爪鱼(Ceph)社区成员,包括来自这些组织的个人:

  • 科能软件(Canonical)
  • 欧洲核研究组织(CERN)
  • 思科(Cisco)
  • 富士通(Fujitsu)
  • 英特尔(Intel)
  • 红帽(Red Hat)
  • 闪迪(SanDisk)
  • 苏泽(Suse)

 

版本发布历史

名称

中文含义

版本号

发布时间

结束维护日

里程碑

Argonaut

船蛸

0.48

2012年07月03日

 

首个主要的“稳定”发行版

Bobtail

短尾巴

0.56

2013年01月01日

  

Cuttlefish

乌贼

0.61

2013年05月07日

 

ceph-deploy组件发布稳定版

Dumpling

包馅面皮

0.67

2013年08月14日

2015年05月

命名空间、区域,以及监视REST API

Emperor

皇帝

0.72

2013年11月09日

2014年05月

用于radosgw(可靠自动分布式对象存储网关)的多数据中心复制

Firefly

萤火虫

0.80

2014年05月07日

2016年04月

擦除式编码、缓存分层、主节点亲密、键/值OSD(对象存储设备)后台(体验版)、独立radosgw(体验版)

Giant

巨人

0.87

2014年10月29日

2015年04月

 

Hammer

锤子

0.94

2015年04月07日

2017年08月

 

Infernalis

9.2.0

2015年11月06日

2016年04月

 

Jewel

珠宝

10.2.0

2016年04月21日

2018年06月01日

稳定的CephFS,体验版RADOS后台被命名为“蓝存”(BludStore)

Kraken

海妖

11.2.0

2017年01月20日

2017年08月01日

“蓝存”发布稳定版

Luminous

发光

12.2.0

2017年08月29日

  

Mimic

模仿

13.2.0

2018年06月01日

 

快照模块发布稳定版,Beast模块发布稳定版

Nautilus

鹦鹉螺

14.2.0

2019年03月19日

  

Octopus

章鱼

15.2.0

2020年03月23日

  

 

名称来源

多爪鱼(Ceph)是cephalopod(头足类动物/头足纲,包括章鱼、鱿鱼、乌贼等)的简称,它是软体动物门(如蜗牛、螺蛳)下面的一个纲。这个名称(包括它的logo)表示它的高并发行为,就像章鱼一样。而叫这个名称,也是为了和赛米(Sammy)文件系统关联,赛米(Sammy)是加州大学圣克鲁兹分校(UCSC)的吉祥物香蕉鼻涕虫(banana slug)的名字。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值