]> git.apps.os.sepia.ceph.com Git - ceph.git/log
ceph.git
4 months agotools/cephfs-data-scan: Recover referent_inode list
Kotresh HR [Thu, 27 Feb 2025 18:44:18 +0000 (00:14 +0530)]
tools/cephfs-data-scan: Recover referent_inode list

The referent_inode list on the primary inode needs to
be built on recovery. This PR adds the cability to the
'scan_links' sub command of the cephfs-data-scan tool
for the same.

Fixes: https://tracker.ceph.com/issues/69338
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agotools/cephfs-data-scan: Recover referent hardlink - build dentry
Kotresh HR [Thu, 27 Feb 2025 18:08:51 +0000 (23:38 +0530)]
tools/cephfs-data-scan: Recover referent hardlink - build dentry

The 'remote_inode' xattr is stored on the referent inode in
data pool. This patch uses this xattr to build the hardlink
dentry as part of the sub command 'scan_inodes' of the
cephfs-data-scan.

Fixes: https://tracker.ceph.com/issues/69338
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Referent hardlink Recovery - Store remote_inode
Kotresh HR [Thu, 27 Feb 2025 17:42:07 +0000 (23:12 +0530)]
mds: Referent hardlink Recovery - Store remote_inode

Store the remote_inode/real inode as an xattr
on the referent inode in the data pool.

Fixes: https://tracker.ceph.com/issues/69338
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Fix straydn race between unlink/rename linkmerge
Kotresh HR [Thu, 27 Feb 2025 14:28:24 +0000 (19:58 +0530)]
mds: Fix straydn race between unlink/rename linkmerge

Handle race between unlink of secondary hardlink (say hl_file1) and
linkmerge rename, triggered by unlink of primary (say file1) on to
the same secondary hardlink (hl_file1).
           1. ln file1 hl_file1
           2. unlink hl_file1
           3. prepares straydn for referent inode
           4. wait for the locks

   unlink file1, triggers linkmerge rename
   rename(hl_file1, primary_stray) ---> referent straydn converted to primary

           5. On retry, it find itself as primary,
              needs to prepare straydn for primary.
              so clean up the earlier referent straydn

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/rename: Handle referent inode rollback
Kotresh HR [Wed, 26 Feb 2025 12:27:32 +0000 (17:57 +0530)]
mds/rename: Handle referent inode rollback

If the destination dentry exists and is referent
remote, then the rollback should take care of
restoring the referent inode and the add back
the referent inode number to the referent_inode
list of the primary/real inode. This patch takes
care of the same.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/rename: Handle source dentry being referent remote
Kotresh HR [Wed, 26 Feb 2025 11:06:45 +0000 (16:36 +0530)]
mds/rename: Handle source dentry being referent remote

This code handles the rename case where the source
dentry is referent remote. It's very similar to
source dentry being primary. In multi-mds case,
this involves exporting/importing the source referent
inode based on the auth of the srcdnl and destdnl.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/rename: Handle existing destdn referent remote
Kotresh HR [Wed, 26 Feb 2025 08:41:34 +0000 (14:11 +0530)]
mds/rename: Handle existing destdn referent remote

This can also happen with out the linkmerge case.
A different file can be renamed to the existing
referent remote dentry. This patch handles the same.
Also, as part of it, it removes the corresponding
referent inode from the list of primary/real inode.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/rename: Handle referent remote linkmerge case
Kotresh HR [Tue, 4 Mar 2025 03:40:53 +0000 (09:10 +0530)]
mds/rename: Handle referent remote linkmerge case

For a file having hardlinks, when the primary file is
removed first before the secondary, stray reintegration
makes any secondary link available in the cache to be
primary. This is referred as linkmerge.

When the linkmerge happens, the referent inode of the
secondary needs to be removed otherwise it causes the
referent inode object leak in the data pool. This PR
handles the linkmerge scenario and removed the referent
inode of the secondary during the linkmerge.

Also, this patch does the following.
  - removes the corresponding referent inode from the
    referent_inodes list of primary/real inode
  - adds is_referent_remote() check in required places
    for linkmerge in the rename path.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomulti-mds/unlink: Handle rollback of referent_inodes list
Kotresh HR [Tue, 25 Feb 2025 12:31:34 +0000 (18:01 +0530)]
multi-mds/unlink: Handle rollback of referent_inodes list

The referent_inodes list needs to be rolled back if the
unlink operation involving multi-mds fails due to mds
going down. This patch takes care of the same.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomulti-mds/unlink: Referent inode - reverse link mgmt
Kotresh HR [Tue, 25 Feb 2025 12:27:41 +0000 (17:57 +0530)]
multi-mds/unlink: Referent inode - reverse link mgmt

On unlink of the secondary hardlink with referent
inode, remove the referent inode from the referent_inodes
list of the primary/real inode. This patch handles the
multi-mds scenario where the auth of the primary/real
inode is different from the dentry auth of the secondary
hardlink (also the referent inode auth)

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomulti-mds/unlink: Unlink referent inode on dentry replicas
Kotresh HR [Tue, 25 Feb 2025 11:23:39 +0000 (16:53 +0530)]
multi-mds/unlink: Unlink referent inode on dentry replicas

If the dentry being deleted is a secondary hardlink with
referent inode and is replicated, the dentry replicas mdses
gets notified to unlink the inode. The referent inode
needs to be unlinked in this case. This patch takes care
of handling the same in 'handle_dentry_unlink'.

Also, the straydn is created with remote referent to
remove the referent inode. The straydn needs to be
sent to straydn replicas and dentry replicas of hardlink
which gets handled in 'handle_dentry_unlink'. This patch
contains this change as well.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomulti-mds/unlink: Remove referent inode on unlink
Kotresh HR [Tue, 25 Feb 2025 10:52:07 +0000 (16:22 +0530)]
multi-mds/unlink: Remove referent inode on unlink

