带你读《存储漫谈:Ceph原理与实践》——1.3  Ceph 的发展历程

简介: 带你读《存储漫谈:Ceph原理与实践》——1.3  Ceph 的发展历程

1.3  Ceph 的发展历程


1.3.1  Ceph 的起源与发展


Ceph 项目起源于 2004 年,是其创始人 Sage Weil 在加州大学 Santa Cruz 分校攻读博士期间的研究课题,系统最初设计目标为提供一款基于 POSIX、没有单点故障、大规模的分布式文件存储系统。

所谓“大规模”和“分布式”,是指存储系统至少能够承载 PB 级别的数据,并且由成千上万的存储节点组成。大数据技术迅猛发展的今天,PB 级数据存储早已不是一个可以激动人心的系统设计目标,但应该指出,Ceph 项目起源于 2004 年,那是一个商用处理器以单核为主流、常见硬盘容量不足百 GB 的年代,这和如今 CPU 动辄 20 核、40 线程,还要双处理器、单块硬盘存储容量 10TB 有余的情况是不可同日而语的。当然,Ceph 系统的容量设计在理论上并没有上限,所以 PB 级别并不是实际应用的容量限制。

2006 年,Sage 在 OSDI 学术会议上发表了关于 Ceph 的论文,并提供了项目的下载链接,基于 LGPL 开源协议,Ceph 项目正式开放了源代码。2010 年,Ceph 客户端部分代码正式进入 Linux kernel 2.6.34 版本主线。Sage Weil 也相应成立了 Inktank 公司专注于 Ceph的研发,在 2014 年 5 月,Inktank 公司被 Red Hat 收购,Ceph 存储系统商用进程大幅提速。

2014 年前后,OpenStack 火爆之时,基于 Ceph 的存储解决方案并不被广为接受。那时的 Ceph 刚刚发布第四个版本 Dumpling v0.67,存储系统整体并不足够稳定,而且架构新颖,业界未有过类似架构系统的商用案例,人们对 Ceph 在生产环境落地后,如何保障数据的安全性以及数据的一致性持怀疑态度。但随着 OpenStack 的快速发展及开源分布式存储解决方案的稀缺,越来越多的人开始尝试使用 Ceph 存储系统作为 OpenStack 的底层共享存储(主要用于虚机云盘及系统镜像的后端存储),且 Ceph 在中国的社区也日渐兴盛,Ceph 的发展被注入了强心剂。目前,Ceph 分布式存储方案已经得到众多云计算厂商的支持并被广泛应用。

近两年 OpenStack 火爆度不及当年,但借助云原生,尤其是 Kubernetes 技术的发展,作为底层存储的基石,Ceph 再次发力,为 Kubernetes 有状态化业务提供存储机制的实现,Ceph 分布式存储项目依旧保持活力。


1.3.2  Ceph 的版本信息


Ceph 的版本号约定如下。

Ceph 第一个版本的版本号是 0.1,版本发布时间为 2008 年 1 月。多年来,Ceph 一直延续使用该版本号方案(从 0.1 开始不断向上自增),直到 2015 年 4 月,Ceph 发布 0.94.1版本(Hammer 版本的第一个修正版)后,为了避免 0.99 向 1.0 的版本变化,Ceph 社区制定了新的版本命名策略。

新的策略中,以x.y.z 格式命名版本号,其中y 的取值通常为 0、1、2,具体含义如下:

x.0.z - 开发版(给早期测试者和勇士们使用)

x.1.z - 候选版(给测试集群、高手们使用)

x.2.z - 稳定、修正版(给 Ceph 的用户们使用)

x 从 9 算起,代表 Infernalis 版本(I 是第 9 个字母),这样,第 9 个发布周期的第 1个开发版就是 9.0.0,后续的开发版依次是 9.0.1、9.0.2 等;候选版版本编号从 9.1.0 开始,稳定、修正版版本编号从 9.2.0 开始。随后的大版本更新(Jewel 版本),开发版版本编号则从 10.0.0 开始,依此类推。

