Venky Shankar [Tue, 17 Jan 2023 10:45:04 +0000 (05:45 -0500)]
mds: record and dump last tid for trimming completed requests (or flushes)
CephFS clients include `oldest_tid` as part of the client request
to the MDS. This field is the tid of the oldest incomplete mds
request (excluding setfilelock request). The MDS uses this to
trim completed requests (and flushes). In one case, the ceph
cluster had an extremely high completed requests count, meaning,
for some reason the client was not advancing its `oldest_tid`
field, although, the MDS had successfully "safe replied" the
request back to the client.
This change adds a debug aid for recording and dumping this
field. It might be possible to fetch this from clients (if
not, we should add that!), but it makes sense to have this
information available from the MDS.
Yingxin Cheng [Wed, 11 Jan 2023 01:56:17 +0000 (09:56 +0800)]
crimson/os/seastore/object_data_handler: cleanup the overwrite path
* implement factory and type for extent_to_write_t.
* refactor overwrite_plan_t with explicit size calculations and
defined operations.
* cleanup the overwrite path accordingly.
Adam King [Fri, 13 Jan 2023 16:54:01 +0000 (11:54 -0500)]
Merge pull request #47383 from rhcs-dashboard/ceph-exporter-cephadm-changes
exporter: cephadm changes
Reviewed-by: Adam King <adking@redhat.com> Reviewed-by: Juan Miguel Olmo MartÃnez <jolmomar@redhat.com> Reviewed-by: Redouane Kachach <rkachach@redhat.com>
Zac Dover [Wed, 11 Jan 2023 20:24:55 +0000 (06:24 +1000)]
doc/dev: add push.autoSetupRemote instructions
Explain how to set up push.autoSetupRemote so that the origin branch is
properly set up when running "get push" without the need for the
"--set-upstream" option.
Zac Dover [Wed, 11 Jan 2023 15:12:24 +0000 (01:12 +1000)]
doc/cephadm: s/osd/OSD/ where appropriate
Capitalize the initialization "OSD" where it occurs in natural language
in cephadm/host-management.rst. This PR answers a request made by
Anthony D'Atri and seconded by Cole Mitchell in https://github.com/ceph/ceph/pull/49699#discussion_r1066171002.
Kefu Chai [Wed, 11 Jan 2023 04:12:17 +0000 (12:12 +0800)]
mgr/prometheus: use vendored "packaging" instead
instead of using the top-level "packaging" module, use the one
vendored by setuptools.
packaging python module provides versioning defined by PEP-440.
but python3-packaging is provided by CentOS8 powertools repo,
which is not enabled by default. and in CentOS9, this package
is provided by AppStream instead of BaseOS.
as prometheus mgr module is included by ceph-mgr-module-core,
it would be desirable if our user can install ceph-mgr-module-core
without enabling powertools or AppStream repo on a CentOS or
its derivative distros.
fortunately, setuptools vendors packaging module. and both
CentOS8 and CentOS9 provide python3-setuptools in their BaseOS
repos.
in this change, instead of using "packging" module, we use the
venderored one, which is in turn embedded in pkg_resources.
this python module is provided by python3-setuptools on CentOS
distros, and python3-pkg-resources on Debian and its derivatives.
the packaging recipes are updated accordingly to reflect the
new runtime dependency.
Zac Dover [Tue, 10 Jan 2023 15:55:55 +0000 (01:55 +1000)]
doc/css: add "span" padding to custom.css
Add "scroll-top-bar: 2em;" for the "span" html element in custom.css so
that the top bar doesn't get in the way of headings bounded by the "span
element".
Zac Dover [Mon, 9 Jan 2023 18:09:20 +0000 (04:09 +1000)]
doc/rados: link to cephadm replacing osd section
Direct readers to the "Replacing an OSD" section in the cephadm
documentation, for cases in which the instructions in "Replacing an OSD"
in the RADOS documentation don't work.
Zac Dover [Sun, 8 Jan 2023 08:04:43 +0000 (18:04 +1000)]
doc/glossary: Clean up "Ceph Object Storage"
Remove redundant material under the "Ceph Object Storage" headword and
add a "See 'Ceph Object Store'" link. A future PR will provide a couple
of sentences that explain how object storage is what's really supporting
both CephFS and RBD.
tools/cephfs/first-damage: repair specific first=CEPH_NOSNAP damage
first==CEPH_NOSNAP is never valid. Apparently somehow the MDS may set
this in some code path yet to be discovered, even without snapshots.
Note, we probably should not necessarily automate this fix via the MDS
because we do not know if this dentry (visible in HEAD) should also be
visible before NEXT_SNAP.
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
Zac Dover [Fri, 6 Jan 2023 16:24:39 +0000 (02:24 +1000)]
doc/css: Add scroll-margin-top to h2 html element
Add "scroll-margin-top: 4em;" to the h2 html element's definition in
custom.css. This moves the text under all h2 html elements out of the
way of the sticky-header-style top bar, which previously obscured the
text.
Zac Dover [Fri, 6 Jan 2023 12:51:47 +0000 (22:51 +1000)]
doc/man: define --num-rep, --min-rep and --max-rep
Explain the "--num-rep", "--min-rep", and "--max-rep" options, which are
required when running "crushtool" commands with the "--show-mappings"
flag. Originally reported by Brad Fitzpatrick.
Samuel Just [Wed, 19 Oct 2022 22:37:14 +0000 (15:37 -0700)]
crimson/osd/main: get full config before starting reactor
Deployment tooling these days relies on fetching configs from the
mons. We'd like to be able to set seastar reactor params like --smp
via mon config, so we need to start up a reactor and contact the mons
before starting up the reactor for real.
Seastar doesn't seem to like invoking app.run more than once -- a bunch
of thread-locals and statics get left around and result in invalid
memory accesses. To avoid all of this, we simply fork a child process
to talk to the mons and send the information back over a fifo.
Zac Dover [Thu, 5 Jan 2023 12:25:43 +0000 (22:25 +1000)]
doc/css: add scroll-margin-top to dt elements
add "scroll-margin-top: em3;" to custom.css so that the header bar
doesn't obscure the text of headwords in glossary.rst. Note that this
applies only to elements in the documentation that are rendered into
HTML with the dt (which stands for "description term" or "description
list") tag. Other modifications will be necessary in order to ensure
that the anchor points of non-dt elements are not obscured by the header
bar.
Lucian Petrut [Wed, 4 Jan 2023 17:08:12 +0000 (19:08 +0200)]
qa: test_rbd_wnbd.py - disable PS progress bar
This test uses certain PS commands that attempt to display
a progress bar. However, this can cause issues when invoked
remotely (e.g. by the jenkins job).
For this reason, we're defining a helper (ps_execute) that runs
PS commands, disabling the progress bars and enabling the non
interactive mode.
ceph-volume/tests: add allowlist_externals to tox.ini
typical failure seen in the CI:
```
py3-flake8: install_deps> ./tox_install_command.sh flake8
py3-flake8: failed with ./tox_install_command.sh (resolves to ./tox_install_command.sh) is not allowed, use allowlist_externals to allow it
```