通用功能:算法
目前,Ceph拥有一个操做简单,基于Web的内置仪表板,用于监控群集状态。后端
(Ceph Dashboard具体能够参阅Ceph官网中文文档:Ceph luminous 新功能以内置dashboard)服务器
RADOS:
BlueStore:app
- ceph-osd的新后端存储BlueStore已经稳定,是新建立的OSD的默认设置。 BlueStore经过直接管理物理HDD或SSD而不使用诸如XFS的中间文件系统,来管理每一个OSD存储的数据,这提供了更大的性能和功能。
- BlueStore支持Ceph存储的全部的完整的数据和元数据校验。
- BlueStore内嵌支持使用zlib,snappy或LZ4进行压缩。(Ceph还支持zstd进行RGW压缩,但因为性能缘由,不为BlueStore推荐使用zstd)。
- 擦除编码池如今彻底支持覆盖,容许它们与RBD和CephFS一块儿使用。
ceph-mgr:负载均衡
- ceph-mgr是一个新的后台进程,这是任何Ceph部署的必须部分。虽然当ceph-mgr中止时,IO能够继续,可是度量不会刷新,而且某些与度量相关的请求(例如,ceph df)可能会被阻止。咱们建议您多部署ceph-mgr的几个实例来实现可靠性。
- ceph-mgr后台进程包括一个基于REST的管理API。 API仍然处于实验阶段,有必定的限制,但将来将成为Ceph基于API管理的基础。
- 集群的整体可扩展性有所提升。咱们已经成功测试了多达10,000个OSD的集群。
- 目前,每一个OSD都具备与其相关联的设备类(例如,hdd或ssd),容许CRUSH规则将数据简单地映射到系统中的设备的子集。一般不须要手动编写CRUSH规则或手动编辑CRUSH。
- 能够优化CRUSH权重,以保持OSD之间数据的近乎完美的分布。
- 还有一个新的upmap异常处理机制,容许单个PG移动以实现完美的分发(这须要客户端)。
- 每一个OSD目前能够根据后端设备是HDD仍是SSD来调整其默认配置。通常不须要手动调整。
- 原型mclock QoS排队算法如今是可用的;
- 如今有一种退出机制,能够防止OSD出现对当前不能处理IO对象或PG的请求过载状况。
- OSD更换过程简化,变得更增强大了。
- 您可使用ceph功能来查询全部链接的后台程序和客户端的支持功能和版本。
- 经过ceph osdset-require-min-compat-client链接到集群,您能够配置最旧的Ceph客户端版本,但 Ceph将阻止您启用会破坏与这些客户端的兼容性的功能。
- 包括osd_recovery_sleep,osd_snap_trim_sleep和osd_scrub_sleep的几个睡眠设置,已经被从新实现,而且能够有效地工做。(这些在某些状况下用于解决问题,限制后台工做。)
RGW:
- 目前,RGW支持最终用户请求服务,经过ElasticSearch进行RGW元数据搜索,而且还支持自定义元数据字段。查询语言是一组RESTful API,用户能够经过其元数据来搜索对象。还添加了容许自定义元数据字段控制的新API。
- RGW支持动态存储桶索引分片。随着桶中的对象数量的增长,RGW将自动从新构建桶索引。不须要用户干预或桶大小容量规划。
- RGW引入了上传对象的服务器端加密,用于管理加密密钥的三个选项有:自动加密(仅推荐用于测试设置),客户提供的相似于Amazon SSE-C规范的密钥,以及经过使用外部密钥管理服务 OpenstackBarbician)相似于Amazon SSE-KMS规范。
- RGW具备初步的相似AWS的存储桶策略API支持。如今,策略是一种表达一系列新受权概念的方式。将来,这将成为附加身份验证功能的基础,例如STS和组策略等。
- RGW经过使用rados命名空间合并了几个元数据索引池。
RBD:
- RBD目前经过新的–data-pool选项来建立rbd,对擦除编码池具备完整的,稳定的支持。
- RBD镜像的rbd-mirror后台进程是可用的。咱们建议您多部署几个rbd镜像来实现可靠性。
- 在建立集群期间,再也不自动建立默认的“rbd”池。另外,当没有指定池时,rbd CLI使用的默认池的名称能够经过新的rbd default pool = <pool name>配置选项来覆盖。
- 经过新的rbd trash CLI命令初始支持延迟映像删除。镜像,即便是由克隆主动使用的镜像,也能够移动到垃圾桶,并在之后删除。
- 新的管理池级别的rbd mirror poolpromote和rbd mirror pool demote命令能够批量提高/降级池内全部的镜像文件。
- 镜像如今能够经过rbd mirroringreplay delay = <seconds>配置选项支持可配置的复制延迟。
- 当对象映射功能启用时,可改进丢弃处理功能。
- rbd CLI导入和复制命令如今能够检测稀疏并保留稀疏区域。
- 快照能够包含建立时间戳。
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}版本总结了运行后台进程的版本。
- ceph {osd,mds,mon} count-metadata <property>相似地列出经过ceph {osd,mds,mon}元数据命令可见的任何其余守护进程元数据。
- ceph功能总结了链接的客户端和后台程序的功能和版本。
- ceph osd require-osd-release <release>替换旧的require_RELEASE_osds标识。
- ceph osd pg-upmap,ceph osdrm-pg-upmap,ceph osd pg-upmap-items,ceph osdrm-pg-upmap-items能够明确地管理upmap项目。
- ceph osdgetcrushmap在stderr上返回一个crush map版本号,若是版本匹配,ceph osdsetcrushmap [version]将只会注入更新的crush map。这容许crush map进行离线更新,而后从新注入到群集中,而不用担忧变化(例如,经过新添加的osds或其余管理员的更改)。
- ceph osd的建立已被ceph osd替换为新的。大多数用户应该使用像ceph-disk这样面向用户的工具来隐藏这个。
- ceph osd destroy将标记一个已毁坏的OSD,并删除其cephx和lockbox秘钥。可是,OSD ID和CRUSH映射条目将保持原样,容许使用最少数据从新平衡的替换设备从新使用该ID。
- ceph osd清除将从集群中删除OSD的全部痕迹,包括其cephx加密密钥,dm-crypt lockbox秘钥,OSD ID和crush map条目。
- ceph osd ls-tree<name>将在给定的CRUSH名称(如主机或机架名称)下输出OSD id列表。这对于为整个子树应用更改信息很是有用。例如,ceph osd down`cephosd ls-tree rack1`。
- ceph osd {add,rm} – {noout,noin,nodown,noup}容许noout,nodown,noin和noup标识应用于特定的OSD。
- ceph log last [n]将输出集群日志的最后n行。
- ceph mgr dump将转储MgrMap,包括当前活动的ceph-mgr后台程序和任何备用程序。
- ceph osd crushswap-bucket <src> <dest>将交换层次结构中两个CRUSH桶的内容,同时保留存储桶的id。这容许替换整个设备子树(例如,用新成像的BlueStore OSD替换整个主机的FileStore OSD),而不会中断跨越相邻设备的数据分布。
- ceph osdset-require-min-compat-client <release>能够配置支持群集的最旧的客户端版本。其余更改,如CRUSH可调参数,若是违反此设置,将会失败并显示错误。若是当前链接到集群的客户端版本比指定版本还老旧,则更改此设置也将失败。
- ceph config-keydump转储配置密钥条目及其内容。(已有的ceph config-keyls仅转储密钥名称,而不是值。)
- ceph osd set-{full,nearfull,backfillfull}-ratio将集群范围的比例设置为各类全阈值(例如:当集群拒绝IO时,当集群警告接近满时,当OSD延迟PG从新平衡到自己时)。
- ceph osdreweightn将在单个命令中指定多个OSD的reweight值。这至关于一系列ceph osd rewight命令。
- ceph crush class {create,rm,ls}管理新的CRUSH设备类功能。 ceph crushset-device-class <osd> <class>将为特定设备设置clas。
- ceph mon featurels将列出MonMap中记录的监视功能。ceph monfeature set将设置一个可选功能(这些功能还没有存在)。