Single-host (SAIO)
swift-rust/deploy/ stands up a 4-node single-host cluster (a 3× replication
policy and an EC-4-2 policy) from prebuilt binaries — no compiler, no dependency
install.
Use this only on a disposable, isolated host after confirming its listeners,
devices, service names, and data roots are unused. Do not run the bootstrap or
the fragment-loss demo on swift1–swift4, an existing :8080, or any device
that contains retained data.
Unpack the bundle (binaries + liberasurecode .so family + scripts).
tar xzf swift-rust-bundle.tar.gz
cd swift-rust-bundleBootstrap. Idempotent; installs libs+bins, builds rings, starts the systemd service, runs a smoke test.
sudo bash bootstrap.sh # prints SMOKE: PASS when live at :8080Operate.
bash smoke.sh # re-run the end-to-end check
bash ec-heal-demo.sh # destructive: scratch SAIO data only
systemctl status swift-rust-saio # the cluster serviceMulti-node
A real deployment uses the same binaries with real rings and the replicators’ rsync-over-ssh mode. Two paths:
- swift-deploy-rs — plan, seal, verify, and apply the Swift Ansible v3 topology natively, driven from its control console or the swift-console Deploy surface.
- Manual — build rings with
swift-ring-builder, placeswift.conf+ rings underSWIFT_DIRon every node, and run the servers as systemd units.
Rolling binary upgrade
Only formats and paths accepted by the compatibility gates may be used for a mixed-version roll. Promote one prebuilt, hashed artifact one node at a time; do not rebuild independently on each node. The commands below are an outline, not an authorization or complete rollback plan:
Record and back up the exact current binaries and configuration on the node.
PEREGRINE_ROLLBACK_DIR="/var/lib/peregrine-rollback/$(date +%F-%H%M%S)"
sudo install -d -m 0755 "$PEREGRINE_ROLLBACK_DIR"
sudo cp -a /usr/local/bin/swift-proxy-server \
/usr/local/bin/swift-object-server \
/usr/local/bin/swift-container-server \
/usr/local/bin/swift-account-server \
"$PEREGRINE_ROLLBACK_DIR/"
sha256sum "$PEREGRINE_ROLLBACK_DIR"/*Install the new binaries and restart the services on that node.
install -m755 target/release/swift-object-server /usr/local/bin/
systemctl restart swift-object swift-container swift-account swift-proxyVerify the new executable SHA, health, CRUD/read-back, policy paths, and daemon progress, then hold and move to the next node only if the gate remains clean.
curl -s -o /dev/null -w '%{http_code}\n' http://<node>:8080/healthcheck # 200The complete prerequisites, stop conditions, and rollback evidence are in Upgrade and rollback.