On the unlink of the secondary hardlink with the referent
inode, remove the referent inode. This patch takes
care of multi-mds scenario where the primary/real
inode auth is a different mds than the secondary dentry
auth (also the referent inode auth).

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/unlink: Referent inode - reverse link management
Kotresh HR [Tue, 25 Feb 2025 08:05:56 +0000 (13:35 +0530)]
mds/unlink: Referent inode - reverse link management

Remove referent inode from the referent_inodes
list on unlink of secondary hardlink file with
referent inode.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/unlink: Remove referent inode on unlink
Kotresh HR [Tue, 25 Feb 2025 07:36:23 +0000 (13:06 +0530)]
mds/unlink: Remove referent inode on unlink

The referent inode needs to be removed as part
of unlink operation on the secondary hardlink.
So prepare a straydn for the referent inode
and remove it. This patch takes care of single
mds

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomultimds: Consistent view of referent inode list
Kotresh HR [Mon, 24 Feb 2025 21:22:42 +0000 (02:52 +0530)]
multimds: Consistent view of referent inode list

Encode/Decode referent inode list with CEPH_LOCK_ILINK
lock along with ctime and nlink. This solves the consistent
view of the referent inode list to all it's inode replica mdses.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomulti-mds/link: Handle rollback for referent_inodes list
Kotresh HR [Mon, 24 Feb 2025 21:02:27 +0000 (02:32 +0530)]
multi-mds/link: Handle rollback for referent_inodes list

The referent inode added to the list on the primary/real
inode upon hardlink creation needs to rolled back properly
on failure. This patch takes care of the same.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomulti-mds/link: Reverse link primary inode to hardlink
Kotresh HR [Mon, 24 Feb 2025 10:32:36 +0000 (16:02 +0530)]
multi-mds/link: Reverse link primary inode to hardlink

Reverse link primary/real inode to the hardlink using
the referent inode. This patch takes care of link with
multiple active mds link. So the primary inode would
be auth on one mds and the new hardlink dentry being
created would be auth on different mds.

This is done as below.

 1. Primary inode (CInode) maintains the referent_inodes list
 2. Upon referent inode creation on auth mds of dentry being
    created, the referent inode number is sent to auth mds of
    the primary/real inode using MMDSPeerRequest::OP_LINKPREP.
    The auth mds of primary/real inode adds it to the
    referent_inodes list

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomulti-mds/link: Send referent inode to dentry_replicas
Kotresh HR [Mon, 24 Feb 2025 11:07:05 +0000 (16:37 +0530)]
multi-mds/link: Send referent inode to dentry_replicas

On hardlink creation with multiple mdses, the
hardlink dentry being created could already exist.
In such cases, the change in inode is notified to
dentry replicas using MDCache::send_dentry_link.
If it's a referent remote, send the referent inode
to the dentry replicas and link it correctly.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomulti-mds/link: Create referent inode and store backtrace
Kotresh HR [Mon, 24 Feb 2025 08:12:44 +0000 (13:42 +0530)]
multi-mds/link: Create referent inode and store backtrace

On hardlink creation, create a referent inode (CInode)
and store backtrace for the hardlink. This patch
takes care of multiple active mds. So the primary inode
would be auth on one mds and the new hardlink dentry
being created would be auth on different mds.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/readdir: Handle referent inode
Kotresh HR [Mon, 24 Feb 2025 08:15:49 +0000 (13:45 +0530)]
mds/readdir: Handle referent inode

If the linkage is referent remote, link it
as referent remote.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/link: Reverse link primary inode to hardlink
Kotresh HR [Mon, 24 Feb 2025 05:54:19 +0000 (11:24 +0530)]
mds/link: Reverse link primary inode to hardlink

Reverse link primary/real inode to the hardlink using
the referent inode. This patch takes care of single
mds link. This is done as below.

 1. Primary inode (CInode) maintains the referent_inodes list
 2. Upon referent inode creation, the same is added the
    referent_inodes list on the primary/real inode.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/link: Create referent inode and store backtrace
Kotresh HR [Thu, 20 Feb 2025 07:56:30 +0000 (13:26 +0530)]
mds/link: Create referent inode and store backtrace

On hardlink creation, create a referent inode (CInode)
and store backtrace for the hardlink. This patch
takes care of single mds.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/mdcache: Handle referent inode on discover
Kotresh HR [Fri, 21 Feb 2025 20:55:26 +0000 (02:25 +0530)]
mds/mdcache: Handle referent inode on discover

The referent remote dentry needs to be properly
encoded and decoded along with inode during discover.
This patch ensures the same.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/rejoin: Don't fetch the dir is already complete during rejoin
Kotresh HR [Fri, 21 Feb 2025 13:48:57 +0000 (19:18 +0530)]
mds/rejoin: Don't fetch the dir is already complete during rejoin

In MDCache::open_undef_inodes_dirfrags, it can so happen that
the same dir is added twice to fetch queue causing it to fetch
twice and hit the assert that dir is not complete for the
second fetch. So don't fetch if the dir is complete.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/rejoin: Handle referent inode on MDSCache rejoin
Kotresh HR [Fri, 21 Feb 2025 12:34:03 +0000 (18:04 +0530)]
mds/rejoin: Handle referent inode on MDSCache rejoin

The involves broadly following changes.

1. Add 'referent_ino' in the struct 'dn_strong' and required
   encoding/decoding of the same. Noticed that the
   MMDSCacheRejoin message actually isn't versioned yet.
   There is a tracker [1] open for it. For now, CEPH_MDS_PROTOCOL
   is bumped up as usual.

