Ceph v12.1.0 Luminous RC released

时间:2021-10-08 12:37:09

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_sleeposd_snap_trim_sleeposd_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 promoterbd mirror pool demote可以批量提升/降级一个pool内所有的mirrored images。
  • mirroring 现在可以通过 rbd mirroring replay delay = <seconds> 配置选项支持可选择的配置复制延迟。
  • 当对象map 特性启用时,可以提升丢弃处理功能。
  • rbd CLI importcopy 命令现在可以检测稀疏并保留稀疏区域。
  • 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-upmapceph osdrm-pg-upmapceph osd pg-upmap-itemsceph 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 downceph osd ls-tree rack1
  • ceph osd {add,rm} - {noout,noin,nodown,noup} 允许nooutnodownnoinnoup 标志应用于指定的的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 已被修复。