Storage Benchmark
- POST /storage/benchmark/disk
Run disk benchmark (fio)
Runs a fio benchmark on the target node against a device or directory
- Request JSON Object:
custom_profile (any) – CustomProfile allows overriding preset params. Only used when ProfileID is empty.
duration_sec (integer) – DurationSec overrides the profile’s runtime (max 300s).
profile_id (string) – ProfileID selects a preset (e.g. “4k-randwrite”). If empty, CustomProfile is used.
target (string) – Device path (e.g. /dev/sdb) OR directory path (e.g. /tmp/fio-test). If a directory is given, fio writes test files there. If empty, defaults to /tmp/karios-bench.
- Status Codes:
200 OK – OK
400 Bad Request – Bad Request
500 Internal Server Error – Internal Server Error
503 Service Unavailable – fio not installed
- Request Headers:
X-Target-Node – Target node IP for HAProxy routing
- Response JSON Object:
duration_seconds (number)
error (string)
id (string)
profile (string)
raw_output (string)
read.bandwidth_kbps (number)
read.bandwidth_mbps (number)
read.iops (number)
read.latency_avg_us (number)
read.latency_p50_us (number)
read.latency_p999_us (number)
read.latency_p99_us (number)
read.total_ios (integer)
started_at (string)
status (string) – “running”, “completed”, “failed”
target (string)
type (string)
write.bandwidth_kbps (number)
write.bandwidth_mbps (number)
write.iops (number)
write.latency_avg_us (number)
write.latency_p50_us (number)
write.latency_p999_us (number)
write.latency_p99_us (number)
write.total_ios (integer)
- POST /storage/benchmark/pool
Run pool benchmark (rados bench)
Runs rados bench on a Ceph pool from the target node
- Request JSON Object:
duration_sec (integer)
mode (string) – “write”, “seq”, “rand”
pool_name (string)
- Status Codes:
200 OK – OK
400 Bad Request – Bad Request
500 Internal Server Error – Internal Server Error
503 Service Unavailable – rados not installed
- Request Headers:
X-Target-Node – Target node IP for HAProxy routing
- Response JSON Object:
duration_seconds (number)
error (string)
id (string)
profile (string)
raw_output (string)
read.bandwidth_kbps (number)
read.bandwidth_mbps (number)
read.iops (number)
read.latency_avg_us (number)
read.latency_p50_us (number)
read.latency_p999_us (number)
read.latency_p99_us (number)
read.total_ios (integer)
started_at (string)
status (string) – “running”, “completed”, “failed”
target (string)
type (string)
write.bandwidth_kbps (number)
write.bandwidth_mbps (number)
write.iops (number)
write.latency_avg_us (number)
write.latency_p50_us (number)
write.latency_p999_us (number)
write.latency_p99_us (number)
write.total_ios (integer)
- GET /storage/benchmark/profiles
List benchmark profiles
Returns the available fio benchmark presets
- Status Codes:
200 OK – OK
- Response JSON Object:
profiles[].block_size (string) – fio parameters
profiles[].description (string)
profiles[].direct (integer)
profiles[].id (string)
profiles[].io_depth (integer)
profiles[].io_engine (string)
profiles[].name (string)
profiles[].num_jobs (integer)
profiles[].read_write (string)
profiles[].runtime_sec (integer)
profiles[].rw_mix_read (integer) – only for randrw
profiles[].test_size (string)
- POST /storage/benchmark/rbd
Run RBD benchmark (rbd bench)
Runs rbd bench on a Ceph RBD image from the target node
- Request JSON Object:
duration_sec (integer)
image_name (string)
io_pattern (string) – “rand” or “seq” (default seq)
io_size (string) – e.g. “4K”, “4096”
io_threads (integer)
io_total (string) – e.g. “1G”, “1073741824”
io_type (string) – “write”, “read”, “readwrite”
pool_name (string)
- Status Codes:
200 OK – OK
400 Bad Request – Bad Request
500 Internal Server Error – Internal Server Error
503 Service Unavailable – rbd not installed
- Request Headers:
X-Target-Node – Target node IP for HAProxy routing
- Response JSON Object:
duration_seconds (number)
error (string)
id (string)
profile (string)
raw_output (string)
read.bandwidth_kbps (number)
read.bandwidth_mbps (number)
read.iops (number)
read.latency_avg_us (number)
read.latency_p50_us (number)
read.latency_p999_us (number)
read.latency_p99_us (number)
read.total_ios (integer)
started_at (string)
status (string) – “running”, “completed”, “failed”
target (string)
type (string)
write.bandwidth_kbps (number)
write.bandwidth_mbps (number)
write.iops (number)
write.latency_avg_us (number)
write.latency_p50_us (number)
write.latency_p999_us (number)
write.latency_p99_us (number)
write.total_ios (integer)