2. The following functions needs a change to construct the
   in-memory referent inode from the inode number.

    MDCache::rejoin_walk
      - add_strong_dentry, pass referent inode number to build dn_strong
    MDCache::handle_cache_rejoin_strong
      - Construct referent inode from inode number if not found in memory and add_remote_dentry
    MDCache::handle_cache_rejoin_ack
      - Bad linkage check!, construct referent inode
    MDCache::rejoin_send_acks
      - add_strong_dentry, pass referent inode number to build dn_strong
    MDCache::handle_cache_rejoin_weak
      - add_strong_dentry, pass referent inode number as 0 to build dn_strong as it's weak rejoin

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

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/migration: Handle referent inode during subtree migration
Kotresh HR [Thu, 20 Feb 2025 19:59:48 +0000 (01:29 +0530)]
mds/migration: Handle referent inode during subtree migration

The referent inode should be considered while migrating
the subtree. This patch takes care of migrating the
referent inode.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Handle referent inode while trimming the dentry
Kotresh HR [Thu, 20 Feb 2025 19:11:46 +0000 (00:41 +0530)]
mds: Handle referent inode while trimming the dentry

The referent inode needs to be removed while trimming
the dentry correctly. This patch handles the same in
the following functions.

MDCache::trim_dentry
MDCache::trim_non_auth
MDCache::trim_non_auth_subtree

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Handle referent remote similar to remote
Kotresh HR [Thu, 20 Feb 2025 11:20:31 +0000 (16:50 +0530)]
mds: Handle referent remote similar to remote

In multiple places in the code, the referent remote
needs to be handled similar to remote e.g rstats and
dirfrags check etc.

This patch adds the check in all the places so the
existing functionality doesn't break.

The changes are done in the following functions.

CDir::encode_lock_state
CDir::check_rstats
CDir::adjust_dentry_lru
CDir::steal_dentry
CDir::verify_fragstat
ScrubStack::scrub_dirfrag
Migrator::maybe_split_export
Server::reply_client_request
Server::build_snap_diff
MDCache::journal_cow_dentry
MDCache::path_traverse
MDCache::get_dentry_inode
MDCache::_open_remote_dentry_finish
MDCache::repair_dirfrag_stats_work

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Log referent_inodes list with CInode
Kotresh HR [Thu, 20 Feb 2025 11:01:42 +0000 (16:31 +0530)]
mds: Log referent_inodes list with CInode

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Log and dump referent remote cdentry
Kotresh HR [Thu, 20 Feb 2025 10:37:07 +0000 (16:07 +0530)]
mds: Log and dump referent remote cdentry

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/journal: Replay referent remote dentry
Kotresh HR [Wed, 19 Feb 2025 19:12:57 +0000 (00:42 +0530)]
mds/journal: Replay referent remote dentry

Add capability to EMetaBlob::replay to replay
the referent remote dentry journal. The replay
would take care of both remote dentry and
referent remote dentry.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds/journal: Journal referent remote dentry
Kotresh HR [Wed, 19 Feb 2025 18:48:12 +0000 (00:18 +0530)]
mds/journal: Journal referent remote dentry

Add machinery to journal the referent remote dentry.
The call to metablob's add_remote_dentry is just
adding remote dentry and not referent remote dentry
yet. This will be fixed as part of operations like
link, unlink, rename which makes use of referent
inodes.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Make referent inodes a optional feature
Kotresh HR [Wed, 19 Feb 2025 16:44:30 +0000 (22:14 +0530)]
mds: Make referent inodes a optional feature

Hardlink referent inode plumbing work continues.
Add a fs option 'allow_referent_inodes'. Enabling the option,
allows the creation of referent inodes for the hardlinks
to store backtrace and viceversa. The option is disabled
by default so that it doesn't affect existing filesystems.

The option is introduced to handle upgrade as there is no
easy way to trace all the hardlinks of a file on existing
file systems to create referent inodes and update backtrace
online. So the feature is enabled only on new filesystems

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Load referent inode from disk
Kotresh HR [Tue, 18 Feb 2025 18:57:48 +0000 (00:27 +0530)]
mds: Load referent inode from disk

Hardlink referent inode plumbing work continues.
This patch adds the capability of loading the
referent inode from disk into the mdcache.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Commit referent inode to disk
Kotresh HR [Tue, 18 Feb 2025 18:49:14 +0000 (00:19 +0530)]
mds: Commit referent inode to disk

Hardlink referent inode plumbing work continues.
This patch adds the capability to commit the
referent inode created (would be part of hardlink
operation) to the disk.

The referent inode is marked with 'r'. If the
recovery tools recover the referent inode,
it's marked with 'R'

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Store list of hardlinks on the inode of primary link
Kotresh HR [Tue, 4 Mar 2025 06:19:46 +0000 (11:49 +0530)]
mds: Store list of hardlinks on the inode of primary link

Hardlink referent inode plumbing continues. In order to
solve the snapshot hardlink lookup problem i.e., to be
able to identify all the hardlinks from a given file,
we need to maintain the list of referent inodes
associated with hardlink on the primary link. Now we
have two way link between primary link and corresponding
hardlink i.e., the hardlink points the primary link and
primary link points to all the hardlinks.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Store remote inode number in referent inode
Kotresh HR [Tue, 4 Mar 2025 03:31:57 +0000 (09:01 +0530)]
mds: Store remote inode number in referent inode

Hardlink referent inode plumbing continues.
The remote inode information contains the following.
  1. remote_ino - remote inode number
  2. d_type
  3. alternate_name

With the introduction of the referent inode as a full
blown CInode for the hardlink, these information needs
to be part of the inode. Hence add 'remote_ino' field
to the inode. The exisiting 'd_type' and 'alternate_name'
fields could be used.

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agomds: Hardlink referent inode plumbing work
Kotresh HR [Tue, 18 Feb 2025 11:17:53 +0000 (16:47 +0530)]
mds: Hardlink referent inode plumbing work

