Skip to main content

Choose an Object Storage Provider

Overview

Ilum runs entirely on S3-compatible object storage. The bundled helm_aio chart supports two providers natively (RustFS and MinIO) and integrates with any external S3 service that the cluster can reach. Two further providers (Garage and SeaweedFS) are on the roadmap and already accommodated by the provider registry. This page documents the trade-offs and helps an operator decide which path to take.

Comparison matrix

The matrix compares the qualitative properties of each supported and planned provider.

PropertyRustFSMinIOAWS S3WasabiBackblaze B2Garage (planned)SeaweedFS (planned)
LicenseApache-2.0AGPL-3.0 (server)Proprietary (AWS)Proprietary (Wasabi)Proprietary (Backblaze)Apache-2.0 / AGPL-3.0Apache-2.0
Status in IlumBundled, opt-in (planned default in 6.8.0)Default in 6.7.xBYOBYOBYOPlanned, registry-readyPlanned, registry-ready
Bundled chartYes (RustFS 0.0.99)Yes (Bitnami 15.0.7)NoNoNoNoNo
Distributed modeStandalone (alpha-safe default)NativeManaged (AWS)Managed (Wasabi)Managed (Backblaze)Native (planned)Native (planned)
Console UXEmbedded same-origin iframeEmbedded /external/minio/ proxyProvider-hosted (no embed)Provider-hosted (no embed)Provider-hosted (no embed)PlannedPlanned
OIDC integrationOperator-supplied via extraEnvHydra-preconfiguredManaged by AWS IAMWasabi IAMBackblaze application keysNot yet evaluatedNot yet evaluated

Decision tree

Three short branches cover the common deployment shapes.

"I want zero-ops bundled storage"

Use the default. MinIO is enabled out of the box in the 6.7.x line.

helm install ilum ilum/helm_aio

To opt into RustFS (the planned default from 6.8.0) instead, enable it and disable MinIO:

helm install ilum ilum/helm_aio \
--set rustfs.enabled=true \
--set minio.enabled=false

Either choice creates the ilum-objectstorage Service alias and wires every bundled consumer through it.

"I already operate an S3-compatible backend"

Disable both bundled providers and point Ilum at the existing service.

helm install ilum ilum/helm_aio \
--set rustfs.enabled=false \
--set minio.enabled=false \
--set objectStorage.endpoint=https://s3.us-east-1.amazonaws.com

For provider-specific configuration recipes, refer to Provider Reference: External S3.

"I want to benchmark providers side by side"

Run two providers concurrently and route user traffic through the alias. Set objectStorage.activeProvider explicitly when more than one provider is enabled. The alias selector flips on a single helm upgrade --set.

helm install ilum ilum/helm_aio \
--set minio.enabled=true \
--set rustfs.enabled=true \
--set objectStorage.activeProvider=rustfs

Reversibility

Switching providers is a single helm upgrade --set away. The ilum-objectstorage Service alias selector flips atomically; every bundled consumer picks up the new endpoint on its next connection.

The data side is not reversible without a migration. Refer to Migrate Between Providers for the mirror procedure that runs before the alias flip.

Constraints to be aware of

  • RustFS alpha distributed mode. The bundled chart configures standalone mode. Erasure coding and multi-replica distribution are available upstream but marked "under testing".
  • MinIO console pin. The MinIO console binds itself to the absolute URL configured by MINIO_BROWSER_REDIRECT_URL. The bundled default pins it to /external/minio/. The Ilum UI's /external/object-storage/ alias path redirects to that absolute URL when MinIO is the active provider.
  • No simultaneous writes across providers. The cutover model assumes a single active provider at any given time. Operators that want multi-region replication should configure it at the provider layer, not by enabling two Ilum providers concurrently.

Reference