-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nexus must create "Control Plane Disks" for disks automatically #5503
Comments
I think my preference is to always 'auto-online' right now. We don't know timing wise which disks we'll get first and we still need to add APIs for explicit adoption. Once we add those APIs we can choose not to auto-online. If we don't auto-online, we may also want to show the customers what disks they are getting when they add a sled by showing them in |
… via blueprints (#5506) Automatically adopt disks and deploy them to sleds using blueprints - Queries for physical disk info during reconfigurator planning phase - Adds "physical disks" to blueprint, in-memory as well as the database schema - Blueprint planning now ensures that in-service physical disks appear in the blueprint - Blueprint execution sends a request to sled agents via `omicron-physical-disks PUT` - A background task has been added to automatically adopt new physical disks as control plane objects, and to insert them into the database - "Physical disk upsert" has largely been changed to "Physical disk insert", to avoid potential overwriting issues. "Zpool upsert" has also been updated to "Zpool insert". - The physical disk "vendor/serial/model" uniqueness constraint has been removed for decommissioned disks. This will provide a pathway to eventually re-provisioning deleted disks, if an operator asks for it. Fixes #5503 , #5502
This is the root case of #5502 .
(The decision to create a new issue is a little arbitrary, I just wanted to deep-dive onto the root cause here, while letting the symptoms stay visible on #5502).
As of #5172 , RSS / Nexus are responsible for managing "control plane disks" and "control plane zpools". In this world, the sled agent no longer autonomously formats disks, but waits for the "go-ahead" from Nexus.
For bootstrapping, RSS also has this responsibility:
omicron/sled-agent/src/rack_setup/plan/service.rs
Lines 345 to 370 in 20299e0
omicron/sled-agent/src/rack_setup/service.rs
Lines 348 to 350 in 20299e0
omicron/nexus/db-queries/src/db/datastore/rack.rs
Lines 739 to 760 in 20299e0
So, this works in the initialization case.
However, in the case of "sled addition", we're missing the follow-up parts:
OmicronPhysicalDisksConfig
that gets sent to sledsOmicronPhysicalDisksConfig
to individual sledsRegarding new disk addition, there's a bit of uncertainty about "when we should perform this action".
My opinion incoming: I think we've gone back-and-forth on this a bit because it's a policy decision. An operator could explicitly opt into an "add physical disk" API for each addition. Or they could just want all disks to auto-attach and start working. We could save this as a toggle, and enable both pathways? But that might be unnecessary effort, if we end up recommending / observing that customers prefer a particular option.
The text was updated successfully, but these errors were encountered: