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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
* 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>
* 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>
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>
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>