doc/install: Keep the name field of the created user consistent with the node name in the Start RADOSGW service command
If the user name does not match the name of the node that started the RADOSGW service, this will cause confusion for those who are new to ceph. Because they can't start the radosgw service normally as shown in the tutorial.
Nizamudeen A [Tue, 3 Sep 2024 12:29:47 +0000 (17:59 +0530)]
mgr/dashboard: expose gw_groups list api
also if the cephadm is available, make the api smart enough to
understand the running daemons and get its gateway_addr instead of
taking the first one in the list so that the HA will be there for the UI
and API as well
Fixes: https://tracker.ceph.com/issues/67774 Signed-off-by: Nizamudeen A <nia@redhat.com>
Edit the section "bluefs-bdev-migrate" in
doc/man/8/ceph-bluestore-tool.rst to add the information that this
operation expands the target storage by updating its size label, making
"bluefs-bdev-expand" unnecessary.
Improve the subject-verb agreement in this section, and supply some
absent definite articles.
Co-authored-by: Peter Gervai <grin@drop.grin.hu> Signed-off-by: Zac Dover <zac.dover@proton.me>
John Mulligan [Sun, 8 Sep 2024 14:42:36 +0000 (10:42 -0400)]
mgr/smb: stop trying to clean external store during cluster sync
It was found during testing that a sequence of commands like:
```
ceph smb cluster create slow1 user --define-user-pass=user1%badf00d --clustering=always
--placement=3
sleep 0.5
ceph smb share create slow1 share1 cephfs --subvolume=g1/sv1 --path=/
sleep 0.5
ceph smb share create slow1 share2 cephfs --subvolume=g1/sv2 --path=/
```
would create a CTDB enabled cluster that would fail to start up
correctly. The issue was due to the call to `external.rm_other_in_ns`
during the cluster sync operation. In the CTDB enabled mode, objects are
written to the pool outside of the smb mgr module's direct control, in
particular `cluster.meta.json`, and this function, intended to keep the
pool & namespace tidy, was removing objects needed by CTDB-enabled mode.
The failure is somewhat timing sensitive due to the ctdb enablement
sidecars coming up before or after the object was deleted.
Remove this function call so that these objects stop getting deleted at
inopportune times. While we could have tried making this function
"smarter" and only deleting some unexpected objects, in this case I feel
that keeping it simple is better. If we find this pool getting cluttered
in the future we can add a smarter pool-tidying-up function later.
Fixes: https://tracker.ceph.com/issues/67946 Signed-off-by: John Mulligan <jmulligan@redhat.com>
Since we now co_await mut_func, we should not pass it by rvalue ref.
```
DEBUG 2024-09-01 15:54:46,212 [shard 0:main] osd - do_osd_ops_execute: object 2:c4c92e5a:::rbd_trash:head submitting txn
=================================================================
==17416==ERROR: AddressSanitizer: stack-use-after-return on address 0x7f590008a430 at pc 0x0000040a367a bp 0x7ffc0b1d5ff0 sp 0x7ffc0b1d5fe0
Address 0x7f590008a430 is located in stack of thread T0 at offset 48 in frame
#0 0x40b0a2b in crimson::osd::PG::do_osd_ops_execute ... lambda(std::error_code const&)#1}&&)::{lambda()#1}::operator()() const (/usr/bin/ceph-osd+0x40b0a2b)
```
Adam King [Fri, 6 Sep 2024 13:04:37 +0000 (09:04 -0400)]
mgr/cephadm: stop running "true" before every command
It turns out this is completely unnecessary. With the keepalive
settings on the connection, we no longer need to run an
additional command with a timeout on it to quickly detect a
host is offline
doc/rados: add "pgs not deep scrubbed in time" info
Add a procedure to doc/rados/operations/health-warnings.rst that
explains how to remedy the "X PGs not deep-scrubbed in time" health
warning.
This procedure was developed by Eugen Block, and is at the time of this
commit available on his blog at
https://heiterbiswolkig.blogs.nde.ag/2024/09/06/pgs-not-deep-scrubbed-in-time/
Co-authored-by: Eugen Block <eblock@nde.ag> Signed-off-by: Zac Dover <zac.dover@proton.me>
This removes the constraint on the transport being TCP, allowing to
use a Unix domain socket or other options. It also allows specifying
export names which a) are needed in case of serving different content
on different exports and b) some servers may require regardless.
Additionally, NBD URIs are future proof as all that NBDStream needs to
do is forward the string to libnbd.
Errors returned by nbd_get_errno() can't be used to complete Contexts
directly because a) these errors are positive while complete() in most
cases expects a negative error and b) nbd_get_errno() can return 0 even
after libnbd call fails (i.e. returns -1).
Introduce a helper with EIO as a default/fallback error.
Ilya Dryomov [Sun, 25 Aug 2024 11:10:58 +0000 (13:10 +0200)]
librbd/migration/NBDStream: be more thorough around nbd_block_status()
nbd_block_status() is specified to be really loose: it can return
more status (go beyond the requested range), less status (cover only
some part of the requested range) or nothing at all. The former would
likely violate some assumptions in ObjectCopyRequest, while the latter
would lead to straight data corruption -- parent blocks that weren't
covered would never get copied up into the destination image.
On top of that, the current implementation is very suboptimal.
Because only "nr_entries == 2" responses are effectively processed,
any extent which has a small amount of data and is otherwise zeroed
(e.g. 8K of data in a 4M object) gets listed as DATA. A copyup for
such an object would write 4M worth of data instead of 8K, consuming
space in the destination image unnecessarily.
Also, it's unclear whether zero-sized entries can be returned.
Currently, if it happens we would hit an assert in interval_map.
Leonid Chernin [Wed, 4 Sep 2024 08:54:59 +0000 (08:54 +0000)]
mon/NVMeofGw*:
1. fix blocklist bug - blockist was not called
2. originally monitor only bloklisted specific ana groups but since we allow
the changing of ns ana grp on the fly for the sake of ns load balance,
it is not good enough and we need to blocklist all the cluster contexts
of the failing gateway Signed-off-by: Leonid Chernin <leonidc@il.ibm.com>
Nitzan Mordechai [Wed, 28 Aug 2024 12:49:27 +0000 (12:49 +0000)]
crimson/common/gated: Comment out ceph_assert for shard ID check
After adding sid (shard ID) to Gated, each shard should have its own gate.
However, some users of Gated had a single instance, which either failed
these assertions or created the Gated object on the wrong shard.
A tracker issue #67773 was opened for this, and this commit comments out
the assertions until the issue is resolved.
Nitzan Mordechai [Wed, 28 Aug 2024 09:08:26 +0000 (09:08 +0000)]
crimson/net/io_handler: ctor add gate ctor with shard id
IOHandler::to_new_sid provides a mechanism to switch to a new core from the current one used.
This behavior is tricky for making sure that we keep the IOHandler::shard_states_t::gate instance to be used on the same core that it was created.
In order to resolve this, we should be able to construct Gated out of specified core_id (and not from this_shard_id).
Leonid Chernin [Sun, 1 Sep 2024 13:17:45 +0000 (13:17 +0000)]
mon/NVMeofGw*: Fix issue when ana group of deleted GW was not serviced.
Introduced GW Deleting state Signed-off-by: Leonid Chernin <leonidc@il.ibm.com>
John Mulligan [Thu, 1 Aug 2024 20:24:28 +0000 (16:24 -0400)]
mgr/smb: add support for new ceph vfs module
Add support for using the new ceph vfs module in Samba (aka ceph_new) to
the mgr module, and even default to using it for the samba-vfs provider.
Add two new "sub-providers" one for forcing the old vfs module
"samba-vfs/classic" and one, "samba-vfs/new", for forcing the new module
regardless of what the default for "samba-vfs" is.
Signed-off-by: John Mulligan <jmulligan@redhat.com>