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.metav1 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.