Placement group misplaced state
There are some temporary backfilling scenarios where a PG gets mapped temporarily to an
OSD. When that temporary situation should no longer be the case, the PGs might
still reside in the temporary location and not in the proper location. In which case, they are said
to be misplaced. That’s because the correct number of extra copies actually exist,
but one or more copies is in the wrong place.
For example, there are 3 OSDs: 0,1,2 and all PGs map to some permutation of those three. If you
add another OSD (OSD 3), some PGs will now map to OSD 3 instead of one of the others. However, until
OSD 3 is backfilled, the PG will have a temporary mapping allowing it to continue to serve I/O from
the old mapping. During that time, the PG is misplaced, because it has a temporary
mapping, but not degraded, since there are three copies.
Syntax
pg 1.5: up=acting: [0,1,2]
ADD_OSD_3
pg 1.5: up: [0,3,1] acting: [0,1,2]
[0,1,2] is a temporary mapping, so the up set is not equal to
the acting set and the PG is misplaced but not
degraded since [0,1,2] is still three copies.
Example
pg 1.5: up=acting: [0,3,1]
OSD 3 is now backfilled and the temporary mapping is removed, not degraded and not misplaced.