Commit Graph

139234 Commits

Author SHA1 Message Date
Patrick Donnelly
2c9892739c
mds: add incompat feature for minor log segments
To prevent old MDS from joining a file system with the new log events.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:01 -04:00
Patrick Donnelly
5a53747654
mds: introduce ELid event to create/close log
Prior to this set of commits, the MDS would write the ESubtreeMap to the
journal, trim everything up to that segment, then finally force the
trimming of that last segment (`MDLog::trim(0)`). This is awkward in the
new code which preserves a major segment boundary at the beginning of
the journal during trimming. Instead of writing a special case for this
situation, it seems more natural to just use a new "lid" or "cap" event
to mark the beginning of the journal when no subtree map can yet be
written but we need sequence numbers to tie in other MDS tables.

Like ESegment, ELid doesn't actually contain any state. It's just a
marker for the beginning the log after rank deactivation or rank
creation. It can appear in the middle of the log if the shutdown
sequence is interrupted while writing the event but the MDS will skip it
during replay in that case.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:01 -04:00
Patrick Donnelly
553aa5e6cc
mds: change EResetJournal to major segment boundary
When the MDS journal is wiped, EResetJournal is a major segment boundary
as it necessarily begins the journal.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:01 -04:00
Patrick Donnelly
c325553476
mds: add killpoints for MDS shutdown
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:01 -04:00
Patrick Donnelly
2142114a2d
qa: add numerous subtree test
When the ESubtreeMap is very large (~5k+ subtrees), the MDS will
end up logging only a few events (as bad as 1) per segment as the
subtree map dominates the segment size.

This test simply creates an artificially large subtree and confirms that
other file system activity completes in a timely manner. This is now
taking advantage of the minor segments which allows for a normal set of
events per log segment (and fewer subtree maps). The test fails on the
current main HEAD.

Historical note: when I first observed this abberant behavior, the
vstart cluster was actually using mds_debug_subtrees = True (the default
for every vstart cluster). This caused the MDS to write out the subtree
map (for debugging reasons) with every event. When testing the MDS with
large subtrees (distributed ephemeral pinning), this caused the MDS to
slow to a trickle of operations per second. Despite this unintentional
misconfiguration, the problem still exists but the number of auth
subtrees must be large for a particlar rank to replicate the behavior.

On main HEAD, the creation of 10k files (workload stage) takes ~110
seconds. On this branch, it takes ~30 seconds.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:01 -04:00
Patrick Donnelly
d314003d88
mds: track larger log events in perf dump
Fixes: https://tracker.ceph.com/issues/58550
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:01 -04:00
Patrick Donnelly
a76421a9be
mds: add minor LogSegment boundaries
This commit adds a new ESegment event type which can delineate
LogSegments. This event can be used as an alternative to the heavy
weight ESubtreeMap which can be very expensive to generate when the MDS
has a large subtree map.

Fixes: https://tracker.ceph.com/issues/58154
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:01 -04:00
Patrick Donnelly
f249dc13de
mds: obviate MDLog::start_entry
The major problem here is that the MDLog::_start_entry method puts the
current event sequence number in the EMetaBlob of the event (if
present). Because of this, no other event can be submitted as this would
invalidate the event sequence. Instead, fixup the event sequence during
submission and simplify related logic that uses it during EMetaBlob
construction.

Secondarily, for the purposes of this commit series, _start_entry
introduced recursive locks when generating the ESubtreeMap within
MDLog::_segment_upkeep. So, this commit is a necessary cleanup.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:00 -04:00
Patrick Donnelly
91b6bc4a01
mds: retype to properly sized unsigned ints
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:00 -04:00
Patrick Donnelly
3c820f4eda
mds: use unsigned type for event count
To resolve comparison warnings in subsequent commit.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:00 -04:00
Patrick Donnelly
dbcd368884
mds: use base Context class for generalization
No reason to specialize to MDSContext.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:00 -04:00
Patrick Donnelly
601bcc9db3
mds: optimize segment lookup
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:00 -04:00
Patrick Donnelly
e4298336b9
mds: add stream dump for LogSegment
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:00 -04:00
Patrick Donnelly
218bdb66d2
mds: handle conf changes in mdlog
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:00 -04:00
Patrick Donnelly
c568e92e25
mds: remove redundant comment
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:16:00 -04:00
Patrick Donnelly
0e6e69c4dd
mds: remove unused method
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:15:59 -04:00
Patrick Donnelly
c2b5fff3e4
mds: set a reasonable minimum number of segments
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:15:59 -04:00
Patrick Donnelly
9377e80378
mds: sort configs
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
2023-08-01 11:15:59 -04:00
Venky Shankar
86c9a7a08d Merge PR #51995 into main
* refs/pull/51995/head:
	qa: wait for file to have correct size

