title: Is it ever possible to reduce pg_num for specific pool
body: <p>It's sad that I found it's not allowed by <code>ceph</code> cli to decrease the value of <code>pg_num</code> for a specific <code>pool</code>. </p>
  
  <p><code>ceph osd pool set .rgw.root pg_num 32</code>  </p>
  
  <p>The error is shown:<br>
  <code>Error EEXIST: specified pg_num 32 &lt;= current 128</code></p>
  
  <p>The tutorial from <a href="https://docs.ceph.com/docs/mimic/rados/operations/placement-groups/" rel="nofollow noreferrer">placement-groups</a> is about to tell me what is it and how to set the best value of it. But there is seldom any tutorial about how to reduce the <code>pg_num</code> without re-installing ceph or delete the pool firstly, like <a href="https://swamireddy.wordpress.com/2017/04/18/ceph-reduce-the-pg-number-on-a-pool/" rel="nofollow noreferrer">ceph-reduce-the-pg-number-on-a-pool</a>.</p>
  
  <p>The existed SO thread <a href="https://stackoverflow.com/questions/40771273/ceph-too-many-pgs-per-osd">ceph-too-many-pgs-per-osd</a> shows us how to decide the best value. If I met the issue, how can I recover from the mess? </p>
  
  <p>If it's not easy to reduce the value pg_num, what's the story behind it? Why doesn't <code>ceph</code> expose the interface to reduce it? </p>