* refs/pull/67566/head:
mgr/dashboard: show rados ns in 'ceph nvmeof top io'
mgr/dashboard: validate args in nvmeof top cmds
src/pybind/mgr: Add nvmeof-top tool
* refs/pull/67839/head:
Fix conflicts
mgr/dashboard: Fix make check failures
Fix unit test
mgr/dashboard: Nvmeof gateway group should account for labels
mgr/dashboard: Persist labels and hosts in service form
mgr/dashboard: Fix service form to take into account labels
mgr/dashboard: Allow moving to next when Bidirectional mode is chosen
mgr/dashboard: Fix review page showing auth details when all hosts selected
mgr/dashboard: Validate no added hosts in second step
mgr/dashboard: Encryption key not being passed in gateway group form
mgr/dashboard: Allow creating nvmeof gateway group via new flow
mgr/dashboard: fix the missing injectors for child formgroup tpl
mgr/dashboard: fix-subsystem-loading-page-issue
mgr/dashboard: fix subsystem creation issue
mgr/dashboard: Breadcrumb should allow going back to subsystem tab
mgr/dashboard: Title says "Gateways" but it displays gateway group names in NVME/TCP
mgr/dashboard: fix-add-node-issue
mgr/dashboard: fix-nvmeof-subsystem-create-firefox-next
mgr/dashboard: mgr/dashboard: Namespace size should accept GiB in NVMe/TCP
mgr/dashboard: Footer actions shift upward instead of staying pinned at modal bottom in NVMe/TCP subsystem create wizard
mgr/dashboard: fix add host API path for namespace mapping in NVMe/TCP
mgr/dashboard: Initiator add shows success but host is not added/displayed in Subsystem Initiators table
mgr/dashboard: Use illustration image for empty state table
mgr/dashboard: Fix auth logic in subsystem and remove traffic encryption columns
mgr/dashboard: Allow adding authentication to subsystem flow
mgr/dashboard: Remove tabs under subsystem
mgr/dashboard: add-reviewstep-in-subsystem
mgr/dashboard: NVme- Add namespace in subsystem resource page
mgr/dashboard: NVmeof Add listeners in subsytem and resource page.
mgr/dashboard: Nvmeof add hosts(Add Initiator) in subsystem details
mgr/dashboard: Remove tabs under subsystem
mgr/dashboard: Nvmeof edit namespace size
mgr/dashboard: create-namespace
mgr/dashboard: Fix remove host in subsystem resource page
mgr/dashboard: Add apis for add/del hosts on namespaces
mgr/dashboard: Fix nvmeof edit host key in subsystem resources page
mgr/dashboard: NVMe – Fix host,listeners namespace list display on Subsystem resource page
mgr/dashboard: Fix nvmeof namespace list and delete modal
mgr/dashboard: delete-gateway-nodes
mgr/dashboard: use gray10 theme colors
mgr/dashboard: add-gateway-nodes
mgr/dashboard: NVme-gateway-resource
mgr/dashboard: Add step two of subsystem create form
mgr/dashboard: Step three subsystem creation form
mgr/dashboard: Add step 1 for subsystem form
mgr/dashboard: NVme- Delete Subsystem
mgr/dashboard: NVme-Subsystem list
mgr/dashboard: remove trailing space from directory name
mgr/dashboard: NVMeof-Create Gatway group Form
mgr/dashboard: NVme-Delete Gateway group
'mgr/dashboard: Carbonize Block Module > NVme-Listing Gateway group
* refs/pull/68663/head:
os/bluestore: Fix collect_alerts
os/bluestore: extblkdev related health warnings
extblkdev/fcm: Replace errors with health warning
extblkdev/fcm: Cleanup
extblkdev: Fix preload
blk/extblkdev: Health warns from ExtBlkDev plugins
blk: Expand collect_alerts to allow specialization
blk,os/bluestore: do not call extblkdev::detect_device on every
extblkdev/fcm: Add plugin identification for fcm
extblkdev/fcm: Do not enable set_keepcaps by default
extblkdev/fcm: Change douts/derrs
extblkdev/fcm: Create perf counters with fcm stats
fixup warning of fcm plugin core
extblkdev/fcm: derr when FCM and no block device discard
extblkdev/fcm: Refuse to operate on multimedia lvm block devices
extblkdev/fcm: Adapt FCM plugin to RHCS9
added FCM plugin
os/bluestore: Make extblkdev missing a warning
extblkdev: Make preload one-time function
os/bluestore: Add config bluestore_use_ebd
extblkdev: Expand interface, add plugin id retrieval
Adam Kupczyk [Thu, 16 Apr 2026 09:25:19 +0000 (09:25 +0000)]
extblkdev/fcm: Replace errors with health warning
Now plugin does not assert or fail to load,
but instead raises following health warnings:
EXTBLKDEV: multivolume fcm will not work properly
EXTBLKDEV: failed accessing FCM utilization log
EXTBLKDEV: bdev_enable_discard not enabled - free space will leak
Adam Kupczyk [Tue, 14 Apr 2026 17:57:42 +0000 (17:57 +0000)]
blk: Expand collect_alerts to allow specialization
Previously we had BlockDevice::collect_alerts that had fixed
implementation.
Expanded BlockDevice::collect_alerts into virtual, so KernelDevice can
override it.
Adam Kupczyk [Thu, 25 Sep 2025 07:03:12 +0000 (03:03 -0400)]
extblkdev/fcm: Refuse to operate on multimedia lvm block devices
BlueStore is selecting were data is put to the device.
Merging 2 FCM devices together means that BlueStore will see free space
on one of the devices, but not know the other is full and asking to put
data there. It will cause -ENOSPC while free space is reported.
Adam Kupczyk [Thu, 22 Jan 2026 15:23:56 +0000 (15:23 +0000)]
os/bluestore: Add config bluestore_use_ebd
When EBD(extblkdev) plugin is in use usually it needs to present all the time.
For bluestore deployed with EBD plugin it makes it an error if bluestore tries
to mount and EBD plugin is not present.
Preload of extblkdev plugins was misplaced.
Moved loading plugins into BlueStore.
This way both OSD and tools can load plugins.
Plugins are now loaded only:
- before mkfs
- when extblkdev plugin is signalled in label meta
* refs/pull/68347/head:
nvmeofgw: propagate quorum feature to the NVMeofMonClient,
fix upgrade
code review changes
nvmeofgw: disaster set/clear command, introduced disaster-locations map,
nvmeofgw: added support to nvmeof stretched cluster:
nvmeofgw: prevent map corruption while processing beacons from deleted gws
mon: add NVMEOF_BEACON_DIFF to mon_feature_t and mon CompatSet
nvmeofgw: beacon diff implementation in the monitor and in the MonClient.
Reviewed-by: Alexander Indenbaum <aindenba@redhat.com> Reviewed-by: Patrick Donnelly <pdonnell@ibm.com> Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
* refs/pull/67321/head:
qa: set column for insertion
qa: bail sqlite3 on any error
qa: use actual sqlite3 blob instead of string
test: use json_extract instead of awkward json_tree
Patrick Donnelly [Thu, 30 Apr 2026 21:01:45 +0000 (14:01 -0700)]
Merge PR #68371 into tentacle
* refs/pull/68371/head:
qa/tasks/pykmip: archive pykmip log after server down
qa/tasks/pykmip: use OpenSSL names instead IANA
qa/tasks/pykmip: drop py2 deps
Revert "qa/rgw/crypt: disable failing kmip testing"
Patrick Donnelly [Thu, 30 Apr 2026 21:00:45 +0000 (14:00 -0700)]
Merge PR #66358 into tentacle
* refs/pull/66358/head:
rgw/auth: a forwarded CreateBucket request in case of multisite has an empty
rgw/s3: Always include x-amz-content-sha256 header in AWS v4 signatures for S3 compatibility
Patrick Donnelly [Thu, 30 Apr 2026 15:52:36 +0000 (08:52 -0700)]
Merge PR #68512 into tentacle
* refs/pull/68512/head:
mgr/dashboard: sync policy created for a bucket in Object >> Multi-site >> Sync-policy, is not reflecting under bucket's replication
Patrick Donnelly [Thu, 30 Apr 2026 15:51:59 +0000 (08:51 -0700)]
Merge PR #67840 into tentacle
* refs/pull/67840/head:
mgr/dashboard: Fix make check failures
mgr/dashboard: Round off y-axis value of area chart
mgr/dashboard: Fix padding of overview page
mgr/dashboard: Add capacity thresholds
mgr/dashboard: Fix loading states in storage overview card
mgr/dashboard: Add tootltip to storage overview
mgr/dashboard: Fixing message when prometheus is disabled in performance charts
mgr/dashboard: show miscellaneous data used
mgr/dashboard: fix consumption chart units
mgr/dashboard: rename expand-cluster to add-storage
mgr/dashboard: update onboarding screen as per design
mgr/dashboard: Fix scrubbing state
mgr/dashboard: Fix snapshot Api firing twice
mgr/dashboard: Add data resileincy panel
mgr/dashboard: Add data resileincy card
mgr/dashboard: add storage consumption card
mgr/dashboard : update telemetry notification for simple mode
mgr/dashboard:revamp on-borading screen
mgr/dashboard: Generic Performace Chart - Carbon
mgr/dashboard: Add filtering of alerts via route
mgr/dashboard: Add skeleton states for alerts card
mgr/dashboard: Fix css in alerts card
mgr/dashboard: Fix breaking layout in overview page
mgr/dashboard: Add hardware tab to health card
mgr/dashboard: Added variations of alerts card sub total layout
mgr/dashboard: Css fixes for health card and alerts card
fix for quorum in API
mgr/dashboard: Add systems tab to health card
mgr/dashboard: Add alerts card
mgr/dashboard: Add health check panel
mgr/dashboard: Add health card
mgr/dashboard: side-panel enhancements
mgr/dashboard: introduce side panel as a reusable component
mgr/dashboard: Removed Raw capacity toggle
mgr/dashboard: Added unit tests
Added qurey data
mgr/dashboard: Added tool definition tip
Added query tital and used capacity data
mgr/dashboard: Add storage card to overview page
Leonid Chernin [Tue, 17 Mar 2026 15:40:16 +0000 (17:40 +0200)]
nvmeofgw: propagate quorum feature to the NVMeofMonClient,
reverted feature bit NVMEOF_BEACON_DIFF:
-NVMeofGwMon adds a quorum_features indication to the MonClient map.
-MonClient initially sends beacons without applying the BEACON_DIFF logic.
-MonClient begins applying the BEACON_DIFF logic only when the BEACON_DIFF bit
is set in the quorum_features field of the NVMeoF monitor map.
-added mon commands:
nvme-gw set beacon-diff disable
nvme-gw set beacon-diff enable
-performed changes in encode/decode of the BEACON_DIFF feature
-reverted NVMEOF_BEACON_DIFF bit
Leonid Chernin [Thu, 23 Oct 2025 05:48:24 +0000 (08:48 +0300)]
nvmeofgw: added support to nvmeof stretched cluster:
GW commands added : set location and set admin state enable/disable
added start-failback <location> command.
failover logic is impacted by GW location
implement GW admin commands enable/disable
added map for location-failback-in-progress
failback between locations happens only by monitor command
implemented new ana-group relocation process used
when inter-location failback command sent
added upgrade rules
Leonid Chernin [Mon, 8 Dec 2025 20:54:44 +0000 (22:54 +0200)]
nvmeofgw: prevent map corruption while processing beacons from deleted gws
Fix race issue of map corruption when deleted gw sends beacons
but this gw data was removed from pending map and still exists in map.
Process beacons only if GW's data exists in both maps:
main-map and pending-map, otherwise just ignore beacons.
Samuel Just [Thu, 6 Nov 2025 23:54:50 +0000 (23:54 +0000)]
mon: add NVMEOF_BEACON_DIFF to mon_feature_t and mon CompatSet
NOPE NOPE
In order for the client to safely send BEACON_DIFF messages, it
needs to be the case that the leader at the time of receipt will
support BEACON_DIFF.
Simply using the connection features for the MonClient's target mon is
insufficient, because it might be a peon. If the peon supports
BEACON_DIFF and the leader does not the leader will either crash or
interpret it as a full BEACON. Neither outcome is acceptable.
Instead, we need to wire up a feature bit to the MonMap mon_feature_t
members and the CompatSet.
Adding FEATURE_BEACON_DIFF to ceph::features::mon get_supported()
and get_persistent() ensures that once all monitors in the quorum
support it, MonMap::get_required_features() will include it.
See Elector::propose_to_peers, Monitor::(win|lose)_election,
MonmapMonitor::apply_mon_features.
Once FEATURE_BEACON_DIFF is present in MonMap::get_required_features():
- Monitor::apply_monmap_to_compatset_features() will prevent
downgrades of the monitors by updating the CompatSet to include
CEPH_MON_FEATURE_INCOMPAT_NVMEOF_BEACON_DIFF
- Monitor::calc_quorum_requirements() will set
Monitor::required_features to require the NVMEOF_BEACON_DIFF
for any monitor peers.
- MonClient::get_monmap_required_features() will eventually include
ceph::features::mon::FEATURE_NVMEOF_BEACON_DIFF.
Leonid Chernin [Mon, 15 Sep 2025 11:04:04 +0000 (14:04 +0300)]
nvmeofgw: beacon diff implementation in the monitor and in the MonClient.
-monclient encodes subsystems by beacon-diff rules if BEACON_DIFF
bit is enabled by quorum
-monitor processes beacons by beacon-diff new schema
-monitor detects sequence out of order(ooo) condition and handles it
-in case ooo detected monitor send ack to the gw with the expected correct sequence
-monitor skips failovers for some interval when ooo detected
-monitor ignores all becons with incorrect sequences until gw sends expected one
-coding upgrade rules
Signed-off-by: Leonid Chernin <leonidc@il.ibm.com> Fixes: https://tracker.ceph.com/issues/72394
(cherry picked from commit 3555a28e45c5b44289f12abe2fc843e21c7ebf87)
Conflicts:
src/mon/NVMeofGwMon.h
check_beacon_timeout() was in tentacle, and in main, but wasn't a part of this commit.
Conflict resolution - this should be there because it is required for fast failover
src/test/CMakeLists.txt
the problem was that there is an empty line at the end of the file in main, but not in tentacle