[pve-devel] [RFC storage/manager 00/20] pveceph storage.cfg management

Fabian Grünbichler f.gruenbichler at proxmox.com
Fri Aug 25 10:48:02 CEST 2017

this patch series implements storage.cfg management for pveceph-managed ceph
clusters. the following is implemented:

- add new 'pveceph' flag to RBD storages
- pveceph addstorage/lsstorages/removestorage to add/list/remove storage entries, per pool
- optionally adding/removing storages when creating/destroying a pool
- updating managed storage entries when creating/destroying a monitor

I am not 100% content with the API structure, which is the primary reason for
RFCing: currently the storage related API paths are located under
'/nodes/<node>/ceph/pool/<pool>/storage[/<storage>]'. it might be more flexible
regarding future changes to give them their own 'first-class' API endpoint like
'/nodes/<node>/ceph/storage[/<storage>]', and make <pool> a parameter?

that would allow stuff like listing all pveceph-managed storages at once. on
the other hand, 'pveceph addstorage <storage> -pool <pool>' is less natural
than 'pveceph addstorage <pool> <storage>' IMHO.

I was also thinking about renaming the API placeholder <name> to <pool_name> or
<pool> if we keep the current API schema, because with two placeholders/name
parameters it is better to be explicit.

furthermore, the whole PVE/API2/Ceph.pm is long overdue for a refactoring into
individual API modules and paths IMHO. I wonder whether it would be okay to
break backwards compatibility here since PVE 5.x does not (yet) have stable
pveceph support?


Fabian Grünbichler (2):
  rbd: add pveceph storage option
  rbd: allow modification of monhost option

 PVE/Storage/RBDPlugin.pm | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)


Fabian Grünbichler (18):
  ceph: refactor mon info retrieval
  ceph: add /etc/pve/priv/ceph path
  ceph: add monhash to monhost string helper
  ceph: add add_storage helper
  ceph: add get_storages helper
  ceph: add update_storage helper
  ceph: add remove_storage helper
  ceph: implement addstorage API path
  pveceph: add addstorage CLI command
  ceph: implement lsstorages API path
  pveceph: add lsstorages CLI command
  ceph: implement removestorage API path
  pveceph: add removestorage CLI command
  ceph/createpool: shorten pool variable name
  ceph/createpool: optionally add storages
  ceph/destroypool: optionally remove storages
  ceph/destroypool: refactor to use get_storages
  ceph: update storages after create/destroymon

 PVE/API2/Ceph.pm   | 396 ++++++++++++++++++++++++++++++++++++++++++++++-------
 PVE/CLI/pveceph.pm |  22 +++
 PVE/CephTools.pm   |   2 +
 3 files changed, 370 insertions(+), 50 deletions(-)


More information about the pve-devel mailing list