mirror of
https://github.com/ceph/ceph
synced 2025-02-24 03:27:10 +00:00
osd: Handle objects on non-actingbackfill nodes during recovery
With this fix we can see more misplaced and no degraded when doing recovery to a new up/acting set with node(s) containing objects that are not longer part of up/acting. Signed-off-by: David Zafman <dzafman@redhat.com>
This commit is contained in:
parent
3818e8ed2c
commit
2b792c5077
@ -2635,6 +2635,17 @@ void PG::_update_calc_stats()
|
||||
}
|
||||
}
|
||||
|
||||
// Add recovery objects not part of actingbackfill to be used to reduce
|
||||
// degraded and account as misplaced.
|
||||
for (auto i = peer_info.begin() ; i != peer_info.end() ; ++i) {
|
||||
if (actingbackfill.find(i->first) == actingbackfill.end())
|
||||
object_copies += i->second.stats.stats.sum.num_objects;
|
||||
misplaced += i->second.stats.stats.sum.num_objects;
|
||||
++num_misplaced;
|
||||
}
|
||||
if (object_copies)
|
||||
dout(20) << __func__ << " objects not part of up/acting " << object_copies << dendl;
|
||||
|
||||
// Objects backfilled, sorted by # objects.
|
||||
set<pair<int64_t,pg_shard_t>> backfill_target_objects;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user