注意
本文档适用于 Ceph 的开发版本。
Squid
Squid 是 Ceph 的第 19 个稳定版本。
v19.2.3 Squid
这是 Squid 系列中的第三个反向移植版本。我们建议所有用户更新到此版本。
发布日期
2025 年 7 月 28 日
值得注意的变更
RGW:PutObjectLockConfiguration 现在可用于在现有已启用版本控制但未启用对象锁的存储桶上启用 S3 对象锁。
RADOS:添加了一个新命令 ceph osd rm-pg-upmap-primary-all,允许用户在需要时清除 osdmap 中的所有 pg-upmap-primary 映射。相关跟踪器
RBD:不再允许将属于组的镜像移动到回收站。rbd trash mv 命令在这种情况下现在与 rbd rm 行为相同。
MGR:MGR 的常驻模块/插件现在可以被强制禁用。在相应的 Ceph 服务关闭/降级时,可能需要这样做以防止 MGR 被模块命令淹没。
RGW:修复了 STS 中的身份验证绕过漏洞 [CVE-2023-43040]。
RGW:S3 策略现在强制执行基于 ARN 的条件。
RGW:将对象复制到自身不再导致数据丢失。ETIMEDOUT 上的潜在损坏(默认未启用)也得到了修复。
变更日志
[CVE-2024-48916] rgw/sts: 修复以禁止不受支持的 JWT 算法 (pr#62137, Pritha Srivastava, Adam Emerson)
[squid] RGW 反向移植 (pr#63030, Soumya Koduri)
ceph-volume: 修复 Zap.ensure_associated_raw() (pr#61260, Guillaume Abrioux)
doc/rados: 编辑 ops/user-management.rst (pr#63828, Zac Dover)
doc: 修复硬件建议中控制器部分的一个错字 (pr#61178, Kevin Niederwanger)
exporter: 修复 Squid ceph_exporter.cc (pr#61448, Zac Dover)
Links to Jenkins jobs in PR comment commands / Remove deprecated commands (pr#62035, David Galloway)
mds: do not process client metrics message with fast dispatch (issue#68865, pr#62058, Venky Shankar)
qa/tests: added squid-p2p suite (pr#61809, Yuri Weinstein)
qa/tests: changed ubuntu 20.04 to 22.04 (pr#64309, yuriw)
squid : os/bluestore : Assigning a named variable to ceph::time_guard to prevent immediate destruction (pr#61971, Jaya Prakash)
squid: .github: Fix RTD build retrigger (pr#63211, David Galloway)
squid: <common> fix formatter buffer out-of-bounds (pr#61104, liubingrun)
squid: <rgw> Ensure the ETag format is consistent with AWS S3 API (pr#62607, Casey Bodley, liubingrun)
squid: AsyncMessenger.cc : improve error messages (pr#61401, Anthony D’Atri)
squid: Backport the hybrid_btree2 allocator and prereqs (pr#62540, Igor Fedotov, Jrchyang Yu)
squid: Backport two commits to the Squid branch (pr#61629, Kamoltat Sirivadhna)
squid: blk/kernel: bring “bdev_async_discard” config parameter back (pr#62254, Igor Fedotov, Yite Gu)
squid: blk/kerneldevice: fix invalid iterator usage after erase in discard_q… (pr#62576, Yite Gu)
squid: blk/KernelDevice: Introduce a cap on the number of pending discards (pr#62221, Joshua Baergen)
squid: blk/kerneldevice: notify_all only required when discard_drain wait for condition (pr#62151, Yite Gu)
squid: build-with-container fixes exec bit, dnf cache dir option (pr#61912, John Mulligan)
squid: build-with-container: fixes and enhancements (pr#62161, John Mulligan)
squid: build-with-container: two small fixes (pr#62340, John Mulligan)
squid: build: Fix opentelemetry-cpp build failure on Noble (pr#64012, Adam C. Emerson)
squid: ceph-volume: allow zapping partitions on multipath devices (pr#62177, Guillaume Abrioux)
squid: ceph-volume: fix loop devices support (pr#61420, Guillaume Abrioux)
squid: ceph-volume: Fix splitting with too many parts (pr#63012, Janne Heß)
squid: ceph-volume: support splitting db even on collocated scenario (pr#61975, Guillaume Abrioux)
squid: ceph-volume: support zapping by osd-id for RAW OSDs (pr#60487, Guillaume Abrioux)
squid: ceph.spec.in: add man/rgw-gap-list (pr#63998, Matan Breizman)
squid: cephadm: check “ceph_device_lvm” field instead of “ceph_device” during zap (pr#62905, Adam King)
squid: cephfs-shell: fixing cephfs-shell test failures (pr#60443, Neeraj Pratap Singh)
squid: cephfs-top, qa: Remove unnecessary global statements in tests (pr#62605, Kefu Chai)
squid: cephfs-top: fix exceptions on small/large sized windows (pr#59899, Jos Collin)
squid: client,mds: case-insensitive directory trees (pr#62095, Patrick Donnelly, Casey Bodley, Lucian Petrut, John Mulligan)
squid: client: contiguous read fails for non-contiguous write (in async I/O api) (pr#60218, Dhairya Parmar)
squid: client: disallow unprivileged users to escalate root privileges (pr#63458, Xiubo Li, Venky Shankar)
squid: client: Fix opening and reading of symlinks (pr#60372, Anoop C S)
squid: client: fixed a bug that read operation hung (pr#60694, Tod Chen)
squid: client: flush the caps release in filesystem sync (pr#59395, Xiubo Li)
squid: client: Prevent race condition when printing Inode in ll_sync_inode (pr#59621, Chengen Du)
squid: client: return EOPNOTSUPP for fallocate with mode 0 (pr#60656, Milind Changire)
squid: cls/rbd: write image mirror status if state is CREATING (pr#63234, N Balachandran)
squid: cls/rgw: non-versioned listings skip past version suffix (pr#62590, Casey Bodley)
squid: common,ceph: add output file switch to dump json to (pr#57675, Patrick Donnelly)
squid: common/options: fix the description of osd_max_scrubs (pr#62377, Satoru Takeuchi)
squid: common/pick_address: Add IPv6 support to is_addr_in_subnet (pr#61323, Nitzan Mordechai)
squid: common/StackStringStream: update pointer to newly allocated memory in overflow() (pr#57361, Rongqi Sun)
squid: common: CephContext::_refresh_perf_values() checks for null _mempool_perf (pr#62852, Casey Bodley)
squid: common: fix md_config_cacher_t (pr#61398, Ronen Friedman)
squid: common: Leverage a better CRC32C implementation (pr#59389, Tyler Stachecki)
squid: common: use close_range on Linux (pr#61639, edef)
squid: container/build.sh: don’t require repo creds on NO_PUSH (pr#61585, Dan Mick)
squid: container/build.sh: fix up org vs. repo naming (pr#61584, Dan Mick)
squid: container/build.sh: remove local container images (pr#62066, Dan Mick)
squid: container/Containerfile: replace CEPH_VERSION label for backward compact (pr#61583, Dan Mick)
squid: container: add label ceph=True back (pr#61611, John Mulligan)
squid: container: small container image improvements (pr#62346, John Mulligan)
squid: containerized build tools [V2] (pr#61681, John Mulligan)
squid: crush: use std::vector instead of variable length arrays (pr#61956, Kefu Chai)
squid: debian: add ceph-exporter package (pr#62270, Shinya Hayashi)
squid: dencoder tests fix type backwards incompatible checks (pr#62198, Nitzan Mordechai)
squid: doc/architecture: remove sentence (pr#61614, Zac Dover)
squid: doc/cephadm/services: Add mention of --zap for OSD removal (pr#62443, Anthony D’Atri)
squid: doc/cephadm/services: Correct indentation in osd.rst (pr#62427, Anthony D’Atri)
squid: doc/cephadm/services: Fix formatting in osd.rst (pr#62810, Anthony D’Atri)
squid: doc/cephadm/services: improve rgw.rst and snmp-gateway.rst (pr#62694, Anthony D’Atri)
squid: doc/cephadm/services: Re-improve osd.rst (pr#61952, Anthony D’Atri)
squid: doc/cephadm: Add admonition re restarting an OSD service (pr#62796, Anthony D’Atri)
squid: doc/cephadm: Add PG autoscaler advice to upgrade.rst (pr#62379, Anthony D’Atri)
squid: doc/cephadm: clarify “Monitoring OSD State” (pr#61664, Zac Dover)
squid: doc/cephadm: Correct formatting in upgrade.rst (pr#63147, Anthony D’Atri)
squid: doc/cephadm: correct markup in rgw.rst (pr#63073, Zac Dover)
squid: doc/cephadm: correct note (pr#61528, Zac Dover)
squid: doc/cephadm: improve “Activate Existing OSDs” (pr#61747, Zac Dover)
squid: doc/cephadm: improve “Activate Existing OSDs” (pr#61725, Zac Dover)
squid: doc/cephadm: improve “Maintenance Mode” (pr#63495, Zac Dover)
squid: doc/cephadm: s/confg/config/ (pr#62644, Zac Dover)
squid: doc/cephadm: simplify confusing math proposition (pr#61574, Zac Dover)
squid: doc/cephfs: correct ill-formatted command (pr#63501, Zac Dover)
squid: doc/cephfs: correct reference structure in fs-volumes.rst (pr#63544, Zac Dover)
squid: doc/cephfs: Cosmetic changes and small fixes in cephfs-mirroring.rst (pr#63467, Ville Ojamo)
squid: doc/cephfs: disaster-recovery-experts cleanup (pr#61446, Zac Dover)
squid: doc/cephfs: document first-damage.py (pr#63977, Zac Dover)
squid: doc/cephfs: document purge queue and its perf counters (pr#61193, Dhairya Parmar)
squid: doc/cephfs: edit 2nd 3rd of mount-using-kernel-driver (pr#61058, Zac Dover)
squid: doc/cephfs: edit disaster-recovery-experts (pr#61423, Zac Dover)
squid: doc/cephfs: edit disaster-recovery-experts (2 of x) (pr#61443, Zac Dover)
squid: doc/cephfs: edit disaster-recovery-experts (3 of x) (pr#61453, Zac Dover)
squid: doc/cephfs: edit disaster-recovery-experts (4 of x) (pr#61479, Zac Dover)
squid: doc/cephfs: edit disaster-recovery-experts (5 of x) (pr#61499, Zac Dover)
squid: doc/cephfs: edit disaster-recovery-experts (6 of x) (pr#61521, Zac Dover)
squid: doc/cephfs: edit first 3rd of mount-using-kernel-driver (pr#61056, Zac Dover)
squid: doc/cephfs: edit grammar in snapshots.rst (pr#61459, Zac Dover)
squid: doc/cephfs: link section for pausing async threads in section for (pr#62874, Rishabh Dave)
squid: doc/cephfs: Update deprecation notice in experimental-features.rst (pr#63948, Ville Ojamo)
squid: doc/dev/cephfs-mirroring: edit file 1 of x (pr#63298, Zac Dover)
squid: doc/dev/cephfs-mirroring: edit file 2 of x (pr#63273, Zac Dover)
squid: doc/dev/cephfs-mirroring: edit file 3 of x (pr#63547, Zac Dover)
squid: doc/dev/cephfs-mirroring: edit file 4 of x (pr#63660, Zac Dover)
squid: doc/dev/developer_guide/essentials: update mailing lists (pr#62375, Laimis Juzeliunas)
squid: doc/dev/release-process.rst: release builds cannot build containers (pr#61817, Dan Mick, Zac Dover)
squid: doc/dev: Debuggging with gdb (pr#63993, Matan Breizman)
squid: doc/dev: update link to backporter manual (pr#63990, Zac Dover)
squid: doc/glossary: s/OMAP/omap/ (pr#63737, Zac Dover)
squid: doc/man: supplant “wsync” with “nowsync” as the default (pr#60199, Zac Dover)
squid: doc/mgr/ceph_api: edit index.rst (pr#63197, Zac Dover)
squid: doc/mgr/dashboard_plugins: edit feature_toggles.inc.rst (pr#63704, Zac Dover)
squid: doc/mgr: Add root CA cert instructions to rgw.rst (pr#61884, Anuradha Gadge, Zac Dover)
squid: doc/mgr: edit administrator.rst (pr#63207, Zac Dover)
squid: doc/mgr: edit alerts.rst (pr#63200, Zac Dover)
squid: doc/mgr: edit cli_api (pr#63743, Zac Dover)
squid: doc/mgr: edit cli_api.rst (pr#63689, Zac Dover)
squid: doc/mgr: edit crash.rst (pr#63538, Zac Dover)
squid: doc/mgr: edit dashboard.rst (pr#63315, Zac Dover)
squid: doc/mgr: edit debug.inc.rst (pr#63393, Zac Dover)
squid: doc/mgr: edit diskpredictor.rst (pr#63423, Zac Dover)
squid: doc/mgr: edit feature_toggles.inc.rst (pr#63396, Zac Dover)
squid: doc/mgr: edit hello.rst (pr#63507, Zac Dover)
squid: doc/mgr: edit influx.rst (pr#63454, Zac Dover)
squid: doc/mgr: edit insights.rst (pr#63510, Zac Dover)
squid: doc/mgr: edit iostat.rst (pr#63680, Zac Dover)
squid: doc/mgr: edit iostat.rst (pr#63513, Zac Dover)
squid: doc/mgr: edit localpool.rst (pr#63669, Zac Dover)
squid: doc/mgr: edit localpool.rst (pr#63550, Zac Dover)
squid: doc/mgr: edit mds_autoscaler.rst (pr#63492, Zac Dover)
squid: doc/mgr: edit modules.rst (pr#63666, Zac Dover)
squid: doc/mgr: edit modules.rst (pr#63577, Zac Dover)
squid: doc/mgr: edit motd.inc.rst (pr#63402, Zac Dover)
squid: doc/mgr: edit nfs.rst (pr#63663, Zac Dover)
squid: doc/mgr: edit nfs.rst (pr#63580, Zac Dover)
squid: doc/mgr: edit orchestrator.rst (pr#63583, Zac Dover)
squid: doc/mgr: edit progress.rst (pr#63657, Zac Dover)
squid: doc/mgr: edit progress.rst (pr#63586, Zac Dover)
squid: doc/mgr: edit prometheus.rst (pr#63589, Zac Dover)
squid: doc/mgr: edit rgw.rst (pr#63592, Zac Dover)
squid: doc/mgr: edit telegraf.rst (pr#63611, Zac Dover)
squid: doc/mgr: edit telemetry (1 of x) (pr#63768, Zac Dover)
squid: doc/mgr: edit telemetry (2 of x) (pr#63771, Zac Dover)
squid: doc/mgr: edit telemetry (3 of x) (pr#63774, Zac Dover)
squid: doc/mgr: edit telemetry (4 of x) (pr#63777, Zac Dover)
squid: doc/mgr: edit telemetry.rst (pr#63905, Zac Dover)
squid: doc/mgr: edit telemetry.rst (pr#63864, Zac Dover)
squid: doc/mgr: edit telemetry.rst (pr#63692, Zac Dover)
squid: doc/mgr: edit telemetry.rst (lines 300-400) (pr#63867, Zac Dover)
squid: doc/mgr: Improve prometheus.rst (pr#62930, Anthony D’Atri)
squid: doc/mgr: Small improvements in rgw.rst (pr#63625, Ville Ojamo)
squid: doc/monitoring: correct list formatting (pr#63541, Zac Dover)
squid: doc/monitoring: Improve index.rst (pr#62265, Anthony D’Atri)
squid: doc/rados/configuration/bluestore-config-ref: Fix lowercase typos (pr#62290, Dan van der Ster)
squid: doc/rados/configuration: Correct admonition in ceph-conf.rst (pr#62620, Anthony D’Atri)
squid: doc/rados/configuration: Improve ceph-conf.rst (pr#63942, Anthony D’Atri)
squid: doc/rados/operations/stretch-mode.rst: Added Limitations to stretch pool configurations (pr#61006, Kamoltat Sirivadhna)
squid: doc/rados/operations: Actually mention upmap_max_deviation setting … (pr#64118, Niklas Hambüchen)
squid: doc/rados/operations: Add settings advice to balancer.rst (pr#63535, Anthony D’Atri)
squid: doc/rados/operations: Additional improvements to placement-groups.rst (pr#63649, Anthony D’Atri)
squid: doc/rados/operations: Address suggestions for stretch-mode.rst (pr#63849, Anthony D’Atri, Zac Dover)
squid: doc/rados/operations: Clarify stretch mode vs device class (pr#62077, Anthony D’Atri)
squid: doc/rados/operations: Fix unordered list in health-checks.rst (pr#63958, Ville Ojamo)
squid: doc/rados/operations: improve crush-map-edits.rst (pr#62317, Anthony D’Atri)
squid: doc/rados/operations: Improve erasure-code.rst (pr#62573, Anthony D’Atri)
squid: doc/rados/operations: Improve placement-groups.rst (pr#63646, Anthony D’Atri)
squid: doc/rados/operations: Improve pools.rst (pr#61728, Anthony D’Atri)
squid: doc/rados/operations: Improve stretch-mode.rst (pr#63815, Anthony D’Atri)
squid: doc/rados/ops: edit cache-tiering.rst (pr#63830, Zac Dover)
squid: doc/rados/troubleshooting: Improve troubleshooting-pg.rst (pr#62320, Anthony D’Atri)
squid: doc/rados: edit balancer.rst (pr#63683, Zac Dover)
squid: doc/rados: enhance “pools.rst” (pr#63861, Zac Dover)
squid: doc/rados: improve markup in cache-tiering.rst (pr#63504, Zac Dover)
squid: doc/rados: improve pg_num/pgp_num info (pr#62056, Zac Dover)
squid: doc/rados: pool and namespace are independent osdcap restrictions (pr#61523, Ilya Dryomov)
squid: doc/rados: s/enpty/empty/ in pgcalc doc (pr#63498, Zac Dover)
squid: doc/rados: Update mClock doc on steps to override OSD IOPS capacity config (pr#63071, Sridhar Seshasayee)
squid: doc/radosgw /notifications: fix topic details (pr#62404, Laimis Juzeliunas)
squid: doc/radosgw/admin.rst: explain bucket and uid flags for bucket quota (pr#64021, Hyun Jin Kim)
squid: doc/radosgw/cloud-transition: fix details (pr#62834, Laimis Juzeliunas)
squid: doc/radosgw/config-ref: fix lc worker thread tuning (pr#61437, Laimis Juzeliunas)
squid: doc/radosgw/s3: correct eTag op match tables (pr#61308, Anthony D’Atri)
squid: doc/radosgw: add “persistent_topic_size” (pr#64139, Zac Dover)
squid: doc/radosgw: Cosmetic and formatting improvements in vault.rst (pr#63229, Ville Ojamo)
squid: doc/radosgw: Cosmetic improvements in cloud-transition.rst (pr#63448, Ville Ojamo)
squid: doc/radosgw: Cosmetic improvements in dynamicresharding.rst (pr#64058, Ville Ojamo)
squid: doc/radosgw: edit cloud-transition (1 of x) (pr#64024, Zac Dover)
squid: doc/radosgw: edit sentence in metrics.rst (pr#63700, Zac Dover)
squid: doc/radosgw: Fix RST syntax rendeded as text in oidc.rst (pr#62989, Ville Ojamo)
squid: doc/radosgw: improve “pubsub_push_pending” info (pr#64113, Zac Dover)
squid: doc/radosgw: Improve and more consistent formatting (pr#62909, Ville Ojamo)
squid: doc/radosgw: Improve cloud-restore and cloud-transition (pr#62666, Anthony D’Atri)
squid: doc/radosgw: Improve formatting in layout.rst (pr#62999, Anthony D’Atri)
squid: doc/radosgw: Improve layout.rst (pr#62449, Anthony D’Atri)
squid: doc/radosgw: Promptify CLI commands and fix formatting in layout.rst (pr#63915, Ville Ojamo)
squid: doc/radosgw: Promptify CLI, cosmetic fixes (pr#62856, Ville Ojamo)
squid: doc/radosgw: remove “pubsub_event_lost” (pr#64126, Zac Dover)
squid: doc/radosgw: remove “pubsub_event_triggered” (pr#64155, Zac Dover)
squid: doc/radosgw: s/zonegroup/pools/ (pr#61556, Zac Dover)
squid: doc/radosgw: update aws specification link (pr#64095, Zac Dover)
squid: doc/radosgw: Use ref for hyperlinking to multisite (pr#63311, Ville Ojamo)
squid: doc/rbd: add mirroring troubleshooting info (pr#63846, Zac Dover)
squid: doc/rbd: use https links in live import examples (pr#61605, Ilya Dryomov)
squid: doc/releases: add actual_eol for quincy (pr#61359, Zac Dover)
squid: doc/releases: Add ordering comment to releases.yml (pr#62192, Anthony D’Atri)
squid: doc/releases: correct squid release order (pr#61988, Zac Dover)
squid: doc/rgw: add man documentation for the rgw-gap-list tool (pr#63996, J. Eric Ivancich)
squid: doc/rgw: add man documentation for the rgw-gap-list tool (pr#63728, Matan Breizman, J. Eric Ivancich)
squid: doc/rgw: clarify path-style vs virtual-hosted-style access (pr#61986, Casey Bodley)
squid: doc/rgw: document Admin and System Users (pr#62881, Casey Bodley)
squid: doc/rgw: document UserName requirements for account migration (pr#61333, Casey Bodley)
squid: doc/rgw: use ‘confval’ directive to render sts config options (pr#63441, Casey Bodley)
squid: doc/src: edit osd.yaml.in (osd_deep_scrub_interval_cv) (pr#63955, Zac Dover)
squid: doc/start: edit documenting-ceph.rst (pr#63652, Zac Dover)
squid: doc/start: edit documenting-ceph.rst (pr#63707, Zac Dover)
squid: doc/start: Mention RGW in Intro to Ceph (pr#61926, Anthony D’Atri)
squid: doc: add snapshots in docs under Cephfs concepts (pr#61246, Neeraj Pratap Singh)
squid: doc: Clarify that there are no tertiary OSDs (pr#61730, Anthony D’Atri)
squid: doc: fix formatting in cephfs_mirror dev doc (pr#63250, Jos Collin)
squid: doc: fix incorrect radosgw-admin subcommand (pr#62004, Toshikuni Fukaya)
squid: doc: Fix missing blank line Sphinx warnings (pr#63337, Ville Ojamo)
squid: doc: fixup #58689 - document SSE-C iam condition key (pr#62297, dawg)
squid: doc: improve tests-integration-testing-teuthology-workflow.rst (pr#61342, Vallari Agrawal)
squid: doc: mgr/dashboard: add OAuth2 SSO documentation (pr#64033, Pedro Gonzalez Gomez, Zac Dover)
squid: doc: src: modernize sample.ceph.conf (pr#61641, Anthony D’Atri)
squid: doc: update cephfs-journal-tool docs (pr#63108, Jos Collin)
squid: doc: Upgrade and unpin some python versions (pr#61931, David Galloway)
squid: fix: the RGW crash caused by special characters (pr#64049, mertsunacoglu, Emin)
squid: integrate blockdiff with cephfs-mirror daemon (issue#70287, issue#69791, issue#70225, issue#70584, pr#63241, Venky Shankar, Jos Collin)
squid: librbd/cache/pwl: fix memory leak in SyncPoint persist context cleanup (pr#64097, Kefu Chai)
squid: librbd/migration/QCOWFormat: don’t complete read_clusters() inline (pr#64196, Ilya Dryomov)
squid: librbd/migration: add external clusters support + NBD stream (pr#63406, Ilya Dryomov, Effi Ofer, Or Ozeri)
squid: librbd: add rbd_diff_iterate3() API to take source snapshot by ID (pr#62130, Ilya Dryomov, Vinay Bhaskar Varada)
squid: librbd: clear ctx before initiating close in Image::{aio_,}close() (pr#61527, Ilya Dryomov)
squid: librbd: disallow “rbd trash mv” if image is in a group (pr#62968, Ilya Dryomov)
squid: librbd: fix a crash in get_rollback_snap_id (pr#62044, Ilya Dryomov, N Balachandran)
squid: librbd: fix a deadlock on image_lock caused by Mirror::image_disable() (pr#62128, Ilya Dryomov)
squid: librbd: fix mirror image status summary in a namespace (pr#61832, Ilya Dryomov)
squid: librbd: respect rbd_default_snapshot_quiesce_mode in group_snap_create() (pr#62963, Ilya Dryomov)
squid: librbd: stop filtering async request error codes (pr#61645, Ilya Dryomov)
squid: log: concatenate thread names and print once per thread (pr#61287, Patrick Donnelly)
squid: LogMonitor: set no_reply for forward MLog commands (pr#62213, Nitzan Mordechai)
squid: mds/Beacon: wake up the thread in shutdown() (pr#60837, Max Kellermann)
squid: mds: add an asok command to dump export states (pr#60836, Zhansong Gao)
squid: mds: batch backtrace updates by pool-id when expiring a log segment (issue#63259, pr#60688, Venky Shankar)
squid: mds: cephx path restriction incorrectly rejects snapshots of deleted directory (pr#59518, Patrick Donnelly)
squid: mds: drop client metrics during recovery (pr#59866, Patrick Donnelly)
squid: mds: enforce usage of host error in cephfs, use errorcode32_t in MClientReply message (pr#61994, Igor Golikov)
squid: mds: getattr just waits the xlock to be released by the previous client (pr#60691, Xiubo Li)
squid: mds: Implement remove for ceph vxattrs (pr#60752, Christopher Hoffman)
squid: mds: invalid id for client eviction is to be treated as success (issue#68132, pr#60059, Venky Shankar)
squid: mds: move fscrypt inode_t metadata to mds_co mempool (pr#59616, Patrick Donnelly)
squid: mds: prevent duplicate wrlock acquisition for a single request (pr#61840, Xiubo Li, Sunnatillo)
squid: mds: trim mdlog when segments exceed threshold and trim was idle (pr#60838, Venky Shankar)
squid: mgr/cephadm: fixing logic in cert-store save_cert method (pr#63853, Redouane Kachach)
squid: mgr/dashboard: (refactor)fix image size in nvmeof namespace create/update api (pr#61969, Afreen Misbah)
squid: mgr/dashboard: accept dot(.) in user_id & restrict tenant validation in user form (pr#63477, Naman Munet)
squid: mgr/dashboard: Add --force flag for listeners (pr#64132, Afreen Misbah)
squid: mgr/dashboard: add a custom warning message when enabling feature (pr#61039, Nizamudeen A)
squid: mgr/dashboard: Add additional NVME API endpoints (pr#61998, Tomer Haskalovitch)
squid: mgr/dashboard: Add ceph_daemon filter to rgw overview grafana panel queries (pr#62267, Aashish Sharma)
squid: mgr/dashboard: add prometheus read permission to cluster_mgr role (pr#62650, Nizamudeen A)
squid: mgr/dashboard: add xlmtodict import and fix lifecycle get request (pr#62393, Pedro Gonzalez Gomez)
Squid: mgr/dashboard: Administration > Configuration > Some of the config options are not updatable at runtime (pr#61181, Naman Munet)
squid: mgr/dashboard: Changing SimpleGraphPanel to TimeSeries Panel in cephfs.libsonnet to fix inconsistency in Line Graphs (pr#62381, Piyush Agarwal)
squid: mgr/dashboard: Changing SimpleGraphPanel to TimeSeries Panel in host.libsonnet to fix inconsistency in Line Graphs (pr#62382, Piyush Agarwal)
squid: mgr/dashboard: Changing SimpleGraphPanel to TimeSeries Panel in osd.libsonnet to fix inconsistency in Line Graphs (pr#62383, Piyush Agarwal)
squid: mgr/dashboard: Changing SimpleGraphPanel to TimeSeries Panel in pool.libsonnet to fix inconsistency in Line Graphs (pr#62384, Piyush Agarwal)
squid: mgr/dashboard: critical confirmation modal changes (pr#61961, Naman Munet)
squid: mgr/dashboard: deprecate transifex-i18ntool and support transifex cli (pr#63287, John Mulligan, Afreen Misbah)
squid: mgr/dashboard: disable deleting bucket with objects (pr#61972, Naman Munet)
squid: mgr/dashboard: enable ha by default on subsystem POST API (pr#62623, Nizamudeen A)
squid: mgr/dashboard: Fix empty ceph version in GET api/hosts (pr#62731, Afreen Misbah)
squid: mgr/dashboard: fix image filter’s query on rbd-details grafana panel (pr#62531, Aashish Sharma)
squid: mgr/dashboard: Fix Latency chart data units in rgw overview page (pr#61238, Aashish Sharma)
squid: mgr/dashboard: fix make check tests (pr#63187, John Mulligan, Afreen Misbah)
Squid: mgr/dashboard: fix multisite e2e failures (pr#61189, Naman Munet)
squid: mgr/dashboard: fix total objects/Avg object size in RGW Overview Page (pr#61457, Aashish Sharma)
squid: mgr/dashboard: Fix variable capitalization in embedded rbd-details panel (pr#62208, Juan Ferrer Toribio)
squid: mgr/dashboard: namespace update route robustness (pr#61999, Tomer Haskalovitch)
squid: mgr/dashboard: pin lxml to fix run-dashboard-tox-make-check failure (pr#62257, Nizamudeen A)
squid: mgr/dashboard: Update and correct zonegroup delete notification (pr#61235, Aashish Sharma)
squid: mgr/dashboard: upgrading nvmeof doesn’t update configuration (pr#62628, Nizamudeen A)
squid: mgr/dashboard: When configuring the RGW Multisite endpoints from the UI allow FQDN(Not only IP) (pr#62353, Aashish Sharma)
squid: mgr/nfs: Don’t crash ceph-mgr if NFS clusters are unavailable (pr#58285, Anoop C S, Ponnuvel Palaniyappan)
squid: mgr/rbd_support: always parse interval and start_time in Schedules::remove() (pr#62965, Ilya Dryomov)
squid: mgr/vol : shortening the name of helper method (pr#60396, Neeraj Pratap Singh)
squid: mgr: add status command (pr#62504, Patrick Donnelly)
squid: mgr: allow disabling always-on modules (pr#60562, Rishabh Dave)
squid: mgr: fix subuser creation via dashboard (pr#62086, Hannes Baum)
squid: mgr: process map before notifying clients (pr#57064, Patrick Donnelly)
squid: mon [stretch mode]: support disable_stretch_mode (pr#60629, Kamoltat Sirivadhna)
squid: mon, osd: add command to remove invalid pg-upmap-primary entries (pr#62421, Laura Flores)
squid: mon/AuthMonitor: provide command to rotate the key for a user credential (pr#58235, Patrick Donnelly)
squid: mon/LogMonitor: Use generic cluster log level config (pr#61069, Prashant D)
squid: mon/OSDMonitor: relax cap enforcement for unmanaged snapshots (pr#61603, Ilya Dryomov)
squid: mon/scrub: log error details of store access failures (pr#61346, Yite Gu)
squid: mon/test_mon_osdmap_prune: Use first_pinned instead of first_committed (pr#63341, Aishwarya Mathuria)
squid: mon: fix fs set down to adjust max_mds only when cluster is not down (pr#59704, chungfengz)
squid: monitoring: Fix OSDs panel in host-details grafana dashboard (pr#62625, Aashish Sharnma)
squid: node-proxy: address ceph orch hardware status cmd (pr#63787, Guillaume Abrioux)
squid: os, osd: bring the lightweight OMAP iteration (pr#61363, Radoslaw Zarzynski)
squid: os/bluestore/ceph-bluestore-tool: Modify show-label for many devs (pr#60543, Adam Kupczyk)
squid: os/bluestore: Add health warning for bluestore fragmentation (pr#61910, Adam Kupczyk)
squid: os/bluestore: allow use BtreeAllocator (pr#59497, tan changzhi)
squid: os/bluestore: Create additional bdev labels when expanding block device (pr#61671, Adam Kupczyk)
squid: os/bluestore: do cache locally compressor engines ever used (pr#62143, Igor Fedotov, Adam Kupczyk)
squid: os/bluestore: fix bdev expansion and more (pr#62202, Igor Fedotov)
squid: os/bluestore: Fix BlueRocksEnv attempts to use POSIX (pr#61111, Adam Kupczyk)
squid: os/bluestore: Fix ExtentDecoderPartial::_consume_new_blob (pr#62053, Adam Kupczyk)
squid: os/bluestore: Fix race in BlueFS truncate / remove (pr#62839, Adam Kupczyk)
squid: os/bluestore: fix the problem that _estimate_log_size_N calculates the log size incorrectly (pr#61891, Wang Linke)
squid: os/bluestore: Make truncate() drop unused allocations (pr#60240, Adam Kupczyk, Igor Fedotov)
squid: os/bluestore: use block size (4K) as minimal allocation unit for dedicated DB/WAL volumes (pr#62514, Igor Fedotov)
squid: os: remove unused btrfs_ioctl.h and tests (pr#60613, Casey Bodley)
squid: osd/scheduler/OpSchedulerItem: Fix calculation of recovery latency counters (pr#62802, Sridhar Seshasayee)
squid: osd/scrub: additional configuration parameters to trigger scrub reschedule (pr#62956, Ronen Friedman)
squid: osd/scrub: always round up reported scrub duration (pr#62995, Ronen Friedman)
squid: osd/scrub: clarify that osd_scrub_auto_repair_num_errors counts objects (pr#64073, Ronen Friedman)
squid: osd/scrub: discard repair_oinfo_oid() (pr#61935, Ronen Friedman)
squid: osd/scrub: register for ‘osd_max_scrubs’ config changes (pr#61185, Ronen Friedman)
squid: osd: fix for segmentation fault on OSD fast shutdown (pr#57613, Md Mahamudur Rahaman Sajib)
squid: osd: fix osd mclock queue item leak (pr#62363, Samuel Just)
squid: osd: full-object read CRC mismatch due to ‘truncate’ modifying oi.size w/o clearing ‘data_digest’ (pr#57586, Samuel Just, Nitzan Mordechai, Matan Breizman, jiawd)
squid: osd: optimize extent comparison in PrimaryLogPG (pr#61337, Dongdong Tao)
squid: OSD: Split osd_recovery_sleep into settings applied to degraded or clean PGs (pr#62400, Md Mahamudur Rahaman Sajib)
squid: osd_types: Restore new_object marking for delete missing entries (pr#63154, Nitzan Mordechai)
squid: OSDMonitor: exclude destroyed OSDs from “ceph node ls” output (pr#62327, Nitzan Mordechai)
squid: PendingReleaseNotes; doc/rados/operations: document “rm-pg-upmap-primary-{all}” commands (pr#62467, Laura Flores)
squid: PGMap: remove pool max_avail scale factor (pr#62437, Michael J. Kidd)
squid: pybind/ceph_argparse: Fix error message for ceph tell command (pr#59005, Neeraj Pratap Singh)
squid: pybind/mgr/mgr_module: turn off all automatic transactions (pr#61854, Patrick Donnelly)
squid: pybind/mgr: disable sqlite3/python autocommit (pr#57189, Patrick Donnelly)
squid: python-common: fix mypy errors in earmarking.py (pr#63911, John Mulligan, Avan Thakkar)
squid: qa/mgr/dashboard: fix test race condition (pr#59698, Nizamudeen A, Ernesto Puerta)
squid: qa/multisite: add extra checkpoints in datalog_autotrim testcase (pr#62306, Shilpa Jagannath, Adam C. Emerson)
squid: qa/rados/dashboard: Add PG_DEGRADED to ignorelist (pr#61281, Aishwarya Mathuria)
squid: qa/rgw: bump keystone/barbican from 2023.1 to 2024.1 (pr#61023, Casey Bodley)
squid: qa/rgw: bump maven version in hadoop task to resolve 404 Not Found (pr#63928, Casey Bodley)
squid: qa/rgw: configure ‘iam root’ accounts outside of rgw/verify (pr#62033, Casey Bodley)
squid: qa/rgw: fix perl tests missing Amazon::S3 module (pr#64227, Mark Kogan, Adam C. Emerson)
squid: qa/rgw: fix user cleanup in s3tests task (pr#62365, Casey Bodley)
squid: qa/rgw: run verify tests with garbage collection disabled (pr#62954, Casey Bodley)
squid: qa/standalone/mon/mon_cluster_log.sh: retry check for log line (pr#61475, Shraddha Agrawal, Naveen Naidu)
squid: qa/standalone/scrub: fix osd-scrub-test.sh (pr#62974, Ronen Friedman)
squid: qa/standalone/scrub: fix TEST_periodic_scrub_replicated (pr#61118, Ronen Friedman)
squid: qa/suites/orch/cephadm: add PG_DEGRADED to ignorelist (pr#63054, Shraddha Agrawal)
squid: qa/suites/rados/verify/validater/valgrind: increase op thread timeout (pr#60912, Matan Breizman, Laura Flores)
squid: qa/suites/upgrade/reef-x: sync log-ignorelist with quincy-x (pr#61335, Ilya Dryomov, Pere Diaz Bou)
squid: qa/suites/upgrade/{quincy|reef}-x skip TestClsRbd.mirror_snapshot test (pr#60375, Mohit Agrawal)
squid: qa/suites/upgrade: ignore PG_AVAILABILITY and MON_DOWN for quincy-x and reef-x upgrade suites (pr#59245, Laura Flores)
squid: qa/suites: wait longer before stopping OSDs with valgrind (pr#63718, Nitzan Mordechai)
squid: qa/tasks/fwd_scrub: remove unnecessary traceback (pr#60651, Neeraj Pratap Singh)
squid: qa/tasks: improve ignorelist for thrashing OSDs (pr#61864, Laura Flores)
squid: qa/tasks: Include stderr on tasks badness check (pr#61435, Christopher Hoffman, Ilya Dryomov)
squid: qa/tasks: watchdog should terminate thrasher (pr#59191, Nitzan Mordechai)
squid: qa/workunits/mon: ensure election strategy is “connectivity” for stretch mode (pr#61496, Laura Flores)
squid: qa/workunits/rbd: wait for resize to be applied in rbd-nbd (pr#62219, Ilya Dryomov)
squid: qa: Add ignorelist entries for reef-x tests (pr#60618, Brad Hubbard)
squid: qa: barbican: restrict python packages with upper-constraints (pr#59327, Tobias Urdin)
squid: qa: failfast mount for better performance and unblock fs volume ls (pr#59919, Milind Changire)
squid: qa: fix test failure test_cephfs_mirror_cancel_mirroring_and_readd (pr#60181, Jos Collin)
squid: qa: increase the http.maxRequestBuffer to 100MB and enable the git debug logs (pr#60835, Xiubo Li)
squid: qa: restrict ‘perf dump’ on active mds only (pr#60975, Jos Collin)
squid: qa: wait for file creation before changing mode (issue#67408, pr#59685, Venky Shankar)
squid: rados/test_crash.sh: add PG_DEGRADED to ignorelist (pr#62395, Shraddha Agrawal)
squid: radosgw-admin: ‘user create’ rejects uids matching the account id format (pr#60980, Casey Bodley)
squid: radosgw-admin: allow ‘sync group pipe modify’ with existing user (pr#60979, Casey Bodley)
squid: radosgw-admin: bucket link/unlink support accounts (pr#60982, Casey Bodley)
squid: radosgw-admin: lower default thread pool size (pr#62155, Casey Bodley)
squid: rbd-mirror: fix possible recursive lock of ImageReplayer::m_lock (pr#62042, N Balachandran)
squid: rbd-mirror: release lock before calling m_async_op_tracker.finish_op() (pr#64092, VinayBhaskar-V)
squid: rbd: display mirror state creating (pr#62940, N Balachandran)
squid: rbd: open images in read-only mode for “rbd mirror pool status --verbose” (pr#61170, Ilya Dryomov)
squid: Revert “rgw/auth: Fix the return code returned by AuthStrategy,” (pr#61162, Casey Bodley, Pritha Srivastava)
squid: rgw-admin: report correct error code for non-existent bucket on deletion (pr#63405, Seena Fallah)
squid: rgw/abortmp: Race condition on AbortMultipartUpload (pr#61134, Casey Bodley, Artem Vasilev)
squid: rgw/async/notifications: use common async waiter in pubsub push (pr#62337, Yuval Lifshitz, Casey Bodley)
squid: rgw/d3n: fix valgrind invalid read during exit (pr#63438, Mark Kogan)
squid: rgw/iam: add policy evaluation for Arn-based Conditions (pr#62435, Casey Bodley)
squid: rgw/iam: correcting the caps for OIDC Provider for a user (pr#62892, Pritha Srivastava)
squid: rgw/lc: delete expired delete-marker when processing Expiration lc action with Days specified (pr#60783, Juan Zhu)
squid: rgw/lc: make lc worker thread name shorter (pr#61484, lightmelodies)
squid: rgw/log: Fix crash during shutdown with ops-log enable (pr#62134, kchheda3)
squid: rgw/multisite: fix forwarded requests for tenanted buckets (pr#62310, Shilpa Jagannath, Adam C. Emerson)
squid: rgw/multisite: Fix use-after-move in retry logic in logbacking (pr#61330, Adam Emerson)
squid: rgw/multisite: handle errors properly in RGWDataFullSyncSingleEntryCR() (pr#62307, Shilpa Jagannath, Adam C. Emerson)
squid: rgw/notification: add rgw notification specific debug log subsystem (pr#60784, Yuval Lifshitz, kchheda3)
squid: rgw/notification: For kafka include user-id & password as part of the key along with endpoint for connection pooling (pr#62495, kchheda3)
squid: rgw/notification: Forward Topic & Notification creation request to master when notification_v2 enabled (pr#61242, kchheda3)
squid: rgw/posix: std::ignore return value of write() (pr#61147, Casey Bodley)
squid: rgw/rados: enable object deletion at rados pool quota (pr#62093, Casey Bodley, Samuel Just)
squid: rgw/rgw_rest: determine the domain uri prefix by rgw_transport_is_secure (pr#63363, Xuehan Xu)
squid: rgw/s3-notifications: use user-name/password topic attributes for SASL authentication (pr#60952, Igor Gomon)
squid: rgw/s3: remove local variable ‘uri’ that shadows member variable (pr#62526, Casey Bodley)
squid: rgw/s3select (pr#62959, Gal Salomon, Seena Fallah, J. Eric Ivancich, galsalomon66)
squid: rgw/sts: correcting authentication in case s3 ops are directed to a primary from secondary after assumerole (pr#63065, Pritha Srivastava)
squid: rgw/sts: Implementation of validating JWT using modulus and exponent (pr#63052, Pritha Srivastava)
squid: rgw/sts: replacing load_stats with list_buckets (pr#62386, Pritha Srivastava)
squid: rgw: /admin/account APIs accept negative values (pr#62131, Casey Bodley)
squid: rgw: /admin/user api dumps account-related user info (pr#61430, Casey Bodley)
squid: rgw: add force option to radosgw-admin object rm (pr#62748, J. Eric Ivancich)
squid: rgw: add missing last_modified field to swift API (pr#61546, Andrei Ivashchenko)
squid: rgw: allow management of accounts user caps (pr#61782, Richard Poole)
squid: rgw: allow send bucket notification to multiple brokers of kafka cluster (pr#61764, Hoai-Thu Vuong)
squid: rgw: append query string to redirect URL if present (pr#61159, Seena Fallah)
squid: rgw: bucket creation fixes for multi-zonegroup scenario (pr#62420, Seena Fallah, Shilpa Jagannath)
squid: rgw: Changed discard buffer size (pr#63710, Artem Vasilev)
squid: rgw: cleanup orphaned bucket entry in <user>.buckets OMAP (pr#62741, Jane Zhu)
squid: rgw: Delete stale entries in bucket indexes while deleting obj (pr#61062, Shasha Lu)
squid: rgw: Deleting an object with null version fix (pr#62309, Shilpa Jagannath, Adam C. Emerson, Kalpesh Pandya)
squid: rgw: Don’t crash on exceptions from pool listing (pr#61306, Adam Emerson)
squid: rgw: don’t use merge_and_store_attrs() when recreating a bucket (pr#64387, Casey Bodley)
squid: rgw: exclude logging of request payer for 403 requests (pr#62305, Seena Fallah, Adam C. Emerson)
squid: rgw: Fix a bug in LCOpAction_Transition::check() (pr#61532, Soumya Koduri)
squid: rgw: fix bucket link operation (pr#61051, Yehuda Sadeh)
squid: rgw: fix bug with rgw-gap-list (pr#62722, J. Eric Ivancich, Michael J. Kidd)
squid: rgw: fix data corruption when rados op return ETIMEDOUT (pr#61092, Shasha Lu)
squid: rgw: fix to correctly store updated attrs in backend store after erasing an attr/attrs for delete ops on a bucket (pr#61995, Soumya Koduri, Pritha Srivastava, Wei Wang)
squid: rgw: fixing tempest ObjectTestACLs and ObjectACLsNegativeTest cases (pr#62586, Alexey Odinokov)
squid: rgw: implement x-amz-replication-status for PENDING & COMPLETED (pr#60785, Alex Wojno, Casey Bodley)
squid: rgw: keep the tails when copying object to itself (pr#62711, Jane Zhu)
squid: rgw: prefetch data from versioned object instance head (pr#63193, Jane Zhu)
squid: rgw: prevent crash in radosgw-admin bucket object shard ... (pr#62884, J. Eric Ivancich)
squid: rgw: PutObjectLockConfiguration can enable object lock on existing buckets (pr#62064, Casey Bodley)
squid: rgw: radoslist improvements primarily to better support gap list tool (pr#62417, J. Eric Ivancich)
squid: rgw: relax RGWPutACLs_ObjStore::get_params read data log (pr#61161, Seena Fallah)
squid: rgw: revert PR #41897 to allow multiple delete markers to be created (pr#62740, Jane Zhu, Juan Zhu)
squid: rgw: rgw_init_ioctx() adds set_pool_full_try() (pr#62559, Casey Bodley)
squid: rgw: S3 Delete Bucket Policy should return 204 on success (pr#61431, Simon Jürgensmeyer)
squid: rgw: skip empty check on non-owned buckets by zonegroup (pr#62994, Seena Fallah)
squid: rgw: sync fairness watcher reconnects on any error (pr#62356, Oguzhan Ozmen, Casey Bodley)
squid: rgw: Try to handle unwatch errors sensibly (pr#62402, Adam C. Emerson)
squid: rgw: use object ARN for InitMultipart permissions (pr#62154, Casey Bodley)
squid: rgw:lua: Skip the healthchecks and system requests from going to backend storage (pr#62034, kchheda3)
squid: RGW|Bucket Notification: fix for v2 topics rgw-admin list operation (pr#62534, Casey Bodley, Ali Masarwa)
squid: script/lib-build: Use clang 14 (pr#61869, Matan Breizman)
squid: src/common : proper handling of units in strict_iec_cast (pr#60581, Neeraj Pratap Singh)
squid: src/common: add guidance for deep-scrubbing ratio warning (pr#62502, Zac Dover)
squid: src/exporter: improve usage message (pr#61331, Anthony D’Atri)
squid: src/exporter: revert incorrect lines (pr#61419, Zac Dover)
squid: src/mon/OSDMonitor.cc: [Stretch Mode] WRN non-existent CRUSH location assigned to MON (pr#62039, Kamoltat Sirivadhna)
squid: suites/rados: cache tier deprecated, no need to keep the tests for it (pr#62211, Nitzan Mordechai)
squid: test/cls_2pc_queue: fix multi-threaded access to non-atomic variables (pr#62311, Yuval Lifshitz, Adam C. Emerson)
squid: test/libcephfs: copy DT_NEEDED entries from input libraries (pr#63720, batrick)
squid: test/librbd/test_notify.py: force line-buffered output (pr#62752, Ilya Dryomov)
squid: test/neorados: timeout test won’t reconnect at timeout (pr#61110, Nitzan Mordechai)
squid: test/pybind: Clean whitespace. (Doc and test fixes) (pr#61377, Paulo E. Castro)
squid: test/rbd_mirror: clear Namespace::s_instance at the end of a test (pr#61960, Ilya Dryomov)
squid: test/rbd_mirror: flush watch/notify callbacks in TestImageReplayer (pr#61958, Ilya Dryomov)
squid: test/rgw/multisite: add meta checkpoint after bucket creation (pr#60978, Casey Bodley)
squid: test/scrub: only instruct clean PGs to scrub (pr#61088, Ronen Friedman)
squid: test: ceph daemon command with asok path (pr#61482, Nitzan Mordechai)
squid: test: Create ParallelPGMapper object before start threadpool (pr#58919, Mohit Agrawal)
squid: test: test_rados_tools compare output without trimming newline (pr#59625, Nitzan Mordechai)
squid: TEST_backfill_grow fails after finding “num_bytes mismatch” in osd log (pr#60902, Mohit Agrawal)
squid: tool/ceph-bluestore-tool: fix wrong keyword for ‘free-fragmentation’ command (pr#62125, Igor Fedotov)
squid: tools/ceph-objectstore-tool: tricks to tolerate disk errors for “pg export” command (pr#62123, Igor Fedotov)
squid: tools/cephfs-mirror: eliminate redundant ceph_close() call (pr#61100, Igor Fedotov)
squid: tools/objectstore: check for wrong coll open_collection (pr#60861, Pere Diaz Bou)
squid: tools/objectstore: check for wrong coll open_collection #58353 (pr#58732, Pere Diaz Bou)
squid: tools/rados: Fix extra NL in getxattr (pr#60687, Adam Kupczyk)
squid: win32_deps_build.sh: pin zlib tag (pr#61631, Lucian Petrut)
squid: workunit/dencoder: dencoder test forward incompat fix (pr#61011, NitzanMordhai)
v19.2.2 Squid
This is the second hotfix release in the Squid series. We recommend that all users update to this release.
Release Date
April 10, 2025
值得注意的变更
This hotfix release resolves an RGW data loss bug when CopyObject is used to copy an object onto itself. S3 clients typically do this when they want to change the metadata of an existing object. Due to a regression caused by an earlier fix for https://tracker.ceph.com/issues/66286, any tail objects associated with such objects are erroneously marked for garbage collection. RGW deployments on Squid are encouraged to upgrade as soon as possible to minimize the damage. The experimental rgw-gap-list tool can help to identify damaged objects.
变更日志
squid: rgw: keep the tails when copying object to itself (pr#62711, cbodley)
v19.2.1 Squid
This is the first backport release in the Squid series.
Release Date
February 6, 2025
显著更改
CephFS: The command fs subvolume create now allows tagging subvolumes by supplying the option --earmark with a unique identifier needed for NFS or SMB services. The earmark string for a subvolume is empty by default. To remove an already present earmark, an empty string can be assigned to it. Additionally, the commands ceph fs subvolume earmark set, ceph fs subvolume earmark get, and ceph fs subvolume earmark rm have been added to set, get and remove earmark from a given subvolume.
CephFS: Expanded removexattr support for CephFS virtual extended attributes. Previously one had to use setxattr to restore the default in order to “remove”. You may now properly use removexattr to remove. You can also now remove layout on the root inode, which then will restore the layout to the default.
RADOS: A performance bottleneck in the balancer mgr module has been fixed.
Related Tracker: https://tracker.ceph.com/issues/68657
RADOS: Based on tests performed at scale on an HDD-based Ceph cluster, it was found that scheduling with mClock was not optimal with multiple OSD shards. For example, in the test cluster with multiple OSD node failures, the client throughput was found to be inconsistent across test runs coupled with multiple reported slow requests. However, the same test with a single OSD shard and with multiple worker threads yielded significantly better results in terms of consistency of client and recovery throughput across multiple test runs. Therefore, as an interim measure until the issue with multiple OSD shards (or multiple mClock queues per OSD) is investigated and fixed, the following change to the default HDD OSD shard configuration is made
osd_op_num_shards_hdd = 1 (was 5)
osd_op_num_threads_per_shard_hdd = 5 (was 1)
For more details, see https://tracker.ceph.com/issues/66289.
mgr/REST: The REST manager module will trim requests based on the ‘max_requests’ option. Without this feature, and in the absence of manual deletion of old requests, the accumulation of requests in the array can lead to Out Of Memory (OOM) issues, resulting in the Manager crashing.
Changelog
doc/rgw/notification: add missing admin commands (pr#60609, Yuval Lifshitz)
squid: [RGW] Fix the handling of HEAD requests that do not comply with RFC standards (pr#59123, liubingrun)
squid: a series of optimizations for kerneldevice discard (pr#59065, Adam Kupczyk, Joshua Baergen, Gabriel BenHanokh, Matt Vandermeulen)
squid: Add Containerfile and build.sh to build it (pr#60229, Dan Mick)
squid: AsyncMessenger: Don’t decrease l_msgr_active_connections if it is negative (pr#60447, Mohit Agrawal)
squid: blk/aio: fix long batch (64+K entries) submission (pr#58676, Yingxin Cheng, Igor Fedotov, Adam Kupczyk, Robin Geuze)
squid: blk/KernelDevice: using join() to wait thread end is more safe (pr#60616, Yite Gu)
squid: bluestore/bluestore_types: avoid heap-buffer-overflow in another way to keep code uniformity (pr#58816, Rongqi Sun)
squid: ceph-bluestore-tool: Fixes for multilple bdev label (pr#59967, Adam Kupczyk, Igor Fedotov)
squid: ceph-volume: add call to ceph-bluestore-tool zap-device (pr#59968, Guillaume Abrioux)
squid: ceph-volume: add new class UdevData (pr#60091, Guillaume Abrioux)
squid: ceph-volume: add TPM2 token enrollment support for encrypted OSDs (pr#59196, Guillaume Abrioux)
squid: ceph-volume: do not convert LVs’s symlink to real path (pr#58954, Guillaume Abrioux)
squid: ceph-volume: do source devices zapping if they’re detached (pr#58964, Guillaume Abrioux, Igor Fedotov)
squid: ceph-volume: drop unnecessary call to get_single_lv() (pr#60353, Guillaume Abrioux)
squid: ceph-volume: fix dmcrypt activation regression (pr#60734, Guillaume Abrioux)
squid: ceph-volume: fix generic activation with raw osds (pr#59598, Guillaume Abrioux)
squid: ceph-volume: fix OSD lvm/tpm2 activation (pr#59953, Guillaume Abrioux)
squid: ceph-volume: pass self.osd_id to create_id() call (pr#59622, Guillaume Abrioux)
squid: ceph-volume: switch over to new disk sorting behavior (pr#59623, Guillaume Abrioux)
squid: ceph.spec.in: we need jsonnet for all distroes for make check (pr#60075, Kyr Shatskyy)
squid: cephadm/services/ingress: fixed keepalived config bug (pr#58381, Bernard Landon)
Squid: cephadm: bootstrap should not have “This is a development version of cephadm” message (pr#60880, Shweta Bhosale)
squid: cephadm: emit warning if daemon’s image is not to be used (pr#59929, Matthew Vernon)
squid: cephadm: fix apparmor profiles with spaces in the names (pr#58542, John Mulligan)
squid: cephadm: pull container images from quay.io (pr#60354, Guillaume Abrioux)
squid: cephadm: Support Docker Live Restore (pr#59933, Michal Nasiadka)
squid: cephadm: update default image and latest stable release (pr#59827, Adam King)
squid: cephfs,mon: fix bugs related to updating MDS caps (pr#59672, Rishabh Dave)
squid: cephfs-shell: excute cmd ‘rmdir_helper’ reported error (pr#58810, teng jie)
squid: cephfs: Fixed a bug in the readdir_cache_cb function that may have us… (pr#58804, Tod Chen)
squid: cephfs_mirror: provide metrics for last successful snapshot sync (pr#59070, Jos Collin)
squid: cephfs_mirror: update peer status for invalid metadata in remote snapshot (pr#59406, Jos Collin)
squid: cephfs_mirror: use snapdiff api for incremental syncing (pr#58984, Jos Collin)
squid: client: calls to _ll_fh_exists() should hold client_lock (pr#59487, Venky Shankar)
squid: client: check mds down status before getting mds_gid_t from mdsmap (pr#58587, Yite Gu, Dhairya Parmar)
squid: cls/user: reset stats only returns marker when truncated (pr#60164, Casey Bodley)
squid: cmake: use ExternalProjects to build isa-l and isa-l_crypto libraries (pr#60107, Casey Bodley)
squid: common,osd: Use last valid OSD IOPS value if measured IOPS is unrealistic (pr#60660, Sridhar Seshasayee)
squid: common/dout: fix FTBFS on GCC 14 (pr#59055, Radoslaw Zarzynski)
squid: common/options: Change HDD OSD shard configuration defaults for mClock (pr#59973, Sridhar Seshasayee)
squid: corpus: update submodule with mark cls_rgw_reshard_entry forward_inco... (pr#58923, NitzanMordhai)
squid: crimson/os/seastore/cached_extent: add the “refresh” ability to lba mappings (pr#58957, Xuehan Xu)
squid: crimson/os/seastore/lba_manager: do batch mapping allocs when remapping multiple mappings (pr#58820, Xuehan Xu)
squid: crimson/os/seastore/onode: add hobject_t into Onode (pr#58830, Xuehan Xu)
squid: crimson/os/seastore/transaction_manager: consider inconsistency between backrefs and lbas acceptable when cleaning segments (pr#58837, Xuehan Xu)
squid: crimson/os/seastore: add checksum offload to RBM (pr#59298, Myoungwon Oh)
squid: crimson/os/seastore: add writer level stats to RBM (pr#58828, Myoungwon Oh)
squid: crimson/os/seastore: track transactions/conflicts/outstanding periodically (pr#58835, Yingxin Cheng)
squid: crimson/osd/pg_recovery: push the iteration forward after finding unfound objects when starting primary recoveries (pr#58958, Xuehan Xu)
squid: crimson: access coll_map under alien tp with a lock (pr#58841, Samuel Just)
squid: crimson: audit and correct epoch captured by IOInterruptCondition (pr#58839, Samuel Just)
squid: crimson: simplify obc loading by locking excl for load and demoting to needed lock (pr#58905, Matan Breizman, Samuel Just)
squid: debian pkg: record python3-packaging dependency for ceph-volume (pr#59202, Kefu Chai, Thomas Lamprecht)
squid: doc,mailmap: update my email / association to ibm (pr#60338, Patrick Donnelly)
squid: doc/ceph-volume: add spillover fix procedure (pr#59540, Zac Dover)
squid: doc/cephadm: add malformed-JSON removal instructions (pr#59663, Zac Dover)
squid: doc/cephadm: Clarify “Deploying a new Cluster” (pr#60809, Zac Dover)
squid: doc/cephadm: clean “Adv. OSD Service Specs” (pr#60679, Zac Dover)
squid: doc/cephadm: correct “ceph orch apply” command (pr#60432, Zac Dover)
squid: doc/cephadm: how to get exact size_spec from device (pr#59430, Zac Dover)
squid: doc/cephadm: link to “host pattern” matching sect (pr#60644, Zac Dover)
squid: doc/cephadm: Update operations.rst (pr#60637, rhkelson)
squid: doc/cephfs: add cache pressure information (pr#59148, Zac Dover)
squid: doc/cephfs: add doc for disabling mgr/volumes plugin (pr#60496, Rishabh Dave)
squid: doc/cephfs: edit “Disabling Volumes Plugin” (pr#60467, Zac Dover)
squid: doc/cephfs: edit “Layout Fields” text (pr#59021, Zac Dover)
squid: doc/cephfs: edit 3rd 3rd of mount-using-kernel-driver (pr#61080, Zac Dover)
squid: doc/cephfs: improve “layout fields” text (pr#59250, Zac Dover)
squid: doc/cephfs: improve cache-configuration.rst (pr#59214, Zac Dover)
squid: doc/cephfs: rearrange subvolume group information (pr#60435, Indira Sawant)
squid: doc/cephfs: s/mountpoint/mount point/ (pr#59294, Zac Dover)
squid: doc/cephfs: s/mountpoint/mount point/ (pr#59289, Zac Dover)
squid: doc/cephfs: use ‘p’ flag to set layouts or quotas (pr#60482, TruongSinh Tran-Nguyen)
squid: doc/dev/peering: Change acting set num (pr#59062, qn2060)
squid: doc/dev/release-checklist: check telemetry validation (pr#59813, Yaarit Hatuka)
squid: doc/dev/release-checklists.rst: enable rtd for squid (pr#59812, Neha Ojha)
squid: doc/dev/release-process.rst: New container build/release process (pr#60971, Dan Mick)
squid: doc/dev: add “activate latest release” RTD step (pr#59654, Zac Dover)
squid: doc/dev: instruct devs to backport (pr#61063, Zac Dover)
squid: doc/dev: remove “Stable Releases and Backports” (pr#60272, Zac Dover)
squid: doc/glossary.rst: add “Dashboard Plugin” (pr#60896, Zac Dover)
squid: doc/glossary: add “ceph-ansible” (pr#59007, Zac Dover)
squid: doc/glossary: add “flapping OSD” (pr#60864, Zac Dover)
squid: doc/glossary: add “object storage” (pr#59424, Zac Dover)
squid: doc/glossary: add “PLP” to glossary (pr#60503, Zac Dover)
squid: doc/governance: add exec council responsibilites (pr#60139, Zac Dover)
squid: doc/governance: add Zac Dover’s updated email (pr#60134, Zac Dover)
squid: doc/install: Keep the name field of the created user consistent with ... (pr#59756, hejindong)
squid: doc/man: edit ceph-bluestore-tool.rst (pr#59682, Zac Dover)
squid: doc/mds: improve wording (pr#59585, Piotr Parczewski)
squid: doc/mgr/dashboard: fix TLS typo (pr#59031, Mindy Preston)
squid: doc/rados/operations: Improve health-checks.rst (pr#59582, Anthony D’Atri)
squid: doc/rados/troubleshooting: Improve log-and-debug.rst (pr#60824, Anthony D’Atri)
squid: doc/rados: add “pgs not deep scrubbed in time” info (pr#59733, Zac Dover)
squid: doc/rados: add blaum_roth coding guidance (pr#60537, Zac Dover)
squid: doc/rados: add confval directives to health-checks (pr#59871, Zac Dover)
squid: doc/rados: add link to messenger v2 info in mon-lookup-dns.rst (pr#59794, Zac Dover)
squid: doc/rados: add osd_deep_scrub_interval setting operation (pr#59802, Zac Dover)
squid: doc/rados: correct “full ratio” note (pr#60737, Zac Dover)
squid: doc/rados: document unfound object cache-tiering scenario (pr#59380, Zac Dover)
squid: doc/rados: edit “Placement Groups Never Get Clean” (pr#60046, Zac Dover)
squid: doc/rados: fix sentences in health-checks (2 of x) (pr#60931, Zac Dover)
squid: doc/rados: fix sentences in health-checks (3 of x) (pr#60949, Zac Dover)
squid: doc/rados: make sentences agree in health-checks.rst (pr#60920, Zac Dover)
squid: doc/rados: standardize markup of “clean” (pr#60500, Zac Dover)
squid: doc/radosgw/multisite: fix Configuring Secondary Zones -> Updating the Period (pr#60332, Casey Bodley)
squid: doc/radosgw/qat-accel: Update and Add QATlib information (pr#58874, Feng, Hualong)
squid: doc/radosgw: Improve archive-sync-module.rst (pr#60852, Anthony D’Atri)
squid: doc/radosgw: Improve archive-sync-module.rst more (pr#60867, Anthony D’Atri)
squid: doc/radosgw: Improve config-ref.rst (pr#59578, Anthony D’Atri)
squid: doc/radosgw: improve qat-accel.rst (pr#59179, Anthony D’Atri)
squid: doc/radosgw: s/Poliicy/Policy/ (pr#60707, Zac Dover)
squid: doc/radosgw: update rgw_dns_name doc (pr#60885, Zac Dover)
squid: doc/rbd: add namespace information for mirror commands (pr#60269, N Balachandran)
squid: doc/README.md - add ordered list (pr#59798, Zac Dover)
squid: doc/README.md: create selectable commands (pr#59834, Zac Dover)
squid: doc/README.md: edit “Build Prerequisites” (pr#59637, Zac Dover)
squid: doc/README.md: improve formatting (pr#59785, Zac Dover)
squid: doc/README.md: improve formatting (pr#59700, Zac Dover)
squid: doc/rgw/account: Handling notification topics when migrating an existing user into an account (pr#59491, Oguzhan Ozmen)
squid: doc/rgw/d3n: pass cache dir volume to extra_container_args (pr#59767, Mark Kogan)
squid: doc/rgw/notification: clarified the notification_v2 behavior upon upg... (pr#60662, Yuval Lifshitz)
squid: doc/rgw/notification: persistent notification queue full behavior (pr#59233, Yuval Lifshitz)
squid: doc/start: add supported Squid distros (pr#60557, Zac Dover)
squid: doc/start: add vstart install guide (pr#60461, Zac Dover)
squid: doc/start: fix “are are” typo (pr#60708, Zac Dover)
squid: doc/start: separate package chart from container chart (pr#60698, Zac Dover)
squid: doc/start: update os-recommendations.rst (pr#60766, Zac Dover)
squid: doc: Correct link to Prometheus docs (pr#59559, Matthew Vernon)
squid: doc: Document the Windows CI job (pr#60033, Lucian Petrut)
squid: doc: Document which options are disabled by mClock (pr#60671, Niklas Hambüchen)
squid: doc: documenting the feature that scrub clear the entries from damage... (pr#59078, Neeraj Pratap Singh)
squid: doc: explain the consequence of enabling mirroring through monitor co... (pr#60525, Jos Collin)
squid: doc: fix email (pr#60233, Ernesto Puerta)
squid: doc: fix typo (pr#59991, N Balachandran)
squid: doc: Harmonize ‘mountpoint’ (pr#59291, Anthony D’Atri)
squid: doc: s/Whereas,/Although/ (pr#60593, Zac Dover)
squid: doc: SubmittingPatches-backports - remove backports team (pr#60297, Zac Dover)
squid: doc: Update “Getting Started” to link to start not install (pr#59907, Matthew Vernon)
squid: doc: update Key Idea in cephfs-mirroring.rst (pr#60343, Jos Collin)
squid: doc: update nfs doc for Kerberos setup of ganesha in Ceph (pr#59939, Avan Thakkar)
squid: doc: update tests-integration-testing-teuthology-workflow.rst (pr#59548, Vallari Agrawal)
squid: doc:update e-mail addresses governance (pr#60084, Tobias Fischer)
squid: docs/rados/operations/stretch-mode: warn device class is not supported (pr#59099, Kamoltat Sirivadhna)
squid: global: Call getnam_r with a 64KiB buffer on the heap (pr#60127, Adam Emerson)
squid: librados: use CEPH_OSD_FLAG_FULL_FORCE for IoCtxImpl::remove (pr#59284, Chen Yuanrun)
squid: librbd/crypto/LoadRequest: clone format for migration source image (pr#60171, Ilya Dryomov)
squid: librbd/crypto: fix issue when live-migrating from encrypted export (pr#59145, Ilya Dryomov)
squid: librbd/migration/HttpClient: avoid reusing ssl_stream after shut down (pr#61095, Ilya Dryomov)
squid: librbd/migration: prune snapshot extents in RawFormat::list_snaps() (pr#59661, Ilya Dryomov)
squid: librbd: avoid data corruption on flatten when object map is inconsistent (pr#61168, Ilya Dryomov)
squid: log: save/fetch thread name infra (pr#60279, Milind Changire)
squid: Make mon addrs consistent with mon info (pr#60751, shenjiatong)
squid: mds/QuiesceDbManager: get requested state of members before iterating... (pr#58912, junxiang Mu)
squid: mds: CInode::item_caps used in two different lists (pr#56887, Dhairya Parmar)
squid: mds: encode quiesce payload on demand (pr#59517, Patrick Donnelly)
squid: mds: find a new head for the batch ops when the head is dead (pr#57494, Xiubo Li)
squid: mds: fix session/client evict command (pr#58727, Neeraj Pratap Singh)
squid: mds: only authpin on wrlock when not a locallock (pr#59097, Patrick Donnelly)
squid: mgr/balancer: optimize ‘balancer status detail’ (pr#60718, Laura Flores)
squid: mgr/cephadm/services/ingress Fix HAProxy to listen on IPv4 and IPv6 (pr#58515, Bernard Landon)
squid: mgr/cephadm: add “original_weight” parameter to OSD class (pr#59410, Adam King)
squid: mgr/cephadm: add --no-exception-when-missing flag to cert-store cert/key get (pr#59935, Adam King)
squid: mgr/cephadm: add command to expose systemd units of all daemons (pr#59931, Adam King)
squid: mgr/cephadm: bump monitoring stacks version (pr#58711, Nizamudeen A)
squid: mgr/cephadm: make ssh keepalive settings configurable (pr#59710, Adam King)
squid: mgr/cephadm: redeploy when some dependency daemon is add/removed (pr#58383, Redouane Kachach)
squid: mgr/cephadm: Update multi-site configs before deploying daemons on rgw service create (pr#60321, Aashish Sharma)
squid: mgr/cephadm: use host address while updating rgw zone endpoints (pr#59948, Aashish Sharma)
squid: mgr/client: validate connection before sending (pr#58887, NitzanMordhai)
squid: mgr/dashboard: add cephfs rename REST API (pr#60620, Yite Gu)
squid: mgr/dashboard: Add group field in nvmeof service form (pr#59446, Afreen Misbah)
squid: mgr/dashboard: add gw_groups support to nvmeof api (pr#59751, Nizamudeen A)
squid: mgr/dashboard: add gw_groups to all nvmeof endpoints (pr#60310, Nizamudeen A)
squid: mgr/dashboard: add restful api for creating crush rule with type of ‘erasure’ (pr#59139, sunlan)
squid: mgr/dashboard: Changes for Sign out text to Login out (pr#58988, Prachi Goel)
Squid: mgr/dashboard: Cloning subvolume not listing _nogroup if no subvolume (pr#59951, Dnyaneshwari talwekar)
squid: mgr/dashboard: custom image for kcli bootstrap script (pr#59879, Pedro Gonzalez Gomez)
squid: mgr/dashboard: Dashboard not showing Object/Overview correctly (pr#59038, Aashish Sharma)
squid: mgr/dashboard: Fix adding listener and null issue for groups (pr#60078, Afreen Misbah)
squid: mgr/dashboard: fix bucket get for s3 account owned bucket (pr#60466, Nizamudeen A)
squid: mgr/dashboard: fix ceph-users api doc (pr#59140, Nizamudeen A)
squid: mgr/dashboard: fix doc links in rgw-multisite (pr#60154, Pedro Gonzalez Gomez)
squid: mgr/dashboard: fix gateways section error:”404 - Not Found RGW Daemon not found: None” (pr#60231, Aashish Sharma)
squid: mgr/dashboard: fix group name bugs in the nvmeof API (pr#60348, Nizamudeen A)
squid: mgr/dashboard: fix handling NaN values in dashboard charts (pr#59961, Aashish Sharma)
squid: mgr/dashboard: fix lifecycle issues (pr#60378, Pedro Gonzalez Gomez)
squid: mgr/dashboard: Fix listener deletion (pr#60292, Afreen Misbah)
squid: mgr/dashboard: fix setting compression type while editing rgw zone (pr#59970, Aashish Sharma)
Squid: mgr/dashboard: Forbid snapshot name “.” and any containing “/” (pr#59995, Dnyaneshwari Talwekar)
squid: mgr/dashboard: handle infinite values for pools (pr#61096, Afreen)
squid: mgr/dashboard: ignore exceptions raised when no cert/key found (pr#60311, Nizamudeen A)
squid: mgr/dashboard: Increase maximum namespace count to 1024 (pr#59717, Afreen Misbah)
squid: mgr/dashboard: introduce server side pagination for osds (pr#60294, Nizamudeen A)
squid: mgr/dashboard: mgr/dashboard: Select no device by default in EC profile (pr#59811, Afreen Misbah)
Squid: mgr/dashboard: multisite sync policy improvements (pr#59965, Naman Munet)
Squid: mgr/dashboard: NFS Export form fixes (pr#59900, Dnyaneshwari Talwekar)
squid: mgr/dashboard: Nvme mTLS support and service name changes (pr#59819, Afreen Misbah)
squid: mgr/dashboard: provide option to enable pool based mirroring mode while creating a pool (pr#58638, Aashish Sharma)
squid: mgr/dashboard: remove cherrypy_backports.py (pr#60632, Nizamudeen A)
Squid: mgr/dashboard: remove orch required decorator from host UI router (list) (pr#59851, Naman Munet)
squid: mgr/dashboard: Rephrase dedicated pool helper in rbd create form (pr#59721, Aashish Sharma)
Squid: mgr/dashboard: RGW multisite sync remove zones fix (pr#59825, Naman Munet)
squid: mgr/dashboard: rm nvmeof conf based on its daemon name (pr#60604, Nizamudeen A)
Squid: mgr/dashboard: service form hosts selection only show up to 10 entries (pr#59760, Naman Munet)
squid: mgr/dashboard: show non default realm sync status in rgw overview page (pr#60232, Aashish Sharma)
squid: mgr/dashboard: Show which daemons failed in CEPHADM_FAILED_DAEMON healthcheck (pr#59597, Aashish Sharma)
Squid: mgr/dashboard: sync policy’s in Object >> Multi-site >> Sync-policy, does not show the zonegroup to which policy belongs to (pr#60346, Naman Munet)
Squid: mgr/dashboard: The subvolumes are missing from the dropdown menu on the “Create NFS export” page (pr#60356, Dnyaneshwari Talwekar)
Squid: mgr/dashboard: unable to edit pipe config for bucket level policy of bucket (pr#60293, Naman Munet)
squid: mgr/dashboard: Update nvmeof microcopies (pr#59718, Afreen Misbah)
squid: mgr/dashboard: update period after migrating to multi-site (pr#59964, Aashish Sharma)
squid: mgr/dashboard: update translations for squid (pr#60367, Nizamudeen A)
squid: mgr/dashboard: use grafana server instead of grafana-server in grafana 10.4.0 (pr#59722, Aashish Sharma)
Squid: mgr/dashboard: Wrong(half) uid is observed in dashboard when user created via cli contains $ in its name (pr#59693, Dnyaneshwari Talwekar)
squid: mgr/dashboard: Zone details showing incorrect data for data pool values and compression info for Storage Classes (pr#59596, Aashish Sharma)
Squid: mgr/dashboard: zonegroup level policy created at master zone did not sync to non-master zone (pr#59892, Naman Munet)
squid: mgr/nfs: generate user_id & access_key for apply_export(CephFS) (pr#59896, Avan Thakkar, avanthakkar, John Mulligan)
squid: mgr/orchestrator: fix encrypted flag handling in orch daemon add osd (pr#59473, Yonatan Zaken)
squid: mgr/rest: Trim requests array and limit size (pr#59372, Nitzan Mordechai)
squid: mgr/rgw: Adding a retry config while calling zone_create() (pr#59138, Kritik Sachdeva)
squid: mgr/rgwam: use realm/zonegroup/zone method arguments for period update (pr#59945, Aashish Sharma)
squid: mgr/volumes: add earmarking for subvol (pr#59894, Avan Thakkar)
squid: Modify container/ software to support release containers and the promotion of prerelease containers (pr#60962, Dan Mick)
squid: mon/ElectionLogic: tie-breaker mon ignore proposal from marked down mon (pr#58669, Kamoltat)
squid: mon/MonClient: handle ms_handle_fast_authentication return (pr#59306, Patrick Donnelly)
squid: mon/OSDMonitor: Add force-remove-snap mon command (pr#59402, Matan Breizman)
squid: mon/OSDMonitor: fix get_min_last_epoch_clean() (pr#55865, Matan Breizman)
squid: mon: Remove any pg_upmap_primary mapping during remove a pool (pr#58914, Mohit Agrawal)
squid: msg: insert PriorityDispatchers in sorted position (pr#58991, Casey Bodley)
squid: node-proxy: fix a regression when processing the RedFish API (pr#59997, Guillaume Abrioux)
squid: node-proxy: make the daemon discover endpoints (pr#58482, Guillaume Abrioux)
squid: objclass: deprecate cls_cxx_gather (pr#57819, Nitzan Mordechai)
squid: orch: disk replacement enhancement (pr#60486, Guillaume Abrioux)
squid: orch: refactor boolean handling in drive group spec (pr#59863, Guillaume Abrioux)
squid: os/bluestore: enable async manual compactions (pr#58740, Igor Fedotov)
squid: os/bluestore: Fix BlueFS allocating bdev label reserved location (pr#59969, Adam Kupczyk)
squid: os/bluestore: Fix ceph-bluestore-tool allocmap command (pr#60335, Adam Kupczyk)
squid: os/bluestore: Fix repair of multilabel when collides with BlueFS (pr#60336, Adam Kupczyk)
squid: os/bluestore: Improve documentation introduced by #57722 (pr#60893, Anthony D’Atri)
squid: os/bluestore: Multiple bdev labels on main block device (pr#59106, Adam Kupczyk)
squid: os/bluestore: Mute warnings (pr#59217, Adam Kupczyk)
squid: os/bluestore: Warning added for slow operations and stalled read (pr#59464, Md Mahamudur Rahaman Sajib)
squid: osd/scheduler: add mclock queue length perfcounter (pr#59035, zhangjianwei2)
squid: osd/scrub: decrease default deep scrub chunk size (pr#59791, Ronen Friedman)
squid: osd/scrub: exempt only operator scrubs from max_scrubs limit (pr#59020, Ronen Friedman)
squid: osd/scrub: reduce osd_requested_scrub_priority default value (pr#59885, Ronen Friedman)
squid: osd: fix require_min_compat_client handling for msr rules (pr#59492, Samuel Just, Radoslaw Zarzynski)
squid: PeeringState.cc: Only populate want_acting when num_osds < bucket_max (pr#59083, Kamoltat)
squid: qa/cephadm: extend iscsi teuth test (pr#59934, Adam King)
squid: qa/cephfs: fix TestRenameCommand and unmount the clinet before failin... (pr#59398, Xiubo Li)
squid: qa/cephfs: ignore variant of MDS_UP_LESS_THAN_MAX (pr#58788, Patrick Donnelly)
squid: qa/distros: reinstall nvme-cli on centos 9 nodes (pr#59471, Adam King)
squid: qa/rgw/multisite: specify realm/zonegroup/zone args for ‘account create’ (pr#59603, Casey Bodley)
squid: qa/rgw: bump keystone/barbican from 2023.1 to 2024.1 (pr#61023, Casey Bodley)
squid: qa/rgw: fix s3 java tests by forcing gradle to run on Java 8 (pr#61053, J. Eric Ivancich)
squid: qa/rgw: force Hadoop to run under Java 1.8 (pr#61120, J. Eric Ivancich)
squid: qa/rgw: pull Apache artifacts from mirror instead of archive.apache.org (pr#61101, J. Eric Ivancich)
squid: qa/standalone/scrub: fix the searched-for text for snaps decode errors (pr#58967, Ronen Friedman)
squid: qa/standalone/scrub: increase status updates frequency (pr#59974, Ronen Friedman)
squid: qa/standalone/scrub: remove TEST_recovery_scrub_2 (pr#60287, Ronen Friedman)
squid: qa/suites/crimson-rados/perf: add ssh keys (pr#61109, Nitzan Mordechai)
squid: qa/suites/rados/thrash-old-clients: Add noscrub, nodeep-scrub to ignorelist (pr#58629, Kamoltat)
squid: qa/suites/rados/thrash-old-clients: test with N-2 releases on centos 9 (pr#58607, Laura Flores)
squid: qa/suites/rados/verify/validater: increase heartbeat grace timeout (pr#58785, Sridhar Seshasayee)
squid: qa/suites/rados: Cancel injectfull to allow cleanup (pr#59156, Brad Hubbard)
squid: qa/suites/rbd/iscsi: enable all supported container hosts (pr#60089, Ilya Dryomov)
squid: qa/suites: drop --show-reachable=yes from fs:valgrind tests (pr#59068, Jos Collin)
squid: qa/task: update alertmanager endpoints version (pr#59930, Nizamudeen A)
squid: qa/tasks/mgr/test_progress.py: deal with pre-exisiting pool (pr#58263, Kamoltat)
squid: qa/tasks/nvme_loop: update task to work with new nvme list format (pr#61026, Adam King)
squid: qa/upgrade: fix checks to make sure upgrade is still in progress (pr#59472, Adam King)
squid: qa: adjust expected io_opt in krbd_discard_granularity.t (pr#59232, Ilya Dryomov)
squid: qa: ignore container checkpoint/restore related selinux denials for c... (issue#66640, issue#67117, pr#58808, Venky Shankar)
squid: qa: load all dirfrags before testing altname recovery (pr#59521, Patrick Donnelly)
squid: qa: remove all bluestore signatures on devices (pr#60021, Guillaume Abrioux)
squid: qa: suppress __trans_list_add valgrind warning (pr#58790, Patrick Donnelly)
squid: RADOS: Generalize stretch mode pg temp handling to be usable without stretch mode (pr#59084, Kamoltat)
squid: rbd-mirror: use correct ioctx for namespace (pr#59771, N Balachandran)
squid: rbd: “rbd bench” always writes the same byte (pr#59502, Ilya Dryomov)
squid: rbd: amend “rbd {group,} rename” and “rbd mirror pool” command descriptions (pr#59602, Ilya Dryomov)
squid: rbd: handle --{group,image}-namespace in “rbd group image {add,rm}” (pr#61172, Ilya Dryomov)
squid: rgw/beast: optimize for accept when meeting error in listenning (pr#60244, Mingyuan Liang, Casey Bodley)
squid: rgw/http: finish_request() after logging errors (pr#59439, Casey Bodley)
squid: rgw/kafka: refactor topic creation to avoid rd_kafka_topic_name() (pr#59754, Yuval Lifshitz)
squid: rgw/lc: Fix lifecycle not working while bucket versioning is suspended (pr#61138, Trang Tran)
squid: rgw/multipart: use cls_version to avoid racing between part upload and multipart complete (pr#59678, Jane Zhu)
squid: rgw/multisite: metadata polling event based on unmodified mdlog_marker (pr#60792, Shilpa Jagannath)
squid: rgw/notifications: fixing radosgw-admin notification json (pr#59302, Yuval Lifshitz)
squid: rgw/notifications: free completion pointer using unique_ptr (pr#59671, Yuval Lifshitz)
squid: rgw/notify: visit() returns copy of owner string (pr#59226, Casey Bodley)
squid: rgw/rados: don’t rely on IoCtx::get_last_version() for async ops (pr#60065, Casey Bodley)
squid: rgw: add s3select usage to log usage (pr#59120, Seena Fallah)
squid: rgw: decrement qlen/qactive perf counters on error (pr#59670, Mark Kogan)
squid: rgw: decrypt multipart get part when encrypted (pr#60130, sungjoon-koh)
squid: rgw: ignore zoneless default realm when not configured (pr#59445, Casey Bodley)
squid: rgw: load copy source bucket attrs in putobj (pr#59413, Seena Fallah)
squid: rgw: optimize bucket listing to skip past regions of namespaced entries (pr#61070, J. Eric Ivancich)
squid: rgw: revert account-related changes to get_iam_policy_from_attr() (pr#59221, Casey Bodley)
squid: rgw: RGWAccessKey::decode_json() preserves default value of ‘active’ (pr#60823, Casey Bodley)
squid: rgw: switch back to boost::asio for spawn() and yield_context (pr#60133, Casey Bodley)
squid: rgwlc: fix typo in getlc (ObjectSizeGreaterThan) (pr#59223, Matt Benjamin)
squid: RGW|BN: fix lifecycle test issue (pr#59010, Ali Masarwa)
squid: RGW|Bucket notification: fix for v2 topics rgw-admin list operation (pr#60774, Oshrey Avraham, Ali Masarwa)
squid: seastar: update submodule (pr#58955, Matan Breizman)
squid: src/ceph_release, doc: mark squid stable (pr#59537, Neha Ojha)
squid: src/crimson/osd/scrub: fix the null pointer error (pr#58885, junxiang Mu)
squid: src/mon/ConnectionTracker.cc: Fix dump function (pr#60003, Kamoltat)
squid: suites/upgrade/quincy-x: update the ignore list (pr#59624, Nitzan Mordechai)
squid: suites: adding ignore list for stray daemon (pr#58267, Nitzan Mordechai)
squid: suites: test should ignore osd_down warnings (pr#59147, Nitzan Mordechai)
squid: test/neorados: remove depreciated RemoteReads cls test (pr#58144, Laura Flores)
squid: test/rgw/notification: fixing backport issues in the tests (pr#60545, Yuval Lifshitz)
squid: test/rgw/notification: use real ip address instead of localhost (pr#59303, Yuval Lifshitz)
squid: test/rgw/notifications: don’t check for full queue if topics expired (pr#59917, Yuval Lifshitz)
squid: test/rgw/notifications: fix test regression (pr#61119, Yuval Lifshitz)
squid: Test: osd-recovery-space.sh extends the wait time for “recovery toofull” (pr#59041, Nitzan Mordechai)
upgrade/cephfs/mds_upgrade_sequence: ignore osds down (pr#59865, Kamoltat Sirivadhna)
squid: rgw: Don’t crash on exceptions from pool listing (pr#61306, Adam Emerson)
squid: container/Containerfile: replace CEPH_VERSION label for backward compact (pr#61583, Dan Mick)
squid: container/build.sh: fix up org vs. repo naming (pr#61584, Dan Mick)
squid: container/build.sh: don’t require repo creds on NO_PUSH (pr#61585, Dan Mick)
v19.2.0 Squid
注意
iSCSI users are advised that the upstream developers of Ceph encountered a bug during an upgrade from Ceph 19.1.1 to Ceph 19.2.0. Read Tracker Issue 68215 before attempting an upgrade to 19.2.0.
Some users have encountered a Ceph Manager balancer module issue when upgrading to Ceph 19.2.0. If you encounter this issue, disable the balancer by running the command ceph balancer off and the cluster will operate as expected. A fix has been implemented in 19.2.1, please read Tracker Issue 68657 before attempting an upgrade.
Release Date
September 26, 2024
亮点
RADOS
BlueStore has been optimized for better performance in snapshot-intensive workloads.
BlueStore RocksDB LZ4 compression is now enabled by default to improve average performance and “fast device” space usage.
Other improvements include more flexible EC configurations, an OpTracker to help debug mgr module issues, and better scrub scheduling.
仪表盘
Improved navigation layout
Support for managing CephFS snapshots and clones, as well as snapshot schedule management
Manage authorization capabilities for CephFS resources
Helpers on mounting a CephFS volume
RBD
diff-iterate can now execute locally, bringing a dramatic performance improvement for QEMU live disk synchronization and backup use cases.
Support for cloning from non-user type snapshots is added.
rbd-wnbd driver has gained the ability to multiplex image mappings.
RGW
The User Accounts feature unlocks several new AWS-compatible IAM APIs for the self-service management of users, keys, groups, roles, policy and more.
Crimson/Seastore
Crimson’s first tech preview release! Supporting RBD workloads on Replicated pools. For more information please visit: https://ceph.net.cn/en/news/crimson
Ceph
ceph: a new --daemon-output-file switch is available for ceph tell commands to dump output to a file local to the daemon. For commands which produce large amounts of output, this avoids a potential spike in memory usage on the daemon, allows for faster streaming writes to a file local to the daemon, and reduces time holding any locks required to execute the command. For analysis, it is necessary to manually retrieve the file from the host running the daemon. Currently, only
--format=json|json-prettyare supported.cls_cxx_gatheris marked as deprecated.Tracing: The blkin tracing feature (see https://docs.ceph.net.cn/en/latest/dev/blkin/) is now deprecated in favor of Opentracing (https://docs.ceph.net.cn/en/latest/dev/developer_guide/jaegertracing/) and will be removed in a later release.
PG dump: The default output of
ceph pg dump --format jsonhas changed. The default JSON format produces a rather massive output in large clusters and isn’t scalable, so we have removed the ‘network_ping_times’ section from the output. Details in the tracker: https://tracker.ceph.com/issues/57460
CephFS
CephFS: it is now possible to pause write I/O and metadata mutations on a tree in the file system using a new suite of subvolume quiesce commands. This is implemented to support crash-consistent snapshots for distributed applications. Please see the relevant section in the documentation on CephFS subvolumes for more information.
CephFS: MDS evicts clients which are not advancing their request tids which causes a large buildup of session metadata resulting in the MDS going read-only due to the RADOS operation exceeding the size threshold. mds_session_metadata_threshold config controls the maximum size that a (encoded) session metadata can grow.
CephFS: A new “mds last-seen” command is available for querying the last time an MDS was in the FSMap, subject to a pruning threshold.
CephFS: For clusters with multiple CephFS file systems, all the snap-schedule commands now expect the ‘--fs’ argument.
CephFS: The period specifier
mnow implies minutes and the period specifierMnow implies months. This has been made consistent with the rest of the system.CephFS: Running the command “ceph fs authorize” for an existing entity now upgrades the entity’s capabilities instead of printing an error. It can now also change read/write permissions in a capability that the entity already holds. If the capability passed by user is same as one of the capabilities that the entity already holds, idempotency is maintained.
CephFS: Two FS names can now be swapped, optionally along with their IDs, using “ceph fs swap” command. The function of this API is to facilitate file system swaps for disaster recovery. In particular, it avoids situations where a named file system is temporarily missing which would prompt a higher level storage operator (like Rook) to recreate the missing file system. See https://docs.ceph.net.cn/en/latest/cephfs/administration/#file-systems docs for more information.
CephFS: Before running the command “ceph fs rename”, the filesystem to be renamed must be offline and the config “refuse_client_session” must be set for it. The config “refuse_client_session” can be removed/unset and filesystem can be online after the rename operation is complete.
CephFS: Disallow delegating preallocated inode ranges to clients. Config mds_client_delegate_inos_pct defaults to 0 which disables async dirops in the kclient.
CephFS: MDS log trimming is now driven by a separate thread which tries to trim the log every second (mds_log_trim_upkeep_interval config). Also, a couple of configs govern how much time the MDS spends in trimming its logs. These configs are mds_log_trim_threshold and mds_log_trim_decay_rate.
CephFS: Full support for subvolumes and subvolume groups is now available
CephFS: The subvolume snapshot clone command now depends on the config option snapshot_clone_no_wait which is used to reject the clone operation when all the cloner threads are busy. This config option is enabled by default which means that if no cloner threads are free, the clone request errors out with EAGAIN. The value of the config option can be fetched by using: ceph config get mgr mgr/volumes/snapshot_clone_no_wait and it can be disabled by using: ceph config set mgr mgr/volumes/snapshot_clone_no_wait false for snap_schedule Manager module.
CephFS: Commands
ceph mds failandceph fs failnow require a confirmation flag when some MDSs exhibit health warning MDS_TRIM or MDS_CACHE_OVERSIZED. This is to prevent accidental MDS failover causing further delays in recovery.CephFS: fixes to the implementation of the
root_squashmechanism enabled via cephxmdscaps on a client credential require a new client feature bit,client_mds_auth_caps. Clients using credentials withroot_squashwithout this feature will trigger the MDS to raise a HEALTH_ERR on the cluster, MDS_CLIENTS_BROKEN_ROOTSQUASH. See the documentation on this warning and the new feature bit for more information.CephFS: Expanded removexattr support for cephfs virtual extended attributes. Previously one had to use setxattr to restore the default in order to “remove”. You may now properly use removexattr to remove. You can also now remove layout on root inode, which then will restore layout to default layout.
CephFS: cephfs-journal-tool is guarded against running on an online file system. The ‘cephfs-journal-tool --rank <fs_name>:<mds_rank> journal reset’ and ‘cephfs-journal-tool --rank <fs_name>:<mds_rank> journal reset --force’ commands require ‘--yes-i-really-really-mean-it’.
CephFS: “ceph fs clone status” command will now print statistics about clone progress in terms of how much data has been cloned (in both percentage as well as bytes) and how many files have been cloned.
CephFS: “ceph status” command will now print a progress bar when cloning is ongoing. If clone jobs are more than the cloner threads, it will print one more progress bar that shows total amount of progress made by both ongoing as well as pending clones. Both progress are accompanied by messages that show number of clone jobs in the respective categories and the amount of progress made by each of them.
cephfs-shell: The cephfs-shell utility is now packaged for RHEL 9 / CentOS 9 as required python dependencies are now available in EPEL9.
The CephFS automatic metadata load (sometimes called “default”) balancer is now disabled by default. The new file system flag balance_automate can be used to toggle it on or off. It can be enabled or disabled via ceph fs set <fs_name> balance_automate <bool>.
CephX
cephx: key rotation is now possible using ceph auth rotate. Previously, this was only possible by deleting and then recreating the key.
仪表盘
Dashboard: Rearranged Navigation Layout: The navigation layout has been reorganized for improved usability and easier access to key features.
Dashboard: CephFS Improvments * Support for managing CephFS snapshots and clones, as well as snapshot schedule management * Manage authorization capabilities for CephFS resources * Helpers on mounting a CephFS volume
Dashboard: RGW Improvements * Support for managing bucket policies * Add/Remove bucket tags * ACL Management * Several UI/UX Improvements to the bucket form
MGR
MGR/REST:REST 管理器模块将根据“max_requests”选项来修剪请求。如果没有此功能,并且在没有手动删除旧请求的情况下,请求在数组中的积累可能导致内存不足 (OOM) 问题,从而导致管理器崩溃。
MGR:现在提供了一个 OpTracker 来帮助调试 mgr 模块问题。
监控
监控:Grafana 仪表板现在在运行时加载到容器中,而不是使用 Grafana 仪表板构建 Grafana 镜像。官方 Ceph Grafana 镜像可以在 quay.io/ceph/grafana 中找到
监控:RGW S3 分析:现在提供了一个新的 Grafana 仪表板,使您能够可视化按存储桶和用户划分的分析数据,包括总 GETs、PUTs、Deletes、Copies 和列表指标。
mon_cluster_log_file_level 和 mon_cluster_log_to_syslog_level 选项已被移除。今后,用户应使用新的通用选项 mon_cluster_log_level 来控制集群日志文件的集群日志级别详细程度以及所有外部实体。
RADOS
RADOS:如果池未启用应用程序,无论池是否在使用中,现在都会报告 POOL_APP_NOT_ENABLED 健康警告。始终使用 ceph osd pool application enable 命令为池标记一个应用程序,以避免为该池报告 POOL_APP_NOT_ENABLED 健康警告。用户可以使用 ceph health mute POOL_APP_NOT_ENABLED 暂时静音此警告。
RADOS: get_pool_is_selfmanaged_snaps_mode C++ API 已弃用,因为它容易产生假阴性结果。更安全的替代品是 pool_is_in_selfmanaged_snaps_mode。
RADOS:对于 bug 62338 (https://tracker.ceph.com/issues/62338),我们没有选择在服务器标志上设置修复条件,以简化向后移植。因此,在极少数情况下,在升级到包含此修复程序的版本正在进行时,PG 可能会在两个 acting set 之间翻转。如果您观察到此行为,您应该能够通过完成升级或通过在所有 OSD 上将 osd_async_recovery_min_cost 设置为非常大的值来禁用异步恢复,直到升级完成:ceph config set osd osd_async_recovery_min_cost 1099511627776
RADOS:balancer 模块中 balancer status CLI 命令的详细版本现已可用。用户可以运行 ceph balancer status detail 来查看有关 balancer 最后一次优化中更新了哪些 PG 的更多详细信息。有关更多信息,请参阅 https://docs.ceph.net.cn/en/latest/rados/operations/balancer/。
RADOS:现在可以通过 balancer manager 模块自动管理读取平衡。用户可以在两种新模式之间进行选择:upmap-read,它同时提供 upmap 和读取优化,或者 read,它可用于仅优化读取。有关更详细的信息,请参阅 https://docs.ceph.net.cn/en/latest/rados/operations/read-balancer/#online-optimization。
RADOS:BlueStore 已针对快照密集型工作负载进行了优化,以实现更好的性能。
RADOS:BlueStore RocksDB LZ4 压缩现在默认启用,以提高平均性能和“快速设备”空间利用率。
RADOS:一种新的 CRUSH 规则类型 MSR(Multi-Step Retry)允许更灵活的 EC 配置。
RADOS:Scrub 调度行为已得到改进。
Crimson/Seastore
Crimson’s first tech preview release! Supporting RBD workloads on Replicated pools. For more information please visit: https://ceph.net.cn/en/news/crimson
RBD
RBD:在 fast-diff 模式下(启用 fast-diff 镜像功能且有效,whole_object == true)与时间开始(fromsnapname == NULL)进行差异比较时,如果独占锁可用,则保证 diff-iterate 在本地执行。这为 QEMU 实时磁盘同步和备份用例带来了显着的性能提升。
RBD:rbd-nbd 的 try-netlink 映射选项已成为默认选项,现已弃用。如果内核不支持 NBD netlink 接口,则使用传统的 ioctl 接口重试映射。
RBD:--image-id 选项已添加到 rbd children CLI 命令中,因此可以为回收站中的镜像运行它。
RBD:Image::access_timestamp 和 Image::modify_timestamp Python API 现在返回 UTC 时间戳。
RBD:添加了从非用户类型快照克隆的支持。这主要旨在作为从使用 rbd group snap create 命令创建的组快照克隆新组的构建块,但也可以通过 rbd clone 命令的新 --snap-id 选项公开。
RBD:rbd snap ls --all 命令的输出现在包括回收站快照的原始类型。
RBD:RBD_IMAGE_OPTION_CLONE_FORMAT 选项已通过 clone、deep_copy 和 migration_prepare 方法的 clone_format 可选参数在 Python 绑定中公开。
RBD:RBD_IMAGE_OPTION_FLATTEN 选项已通过 deep_copy 和 migration_prepare 方法的 flatten 可选参数在 Python 绑定中公开。
RBD:rbd-wnbd 驱动程序获得了多路复用镜像映射的能力。以前,每个镜像映射都会生成自己的 rbd-wnbd 守护程序,这导致消耗了过多的 TCP 会话和其他资源,最终超过了 Windows 限制。通过此更改,每个主机只生成一个 rbd-wnbd 守护程序,并且大多数操作系统资源在镜像映射之间共享。此外,ceph-rbd 服务启动速度快得多。
RGW
RGW:GetObject 和 HeadObject 请求现在为复制的对象返回 x-rgw-replicated-at 标头。可以将此时间戳与 Last-Modified 标头进行比较,以确定对象复制所需的时间。
RGW:使用服务器端加密的 S3 多部分上传现在可以在多站点中正确复制。以前,此类对象的副本在解密时会损坏。可以使用新工具 radosgw-admin bucket resync encrypted multipart 来识别这些原始多部分上传。任何已识别对象的 LastModified 时间戳会增加 1ns,以使对等区域再次复制它。对于使用服务器端加密的多站点部署,我们建议在所有区域升级后对每个区域中的每个存储桶运行此命令。
RGW:引入了一种新的数据布局,用于与 S3 存储桶通知相关的 Topic 元数据,其中每个 Topic 存储为单独的 RADOS 对象,并且存储桶通知配置存储在存储桶属性中。这种新的表示形式通过元数据同步支持多站点复制,并且可以扩展到许多 Topic。默认情况下,新部署会启用此功能,但升级时默认不启用。一旦所有 radosgw 都已升级(在多站点配置中的所有区域上),就可以启用 notification_v2 区域功能以迁移到新格式。有关详细信息,请参阅 https://docs.ceph.net.cn/en/latest/radosgw/zone-features。现在认为“v1”格式已弃用,并可能在 2 个主要版本后删除。
RGW:已向 radosgw-admin 添加了新工具,用于识别和纠正版本化存储桶索引中的问题。版本化存储桶索引事务工作流中的历史错误使得索引有可能累积多余的“簿记”olh 条目和纯占位符条目。在某些特定情况下,当客户端发出引用同一对象键的并发请求时,很可能会累积大量额外的索引条目。当单个存储桶索引分片中存在大量此类条目时,它们可能导致高存储桶列表延迟和生命周期处理失败。要检查版本化存储桶是否具有不必要的 olh 条目,用户现在可以运行 radosgw-admin bucket check olh。如果使用 --fix 标志,则将安全删除额外的条目。与迄今为止描述的问题不同,某些版本化存储桶也可能保留额外的未链接对象,这些对象无法从 S3/Swift API 中列出。这些额外的对象通常是由于 PUT 请求异常退出(在存储桶索引事务中间)造成的 - 因此客户端不会收到成功的响应。早期版本中的错误使得这些未链接的对象很容易重现,只要对正在主动重新分片的存储桶进行 PUT 请求即可。除了这些隐藏的、未链接的对象占用的额外空间之外,在某些情况下还会产生另一种副作用,即由于产生它们的故障模式的性质,受此错误影响的存储桶的客户端可能会发现与键关联的对象处于不一致状态。要检查版本化存储桶是否具有未链接条目,用户现在可以运行 radosgw-admin bucket check unlinked。如果使用 --fix 标志,则将安全删除未链接的对象。最后,第三个问题使得版本化存储桶索引统计信息可能被不准确地计算。用于重新计算版本化存储桶统计信息的工具也有一个错误,以前无法修复这些不准确之处。此版本解决了这些问题,用户现在可以期望现有的 radosgw-admin bucket check 命令会产生正确的结果。我们建议使用版本化存储桶的用户,尤其是那些存在于早期版本上的用户,使用这些新工具检查他们的存储桶是否受到影响并相应地清理它们。
RGW:用户帐户功能解锁了几个与 AWS 兼容的 IAM API,用于用户、密钥、组、角色、策略等的自助管理。现有用户可以采用新帐户。此过程是可选的,但不可逆转。有关详细信息,请参阅 https://docs.ceph.net.cn/en/latest/radosgw/account 和 https://docs.ceph.net.cn/en/latest/radosgw/iam。
RGW:在启动时,radosgw 和 radosgw-admin 现在验证 rgw_realm 配置选项。以前,它们会忽略无效或缺失的 realm,然后继续加载不同 realm 中的 zone/zonegroup。如果启动失败并出现“failed to load realm”错误,请修复或删除 rgw_realm 选项。
RGW:radosgw-admin 命令 realm create 和 realm pull 不再设置默认 realm,除非使用 --default。
RGW:修复了 S3 Object Lock PutObjectRetention 请求中指定 RetainUntilDate 晚于 2106 年的错误。此日期在存储时被截断为 32 位,因此使用了一个更早的日期进行对象锁定强制执行。这不会影响 PutBucketObjectLockConfiguration(其中以天为单位给出持续时间)。RetainUntilDate 编码已针对新的 PutObjectRetention 请求进行了修复,但无法修复现有对象锁定的日期。可以通过基于 x-amz-object-lock-retain-until-date 响应标头进行 HeadObject 请求来识别此类对象。
S3 Get/HeadObject 现在支持查询参数 partNumber 来读取已完成多部分上传的特定部分。
RGW:SNS CreateTopic API 现在强制执行与 AWS 相同的主题命名要求:主题名称必须仅由大小写 ASCII 字母、数字、下划线和连字符组成,且长度必须在 1 到 256 个字符之间。
RGW:通知主题现在归创建它们的用户所有。默认情况下,只有所有者可以读取/写入其主题。现在支持主题策略文档以授予这些权限给其他用户。预先存在的主题被视为没有所有者,任何用户都可以使用 SNS API 读取/写入它们。如果使用 CreateTopic 重新创建此类主题,则发布用户将成为新所有者。为了向后兼容,所有用户仍然有权将存储桶通知发布到其他用户拥有的主题。可以启用新的配置参数 rgw_topic_require_publish_policy,以拒绝 sns:Publish 权限,除非主题策略明确授予。
RGW:修复了持久通知的问题,其中在持久通知排队时修改的主题参数更改将反映在通知中。因此,如果用户设置了配置不正确(密码/ssl)的主题,导致向代理交付通知时失败,现在可以修改不正确的主题属性,并在重试尝试交付通知时,将使用新的配置。
RGW:在存储桶通知中,ownerIdentity 中的 principalId 现在包含完整的用户 ID,并带有租户 ID 前缀。
遥测
遥测中的 basic 通道现在捕获池标志,这使我们能够更好地了解功能采用情况,例如 Crimson。要选择加入遥测,请运行 ceph telemetry on。
从 Quincy 或 Reef 升级
在开始之前,请确保您的集群稳定且健康(没有宕机或恢复中的 OSD)。(这是可选的,但建议这样做。)您可以在升级期间使用 noautoscale 标志禁用所有池的自动伸缩器。
注意
您可以使用 ceph versions 命令监控每个阶段的升级进度,该命令将告诉您每种类型的守护程序正在运行的 ceph 版本。
升级 cephadm 集群
如果您的集群是使用 cephadm 部署的(首次在 Octopus 中引入),则升级过程是完全自动化的。要启动升级,
ceph orch upgrade start --image quay.io/ceph/ceph:v19.2.0
相同的过程用于升级到未来的次要版本。
可以使用以下命令监控升级进度:
ceph orch upgrade status
升级进度也可以通过 ceph -s 进行监控(它提供一个简单的进度条)或通过更详细地监控
ceph -W cephadm
可以使用以下命令暂停或恢复升级:
ceph orch upgrade pause # to pause ceph orch upgrade resume # to resume
或使用以下命令取消:
ceph orch upgrade stop
请注意,取消升级只是停止该过程;无法降级回 Quincy 或 Reef。
升级非 cephadm 集群
注意
如果您的集群正在运行 Quincy (17.2.x) 或更高版本,您可以选择首先将其转换为使用 cephadm,以便自动升级到 Squid(请参阅上文)。有关更多信息,请参阅 https://docs.ceph.net.cn/en/latest/cephadm/adoption/。
如果您的集群正在运行 Quincy (17.2.x) 或更高版本,systemd 单元文件名已更改为包含集群 fsid。要查找集群的正确 systemd 单元文件名,请运行以下命令
systemctl -l | grep <daemon type>
示例
systemctl -l | grep mon | grep activeceph-6ce0347c-314a-11ee-9b52-000af7995d6c@mon.f28-h21-000-r630.service loaded active running Ceph mon.f28-h21-000-r630 for 6ce0347c-314a-11ee-9b52-000af7995d6c
在升级期间设置 noout 标志。(可选,但推荐。)
ceph osd set noout通过安装新软件包并重新启动监视器守护程序来升级监视器。例如,在每个监视器主机上
systemctl restart ceph-mon.target一旦所有监视器都启动,通过在 mon map 中查找 squid 字符串来验证监视器升级是否完成。命令
ceph mon dump | grep min_mon_release应报告
min_mon_release 19 (squid)如果不是,则意味着一个或多个监视器尚未升级和重新启动和/或仲裁不包括所有监视器。
通过安装新软件包并重新启动所有管理器守护程序来升级 ceph-mgr 守护程序。例如,在每个管理器主机上,
systemctl restart ceph-mgr.target通过检查 ceph -s 来验证 ceph-mgr 守护程序是否正在运行
ceph -s... services: mon: 3 daemons, quorum foo,bar,baz mgr: foo(active), standbys: bar, baz ...
通过安装新包并重新启动所有 OSD 主机上的 ceph-osd 守护程序来升级所有 OSD
systemctl restart ceph-osd.target升级所有 CephFS MDS 守护程序。对于每个 CephFS 文件系统:
禁用 standby_replay
ceph fs set <fs_name> allow_standby_replay false将排名数减少到 1。(如果您计划稍后恢复,请先记下原始 MDS 守护程序数。)
ceph status # ceph fs set <fs_name> max_mds 1通过定期检查状态等待集群停用任何非零排名:
ceph status在适当的主机上使用以下命令使所有 standby MDS 守护程序离线:
systemctl stop ceph-mds@<daemon_name>确认只有一个 MDS 在线并且是您的 FS 的排名 0:
ceph status通过安装新软件包并重新启动守护程序来升级最后剩下的 MDS 守护程序:
systemctl restart ceph-mds.target重新启动所有已离线的 standby MDS 守护程序:
systemctl start ceph-mds.target恢复卷的 max_mds 的原始值
ceph fs set <fs_name> max_mds <original_max_mds>
通过升级包并重新启动所有主机上的守护程序来升级所有 radosgw 守护程序
systemctl restart ceph-radosgw.target通过禁止 pre-Squid OSD 并启用所有新的仅 Squid 功能来完成升级
ceph osd require-osd-release squid如果您在开始时设置了 noout,请务必使用以下命令将其清除
ceph osd unset noout考虑将您的集群转换为使用 cephadm 部署和编排框架,以简化集群管理和未来的升级。有关将现有集群转换为 cephadm 的更多信息,请参阅 https://docs.ceph.net.cn/en/latest/cephadm/adoption/。
升级后
使用 ceph health 验证集群是否健康。如果您的集群正在运行 Filestore,并且您正在直接从 Quincy 升级到 Squid,则预计会出现弃用警告。可以使用以下命令暂时静音此警告
ceph health mute OSD_FILESTORE考虑启用 telemetry 模块以向 Ceph 上游开发人员发送匿名使用统计信息和崩溃信息。要查看将报告的内容(而无需实际向任何人发送任何信息),
ceph telemetry preview-all如果您对报告的数据感到满意,可以选择自动报告高级集群元数据,使用
ceph telemetry on聚合 Ceph 遥测数据的公共仪表盘位于 https://telemetry-public.ceph.com/。
从 pre-Quincy 版本(如 Pacific)升级
您必须先升级到 Quincy (17.2.z) 或 Reef (18.2.z),然后才能升级到 Squid。