The linkage_t struct changes:
  - Add referent_ino(inodeno_t) and referent_inode(CInode *) to the
    linkage_t. These two fields becomes the core and identifies the
    linkage as referent remote.
  - Add 'is_referent_remote()' to check if it's referent remote
    and modify 'is_remote()', 'is_null()' check accordingly.
  - Add functions to access these fields.

Add the following new functions to link referent inode.
  1. CDentry::push_projected_linkage - with referent_inode
  2. CDir::link_null_referent_inode
  3. CDir::link_referent_inode

Modify the following existing functions to link/unlink referent inode
  1. CDentry::link_remote
  2. CDentry::unlink_remote
  3. CDentry::pop_projected_linakge
  4. CDentry::CDentry
  5. CDir::add_remote_dentry
  6. CDir::link_inode_work
  7. CDir::unlink_inode_work

Fixes: https://tracker.ceph.com/issues/54205
Signed-off-by: Kotresh HR <khiremat@redhat.com>
4 months agoMerge pull request #61433 from smanjara/wip-fix-tenant-replication
J. Eric Ivancich [Mon, 3 Mar 2025 19:02:19 +0000 (14:02 -0500)]
Merge pull request #61433 from smanjara/wip-fix-tenant-replication

rgw/multisite: fix forwarded requests for tenanted buckets

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 months agoMerge pull request #61421 from clwluvw/replication-conf
J. Eric Ivancich [Mon, 3 Mar 2025 19:01:12 +0000 (14:01 -0500)]
Merge pull request #61421 from clwluvw/replication-conf

rgw: handle destination bucket as an ARN in ReplicationConfiguration

Reviewed-by: Adam Emerson <aemerson@redhat.com>
4 months agoMerge pull request #60990 from umesh-mv/wip-umeshmv-67933
J. Eric Ivancich [Mon, 3 Mar 2025 18:58:07 +0000 (13:58 -0500)]
Merge pull request #60990 from umesh-mv/wip-umeshmv-67933

rgw/rgw_zone : fixing inline-data default value

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 months agoMerge pull request #61650 from cbodley/wip-rgw-delete-full-try
Casey Bodley [Mon, 3 Mar 2025 17:03:09 +0000 (12:03 -0500)]
Merge pull request #61650 from cbodley/wip-rgw-delete-full-try

rgw/rados: enable object deletion at rados pool quota

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Adam Emerson <aemerson@redhat.com>
4 months agoMerge PR #61321 into main
Patrick Donnelly [Mon, 3 Mar 2025 13:34:58 +0000 (08:34 -0500)]
Merge PR #61321 into main

* refs/pull/61321/head:
qa: update require-osd-release to tentacle
tools/monmaptool: bump new cluster version to X
doc/dev/release-checklists: remove ceph-container task
script/ceph-release-notes: add squid/tentacle
doc/dev/release-checklists:: mark task complete
doc/dev/release-checklist: add nightlies task
doc/dev/release-checklists: update ceph-build for tentacle
doc/dev/release-checklists: note redmine is done
qa: update to tentacle
doc/dev/release-checklist: question telemetry tentacle test
osd/OSDMap: update to tentacle
qa/workunits/cephtool/test: update to tentacle
mon/OSDMonitor: update to tentacle
common/options/global.yaml.in: update for tentacle
mon/MgrMonitor: update for tentacle
qa/standalone/mon/misc: update for tentacle
doc: update compatset for tentacle
doc: no deprecated features
include/ceph_features: add SERVER_TENTACLE feature bit
cephadm,ceph-volume: update to tentacle
doc/dev/release-checklist: add backport-create-issue
script: update backport-resolve-issue to tentacle
*: add constants and release names
ceph_release: update to tentacle
librbd: bump version
CMakeLists.txt: update VERSION
doc: remove obsolete checklist item
doc: reset for tentacle

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Bill Scales <bill_scales@uk.ibm.com>
Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
4 months agoMerge PR #60746 into main v20.0.0
Patrick Donnelly [Mon, 3 Mar 2025 13:31:36 +0000 (08:31 -0500)]
Merge PR #60746 into main

* refs/pull/60746/head:
client: skip unexpected command replies
mgr: indicate map message is acked instead of unhandled
osdc/Objecter: convert to ms_dispatch2 for ack
client: indicate maps are acked not processed
msg: add alternate statuses for ms_dispatch2 handling
tools/cephfs_mirror: do not process maps with fast dispatch
doc: add docs for volumes interface for charmap
qa: add tests for subvolume charmap settings
pybind/mgr/volumes: wire up charmap for subvol/subvolgroup
pybind/mgr: send MDS commands through cephfs client
pybind/cephfs: wire up mds_command2
mgr: add module method to send notifications
libcephfs: add mds_command2 for asynchronous commands
mgr: excise CephFS client from mgr C++ base
mgr: use std namespace
doc: add docs for CephFS charmap config
qa: add charmap tests
qa: add helpful exceptions for attr changes
qa: ignore libicu leaks
client: add wrappings for charmap manipuluation of dentry names
client: add dir_result_t::dentry::print
win32: add libicu Windows build
CMakeLists: add boost::locale dependency for client
install-deps: unconditionally install boost libraries
test/libcephfs: update root operation return values
client: refactor all path traversals through path_walk
test/libcephfs: test parallel creates
test/libcephfs: add test for lookup failure after readdir
client: init dentry shared_gen with invalid value
client: add _lookup debugging
client: remove redundant check
client: dump InodeStat from mds
mds: encode optmetadata in InodeStat sent to clients
mds: check client features for charmap
mds: add client feature bit for charmap
mds: wire up vxattr for changing charmap
mds: inherit charmap on mkdir
mds,include: add charmap optmetadata
mds,include: add inode_t optional metadata
client: hide alternate_name from API
client: move alternate_name once
client: optimize alternate_name passing to helper
client: relocate definition
client: print dentry with alternate_name on dump
client: move inode dump to print method
mds: add debugging for encoding lease stat
mds: make encode_lease a proper method
mds: add fscrypt metadata for inode stat size
client: use DentryRef for ref counting in MetaRequest
client: add DentryRef
client: add helper for determining if a perm check is necessary
client: cache client_permissions config
client: add debugging for conf changes
client: sort configs
client/UserPerm: add print method
client: note mount parameters in debug log
client: print stat mode in octal
common: add missing op string
include/filepath: add empty path check

