This guide will help you install and start using cephtrace tools to trace your Ceph cluster operations.
The fastest way to start tracing on Ubuntu is using pre-built binaries and DWARF data files - no compilation or debug symbol installation required!
- Ubuntu 20.04, 22.04, or 24.04
- Kernel version 5.8 or higher
- Sudo/root access
- A running Ceph cluster
Run on machines with Ceph clients (VMs with RBD volumes, OpenStack services, RGW gateways):
# Download the binary
wget https://github.com/taodd/cephtrace/releases/latest/download/radostrace
chmod +x radostrace
# Check your Ceph version
dpkg -l | grep librados
# Download corresponding DWARF file (example for 17.2.6-0ubuntu0.22.04.2)
wget https://raw.githubusercontent.com/taodd/cephtrace/main/files/ubuntu/radostrace/17.2.6-0ubuntu0.22.04.2_dwarf.json
# Start tracing
sudo ./radostrace -i 17.2.6-0ubuntu0.22.04.2_dwarf.jsonRun on Ceph OSD nodes:
# Download the binary
wget https://github.com/taodd/cephtrace/releases/latest/download/osdtrace
chmod +x osdtrace
# Check your ceph-osd version
dpkg -l | grep ceph-osd
# Download corresponding DWARF file
wget https://raw.githubusercontent.com/taodd/cephtrace/main/files/ubuntu/osdtrace/17.2.6-0ubuntu0.22.04.2_dwarf.json
# Start tracing
sudo ./osdtrace -i 17.2.6-0ubuntu0.22.04.2_dwarf.json -xRun on machines using CephFS or kernel RBD clients. No DWARF files needed!
# Download the binary
wget https://github.com/taodd/cephtrace/releases/latest/download/kfstrace
chmod +x kfstrace
# Trace MDS requests (default)
sudo ./kfstrace
# Trace OSD requests
sudo ./kfstrace -m osd
# Trace both OSD and MDS requests
sudo ./kfstrace -m allSee DWARF JSON Files for more information about available DWARF files and version compatibility.
For non-Ubuntu systems or if you want to build from source:
git clone https://github.com/taodd/cephtrace
cd cephtrace
git submodule update --init --recursivesudo apt-get install g++ clang libelf-dev libc6-dev libc6-dev-i386 libdw-devsudo dnf config-manager --enable crb
sudo dnf install g++ clang elfutils-libelf-devel glibc-devel glibc-devel.i686 elfutils-develFor systems with different package managers, you'll need equivalent packages:
- C++ compiler (g++)
- Clang compiler (for eBPF)
- libelf development files
- libc development files (including 32-bit)
- libdw development files
cd cephtrace
makeThis will build all three tools: radostrace, osdtrace, and kfstrace.
If you don't have pre-generated DWARF JSON files for your Ceph version, you can install debug symbols on the machine where you'll run the tools.
sudo apt-get install librbd1-dbgsym librados2-dbgsymsudo apt-get install ceph-osd-dbgsymNo debug symbols required - kfstrace uses kernel probes and doesn't need DWARF information.
For more information on installing debug symbols on Ubuntu, see Getting dbgsym Packages.
- Linux kernel 5.8 or higher is required for all cephtrace tools
- x86_64 (AMD64)
- Currently focused on x86_64; other architectures may require modifications
Cephtrace has been tested with:
- Ceph Octopus (15.x)
- Ceph Pacific (16.x)
- Ceph Quincy (17.x)
- Ceph Reef (18.x)
- Ceph Squid (19.x)
While newer Ceph versions should work, you may need to generate DWARF JSON files for your specific version. See DWARF JSON Files for details.
- Learn about each tool: radostrace | osdtrace | kfstrace
- DWARF JSON files: Generation and usage guide
- Deployment scenarios: Containerized Ceph | Production best practices
- Development: Building | Architecture | Contributing