Ceph Management API


Provide a REST API endpoint for carrying out Ceph monitoring and management tasks.


  • Dan Mick (Inktank)

Interested Parties

  • Sage Weil (Inktank)
  • Danny Al-Gaaf
  • Josh Durgin
  • Joao Luis
  • Xiaoxi Chen (Intel)
  • Loic Dachary
  • Wido den Hollander (42on)
  • Hunter Nield (Acaleph)
  • Xiaobing Zhou(xzhou40 (AT)

Current Status

Currently the cluster is managed by manual modification of configuration and CRUSH map files, application of command operations with the ceph CLI tool (and occasionally the rados and cephfs tools), and manual examination of log files. Each of the CLI tools interacts with the cluster as a "monclient", or client of the monitor cluster, by sending network messages to and from the monitors.

Detailed Description

Work on this project has begun. Two phases were identified:

  1. Recode the CLI to split out the command parsing/validation into a front-end. The first front-end will
    • query the underlying ceph command to discover a list of valid commands and parameters
    • validate user input against this command list, and return errors/help when invalid without contacting the monitors
    • pass the request to the monitors in regular validated form, factoring out common options
    • provide detailed help about each command, again discovered from the ceph tool
    • provide BASH completion for the command/parameters
    • simplify/harden monitor code by putting common parsing/marshalling in a generic front end
  2. Write a new webserver to provide similar functionality for the RESTful endpoint
    • leverage the mechanisms created for phase 1
    • run independently from the monitors/OSDs
    • allow for multiple daemons for load balancing/redundancy
    • authenticate/validate requests
    • allow user discovery of APIs by querying the endpoint without a request
    • provide at least the set of commands supported by the CLI, but probably...
    • ...provide expanded summary/monitoring commands

Work items