开发版发布周期通常为 2 ~ 4 周,每个周期内都会冻结主开发分支,并进行代码集成和升级测试,然后才进行版本发布。Ceph 社区每年会发布 3 ~ 4 个稳定版,每个稳定版都有个名字,并且会一直提供缺陷修复,持续到下一个稳定版发布。

Ceph 社区推荐用户使用长期稳定版本(Long Term Stable,LTS),Ceph 的 LTS版本会持续更新,通常支持时间会延续到社区发布两个 LTS 版本之后。比如 Hammer 版本发布之后,Dumpling 版本才隐退,Jewel 版本发布之后,Firefly 版本才隐退,依此类推。

Ceph 的历史版本信息如下。

Argonaut           0.48 版本(LTS)

Bobtail            0.56 版本(LTS)

Cuttlefish           0.61 版本(Stable)

Dumpling           0.67 版本(LTS)

Emperor           0.72 版本(Stable)

Firefly              0.80 版本(LTS)

Giant             0.87 版本(Stable)

Hammer               0.94 版本(LTS)

Infernalis              9.x 版本(Stable)

Jewel             10.x 版本(LTS)

Kraken             11.x 版本(Stable)

Luminous           12.x 版本(LTS)

Mimic              13.x 版本(Stable)

Nautilus           14.x 版本(LTS)

Octopus             15.x 版本(Stable)

Pacific              16.x 版本(LTS)

表 1-1 整理了 Ceph 主要版本(自 Firefly 版本开始)的发布时间点,对于学习者而言,建议从最新发布的 LTS 版本(Pacific,v16.2.0)开始学习。

image.png

1.4  小结


本章介绍了存储系统的架构演进,主要对比了传统的集中式存储架构以及近些年兴起的分布式存储架构,在分布式存储架构中,进一步展开介绍了有中心的非对称式架构以及无中心的对称式架构,最后,对本书的主角 Ceph 分布式存储系统发展历程进行了简要介绍。

相关文章
|
6月前
|
存储 算法 关系型数据库
Ceph介绍及原理架构分享
Ceph介绍及原理架构分享
336 0
|
存储 缓存 关系型数据库
带你读《存储漫谈:Ceph原理与实践》——3.3.4 未来展望
带你读《存储漫谈:Ceph原理与实践》——3.3.4 未来展望
|
存储 Linux 数据安全/隐私保护
带你读《存储漫谈:Ceph原理与实践》——3.1.7 未来展望
带你读《存储漫谈:Ceph原理与实践》——3.1.7 未来展望
|
存储 API 对象存储
带你读《存储漫谈:Ceph原理与实践》——3.2.6 未来展望
带你读《存储漫谈:Ceph原理与实践》——3.2.6 未来展望
|
存储 前端开发 对象存储
带你读《存储漫谈:Ceph原理与实践》——3.2.2 RGW 架构
带你读《存储漫谈:Ceph原理与实践》——3.2.2 RGW 架构
|
存储 缓存 块存储
带你读《存储漫谈:Ceph原理与实践》——3.3.3 CephFS 高级特性
带你读《存储漫谈:Ceph原理与实践》——3.3.3 CephFS 高级特性
|
存储 容灾 负载均衡
带你读《存储漫谈:Ceph原理与实践》——3.3.1 MDS 设计原理
带你读《存储漫谈:Ceph原理与实践》——3.3.1 MDS 设计原理
|
存储 缓存 大数据
带你读《存储漫谈:Ceph原理与实践》——1.1.2 分布式存储系统
带你读《存储漫谈:Ceph原理与实践》——1.1.2 分布式存储系统
|
存储 算法 关系型数据库
带你读《存储漫谈:Ceph原理与实践》——2.2.1 Ceph 寻址流程
带你读《存储漫谈:Ceph原理与实践》——2.2.1 Ceph 寻址流程
|
存储 算法 大数据
带你读《存储漫谈:Ceph原理与实践》——1.2.1 有中心架构
带你读《存储漫谈:Ceph原理与实践》——1.2.1 有中心架构