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"
}
}
]
}
| 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 |