nodes / ceph
43 operations.
GET /nodes/{node}/ceph
proxmox.nodes.$(node).ceph.$get()Directory index.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
GET /nodes/{node}/ceph/cfg
proxmox.nodes.$(node).ceph.cfg.$get()Directory index.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
GET /nodes/{node}/ceph/cfg/db
proxmox.nodes.$(node).ceph.cfg.db.$get()Get the Ceph configuration database.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
GET /nodes/{node}/ceph/cfg/raw
proxmox.nodes.$(node).ceph.cfg.raw.$get()Get the Ceph configuration file.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
GET /nodes/{node}/ceph/cfg/value
proxmox.nodes.$(node).ceph.cfg.value.$get()Get configured values from either ceph.conf or the mon config DB. Underscores in section and key names are normalised to hyphens in the response, regardless of how they're written in the source.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
config-keys | string | yes | List of <section>:<config key> items separated by semicolon, comma or space. — ≤ 4096 chars |
node | string | yes | The cluster node name. — format pve-node |
GET /nodes/{node}/ceph/cmd-safety
proxmox.nodes.$(node).ceph["cmd-safety"].$get()Heuristical check if it is safe to perform an action.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
action | stop | destroy | yes | Action to check |
id | string | yes | ID of the service |
node | string | yes | The cluster node name. — format pve-node |
service | osd | mon | mds | yes | Service type |
GET /nodes/{node}/ceph/crush
proxmox.nodes.$(node).ceph.crush.$get()Get OSD crush map
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
GET /nodes/{node}/ceph/fs
proxmox.nodes.$(node).ceph.fs.$get()Directory index.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
POST /nodes/{node}/ceph/fs/{name}
proxmox.nodes.$(node).ceph.fs.$(name).$post()Create a Ceph filesystem
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
add-storage | boolean | Configure the created CephFS as storage for this cluster. — default 0 | |
name | string | The ceph filesystem name. — default "cephfs" | |
node | string | yes | The cluster node name. — format pve-node |
pg_num | number | Number of placement groups for the backing data pool. The metadata pool will use a quarter of this. — min 8, max 32768, default 128 |
DELETE /nodes/{node}/ceph/fs/{name}
proxmox.nodes.$(node).ceph.fs.$(name).$delete()Destroy a Ceph filesystem. Refuses if any PVE storage entry of type 'cephfs' still references the filesystem and is not disabled. Optionally also removes the storage entries and/or the underlying metadata and data pools.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
name | string | yes | The Ceph filesystem name. |
node | string | yes | The cluster node name. — format pve-node |
remove-pools | boolean | Remove the metadata and data pools used by this filesystem. — default 0 | |
remove-storages | boolean | Remove pveceph-managed storages configured for this filesystem. — default 0 |
POST /nodes/{node}/ceph/init
proxmox.nodes.$(node).ceph.init.$post()Create the initial Ceph default configuration and set up symlinks. Idempotent on re-call: if a [global] section already exists in ceph.conf, the existing fsid / auth / pool defaults are preserved and most parameters are silently ignored.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
cluster-network | string | Declare a separate cluster network, OSDs will route heartbeat, object replication and recovery traffic over it — format CIDR, ≤ 128 chars | |
disable_cephx | boolean | Disable cephx authentication. WARNING: cephx is a security feature protecting against man-in-the-middle attacks. Only consider disabling cephx if your network is private! — default 0 | |
min_size | number | Minimum number of available replicas per object to allow I/O — min 1, max 7, default 2 | |
network | string | Use specific network for all ceph related traffic — format CIDR, ≤ 128 chars | |
node | string | yes | The cluster node name. — format pve-node |
pg_bits | number | Placement group bits, used to specify the default number of placement groups. Depreacted. This setting was deprecated in recent Ceph versions. — min 6, max 14, default 6 | |
size | number | Targeted number of replicas per object — min 1, max 7, default 3 |
GET /nodes/{node}/ceph/log
proxmox.nodes.$(node).ceph.log.$get()Read ceph log
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
limit | number | Maximum number of log lines to return. Defaults to the dump_logfile limit (typically 50) when omitted. — min 0 | |
node | string | yes | The cluster node name. — format pve-node |
start | number | Offset of the first log line to return (0-based). — min 0 |
GET /nodes/{node}/ceph/mds
proxmox.nodes.$(node).ceph.mds.$get()MDS directory index.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
POST /nodes/{node}/ceph/mds/{name}
proxmox.nodes.$(node).ceph.mds.$(name).$post()Create Ceph Metadata Server (MDS)
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
hotstandby | boolean | Determines whether a ceph-mds daemon should poll and replay the log of an active MDS. Faster switch on MDS failure, but needs more idle resources. Deprecated: the setting was removed in Ceph 14.1.1. — default 0 | |
name | string | The ID for the mds, when omitted the same as the nodename — ≤ 200 chars, default "nodename" | |
node | string | yes | The cluster node name. — format pve-node |
DELETE /nodes/{node}/ceph/mds/{name}
proxmox.nodes.$(node).ceph.mds.$(name).$delete()Destroy Ceph Metadata Server
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
name | string | yes | The name (ID) of the mds |
node | string | yes | The cluster node name. — format pve-node |
GET /nodes/{node}/ceph/mgr
proxmox.nodes.$(node).ceph.mgr.$get()MGR directory index.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
POST /nodes/{node}/ceph/mgr/{id}
proxmox.nodes.$(node).ceph.mgr.$(id).$post()Create Ceph Manager
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
id | string | The ID for the manager, when omitted the same as the nodename. — ≤ 200 chars, default "nodename" | |
node | string | yes | The cluster node name. — format pve-node |
DELETE /nodes/{node}/ceph/mgr/{id}
proxmox.nodes.$(node).ceph.mgr.$(id).$delete()Destroy Ceph Manager.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
id | string | yes | The ID of the manager |
node | string | yes | The cluster node name. — format pve-node |
GET /nodes/{node}/ceph/mon
proxmox.nodes.$(node).ceph.mon.$get()Get Ceph monitor list.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
POST /nodes/{node}/ceph/mon/{monid}
proxmox.nodes.$(node).ceph.mon.$(monid).$post()Create a Ceph Monitor. Also auto-creates a Manager for the first monitor.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
mon-address | string | Overwrites autodetected monitor IP address(es). Must be in the public network(s) of Ceph. — format ip-list | |
monid | string | The ID for the monitor, when omitted the same as the nodename. — ≤ 200 chars, default "nodename" | |
node | string | yes | The cluster node name. — format pve-node |
DELETE /nodes/{node}/ceph/mon/{monid}
proxmox.nodes.$(node).ceph.mon.$(monid).$delete()Destroy a Ceph Monitor. Refuses to remove the last monitor of the cluster. Does not destroy any Manager on the same node; use /nodes/{node}/ceph/mgr/{id} for that.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
monid | string | yes | Monitor ID |
node | string | yes | The cluster node name. — format pve-node |
GET /nodes/{node}/ceph/osd
proxmox.nodes.$(node).ceph.osd.$get()Get Ceph osd list/tree.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
POST /nodes/{node}/ceph/osd
proxmox.nodes.$(node).ceph.osd.$post()Create OSD
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
crush-device-class | string | Set the device class of the OSD in crush. | |
db_dev | string | Block device name for block.db. | |
db_dev_size | number | Size in GiB for block.db. — min 1 | |
dev | string | yes | Block device name. |
encrypted | boolean | Enables encryption of the OSD. — default 0 | |
node | string | yes | The cluster node name. — format pve-node |
osds-per-device | number | OSD services per physical device. Only useful for fast NVMe devices to utilize their performance better. Mutually exclusive with 'db_dev' and 'wal_dev'. — min 1 | |
wal_dev | string | Block device name for block.wal. | |
wal_dev_size | number | Size in GiB for block.wal. — min 0.5 |
GET /nodes/{node}/ceph/osd/{osdid}
proxmox.nodes.$(node).ceph.osd.$(osdid).$get()OSD index.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
osdid | number | yes | OSD ID |
DELETE /nodes/{node}/ceph/osd/{osdid}
proxmox.nodes.$(node).ceph.osd.$(osdid).$delete()Destroy OSD
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
cleanup | boolean | If set, also destroy the underlying logical volumes via 'ceph-volume lvm zap --destroy', remove the volume group's physical volume with pvremove, and wipe any journal/block.db/block.wal partitions left over from filestore OSDs. Without this flag the LVs and partitions are left intact for inspection. — default 0 | |
node | string | yes | The cluster node name. — format pve-node |
osdid | number | yes | OSD ID |
POST /nodes/{node}/ceph/osd/{osdid}/in
proxmox.nodes.$(node).ceph.osd.$(osdid).in.$post()ceph osd in
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
osdid | number | yes | OSD ID |
GET /nodes/{node}/ceph/osd/{osdid}/lv-info
proxmox.nodes.$(node).ceph.osd.$(osdid)["lv-info"].$get()Get OSD volume details
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
osdid | number | yes | OSD ID |
type | block | db | wal | OSD device type — default "block" |
GET /nodes/{node}/ceph/osd/{osdid}/metadata
proxmox.nodes.$(node).ceph.osd.$(osdid).metadata.$get()Get OSD details
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
osdid | number | yes | OSD ID |
POST /nodes/{node}/ceph/osd/{osdid}/out
proxmox.nodes.$(node).ceph.osd.$(osdid).out.$post()ceph osd out
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
osdid | number | yes | OSD ID |
POST /nodes/{node}/ceph/osd/{osdid}/scrub
proxmox.nodes.$(node).ceph.osd.$(osdid).scrub.$post()Instruct the OSD to scrub.
Returns nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
deep | boolean | If set, instructs a deep scrub instead of a normal one. — default 0 | |
node | string | yes | The cluster node name. — format pve-node |
osdid | number | yes | OSD ID |
GET /nodes/{node}/ceph/pool
proxmox.nodes.$(node).ceph.pool.$get()List all pools and their settings (which are settable by the POST/PUT endpoints).
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
POST /nodes/{node}/ceph/pool
proxmox.nodes.$(node).ceph.pool.$post()Create Ceph pool
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
add_storages | boolean | Configure VM and CT storage using the new pool. Defaults to false for replicated pools and to true for erasure-coded pools (since EC pools are typically only useful when wired up to storage). — default 0 | |
application | rbd | cephfs | rgw | The application of the pool. — default "rbd" | |
crush_rule | string | The rule to use for mapping object placement in the cluster. | |
erasure-coding | string | Create an erasure coded pool for RBD with an accompaning replicated pool for metadata storage. With EC, the common ceph options 'size', 'min_size' and 'crush_rule' parameters will be applied to the metadata pool. | |
min_size | number | Minimum number of replicas per object — min 1, max 7, default 2 | |
name | string | yes | The name of the pool. It must be unique. |
node | string | yes | The cluster node name. — format pve-node |
pg_autoscale_mode | on | off | warn | The automatic PG scaling mode of the pool. — default "warn" | |
pg_num | number | Number of placement groups. — min 1, max 32768, default 128 | |
pg_num_min | number | Minimal number of placement groups. — max 32768 | |
size | number | Number of replicas per object — min 1, max 7, default 3 | |
target_size | string | The estimated target size of the pool for the PG autoscaler. | |
target_size_ratio | number | The estimated target ratio of the pool for the PG autoscaler. |
GET /nodes/{node}/ceph/pool/{name}
proxmox.nodes.$(node).ceph.pool.$(name).$get()Pool index.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
name | string | yes | The name of the pool. |
node | string | yes | The cluster node name. — format pve-node |
PUT /nodes/{node}/ceph/pool/{name}
proxmox.nodes.$(node).ceph.pool.$(name).$put()Change POOL settings
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
application | rbd | cephfs | rgw | The application of the pool. | |
crush_rule | string | The rule to use for mapping object placement in the cluster. | |
min_size | number | Minimum number of replicas per object — min 1, max 7 | |
name | string | yes | The name of the pool. It must be unique. |
node | string | yes | The cluster node name. — format pve-node |
pg_autoscale_mode | on | off | warn | The automatic PG scaling mode of the pool. | |
pg_num | number | Number of placement groups. — min 1, max 32768 | |
pg_num_min | number | Minimal number of placement groups. — max 32768 | |
size | number | Number of replicas per object — min 1, max 7 | |
target_size | string | The estimated target size of the pool for the PG autoscaler. | |
target_size_ratio | number | The estimated target ratio of the pool for the PG autoscaler. |
DELETE /nodes/{node}/ceph/pool/{name}
proxmox.nodes.$(node).ceph.pool.$(name).$delete()Destroy pool
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
force | boolean | If true, destroys pool even if in use — default 0 | |
name | string | yes | The name of the pool. It must be unique. |
node | string | yes | The cluster node name. — format pve-node |
remove_ecprofile | boolean | Remove the erasure code profile. Defaults to true, if applicable. — default 1 | |
remove_storages | boolean | Remove all pveceph-managed storages configured for this pool — default 0 |
GET /nodes/{node}/ceph/pool/{name}/status
proxmox.nodes.$(node).ceph.pool.$(name).status.$get()Show the current pool status.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
name | string | yes | The name of the pool. It must be unique. |
node | string | yes | The cluster node name. — format pve-node |
verbose | boolean | If enabled, will display additional data(eg. statistics). — default 0 |
GET /nodes/{node}/ceph/releases
proxmox.nodes.$(node).ceph.releases.$get()List all known Ceph releases, marking which ones can be installed on this node.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
POST /nodes/{node}/ceph/restart
proxmox.nodes.$(node).ceph.restart.$post()Restart ceph services.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
service | string | Ceph service name. — default "ceph.target" |
POST /nodes/{node}/ceph/restart-bulk
proxmox.nodes.$(node).ceph["restart-bulk"].$post()Rolling restart of all Ceph OSDs on this node. Each OSD is restarted only after Ceph reports the previous one is back up and the next one is safe to stop. For non-OSD Ceph daemons, use the cluster-wide endpoint at /cluster/ceph/restart-bulk. The 'noout' flag is applied only to the OSDs targeted by this run, so unrelated OSDs on other nodes that fail during the restart window still get out-marked normally. Aborting the resulting task (for example via 'pvesh task stop') triggers a SIGTERM handler that unsets the per-OSD 'noout' if this endpoint set it. Per-daemon progress is checkpointed in Ceph's config-key store ('pve/ceph-bulk-restart/node/<node>'), so an aborted run can be resumed by re-issuing this endpoint with 'resume=1'.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
dry-run | boolean | Log the plan (which OSDs would be restarted, in what order) without actually doing anything. — default 0 | |
force | boolean | Proceed past a HEALTH_WARN with non-benign checks like PG_DEGRADED, SLOW_OPS, or MON_DOWN. A blocking HEALTH_ERR is fatal regardless of this flag. Checks that ceph reports as muted, and checks known to be harmless for a rolling restart, never block and are named in the task log. The cluster-wide OSD map flags are only ever evaluated for an OSD restart, since they govern nothing a mon, mgr or mds restart touches. The operator is responsible for confirming the cluster is stable enough to absorb a rolling restart. — default 0 | |
node | string | yes | The cluster node name. — format pve-node |
only-outdated | boolean | Restart only OSDs whose running version differs from the locally-installed ceph-osd binary. Useful for post-upgrade rolling restarts that should touch only daemons that need it. Refuses if the local binary version cannot be determined. Ignored on resume (the saved plan is used as-is). — default 0 | |
resume | boolean | Resume an aborted bulk-restart from the checkpoint stored in Ceph's config-key store. The plan and noout decision from the prior run are honored; 'set-noout' is ignored. When false (default), the endpoint refuses to start if a checkpoint exists for this node, to avoid silently overwriting in-progress work. — default 0 | |
service-type | osd | yes | Ceph daemon type to restart. Only OSDs can be rolling-restarted on a per-node basis. |
set-noout | boolean | Set the 'noout' flag on each OSD targeted by this run for the duration of the rolling restart, and unset it on completion. Per-OSD rather than cluster-wide so that unrelated OSDs failing on other nodes still trigger backfill normally. — default 1 | |
timeout | number | Per-OSD timeout (in seconds). Bounds both the wait for a restarted OSD to come back up and the wait for recovery to quiesce enough that Ceph reports the next OSD safe to stop. Default sized for busy clusters where multi-TB OSDs with many PGs can need several minutes to clear peering after a restart; bump higher for very large or heavily-loaded OSDs. — min 30, max 1800, default 600 |
GET /nodes/{node}/ceph/rules
proxmox.nodes.$(node).ceph.rules.$get()List ceph rules.
Returns an array of object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
POST /nodes/{node}/ceph/start
proxmox.nodes.$(node).ceph.start.$post()Start ceph services.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
service | string | Ceph service name. — default "ceph.target" |
GET /nodes/{node}/ceph/status
proxmox.nodes.$(node).ceph.status.$get()Get the Ceph cluster status (raw 'ceph status' output). The response is cluster-wide and identical to /cluster/ceph/status; this node-level alias exists for operator convenience.
Returns object.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
POST /nodes/{node}/ceph/stop
proxmox.nodes.$(node).ceph.stop.$post()Stop ceph services.
Returns string.
| Parameter | Type | Required | Notes |
|---|---|---|---|
node | string | yes | The cluster node name. — format pve-node |
service | string | Ceph service name. — default "ceph.target" |