feat: improve legacy metadata and admin compatibility (#2202)

This commit is contained in:
weisd
2026-03-18 21:05:09 +08:00
committed by GitHub
parent 84077adf17
commit b9b7d86ae4
133 changed files with 11707 additions and 1945 deletions
+49
View File
@@ -0,0 +1,49 @@
# Local Docker Decommission Test
This setup simulates a two-pool RustFS cluster locally with Docker so decommission can be tested without relying on a remote environment.
## Topology
- One RustFS container
- Two pools
- Four disks per pool
- S3 API on `http://127.0.0.1:9100`
- Console on `http://127.0.0.1:9101`
Pool cmdlines used by admin decommission:
- `/data/pool0/disk{1...4}`
- `/data/pool1/disk{1...4}`
## Quick Start
1. Start the local cluster:
`./scripts/test/decommission_docker.sh up`
2. Run the end-to-end smoke flow:
`./scripts/test/decommission_docker.sh smoke`
## Manual Flow
1. Start the cluster:
`./scripts/test/decommission_docker.sh up`
2. Prepare test data:
`./scripts/test/decommission_validation.sh prepare rustfs-decom`
3. Start decommission on pool 1:
`./scripts/test/decommission_validation.sh start rustfs-decom '/data/pool1/disk{1...4}'`
4. Wait for completion:
`./scripts/test/decommission_validation.sh wait rustfs-decom '/data/pool1/disk{1...4}' 900`
5. Verify objects and versions:
`./scripts/test/decommission_validation.sh verify rustfs-decom`
## Cleanup
- Stop containers:
`./scripts/test/decommission_docker.sh down`
- Remove containers, volumes, generated data, and saved validation state:
`./scripts/test/decommission_docker.sh reset`
## Notes
- This simulates pools, not separate physical nodes.
- It is good for validating decommission control flow and object migration behavior.
- It is not a substitute for a real distributed failure-injection test.