Commit Graph

125308 Commits

Author SHA1 Message Date
Casey Bodley
e3a6377099
Merge pull request #42196 from cbodley/wip-qa-rgw-rm-cephadm
qa/rgw: remove rgw_cephadm.yaml from rgw/singleton suite

Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
2021-07-21 13:14:35 -04:00
Kefu Chai
f54574d1ac doc/man/8/ceph-volume: specify "program" for subcommands
as per
https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html

> Like py:currentmodule, this directive produces no output. Instead, it
> serves to notify Sphinx that all following option directives document
> options for the program called name.
> ...
> The program name may contain spaces (in case you want to document
> subcommands like svn add and svn commit separately).

and to avoid the warnings like:

doc/man/8/ceph-volume.rst:424: WARNING: Duplicate explicit target name:
"cmdoption-ceph-volume-h".

we should specify different "program" for different set of options.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-22 01:13:54 +08:00
Casey Bodley
255293bd80
Merge pull request #42317 from cbodley/wip-39657
rgw multisite: metadata sync treats all errors as 'transient' for retry

Reviewed-by: Shilpa Jagannath <smanjara@redhat.com>
2021-07-21 13:13:54 -04:00
Casey Bodley
c896b05a6a
Merge pull request #41800 from BryceCao/wip-modfiy-XML-when-deleterole-take-error
rgw : modfiy error XML for deleterole

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2021-07-21 13:12:29 -04:00
Casey Bodley
4833b6cb1d
Merge pull request #41858 from BryceCao/wip-del-tenant-parse-in-createrole
rgw : add check for tenant provided in RGWCreateRole

Reviewed-by: Pritha Srivastava <prsrivas@redhat.com>
2021-07-21 13:11:44 -04:00
Casey Bodley
1acee2ab76
Merge pull request #42361 from cbodley/wip-49747
qa/rgw: add failing tempest test to blocklist

Reviewed-by: Ali Maredia <amaredia@redhat.com>
2021-07-21 13:10:30 -04:00
Casey Bodley
a59b6f2cf5
Merge pull request #35153 from BryceCao/wip-swift-create-bucket-constraint
rgw : skip bucket name detection for system request

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2021-07-21 13:09:10 -04:00
Casey Bodley
54235daf52
Merge pull request #35061 from joke-lee/rgw-multisite-forward-policy-accessblock
rgw: forward request in multisite for RGWDeleteBucketPolicy and RGWDeleteBucketPublicAccessBlock

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2021-07-21 13:07:34 -04:00
Casey Bodley
1ae13faf75
Merge pull request #42273 from dabukalam/object-lock-retain-date-iso8601
rgw: Dump Object Lock Retain Date as ISO 8601

Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
2021-07-21 13:06:47 -04:00
Kefu Chai
b4920f071e
Merge pull request #42425 from cbodley/wip-42788
test/rgw: fix use of poll() with timers in unittest_rgw_dmclock_scheduler

Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-07-22 00:13:09 +08:00
Kefu Chai
ec8a40b08f qa/tasks/mgr: clean crash reports before waiting for clean
otherwise we have following warning in health report

{"status":"HEALTH_WARN","checks":{"RECENT_MGR_MODULE_CRASH":{"severity":"HEALTH_WARN","summary":{"message":"1 mgr modules have recently crashed","count":1},"muted":false}},"mutes":[]}

and it does not disappear after the test waits for 30 seconds.
and the tasks.mgr.test_module_selftest.TestModuleSelftest test
fails like:

2021-07-21T09:59:52.560 INFO:tasks.cephfs_test_runner:======================================================================
2021-07-21T09:59:52.561 INFO:tasks.cephfs_test_runner:ERROR: test_module_commands (tasks.mgr.test_module_selftest.TestModuleSelftest)
2021-07-21T09:59:52.561 INFO:tasks.cephfs_test_runner:----------------------------------------------------------------------
2021-07-21T09:59:52.561 INFO:tasks.cephfs_test_runner:Traceback (most recent call last):
2021-07-21T09:59:52.562 INFO:tasks.cephfs_test_runner:  File "/home/teuthworker/src/git.ceph.com_ceph-c_6a5d5abc027f706687dec92f92ff6fc6f074d2ae/qa/tasks/mgr/test_module_selftest.py", line 201, in
test_mo
dule_commands
2021-07-21T09:59:52.562 INFO:tasks.cephfs_test_runner:    self.wait_for_health_clear(timeout=30)
2021-07-21T09:59:52.562 INFO:tasks.cephfs_test_runner:  File "/home/teuthworker/src/git.ceph.com_ceph-c_6a5d5abc027f706687dec92f92ff6fc6f074d2ae/qa/tasks/ceph_test_case.py", line 172, in
wait_for_health_c
lear
2021-07-21T09:59:52.563 INFO:tasks.cephfs_test_runner:    self.wait_until_true(is_clear, timeout)
2021-07-21T09:59:52.563 INFO:tasks.cephfs_test_runner:  File "/home/teuthworker/src/git.ceph.com_ceph-c_6a5d5abc027f706687dec92f92ff6fc6f074d2ae/qa/tasks/ceph_test_case.py", line 209, in
wait_until_true
2021-07-21T09:59:52.563 INFO:tasks.cephfs_test_runner:    raise TestTimeoutError("Timed out after {0}s and {1} retries".format(elapsed, retry_count))
2021-07-21T09:59:52.564 INFO:tasks.cephfs_test_runner:tasks.ceph_test_case.TestTimeoutError: Timed out after 30s and 0 retries

