ceph L 版本终于出了一个候选release版本。来看看都有哪些新功能吧。
本文翻译自官网:v12.1.0 Luminous RC released
Github:https://github.com/ceph/ceph/tree/luminous
本文摘自个人博客,更多干货,也详见该博客:夏天的风
翻译和校对需要时间,转载请注明出处:http://xiaqunfeng.cc/2017/06/28/Ceph-v12-1-0-Luminous-RC-released/
水平有限,有翻译不妥之处,欢迎指正!
v12.1.0 Luminous RC released
这是Luminous的第一个候选版本,下一个长期的稳定release。
Ceph Luminous将是下一个长期的稳定release系列的基础。 自Kraken(v11.2.z)和jewel(v10.2.z)以来,发生了重大的变化。
Major Changes from Kraken
General
Ceph目前拥有一个简单的、内置的基于Web的仪表板,用于监控群集状态。
RADOS
BlueStore
- ceph-osd的新后端存储BlueStore已经稳定,并且是新建OSD的默认设置。 BlueStore通过直接管理物理磁盘(HDD或SSD)而不使用XFS之类的中间文件系统来管理存储在每个OSD上的数据,这提供了更好的性能和特性。
- BlueStore对于通过ceph存储的数据支持完整数据和元数据校验。
- BlueStore支持zlib、snappy或LZ4的在线压缩。(Ceph还支持zstd进行RGW压缩,但由于性能原因,不推荐BlueStore使用zstd)。
EC pools现在完全支持覆盖写,允许它们与RBD和CephFS一起使用。Read more about EC overwrites**
ceph-mgr
- ceph-mgr是一个新的进程,它是任何Ceph部署所必须的一部分。虽然当ceph-mgr停止时,可以继续下发IO,但是度量不会刷新,并且某些与度量相关的请求(如:ceph df)可能会阻塞。为了可靠性,我们建议部署ceph-mgr的多个实例。查看这里的注释
Upgrading
_ - ceph-mgr进程包括一个基于REST的管理API。 API仍然处于实验阶段,并有一定的限制,但未来将成为Ceph基于API管理的基础。
集群的总体可扩展性有所提高。我们已经成功测试了多达10,000个OSD节点的集群。
- 目前,每个OSD都具有与其相关联的设备类(例如,hdd或ssd),允许CRUSH规则将数据简单地映射到系统中的设备的子集。通常不需要手动编写CRUSH规则或手动编辑CRUSH。
- 现在可以优化CRUSH权重,以保持OSD之间数据的近乎完美的分布。
- 还有一个新的upmap异常处理机制,允许单个PG移动以实现完美的分布(这需要luminous的客户端)。
- 目前每个OSD可以根据后端设备是HDD还是SSD来调整其默认配置。一般不需要手动调整。
- mclock QoS排队算法原型现在是可用的;
- 现在有一种 backoff 机制,可以防止OSD出现对当前不能处理IO的对象或PG的请求出现过载。
- 简化了OSD更换过程,并且更加鲁棒。
- 您可以使用
ceph features
来查询所有连接的守护进程和客户端的支持特性和版本。 - 您可以配置你想要最旧的Ceph客户端版本,并通过
ceph osd set-require-min-compat-client
命令连接到集群,Ceph将阻止您启用会破坏与这些客户端兼容性的特性。 - 一些
sleep
的设置,包括osd_recovery_sleep
,osd_snap_trim_sleep
和osd_scrub_sleep
已经被重新实现,并且可以有效地工作。(这些在某些情况下用于解决问题,限制后台工作。)
RGW:
- ElasticSearch支持的RGW元数据搜索现在通过RGW本身支持最终用户请求服务,并且还支持自定义元数据字段。查询语言是一组RESTful API,用户可以通过其元数据来搜索对象。还添加了允许自定义元数据字段控制的新API。
- RGW支持动态存储桶索引分片(bucket index sharding)。随着桶中的对象数量的增加,RGW将自动重新构建桶索引。不需要用户干预或桶大小容量规划。
- RGW引入了上传对象的服务器端加密,用于管理加密密钥的三个选项有:自动加密(仅推荐用于测试设置),客户提供的类似于Amazon SSE-C规范的密钥,以及通过使用外部密钥管理服务 (OpenstackBarbician)类似于Amazon SSE-KMS规范。
- RGW具有初步的类似AWS的存储桶策略API支持。现在,策略是一种表达一系列新授权概念的方式。未来,这将成为附加身份验证功能的基础,例如STS和组策略等。
- RGW通过使用rados命名空间合并了几个元数据索引池。
RBD:
- RBD目前通过
rbd create
新的--data-pool
选项,对EC pools有全面稳定的支持。 - RBD镜像的rbd-mirror守护进程现在是高可用的。我们建议部署rbd-mirror的多个实例来实现可靠性。
- 在创建集群期间,不再自动创建默认的
rbd
存储池。另外,当没有指定池时,rbd CLI 使用的默认池的名称可以通过新的rbd default pool = <pool name>
配置选项来覆盖。 - 通过新的
rbd trash
CLI命令初步支持延迟 image 删除。images,即使是由克隆主动使用的镜像,也可以移动到垃圾桶,并在以后删除。 - 新的管理池级别的命令
rbd mirror pool promote
和rbd mirror pool demote
可以批量提升/降级一个pool内所有的mirrored images。 - mirroring 现在可以通过
rbd mirroring replay delay = <seconds>
配置选项支持可选择的配置复制延迟。 - 当对象map 特性启用时,可以提升丢弃处理功能。
- rbd CLI
import
和copy
命令现在可以检测稀疏并保留稀疏区域。 - snapshots现在将包含创建时间戳。
CephFS:
- 现在,多个活动的MDS守护进程是稳定的。活动的MDS服务器的数量可以基于活动的CephFS文件系统进行上下调整。
- CephFS目录分片现在是稳定的,并且在新的文件系统上默认启用。要使其在现有的文件系统上启动,使用命令
ceph fs set<fs_name> allow_dirfrags
。大的或非常繁忙的目录被分割并(可能)自动分布在多个MDS守护进程中。 - 在自动负载均衡不需要和无效的情况下,目录子树可以明确固定到特定的MDS守护进程。
Miscellaneous:
Debian Stretch现在正在构建版本包。我们现在构建的发行版包括:
- CentOS 7 (x86_64and aarch64)
- Debian 8 Jessie(x86_64)
- Debian 9 Stretch(x86_64)
- Ubuntu 16.04 Xenial(x86_64 and aarch64)
- Ubuntu 14.04Trusty (x86_64)
注意 QA 仅限于 CentOS 和 Ubuntu (xenialand trusty).
CLI 变化
-
ceph -s
或者ceph status
命令焕然一新。 -
ceph {osd,mds,mon} versions
总结了运行中守护进程的版本。 -
ceph {osd,mds,mon} count-metadata <property>
类似地列出通过ceph {osd,mds,mon} metadata
命令可见的任何其他守护进程元数据。 -
ceph features
总结了连接的客户端和守护进程的特性和版本。 -
ceph osd require-osd-release <release>
替换旧的require_RELEASE_osds
flags。 -
ceph osd pg-upmap
,ceph osdrm-pg-upmap
,ceph osd pg-upmap-items
,ceph osdrm-pg-upmap-items
可以明确地管理upmap项目。 -
ceph osd getcrushmap
在stderr上返回一个crush map版本号,如果版本匹配,ceph osd setcrushmap [version]
将只会注入更新的crush map。这允许crush map进行离线更新,然后重新注入到群集中,而不用担心颠覆性的变化(例如,通过其他管理员新添加和修改osds)。 -
ceph osd create
已被ceph osd new
所替换。大多数用户应该使用像ceph-disk
这样面向用户的工具来隐藏这个。 -
ceph osd destroy
将标记一个OSD被损坏,并删除其cephx和lockbox keys。但其OSD id和CRUS map entry 将保留不动,允许使用最少数据重新平衡的替换设备重新使用该 ID。 -
ceph osd purge
将从集群中删除OSD的所有痕迹,包括其cephx加密密钥,dm-crypt lockbox秘钥,OSD ID和crush map entry。 -
ceph osd ls-tree <name>
将在给定的CRUSH名称(如主机或机架名称)下输出OSD id列表。这对于为整个子树应用更改信息非常有用。例如,ceph osd down
,ceph osd ls-tree rack1
。 -
ceph osd {add,rm} - {noout,noin,nodown,noup}
允许noout
,nodown
,noin
和noup
标志应用于指定的的OSD。 -
ceph log last [n]
将输出集群日志的最后n行。 -
ceph mgr dump
将dump出MgrMap,包括当前活动的和任何 standbys 的 ceph-mgr守护进程。 -
ceph osd crush swap-bucket <src> <dest>
将交换层次结构中两个CRUSH buckets的内容,同时保留buckets的id。这允许替换整个设备子树(例如,用新imaged的BlueStore OSD替换整个主机的FileStore OSD),而不会中断跨越相邻设备的数据分布。 -
ceph osd set-require-min-compat-client <release>
可以配置支持群集的最旧的客户端版本。其他更改,如CRUSH可调参数,如果违反此设置,将会失败并显示错误。如果当前连接到集群的客户端版本比指定版本还老旧,则更改此设置也将失败。 -
ceph config-key dump
dump出config-key entries及其内容。(已有的ceph config-key ls
仅dump密钥名称,而不是值。) -
ceph osd set-{full,nearfull,backfillfull}-ratio
将集群范围的比例设置为各种全阈值(例如:当集群拒绝IO时,当集群警告接近满时,当OSD延迟PG重新平衡到本身时)。 -
ceph osd reweightn
将在单个命令中指定多个OSD的reweight
值。这相当于一系列ceph osd rewight
命令。 -
ceph crush class {create,rm,ls}
管理新的CRUSH设备类功能。ceph crush set-device-class <osd> <class>
将为特定设备设置class。 -
ceph mon feature ls
将列出MonMap中记录的monitor功能。ceph mon feature set
将设置一个可选功能(这些功能尚未存在)。
Major Changes from Jewel
RADOS
- 我们现在默认使用AsyncMessenger(ms type = async),而不是传统的SimpleMessenger。 最明显的区别是,我们现在使用固定大小的线程池进行网络连接(而不是使用SimpleMessenger每个socket两个线程)。
- 现在几乎可以马上检测到一些OSD故障,而之前的心跳超时(默认为20秒)必须过期。 当host保持up状态,但ceph-osd进程不再运行的故障出现时,可以防止IO长时间阻塞。
- 编码OSDMaps的大小已经减少了。
- 当recovery或rebalancing进行时,OSD现在会静止scrubbing。
RGW
- RGW现在支持 S3 多部分对象部分复制(multipart object copy-part)API。
- 现在离线resharding一个现有的bucket是可能的。离线resharding bucket当前需要所有到这个指定bucket的IO(特别是writes)是静止的。(为了自动在线resharding,看上面Luminous的新特性)
- RGW现在支持对对象的数据压缩。
- Civetweb版本已经更新到1.8。
- 支持Swift静态网站API(之前的版本就已经支持S3)
- S3 bucket生命周期 API 已添加。注意当前只支持对象到期。
- 支持用户自定义搜索过滤器已添加到 LDAP 认证实现中。
- 对NFS版本3的支持已添加到RGW NFS网关
- 已经为librgw创建了一个Python绑定
RBD
- rbd-mirror守护进程现在支持从主image到非主image复制动态image特征更新和image元数据密钥/值对。
- Image快照的数量可以可选地限制在可配置的最大值。
- rbd Python API现在支持异步IO操作。
CephFS
- libcephfs函数定义已更改,以启用适当的uid / gid控件。library版本已经增加,以反映界面的变化。
- standby replay MDS守护程序现在在执行删除的工作负载上消耗更少的内存。
- Scrub 现在修复回溯,通常使用
damage ls
发现错误。 - 新
pg_files
子命令cephfs-data-scan
可以识别受损坏或丢失的RADOS PG影响的文件。 - 假阳性警告
failing to respond to cache pressure
已被修复。