Project

General

Profile

Bug #43311

Updated by xie xingguo over 4 years ago

When an osd that is part of current up set gets chosen as an 
 async_recovery_target, it gets removed from the acting set. 
 Since we don't allow any want that is larger than the pool size, 
 a pg must transit into UNDERSIZED when asynchronous recovery 
 eventually happens. 
 However, if that pg has one or more backfill targets, it might 
 spin UNDERSIZED for a long time during which mon will keep issuing 
 "PG_AVAILABILITY" warns until all backfill targets finally completes. 

 Below is an example: 

 <pre><code class="json"> 
  @ [root@host-192-168-9-13 ~]# ceph pg 1.1fc query 
         { 
             "state": "active+undersized+remapped+backfilling", 
             "snap_trimq": "[]", 
             "snap_trimq_len": 0, 
             "epoch": 16777, 
             "up": [ 
                 29, 
                 15, 
                 0 
             ], 
             "acting": [ 
                 29, 
                 54 
             ], 
             "backfill_targets": [ 
                 "15" 
             ], 
             "async_recovery_targets": [ 
                 "0" 
             ], 
             "acting_recovery_backfill": [ 
                 "0", 
                 "15", 
                 "29", 
                 "54" 
             ], 
 </code></pre> 
 ],@

Back