阈值与限制
本页列出了适用于 MinIO 的阈值与限制。
有关相关建议和要求,请参阅 hardware 和 software。
S3 API 限制
项目 |
规格 |
|---|---|
最大对象大小 |
50 TiB |
最小对象大小 |
0 B |
单次 PUT 操作的最大对象大小 |
非 multipart upload 为 5 TiB multipart upload 为 50 TiB |
每次上传的最大分片数 |
10,000 |
分片大小范围 |
5 MiB 到 5 GiB。最后一个分片可为 0 B 到 5 GiB |
每次 list parts 请求返回的最大分片数 |
10,000 |
每次 list objects 请求返回的最大对象数 |
1,000 |
每次 list multipart uploads 请求返回的最大 multipart upload 数 |
1,000 |
存储桶名称最大长度 |
63 |
对象名称最大长度 |
1024 |
对象名称中每个以 |
255 |
单个唯一对象允许的最大版本数 |
10000(可配置) |
纠删码限制
| 项目 | 规格 |
|---|---|
| 每个集群的最大服务器数 | 无限制 |
| 最小服务器数 | 1 |
| 当服务器数为 1 时,每台服务器的最少驱动器数 | 1(适用于 SNSD 部署,此类部署不提供额外可靠性或可用性) |
| 当服务器数为 2 或更多时,每台服务器的最少驱动器数 | 1 |
| 每台服务器的最大驱动器数 | 无限制 |
| 每个多盘纠删集合的最少磁盘数 | 2 |
| 每个纠删集合的最多磁盘数 | 16 |
| 对象读仲裁 | K=N-M |
| 对象写仲裁 | K>M 时为 K;K=M 时为 K+1 |
其中,N 是单个纠删集合的磁盘数,M 是对象的校验分片数,K 是数据分片数。上述公式用于保存在本地的普通非空对象;读取还要求分片完好并满足相应的 元数据仲裁。降级集合中的新写入可能采用更高的校验值。只有在 K=M=N/2 时,读写仲裁才分别为 N/2 和 N/2+1。单盘 EC:0 不提供纠删码冗余;双盘 EC:1 读取需要 1 盘,写入需要 2 盘。
对象名称限制
文件系统和操作系统限制
MinIO 中的对象名称主要受本地操作系统和文件系统限制。 Windows 和某些其他操作系统会限制包含特定特殊字符的文件系统名称,例如 ^、*、|、\、/、&、" 或 ;。
此列表并不完整,也不一定适用于你的操作系统和文件系统组合。
在类 Unix 操作系统上,路径名为 .、.. 或 / 的对象会返回 file access denied 错误。
请查阅你的操作系统供应商或文件系统文档,以获得适用于当前环境的完整列表。
MinIO 建议生产工作负载使用基于 XFS 文件系统的 Linux 操作系统。
冲突对象
应用必须为所有对象分配不冲突的唯一键。 这包括避免创建与父对象或同级对象名称发生冲突的对象。 当名称发生冲突时,MinIO 在该位置的 LIST 操作会返回空结果集。
例如,以下操作会创建命名空间冲突:
虽然你仍然可以对这些对象执行 GET 或 HEAD 操作,但名称冲突会导致在 /invoices/2024/january 路径上的 LIST 操作返回空结果集。