mirror of
https://github.com/rustfs/rustfs.git
synced 2026-05-07 23:27:50 +08:00
2.0 KiB
2.0 KiB
Decommission Validation
This helper covers a practical decommission smoke flow against a disposable multi-pool cluster that is already running and reachable via mc.
What It Covers
- Versioned object rewrite
- Multipart object rewrite
- Delete-marker preservation
- Object-lock bucket readability after decommission
- Admin decommission start/status/cancel command flow
What It Does Not Cover Automatically
- Remote tier object migration
- Lifecycle-expired object skipping
- Replication target side-effects
- Cross-node failure injection during decommission
Those scenarios still need cluster-specific setup and should be verified manually after the smoke flow passes.
Prerequisites
mcinstalled and configured with an alias that points to the RustFS cluster- A disposable cluster with at least two pools
- A pool cmdline string that matches the admin API input, for example:
http://server{5...8}/disk{1...4}
Recommended Flow
- Prepare data:
./scripts/test/decommission_validation.sh prepare <alias> - Start decommission:
./scripts/test/decommission_validation.sh start <alias> '<pool-cmdline>' - Wait for completion:
./scripts/test/decommission_validation.sh wait <alias> '<pool-cmdline>' 900 - Verify readable data and version listings:
./scripts/test/decommission_validation.sh verify <alias>
Optional Cancel Check
- Start decommission on a disposable pool.
- Run:
./scripts/test/decommission_validation.sh cancel <alias> '<pool-cmdline>' - Confirm status shows
canceled=trueand notcomplete=true.
Manual Extension For Tiered Objects
If the cluster already has a configured remote tier and ILM transition rule:
- Upload an object that matches the transition rule.
- Wait until the object is transitioned remotely.
- Run the decommission flow above.
- Confirm:
- the object is still readable after decommission
- decommission completes without
failed=true - no residual object/version remains on the source pool