v15.2.5 Octopus released
This is the fifth release of the Ceph Octopus stable release series. This release brings a range of fixes across all components. We recommend that all Octopus users upgrade to this release.
Notable Changes ¶
CephFS: Automatic static subtree partitioning policies may now be configured using the new distributed and random ephemeral pinning extended attributes on directories. See the documentation for more information: https://docs.ceph.com/docs/master/cephfs/multimds/
Monitors now have a config option
mon_osd_warn_num_repaired
, 10 by default. If any OSD has repaired more than this many I/O errors in stored data aOSD_TOO_MANY_REPAIRS
health warning is generated.Now when noscrub and/or no deep-scrub flags are set globally or per pool, scheduled scrubs of the type disabled will be aborted. All user initiated scrubs are NOT interrupted.
Fix an issue with osdmaps not being trimmed in a healthy cluster ( issue#47297, pr#36981)
Changelog ¶
bluestore,core: bluestore: blk:BlockDevice.cc: use pending_aios instead of iovec size as ios num (pr#36668, weixinwei)
bluestore,tests: test/store_test: refactor bluestore spillover test (pr#34943, Igor Fedotov)
bluestore,tests: tests: objectstore/store_test: kill ExcessiveFragmentation test case (pr#36049, Igor Fedotov)
bluestore: bluestore: Rescue procedure for extremely large bluefs log (pr#36123, Adam Kupczyk)
bluestore: octopus:os/bluestore: improve/fix bluefs stats reporting (pr#35748, Igor Fedotov)
bluestore: os/bluestore: fix bluefs log growth (pr#36621, Adam Kupczyk, Jianpeng Ma)
bluestore: os/bluestore: simplify Onode pin/unpin logic (pr#36795, Igor Fedotov)
build/ops: Revert “mgr/osd_support: remove module and all traces” (pr#36973, Sebastian Wagner)
build/ops: ceph-iscsi: selinux fixes (pr#36302, Mike Christie)
build/ops: mgr/dashboard/api: reduce amount of daemon logs (pr#36693, Ernesto Puerta)
ceph-volume: add dmcrypt support in raw mode (pr#35830, Guillaume Abrioux)
ceph-volume: add drive-group subcommand (pr#36558, Jan Fajerski, Sebastian Wagner)
ceph-volume: add tests for new functions that run LVM commands (pr#36614, Rishabh Dave)
ceph-volume: don’t use container classes in api/lvm.py (pr#35879, Rishabh Dave, Guillaume Abrioux)
ceph-volume: fix lvm functional tests (pr#36409, Jan Fajerski)
ceph-volume: handle idempotency with batch and explicit scenarios (pr#35880, Andrew Schoen)
ceph-volume: remove container classes from api/lvm.py (pr#36608, Rishabh Dave)
ceph-volume: report correct rejected reason in inventory if device type is invalid (pr#36410, Satoru Takeuchi)
ceph-volume: run flake8 in python3 (pr#36588, Jan Fajerski)
cephfs,common: common: ignore SIGHUP prior to fork (issue#46269, pr#36195, Willem Jan Withagen, hzwuhongsong)
cephfs,core,mgr: mgr/status: metadata is fetched async (pr#36630, Michael Fritch)
cephfs,core,rbd,rgw: librados: add LIBRADOS_SUPPORTS_GETADDRS support (pr#36643, Xiubo Li)
cephfs,mgr: mgr/volumes/nfs: Add interface for adding user defined configuration (pr#36635, Varsha Rao)
cephfs,mon: mon/MDSMonitor: copy MDS info which may be removed (pr#36035, Patrick Donnelly)
cephfs,pybind: pybind/ceph_volume_client: Fix PEP-8 SyntaxWarning (pr#36100, Đặng Minh Dũng)
cephfs,tests: mgr/fs/volumes: misc fixes (pr#36327, Patrick Donnelly, Kotresh HR)
cephfs,tests: tests: Revert “Revert “qa/suites/rados/mgr/tasks/module_selftest: whitelist … (issue#43943, pr#36042, Venky Shankar)
cephfs,tests: tests: qa/tasks/cephfs/cephfs_test_case.py: skip cleaning the core dumps when in program case (pr#36043, Xiubo Li)
cephfs,tests: tests: qa/tasks: make sh() in vstart_runner.py identical with teuthology.orchestra.remote.sh (pr#36044, Jos Collin)
cephfs: Update nfs-ganesha package requirements doc backport (pr#36063, Varsha Rao)
cephfs: cephfs: client: fix setxattr for 0 size value (NULL value) (pr#36045, Sidharth Anupkrishnan)
cephfs: cephfs: client: fix snap directory atime (pr#36039, Luis Henriques)
cephfs: cephfs: client: release the client_lock before copying data in read (pr#36046, Chencan)
cephfs: client: expose ceph.quota.max_bytes xattr within snapshots (pr#36403, Shyamsundar Ranganathan)
cephfs: client: introduce timeout for client shutdown (issue#44276, pr#35962, “Yan, Zheng”, Venky Shankar)
cephfs: mds/MDSRank: fix typo in “unrecognized” (pr#36197, Nathan Cutler)
cephfs: mds: add ephemeral random and distributed export pins (pr#35759, Patrick Donnelly, Sidharth Anupkrishnan)
cephfs: mds: fix filelock state when Fc is issued (pr#35842, Xiubo Li)
cephfs: mds: reset heartbeat in EMetaBlob replay (pr#36040, Yanhu Cao)
cephfs: mgr/nfs: Check if pseudo path is absolute path (pr#36299, Varsha Rao)
cephfs: mgr/nfs: Update MDCACHE block in ganesha config and doc about nfs-cephadm in vstart (pr#36224, Varsha Rao)
cephfs: mgr/volumes: Deprecate protect/unprotect CLI calls for subvolume snapshots (pr#36126, Shyamsundar Ranganathan)
cephfs: mgr/volumes: fix “ceph nfs export” help messages (pr#36220, Nathan Cutler)
cephfs: nfs backport (pr#35499, Jeff Layton, Varsha Rao, Ramana Raja, Kefu Chai)
common,core: common, osd: add sanity checks around osd_scrub_max_preemptions (pr#36034, xie xingguo)
common,rbd,tools: rbd: immutable-object-cache: fixed crashes on start up (pr#36660, Jason Dillaman)
common,rbd: crush/CrushWrapper: rebuild reverse maps after rebuilding crush map (pr#36662, Jason Dillaman)
common: common: log: fix timestap precision of log can’t set to millisecond (pr#36048, Guan yunfei)
core,mgr: mgr: decrease pool stats if pg was removed (pr#36667, Aleksei Gutikov)
core,rbd: osd/OSDCap: rbd profile permits use of “rbd_info” (pr#36414, Florian Florensa)
core,tools: tools/rados: Set locator key when exporting or importing a pool (pr#36666, Iain Buclaw)
core: mon/OSDMonitor: Reset grace period if failure interval exceeds a threshold (pr#35799, Sridhar Seshasayee)
core: mon/OSDMonitor: only take in osd into consideration when trimming osd… (pr#36981, Kefu Chai)
core: mon: fix the ‘Error ERANGE’ message when conf “osd_objectstore” is filestore (pr#36665, wangyunqing)
core: monclient: schedule first tick using mon_client_hunt_interval (pr#36633, Mykola Golub)
core: osd/OSD.cc: remove osd_lock for bench (pr#36664, Neha Ojha, Adam Kupczyk)
core: osd/PG: fix history.same_interval_since of merge target again (pr#36033, xie xingguo)
core: osd/PeeringState: prevent peer’s num_objects going negative (pr#36663, xie xingguo)
core: osd/PrimaryLogPG: don’t populate watchers if replica (pr#36029, Ilya Dryomov)
core: osd: Cancel in-progress scrubs (not user requested) (pr#36291, David Zafman)
core: osd: expose osdspec_affinity to osd_metadata (pr#35957, Joshua Schmid)
core: osd: fix crash in _committed_osd_maps if incremental osdmap crc fails (pr#36340, Neha Ojha, Dan van der Ster)
core: osd: make message cap option usable again (pr#35737, Neha Ojha, Josh Durgin)
core: osd: wakeup all threads of shard rather than one thread (pr#36032, Jianpeng Ma)
core: test: osd-backfill-stats.sh use nobackfill to avoid races in remainin… (pr#36030, David Zafman)
doc: cephadm batch backport (pr#36450, Varsha Rao, Ricardo Marques, Kiefer Chang, Matthew Oliver, Paul Cuzner, Kefu Chai, Daniel-Pivonka, Sebastian Wagner, Volker Theile, Adam King, Michael Fritch, Joshua Schmid)
doc: doc/mgr/crash: Add missing command in rm example (pr#36690, Daniël Vos)
doc: doc/rados: Fix osd_scrub_during_recovery default value (pr#36661, Benoît Knecht)
doc: doc/rbd: add rbd-target-gw enable and start (pr#36416, Zac Dover)
doc: doc: PendingReleaseNotes: clean slate for 15.2.5 (pr#35753, Nathan Cutler)
mgr,pybind: pybind/mgr/balancer: use “==” and “!=” for comparing str (pr#36036, Kefu Chai)
mgr,pybind: pybind/mgr/pg_autoscaler/module.py: do not update event if ev.pg_num== ev.pg_num_target (pr#36037, Neha Ojha)
mgr,rbd: mgr/prometheus: automatically discover RBD pools for stats gathering (pr#36411, Jason Dillaman)
mgr/dashboard/api: increase API health timeout (pr#36562, Ernesto Puerta)
mgr/dashboard: Add button to copy the bootstrap token into the clipboard (pr#35796, Ishan Rai)
mgr/dashboard: Add host labels in UI (pr#35893, Volker Theile)
mgr/dashboard: Add hosts page unit tests (pr#36350, Volker Theile)
mgr/dashboard: Allow to edit iSCSI target with active session (pr#35997, Ricardo Marques)
mgr/dashboard: Always use fast angular unit tests (pr#36267, Stephan Müller)
mgr/dashboard: Configure overflow of popover in health page (pr#36460, Tiago Melo)
mgr/dashboard: Display check icon instead of true|false in various datatables (pr#35892, Volker Theile)
mgr/dashboard: Display users current bucket quota usage (pr#35926, Ernesto Puerta, Avan Thakkar)
mgr/dashboard: Extract documentation link to a component (pr#36587, Tiago Melo)
mgr/dashboard: Fix host attributes like labels are not returned (pr#36678, Kiefer Chang)
mgr/dashboard: Hide password notification when expiration date is far (pr#35975, Tiago Melo)
mgr/dashboard: Improve Summary’s subscribe methods (pr#35705, Tiago Melo)
mgr/dashboard: Prometheus query error in the metrics of Pools, OSDs and RBD images (pr#35885, Avan Thakkar)
mgr/dashboard: Re-enable OSD’s table autoReload (pr#36226, Kiefer Chang, Tiago Melo)
mgr/dashboard: Strange iSCSI discovery auth behavior (pr#36782, Volker Theile)
mgr/dashboard: The max. buckets field in RGW user form should be pre-filled (pr#35795, Volker Theile)
mgr/dashboard: Unable to edit iSCSI logged-in client (pr#36611, Ricardo Marques)
mgr/dashboard: Use right size in pool form (pr#35925, Stephan Müller)
mgr/dashboard: Use same required field message accross the UI (pr#36277, Volker Theile)
mgr/dashboard: add API team to CODEOWNERS (pr#36143, Ernesto Puerta)
mgr/dashboard: allow preserving OSD IDs when deleting OSDs (pr#35766, Kiefer Chang)
mgr/dashboard: cpu stats incorrectly displayed (pr#36322, Avan Thakkar)
mgr/dashboard: cropped actions menu in nested details (pr#35620, Avan Thakkar)
mgr/dashboard: fix Source column i18n issue in RBD configuration tables (pr#35819, Kiefer Chang)
mgr/dashboard: fix backporting issue #35926 (pr#36073, Ernesto Puerta)
mgr/dashboard: fix pool usage calculation (pr#36137, Ernesto Puerta)
mgr/dashboard: fix rbdmirroring dropdown menu (pr#36382, Avan Thakkar)
mgr/dashboard: fix regression in delete OSD modal (pr#36419, Kiefer Chang)
mgr/dashboard: fix tasks.mgr.dashboard.test_rbd.RbdTest.test_move_image_to_trash error (pr#36563, Kiefer Chang)
mgr/dashboard: fix ui api endpoints (pr#36160, Fabrizio D’Angelo)
mgr/dashboard: fix wal/db slots controls in the OSD form (pr#35883, Kiefer Chang)
mgr/dashboard: increase API test coverage in API controllers (pr#36260, Kefu Chai, Aashish Sharma)
mgr/dashboard: redirect to original URL after successful login (pr#36831, Avan Thakkar)
mgr/dashboard: remove “This week/month/year” and “Today” time stamps (pr#36789, Avan Thakkar)
mgr/dashboard: remove cdCopy2ClipboardButton formatted attribute (pr#35889, Tatjana Dehler)
mgr/dashboard: remove password field if login is using SSO and fix error message in confirm password (pr#36689, Ishan Rai)
mgr/dashboard: right-align dropdown menu of column filters (pr#36369, Kiefer Chang)
mgr/dashboard: telemetry activation notification (pr#35772, Tatjana Dehler)
mgr/dashboard: wait longer for health status to be cleared (pr#36346, Tatjana Dehler)
mgr/k8sevents: sanitise kubernetes events (pr#35684, Paul Cuzner)
mgr/prometheus: improve cache (pr#35847, Patrick Seidensal)
mgr: avoid false alarm of MGR_MODULE_ERROR (pr#35995, Kefu Chai)
mgr: mgr/DaemonServer.cc: make ‘config show’ on fsid work (pr#35793, Neha Ojha)
mgr: mgr/cephadm: Adapt Vagrantfile to use octopus instead of master repo on shaman (pr#35988, Volker Theile)
mgr: mgr/diskprediction_local: Fix array size error (pr#36577, Benoît Knecht)
mgr: mgr/progress: Skip pg_summary update if _events dict is empty (pr#36076, Manuel Lausch)
mgr: mgr/prometheus: log time it takes to collect metrics (pr#36581, Patrick Seidensal)
mgr: mgr: Add missing states to PG_STATES in mgr_module.py (pr#36786, Harley Gorrell)
mgr: mgr: fix race between module load and notify (pr#35794, Mykola Golub)
mgr: mon/PGMap: do not consider changing pg stuck (pr#35958, Kefu Chai)
monitoring: alert for pool fill up broken (pr#35136, Volker Theile)
msgr: New msgr2 crc and secure modes (msgr2.1) (pr#35720, Ilya Dryomov)
rbd,tests: tests/rbd_mirror: fix race on test shut down (pr#36657, Mykola Golub)
rbd: librbd: global and pool-level config overrides require image refresh to apply (pr#36638, Jason Dillaman)
rbd: librbd: new ‘write_zeroes’ API methods to suppliment the discard APIs (pr#36247, Jason Dillaman)
rbd: librbd: potential race conditions handling API IO completions (pr#36331, Jason Dillaman)
rbd: mgr/dashboard: work with v1 RBD images (pr#35711, Ernesto Puerta)
rbd: rbd: librbd: Align rbd_write_zeroes declarations (pr#36717, Corey Bryant)
rbd: rbd: librbd: don’t resend async_complete if watcher is unregistered (pr#36659, Mykola Golub)
rbd: rbd: librbd: flush all queued object IO from simple scheduler (pr#36658, Jason Dillaman)
rbd: rbd: librbd: race when disabling object map with overlapping in-flight writes (pr#36656, Jason Dillaman)
rbd: rbd: recognize crush_location, read_from_replica and compression_hint map options (pr#36061, Ilya Dryomov)
rgw,tests: qa/tasks/ragweed: always set ragweed_repo (pr#36651, Kefu Chai)
rgw: rgw: lc: fix Segmentation Fault when the tag of the object was not found (pr#36085, yupeng chen, zhuo li)
rgw: Add subuser to OPA request (pr#36023, Seena Fallah)
rgw: Add support wildcard subuser for bucket policy (pr#36022, Seena Fallah)
rgw: Adding data cache and CDN capabilities (pr#36646, Mark Kogan, Or Friedmann)
rgw: Empty reqs_change_state queue before unregistered_reqs (pr#36650, Soumya Koduri)
rgw: add abort multipart date and rule-id header to init multipart upload response (pr#36649, zhang Shaowen, zhangshaowen)
rgw: add access log to the beast frontend (pr#36024, Mark Kogan)
rgw: add check for index entry’s existing when adding bucket stats during bucket reshard (pr#36025, zhang Shaowen)
rgw: add negative cache to the system object (pr#36648, Or Friedmann)
rgw: add quota enforcement to CopyObj (pr#36020, Casey Bodley)
rgw: append obj: prevent tail from being GC’ed (pr#36389, Abhishek Lekshmanan)
rgw: bucket list/stats truncates for user w/ >1000 buckets (pr#36019, J. Eric Ivancich)
rgw: cls/rgw: preserve olh entry’s name on last unlink (pr#36652, Casey Bodley)
rgw: cls/rgw_gc: Fixing the iterator used to access urgent data map (pr#36017, Pritha Srivastava)
rgw: fix boost::asio::async_write() does not return error (pr#36647, Mark Kogan)
rgw: fix bug where ordered bucket listing gets stuck (pr#35877, J. Eric Ivancich)
rgw: fix double slash (//) killing the gateway (pr#36654, Theofilos Mouratidis)
rgw: fix loop problem with swift stat on account (pr#36021, Marcus Watts)
rgw: fix shutdown crash in RGWAsyncReadMDLogEntries (pr#36653, Casey Bodley)
rgw: introduce safe user-reset-stats (pr#36655, Yuval Lifshitz, Matt Benjamin)
rgw: lc: add lifecycle perf counters (pr#36018, Mark Kogan, Matt Benjamin)
rgw: orphan list teuthology test & fully-qualified domain issue (pr#36027, J. Eric Ivancich)
rgw: orphan-list timestamp fix (pr#35929, J. Eric Ivancich)
rgw: policy: reuse eval_principal to evaluate the policy principal (pr#36636, Abhishek Lekshmanan)
rgw: radoslist incomplete multipart uploads fix marker progression (pr#36028, J. Eric Ivancich)
rgw: rgw/iam: correcting the result of get role policy (pr#36645, Pritha Srivastava)
rgw: selinux: allow ceph_t amqp_port_t:tcp_socket (pr#36026, Kaleb S. KEITHLEY, Thomas Serlin)
rgw: stop realm reloader before store shutdown (pr#36644, Kefu Chai, Casey Bodley)
tools: tools: Add statfs operation to ceph-objecstore-tool (pr#35715, David Zafman)