Reviewed-by: Venky Shankar <vshankar@redhat.com>
4 months agoMerge pull request #61735 from Matan-B/wip-matanb-crimson-seastar-feb-25
Matan Breizman [Mon, 3 Mar 2025 12:55:00 +0000 (14:55 +0200)]
Merge pull request #61735 from Matan-B/wip-matanb-crimson-seastar-feb-25

seastar: bump up seastar submodule

Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
4 months agoMerge pull request #61983 from adk3798/cephadm-fix-apply-same-nvmeof-service
Adam King [Mon, 3 Mar 2025 12:38:49 +0000 (07:38 -0500)]
Merge pull request #61983 from adk3798/cephadm-fix-apply-same-nvmeof-service

mgr/cephadm: don't block matching group for identical nvmeof services

Reviewed-by: Aviv Caro <133020857+caroav@users.noreply.github.com>
4 months agotest/crimson/seastore/CMakeLists: [arm64] disable omap manager 61735/head
Matan Breizman [Mon, 3 Mar 2025 09:31:56 +0000 (09:31 +0000)]
test/crimson/seastore/CMakeLists: [arm64] disable omap manager

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
4 months agocrimson: bump up seastar fixes
Matan Breizman [Sun, 9 Feb 2025 14:50:53 +0000 (14:50 +0000)]
crimson: bump up seastar fixes

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
4 months agoseastar: bump up seastar submodule
Matan Breizman [Sun, 9 Feb 2025 10:55:08 +0000 (10:55 +0000)]
seastar: bump up seastar submodule

Update branch to wip-matanb-seastar-feb-25

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
4 months agoMerge pull request #61494 from mohit84/seastar_configure
Matan Breizman [Mon, 3 Mar 2025 08:15:59 +0000 (10:15 +0200)]
Merge pull request #61494 from mohit84/seastar_configure

crimson: Provide an options to configure several seastar parameters

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
4 months agoMerge pull request #61874 from rhcs-dashboard/edit-storage-class
Nizamudeen A [Mon, 3 Mar 2025 05:23:42 +0000 (10:53 +0530)]
Merge pull request #61874 from rhcs-dashboard/edit-storage-class

mgr/dashboard: RGW - Edit Storage Class

Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Afreen Misbah <afreen@ibm.com>
Reviewed-by: Ankush Behl <cloudbehl@gmail.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
4 months agoMerge pull request #61866 from xxhdx1985126/wip-seastore-omap-binary-search
Yingxin Cheng [Mon, 3 Mar 2025 02:25:32 +0000 (10:25 +0800)]
Merge pull request #61866 from xxhdx1985126/wip-seastore-omap-binary-search

crimson/os/seastore/omap_manager: do binary search on omap nodes

Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
4 months agoMerge pull request #62076 from anthonyeleven/clarify-stretch-device-class
Zac Dover [Sun, 2 Mar 2025 20:51:34 +0000 (06:51 +1000)]
Merge pull request #62076 from anthonyeleven/clarify-stretch-device-class

doc/rados/operations: Clarify stretch mode vs device class

Reviewed-by: Zac Dover <zac.dover@proton.me>
4 months agoMerge pull request #61643 from rhcs-dashboard/nvmeof-img-trash
afreen23 [Sun, 2 Mar 2025 20:05:45 +0000 (01:35 +0530)]
Merge pull request #61643 from rhcs-dashboard/nvmeof-img-trash

mgr/dashboard: nvmeof trash rbd image on namespace rm

Reviewed-by: Afreen Misbah <afreen@ibm.com>
4 months agodoc/rados/operations: Clarify stretch mode vs device class 62076/head
Anthony D'Atri [Sun, 2 Mar 2025 15:43:18 +0000 (10:43 -0500)]
doc/rados/operations: Clarify stretch mode vs device class

Signed-off-by: Anthony D'Atri <anthonyeleven@users.noreply.github.com>
4 months agoMerge pull request #62073 from Matan-B/wip-matanb-arm64-gcc-build
Matan Breizman [Sun, 2 Mar 2025 12:58:00 +0000 (14:58 +0200)]
Merge pull request #62073 from Matan-B/wip-matanb-arm64-gcc-build

cmake/modules/BuildISAL.cmake: set no-integrated-as on clang only

Reviewed-by: Ronen Friedman <rfriedma@redhat.com>
4 months agocmake/modules/BuildISAL.cmake: set no-integrated-as on clang only 62073/head
Matan Breizman [Sun, 2 Mar 2025 08:42:45 +0000 (08:42 +0000)]
cmake/modules/BuildISAL.cmake: set no-integrated-as on clang only

