Hi everyone,
A couple of weeks ago the first online Ceph Developer Summit was held
to plan and discuss features for the next Ceph release - Pacific. Here
are some of the highlights from the RADOS session.
Recording:
https://www.youtube.com/watch?reload=9&v=4KZCB-XzFCY
General improvements
- Adaptive recovery settings for smarter throttling of client vs recovery I/O
- Reflect severity of degradedness in ceph health and improve
mechanism to discover unfound objects that can help recover PGs
- Distributed tracing in the OSD I/O path to identify performance
bottlenecks and improve debugging capabilities -
https://github.com/ceph/ceph/pull/31358
- Telemetry: mapping device errors and osd crashes back to devices to
help improve disk prediction models
- New score-based leader election system in the monitors - first step
to reliable stretched Ceph clusters -
https://github.com/ceph/ceph/pull/32336
- Controlled osdmap trimming -
https://github.com/ceph/ceph/pull/19076
- Automated OSD re-provisioning by the manager to help with repair and
migrating to new BlueStore formats
- Dedup support starting with RGW -
https://github.com/athanatos/ceph/blob/sjust/wip-refcount/doc/dev/deduplica…
- Manager and python subinterpreters - leave subinterpreters as they
are now, evaluate the need to return to a single interpreter and
review mgr modules for problematic dependencies
BlueStore and Performance related improvements
- Lower Write Amplification and improve space-amplification with
rocksdb column family sharding -
https://github.com/ceph/ceph/pull/34006
- Lower Space Amplification
- New hybrid allocator -
https://github.com/ceph/ceph/pull/33365
- Deferred "big" writes -
https://github.com/ceph/ceph/pull/33434
- Memory Management
- Onode double cache fix -
https://github.com/ceph/ceph/pull/27705
- Cache age-based binning -
https://github.com/ceph/ceph/pull/23710
- Onode data structure diet -
https://github.com/ceph/ceph/pull/32697
- Fix onode cache pinning -
https://github.com/ceph/ceph/pull/32852
- io_uring
- Code is already in ceph, io_uring kernel support backported to centos 8.2.
- Consider making it default for kernels that support it
- Should we continue to depend on the current aio_t for io_uring?
- Ongoing QoS work
- Balancer and PG autoscaler
- Turn balancer on in upmap mode by default and set
min_compat_client to luminous for new clusters -
https://github.com/ceph/ceph/pull/34541
- Smarter balancing of PGs - take into account bytes used, omap used
to balance in addition to pg_num, balance based on primariness for
read performance
- PG autoscaler only scale down under pressure
More details in:
https://pad.ceph.com/p/cds-pacific
https://trello.com/b/ugTc2QFH/ceph-backlog (look for the blue pacific label)
Thanks,
Core RADOS Team