本文由 AI 分析生成
建立時間: 2026-03-28 來源: https://ambersuncreates.com/database/database-minio/
Summary
Shawn Hsu provides a deep technical introduction to MinIO, an open-source S3-compatible object storage system. The article covers MinIO’s cluster architecture (server pools, erasure sets), replication modes (active-active vs active-passive, sync vs async), Erasure Coding for data integrity, Quorum for consistency, object versioning, lifecycle management, webhook event notifications, and access control policies.
Shawn Hsu 深入介紹 MinIO — 一個開源的 S3 相容物件儲存系統。文章涵蓋 MinIO 的叢集架構(server pools、erasure sets)、複製模式(主主對主從、同步對非同步)、Erasure Coding 資料完整性、Quorum 一致性、物件版本控制、生命週期管理、Webhook 事件通知,以及存取控制策略。
Key Points
- MinIO cluster: multiple server pools → each pool has multiple nodes and erasure sets; data is written to least-loaded erasure set (no re-balancing)
- Active-Active replication (default): multi-leader, bi-directional sync; all metadata and config synced alongside data
- Erasure Coding: splits object into k data + n parity chunks; any k chunks can reconstruct the object — more efficient than RAID-1 (no 100% duplication)
- Quorum vs Erasure Coding: Quorum ensures consistency across nodes (prevents split-brain); Erasure Coding ensures data integrity (recovers from disk corruption) — they solve different problems
- Object versioning: per-namespace; soft deletes via DeleteMarker; UUID v4 identifies each version
- Lifecycle management: Object Expiration (auto-delete after N days) and Object Tiering (move to cold storage) — both managed by Object Scanner (low priority process)
- Webhook events: configurable per bucket; supports ARN-based routing, Kafka, RabbitMQ; delete events don’t include metadata per S3 spec
Insights
The distinction between Erasure Coding and Quorum is a subtle but important architectural insight: they address complementary failure modes. Erasure Coding protects against disk-level corruption (bit rot, failed drives); Quorum protects against network partitions and ensures nodes agree on data state. MinIO’s choice not to re-balance data (writing to the least-loaded set instead) is a pragmatic tradeoff — avoiding the massive I/O cost of data migration at the expense of potentially uneven distribution over time.
Connections
Raw Excerpt
MinIO 透過這兩個機制在各種意義上保護了你的資料,而他們的設計也是為了因應不同的狀況 不要搞混。