纠删码(EC)设置
本页面涵盖了配置写入 MinIO 集群对象的 擦除码 奇偶校验 的设置。 这会影响 MinIO 如何使用驱动器上的空间以及 MinIO 如何恢复存储在丢失驱动器上的对象或类似问题。
您可以通过定义以下内容来建立或修改设置:
在启动或重新启动 MinIO 服务器之前,在宿主系统上定义一个 环境变量。 请参阅您的操作系统的文档,了解如何定义环境变量。
使用
mc admin config set
命令来设置一个 配置项。使用 MinIO控制台 的 管理员 > 设置 页面来设置一个 配置项。
如果您同时定义了环境变量和类似的配置设置,MinIO 将使用环境变量的值。
有些设置只有环境变量或配置设置,而不是两者都有。
重要
每个配置设置都控制着MinIO的基本行为和功能。 MinIO 强烈建议 在较低的环境中,如DEV或QA,测试配置更改,然后再将其应用到生产环境中。
标准存储类
备注
MinIO 的存储类别(Storage Classes) 与 AWS 的存储类别 是不同的。
AWS的存储类别是指存储给定对象的特定存储层,例如 hot
或 glacier
存储。
MinIO的存储类别影响使用的擦除码奇偶校验设置,并与对象的 可用性和弹性 相关。
有关将存储从一种类型分层到另一种类型,例如出于成本管理目的,请参见 对象转换(分层) 。
部署的 奇偶校验级别 。
MinIO 使用这个奇偶校验值将使用默认的 STANDARD
存储类写入的对象分片。
MinIO 在请求元数据中引用 x-amz-storage-class
头信息来确定分配给对象的存储类。
设置头信息的特定语法或方法取决于您与 MinIO 服务器交互的首选方式。
使用 EC:M
表示法指定值,其中 M
指的是为对象创建的奇偶校验块的数量。
以下表格列出了基于部署中初始服务器池的 erasure set size 的默认值:
错误集合大小 |
默认奇偶校验(EC:N) |
---|---|
1 |
EC:0 |
2-3 |
EC:1 |
4-5 |
EC:2 |
6 - 7 |
EC:3 |
8 - 16 |
EC:4 |
最小支持值是 0
,这表示没有错误编码保护。
这些部署完全依赖于存储控制器或资源的可用性/弹性。
最大值取决于部署中初始服务器池的错误集合大小,其中上限是 \(\frac{\text{ERASURE_SET_SIZE}}{\text{2}}\)。 例如,具有16个错误集合条带的部署的最大标准奇偶校验数为8。
您可以在启动后更改此值,任何值在 0
和错误集合大小的上限之间。
MinIO 只将更改的奇偶校验应用于新写入的对象。
现有对象保留在其创建时的奇偶校验值。
减少冗余存储类
备注
MinIO 的存储类别 与 AWS 的存储类别 是不同的。
AWS的存储类别是指存储给定对象的特定存储层,例如 hot
或 glacier
存储。
MinIO 存储类别影响使用的擦除代码奇偶校验设置,并与对象的 可用性和弹性 相关。
有关将存储从一种类型分层到另一种类型的信息,例如出于成本管理目的,请参阅 对象转换(分层) 。
使用 REDUCED
存储类写入对象的 奇偶校验级别 。
MinIO 在请求元数据中引用 x-amz-storage-class
头以确定分配给对象的存储类别。
设置头的特定语法或方法取决于您与 MinIO 服务器交互的首选方式。
使用 EC:M
表示法指定值,其中 M
指的是为对象创建的奇偶校验块的数量。
这个值 必须 小于或等于 MINIO_STORAGE_CLASS_STANDARD
。
对于具有小于2的擦除集大小的部署,您无法为此值设置。
默认值为 EC:1
,对于擦除集大小大于1的部署。
对于擦除集大小为1的部署,默认值为 EC:0
。
奇偶校验保留优化
MinIO 默认会自动 “升级” 对象的校验信息,如果目标擦除集保持写入大多数(write quorum) 但 有一个或多个驱动器离线。 这种行为有助于确保给定对象保持与写入健康擦除集的对象相同的可用性。
将 capacity
指定到此设置,以指示MinIO不为对象创建任何额外的校验数据。
这优先考虑了集群的总容量,但在那种擦除集合中更多的驱动器失败的情况下,可能会牺牲对象的可可用性。
注释
在存储类设置中添加一条注释。