Open-Source Wikis

/

MinIO

/

Background

/

Migration context

minio/minio

Migration context

Older formats and behaviours you may still encounter.

xl.meta v1 → v2

The original on-disk metadata used multiple JSON files per object. v2 unified them into a single MessagePack blob.

  • Code: cmd/xl-storage-format-v1.go (the legacy reader), cmd/xl-storage-format-v2-legacy.go (the upgrade path), cmd/xl-storage-format-v2.go (the current writer).
  • Trigger: any xl.meta v1 read converts into v2 on next rewrite.
  • Tests: cmd/xl-storage-format_test.go, cmd/xl-storage-format-v2_test.go.

A clean upgrade path means a v1-format cluster can be upgraded to today's master without re-uploading data. New deployments only ever see v2.

Format-erasure version

format.json on each drive carries a version. The version has been bumped when the drive layout changed (e.g. when sets-per-pool grew). cmd/format-erasure.go carries the migration code; bumps are rare.

Metrics v2 → v3

Both endpoints exist today. v2 (cmd/metrics-v2.go) is one large collector with AWS-CW-style names. v3 (cmd/metrics-v3*.go) groups metrics by concern. Operators with existing dashboards can keep scraping v2; new metrics land in v3 and are sometimes mirrored to v2 for compatibility.

SigV2 still around

cmd/signature-v2.go carries the legacy SigV2 implementation. It exists for clients that don't speak SigV4; new code should not depend on it.

Removed: gateway mode

Older releases let MinIO front a remote NAS, S3, Azure, GCS, or HDFS as if it were S3. The gateway code is gone in this repo. The "warm backend" code (cmd/warm-backend-*.go) keeps a more focused subset for ILM transitions.

Removed: federation

docs/federation/ exists as documentation only. The recommended cross-cluster story is now site replication.

Bucket policy schema

The policy schema follows AWS IAM policy. Some MinIO-specific actions are layered on top (AdminAction:* for admin endpoints). New actions land in pkg/v3/policy and need to be referenced both in policy evaluation (cmd/iam.go.IsAllowed) and in the bucket-policy validator (cmd/bucket-policy.go).

Default config encryption

If a KMS is configured, the on-disk cluster config is encrypted with the cluster KEK (internal/config/crypto.go). Older deployments without KMS still have a plaintext config; they are migrated transparently when KMS is enabled.

Embedded console version pin

The console is pinned in go.mod (github.com/minio/console v1.7.7-0.20250905...). Bumping it requires a matching go mod tidy and rebuild; some console changes need server-side support.

MINIO_API_REQUESTS_MAX

The default has changed over releases. Older operator playbooks may set explicit values; today the default scales with CPU count. If you compare metrics across versions, account for the different defaults.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Migration context – MinIO wiki | Factory