Zac Dover [Sat, 23 Nov 2024 12:32:13 +0000 (22:32 +1000)]
doc/cephadm: Clarify "Deploying a new Cluster"
Change the title of the section "Deploying a new Ceph cluster" to "Using
cephadm to Deploy a New Ceph Cluster". This is part of the initiative to
separate package-related documentation from container-based
documenation.
Zac Dover [Mon, 11 Nov 2024 23:31:28 +0000 (09:31 +1000)]
doc/rados: correct "full ratio" note
Correct a note that directed users not to add an OSD after the cluster
has reached its "full ratio". The note now says "Do not let your cluster
reach its full ratio before adding an OSD."
Hat tip: Oskar Berggren
Fixes: https://tracker.ceph.com/issues/68900 Co-authored-by: Oskar Berggren <oskar.berggren@gmail.com> Signed-off-by: Zac Dover <zac.dover@proton.me>
(cherry picked from commit f1a2637c79a15c26a769661dd72ca68d766b2f0d)
Patrick Donnelly [Thu, 24 Oct 2024 18:00:10 +0000 (14:00 -0400)]
mds: add or update MDS thread names
To be consistent and sensical.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit a2a989aaa5e9780d98ec9c5cabc66ac2c3a387a4) Signed-off-by: Milind Changire <mchangir@redhat.com>
Conflicts:
src/mds/MDLog.cc (no upkeep thread in reef)
src/mds/QuiesceAgent.h (not available in reef)
src/mds/QuiesceDbManager.cc (not available in reef)
Patrick Donnelly [Thu, 24 Oct 2024 16:34:29 +0000 (12:34 -0400)]
log: cache recent threads up to a day
In general, a pthread implementation reuses thread ids routinely so the
circular_buffer is there to help us see what the thread name was historically
(capped at 4 entries).
However, to guard against this map from growing without bound, discard entries
that are more than a day old. This would happen if a thread logged an Entry and
has since disappeared for more than a day.
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit bfe489ed19d599b67cacb0bdd4958f36661248f2) Signed-off-by: Milind Changire <mchangir@redhat.com>
Patrick Donnelly [Thu, 24 Oct 2024 03:16:03 +0000 (23:16 -0400)]
common: cache pthread names
This provides common ceph entrypoints for the pthread_[gs]name functions which
will also cache a thread_local copy. This also removes the pthread_t parameter
which precipitated the bug i50743.
Obviously, the overall goal here is to avoid system calls.
Conflicts:
src/ceph_nvmeof_monitor_client.cc (not available in reef)
src/common/ceph_timer.h
src/include/compat.h
src/mds/Beacon.cc
src/rgw/driver/rados/rgw_notify.cc
src/rgw/rgw_lua_background.cc (not available in reef)
See-also: https://tracker.ceph.com/issues/50743 Fixes: 0be8d01c9ddde0d7d24edd34dc75f6cfc861b5ba Fixes: https://tracker.ceph.com/issues/68691 Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 7de5af59c2741b4203cc17f619ca53096c97b8ff) Signed-off-by: Milind Changire <mchangir@redhat.com>
* pthread name is saved in a thread_local storage
* the thread_local name is copied into Entry object's ctor
* Log::dump_recent() reads the thread name from the Entry
object's data member when dumping logs
Zac Dover [Tue, 29 Oct 2024 07:27:43 +0000 (17:27 +1000)]
doc/start: separate package chart from container chart
Separate the packages-and-containers chart into two charts:
(1) a chart that shows which OSes Ceph builds packages for
(2) a chart that shows which OSes support Ceph's containers
common,osd: Use last valid OSD IOPS value if measured IOPS is unrealistic
The OSD's IOPS capacity is used by the mClock scheduler to determine the
quantum of bandwidth allocation for the various operations on the OSD.
Prior to this commit, maybe_override_max_osd_capacity_for_qos() only
checked if the measured IOPS capacity exceeded the higher threshold defined
by 'osd_mclock_iops_capacity_threshold_[hdd|ssd]' and if so fallback to the
last valid or the default IOPS capacity as defined by
osd_mclock_max_capacity_iops_[hdd|ssd].
It's quite possible that the reported IOPS is unrealistically low. This
could be due to transient factors on the underlying device or it could
indicate bad health of the device. Either way, the safer option would be
to fallback to the last valid or the default IOPS setting for that OSD in
order to avoid cluster performance (slow or stalled ops) issues down the
line.
Therefore, to handle this case, the commit introduces additional config
options viz.,
- osd_mclock_iops_capacity_low_threshold_hdd - set to 50 IOPS and
- osd_mclock_iops_capacity_low_threshold_ssd - set to 1000 IOPS
If the measured IOPS capacity doesn't fall within the low and high
threshold range, the default or the last valid IOPS capacity is used.
The existing cluster log warning is suitably modified to convey the
reason.
Additionally, for a couple of valgrind related teuthology tests, the
cluster warning is added to the ignorelist since the reported IOPS can
be very low due to slowness.
Zac Dover [Wed, 6 Nov 2024 12:22:14 +0000 (22:22 +1000)]
doc/cephadm: link to "host pattern" matching sect
Link to the "Placement by Pattern Matching" section in
doc/cephadm/services/index.rst from the "Advanced OSD Service
Specifications" section in doc/cephadm/services/osd.rst.
Nizamudeen A [Mon, 4 Nov 2024 05:42:32 +0000 (11:12 +0530)]
mgr/dashboard: remove cherrypy_backports.py
since its mostly used only for older cherrypy versions which we don't
support anymore in any of our recent upstream releases, we could remove
it completely
Zac Dover [Fri, 1 Nov 2024 13:43:07 +0000 (23:43 +1000)]
doc: s/Whereas,/Although/
Change the subordinating conjunction "Whereas" followed by a comma to
the less grammatically-incorrect "Although". I've been meaning to do
this since 22 Mar 2023.
Zac Dover [Sun, 27 Oct 2024 12:04:16 +0000 (22:04 +1000)]
doc/rados: add blaum_roth coding guidance
Direct Ceph administrators using blaum_roth coding for erasure-coded
pools to change the default value of w=7 to a different value in order
to ensure that w+1 is prime.
This information was provided to the Ceph upstream by Benjamin Mare in
September of 2024.
Fix the handling of HEAD requests that do not comply with RFC standards
According to RFC 9110, The HEAD method is identical to GET except
that the server MUST NOT send content in the response.
And RFC 9112 indicates that Transfer-Encoding can be omitted in HEAD
Response.
The following HEAD OP is using chunked encoding and send the final chunk
HEAD /bucket?uploads RGWListBucketMultiparts_ObjStore_S3
HEAD /bucket/abc?uploadId RGWListMultipart_ObjStore_S3
HEAD / RGWListBuckets_ObjStore_S3
Clients using persistent connections, such as nginx, will be unable to handle
subsequent requests after processing such requests because the final chunk
remains in the TCP byte stream, preventing the next HTTP response from
being correctly parsed.
rgw/sts: changing identity to boost::none, when role policy
is verified for putobj permissions, in case of renaming a
large file.
While renaming a large file, putobj is invoked as an intermediate
step, and role policy is verified for the source object if temp creds
are used. Since the role policy is attached to the identity (role)
itself and the role policy does not contain a Principal, there is no
need to verify the identity and hence boost::none is passed in place
of the identity.
Zac Dover [Wed, 23 Oct 2024 08:34:25 +0000 (18:34 +1000)]
doc/rados: standardize markup of "clean"
Standardize the markup around the status "clean" in the documentation so
that readers don't mistakenly get the idea that inconsistent
presentation of the word "clean" implies a never-stated difference
between one instance and the other.