Skip to content

MinIO — Operations

Scope

Production deployment, multi-tenant setup, erasure coding, lifecycle policies, and monitoring.

Deployment Patterns

Distributed Mode

# 4-node distributed deployment (minimum for erasure coding)
minio server http://minio{1...4}/data{1...4} \
  --console-address ":9001"
Topology Nodes Drives/Node Erasure Set Parity
Minimal HA 4 4 16 drives EC:4 (default)
Production 8 8 64 drives EC:4
Large scale 16+ 12 192+ drives EC:4-8

Kubernetes Operator

# Install MinIO Operator
kubectl apply -f https://raw.githubusercontent.com/minio/operator/master/resources/base/crds/minio.min.io_tenants.yaml
helm install operator minio/operator -n minio-operator --create-namespace

Bucket Lifecycle

{
  "Rules": [
    {
      "ID": "expire-old-versions",
      "Status": "Enabled",
      "NoncurrentVersionExpiration": {
        "NoncurrentDays": 30
      }
    },
    {
      "ID": "transition-to-tier",
      "Status": "Enabled",
      "Transition": {
        "Days": 90,
        "StorageClass": "GLACIER"
      }
    }
  ]
}

Performance Tuning

Setting Default Tuned Impact
Erasure parity EC:4 EC:2 (speed) or EC:8 (durability) Write speed vs redundancy
Batch replication OFF ON Cross-site data protection
Scanner speed default fast Faster healing at cost of CPU

Monitoring

# MinIO client diagnostics
mc admin info myminio
mc admin prometheus generate myminio

# Key Prometheus metrics
minio_s3_requests_total
minio_node_disk_used_bytes
minio_node_disk_free_bytes
minio_inter_node_traffic_sent_bytes

Common Issues

Issue Diagnosis Fix
Drive offline mc admin info Replace drive, healing auto-starts
Slow uploads Network or disk I/O Check inter-node bandwidth, use NVMe
Bucket policy denied mc admin policy info Review IAM policy attachment
Disk full mc admin info --json Add drives, enable lifecycle deletion