Skip to content

docs(operations): add cluster lifecycle operations runbook - #151

Merged
majinghe merged 1 commit into
rustfs:mainfrom
majinghe:docs/cluster-lifecycle-runbook
Sep 20, 2026
Merged

majinghe merged 1 commit into
rustfs:mainfrom
majinghe:docs/cluster-lifecycle-runbook

Conversation

@majinghe

Copy link
Copy Markdown
Collaborator

Summary

Port the operator runbook introduced by rustfs/rustfs#7998 (merged upstream: docs/operations/cluster-lifecycle-operations.md) into the docs site as Operations → Cluster Lifecycle Operations (operations/cluster-lifecycle.md), adapted for the site audience.

What was kept

Every verified operational fact from the upstream runbook:

  • immutable layout boundaries and the never-do rules (PoolTopologyMismatch, no manual shard/xl.meta/.rustfs.sys handling)
  • ellipsis expansion rules and two-pool launch examples
  • startup configuration table (RUSTFS_ERASURE_SET_DRIVE_COUNT, storage classes incl. the inert RUSTFS_STORAGE_CLASS_OPTIMIZE, RUSTFS_STORAGE_CLASS_INLINE_BLOCK), MINIO_ env compatibility, rebalance/decommission/list-quorum knobs
  • EC geometry, default parity by set width, validation rules, quorum/capacity arithmetic, inline-object budget (256 KiB / K capped at 128 KiB, ÷8 on versioned buckets)
  • complete EC:0 zero-parity semantics (write quorum N with pre-commit bitrot self-verification, read quorum N, majority deletes, unrecoverable heal, operational consequences)
  • post-start admin API checks, expansion, rebalance, decommission (entry states, pool.bin, source-pool write rejection), admin heal handler rules (readRepair rejected, nolock forced false), drive replacement flow with GET /rustfs/admin/v4/heal/replacement-recovery
  • restart/recovery behavior, mutual-exclusion matrix, prohibited actions, per-operation checklists
  • rc command mapping (expand = alias of rebalance; no replacement-recovery command) with canonical credential placeholders

What was adapted

  • repo-internal source-symbol citations and links to internal architecture contract documents were dropped (the upstream PR is cited as the source instead)
  • internal links replaced with the corresponding site pages: Storage Pool Expansion, Data Rebalancing, Storage Pool Decommission, Node Healing, CLI Client (rc)
  • site style: frontmatter, canonical <your-access-key> placeholders, warning/danger admonitions for the never-do rules and EC:0

Locales

  • en: full page
  • zh: fully translated (集群生命周期运维), code blocks kept identical to English
  • de/fr/ja: English body, matching the current state of their operations sections (e.g. scaling/data-rebalancing.md there is English today); translation can follow as a separate PR
  • registered in operations/meta.json (after high-availability) and the operations overview in all five locales

Verification

  • npm run docs:check — PASS (orphan, link, fence, banned-string, locale-parity checks green)
  • npm run build — PASS; /en/operations/cluster-lifecycle and /zh/operations/cluster-lifecycle generated
  • Content facts taken exclusively from the merged upstream runbook (docs(operations): add cluster and erasure-coding lifecycle runbook rustfs#7998), which was verified claim-by-claim against the RustFS source; nothing invented

Related

Port the operator runbook from rustfs/rustfs#7998 (merged upstream)
into the docs site as operations/cluster-lifecycle.md, adapted for
the site audience:

- keep every verified operational fact: immutable layout boundaries
  and never-do rules, ellipsis expansion, startup configuration
  table, EC geometry with default parity by set width, quorum and
  capacity arithmetic, inline-object budget, EC:0 zero-parity
  semantics, post-start admin API checks, expansion, rebalance,
  decommission, admin heal and drive replacement, restart recovery,
  mutual exclusion, and per-operation checklists
- drop repo-internal source citations and architecture-contract
  links; link the existing site task pages (scaling, node healing,
  rc) and cite the upstream PR as the source
- register the page in operations/meta.json and the operations
  overview in en and zh; zh is fully translated, de/fr/ja carry the
  English body to match the current state of their operations
  sections (translation can follow)
@vercel

vercel Bot commented Sep 20, 2026

Copy link
Copy Markdown

@majinghe is attempting to deploy a commit to the overtrue's projects Team on Vercel.

A member of the Team first needs to authorize it.

@majinghe
majinghe merged commit c64ea10 into rustfs:main Sep 20, 2026
1 of 2 checks passed
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.

1 participant