Storage Host
- GET /storage/host/ceph/disks
Get Ceph disks
Get disks allocated to Ceph with their SMART and I/O metrics
- Status Codes:
200 OK – Success response
500 Internal Server Error – Internal server error
- GET /storage/host/cluster-status
Get cluster storage status
Reports whether the Ceph cluster has any pools/OSDs available for VM storage.
- Status Codes:
200 OK – Success response
500 Internal Server Error – Internal server error
- Response JSON Object:
device_classes[] (string)
has_storage (boolean) – true if at least one Ceph pool exists
message (string) – human-readable summary for UI banner
osd_count (integer) – total OSDs across all tiers
pool_count (integer) – number of pools with active OSDs
timestamp (string)
- GET /storage/host/disks
Get physical disk information
Get detailed physical disk information including SMART health and I/O metrics
- Status Codes:
200 OK – Success response
500 Internal Server Error – Internal server error
- GET /storage/host/health
Get quick health status
Get overall storage health status and critical alerts
- Status Codes:
200 OK – Success response
500 Internal Server Error – Internal server error
- Response JSON Object:
ceph_health (string)
critical_alerts[] (string)
failed_disks[] (string)
host_name (string)
overall_status (string) – HEALTHY, DEGRADED, CRITICAL
timestamp (string)
zfs_health (string)
- GET /storage/host/metrics
Get all storage metrics for the host
Get comprehensive storage metrics including disks, ZFS pools, and ARC stats
- Status Codes:
200 OK – Success response
500 Internal Server Error – Internal server error
- Response JSON Object:
ceph_disks[].allocated_to (string) – “zfs”, “ceph”, “unallocated”
ceph_disks[].ceph_osd_path (string)
ceph_disks[].device (string)
ceph_disks[].io_metrics.avg_queue_length (number)
ceph_disks[].io_metrics.avg_read_latency_ms (number) – Average read latency
ceph_disks[].io_metrics.avg_write_latency_ms (number) – Average write latency
ceph_disks[].io_metrics.device (string)
ceph_disks[].io_metrics.read_iops (number)
ceph_disks[].io_metrics.read_throughput_mb_s (number)
ceph_disks[].io_metrics.utilization_percent (number)
ceph_disks[].io_metrics.wait_time_ms (number) – Overall await time
ceph_disks[].io_metrics.write_iops (number)
ceph_disks[].io_metrics.write_throughput_mb_s (number)
ceph_disks[].is_healthy (boolean)
ceph_disks[].last_health_check_time (string)
ceph_disks[].model (string)
ceph_disks[].mount_point (string)
ceph_disks[].serial (string)
ceph_disks[].size_mb (integer)
ceph_disks[].smart_info.device (string)
ceph_disks[].smart_info.dwpd (number) – Drive Writes Per Day (for NVMe)
ceph_disks[].smart_info.error_count (integer)
ceph_disks[].smart_info.model (string)
ceph_disks[].smart_info.power_on_hours (integer)
ceph_disks[].smart_info.reallocated_sectors (integer)
ceph_disks[].smart_info.serial (string)
ceph_disks[].smart_info.status (string) – OK, Warning, Critical
ceph_disks[].smart_info.status_reason[] (string)
ceph_disks[].smart_info.temperature (integer)
ceph_disks[].smart_info.wear_level_percent (number)
ceph_disks[].type (string) – ssd, nvme, hdd
critical_alerts[] (string)
disks[].allocated_to (string) – “zfs”, “ceph”, “unallocated”
disks[].ceph_osd_path (string)
disks[].device (string)
disks[].io_metrics.avg_queue_length (number)
disks[].io_metrics.avg_read_latency_ms (number) – Average read latency
disks[].io_metrics.avg_write_latency_ms (number) – Average write latency
disks[].io_metrics.device (string)
disks[].io_metrics.read_iops (number)
disks[].io_metrics.read_throughput_mb_s (number)
disks[].io_metrics.utilization_percent (number)
disks[].io_metrics.wait_time_ms (number) – Overall await time
disks[].io_metrics.write_iops (number)
disks[].io_metrics.write_throughput_mb_s (number)
disks[].is_healthy (boolean)
disks[].last_health_check_time (string)
disks[].model (string)
disks[].mount_point (string)
disks[].serial (string)
disks[].size_mb (integer)
disks[].smart_info.device (string)
disks[].smart_info.dwpd (number) – Drive Writes Per Day (for NVMe)
disks[].smart_info.error_count (integer)
disks[].smart_info.model (string)
disks[].smart_info.power_on_hours (integer)
disks[].smart_info.reallocated_sectors (integer)
disks[].smart_info.serial (string)
disks[].smart_info.status (string) – OK, Warning, Critical
disks[].smart_info.status_reason[] (string)
disks[].smart_info.temperature (integer)
disks[].smart_info.wear_level_percent (number)
disks[].type (string) – ssd, nvme, hdd
host_name (string)
overall_health_status (string) – HEALTHY, DEGRADED, CRITICAL
timestamp (string)
total_storage_capacity_mb (integer)
total_storage_used_mb (integer)
unallocated_disks[].allocated_to (string) – “zfs”, “ceph”, “unallocated”
unallocated_disks[].ceph_osd_path (string)
unallocated_disks[].device (string)
unallocated_disks[].io_metrics.avg_queue_length (number)
unallocated_disks[].io_metrics.avg_read_latency_ms (number) – Average read latency
unallocated_disks[].io_metrics.avg_write_latency_ms (number) – Average write latency
unallocated_disks[].io_metrics.device (string)
unallocated_disks[].io_metrics.read_iops (number)
unallocated_disks[].io_metrics.read_throughput_mb_s (number)
unallocated_disks[].io_metrics.utilization_percent (number)
unallocated_disks[].io_metrics.wait_time_ms (number) – Overall await time
unallocated_disks[].io_metrics.write_iops (number)
unallocated_disks[].io_metrics.write_throughput_mb_s (number)
unallocated_disks[].is_healthy (boolean)
unallocated_disks[].last_health_check_time (string)
unallocated_disks[].model (string)
unallocated_disks[].mount_point (string)
unallocated_disks[].serial (string)
unallocated_disks[].size_mb (integer)
unallocated_disks[].smart_info.device (string)
unallocated_disks[].smart_info.dwpd (number) – Drive Writes Per Day (for NVMe)
unallocated_disks[].smart_info.error_count (integer)
unallocated_disks[].smart_info.model (string)
unallocated_disks[].smart_info.power_on_hours (integer)
unallocated_disks[].smart_info.reallocated_sectors (integer)
unallocated_disks[].smart_info.serial (string)
unallocated_disks[].smart_info.status (string) – OK, Warning, Critical
unallocated_disks[].smart_info.status_reason[] (string)
unallocated_disks[].smart_info.temperature (integer)
unallocated_disks[].smart_info.wear_level_percent (number)
unallocated_disks[].type (string) – ssd, nvme, hdd
zfs_disks[].allocated_to (string) – “zfs”, “ceph”, “unallocated”
zfs_disks[].ceph_osd_path (string)
zfs_disks[].device (string)
zfs_disks[].io_metrics.avg_queue_length (number)
zfs_disks[].io_metrics.avg_read_latency_ms (number) – Average read latency
zfs_disks[].io_metrics.avg_write_latency_ms (number) – Average write latency
zfs_disks[].io_metrics.device (string)
zfs_disks[].io_metrics.read_iops (number)
zfs_disks[].io_metrics.read_throughput_mb_s (number)
zfs_disks[].io_metrics.utilization_percent (number)
zfs_disks[].io_metrics.wait_time_ms (number) – Overall await time
zfs_disks[].io_metrics.write_iops (number)
zfs_disks[].io_metrics.write_throughput_mb_s (number)
zfs_disks[].is_healthy (boolean)
zfs_disks[].last_health_check_time (string)
zfs_disks[].model (string)
zfs_disks[].mount_point (string)
zfs_disks[].serial (string)
zfs_disks[].size_mb (integer)
zfs_disks[].smart_info.device (string)
zfs_disks[].smart_info.dwpd (number) – Drive Writes Per Day (for NVMe)
zfs_disks[].smart_info.error_count (integer)
zfs_disks[].smart_info.model (string)
zfs_disks[].smart_info.power_on_hours (integer)
zfs_disks[].smart_info.reallocated_sectors (integer)
zfs_disks[].smart_info.serial (string)
zfs_disks[].smart_info.status (string) – OK, Warning, Critical
zfs_disks[].smart_info.status_reason[] (string)
zfs_disks[].smart_info.temperature (integer)
zfs_disks[].smart_info.wear_level_percent (number)
zfs_disks[].type (string) – ssd, nvme, hdd
zfs_subsystem.arc_stats.evictions_count (integer)
zfs_subsystem.arc_stats.hit_ratio_percent (number)
zfs_subsystem.arc_stats.hits_count (integer)
zfs_subsystem.arc_stats.l2arc_hit_ratio_percent (number)
zfs_subsystem.arc_stats.l2arc_present (boolean)
zfs_subsystem.arc_stats.l2arc_size_bytes (integer)
zfs_subsystem.arc_stats.max_bytes (integer)
zfs_subsystem.arc_stats.misses_count (integer)
zfs_subsystem.arc_stats.size_bytes (integer)
zfs_subsystem.health_status (string) – HEALTHY, DEGRADED, CRITICAL
zfs_subsystem.is_healthy (boolean)
zfs_subsystem.pools[].allocated_mb (integer)
zfs_subsystem.pools[].available_space_mb (integer)
zfs_subsystem.pools[].errors_count (integer)
zfs_subsystem.pools[].fragmentation_percent (number)
zfs_subsystem.pools[].has_known_data_errors (boolean)
zfs_subsystem.pools[].health (string) – ONLINE, DEGRADED, FAULTED, OFFLINE, REMOVED, UNAVAIL
zfs_subsystem.pools[].io_stats.operations_read (integer)
zfs_subsystem.pools[].io_stats.operations_write (integer)
zfs_subsystem.pools[].io_stats.read_latency_ms (number)
zfs_subsystem.pools[].io_stats.total_read_mbs (integer)
zfs_subsystem.pools[].io_stats.total_write_mbs (integer)
zfs_subsystem.pools[].io_stats.write_latency_ms (number)
zfs_subsystem.pools[].last_status_check_time (string)
zfs_subsystem.pools[].pool_name (string)
zfs_subsystem.pools[].read_only_status (boolean)
zfs_subsystem.pools[].state (string)
zfs_subsystem.pools[].total_space_mb (integer)
zfs_subsystem.pools[].used_space_mb (integer)
zfs_subsystem.pools[].vdevs[].checksum_errors (integer)
zfs_subsystem.pools[].vdevs[].name (string)
zfs_subsystem.pools[].vdevs[].read_errors (integer)
zfs_subsystem.pools[].vdevs[].resilver_errors (integer)
zfs_subsystem.pools[].vdevs[].state (string)
zfs_subsystem.pools[].vdevs[].total_errors (integer)
zfs_subsystem.pools[].vdevs[].write_errors (integer)