Skip to main content

DiskState

wrong_filesystem is PoolDiskEntry-only: a disk matched to an array slot by identity (serial or WWN) whose filesystem UUID does not match what SQLite recorded for that slot — a replacement disk that kept the original disk's serial/WWN (a cloned or reused drive) but was formatted differently, or not at all. Distinct from missing: the disk is genuinely present, so the pool's own slot list must say so rather than report it active. The storage gate treats it exactly like a missing disk (not ready, no mount attempted for that slot) and never emits it on DiskStateEvent, since it is not a spindown state.

mount_failed is also PoolDiskEntry-only, and covers the case wrong_filesystem deliberately does not: a disk matched to a slot by identity whose filesystem UUID was never positively read at all — most commonly a genuinely blank same-serial replacement — so the storage gate's own identity/FSUUID check reports the array ready for it, but hoservad's own bounded attempt to mount that slot's disk still failed or timed out. Never derived from a device probe on this state's own read path — it reflects the daemon's last actual mount attempt, recorded when it happened. The web/CLI Replace disk flow offers this slot's own device as its only replacement target, the same way it does for wrong_filesystem; the replace job's own one-off probe of that exact device is what actually confirms it is blank before formatting it. Never emitted on DiskStateEvent, since it is not a spindown state.

stringDiskState

wrong_filesystem is PoolDiskEntry-only: a disk matched to an array slot by identity (serial or WWN) whose filesystem UUID does not match what SQLite recorded for that slot — a replacement disk that kept the original disk's serial/WWN (a cloned or reused drive) but was formatted differently, or not at all. Distinct from missing: the disk is genuinely present, so the pool's own slot list must say so rather than report it active. The storage gate treats it exactly like a missing disk (not ready, no mount attempted for that slot) and never emits it on DiskStateEvent, since it is not a spindown state.

mount_failed is also PoolDiskEntry-only, and covers the case wrong_filesystem deliberately does not: a disk matched to a slot by identity whose filesystem UUID was never positively read at all — most commonly a genuinely blank same-serial replacement — so the storage gate's own identity/FSUUID check reports the array ready for it, but hoservad's own bounded attempt to mount that slot's disk still failed or timed out. Never derived from a device probe on this state's own read path — it reflects the daemon's last actual mount attempt, recorded when it happened. The web/CLI Replace disk flow offers this slot's own device as its only replacement target, the same way it does for wrong_filesystem; the replace job's own one-off probe of that exact device is what actually confirms it is blank before formatting it. Never emitted on DiskStateEvent, since it is not a spindown state.

Possible values: [active, standby, spinning_up, missing, failed, wrong_filesystem, mount_failed]

DiskState
"active"