Commit Graph

102686 Commits

Author SHA1 Message Date
Sage Weil
e234d6731e osd/PeeringState: make proc_lease, recalc_readable_until more verbose
Signed-off-by: Sage Weil <sage@redhat.com>
2019-09-28 11:51:18 -05:00
Sage Weil
a04f5c2826 osd: is_replica() -> is_nonprimary()
The 'replica' term does not map well onto EC pools.  More importantly,
the implementation is often wrong for EC pools, where role may be 0 or 1
for EC pools independent of whether the OSD is the primary or not.

Introduce 'nonprimary' to mean an acting osd that is not the primary.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-09-28 11:51:18 -05:00
Sage Weil
70a037f6f4 osd/PeeringState: piggyback pg_lease on MOSDPGLog
We only do this for primary -> replica, so we only need to proc_lease()
from the replica states.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-09-28 11:51:18 -05:00
Sage Weil
39529a7f92 osd/PeeringState: piggyback lease and ack on activation messages
The lease goes out with the MOSDPGLog or info, and the ack comes back with
the info.

We no longer need to renew the lease explicitly in
all_activated_and_committed() because we *just* piggybacked on activation.
We can just wait for the normal renew event to fire.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-09-28 11:51:18 -05:00
Sage Weil
c8383b7c9f osd/PeeringState: renew before activate messages; send after activated
We want to renew before we prepeare or send activate messages so that we
have the opportunity to include leases in them (coming soon!).

And we do not want to send explicit lease messages until we know that the
peers have activate.  In particular, we want to avoid queueing a notify
(via pending_activators) and then sending a lease that will arrive before
it.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-09-28 11:51:18 -05:00
Sage Weil
e2d95c4ece osd/PeeringState: notice 'dead' prior_readable OSDs
If we see that a prior_readable_down_osd is known to be dead, we can
remove it from the set.  And if the set is empty, we can skip the rest of
our waiting period and leave the WAIT state.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-09-28 11:51:18 -05:00
Sage Weil
f23434ea3a osd/PeeringState: track down OSDs relevant to prior_readable_until_ub
Keep track of which OSDs from the prior set we care about that affect
the prior_readable_until_ub.  Note that it is only the *down* OSDs that
we have to track here, since everything in the *probe* set we will already
contact during peering (they are still up), guaranteeing that those PGs
are aware of the interval change and are no longer readable in the prior
interval.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-09-28 11:51:18 -05:00
Sage Weil
379bf4b423 qa/suites/rados/singleton-nomsg/osd_stale_reads.yaml
Signed-off-by: Sage Weil <sage@redhat.com>
2019-09-28 11:51:18 -05:00
Kefu Chai
a118ba0eda do_cmake.sh: disable amqp and rdma on RHEL/CentOS 8
RHEL/CentOS 8 does not offer librabbitmq-devel, libibverbs-devel and
librdmacm-devel at this moment. so disable these features now.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-09-28 22:20:35 +08:00
Kefu Chai
612376a749 do_cmake.sh: set WITH_RADOSGW_AMQP_ENDPOINT using ARGS
so we can extend ARGS in a more unified way

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-09-28 22:20:35 +08:00
Kefu Chai
e92cb7a033 ceph.spec.in: disable "make check" for rhel8
following packages are not available on RHEL/CentOS 8, they are for
dashboard unit tests. so disable all python packages for dashboard
tests for now:

python-cherrypy
python-coverage
python-pecan
python-routes
python-tox
xmlsec1-devel

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-09-28 22:20:35 +08:00
Kefu Chai
dd133840b9 ceph.spec.in: disable cephfs_java and amqp_endpoint if RHEL8
RHEL/CentOS 8 does not offer junit and sharutils yet, so disable
cephfs_java on rhel8 at this moment.

RHEL/CentOS 8 does not offer librabbitmq-devel yet, so disable
amqp_endpoint on rhel8 at this moment.

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-09-28 22:20:35 +08:00
Kefu Chai
80ec43792b install-deps.sh: only install python-srpm-macros for required macros
the reason why we need to install these macros is to solve the
egg-chicken problem -- to set `_python_buildid` and `python3_pkgversion`
so that we can prepare the build dependencies and install them. in which,
`_python_buildid` is defined using `python3_pkgversion`. this macro is
offered by python-srpm-macros.

the other macros, like `python3_sitelib` and `__python3` are offered by
`python3-rpm-macros`.

this change also avoid the issue if we install `*rpm-macros` on CentOS8:

Error:
 Problem: package R-rpm-macros-1.1.0-2.el8.noarch requires /usr/bin/Rscript, but none of the providers can be installed
  - package R-rpm-macros-1.1.0-2.el8.noarch requires R-core, but none of the providers can be installed
  - conflicting requests
  - nothing provides libRblas.so()(64bit) needed by R-core-3.6.1-1.el8.x86_64
  - nothing provides openblas-Rblas needed by R-core-3.6.1-1.el8.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-09-28 22:20:35 +08:00
Kefu Chai
e741238745
Merge pull request #30441 from anthonyeleven/master
osd: Change osd op queue cut off default to high

Reviewed-by: Samuel Just <sjust@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
2019-09-28 16:05:05 +08:00
Kefu Chai
39a5de35d1
Merge pull request #30581 from liewegas/wip-write-returns
osd: allow rados write ops to return data and error codes

Reviewed-by: Samuel Just <sjust@redhat.com>
2019-09-28 16:03:11 +08:00
Kefu Chai
411cd14db6
Merge pull request #30454 from trociny/wip-41891
osd: fix possible crash on sending dynamic perf stats report

Reviewed-by: Jason Dillaman <dillaman@redhat.com>
2019-09-28 16:01:37 +08:00
Kefu Chai
c3f046c2dc
Merge pull request #30544 from tchaikov/wip-check-getentropy-at-runtime
auth/Crypto: fallback to /dev/urandom if getentropy() fails

Reviewed-by: Chang Liu <liuchang0812@gmail.com>
Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
2019-09-28 11:19:06 +08:00
Kefu Chai
dea5787582 mgr/BaseMgrStandbyModule: drop GIL in ceph_get_module_option()
always drop GIL when performing block ops

Fixes: https://tracker.ceph.com/issues/42087
Signed-off-by: Kefu Chai <kchai@redhat.com>
2019-09-28 09:06:03 +08:00
xie xingguo
86444dbfe5 mgr/balancer: add per pool concurrent optimization limit
the main point is that in general we have physical isolated storage
pools in our products, so the cluster-wide target_max_misplaced_ratio
option would not make much sense in such case.
Introducing a fine-grained alternate throttling mechanism instead make
things much better now!

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
2019-09-28 08:31:45 +08:00
xie xingguo
d7ea56f3df mgr/balancer: upmap_max_iterations -> upmap_max_optimizations
With osd_calc_pg_upmaps_aggressively on we might have to iterate
hundreds or thousands of times to figure out an optimization,
but upmap_max_optimizations will remain a hard limit for the
total optimizations that can be returned.

Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
2019-09-28 08:31:45 +08:00
Samuel Just
07c8c0056c fio_ceph_objectstore: add option to cycle throttle values during test
Signed-off-by: Samuel Just <sjust@redhat.com>
2019-09-27 15:55:18 -07:00
Samuel Just
624925f1fb fio_ceph_objectstore: add check_files option to validate object existence/size
Signed-off-by: Samuel Just <sjust@redhat.com>
2019-09-27 15:55:18 -07:00
Samuel Just
4d272b98c5 bluestore: revamp tracepoints, add sampling
This patch adds per-io bluestore specific tracepoints detailing the
throttle state at queue time as well as state latencies during
execution.  Additionally, bluestore_throttle_trace_rate will limit
the rate at which ios have tracepoints emitted.

Signed-off-by: Samuel Just <sjust@redhat.com>
2019-09-27 15:55:18 -07:00
Samuel Just
a2fa546d02 bluestore: consolidate state transitions and throttles into BlueStoreThrottle
This will make it easier to have a single place to emit trace information.

Signed-off-by: Samuel Just <sjust@redhat.com>
2019-09-27 15:55:18 -07:00
Samuel Just
c261ea9a45 src/kv: add support for fetching implementation specific properties
Only implemented for rocksdb for now.

Signed-off-by: Samuel Just <sjust@redhat.com>
2019-09-27 15:55:18 -07:00
Samuel Just
dbf1d2a535 common/Throttle: maintain count even if disabled
Otherwise, it will behave incorrectly if enabled dynamically.

