Logo

文档基于2025-10-10日社区最终版构建     
切换到英文版    进入演示系统    进入交流社区

核心概念

Erasure Coding

MinIO 纠删码是一项数据冗余与可用性功能,它使得 MinIO 部署能够在集群中多个驱动器或节点发生故障的情况下, 依然自动实时重建对象。与 RAID 或副本复制等相邻技术相比, 纠删码能以更低的开销实现对象级修复。

Erasure Coding 将对象分割为数据块与校验块,其中校验块 支持重建丢失或损坏的数据块。MinIO 会将 数据块和校验块同时分布到:minio server节点和驱动器在擦除集. 根据纠删码集合中配置的奇偶校验、节点数量和每个节点的驱动器数量,MinIO 可以容忍最多一半(N/2) 的驱动器,仍然能够 检索存储的对象。

下表列出了不同EC级别对具有单个16驱动器服务器池的MinIO租户的影响:

16驱动器服务器池的奇偶校验设置结果

Parity

总存储容量

存储比率

读取操作所需的最小驱动器数

写入操作所需的最小驱动器数

EC: 4

12 Tebibytes

0.750

12

13

EC: 6

10 太比字节

0.625

10

11

EC: 8

8 Tebibytes

0.500

8

9

由于奇偶校验块需要存储空间,更高的奇偶校验级别能够提升对驱动器或存储单元故障的容错能力,但会牺牲总可用存储容量。

MinIO 支持两种奇偶校验级别:标准(默认)和精简。租户的默认奇偶校验级别取决于部署在该租户上的 MinIO 版本:

  • 对于 MinIO 版本RELEASE.2021-01-30T00-20-58Z以及后来, 默认标准EC取决于擦除集中的卷数:

    • 对于8个或更多卷,EC:4

    • 对于6-7卷,EC:3

    • 对于4-5卷,EC:2

  • 对于 MinIO 版本RELEASE.2021-01-16T02-19-44Z或更早版本, 默认EC是纠删集中驱动器数量的一半。例如, 一个16驱动器的服务器池有EC:8.

您可以通过指定自定义擦除码奇偶校验设置来MINIO_STORAGE_CLASS_STANDARDMINIO_STORAGE_CLASS_RRS标准配置和精简配置的环境变量。使用env将环境变量指定为 MinIO Tenant 的一部分YAML规格说明之前创建租户。

有关擦除编码的更完整文档,请参阅minio-erasure-coding.

Bucket Versioning

MinIO支持在单个存储桶中保留对象的多个"版本"。 通常覆盖现有对象的写入操作会转而创建新的版本化对象。MinIO版本控制可防止意外覆盖和删除,同时支持"撤销"写入操作。存储桶版本控制还支持保留和归档策略。

MinIO 为每个对象生成唯一的不可变ID。如果 PUT 请求包含的对象名称与现有对象重复,MinIO 不会覆盖"较旧"的对象。相反,MinIO 会保留所有对象版本,同时将最近写入的对象"版本"视为"最新"。应用程序默认检索最新对象版本,但也可以检索该对象历史记录中的任何其他版本。

您可以使用以下命令随时启用或禁用存储桶版本控制:mc version enable命令。参见minio-bucket-versioning获取更完整的文档。