========================
 Placement Group States
========================

When checking a cluster's status (e.g., running ``ceph -w`` or ``ceph -s``), 
Ceph will report on the status of the placement groups. A placement group has 
one or more states. The optimum state for placement groups in the placement group
map is ``active + clean``. 

*creating*
  Ceph is still creating the placement group.

*activating*
  The placement group is peered but not yet active.

*active*
  Ceph will process requests to the placement group.

*clean*
  Ceph replicated all objects in the placement group the correct number of times.

*down*
  A replica with necessary data is down, so the placement group is offline.

*laggy*
  A replica is not acknowledging new leases from the primary in a timely fashion; IO is temporarily paused.

*wait*
  The set of OSDs for this PG has just changed and IO is temporarily paused until the previous interval's leases expire.

*scrubbing*
  Ceph is checking the placement group metadata for inconsistencies.

*deep*
  Ceph is checking the placement group data against stored checksums.

*degraded*
  Ceph has not replicated some objects in the placement group the correct number of times yet.

*inconsistent*
  Ceph detects inconsistencies in the one or more replicas of an object in the placement group
  (e.g. objects are the wrong size, objects are missing from one replica *after* recovery finished, etc.).

*peering*
  The placement group is undergoing the peering process

*repair*
  Ceph is checking the placement group and repairing any inconsistencies it finds (if possible).

*recovering*
  Ceph is migrating/synchronizing objects and their replicas.

*forced_recovery*
  High recovery priority of that PG is enforced by user.

*recovery_wait*
  The placement group is waiting in line to start recover.

*recovery_toofull*
  A recovery operation is waiting because the destination OSD is over its
  full ratio.

*recovery_unfound*
  Recovery stopped due to unfound objects.

*backfilling*
  Ceph is scanning and synchronizing the entire contents of a placement group
  instead of inferring what contents need to be synchronized from the logs of
  recent operations. Backfill is a special case of recovery.

*forced_backfill*
  High backfill priority of that PG is enforced by user.

*backfill_wait*
  The placement group is waiting in line to start backfill.

*backfill_toofull*
  A backfill operation is waiting because the destination OSD is over
  the backfillfull ratio.

*backfill_unfound*
  Backfill stopped due to unfound objects.

*incomplete*
  Ceph detects that a placement group is missing information about
  writes that may have occurred, or does not have any healthy
  copies. If you see this state, try to start any failed OSDs that may
  contain the needed information. In the case of an erasure coded pool
  temporarily reducing min_size may allow recovery.

*stale*
  The placement group is in an unknown state - the monitors have not received
  an update for it since the placement group mapping changed.

*remapped*
  The placement group is temporarily mapped to a different set of OSDs from what
  CRUSH specified.

*undersized*
  The placement group has fewer copies than the configured pool replication level.

*peered*
  The placement group has peered, but cannot serve client IO due to not having
  enough copies to reach the pool's configured min_size parameter.  Recovery
  may occur in this state, so the pg may heal up to min_size eventually.

*snaptrim*
  Trimming snaps.

*snaptrim_wait*
  Queued to trim snaps.

*snaptrim_error*
  Error stopped trimming snaps.

*unknown*
  The ceph-mgr hasn't yet received any information about the PG's state from an
  OSD since mgr started up.
