概述
第一个 Ceph 版本是 0.1 ,要回溯到 2008 年 1 月。多年来,版本号方案一直没变,直到 2015 年 4 月 0.94.1 ( Hammer 的第一个修正版)发布后,为了避免 0.99 (以及 0.100 或 1.00 ?),我们制定了新策略。
-
x.0.z - 开发版(给早期测试者和勇士们)
-
x.1.z - 候选版(用于测试集群、高手们)
-
x.2.z - 稳定、修正版(给用户们)
x 将从 9 算起,它代表 Infernalis ( I 是第九个字母),这样我们第九个发布周期的第一个开发版就是 9.0.0 ;后续的开发版依次是 9.0.1 、 9.0.2 等等。
之前的版本号分别为:
Argonaut 0.48版本(LTS) 2012年6月3日
Bobtail 0.56版本(LTS) 2013年1月1日
Cuttlefish 0.61版本 2013年5月7日
Dumpling 0.67版本(LTS) 2013年8月14日
Emperor 0.72版本 2013年11月9日
Firefly 0.80版本(LTS) 2014年5月
Giant Stable October 2014 - April 2015
Hammer LTS April 2015 - November 2016
Infernalis Stable November 2015 - June 2016
Jewel 2016年4月
Kraken 2017年10月
Luminous 2017年10月
mimic 2018年5月
Ceph v12.2 Luminous正式版本是Luminous v12.2.x长期稳定版本的第一个版本。在Kraken(v11.2.z)和Jewel(v10.2.z)后我们做了很多重大修改
在Kraken版本上进行的重要修改
-
通用
Ceph现在有一个内置的简易DarshBoard,用于监控集群状态。
-
RADOS
- Bluestore
- ceph-osd的新后端存储BlueStore已经稳定,是新创建的OSD的默认设置。
BlueStore通过直接管理物理HDD或SSD而不使用诸如XFS的中间文件系统,来管理每个OSD存储的数据,这提供了更大的性能和功能。 - BlueStore支持Ceph存储的所有的完整的数据和元数据校验。
- BlueStore内嵌支持使用zlib,snappy或LZ4进行压缩。(Ceph还支持zstd进行RGW压缩,但由于性能原因,不为BlueStore推荐使用zstd)。
- ceph-osd的新后端存储BlueStore已经稳定,是新创建的OSD的默认设置。
- EC池现在完全支持覆盖,允许它们与RBD和CephFS一起使用。
- ceph-mgr:
- ceph-mgr是一个新的后台进程,这是任何Ceph部署的必须部分。虽然当ceph-mgr停止时,IO可以继续,
但是度量不会刷新,并且某些与度量相关的请求(例如,ceph df)可能会被阻止。我们建议您多部署ceph-mgr的几个实例来实现可靠性。 - ceph-mgr守护进程daemon包括基于REST的API管理。注:API仍然是实验性质的,目前有一些限制,但未来会成为API管理的基础。
- ceph-mgr还包括一个Prometheus插件。
- ceph-mgr现在有一个Zabbix插件。使用zabbix_sender,它可以将集群故障事件发送到Zabbix Server主机。
这样可以方便地监视Ceph群集的状态,并在发生故障时发送通知。
- ceph-mgr是一个新的后台进程,这是任何Ceph部署的必须部分。虽然当ceph-mgr停止时,IO可以继续,
- 集群的总体可扩展性有所提高。我们已经成功测试了多达10,000个OSD的集群。
- 目前,每个OSD都具有与其相关联的设备类(例如,hdd或ssd),允许CRUSH规则将数据简单地映射到系统中的设备的子集。
通常不需要手动编写CRUSH规则或手动编辑CRUSH。可以优化CRUSH权重,以保持OSD之间数据的近乎完美的分布。 - 还有一个新的upmap异常处理机制,允许单个PG移动以实现完美的分发(这需要客户端)。
- 每个OSD目前可以根据后端设备是HDD还是SSD来调整其默认配置。一般不需要手动调整。
- 原型mclock QoS排队算法已经可用。
- 新增一种退出机制,可以防止OSD出现对当前不能处理IO对象或PG的请求过载情况。
- OSD更换过程简化,变得更加强大了。
- 您可以使用ceph功能来查询所有连接的后台程序和客户端的支持功能和版本。
- 通过ceph osd set-require-min-compat-client连接到集群,您可以配置最旧的Ceph客户端版本,但 Ceph将阻止您启用会破坏与这些客户端的兼容性的功能。
- 包括osd_recovery_sleep,osd_snap_trim_sleep和osd_scrub_sleep的几个睡眠设置,已经被重新实现,并且可以有效地工作。(这些在某些情况下用于解决问题,限制后台工作。)
- 完成对Luminous的升级后,集群将尝试将现有池与已知应用(即CephFS,RBD和RGW)相关联。未与应用程序关联的使用池将生成健康警告,可以使用新命令手动关联任何未关联的池。ceph osd pool application enable
- Bluestore
-
RGW
- RGW支持最终用户请求服务,通过ElasticSearch进行RGW元数据搜索,并且还支持自定义元数据字段。
查询语言是一组RESTful API,用户可以通过其元数据来搜索对象。还添加了允许自定义元数据字段控制的新API。 - RGW支持动态存储桶索引分片。随着桶中的对象数量的增加,RGW将自动重新构建桶索引。不需要用户干预或桶大小容量规划。
- RGW引入了上传对象的服务器端加密,用于管理加密密钥的三个选项有:自动加密(仅推荐用于测试设置),客户提供的类似于Amazon SSE-C规范的密钥,以及通过使用外部密钥管理服务 OpenstackBarbician)类似于Amazon SSE-KMS规范。
- RGW具有初步的类似AWS的存储桶策略API支持。现在,策略是一种表达一系列新授权概念的方式。未来,这将成为附加身份验证功能的基础,例如STS和组策略等。
- RGW通过使用rados命名空间合并了几个元数据索引池。
- 新增S3对象标记API; 只支持GET / PUT / DELETE和PUT。
- RGW多站点支持在桶级启用或禁用同步。
- RGW支持最终用户请求服务,通过ElasticSearch进行RGW元数据搜索,并且还支持自定义元数据字段。
-
RBD
- RBD目前通过新的–data-pool选项来创建rbd,对EC池具有完整稳定的支持。
- RBD镜像的rbd-mirror后台进程是可用的。我们建议您多部署几个rbd镜像来实现可靠性。
- RBD镜像的rbd-mirror守护进程使用每个实例的唯一Ceph用户ID来支持新的Dashboard。
- 在创建集群期间,不再自动创建默认的’rbd’池。另外,当没有指定池时,rbd CLI使用的默认池的名称可以通过新的rbd default pool = <pool name>配置选项来覆盖。
- 通过新的rbd trash命令初始支持延迟映像删除。镜像,即使是由克隆主动使用的镜像,也可以移动到垃圾桶,并在以后删除。
- 新的管理池级别的rbd mirror poolpromote和rbd mirror pool demote命令可以批量提升/降级池内所有的镜像文件。
- 镜像现在可以通过rbd mirroringreplay delay = <seconds>配置选项支持可配置的复制延迟。
- 当对象映射功能启用时,可改进丢弃处理功能。
- RBD import 和 copy命令现在可以检测稀疏并保留稀疏区域。
- 快照可以包含创建时间戳。
- 为RBD客户端指定了用户授权功能简化。 使用RBD功能配置文件的一般语法是“mon’profile rbd’osd’profile rbd [-read-only] [pool = {pool-name} [,…]]’”。
-
CephFS
- 多MDS已经稳定,主MDS数量可以根据需求进行调整。
- CephFS目录分片已经稳定的,默认情况下在新的文件系统上启用。
要使其在现有的文件系统上启动,要使用“ceph fs set<fs_name> allow_dirfrags”。大型或非常繁忙的目录被分割并(可能)自动分布在多个MDS后台驻留程序中。 - 在不需要自动负载均衡的情况下,目录子树可以明确固定到特定的MDS后台程序。
- 客户端密钥现在可以使用新的ceph fs authorize命令创建。
- 当在具有CephFS的Pool上运行’df’命令时,结果显示的内容是使用和可用的文件存储空间数据池(仅限fuse客户端)。
-
Miscellaneous
- Debian Stretch现在正在构建版本包。QA仅限于CentOS和Ubuntu(xenial and trusty),我们现在构建的发行版包括:
- CentOS 7 (x86_64 and aarch64)
- Debian 8 Jessie (x86_64)
- Debian 9 Stretch (x86_64)
- Ubuntu 16.04 Xenial (x86_64 and aarch64)
- Ubuntu 14.04 Trusty (x86_64)
- FreeBSD的Ceph的第一个版本可用。通过常规FreeBSD端口和软件包发布系统,最新可用版本:net/ceph-devel。
- Debian Stretch现在正在构建版本包。QA仅限于CentOS和Ubuntu(xenial and trusty),我们现在构建的发行版包括:
在Jewel版本上进行的重要修改
-
-
RADOS
- 现在默认为AsyncMessenger (ms type = async)的传统SimpleMessenger。最明显的区别是
我们现在使用固定大小的线程池进行网络连接(而不是使用SimpleMessenger,一个socket两个线程)。 - 优化OSD故障检测时间,而以前的心跳超时(默认为20秒)。
- 优化OSDMaps的代码量。
- 集群在进行重平衡/数据恢复时,OSD会停止Scrub。
- 现在默认为AsyncMessenger (ms type = async)的传统SimpleMessenger。最明显的区别是
-
RGW
- RGW现在支持S3多对象复制API。
- 现在可以离线重塑现有的分支。离线目前,桶重塑要求所有IO(特别是写入)到特定的桶是静止的。(用于自动在线重塑Luminous的新功能。)
- RGW现在支持对象的数据压缩。
- Civetweb版本已升级到1.8。
- 现在支持Swift静态网站API(前提支持S3)。
- 添加了S3 bucket生命周期API。注意目前只支持对象到期。
- 支持自定义搜索过滤器已添加到LDAP认证中实现。
- 对NFS版本3的支持已添加到RGW NFS网关。
-
RBD
- image快照的数量可配置最大值。
- rbd Python API现在支持异步IO操作。
-