Signed-off-by: Samuel Just <sjust@redhat.com>
2019-09-27 15:55:18 -07:00
Samuel Just
e1ca955a63 msg/async: fix timestamp members specific to EVENTTRACE
Signed-off-by: Samuel Just <sjust@redhat.com>
2019-09-27 15:55:18 -07:00
Samuel Just
b7ab4ea012 common/EventTrace: default to log level 30 for text logging
By nature, these tend to be extremely high volume.

Signed-off-by: Samuel Just <sjust@redhat.com>
2019-09-27 15:55:18 -07:00
Samuel Just
670e00a06a */CMakeLists: add EVENTTRACE as cmakedefine, require LTTNG
Because EVENTTRACE now implies LTTNG, also cleanup EVENTTRACE
conditions to assume LTTNG.

Also add missing eventtrace dependencies to rbd and
test/objectstore.

Signed-off-by: Samuel Just <sjust@redhat.com>
2019-09-27 15:55:18 -07:00
Samuel Just
8986d0cc06 fio_ceph_objectstore: clean up formatted output, add option to write to file
Signed-off-by: Samuel Just <sjust@redhat.com>
2019-09-27 15:55:18 -07:00
Kefu Chai
417e9318ee
Merge pull request #30526 from uweigand/endian-private
include,os: Make ceph_le member private

Reviewed-by: Kefu Chai <kchai@redhat.com>
2019-09-28 02:05:29 +08:00
Ulrich Weigand
7e2b15374c bloom-filter: Remove POD overloads for insert and contains
These are not used in Ceph code currently, and should not
be used in the future either, since any use will introduce
byte-order dependent behavior.  Remove them to prevent
accidental use.

Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
2019-09-27 19:39:51 +02:00
Ulrich Weigand
ef17972992 bloom-filter: Improve test cases
The integer bloom filter test cases do not really match typical usage
of the bloom filter in actual Ceph code.  In particular:

- the tests use consecutive integer ranges, while Ceph code uses
  hash values uniformly distributed over the uint32_t space;

- the tests pass "int" to the insert and contains functions, which
  causes the generic C++ POD type overload to be selected instead
  of the uint32_t overload that is used by Ceph code.  The POD
  overload is dependent on host byte order, and behaves actually
  different from the uint32_t overload on little-endian systems.

To fix these issues, this patch changes the integer tests to
always pass in uint32_t (instead of int), and to use results
of a pseudo-random number generator instead of consecutive
sequences.  (We assume the period of the generator is long
enough that all values generated within one test instance
are distinct.)

This not only makes the test pass on both big- and little-endian
hosts now, but it also allows tightening of the allowable actual
false positive rates, as they now match much closer the expected
values.

Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
2019-09-27 19:39:51 +02:00
Sage Weil
dff5697464 Merge PR #30525 into master
* refs/pull/30525/head:
	qa/tasks/ceph.conf.template: disable power-of-2 warning
	qa/standalone/mon/health-mute: use power of 2 for pg_num
	osd/OSDMap: remove remaining g_conf() usage
	PendingReleaseNotes: add note for 14.2.5 so we can backport this
	osd/OSDMap: health alert for non-power-of-two pg_num

