After an upgrade to firefly, the existing Ceph clusters do not have the
default erasure code profile. Although it may be created with
ceph osd erasure-code-profile set default
it was not included in the release notes and is confusing for the
administrator.
The *osd pool create* and *osd crush rule create-erasure* commands are
modified to implicitly create the default erasure code profile if it is
not found.
In order to avoid code duplication, the default erasure code profile
code creation that happens when a new firefly ceph cluster is created is
encapsulated in the OSDMap::get_erasure_code_profile_default method.
Conversely, handling the pending change in OSDMonitor is not
encapsulated in a function but duplicated instead. If it was a function
the caller would need a switch to distinguish between the case when goto
wait is needed, or goto reply or proceed because nothing needs to be
done. It is unclear if having a function would lead to smaller or more
maintainable code.
http://tracker.ceph.com/issues/8601Fixes: #8601
Backport: firefly
Signed-off-by: Loic Dachary <loic@dachary.org>
This option should be keyvaluestore_*, not osd_*.
Clean up the backend instantiation.
Signed-off-by: xinxin shu <xinxin.shu@intel.com>
Signed-off-by: Sage Weil <sage@redhat.com>
Let us create an implemenetation by name. Include a test_init() method
that will instantiate an instance and verify it could start up.
Signed-off-by: Sage Weil <sage@inktank.com>
To get back to the reformatting procedure that otherwise
occurs during MDLog::open, introduce an MDLog::reopen call
that MDS can use in the standbyreplay->standby transition
for the special case where the journal is old.
Fixes: #8869
Signed-off-by: John Spray <john.spray@redhat.com>
* Make boot_start private.
* Define boot stages in enum, replace int with type.
* Merge steps 0 and 1, 0 always fell through to 1.
* starting_done was only ever reached by a fall through
from the previous step, so call it directly from there.
Signed-off-by: John Spray <john.spray@redhat.com>
Refactor to:
* have somewhere to put some logic for doing
background recovery in future.
* trim a few lines from the oversized MDCache.cc
whereever we can.
Signed-off-by: John Spray <john.spray@redhat.com>
A bit of colission from spec changes for the rhel7/ceph-common
changes and alfredo's pull request for wip-die-ceph-mkcephfs.
Signed-off-by: Sandon Van Ness <sandon@inktank.com>
(cherry picked from commit 1526546ddc)
A bit of colission from spec changes for the rhel7/ceph-common
changes and alfredo's pull request for wip-die-ceph-mkcephfs.
Signed-off-by: Sandon Van Ness <sandon@inktank.com>
This should ensure that we don't hit this limit on all but the very biggest
clusters. We seen it hit on a ~500 OSD dumpling cluster.
Backport: firefly, dumpling
Signed-off-by: Sage Weil <sage@redhat.com>
There were two problems here:
* write_pos was modified through an undump/dump cycle,
because it was probed during recovery.
* stream format was being forgotten.
Signed-off-by: John Spray <john.spray@redhat.com>
Higher the clone probability to 8% and lower the probability of flatten
to 2%. This should give us longer parent chaines (before this we would
usually have one parent and even then only for a few ops time).
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Truncate base images after they have been cloned from to cover more
code paths and make sure that clients look at snapshot parent_overlap
(i.e. parent_overlap of the base image at the time the snapshot was
taken) and not that of the base image (i.e. parent_overlap of the base
image as of now).
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>