Skip to content

restart customer Instances after sled reboot #3633

@davepacheco

Description

@davepacheco

I haven't verified this but after talking with @smklein we believe that if a sled reboots, any customer Instances that were running on that system will no longer be running (not there, nor anywhere). But the API state will probably reflect that they are still running. It's not clear if there'd be any way to get them running again.

Part of the design here was that the sled_agent_put() call from the Sled Agent to Nexus would be an opportunity for Nexus to verify that the expected Instances were still running. In practice, this probably needs to trigger an RFD 373-style RPW that determines what's supposed to be on each Sled, what is running on each sled, and fixes things appropriately. It might be cleanest to factor that into two RPWs:

  • one RPW: checks what's supposed to be running on each Sled, checks what's running there, and for any discrepancies, marks the Instance failed (or something like that)
  • second RPW: for each failed Instance, try to start it elsewhere

There's a related issue here around sleds that have failed more permanently. I'd suggest we treat this as a different kind of thing and not try to automatically detect this using a heartbeat mechanism or something like that. That kind of automation can make things worse. For this case (which really should be rare), we could require that an operator mark the sled as "permanently gone -- remove it from the cluster", after which we mark its Instances failed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    known issueTo include in customer documentation and training

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions