John Mulligan [Fri, 2 Sep 2022 15:36:53 +0000 (11:36 -0400)]
mgr/nfs: add --sectype flag to nfs export create functions
Fixes: https://tracker.ceph.com/issues/57404
Add the sectype argument, also for use as a CLI option, to the functions
that create nfs exports. NFS Ganesha can use the sectype configuration
option to decide what kind of security will be applied/required for
connection to an export.
NOTE: This option is only useful when Ganesha is configured along with
LDAP/Kerberos integration. Configuration of that integration is outside
the scope of these patches.
John Mulligan [Fri, 2 Sep 2022 15:33:43 +0000 (11:33 -0400)]
mgr/nfs: reformat long function calls to one line per arg
Using a hand rolled version of the long function call style similar to
that produced by the "Black" tool, put every argument to the
create_export function on a line of its own. This makes the code easier
to read and, importantly for an upcoming change, easier to add new
arguments.
John Mulligan [Thu, 25 Aug 2022 21:22:03 +0000 (17:22 -0400)]
mgr/nfs: add awareness of the SecType option to ganesha_conf.py
This NFS-Ganesha option may be used to select kerberos integration in the
nfs client connection. If the option is not present in the configuration
dict, the option will not be present in the ganesha config blocks, just
as it was before.
Zac Dover [Mon, 17 Oct 2022 14:09:34 +0000 (00:09 +1000)]
doc/radosgw: refine "notification reliability"
This commit refines the English in the "Notification Reliability"
section of the notifications.rst page (the "Bucket Notifications"
page). I have also added signposting structure.
Co-authored-by: Anthony D'Atri <anthony.datri@gmail.com> Co-authored-by: Yuval Lifshitz <ylifshit@redhat.com> Signed-off-by: Zac Dover <zac.dover@gmail.com>
(cherry picked from commit 8f7b57f5cec475f8977e61707b287884903c1bb5)
Zac Dover [Fri, 14 Oct 2022 06:17:12 +0000 (16:17 +1000)]
doc/radosgw: add push_endpoint for rabbitmq
This commit directs users of rabbitmq to use "push_endpoint"
(with an underscore) instead of "push-endpoint" (with a hy-
phen). This commit adds a note that contains such a direct-
ive. It does not alter the examples already present in the
text.
Ilya Dryomov [Mon, 15 Aug 2022 07:44:09 +0000 (09:44 +0200)]
test/librbd: various fixups for compare-and-write test cases
- missing EILSEQ asserts in IO and IOWithIOHint
- AioCompletion leak in CompareTooSmall and WriteTooSmall
- skip StripeUnitUnaligned and TooLarge on the PWL cache as it wasn't
limited by the 512-byte sector limit before and isn't limited by the
stripe unit limit now
cmp_bl can no longer be shorter than read_bl (i.e. image extent).
This is caught very early at the API level, see commit af96e6dae3f4
("librbd: make C++ cmp&write semantics equal to C API").
However, cmp_bl can still be longer than read_bl and in that case
it should be capped by the image extent length.
Ilya Dryomov [Mon, 15 Aug 2022 07:44:09 +0000 (09:44 +0200)]
librbd: discard cache state if compare-and-write writes to disk
Otherwise this is obviously broken with rbd_cache_policy = writeback or
rbd_cache_policy = writethrough as the write is done on the OSD, beneath
ObjectCacher. This went unnoticed because the original (and so far the
only known) compare-and-write user, tcmu-runner rbd driver, disables the
cache altogether.
Jonas Pfefferle [Fri, 5 Aug 2022 17:37:55 +0000 (19:37 +0200)]
librbd: make C++ cmp&write semantics equal to C API
The compare and write C++ API (both sync and async) does not check
compare bufferlist length and executes compare ops of bufferlist length
size, even if (write) "len" is smaller than bufferlist length.
This patch changes this behavior by always issuing compares and
writes of "len" size to match the C API. The bufferlist length
can be greater than "len" for both compare and write but only
"len" bytes are compared and written. If the bufferlist length
is smaller than "len" the call will fail.
Jonas Pfefferle [Fri, 5 Aug 2022 17:36:36 +0000 (19:36 +0200)]
librbd: remove cmp&write sector size restriction
This patch removes the compare and write max sector size len
restriction. We can allow up to stripe unit size accesses if
the access is aligned properly.
To allow larger size compare and write requests in the
journal we split the buffers like we do for writes now.
Kefu Chai [Mon, 10 Oct 2022 13:57:57 +0000 (21:57 +0800)]
cephadm: run tests as root
as we will be create/access directories which are only accessible by
root with pyfakefs, and pyfake respects the uid of current effective
user, so if we run the test using non-root user, these tests would fail
after the fix for https://github.com/pytest-dev/pyfakefs/issues/489
is addressed in the pyfakefs we are using.
in this change, we will run the test on behalf of root, so we can
create and access the directories as we did before.
Nizamudeen A [Mon, 10 Oct 2022 05:41:18 +0000 (11:11 +0530)]
mgr/dashboard: fix weird data in osd details
The devices section in the OSD Details and Host Details shows more than
one daemon and device path in the column when you view the details of a
single osd details/host details. This is because more than one osd
is created on a device with same `deviceid`. I am not sure if this will
happen in the real environment but its mostly reproducible in
environments with QEMU emulated devices.
Zac Dover [Sun, 9 Oct 2022 07:09:30 +0000 (17:09 +1000)]
doc/various: update link to CRUSH pdf
This commit updates link to the research paper that announces and
explains the CRUSH algorithm. This link was broken in the migration from
the old Ceph website to ceph.io.
This commit makes several refinements to the English in
rados/operations/crush-map-edits.rst, which refinements were suggested
by Cole Mitchell and Anthony D'Atri in the discussion of PR#48085.
This PR updates the prompts in crush-map-edits.rst
to make them unselectable.
There remains no good known way to render parts of
a file if the first line of that file begins with a
hash (#). Sphinx italicizes such a first line, which
is not what I want. Two examples of this are present
in the file crush-maps-rst under the section called
"CRUSH Map Bucket Types". I set this down here for
my own records, in case it is helpful in finding a
way to make these sections render as I would prefer.
Zac Dover [Mon, 3 Oct 2022 12:51:35 +0000 (22:51 +1000)]
doc/glossary.rst: remove duplicates
This commit removes similar but distinct entries for the following:
* CephFS
* Ceph Client
Removal of a glossary term that is referred to in the body of the
documentation suite requires the alteration of the text string
that refers to the glossary term. Alterations of this kind have
been made to doc/architecture.rst and doc/rados/api/index.rst.
This mirror apparently stopped working, breaking jobs that use this
script.
Signed-off-by: Zack Cerza <zack@redhat.com>
(cherry picked from commit 3f32ab0fb3a54174a8a57681243cd944056c6ffb) Signed-off-by: Nizamudeen A <nia@redhat.com>
Conflicts:
src/pybind/mgr/dashboard/ci/cephadm/start-cluster.sh
- Change the url to point to fedora 34 image
This PR rewrites the front matter in the "Erasure Code"
section of the RADOS documentation. Previously, the information
in this section was syntactically confused. I have also fleshed
out the distinction between erasure coding and replication.
Laura Flores [Wed, 28 Sep 2022 17:43:40 +0000 (17:43 +0000)]
mgr/telemetry: handle daemons with complex ids
Treating daemons as `<daemon_type>.x` caused a crash
in the Telemetry module since the current method does not cover a case
where a daemon id is more complex, i.e. `<daemon_type>.x.y`.
When we parse the daemon type and daemon id, we should
split it into a maximum of two pieces rather than splitting
it by every `.` character. Specifying `1` in the Python
.split() function will limit the split to a maximum of two items.
Fixes: https://tracker.ceph.com/issues/57700 Signed-off-by: Laura Flores <lflores@redhat.com>
(cherry picked from commit 97833a6a81fed7f868e1d544816cfbdf254fdb43)
Signed-off-by: Avan Thakkar <athakkar@redhat.com>
Fixes issue when pid file config comes empty from config dump which prevents to add metrics. Also get process metrics only if
pid_path isn't empty.
Tatjana Dehler [Mon, 25 Jul 2022 16:04:58 +0000 (18:04 +0200)]
mgr/dashboard: add option to resolve ip addr
Add the option `redirect_resolve_ip_addr` to the dashboard module.
If the option is set to `True`, try to resolve the IP address before
redirecting from the passive to the active mgr instance.
If the option is set to `False`, follow the already known behavior.
Fixes: https://tracker.ceph.com/issues/56699 Signed-off-by: Tatjana Dehler <tdehler@suse.com>
(cherry picked from commit 2e15f0f0d2df55bf0c4bc1673a3b7a4b3862d7e2)