Skip to content

SystemDescription: fault-injection knobs and hardware lifecycle for the FM simulator #11212

Description

@mergeconflict

RFD 726 proposes deriving the FM simulator's inventory and in-service-disk inputs from SystemDescription. If we go that direction, we'll need a few additions.

Per-disk setters. None exist today; the only write to a disk's policy is the bulk one in sled_expunge.

  • serial_to_disk_id: disk counterpart of the existing serial_to_sled_id
  • disk_set_zpool_health: collections currently always report ZpoolHealth::Online
  • disk_set_zpool_size
  • disk_set_firmware: the NVMe firmware metadata reported in inventory
  • disk_set_policy: each SledDisk already stores a PhysicalDiskPolicy; there's just no per-disk setter
  • disk_set_inventory_visibility: per-disk analogue of the existing sled_set_inventory_visibility

Caller-supplied serials. Sled serials are hardcoded as serial{N} and a synthetic disk's serial is derived from its zpool's UUID, which no simulator script could predict. Both need to accept caller-chosen values.

Hardware joining and leaving a live system. Disks exist only at sled
creation (via SledBuilder::npools), and sled_remove erases the sled entirely. The simulator needs hardware that is out of the rack (created but not yet inserted, or removed) to stay in the SystemDescription, keeping its serial, settings, and policy while absent from collections.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions