Skip to content

docs: failure domains, storage network multipathing, CLI migration/replication/backup, limits + consistency fixes - #183

Merged
noctarius merged 7 commits into
mainfrom
docs/dev-fd-multipath-consistency
Aug 8, 2026
Merged

docs: failure domains, storage network multipathing, CLI migration/replication/backup, limits + consistency fixes#183
noctarius merged 7 commits into
mainfrom
docs/dev-fd-multipath-consistency

Conversation

@schmidt-scaled

Copy link
Copy Markdown
Contributor

Summary

Documentation review against current sbcli / ultra / spdk main (dev docs).

New pages

  • Failure domains: concept page (placement contract, balance rules, recovery behavior) + CLI operations page (create, tag nodes, expansion, removal, moving hosts)
  • Storage network multipathing: setup of NVMe-oF multipathing over separate storage VLANs as the alternative to a bonded HA network (--data-nics eth1,eth2, separate-subnet requirement, client connect guidance, verification)
  • Volume migration (non-Kubernetes): CLI workflow incl. the 5-minute migrate-continue window and batch migration
  • Asynchronous replication (non-Kubernetes): CLI workflows incl. cross-cluster volume migration via replication-commit, failover and failback
  • Limits reference: hard per-node object limits (6000 objects/lvstore, 75 subsystems/node, 50 namespaces/subsystem) and vCPU-dependent limits

Consistency fixes

  • --max-lvol -> --max-subsys; --journal-partition -> --enable-journal-device; multiple data NICs supported (drop "R25.10 zero or one NICs")
  • Encryption pages rewritten for KMS-based keys (--crypto-key1/2 hard-fail since 26.2)
  • Online node removal semantics (no volumes/snapshots, node ONLINE/SUSPENDED, async task, --force-remove only cancels tasks)
  • Cluster expansion: single-node expansion supported, drop "pairs only"
  • Correct defaults (--qpair-count 32, --max-size 1000T, --ha-type default), lvol ports 4420, port 5000 = storage node API, QoS example syntax, FTT2 tertiary, StorageNodeSet.maxParallelNodeAdds, pool cluster_id positional
  • 26.2 release notes: failure domains are flat integer domains (hierarchical labels were removed)

Open questions (not changed here)

  • 26-2 release notes GA/PRE contradiction; which release /dev targets
  • suspend/resume deprecation direction (RN vs CLI)
  • upgrade matrix 26.x rows
  • CLI reference generator drops deprecated metadata and renders list/secret types as "unknown"

🤖 Generated with Claude Code

michixs and others added 3 commits August 7, 2026 14:15
…nd limits pages

- Failure domains: concept page (placement contract, balance rules, recovery)
  and CLI operations page (create, tag, expand, remove, immutable membership)
- Storage network multipathing: setup as the alternative to a bonded HA
  network (separate VLANs, --data-nics, client connect, verification)
- Volume migration: bare-metal CLI workflow (migrate / connect / continue,
  5-minute continue window, batch migration, preconditions)
- Asynchronous replication: CLI workflows incl. cross-cluster volume
  migration via replication-commit, failover and failback
- Limits: hard per-node object limits (6000/75/50) and vCPU-dependent limits

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…sbcli main

- --max-lvol renamed to --max-subsys (storage-node configure/restart)
- --journal-partition deprecated: document --enable-journal-device instead
- --data-nics: multiple comma-separated data NICs supported (multipathing);
  drop the 'R25.10, zero or one NICs' claim
- --crypto-key1/2 removed (KMS-based since 26.2): rewrite encrypting page,
  fix provisioning parameter table (defaults: --max-size 1000T,
  --ha-type default; host ACLs moved to storage-pool add-host)
- QoS examples: remove copied metavars (invalid syntax)
- Node removal: reflect online node removal semantics (no volumes/snapshots,
  node must be ONLINE/SUSPENDED, async task; --force-remove only cancels tasks)
- Cluster expansion: single-node expansion supported, drop 'pairs only'
- find-secondary-node: mention tertiary path at FTT 2
- reconnect-nvme-device: lvol listener ports start at 4420, not 9100
- network-port-table: port 5000 is the storage node API, not spdk-http-proxy
- cluster-deployment-options: --qpair-count default is 32 (client 3);
  add --enable-failure-domain
- parallel-node-addition: maxParallelNodeAdds lives on StorageNodeSet
- nvmf-security: storage-pool add requires cluster id positional
- 26-2 release notes: failure domains are flat integer domains, not
  hierarchical
- HA page: add failure domains and storage-network multipathing sections

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The new failure-domain, multipathing, volume-migration, asynchronous
replication, and limits pages predate the quality gate rules on main.
Applied the auto-fixers: American English (canceled, toward, afterward),
bold list-item subjects with the colon inside the asterisks, and table
re-alignment.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@noctarius
noctarius force-pushed the docs/dev-fd-multipath-consistency branch from 55a7b9f to 52733f1 Compare August 7, 2026 12:52
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

🤖: Deployment available as https://docstest.simplyblock.io/docs-dev-fd-multipath-consistency

Clears the 73 style warnings on the lines this branch introduces, all of
them rules the gates report but do not fail on:

- em dashes setting off a clause replaced by parentheses, a comma, or a
  colon (34)
- semicolons between clauses split into sentences (34)
- a numbered list whose items no longer read as continuations (3)
- two Oxford-comma series disambiguated (2)

Also applies rules no gate checks: the actor 'the operator' removed from
a migration step in favor of the passive, four sentences past 30 words
split at their natural break, and three run-on conditions in
volume-migration turned into separate list items. No facts changed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

🤖: Deployment available as https://docstest.simplyblock.io/docs-dev-fd-multipath-consistency

noctarius and others added 3 commits August 8, 2026 13:10
The documentation had 41 'multipathing' against 3 'multi-pathing', and 32
'vCPU' against 7 lowercase spellings, none of which any gate reported.

'multi-pathing' goes to check-prose.py next to hyper-converged and
disaggregated: it is a hyphenation, and that check matches case
insensitively while preserving an initial capital, so the 16 headings
spelling it 'Multipathing' stay correct. The terminology gate compares
the canonical form byte for byte and would have failed every one of them.

'vCPU' goes to check-terminology.py next to CPU, where the mixed casing
is the point. The seven lowercase occurrences are all '--vcpu-count' and
'--number-of-vcpus' inside code spans, which the check ignores, so the
rule reports nothing today and catches the next one written in prose.

Fixes the two occurrences in the release notes. A third, in
docs/reference/cli/volume.md, is generated and has to be fixed in sbcli.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The fault-tolerance level is written 'FTT', 'FTT 1', 'FTT 2', 'FTT=1' or
'FTT=2'. 'FTT+1' is a separate thing and stays: it means the level plus
one node, not a level of its own.

The casing goes to check-terminology.py, which is what that gate is for.
The glued and hyphenated spellings go to check-prose.py instead, because
a separator has to be inserted rather than a casing changed, and that
check is the one that rewrites a word into a different word.

Fixes 'FTT2' in the 26.2 release notes. A second, in
docs/reference/cli/storage-node.md, is generated and has to be fixed in
sbcli; the 'FTT+1' on that same line is correct and must stay.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
All six are already spelled correctly throughout the documentation, so
the gate reports nothing today and holds the spelling from here on.

The lowercase spellings of NQN and ANA are not misspellings but literals:
the '--host-nqn' flag, the 'nqn.2023-02.io.simplyblock' subsystem name,
the 'nqn' JSON key, and the 'hardware_handler "1 ana"' line of a
multipath configuration. The check reads none of them, since a code span
is a literal and only the comments of a code block are looked at. The 12
'Nqn' titles in reference/api/openapi.json are not Markdown at all.

ANA is given a plural wording for the same reason NVMe has one: it names
an access state, so what is plural is the states ('ANA states'), and
'ANAs' is reported with that wording instead of just its casing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

🤖: Deployment available as https://docstest.simplyblock.io/docs-dev-fd-multipath-consistency

@noctarius
noctarius merged commit 57e3e44 into main Aug 8, 2026
4 checks passed
@noctarius
noctarius deleted the docs/dev-fd-multipath-consistency branch August 8, 2026 11:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants