Discussion:
[ceph-users] Cannot delete a pool
Max Cuttins
2018-03-01 12:04:24 UTC
Permalink
I was testing IO and I created a bench pool.

But if I tried to delete I get:

Error EPERM: pool deletion is disabled; you must first set the
mon_allow_pool_delete config option to true before you can destroy a
pool

So I run:

ceph tell mon.\* injectargs '--mon-allow-pool-delete=true'
mon.ceph-node1: injectargs:mon_allow_pool_delete = 'true' (not
observed, change may require restart)
mon.ceph-node2: injectargs:mon_allow_pool_delete = 'true' (not
observed, change may require restart)
mon.ceph-node3: injectargs:mon_allow_pool_delete = 'true' (not
observed, change may require restart)

I restarted all the nodes.
But the flag has not been observed.

Is this the right way to remove a pool?
Chengguang Xu
2018-03-01 12:49:40 UTC
Permalink
Post by Max Cuttins
I was testing IO and I created a bench pool.
Error EPERM: pool deletion is disabled; you must first set the mon_allow_pool_delete config option to true before you can destroy a pool
ceph tell mon.\* injectargs '--mon-allow-pool-delete=true'
mon.ceph-node1: injectargs:mon_allow_pool_delete = 'true' (not observed, change may require restart)
mon.ceph-node2: injectargs:mon_allow_pool_delete = 'true' (not observed, change may require restart)
mon.ceph-node3: injectargs:mon_allow_pool_delete = 'true' (not observed, change may require restart)
I restarted all the nodes.
But the flag has not been observed.
Is this the right way to remove a pool?
IIRC, “not observed” means the option value could not dynamically get changed during online.
So you should set the option in the config file and restart monitor nodes.


Thanks,
Chengguang.
Eugen Block
2018-03-01 13:00:16 UTC
Permalink
It's not necessary to restart a mon if you just want to delete a pool,
even if the "not observed" message appears. And I would not recommend
to permanently enable the "easy" way of deleting a pool. If you are
not able to delete the pool after "ceph tell mon ..." try this:

ceph daemon mon.<YOUR_MON> config set mon_allow_pool_delete true

and then retry deleting the pool. This works for me without restarting
any services or changing config files.

Regards
Post by Max Cuttins
I was testing IO and I created a bench pool.
Error EPERM: pool deletion is disabled; you must first set the
mon_allow_pool_delete config option to true before you can destroy a
pool
ceph tell mon.\* injectargs '--mon-allow-pool-delete=true'
mon.ceph-node1: injectargs:mon_allow_pool_delete = 'true' (not
observed, change may require restart)
mon.ceph-node2: injectargs:mon_allow_pool_delete = 'true' (not
observed, change may require restart)
mon.ceph-node3: injectargs:mon_allow_pool_delete = 'true' (not
observed, change may require restart)
I restarted all the nodes.
But the flag has not been observed.
Is this the right way to remove a pool?
i think you need to set the option in the ceph.conf of the monitors.
and then restart the mon's one by one.
afaik that is by design.
https://blog.widodh.nl/2015/04/protecting-your-ceph-pools-against-removal-or-property-changes/
kind regards
Ronny Aasen
_______________________________________________
ceph-users mailing list
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
--
Eugen Block voice : +49-40-559 51 75
NDE Netzdesign und -entwicklung AG fax : +49-40-559 51 77
Postfach 61 03 15
D-22423 Hamburg e-mail : ***@nde.ag

Vorsitzende des Aufsichtsrates: Angelika Mozdzen
Sitz und Registergericht: Hamburg, HRB 90934
Vorstand: Jens-U. Mozdzen
USt-IdNr. DE 814 013 983
Max Cuttins
2018-03-01 15:41:31 UTC
Permalink
I get:

#ceph daemon mon.0 config set mon_allow_pool_delete true
admin_socket: exception getting command descriptions: [Errno 13]
Permission denied
Post by Eugen Block
It's not necessary to restart a mon if you just want to delete a pool,
even if the "not observed" message appears. And I would not recommend
to permanently enable the "easy" way of deleting a pool. If you are
ceph daemon mon.<YOUR_MON> config set mon_allow_pool_delete true
and then retry deleting the pool. This works for me without restarting
any services or changing config files.
Regards
Post by Max Cuttins
I was testing IO and I created a bench pool.
   Error EPERM: pool deletion is disabled; you must first set the
   mon_allow_pool_delete config option to true before you can destroy a
   pool
   ceph tell mon.\* injectargs '--mon-allow-pool-delete=true'
   mon.ceph-node1: injectargs:mon_allow_pool_delete = 'true' (not
   observed, change may require restart)
   mon.ceph-node2: injectargs:mon_allow_pool_delete = 'true' (not
   observed, change may require restart)
   mon.ceph-node3: injectargs:mon_allow_pool_delete = 'true' (not
   observed, change may require restart)
I restarted all the nodes.
But the flag has not been observed.
Is this the right way to remove a pool?
i think you need to set the option in the ceph.conf of the monitors.
and then restart the mon's one by one.
afaik that is by design.
https://blog.widodh.nl/2015/04/protecting-your-ceph-pools-against-removal-or-property-changes/
kind regards
Ronny Aasen
_______________________________________________
ceph-users mailing list
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
Jean-Charles Lopez
2018-03-01 16:22:18 UTC
Permalink
Hi,

connect to the ceph-node1 machine and run : ceph daemon mon.ceph-node1 config set mon_allow_pool_delete true

You are just using the wrong parameter as an ID

JC
Post by Max Cuttins
#ceph daemon mon.0 config set mon_allow_pool_delete true
admin_socket: exception getting command descriptions: [Errno 13] Permission denied
Post by Eugen Block
ceph daemon mon.<YOUR_MON> config set mon_allow_pool_delete true
and then retry deleting the pool. This works for me without restarting any services or changing config files.
Regards
Post by Max Cuttins
I was testing IO and I created a bench pool.
Error EPERM: pool deletion is disabled; you must first set the
mon_allow_pool_delete config option to true before you can destroy a
pool
ceph tell mon.\* injectargs '--mon-allow-pool-delete=true'
mon.ceph-node1: injectargs:mon_allow_pool_delete = 'true' (not
observed, change may require restart)
mon.ceph-node2: injectargs:mon_allow_pool_delete = 'true' (not
observed, change may require restart)
mon.ceph-node3: injectargs:mon_allow_pool_delete = 'true' (not
observed, change may require restart)
I restarted all the nodes.
But the flag has not been observed.
Is this the right way to remove a pool?
i think you need to set the option in the ceph.conf of the monitors.
and then restart the mon's one by one.
afaik that is by design.
https://blog.widodh.nl/2015/04/protecting-your-ceph-pools-against-removal-or-property-changes/
kind regards
Ronny Aasen
_______________________________________________
ceph-users mailing list
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
_______________________________________________
ceph-users mailing list
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
David Turner
2018-03-01 16:28:31 UTC
Permalink
When dealing with the admin socket you need to be an admin. `sudu` or
`sudo -u ceph` ought to get you around that.

I was able to delete a pool just by using the injectargs that you showed
above.

ceph tell mon.\* injectargs '--mon-allow-pool-delete=true'
ceph osd pool rm pool_name pool_name --yes-i-really-really-mean-it
ceph tell mon.\* injectargs '--mon-allow-pool-delete=false'

