LinuxCommandLibrary

cephadm

Deploy and manage Ceph clusters

TLDR

Bootstrap a new Ceph cluster on the current host

$ sudo cephadm bootstrap --mon-ip [monitor_ip]
copy

Add a new host to the cluster
$ sudo cephadm add-host [hostname] [ip_address]
copy

Deploy a specific service (e.g., mgr, mon, osd)
$ sudo cephadm deploy [service_type] --name [service_name]
copy

Check the status of cluster services
$ sudo cephadm shell -- ceph [[-s|--status]]
copy

Enter a shell environment inside the Ceph container
$ sudo cephadm shell
copy

Remove a service from the cluster
$ sudo cephadm rm-service [service_type] --name [service_name]
copy

SYNOPSIS

cephadm [global-options] <command> [<args>]

PARAMETERS

--verbose
    Increase verbosity (repeatable)

--image IMAGE
    Ceph container image, e.g., quay.io/ceph/ceph:v18

--timeout SECONDS
    Command timeout (default 900)

--dry-run
    Simulate actions without changes

--workdir DIR
    Working directory (default /var/lib/cephadm)

--data-root DIR
    Data root directory

--ceph-conf FILE
    Path to ceph.conf

--cluster ID
    Cluster name/ID (default ceph)

--log-level LEVEL
    Log level: DEBUG|INFO|WARN|ERROR

--output-dir DIR
    Directory for bootstrap outputs

--docker
    Use Docker instead of Podman

--skip-pull
    Skip image pull during bootstrap

DESCRIPTION

cephadm is a management utility for deploying and operating Ceph storage clusters. It automates the bootstrap of initial monitors, managers, and OSDs, adding hosts, and orchestrating daemons via containers (using Podman or Docker). Designed for simplicity, it eliminates manual configuration of systemd units or Ansible playbooks. cephadm handles image pulling, host preparation (NTP, SSH, firewall), and integrates with the ceph orch command for ongoing management. It supports Rook-like declarative deployments, upgrades, and health checks. Ideal for production clusters, it ensures consistency across bare-metal, VMs, or cloud environments. Run as root; uses toolbox containers for isolation. Key benefits:
- Zero-touch daemon deployment
- Automatic upgrades and restarts
- Integrated monitoring via Prometheus.

CAVEATS

Requires root privileges. SSH access needed for remote hosts. Network/firewall must allow Ceph ports. Not for legacy non-containerized setups. Bootstrap is irreversible without manual cleanup.

KEY SUBCOMMANDS

bootstrap: Initialize cluster.
add-host: Add host to orchestrator.
orch host ls: List hosts.
deploy: Deploy daemon.
rm-daemon: Remove daemon.
check-host: Validate host readiness.

USAGE EXAMPLE

cephadm bootstrap --mon-ip 192.168.1.10 --allow-fqdn-hostname

HISTORY

Introduced in Ceph Nautilus (14.2, 2019) as experimental; default orchestrator since Octopus (15.2, 2020). Evolved with container orchestration in Pacific (16.2) and Reef (18.2). Developed by Red Hat/SUSE Ceph team.

SEE ALSO

ceph(8), podman(1), systemctl(1), firewalld(1)

Copied to clipboard