Alex Ainscow [Fri, 3 Oct 2025 13:55:56 +0000 (14:55 +0100)]
osdc: Interface to submit IO with ASIO Post.
For direct read failures, the locking is such that we cannot
immediately send a new IO without deadlocking. This new interface
allows an op to be sent as an asio post.
Alex Ainscow [Fri, 3 Oct 2025 13:39:03 +0000 (14:39 +0100)]
osd: Implement sync reads and sparse reads for EC for direct reads
Sparse reads for EC are simple to implement, as the code is essentially
identical to that of replica, with some address translation.
When doing a direct read in EC, only a single OSD is involved and
that OSD, by definition is the only OSD involved. As such we can
do the more performant sync read, rather than async read.
Alex Ainscow [Fri, 3 Oct 2025 13:15:32 +0000 (14:15 +0100)]
osd: Generalise can_serve_replica_read for consumption by EC.
The can_serve_replica_read() function is called by replica to determine whether there are
any uncommitted writes. If such writes exist, then the system will reject the IO to avoid
the risk of reading data from a write which may yet be rolled back.
The same code is going to be useful for EC direct reads.
Alex Ainscow [Fri, 3 Oct 2025 12:53:33 +0000 (13:53 +0100)]
osd: Replace unused EC offset translation function with useful one.
The old chunk_aligned_shard_offset_to_ro_offset was not only unused, it
didn't actually have the correct logic. We replace it here with similar,
but more useful function that will be used in sparse reads for EC
Alex Ainscow [Fri, 3 Oct 2025 12:49:58 +0000 (13:49 +0100)]
osd: Introduce pool flag for "split IO" and Plugin flag for "direct read"
These flags will currently behave as follows:
1. The pool flag is never set, unless by a user with the osd_pool_default_flags
config option.
2. The pool flag will be removed for EC pools where the plugin does not support
direct reads.
3. Replica pools will never remove the flag.
The intention is to eventually invert this logic and allow split IOs upon
upgrade to Umberella in this same function.
Afreen Misbah [Tue, 21 Oct 2025 16:37:46 +0000 (22:07 +0530)]
mgr/dashboard: Carbonize the Change Password Form
Fixes https://tracker.ceph.com/issues/73193
- using carbon based stylings, typography and components
- used grid layout for form arrangement
- breadcrumb is slightly off, which needs to be fixed by applying grid layout to the app shell
Kefu Chai [Sat, 22 Nov 2025 00:24:36 +0000 (08:24 +0800)]
qa/suites/rados/encoder: exclude ceph-osd-* when installing LTS releases
In a37b5b5, the ceph-osd-classic and ceph-osd-crimson packages were
added to qa/packages/packages.yaml. The "install" task uses this file as
the default package list for all branches, including LTS releases like
Reef.
However, a37b5b5 only exists in the main branch and won't be backported
to LTS branches. This causes installation failures in the rados/encoder
test suite, which verifies forward compatibility by installing LTS
releases and testing whether they can decode the latest corpus.
Exclude ceph-osd-classic and ceph-osd-crimson from LTS installations to
ensure the test suite can successfully install ceph-dencoder, which is
required for the interoperability tests.
Seena Fallah [Mon, 19 Feb 2024 09:39:24 +0000 (10:39 +0100)]
cmake: skip boost dependency on ALIAS executable targets
The current add_executable override in Boost does not support alias
targets. Although Ceph currently has no alias targets that are
affected by this limitation, addressing this issue now will benefit
future developments and personal projects.
This change enhances the robustness of the override logic, ensuring
compatibility with alias targets moving forward.
Afreen Misbah [Wed, 19 Nov 2025 20:03:26 +0000 (01:33 +0530)]
monitoring: Fixes for development
- fixes tox.ini using and undefined env - `grafonnet-check`( instead of `jsonnet-check`)
- adds steps for local development of mixins and building jsonnet
- added help command in Makefile
- added comments and descriptions for Makefile and tox.ini
Matan Breizman [Tue, 18 Nov 2025 08:48:55 +0000 (08:48 +0000)]
qa/suites: exclude ceph-osd-crimson
Similarly to https://github.com/ceph/ceph/pull/66268.
Once crimson is enabled in RPM, ceph-osd-crimson will
be requried as a dependency.
old-clients and upgrade tests should not try to install the new package
as it is not available in older releases.
Matan Breizman [Mon, 17 Nov 2025 09:27:46 +0000 (09:27 +0000)]
qa/crontab/teuthology-crontab: use default flavor for crimson
By enabling crimson in the "default" flavor - we should be able to
cleanup "crimson-release" flavor. Update the cronjob ro use the default
build flavor.
Matan Breizman [Sun, 16 Nov 2025 11:20:01 +0000 (11:20 +0000)]
debian,ceph.spec: add ceph-osd-crimson as dependency
a37b5b5bde8c2e8d6890f16b31046119ed55f25d added ceph-osd-crimson as dependency using OR requirement.
Once ceph-osd-classic dependency is satisfied, ceph-osd-crimson package must be added manually.
In order to not add crimson packages manually (See "Containerfile"
removed lines) - mark osd-crimson as dependency if with_crimson is
enabled for rpm and if pkg.ceph.crimson build profile is enabled for debian.
With this change, users won't be required to obtain ceph-osd-crimson
package manually when relevant. Similarly to ceph-osd-classic being
a dependency for ceph-osd.
Matan Breizman [Sun, 16 Nov 2025 13:12:26 +0000 (13:12 +0000)]
qa/tasks/ceph.py: introduce crimson_compat
In an attempt to use the default flavor for both crimson and classic,
we can no longer rely on flavors to enable crimson flags.
The existing CRIMSON_COMPAT env variable is defined under "workunit",
and is not supported by tasks/ceph. Instead, introduce, a dedicated
crimson_compat option supported by tasks/ceph.
Matan Breizman [Tue, 18 Nov 2025 08:36:14 +0000 (08:36 +0000)]
ceph.spec.in: Include Crimson by default in RPM builds
With #65782 merged, Crimson could be now built as part of the default RPM build flavor.
The binaries ceph-osd-crimson and ceph-osd-classic are managed via `update-alternatives`
and selected based on priority:
- ceph-osd-classic keeps the **highest** priority (100) and remains the default.
- Switching to crimson is possible via:
update-alternatives --set ceph-osd /usr/bin/ceph-osd-crimson
Existing classic behavior remains unchanged unless the above command is explicitly executed.
Imran Imtiaz [Thu, 13 Nov 2025 10:27:28 +0000 (10:27 +0000)]
mgr/dashboard: add API endpoint to add images to consistency groups
Signed-off-by: Imran Imtiaz <imran.imtiaz@uk.ibm.com> Fixes: https://tracker.ceph.com/issues/73840
Create a consistency group dashboard API endpoint that enables adding
RBD images to the group.
Aashish Sharma [Wed, 19 Nov 2025 05:13:22 +0000 (10:43 +0530)]
monitoring: remove cephfs.libsonnet mention from dashboards.libsonnet
We recently added a new CephFS Overview dashboard and removed the
older MDS Performance dashboard. We need to remove the mention
of cephfs.libsonnet from dashboards.libsonnet file as well.
Shraddha Agrawal [Mon, 17 Nov 2025 19:50:44 +0000 (01:20 +0530)]
qa/clusters/crimson: increase reactors in fixed-1 cluster
Issue: Various different tests were failing randomly due to slow
ops. There was no common ground between them, it was happening
across differnet object stores (seastore and bluestore) and
across different tests.
Cause: Since this is happening quite randomly, this is likely
happening due to low reactor count.
Solution: We are opting the solution to increase reactors used
for testing. I've increased them to 3 from the initial 2 value.
Patrick Donnelly [Tue, 18 Nov 2025 13:53:29 +0000 (08:53 -0500)]
Merge PR #66298 into main
* refs/pull/66298/head:
script/ptl-tool: organize options and improve help output
script/ptl-tool: add options to set distros/flavors/archs
ptl-tool: add options to append to branch name