this option is only relevant to clang, gcc will fail with:
```
CMake Error at ceph/build/src/erasure-code/isa/isal_ext-prefix/src/isal_ext-stamp/isal_ext-configure-Debug-impl.cmake:19 (message):
  Command failed (77):

   'env' 'CC=/usr/bin/gcc-11' './configure' '--prefix=ceph/build/src/isa-l/install' '--with-pic' '--enable-static' '--disable-shared' 'CFLAGS=-no-integrated-as'
```

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
4 months agoMerge pull request #61441 from ivancich/wip-dynamic-resharding-min-shards
J. Eric Ivancich [Sat, 1 Mar 2025 15:41:01 +0000 (10:41 -0500)]
Merge pull request #61441 from ivancich/wip-dynamic-resharding-min-shards

rgw: allow per-bucket minimum number of shards

Reviewed-by: Casey Bodley <cbodley@redhat.com>
4 months agoMerge pull request #62010 from ronen-fr/wip-rf-monotime
Ronen Friedman [Sat, 1 Mar 2025 11:07:09 +0000 (13:07 +0200)]
Merge pull request #62010 from ronen-fr/wip-rf-monotime

osd/scrub: tolerate non-monotonic scrub queue cutoff updates

Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 months agoMerge pull request #61541 from rishabh-d-dave/mgr-vol-comment
Rishabh Dave [Sat, 1 Mar 2025 06:51:01 +0000 (12:21 +0530)]
Merge pull request #61541 from rishabh-d-dave/mgr-vol-comment

mgr/vol: add a helpful comment in async_job.py

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 months agoMerge pull request #61993 from ronen-fr/wip-rf-nbq-sign
Ronen Friedman [Sat, 1 Mar 2025 05:51:01 +0000 (07:51 +0200)]
Merge pull request #61993 from ronen-fr/wip-rf-nbq-sign

test/test_not_before_queue: fix Signed-vs-Unsigned warnings

Reviewed-by: Matan Breizman <mbreizma@redhat.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
4 months agodoc/rgw: update dynamic resharding docs to reflect recent changes 61441/head
J. Eric Ivancich [Fri, 28 Feb 2025 19:22:53 +0000 (14:22 -0500)]
doc/rgw: update dynamic resharding docs to reflect recent changes

The documentation on dynamic resharding is updated to include a) a
description of reducing the number of shards, b) related configuration
options, and c) the radosgw-admin sub-command to set a minimum number
of shards for a specific bucket.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
4 months agorgw: add radosgw-admin sub-command to set-min-shards for a bucket
J. Eric Ivancich [Tue, 4 Feb 2025 03:01:47 +0000 (22:01 -0500)]
rgw: add radosgw-admin sub-command to set-min-shards for a bucket

There is now a mechansim to set the minimum number of shards when a
bucket is created, and dynamic resharding adheres to that
setting. This adds the ability to modify that minimum shard count that
exists within the bucket layout of the bucket instance
object. Example:

    radosgw-admin bucket set-min-shards --bucket=<bucket> \
        --num-shards=<value>

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
4 months agorgw: allow per-bucket minimum number of shards
J. Eric Ivancich [Wed, 15 Jan 2025 16:26:59 +0000 (11:26 -0500)]
rgw: allow per-bucket minimum number of shards

Dynamic resharding can now reduce the number of shards. The code
currently has a hard-coded value of 11 as the minimum number of shards
dynamic resharding can reshard to. There may be cases where the user
wants to set an alternate minimum, such as when they have a sense of
how many objects the bucket will eventually hold.

This PR builds off of https://github.com/ceph/ceph/pull/61269 .

That PR allows the user to specify an initial number of shards during
bucket creation. This PR then takes that number to be the minimum and
saves it in the layout field of the bucket instance object
(RGWBucketInfo).

When dynamic resharding is triggered, it will use that stored value as
a minimum number of shards for resharing.

Signed-off-by: J. Eric Ivancich <ivancich@redhat.com>
4 months agoMerge pull request #62021 from dmick/container-rmi-tags
Dan Mick [Fri, 28 Feb 2025 19:31:13 +0000 (11:31 -0800)]
Merge pull request #62021 from dmick/container-rmi-tags

container/build.sh: remove local container images

4 months agoMerge pull request #61946 from cbodley/wip-70013
Casey Bodley [Fri, 28 Feb 2025 16:00:02 +0000 (11:00 -0500)]
Merge pull request #61946 from cbodley/wip-70013

rgw: PutObjectLockConfiguration can enable object lock on existing buckets

Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
4 months agoMerge pull request #61901 from cbodley/wip-69936
Casey Bodley [Fri, 28 Feb 2025 14:35:31 +0000 (09:35 -0500)]
Merge pull request #61901 from cbodley/wip-69936

rgw/cksum: GetObject omits checksum headers for Range requests

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
4 months agoMerge pull request #61626 from zdover23/wip-doc-2025-02-03-rados-ops-pgs
Zac Dover [Fri, 28 Feb 2025 12:26:48 +0000 (22:26 +1000)]
Merge pull request #61626 from zdover23/wip-doc-2025-02-03-rados-ops-pgs

doc/rados: improve pg_num/pgp_num info

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
4 months agoMerge pull request #55838 from neesingh-rh/wip-58090
Rishabh Dave [Fri, 28 Feb 2025 10:21:08 +0000 (15:51 +0530)]
Merge pull request #55838 from neesingh-rh/wip-58090

mgr/volumes: fix dangling symlink in clone index

Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Kotresh HR <khiremat@redhat.com>
Reviewed-by: Rishabh Dave <ridave@redhat.com>
4 months agoMerge pull request #60394 from joscollin/wip-B68446-B68001-get-metrics-fix
Rishabh Dave [Fri, 28 Feb 2025 10:07:04 +0000 (15:37 +0530)]
Merge pull request #60394 from joscollin/wip-B68446-B68001-get-metrics-fix

qa: reconfigure only the appropriate client auth caps