Reviewed-by: Milind Changire <mchangir@redhat.com>
2023-08-01 20:36:59 +05:30
Adam Kupczyk
9673383f29
Merge pull request #52305 from Posrabi/wip-disk-frag-sim-metrics
test/objectstore: Disk Fragmentation Simulator Metrics
2023-08-01 15:50:41 +02:00
Pedro Gonzalez Gomez
68dda21953
Merge pull request #52526 from rhcs-dashboard/volume-create
mgr/dashboard: cephfs volume creation form


Reviewed-by: Pegonzal <NOT@FOUND>
Reviewed-by: Aashish Sharma <aasharma@redhat.com>
Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: cloudbehl <NOT@FOUND>
Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Nizamudeen A <nia@redhat.com>
2023-08-01 13:17:13 +02:00
Pedro Gonzalez Gomez
172133f18b
Merge pull request #52493 from rhcs-dashboard/cluster-upgrade-ui
mgr/dashboard: cluster upgrade start UI


Reviewed-by: Pegonzal <pegonzal@redhat.com>
Reviewed-by: cloudbehl <NOT@FOUND>
Reviewed-by: Nizamudeen A <nia@redhat.com>
2023-08-01 10:46:51 +02:00
Nizamudeen A
88170fe5dd
Merge pull request #52701 from rhcs-dashboard/flake8-fix
mgr: fix flake8 compliants

Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: phlogistonjohn <NOT@FOUND>
2023-08-01 11:06:50 +05:30
Casey Bodley
501ddc2b27
Merge pull request #52341 from mkogan1/wip-T52363-xrmeng8756
rgw: fix the Content-Length in response header of static website

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2023-07-31 18:15:05 -04:00
zdover23
f4a421f8ab
Merge pull request #52131 from cityofships/docs_radosgw
doc/radosgw: correct emphasis in rate limit section

Reviewed-by: Zac Dover <zac.dover@proton.me>
2023-08-01 06:31:41 +10:00
Piotr Parczewski
50bfbab6d9
doc/radosgw: correct emphasis in rate limit section
Signed-off-by: Piotr Parczewski <piotr@stackhpc.com>
2023-07-31 16:42:26 +02:00
Casey Bodley
e23241ee72
Merge pull request #52603 from cbodley/wip-62135
qa/rgw: pacific upgrade disables centos9

Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
2023-07-31 10:25:06 -04:00
Adam King
ed852fecee
Merge pull request #51987 from rkachach/fix_issue_61628
mgr/cephadm: storing prometheus/alertmanager credentials in monstore

Reviewed-by: Adam King <adking@redhat.com>
2023-07-31 08:34:54 -04:00
Nizamudeen A
0ab7e2ca0e
Merge pull request #52622 from rhcs-dashboard/allow-put-cors
mgr/dashboard: allow PUT in CORS

Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
2023-07-31 14:54:49 +05:30
Nizamudeen A
d199782fb5 mgr: fix some flake8 complaints
Signed-off-by: Nizamudeen A <nia@redhat.com>
2023-07-31 14:50:57 +05:30
avanthakkar
31055fab98 mgr/dashboard: cluster upgrade start UI
Fixes: https://tracker.ceph.com/issues/61928
Signed-off-by: avanthakkar <avanjohn@gmail.com>
2023-07-31 14:14:07 +05:30
Pere Diaz Bou
fa35ea07e9 mgr/dashboard: cephfs volume creation form
Fixes: https://tracker.ceph.com/issues/62085
Signed-off-by: Pere Diaz Bou <pere-altea@hotmail.com>
2023-07-31 10:17:46 +02:00
Aashish Sharma
d32b6c2751
Merge pull request #52317 from rhcs-dashboard/rgw-overview-dashboard
mgr/dashboard: add inventory card  and single stat cards to rgw overview dashboard


Reviewed-by: Nizamudeen A <nia@redhat.com>
2023-07-31 11:06:44 +05:30
Yuval Lifshitz
b111d8c6ba
Merge pull request #52435 from vedanshbhartia/coverity_invalid_typename
rgw: typecast long long to int when passing length to format string
2023-07-30 15:58:16 +03:00
Ilya Dryomov
e45272df04
Merge pull request #52688 from petrutlucian94/avoid_tzset
build: globally set FMT_USE_TZSET=0 for Windows

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2023-07-29 00:23:42 +02:00
Anthony D'Atri
8bb6cad041
Merge pull request #52668 from bluikko/patch-16
doc/radosgw: Add missing space to date option spec in admin.rst
2023-07-28 12:38:55 -04:00
Anthony D'Atri
cc6b9ae620
Merge pull request #52685 from bluikko/patch-17
doc/mgr/ceph_api: Promptify example commands in index.rst
2023-07-28 11:15:19 -04:00
Lucian Petrut
5fd67e1f88 build: globally set FMT_USE_TZSET=0 for Windows
We're currently setting FMT_USE_TZSET=0 when building libfmt
in order to avoid the _tzset function, which is unavailable
under Mingw:
aa5769ecf1

