Skip to content

Deploy

A one-command single-host cluster, a real multi-node deployment, and rolling binary upgrades.

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-bundle

Bootstrap. Idempotent; installs libs+bins, builds rings, starts the systemd service, runs a smoke test.

sudo bash bootstrap.sh          # prints SMOKE: PASS when live at :8080

Operate.

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 service

Multi-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, place swift.conf + rings under SWIFT_DIR on 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-proxy

Verify 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   # 200

The complete prerequisites, stop conditions, and rollback evidence are in Upgrade and rollback.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close