docs: document the storcli2 adapter and blueprint the remaining components#62
Open
ezekiel-alexrod wants to merge 2 commits into
Open
docs: document the storcli2 adapter and blueprint the remaining components#62ezekiel-alexrod wants to merge 2 commits into
ezekiel-alexrod wants to merge 2 commits into
Conversation
Add the MegaRAID 96xx / PERC 12 (storcli2, perccli2) adapter to the adapters section: decomposed component-per-port layout shared by both binaries through an injected command runner, the shared JSON envelope and its unreliable-exit-code contract, the nonexistent-object behaviors, the JBOD model (Advanced Software Option capability, auto-configure behavior, per-drive state orthogonal to status), state-family matching, and the operations storcli2 dropped (RAID-level migration / drive removal, IO policy). Scope the existing MegaRAID / PERC section to the storcli and perccli generations it actually drives. In the README, mention the SAS4 generation in the features and add the storcli2 envelope package to the project structure.
Map every not-yet-implemented port operation to its verified storcli2 command, so the write path (logical volume manager, cache and JBOD setters, blinker) and the top-level composition can be implemented without re-deriving the grammar: creation with bare cache tokens, delete, expand-based drive addition (no drive removal -- the official command map drops start migrate), the two-command cache setter and its CacheOptions.Validate() round-trip gotcha, set jbod / set uconf, and locate. Also flag the pre-staged write-path fixtures that were captured with the storcli grammar and must be regenerated. In the README, announce the upcoming raidcontroller.StorCLI2 composition next to the existing hardware adapter constructors. Kept separate from the previous commit on purpose: that one documents what is merged today, this one anticipates the upcoming PRs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Documents the storcli2/perccli2 adapter in
DESIGN.mdandREADME.md.The PR is split in two commits on purpose — review them independently:
docs: document the storcli2 adapter…describes what is merged today (read path, envelope/decoder, command runners).docs: blueprint the remaining storcli2 components…anticipates the upcoming PRs (write path, blinker, composition) with the verified command grammar, so whoever implements them does not have to re-derive it. Drop or defer this commit if you prefer the docs to strictly track reality.Commit 1 — current state
commandrunner.CommandRunner), the shared JSON envelope and its unreliable-exit-code contract, the two possible nonexistent-object behaviors (success with absent section vs failure payload — both handled), the JBOD model (capability from a usableJBODAdvanced Software Option, enabled from the primary auto-configure behavior, per-drive JBOD state orthogonal to drive status), drive state-family matching withFailed/Offline/Missingstatus precedence, and the operations storcli2 dropped (RAID-level migration / drive removal, IO cache policy). All facts verified against the StorCLI2 User Guide and a live MegaRAID 9660-16i. The existing MegaRAID / PERC section is scoped to the storcli/perccli generations it actually drives (up to 94xx/95xx).implementation/storcli2/envelope package.Commit 2 — blueprint for the write path
CreateLV(bare cache tokens, notype=/wrcache=),DeleteLV,AddPDsToLVvia/cx/vx expand drives=(documented + in the binary help, not yet exercised on hardware),DeletePDsFromLVnot supported (the official storcli→storcli2 map dropsstart migrate), the two-command cache setter and itsCacheOptions.Validate()round-trip gotcha,set jbod/set uconf, andstart/stop locate. Plus a note flagging the pre-staged write-path fixtures captured with the storcli grammar (plain-text syntax errors) that must be regenerated via the collect script.raidcontroller.StorCLI2composition next to the existing hardware adapter constructors.Documentation-only change — no code touched.