in this change, the crash reports are nuked right after
we see the warning, so that we can have a clean health
report.

Fixes: https://tracker.ceph.com/issues/51743
Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-21 22:46:18 +08:00
Neha Ojha
2c528248df
Merge pull request #42410 from ronen-fr/wip-ronenf-standalone-repair
qa/standalone: fixing the timings when waiting for deep-scrub to start

Reviewed-by: Neha Ojha <nojha@redhat.com>
Reviewed-by: Sridhar Seshasayee <sseshasa@redhat.com>
2021-07-21 06:57:41 -07:00
Radoslaw Zarzynski
82eb614ce5 crimson/os: let AlienStore adapt MemStore.
This is useful in perf testing and benchmarking as it allows,
through comparison with `CyanStore`, to judge to pentalty of
`AlienStore`.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-07-21 13:11:16 +00:00
Radoslaw Zarzynski
e6ed65db8b crimson/os: generalize AlienStore beyond BlueStore.
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-07-21 13:11:16 +00:00
Radoslaw Zarzynski
007133a6ac os: rework the factory of ObjectStore.
The goals here are:

1. make deprecation of `FileStore` easier as creational
   dependencies are segmented into a variant of `create()`
   that could be cut off altogether with `FileStore`.
2. Allow crimson adapt `create()` without burdening it with
   `FileStore`'s dependencies.
3. Simplify the implementation as a bunch of preprocessor
   directives accumulated there over the time.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-07-21 13:11:16 +00:00
Radoslaw Zarzynski
d0b8aeeea4 os: make MemStore suitable for AlienStore.
This boils down into 2 things:

1. building `MemStore` for crimson,
2. implementing the crimson-specific variant of `get_omap_values()`.

Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-07-21 13:11:16 +00:00
Sebastian Wagner
8e513c6c9b
Merge pull request #42430 from tchaikov/wip-cmake-qa-drop-mypy
cmake: drop "mypy" from tox envlist of "qa"

Reviewed-by: Sebastian Wagner <sewagner@redhat.com>
2021-07-21 08:58:18 +02:00
Kefu Chai
fa816c0586
Merge pull request #42418 from tchaikov/wip-crimson-nbd
crimson/tools/store_nbd: pass app.alien() down to FSDriver

Reviewed-by: Chunmei Liu <chunmei.liu@intel.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
2021-07-21 14:49:02 +08:00
Kefu Chai
351e0df4a2
Merge pull request #42367 from tchaikov/wip-cmake-Og
cmake: add "-Og" to CMAKE_C_FLAGS_DEBUG

