Commit Graph

160278 Commits

Author SHA1 Message Date
dependabot[bot]
1520edcb70 .github: Bump actions/github-script from 7.0.1 to 9.0.0
Bumps [actions/github-script](https://github.com/actions/github-script) from 7.0.1 to 9.0.0.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](60a0d83039...3a2844b7e9)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-17 06:15:18 +00:00
Kefu Chai
1f5169db36 Merge pull request #68297 from tchaikov/wip-feedback-without-tracker
mgr/feedback: fix flaky test_issue_tracker_create_with_invalid_key

Reviewed-by: Nizamudeen A <nia@redhat.com>
Reviewed-by: Afreen Misbah <afreen@ibm.com>
2026-04-17 13:34:51 +08:00
Patrick Donnelly
83619504ae Merge PR #68245 into main
* refs/pull/68245/head:
	mon/MonClient: check stopping for auth request handling

Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
2026-04-16 19:58:06 -04:00
Casey Bodley
7a6816df67 Merge pull request #68289 from cbodley/wip-75945
qa/valgrind: generalize suppressions for gcc-14 MismatchedFree

Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2026-04-16 16:18:38 -04:00
Gabriel Benhanokh
6cd56aece4 Merge pull request #68113 from benhanokh/dedup_split_head_with_tail_objects
rgw/dedup: split-head for objects with tails
2026-04-16 21:01:29 +03:00
Patrick Donnelly
fabaa7d359 Merge PR #67823 into main
* refs/pull/67823/head:
	qa: remove unused qa_scripts

Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2026-04-16 12:29:26 -04:00
Patrick Donnelly
dd2b7661be Merge PR #67822 into main
* refs/pull/67822/head:
	qa: remove vestiges of ceph-deploy
	doc: remove references to ceph-deploy

Reviewed-by: Anthony D Atri <anthony.datri@gmail.com>
2026-04-16 12:28:52 -04:00
Redouane Kachach
e24f71e6f1 Merge pull request #67493 from kginonredhat/Bug-56660-Haproxy-error-for-rgw-service-with-ipv6
added code to fix failure on Haproxy error for rgw service with ipv6

Reviewed-by: Redouane Kachach <rkachach@ibm.com>
2026-04-16 16:21:49 +02:00
Redouane Kachach
a71dd1eb66 Merge pull request #66257 from ShwetaBhosale1/fix_issue_73851_cephadm_crashes_when_ganesha-rados-grace_fails
mgr/cephadm: Handle ganesha-rados-grace tool failure

Reviewed-by: Redouane Kachach <rkachach@ibm.com>
Reviewed-by: Adam King <adking@redhat.com>
2026-04-16 15:48:08 +02:00
Redouane Kachach
062a1ebf65 Merge pull request #66313 from ShwetaBhosale1/fix_issue_73912_prometheus_cannot_access_nfs_metrics_endpoints
mgr/cephadm: Allow NFS monitoring port through firewall

Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Redouane Kachach <rkachach@ibm.com>
2026-04-16 15:47:00 +02:00
Redouane Kachach
55d594f007 Merge pull request #66381 from ShwetaBhosale1/fix_issue_73949_nfs_with_keepalived_only
mgr/cephadm: Fix NFS to work properly in keepalived-only ingress mode

Reviewed-by: Redouane Kachach <rkachach@ibm.com>
Reviewed-by: Adam King <adking@redhat.com>
2026-04-16 15:45:58 +02:00
Igor Fedotov
b2b94ecc86 Merge pull request #68391 from ifed01/wip-ifed-fix-fcm
extblkdev/fcm: do not abort on multi-device volume before we discover…

Reviewed-by: Adam Kupczyk <akupczyk@ibm.com>
2026-04-16 16:19:12 +03:00
Patrick Donnelly
93469d4895 mon/MonClient: check stopping for auth request handling
When the MonClient is shutting down, it is no longer safe to
access MonClient::auth and other members. The AuthClient
methods should be checking the stopping flag in this case.

The key bit from the segfault backtrace (thanks Brad Hubbard!) is here:

	#13 0x00007f921ee23c40 in ProtocolV2::handle_auth_done (this=0x7f91cc0945f0, payload=...) at /usr/include/c++/12/bits/shared_ptr_base.h:1665
	#14 0x00007f921ee16a29 in ProtocolV2::run_continuation (this=0x7f91cc0945f0, continuation=...) at msg/./src/msg/async/ProtocolV2.cc:54
	#15 0x00007f921edee56e in std::function<void (char*, long)>::operator()(char*, long) const (__args#1=0, __args#0=<optimized out>, this=0x7f91cc0744d8) at /usr/include/c++/12/bits/std_function.h:591
	#16 AsyncConnection::process (this=0x7f91cc074140) at msg/./src/msg/async/AsyncConnection.cc:485
	#17 0x00007f921ee3300c in EventCenter::process_events (this=0x55efc9d0a058, timeout_microseconds=<optimized out>, working_dur=0x7f921a891d88) at msg/./src/msg/async/Event.cc:465
	#18 0x00007f921ee38bf9 in operator() (__closure=<optimized out>) at msg/./src/msg/async/Stack.cc:50
	#19 std::__invoke_impl<void, NetworkStack::add_thread(Worker*)::<lambda()>&> (__f=...) at /usr/include/c++/12/bits/invoke.h:61
	#20 std::__invoke_r<void, NetworkStack::add_thread(Worker*)::<lambda()>&> (__fn=...) at /usr/include/c++/12/bits/invoke.h:111
	#21 std::_Function_handler<void(), NetworkStack::add_thread(Worker*)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/12/bits/std_function.h:290
	#22 0x00007f921e81f253 in std::execute_native_thread_routine (__p=0x55efc9e9c5f0) at ../../../../../src/libstdc++-v3/src/c++11/thread.cc:82
	#23 0x00007f921f5e8ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
	#24 0x00007f921f67a8d0 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

I originally thought this may be the issue causing [1] however that
turned out to be an issue caused by OpenSSL's use of atexit handlers.

I still think there is a bug here so I am continuing with this change.

[1] https://tracker.ceph.com/issues/59335

Fixes: https://tracker.ceph.com/issues/76017
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
2026-04-16 08:09:35 -04:00
Ilya Dryomov
e8ea7dbd30 Merge pull request #68205 from idryomov/wip-transient-policy-release-note
doc: add RBD_LOCK_MODE_EXCLUSIVE_TRANSIENT release note

Reviewed-by: Miki Patel <miki.patel132@gmail.com>
2026-04-16 11:00:58 +02:00
benhanokh
7b72f06c99 rgw/dedup: This PR extends the RGW dedup split-head feature to support objects that already have tail RADOS objects (i.e. objects larger than the head chunk size).
Previously, split-head was restricted to objects whose entire data fit in the head (≤4 MiB).
It also migrates the split-head manifest representation from the legacy explicit-objs format to the prefix+index rules-based format.

Refactored should_split_head():
Now performs a larger set of eligibility checks:
 * d_split_head flag is set
 * single-part object only
 * non-empty head
 * not a legacy manifest
 * not an Alibaba Cloud OSS AppendObject

Explicit skips for unsupported manifest types:
 — old-style explicit-objs manifests
 — OSS AppendObject manifests (detected via non-empty override_prefix)

New config option: rgw_dedup_split_obj_head:
  Default is true (split-head enabled).
  Setting to false disables split-head entirely.

Tail object lookup via manifest iterator:
  Replaces the old get_tail_ioctx() which manually constructed the tail OID via generate_split_head_tail_name().
  The new function simply calls manifest.obj_begin() and resolves the first tail object location through the standard manifest iterator.

Stats cleanup:
Removed the "Potential Dedup" stats section (small_objs_stat, dup_head_bytes, dup_head_bytes_estimate, ingress_skip_too_small_64KB*)
 which tracked 64KB–4MB objects as potential-but-skipped candidates.
 Since split-head now covers all sizes, this distinction is no longer meaningful. calc_deduped_bytes() is simplified accordingly.

Signed-off-by: benhanokh <gbenhano@redhat.com>
2026-04-16 11:24:10 +03:00
Matan Breizman
2c97f220e3 Merge pull request #68383 from amathuria/wip-amat-fix-bad-statemachine-event
crimson/osd: fix race between AllReplicasRecovered and DeferRecovery

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
2026-04-16 11:14:11 +03:00
Kefu Chai
b13c74637b Merge pull request #68154 from leiwen2025/rv64-crc32c
src/common: optimize crc32c using zbc extension for riscv64

Reviewed-by: Kefu Chai <k.chai@proxmox.com>
2026-04-16 14:55:48 +08:00
Nizamudeen A
b967e0d77c Merge pull request #68301 from rhcs-dashboard/inline-edit-emitter
mgr/dashboard: table cell inline edit emit editing state

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
2026-04-16 11:29:12 +05:30
Kefu Chai
f9c14ff857 Merge pull request #68282 from tchaikov/wip-mgr-module-neg-exit-code
mgr/crash, mgr/status: return negative errno to fix CLI exit code

Reviewed-by: Dan Mick <dmick@ibm.com>
2026-04-16 13:13:05 +08:00
Kefu Chai
c4a3fcdef2 Merge pull request #68283 from tchaikov/wip-ceph-crash-less-noisy
ceph-crash: reduce log noise from auth fallback in post_crash()

Reviewed-by: Dan Mick <dmick@ibm.com>
2026-04-16 13:11:59 +08:00
Aashish Sharma
dfd7b547c2 Merge pull request #68181 from cloudbehl/subvolume-fixes-for-double-values
Fixes for subvolume overview in grafana

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
2026-04-16 10:30:07 +05:30
Dan Mick
73af6836de Merge pull request #68403 from phlogistonjohn/jjm-codeowners-build-sig
CODEOWNERS: add a build-sig group for various build / test files
2026-04-15 20:45:49 -07:00
John Mulligan
8ecdabf5f6 CODEOWNERS: add a build-sig group for various build / test files
Add a new build-sig group that covers some of the high level tools and
scripts used in the build and CI processes. This should help PRs not
pass by without notifying people who care about these things.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2026-04-15 17:15:03 -04:00
Igor Fedotov
f3f09719de Revert "vstart: disable extblkdev plugins for file-backed OSDs"
This reverts commit 92e902ecfe.

Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
2026-04-15 21:48:26 +03:00
Igor Fedotov
990c0af596 extblkdev/fcm: do not abort on multi-device volume before we discovered it's FCM one
https://tracker.ceph.com/issues/75819

Signed-off-by: Igor Fedotov <igor.fedotov@croit.io>
2026-04-15 21:42:57 +03:00
Casey Bodley
542f17513d qa/valgrind: generalize and group MismatchedFree suppressions
combine the various MismatchedFree suppressions into unconditional ones
for each function

Signed-off-by: Casey Bodley <cbodley@redhat.com>
2026-04-15 14:38:23 -04:00
Ankush Behl
809839e5f0 Fixes for subvolume overview in grafana
- multiple values were shown in graph and single state
- Remove All selection from subvolume path

fixes: https://tracker.ceph.com/issues/75849

Signed-off-by: Ankush Behl <cloudbehl@gmail.com>
2026-04-15 19:12:07 +05:30
Casey Bodley
a67aa9b005 Merge pull request #68355 from nhoad/pretty-format-docs
rgw: Add documentation for the --pretty-format option

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2026-04-15 09:29:08 -04:00
Anthony D'Atri
adcb510311 Merge pull request #68062 from anthonyeleven/global.yaml.in
src/common/options: Modernize language in global.yaml.in
2026-04-15 09:22:37 -04:00
Guillaume Abrioux
23994a399c Merge pull request #65986 from HeinleinSupport/wip-cephadm-72696
mgr/cephadm: renames ceph_device to ceph_device_lvm
2026-04-15 15:18:26 +02:00
Patrick Donnelly
49753d2e6d Merge PR #67032 into main
* refs/pull/67032/head:
	qa: add trivial cephfs-tool bench test
	doc/cephfs: add cephfs-tool documentation
	tools/cephfs: add new cephfs-tool

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2026-04-15 09:11:34 -04:00
Nizamudeen A
18607c563d mgr/dashboard: table cell inline edit emit editing state
- Emit the editing state so that the consuming component can manipulate
that to add some extra validations

- Replace button with cds-icon-button.
- Replace submit button with tertiary instead of ghost for visibility.
- Also added a cancel button to cancel the ongoing edit

Fixes: https://tracker.ceph.com/issues/75949
Signed-off-by: Nizamudeen A <nia@redhat.com>
2026-04-15 17:58:05 +05:30
Anthony D'Atri
2abbc4ba97 Merge pull request #68322 from anthonyeleven/percent
doc/rados/configuration: Update bluestore-config-ref.rst WAL+DB sizing
2026-04-15 08:07:45 -04:00
Aishwarya Mathuria
278ace1bc4 crimson/osd: fix race between AllReplicasRecovered and DeferRecovery
Fixes a crash where AllReplicasRecovered event arrives at NotRecovering
state due to async event delivery race with DeferRecovery preemption.

The issue occurs when:
1. Recovery completes and AllReplicasRecovered is queued asynchronously
2. A higher priority operation (e.g., client I/O) triggers AsyncReserver
   to preempt recovery, posting DeferRecovery event
3. DeferRecovery is processed first, transitioning PG to NotRecovering
4. AllReplicasRecovered arrives at wrong state → crash with "bad state
   machine event" because NotRecovering doesn't handle it

The fix follows Classic OSD's approach in PrimaryLogPG::start_recovery_ops():
clear PG_STATE_RECOVERING before posting recovery completion events. This
makes the existing safety check in PeeringState::Recovering::react() work:
when DeferRecovery arrives and sees !state_test(PG_STATE_RECOVERING), it
discards itself, preventing the state transition that would cause the crash.

Fixes:https://tracker.ceph.com/issues/73314
Signed-off-by: Aishwarya Mathuria <amathuri@redhat.com>
2026-04-15 10:25:19 +00:00
kginon
a1fc00082c cephadm: fix HAProxy/RGW IPv6 failure (ip_nonlocal_bind)
Fixes: https://tracker.ceph.com/issues/56660
Signed-off-by: Kobi Ginon <kginon@redhat.com>
2026-04-15 11:07:13 +03:00
Guillaume Abrioux
4f9a9b5f2d Merge pull request #68367 from guits/fix-orch-osd-add-raw
cephadm: wait for latest osd map after ceph-volume before OSD deploy
2026-04-15 09:05:04 +02:00
Nizamudeen A
ccdb3d8adb Merge pull request #68336 from rhcs-dashboard/rm-golang-gh-prom
ceph.spec.in: replace golang github prometheus with promtool binary path

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: John Mulligan
2026-04-15 12:01:49 +05:30
Casey Bodley
460da8cfa9 Merge pull request #68298 from tchaikov/wip-rgw-inotify-ctor
rgw/posix: fix Inotify member initialization order race

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
2026-04-14 14:38:58 -04:00
Venky Shankar
f140f1f5af Merge pull request #68351 from joscollin/wip-TestCorruptedSubvolumes-fix
qa: update yaml file for TestCorruptedSubvolumes

Reviewed-by: Rishabh Dave <ridave@redhat.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
2026-04-14 23:32:22 +05:30
Patrick Donnelly
acf75b9442 Merge PR #66294 into main
* refs/pull/66294/head:
	qa: enforce centos9 for test
	qa: rename distro
	qa/suites/fs/bugs: use centos9 for squid upgrade test
	qa: remove unused variables
	qa: use centos9 for fs suites using k-testing
	qa: update fs suite to rocky10
	qa: skip dashboard install due to dependency noise
	qa: only setup nat rules during bridge creation
	qa: correct wording of comment
	qa: use nft instead iptables
	qa: use py3 builtin ipaddress module

Reviewed-by: Venky Shankar <vshankar@redhat.com>
2026-04-14 11:46:54 -04:00
Venky Shankar
9f0cc8789d Merge pull request #62351 from vshankar/wip-revert-referent-inodes
mds: revert referent inode work

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
2026-04-14 21:05:25 +05:30
Redouane Kachach
22f86c4664 Merge pull request #68034 from timqn22/add-multi-line-to-yaml-representer
python-common: multi-line for yaml

Reviewed-by: Redouane Kachach <rkachach@redhat.com>
Reviewed-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
2026-04-14 16:20:40 +02:00
Redouane Kachach
2449c68bdc Merge pull request #68239 from Kushal-deb/fix-nvme-apply-path
mgr/cephadm: create default pool for nvmeof

Reviewed-by: Redouane Kachach <rkachach@redhat.com>
2026-04-14 16:16:49 +02:00
Jos Collin
7d936833bd qa: update yaml file for TestCorruptedSubvolumes
Update yaml file to include TestCorruptedSubvolumes in qa tests.

Fixes: https://tracker.ceph.com/issues/76001
Signed-off-by: Jos Collin <jcollin@redhat.com>
2026-04-14 19:18:34 +05:30
Patrick Donnelly
d60ec8e0ac qa: remove vestiges of ceph-deploy
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
2026-04-14 09:03:58 -04:00
Patrick Donnelly
55968723d6 doc: remove references to ceph-deploy
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
2026-04-14 09:03:58 -04:00
Patrick Donnelly
aff948588a qa: add trivial cephfs-tool bench test
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
2026-04-14 08:57:33 -04:00
Patrick Donnelly
e9d49ee7ba doc/cephfs: add cephfs-tool documentation
AI-Assisted: this doc was generated from the help text / inital commit memssage
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
2026-04-14 08:48:54 -04:00
Patrick Donnelly
a6245eec07 tools/cephfs: add new cephfs-tool
This patch introduces `cephfs-tool`, a new standalone C++ utility
designed to interact directly with `libcephfs`.

While the tool is architected to support various subcommands in the
future, the initial implementation focuses on a `bench` command to
measure library performance. This allows developers and administrators
to benchmark the userspace library isolated from FUSE or Kernel client
overheads.

Key features include:
* Multi-threaded Read/Write throughput benchmarking.
* Configurable block sizes, file counts, and fsync intervals.
* Detailed statistical reporting (Mean, Std Dev, Min/Max) for throughput and IOPS.
* Support for specific CephFS user/group impersonation (UID/GID) via `ceph_mount_perms_set`.

As an example test on a "trial" sepia machine against the new LRC, I
used a command like:

    pdonnell@trial154:~$ env CEPH_ARGS="--log-to-stderr=false --log-to-file=false --log-file=/tmp/bench.log" ./cephfs-tool -c ~/ceph.conf -k ~/keyring -i scratch --filesystem scratch  bench --root-path=/pdonnell --files 256 --size=$(( 128 * 2 ** 20 )) --threads=8 --iterations 3
    Benchmark Configuration:
      Threads: 8 | Iterations: 3
      Files: 256 | Size: 134217728
      Filesystem: scratch
      Root: /pdonnell
      Subdirectory: bench_run_d942
      UID: -1
      GID: -1

    --- Iteration 1 of 3 ---
    Starting Write Phase...
      Write: 2761.97 MB/s, 21.5779 files/s (11.864s)
    Starting Read Phase...
      Read:  2684.36 MB/s, 20.9716 files/s (12.207s)

    --- Iteration 2 of 3 ---
    Starting Write Phase...
      Write: 2698.51 MB/s, 21.0821 files/s (12.143s)
    Starting Read Phase...
      Read:  2682.16 MB/s, 20.9544 files/s (12.217s)

    --- Iteration 3 of 3 ---
    Starting Write Phase...
      Write: 2720.69 MB/s, 21.2554 files/s (12.044s)
    Starting Read Phase...
      Read:  2695.18 MB/s, 21.0561 files/s (12.158s)

    *** Final Report ***

    Write Throughput Statistics (3 runs):
      Mean:    2727.06 MB/s
      Std Dev: 26.2954 MB/s
      Min:     2698.51 MB/s
      Max:     2761.97 MB/s

    Read Throughput Statistics (3 runs):
      Mean:    2687.24 MB/s
      Std Dev: 5.68904 MB/s
      Min:     2682.16 MB/s
      Max:     2695.18 MB/s

    File Creates Statistics (3 runs):
      Mean:    21.3051 files/s
      Std Dev: 0.205433 files/s
      Min:     21.0821 files/s
      Max:     21.5779 files/s

    File Reads (Opens) Statistics (3 runs):
      Mean:    20.994 files/s
      Std Dev: 0.0444456 files/s
      Min:     20.9544 files/s
      Max:     21.0561 files/s

    Cleaning up...

For a 25Gb NIC, this is just about saturating the sticker bandwidth with
a single shared mount and 8 threads. For a per-thread mount:

    pdonnell@trial154:~$ env CEPH_ARGS="--log-to-stderr=false --log-to-file=false --log-file=/tmp/bench.log" ./cephfs-tool -c ~/ceph.conf -k ~/keyring -i scratch --filesystem scratch  bench --root-path=/pdonnell --files 256 --size=$(( 128 * 2 ** 20 )) --threads=8 --iterations 3 --per-thread-mount
    Benchmark Configuration:
      Threads: 8 | Iterations: 3
      Files: 256 | Size: 134217728
      Filesystem: scratch
      Root: /pdonnell
      Subdirectory: bench_run_9d1c
      UID: -1
      GID: -1

    --- Iteration 1 of 3 ---
    Starting Write Phase...
      Write: 2691.2 MB/s, 21.025 files/s (12.176s)
    Starting Read Phase...
      Read:  2486.76 MB/s, 19.4278 files/s (13.177s)

    --- Iteration 2 of 3 ---
    Starting Write Phase...
      Write: 2688.77 MB/s, 21.006 files/s (12.187s)
    Starting Read Phase...
      Read:  2496.42 MB/s, 19.5033 files/s (13.126s)

    --- Iteration 3 of 3 ---
    Starting Write Phase...
      Write: 2692.08 MB/s, 21.0319 files/s (12.172s)
    Starting Read Phase...
      Read:  2488.27 MB/s, 19.4396 files/s (13.169s)
    *** Final Report ***

    Write Throughput Statistics (3 runs):
      Mean:    2690.68 MB/s
      Std Dev: 1.40086 MB/s
      Min:     2688.77 MB/s
      Max:     2692.08 MB/s

    Read Throughput Statistics (3 runs):
      Mean:    2490.48 MB/s
      Std Dev: 4.24374 MB/s
      Min:     2486.76 MB/s
      Max:     2496.42 MB/s

    File Creates Statistics (3 runs):
      Mean:    21.0209 files/s
      Std Dev: 0.0109442 files/s
      Min:     21.006 files/s
      Max:     21.0319 files/s

    File Reads (Opens) Statistics (3 runs):
      Mean:    19.4569 files/s
      Std Dev: 0.0331542 files/s
      Min:     19.4278 files/s
      Max:     19.5033 files/s

    Cleaning up...

Or to measure file create performance:

    pdonnell@trial154:~$ env CEPH_ARGS="--log-to-stderr=false --log-to-file=false --log-file=/tmp/bench.log" ./cephfs-tool -c ~/ceph.conf -k ~/keyring -i scratch --filesystem scratch  bench --root-path=/pdonnell --files=$(( 2 ** 16 )) --size=$(( 0 * 2 ** 20 )) --threads=8 --iterations 3
    Benchmark Configuration:
      Threads: 8 | Iterations: 3
      Files: 65536 | Size: 0
      Filesystem: scratch
      Root: /pdonnell
      Subdirectory: bench_run_d435
      UID: -1
      GID: -1

    --- Iteration 1 of 3 ---
    Starting Write Phase...
      Write: 3974.77 files/s (16.488s)
    Starting Read Phase...
      Read:  14537.7 files/s (4.508s)
    Cleaning up for next iteration...

    --- Iteration 2 of 3 ---
    Starting Write Phase...
      Write: 4167.1 files/s (15.727s)
    Starting Read Phase...
      Read:  13636.3 files/s (4.806s)
    Cleaning up for next iteration...

    --- Iteration 3 of 3 ---
    Starting Write Phase...
      Write: 3863.7 files/s (16.962s)
    Starting Read Phase...
      Read:  14972.8 files/s (4.377s)

    *** Final Report ***

    File Creates Statistics (3 runs):
      Mean:    4001.86 files/s
      Std Dev: 125.337 files/s
      Min:     3863.7 files/s
      Max:     4167.1 files/s

    File Reads (Opens) Statistics (3 runs):
      Mean:    14382.3 files/s
      Std Dev: 556.594 files/s
      Min:     13636.3 files/s
      Max:     14972.8 files/s

    Cleaning up...

Here is the current help text:

    Usage: cephfs-bench [general-options] <command> [command-options]

    Commands:
      bench      Run IO benchmark

    Allowed options:

    General Options:
      -h [ --help ]                   Produce help message
      -c [ --conf ] arg               Ceph config file path
      -i [ --id ] arg (=admin)        Client ID
      -k [ --keyring ] arg            Path to keyring file
      --filesystem arg                CephFS filesystem name to mount
      --uid arg (=-1)                 User ID to mount as
      --gid arg (=-1)                 Group ID to mount as

    Benchmark Options (used with 'bench' command):
      --threads arg (=1)              Number of threads
      --iterations arg (=1)           Number of iterations
      --files arg (=100)              Total number of files
      --size arg (=4MB)               File size (e.g. 4MB, 0 for creates only)
      --block-size arg (=4MB)         IO block size (e.g. 1MB)
      --fsync-every arg (=0)          Call fsync every N bytes
      --prefix arg (=benchmark_)      Filename prefix
      --dir-prefix arg (=bench_run_)  Directory prefix
      --root-path arg (=/)            Root path in CephFS
      --per-thread-mount              Use separate mount per thread
      --no-cleanup                    Disable cleanup of files

AI-Assisted: significant portions of this code were AI-generated through a dozens of iterative prompts.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
2026-04-14 08:48:54 -04:00
Patrick Donnelly
4ebd6f62eb Merge PR #67555 into main
* refs/pull/67555/head:
	qa/tasks/quiescer: remove racy assertion

Reviewed-by: Rishabh Dave <ridave@redhat.com>
2026-04-14 08:18:07 -04:00