The issue is that it still gets used by fmt/chrono.h, which is
why we'll move this definition to the top level cmake file.

Note that the Windows build is currently failing as a result of
a recent change: https://github.com/ceph/ceph/pull/52590/files

  In file included from ceph/src/common/ceph_time.h:22,
                   from ceph/src/include/encoding.h:31,
                   from ceph/src/include/uuid.h:9,
                   from ceph/src/include/types.h:21,
                   from ceph/src/crush/CrushWrapper.h:14,
                   from ceph/src/crush/CrushCompiler.h:7,
                   from ceph/src/crush/CrushCompiler.cc:4:
  ceph/src/fmt/include/fmt/chrono.h: In lambda function:
  ceph/src/fmt/include/fmt/chrono.h:953:5: error: ‘_tzset’ was
  not declared in this scope; did you mean ‘tzset’?
    953 |     _tzset();
        |     ^~~~~~
        |     tzset

Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
2023-07-28 14:34:37 +00:00
Nizamudeen A
7b3a4f2b4e
Merge pull request #52191 from rhcs-dashboard/fix-daemon-labels-exporter
mgr/dashboard: empty grafana panels for performance of daemons 

Reviewed-by: Pegonzal <NOT@FOUND>
Reviewed-by: cloudbehl <NOT@FOUND>
Reviewed-by: Juan Miguel Olmo <jolmomar@redhat.com>
Reviewed-by: Pere Diaz Bou <pdiazbou@redhat.com>
2023-07-28 18:46:35 +05:30
Nizamudeen A
8da2a2c0e2 mgr/dashboard: allow PUT in CORS
Fixes: https://tracker.ceph.com/issues/62222
Signed-off-by: Nizamudeen A <nia@redhat.com>
2023-07-28 18:35:20 +05:30
avanthakkar
fa2d1f9f07 mgr/dashboard: empty grafana panels for performance of daemons
Fixes: https://tracker.ceph.com/issues/61792
Signed-off-by: avanthakkar <avanjohn@gmail.com>

Removing the `ceph-` prefix from ceph_daemon label to adopt it with the label
format used by queries in grafana dashboards. Also changing the
`instance_id` label for rgw to match the values coming from
exporter and prometheus module
2023-07-28 16:05:32 +05:30
Ville Ojamo
4f9bd62f37
doc/mgr/ceph_api: Promptify example commands in index.rst
Use the more modern prompt block instead of
using code blocks for example commands.

Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
2023-07-28 11:49:19 +07:00
Ville Ojamo
dd16ad9055 doc/radosgw: Add missing space to date option spec in admin.rst
The start time and end time CLI option specification is missing a space between the date and the optional time value. Also expand the text to talk about "optional time" after the date.

Signed-off-by: Ville Ojamo <14869000+bluikko@users.noreply.github.com>
2023-07-28 10:54:06 +07:00
Ilya Dryomov
23f9ebb115
Merge pull request #52549 from cbodley/wip-qa-distros-centos9-no-copr
qa/distros: disable ceph/el9 copr workaround for missing python deps

Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
2023-07-27 21:40:07 +02:00
zdover23
8e6c03fdda
Merge pull request #52671 from zdover23/wip-doc-2023-07-27-readmemd-2-of-x
doc: update README.md install procedure

Reviewed-by: Anthony D'Atri <anthony.datri@gmail.com>
2023-07-28 05:11:44 +10:00
Ronen Friedman
190be730ff
Merge pull request #52591 from ronen-fr/wip-rf-cephx-init
cephx: initializing two member variables in the ctors


Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Reviewed-by: Adam C. Emerson <aemerson@redhat.com>
2023-07-27 19:13:06 +03:00
Ronen Friedman
c14e94d0d1
Merge pull request #52590 from ronen-fr/wip-rf-res-type2
osd/scrub: fixing & improving ReservationTimeout handler messages

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2023-07-27 18:24:06 +03:00
Adam King
408c1cc056
Merge pull request #52084 from rhcs-dashboard/fix-exporter-addrs
exporter: ceph-exporter scrapes failing on multi-homed server

Reviewed-by: Adam King <adking@redhat.com>
Reviewed-by: Juan Miguel Olmo Martínez <jolmomar@ibm.com>
Reviewed-by: Redouane Kachach <rkachach@redhat.com>
2023-07-27 09:58:51 -04:00
Zac Dover
0b0009bf1f doc: update README.md install procedure
Add instructions directing the reader to install the "python3-routes"
package. This package is required in order to launch the dashboard after
the installation procedure has completed, but is not yet included in the
install-deps.sh script.

Signed-off-by: Zac Dover <zac.dover@proton.me>
2023-07-27 21:49:19 +10:00
Venky Shankar
67f334d047 Merge PR #52376 into main
* refs/pull/52376/head:
	mds: skip forwarding request if the session were removed

Reviewed-by: Dhairya Parmar <dparmar@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
2023-07-27 16:38:36 +05:30