Upgrade a Silo Deployment
Legacy upstream upgrades
If the deployment still runs an upstream MinIO release older than RELEASE.2024-03-30T09-41-56Z with AD/LDAP enabled, read the upstream notes for RELEASE.2024-04-18T19-09-19Z and complete its migration steps before moving to Silo. These names and links identify upstream release contracts and are intentionally retained.
Upgrade Silo by installing a verified server artifact on every node and then restarting the deployment as one coordinated operation. A full-cluster restart creates a brief availability interruption. Applications should retry failed or interrupted requests; operation atomicity does not remove the need for retry handling.
This page covers systemctl-managed and manually managed bare-metal deployments. When Ansible, Terraform, containers, or another orchestrator owns the service, apply the same release, verification, and restart boundaries through that tool instead of editing its managed files by hand.
Before You Upgrade
- Back up cluster settings. Export bucket metadata and IAM configuration with
mc admin cluster bucket exportandmc admin cluster iam export. - Choose a published Silo release. Use Download & Install, Silo release notes, and GitHub Releases. A local tag, branch commit, draft release, or uploaded draft asset is not a published release.
- Verify the artifact. Check its SHA-256 digest against the checksum published with that exact release. Pin one release across all nodes.
- Read every intervening release note. Pay particular attention to format, identity, configuration, and downgrade warnings.
- Test the exact upgrade in a lower environment. Exercise representative reads, writes, policies, lifecycle rules, replication, notifications, and recovery procedures before production.
- Disable the inherited in-place updater. Set
MINIO_UPDATE=offin the server environment and restart the service so the setting takes effect. - Check bucket-scoped policies for object-only resources. In the exported IAM configuration, look for statements that grant one of twelve bucket-level write actions — or
s3:*— on a resource pattern containing/, with no bare bucket ARN for the same bucket. Those statements no longer authorize those actions. Add the bare ARN alongside the object pattern; see Bucket and Object Resources. Built-in policies and any statement usingarn:aws:s3:::*are unaffected.
Do not use mc admin update ALIAS for Silo
As of 2026-08-05, an omitted update URL still selects the upstream dl.min.io feed and upstream MinIO signing key in the latest published Silo server. The command can therefore replace Silo with an upstream binary. Use the verified package or binary procedure below. The separate client command mc update is disabled and cannot perform an upgrade.
systemctl-Managed Deployments
-
Download the same published server release for every node from Download & Install, then verify its checksum.
-
Install the package or replace the binary on every node without restarting only part of the cluster:
Replace
/usr/local/bin/miniowith the path returned bycommand -v miniowhen your installation uses a different location. -
Run
minio --versionon every node. Do not proceed until every node reports the same intended release. -
Restart all server processes as one coordinated operation. Where the admin API is available, use:
Otherwise coordinate
systemctl restart minioacross all nodes through your automation. Do not improvise a rolling mixed-version deployment unless the target release explicitly supports it. -
Validate the deployment with
mc admin info, then test representative S3 reads and writes, console access, identity login, and any configured replication or notifications. -
Upgrade the client separately from Download & Install. Standalone artifacts use
mcli; source builds and the container retainmc.
Manually Managed Deployments
For a process managed by a user script or another supervisor, download and verify the same Silo binary on every node, replace the executable at the path used by that supervisor, confirm minio --version, and restart all nodes as one coordinated operation. The service account must be able to execute the new binary; the operator performing the replacement must be able to write its installation path.
After restart, run the same validation described above. Preserve the previous verified binary until validation completes so that any rollback decision can follow the target release’s documented downgrade constraints.