If you see the warning 'not observed, change may require restart' you can
check to see if it took effect or not by asking the daemon what it's
setting is `ceph daemon mon.ceph_node1 config get mon_allow_pool_delete`.
Post by Max Cuttins
#ceph daemon mon.0 config set mon_allow_pool_delete true
admin_socket: exception getting command descriptions: [Errno 13]
Permission denied
Post by Eugen Block
It's not necessary to restart a mon if you just want to delete a pool,
even if the "not observed" message appears. And I would not recommend
to permanently enable the "easy" way of deleting a pool. If you are
ceph daemon mon.<YOUR_MON> config set mon_allow_pool_delete true
and then retry deleting the pool. This works for me without restarting
any services or changing config files.
Regards
Post by Max Cuttins
I was testing IO and I created a bench pool.
Error EPERM: pool deletion is disabled; you must first set the
mon_allow_pool_delete config option to true before you can destroy a
pool
ceph tell mon.\* injectargs '--mon-allow-pool-delete=true'
mon.ceph-node1: injectargs:mon_allow_pool_delete = 'true' (not
observed, change may require restart)
mon.ceph-node2: injectargs:mon_allow_pool_delete = 'true' (not
observed, change may require restart)
mon.ceph-node3: injectargs:mon_allow_pool_delete = 'true' (not
observed, change may require restart)
I restarted all the nodes.
But the flag has not been observed.
Is this the right way to remove a pool?
i think you need to set the option in the ceph.conf of the monitors.
and then restart the mon's one by one.
afaik that is by design.
https://blog.widodh.nl/2015/04/protecting-your-ceph-pools-against-removal-or-property-changes/
Post by Eugen Block
kind regards
Ronny Aasen
_______________________________________________
ceph-users mailing list
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
_______________________________________________
ceph-users mailing list
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
Max Cuttins
2018-03-01 17:09:10 UTC
Permalink
.... and now it worked.
................ maybe a typo in my first command.

Sorry
When dealing with the admin socket you need to be an admin.  `sudu` or
`sudo -u ceph` ought to get you around that.
I was able to delete a pool just by using the injectargs that you
showed above.
ceph tell mon.\* injectargs '--mon-allow-pool-delete=true'
ceph osd pool rm pool_name pool_name --yes-i-really-really-mean-it
ceph tell mon.\* injectargs '--mon-allow-pool-delete=false'
If you see the warning 'not observed, change may require restart' you
can check to see if it took effect or not by asking the daemon what
it's setting is `ceph daemon mon.ceph_node1 config get
mon_allow_pool_delete`.
#ceph daemon mon.0 config set mon_allow_pool_delete true
admin_socket: exception getting command descriptions: [Errno 13]
Permission denied
Post by Eugen Block
It's not necessary to restart a mon if you just want to delete a
pool,
Post by Eugen Block
even if the "not observed" message appears. And I would not
recommend
Post by Eugen Block
to permanently enable the "easy" way of deleting a pool. If you are
ceph daemon mon.<YOUR_MON> config set mon_allow_pool_delete true
and then retry deleting the pool. This works for me without
restarting
Post by Eugen Block
any services or changing config files.
Regards
Post by Max Cuttins
I was testing IO and I created a bench pool.
   Error EPERM: pool deletion is disabled; you must first set the
   mon_allow_pool_delete config option to true before you can
destroy a
Post by Eugen Block
Post by Max Cuttins
   pool
   ceph tell mon.\* injectargs '--mon-allow-pool-delete=true'
   mon.ceph-node1: injectargs:mon_allow_pool_delete = 'true' (not
   observed, change may require restart)
   mon.ceph-node2: injectargs:mon_allow_pool_delete = 'true' (not
   observed, change may require restart)
   mon.ceph-node3: injectargs:mon_allow_pool_delete = 'true' (not
   observed, change may require restart)
I restarted all the nodes.
But the flag has not been observed.
Is this the right way to remove a pool?
i think you need to set the option in the ceph.conf of the
monitors.
Post by Eugen Block
and then restart the mon's one by one.
afaik that is by design.
https://blog.widodh.nl/2015/04/protecting-your-ceph-pools-against-removal-or-property-changes/
Post by Eugen Block
kind regards
Ronny Aasen
_______________________________________________
ceph-users mailing list
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
_______________________________________________
ceph-users mailing list
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
Loading...