Files
my-rook-config/PendingReleaseNotes.md
T
Joshua Hoblitt 09ce9e26cc osd: list prepared devices individually when missing from raw list
The prepare job runs "ceph-volume raw prepare" per device and then trusts
a no-argument "ceph-volume raw list" to report the OSDs it just created.
That listing can come back without a freshly prepared device. On Ceph
v20.2.0 and v20.2.1, get_devices() enumerates through udev data under
/run/udev/data and returns nothing when that data is empty or not yet
populated (https://tracker.ceph.com/issues/77968). On every released
v20.2.x, a block device smaller than 4KiB in the scan, such as the 1KiB
extended-partition node of an MBR-partitioned OS disk, crashes the
batched ceph-bluestore-tool call behind the listing, which ceph-volume
reports as an empty result (https://tracker.ceph.com/issues/76354).
Either way the no-argument list comes back empty or incomplete even
though the OSD exists. Rook then silently reported fewer OSDs than it
prepared, the operator never created the missing OSD deployment, and the
cluster was left with OSDs in the osdmap but no daemons running.

Verify that every device prepared in raw mode is present in the listing.
For any that is missing, list it by name ("ceph-volume raw list
<device>"), which is immune to both failure modes and reports the OSD.
If even the per-device listing is empty, return an error so the prepare
job exits non-zero and Kubernetes restarts it with a freshly re-scanned
environment, rather than silently under-reporting the OSDs.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-07-29 12:38:00 -07:00

1.2 KiB

v1.21 Pending Release Notes

Breaking Changes

  • Helm OCI chart tags no longer include the v prefix (e.g., 1.21.0 instead of v1.21.0). Update any scripts or tooling that reference the chart by tag.
  • The OSD prepare job now fails, and is retried by Kubernetes, when a freshly prepared device is missing from the ceph-volume raw list output, instead of silently reporting fewer OSDs than were prepared (which left OSDs registered in the osdmap with no OSD deployment created).

Features

  • RBD QoS (Quality of Service) support via VolumeAttributesClass using the krbd mounter with cgroup v2 io.max enforcement. See the RBD QoS documentation for details.
  • Automated OSD replacement. OSD deployment can be annotated to mark it for replacement. Rook will drain and destroy it with preserving its CRUSH position to later reuse it when new device will be available on the same node. All types of OSDs supported for host-based cluster included OSDs sharing metadata device. PVC-based OSDs are not supported. See OSD replacement design document for details.