Reviewed-by: Rishabh Dave <ridave@redhat.com>
Reviewed-by: Neeraj Pratap Singh <neesingh@redhat.com>
4 months agoMerge pull request #61554 from rishabh-d-dave/check-mds-id
Rishabh Dave [Fri, 28 Feb 2025 10:03:45 +0000 (15:33 +0530)]
Merge pull request #61554 from rishabh-d-dave/check-mds-id

cephfs,mon: don't disallow "mds/fs fail" when other MDS/FS has health warning

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
4 months agoMerge pull request #61706 from rishabh-d-dave/subvol-meta-filename-too-long
Rishabh Dave [Fri, 28 Feb 2025 10:01:07 +0000 (15:31 +0530)]
Merge pull request #61706 from rishabh-d-dave/subvol-meta-filename-too-long

mgr/vol: print proper message when subvolume metadata filename is too long

Reviewed-by: Milind Changire <mchangir@redhat.com>
4 months agotest/test_not_before_queue: fix Signed-vs-Unsigned warnings 61993/head
Ronen Friedman [Tue, 25 Feb 2025 14:25:51 +0000 (08:25 -0600)]
test/test_not_before_queue: fix Signed-vs-Unsigned warnings

Fixes: https://tracker.ceph.com/issues/69525
Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
4 months agoosd/scrub: log scrub-queue advance_time() failures 62010/head
Ronen Friedman [Wed, 26 Feb 2025 15:10:54 +0000 (09:10 -0600)]
osd/scrub: log scrub-queue advance_time() failures

such failures occur when the "Ceph clock" goes backwards,

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
4 months agocommon/not_before_queue_t: tolerate non-monotonic cut-off values
Ronen Friedman [Wed, 26 Feb 2025 15:07:39 +0000 (09:07 -0600)]
common/not_before_queue_t: tolerate non-monotonic cut-off values

as the system monotonic clock is used when the container is used
in Scrub implementation, and on some kernels there are rare cases
where the monotonic clock can go backwards, we need to tolerate
such events.

Fixes: https://tracker.ceph.com/issues/70055
Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
4 months agoMerge pull request #62032 from Matan-B/wip-matanb-crimson-disable-txn-mgr-arm
Rongqi Sun [Fri, 28 Feb 2025 05:54:32 +0000 (13:54 +0800)]
Merge pull request #62032 from Matan-B/wip-matanb-crimson-disable-txn-mgr-arm

test/crimson/seastore/CMakeLists: disable unittest-transaction-manager (arm)

4 months agomg/dashboard: Edit Storage Class 61874/head
Dnyaneshwari [Tue, 11 Feb 2025 06:29:38 +0000 (11:59 +0530)]
mg/dashboard: Edit Storage Class

Fixes: https://tracker.ceph.com/issues/70016
Signed-off-by: Dnyaneshwari Talwekar <dtalweka@redhat.com>
4 months agoMerge pull request #62022 from xxhdx1985126/wip-seastore-tree-pointer-abstract-cleanup
Yingxin Cheng [Fri, 28 Feb 2025 03:10:48 +0000 (11:10 +0800)]
Merge pull request #62022 from xxhdx1985126/wip-seastore-tree-pointer-abstract-cleanup

crimson/so/seastore: clean up logical_child_node.cc

Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
4 months agoMerge pull request #62030 from zdover23/wip-doc-2025-02-27-rbd-nvmeof-requirements
Mike Perez [Fri, 28 Feb 2025 02:03:00 +0000 (18:03 -0800)]
Merge pull request #62030 from zdover23/wip-doc-2025-02-27-rbd-nvmeof-requirements

doc/rbd: improve nvmeof-requirements.rst

4 months agoMerge pull request #59213 from myoungwon/wip-dec-omap-leaf-size
Yingxin Cheng [Fri, 28 Feb 2025 01:34:52 +0000 (09:34 +0800)]
Merge pull request #59213 from myoungwon/wip-dec-omap-leaf-size

crimson/os/seastore: redirect log operations to 16K-leaf-size omap

Reviewed-by: Yingxin Cheng <yingxin.cheng@intel.com>
Reviewed-by: Matan Breizman <mbreizma@redhat.com>
Reviewed-by: Xuehan Xu <xuxuehan@qianxin.com>
4 months agoMerge PR #61682 into main
Patrick Donnelly [Fri, 28 Feb 2025 01:01:03 +0000 (20:01 -0500)]
Merge PR #61682 into main

* refs/pull/61682/head:
mds/snap: include cleanup
mds/MetricsHandler: include cleanup
mds/LogSegment: add missing includes
mds/JournalPointer: include cleanup
mds/cephfs_features: include cleanup
mds/MDSMap: include cleanup
mds/Migrator: include cleanup
mds/MDLog: include cleanup
mds/SnapServer: include cleanup
mds/MDSTableServer: include cleanup
mds/MetricAggregator: include cleanup
mds/SnapClient: include cleanup
mds/MDSPinger: include cleanup
mds/flock: include cleanup
mds/MDSAuthCaps: include cleanup
mds/QuiesceAgent: include cleanup
mds/QuiesceDb: include cleanup
mds/mdstypes: include cleanup
msg/Locker: include cleanup
mds/journal: add missing includes
mds/Server: include cleanup
mds/LogEvent: include cleanup
mds/Capability: include cleanup
mds/DamageTable: include cleanup
mds/StrayManager: include cleanup
mds/Mutation: include cleanup
mds/SnapRealm: include cleanup
mds/InoTable: add missing include
mds/ScatterLock: add missing include
mon/MDSMonitor: add missing include
mon/MDSDaemon: add missing include

Reviewed-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoclient: skip unexpected command replies 60746/head
Patrick Donnelly [Tue, 18 Feb 2025 19:35:16 +0000 (14:35 -0500)]
client: skip unexpected command replies

