Storage Host

GET /storage/host/ceph/disks

Get Ceph disks

Get disks allocated to Ceph with their SMART and I/O metrics

Status Codes:
GET /storage/host/cluster-status

Get cluster storage status

Reports whether the Ceph cluster has any pools/OSDs available for VM storage.

Status Codes:
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:
GET /storage/host/health

Get quick health status

Get overall storage health status and critical alerts

Status Codes:
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:
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)