Reviewed-by: Kai Wagner <kwagner@suse.com>
Reviewed-by: Nathan Cutler <ncutler@suse.com>
Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
2019-09-27 12:08:37 -05:00
Sage Weil
964bed7e2f Merge PR #30431 into master
* refs/pull/30431/head:
	pybind/ceph_argparse: add :int or :float to numerical args
	pybind/ceph_argparse: simplify osd name and target types
	pybind/ceph_argparse: prefer field names to types in help output
	pybind/ceph_argparse: more concise n=N '...'
	pybind/ceph_argparse: [] (not {}) around optional args

Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2019-09-27 10:11:58 -05:00
Lenz Grimmer
2a143bfd1f
mgr/dashboard: Support minimum password complexity rules (#29532)
mgr/dashboard: Support minimum password complexity rules

Reviewed-by: Stephan Müller <smueller@suse.com>
Reviewed-by: Volker Theile <vtheile@suse.com>
2019-09-27 13:54:17 +00:00
Lenz Grimmer
1892a4e7a5
mgr/dashboard: CephFS snapshots/quota REST API (#30256)
mgr/dashboard: CephFS snapshots/quota REST API

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Kiefer Chang <kiefer.chang@suse.com>
Reviewed-by: Laura Paduano <lpaduano@suse.com>
Reviewed-by: Stephan Müller <smueller@suse.com>
2019-09-27 13:45:28 +00:00
Sage Weil
4b8574059f Merge PR #30577 into master
* refs/pull/30577/head:
	qa/suites/rados/thrash-old-clients: tolerate MON_DOWN

Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
2019-09-27 08:22:27 -05:00
Lenz Grimmer
2ad8e2eed5
Merge pull request #30599 from votdev/issue_41797_url_prefix
mgr/dashboard: Configuring an URL prefix does not work as expected

Reviewed-by: Ernesto Puerta <epuertat@redhat.com>
Reviewed-by: Stephan Müller <smueller@suse.com>
2019-09-27 12:31:32 +00:00
Jeff Layton
5b36293ab8 vstart_runner: allow the use of it with kernel mounts
Add a new command-line switch to allow it to use the kernel client
instead, and add all of the machinery to handle local kcephfs mounts.

Document this in the developer guide, along with the appropriate scary
warnings about using this on a machine that you care about. While we're
in there, also correct a typo about FUSE configuration.

Fixes: https://tracker.ceph.com/issues/41910
Signed-off-by: Jeff Layton <jlayton@redhat.com>
2019-09-27 08:23:07 -04:00
Igor Fedotov
3f79b19768 os/bluestore: fix invalid stray shared blob detection in fsck.
This is a regression, caused by https://github.com/ceph/ceph/pull/30264

Signed-off-by: Igor Fedotov <ifedotov@suse.com>
2019-09-27 13:51:54 +03:00
Nathan Cutler
517337e1b1
Merge pull request #30597 from smithfarm/wip-opensuse-15.1
qa/distros/all: add openSUSE 15.1, drop openSUSE 12.2

Reviewed-by: Gregory Farnum <gfarnum@redhat.com>
Reviewed-by: Kyr Shatskyy <kyrylo.shatskyy@suse.de>
2019-09-27 11:59:10 +02:00
Nathan Cutler
b4cec5a121
Merge pull request #30430 from smithfarm/wip-release-schedule-14.2.4
doc/releases/schedule.rst: add 14.2.3, 14.2.4, 15.0.0 and drop dumpling

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Abhishek Lekshmanan <abhishek@suse.com>
2019-09-27 11:58:32 +02:00
Jos Collin
a58a6cde31
doc: protection for 'fs volume rm' command
Fixes: https://github.com/ceph/ceph/pull/30381#discussion_r324866953
Signed-off-by: Jos Collin <jcollin@redhat.com>
2019-09-27 15:17:39 +05:30
Jos Collin
f1b9e90d7f
qa/tasks: add/update tests for --yes-i-really-mean-it
Fixes: https://tracker.ceph.com/issues/41841
Signed-off-by: Jos Collin <jcollin@redhat.com>
2019-09-27 15:17:34 +05:30
Jos Collin
59cf9beb31
mgr/volumes: protection for 'fs volume rm' command
Fixes: https://tracker.ceph.com/issues/41841
Signed-off-by: Jos Collin <jcollin@redhat.com>
2019-09-27 15:17:27 +05:30
Lenz Grimmer
2f4c2440e8
Merge pull request #30478 from votdev/issue_41930_standby_dashboard
mgr/dashboard: Standby Dashboards don't handle all requests properly

Reviewed-by: Alfonso Martínez <almartin@redhat.com>
2019-09-27 09:37:37 +00:00
Sebastian Wagner
489d5b685b python-common: Add small Readme
Signed-off-by: Sebastian Wagner <sebastian.wagner@suse.com>
2019-09-27 11:16:47 +02:00
Kefu Chai
11c31c0995
Merge pull request #30501 from liewegas/bugfix-41913
ceph-objectstore-tool: better error message if pgid and object do not match

Reviewed-by: David Zafman <dzafman@redhat.com>
2019-09-27 16:16:37 +08:00
Venky Shankar
0a5032138b doc: document mds journaling
Fixes: http://tracker.ceph.com/issues/41783
Signed-off-by: Venky Shankar <vshankar@redhat.com>
2019-09-27 12:51:30 +05:30