Instead of marking the message as handled, give another component (or Client) a
chance to process.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agomgr: indicate map message is acked instead of unhandled
Patrick Donnelly [Tue, 18 Feb 2025 19:20:57 +0000 (14:20 -0500)]
mgr: indicate map message is acked instead of unhandled

This avoids messages like:

    2025-02-18T05:31:17.738+0000 7f5206546640  0 ms_deliver_dispatch: unhandled message 0x5632d05f0700 fsmap(e 9) from mon.0 v2:172.21.3.230:40412/0

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoosdc/Objecter: convert to ms_dispatch2 for ack
Patrick Donnelly [Tue, 18 Feb 2025 18:46:58 +0000 (13:46 -0500)]
osdc/Objecter: convert to ms_dispatch2 for ack

Convert ms_dispatch to ms_dispatch2 to enable indicating that a map message is
acknowledged and instead of processed (or deliberately not processed).

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoclient: indicate maps are acked not processed
Patrick Donnelly [Tue, 18 Feb 2025 18:45:22 +0000 (13:45 -0500)]
client: indicate maps are acked not processed

Ancillary change: do not do client upkeep after map processing.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agomsg: add alternate statuses for ms_dispatch2 handling
Patrick Donnelly [Tue, 18 Feb 2025 17:41:52 +0000 (12:41 -0500)]
msg: add alternate statuses for ms_dispatch2 handling

Many dispatchers return false to allow other dispatchers also common messages
like MOSDMap or MFSMap. They implicitly depend on some dispatcher which is
always at the "tail" of the dispatcher queue to return "true" indicating the
msg was processed to avoid messages like:

    2025-02-18T05:31:17.738+0000 7f5206546640  0 ms_deliver_dispatch: unhandled message 0x5632d05f0700 fsmap(e 9) from mon.0 v2:172.21.3.230:40412/0

but this cannot always happen when some libraries like the RadosClient used standalone.

So, add a variant for encapsulating other indications for how the message was
processed by dispatch2.  For example, a message may be "acknowledged" but
explicitly allow other dispatchers to try processing the message.

Note: we're using a variant to avoid updating all of the ms_dispatch code to
use the sentinel classes.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agotools/cephfs_mirror: do not process maps with fast dispatch
Patrick Donnelly [Tue, 18 Feb 2025 18:48:39 +0000 (13:48 -0500)]
tools/cephfs_mirror: do not process maps with fast dispatch

This acquires a lock which is a no-no in the messenger.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agodoc: add docs for volumes interface for charmap
Patrick Donnelly [Mon, 10 Feb 2025 17:22:49 +0000 (12:22 -0500)]
doc: add docs for volumes interface for charmap

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoqa: add tests for subvolume charmap settings
Patrick Donnelly [Wed, 8 Jan 2025 19:45:01 +0000 (14:45 -0500)]
qa: add tests for subvolume charmap settings

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agopybind/mgr/volumes: wire up charmap for subvol/subvolgroup
Patrick Donnelly [Wed, 8 Jan 2025 14:51:32 +0000 (09:51 -0500)]
pybind/mgr/volumes: wire up charmap for subvol/subvolgroup

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agopybind/mgr: send MDS commands through cephfs client
Patrick Donnelly [Wed, 5 Feb 2025 16:22:08 +0000 (11:22 -0500)]
pybind/mgr: send MDS commands through cephfs client

To avoid linking to the CephFS client statically, use the dynamically-linked
`cephfs` module to send commands to the MDS.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agopybind/cephfs: wire up mds_command2
Patrick Donnelly [Wed, 5 Feb 2025 16:21:41 +0000 (11:21 -0500)]
pybind/cephfs: wire up mds_command2

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agomgr: add module method to send notifications
Patrick Donnelly [Wed, 5 Feb 2025 16:19:25 +0000 (11:19 -0500)]
mgr: add module method to send notifications

For use by MgrModule.send_command to signal MDS command completion.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agolibcephfs: add mds_command2 for asynchronous commands
Patrick Donnelly [Wed, 5 Feb 2025 16:18:34 +0000 (11:18 -0500)]
libcephfs: add mds_command2 for asynchronous commands

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agomgr: excise CephFS client from mgr C++ base
Patrick Donnelly [Thu, 30 Jan 2025 22:08:07 +0000 (17:08 -0500)]
mgr: excise CephFS client from mgr C++ base

Linking to the client causes two copies of the Client library to be linked in
the ceph-mgr when modules also dynamically link to libcephfs via the "cephfs"
python library. This creates problems with duplicate boost::locale.

Instead, modules should just use the "cephfs" library to send commands to the
MDS.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agomgr: use std namespace
Patrick Donnelly [Thu, 30 Jan 2025 22:05:25 +0000 (17:05 -0500)]
mgr: use std namespace

This C++ code was relying on the Client.h header to bring in these names from
the std:: namespace. A subsequent commit plans to remove that header so add
namespace qualifier now.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agodoc: add docs for CephFS charmap config
Patrick Donnelly [Tue, 31 Dec 2024 19:46:03 +0000 (14:46 -0500)]
doc: add docs for CephFS charmap config

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoqa: add charmap tests
Patrick Donnelly [Tue, 31 Dec 2024 17:59:01 +0000 (12:59 -0500)]
qa: add charmap tests

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoqa: add helpful exceptions for attr changes
Patrick Donnelly [Tue, 31 Dec 2024 17:57:53 +0000 (12:57 -0500)]
qa: add helpful exceptions for attr changes

It's not possible to extract the error message from stderr by the caller.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
4 months agoqa: ignore libicu leaks
Patrick Donnelly [Mon, 24 Feb 2025 20:56:54 +0000 (15:56 -0500)]
qa: ignore libicu leaks

These are likely spurious and not interesting.

Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>