Reviewed-by:  Ronen Friedman <rfriedma@redhat.com>
Reviewed-by: Willem Jan Withagen <wjw@digiware.nl>
2021-07-21 11:38:22 +08:00
Kefu Chai
c9707a989d
Merge pull request #42427 from tchaikov/wip-seastore-metric-cleanup
crimson/os/seastore: trade a map with a plain array

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Chunmei Liu <chunmei.liu@intel.com>
2021-07-21 11:25:40 +08:00
Kefu Chai
056065c7e6
Merge pull request #42429 from neha-ojha/wip-51638-cleanup
qa/*/test_envlibrados_for_rocksdb.sh: remove OS specific configuration

Reviewed-by: David Galloway <dgallowa@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-07-21 11:24:40 +08:00
Kefu Chai
286e46578d cmake: drop "mypy" from tox envlist of "qa"
this change partially reverts 81305b0da9,
otherwise we have following errors:

tasks/vstart_runner.py:691: error: Definition of "_run_python" in base class "LocalCephFSMount" is incompatible with definition in base class "CephFSMount"
tasks/vstart_runner.py:705: error: Definition of "_run_python" in base class "LocalCephFSMount" is incompatible with definition in base class "CephFSMount"

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-21 11:09:20 +08:00
Blaine Gardner
651b28f2e3
ceph-volume: use safer check for bluestore label
Using only the exit status of `ceph-bluestore-tool show-label` to
determine if a device is a bluestore OSD could report a false negative
if there is a system error when `ceph-bluestore-tool` opens the device.

A better check is to open the device and read the bluestore device
label (the first 22 bytes of the device) to look for the bluestore
device signature ("bluestore block device"). If ceph-volume fails to
open the device due to a system error, it is safest to assume the device
is BlueStore so that an existing OSD isn't overwritten.

Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
2021-07-20 12:24:37 -06:00
Kefu Chai
9e4157b39f crimson/os/seastore: trade a map with a plain array
simpler this way, as we don't need a std::map<> at all.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-21 01:09:41 +08:00
Kefu Chai
eabe3c5cee
Merge pull request #42261 from cyx1231st/wip-seastore-metrics-2
crimson/os/seastore: implement metrics at cache level

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-07-21 01:06:51 +08:00
Kefu Chai
169101e5fe
Merge pull request #42386 from liu-chunmei/seastore-metrics
crimson/seastore: add seastore operation latency metrics

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-07-21 01:05:34 +08:00
Casey Bodley
a8e3589a2c test/rgw: use spawn library for test_rgw_dmclock_scheduler
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2021-07-20 12:50:25 -04:00
Kefu Chai
dc1a8a8b0e
Merge pull request #41929 from sebastian-philipp/fix-qa-tox
qa: Various make check fixes

Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-07-21 00:36:59 +08:00
Mark Nelson
ac8cf275a6 common/options: Set osd_client_message_cap to 256.
This seems like a reasonable default value based on testing results here:
https://docs.google.com/spreadsheets/d/1dwKcxFKpAOWzDPekgojrJhfiCtPgiIf8CGGMG1rboRU/edit?usp=sharing

Eventually we may want to rethink how the throttles and even how flow control
works, but this at least gives us some basic limits now ( a little higher than
the old value of 100 that we used for many years).

Signed-off-by: Mark Nelson <mnelson@redhat.com>
2021-07-20 16:30:02 +00:00
Kefu Chai
50bff2d39d
Merge pull request #42419 from dsavineau/fix_typo_radosgw_admin_max_entries
doc/man/8/radosgw-admin: fix typo on max entries

Reviewed-by: Kefu Chai <kchai@redhat.com>
2021-07-20 23:40:13 +08:00
Sebastian Wagner
6be59759e3
Merge pull request #42289 from mgfritch/cephadm-test-create-daemon-dirs-prom
cephadm: use pyfakefs during test_create_daemon_dirs_prometheus

Reviewed-by: Patrick Seidensal <pseidensal@suse.com>
2021-07-20 17:35:09 +02:00
Sebastian Wagner
2cd3fc4c5b
Merge pull request #42028 from mgfritch/cephadm-infer-mismatch-fsid
cephadm: infer fsid from ceph.conf

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Sebastian Wagner <sewagner@redhat.com>
2021-07-20 17:34:15 +02:00
Sebastian Wagner
cb553909d3
Merge pull request #41280 from sebastian-philipp/test_cephadm-stdin
qa/workunits/test_cephadm: Also test stdin

Reviewed-by: Michael Fritch <mfritch@suse.com>
2021-07-20 17:33:20 +02:00
Dimitri Savineau
99166e1044 doc/man/8/radosgw-admin: fix typo on max entries
This fixes a typo for the --max-entries option.

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
2021-07-20 10:49:41 -04:00
Kefu Chai
9f70239ef0 crimson/tools/store_nbd: mark padding variable with [[maybe_unused]]
also silences -Wunused-variable warning from GCC

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-20 22:48:37 +08:00
Kefu Chai
8ec97762c4 crimson/tools/store_nbd: pass app.alien() down to FSDriver
this was an oversight in 8fad523d41

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-20 22:48:27 +08:00
Sebastian Wagner
250064bdcb
cephadm: haproxy 2.4 defaults to a different container user.
Another alternative would be to investigage a different setup
leverageing `--sysctl net.ipv4.ip_unprivileged_port_start=0`,
but that would be a larger PR.

Fixes: https://tracker.ceph.com/issues/51355

Signed-off-by: Sebastian Wagner <sewagner@redhat.com>
2021-07-20 16:10:36 +02:00
Dimitri Savineau
9eac2fba90 mgr/cephadm/templates: add jinja2 lint
This adds a jinja2 lint environment in tox for testing the cephadm jinja2
templates.

This patch fixes some minor jinja2 syntax for ganesha and keepalived even if
the current templates work perfectly.

Tags should have one (and only one) space

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
2021-07-20 09:58:15 -04:00
Kefu Chai
c7930b0a06 cmake: use string(APPEND ...) to concat strings
less repeating this way.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-20 20:20:06 +08:00
Kefu Chai
8e742424a7 cmake: add "-Og" to CMAKE_C_FLAGS_DEBUG
without specifying -Og, -O0 is used. as per
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

> -O0
>  Reduce compilation time and make debugging produce the expected
>  results. This is the default.

and

> -Og
>  Optimize debugging experience. -Og should be the optimization level of
>  choice for the standard edit-compile-debug cycle, offering a reasonable
>  level of optimization while maintaining fast compilation and a good
>  debugging experience. It is a better choice than -O0 for producing
>  debuggable code because some compiler passes that collect debug
>  information are disabled at -O0.

and Debug is the default built type if .git directory is found under
the root source directory, so by adding "-Og -g" to CMAKE_C_FLAGS_DEBUG,
developers can have better debugging experience when testing Ceph
built from a git repo. but the downside is that it might take longer
to build the tree.

this change should also enable us to link crimson on aarch64.

the same applies to Clang,

> -O0 Means “no optimization”: this level compiles the fastest and generates the most debuggable code.
> -O1 Somewhere between -O0 and -O2.
> -O2 Moderate level of optimization which enables most optimizations.
> -Og Like -O1. In future versions, this option might disable different optimizations in order to improve debuggability.

see
https://clang.llvm.org/docs/CommandGuide/clang.html#cmdoption-o0

see also https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101448

Fixes: https://tracker.ceph.com/issues/51441
Signed-off-by: Kefu Chai <kchai@redhat.com>
2021-07-20 20:20:06 +08:00
Casey Bodley
d373d07a9c
Merge pull request #42413 from galsalomon66/fix_s3tests_yaml
RGW:revert force-branch to be ceph-master (s3-tests)

Reviewed-by: Casey Bodley <cbodley@redhat.com>
2021-07-20 08:04:59 -04:00
Sebastian Wagner
669660e706
Merge pull request #42304 from sebastian-philipp/doc-dameon-add-note
doc/cephadm: add notes to `orch daemon add`

Reviewed-by: Dimitri Savineau <dsavinea@redhat.com>
Reviewed-by: Zac Dover <zac.dover@gmail.com>
2021-07-20 12:09:33 +02:00
Sebastian Wagner
657eacfc41
Merge pull request #42372 from sebastian-philipp/doc-cephadm-rgw-ssl
doc/cephadm: Add RGW ssl

Reviewed-by: Dimitri Savineau <dsavinea@redhat.com>
Reviewed-by: Zac Dover <zac.dover@gmail.com>
2021-07-20 12:09:20 +02:00
galsalomon66
7d4bc5a72c revert force-branch to be ceph-master
Signed-off-by: galsalomon66 <gal.salomon@gmail.com>
2021-07-20 12:48:00 +03:00
Yingxin Cheng
bdadcd56bb crimson/os/seastore/cache: report dirty extents usage
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-07-20 16:50:05 +08:00
Yingxin Cheng
3c8d12217e crimson/os/seastore/cache: report cached extents usage
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-07-20 16:48:27 +08:00
Yingxin Cheng
181e9110d4 crimson/os/seastore: measure read transaction efforts that are successful
In order to calculate the ratio of discarded vs successful effort from
read-only transactions.

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-07-20 16:48:21 +08:00
Yingxin Cheng
a981417833 crimson/os/seastore: measure transactional efforts that are discarded or committed
The efforts of a transaction include the number and bytes of its read,
mutate, retire and fresh extents, and the bytes of delta generated.

This helps to understand the following aspects:
* The ratio of discarded efforts vs committed efforts;
* The average efforts of a transaction;
* The distribution of read/mutate/delta/retire/fresh efforts;
* The memory overhead and potential disk overhead of a transaction;
* How early a transaction invalidation happens;
* The average extent length;

It is possible to extend the effort metrics to be labeled by extent
types, in case we want to distinguish and profile the efforts at the
sub-component level.

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-07-20 16:44:16 +08:00
Yingxin Cheng
21580723aa crimson/os/seastore: assert the committing delta is not empty
It makes no sense to commit an empty delta. It is mostly an issue that
user forget to generate delta during mutation, or there are futile
copy-on-write operations.

Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-07-20 16:19:44 +08:00
Yingxin Cheng
c21783d4bf crimson/os/seastore/cache: cleanup to use Cache::invalidate(t, conflicting_extent)
Signed-off-by: Yingxin Cheng <yingxin.cheng@intel.com>
2021-07-20 16:19:44 +08:00