---
id: "zh/deployment-object-storage"
title: "对象存储与纠删码"
language: "zh"
description: "MinIO 对象存储、纠删码、空间利用率、硬件准备和扩容说明。"
canonical_url: "https://www.babel.cc/public/babelwiki/zh/deployment-object-storage.html"
markdown_url: "https://www.babel.cc/public/babelwiki/ai/zh/deployment-object-storage.md"
alternates: {"en": "https://www.babel.cc/public/babelwiki/ai/en/deployment-object-storage.md", "zh": "https://www.babel.cc/public/babelwiki/ai/zh/deployment-object-storage.md"}
reading_note: "文档记录不等于当前部署能力；以实际版本、授权模块与配置为准。保留原文的可选、限制及待确认说明，勿补猜接口。 / Documentation is not a guarantee for every deployment. Preserve optional-module requirements, limitations and unresolved API contracts."
---

# 对象存储与纠删码

巴别鸟可结合基于 MinIO 的对象存储方案管理文件内容。存储方案应按交付版本、容量、故障域和运维要求确认，不能直接把第三方实验室性能作为巴别鸟的性能承诺。

## 纠删码原理

纠删码将对象分为数据块和校验块，分布在一个纠删码集合中。以 `N = K + M` 表示总块数、数据块数与校验块数，在该对象的集合仍有足够完整分片时可恢复读取；能否继续写入还取决于写入仲裁条件。具体规则参考 [MinIO 纠删码说明](https://min.io/docs/minio/linux/operations/concepts/erasure-coding.html)，巴别鸟交付环境按实际配置验证。

![分布式对象存储纠删码示意](https://www.babel.cc/public/babelwiki/assets/images/object-storage-erasure-distributed.png)
*纠删码按对象及其所在集合提供冗余，不是把全系统所有校验盘的容错能力相加。*

“坏一半硬盘仍正常使用”不是通用保证。不同对象的编码参数、故障分布、读写仲裁及元数据状态都可能影响可用性。纠删码提供冗余，不是加密；取得底层存储权限仍属于安全风险，需要配合访问控制、加密和密钥管理。

## 容量计算

忽略格式化、元数据、版本与安全余量时，理论有效容量可近似为：

`原始容量 × K / (K + M)`

| 数学示例 | 理论容量 | 容错边界 |
| --- | --- | --- |
| 8 块 10TB 磁盘，分成两个独立的 3+1 集合 | 80TB × 3/4 = 60TB | 每个集合最多缺失 1 个分片；同一集合坏 2 盘可能无法恢复，不能承诺任意坏 2 盘 |
| 8 块 10TB 磁盘，组成一个 7+1 集合 | 80TB × 7/8 = 70TB | 该集合最多缺失 1 个分片；读写服务仍须符合实际实现的仲裁要求 |

以上只解释计算方法，不表示每种分组都受当前交付版本支持。采购容量还需预留增长、历史版本、回收站、维护与独立备份空间；TB 与 TiB 的显示差异也应计入。

## 部署与扩容

单机多盘可以抵御部分磁盘故障，但不能抵御整台服务器不可用。分布式部署还要考虑节点、机架、电源及网络故障域，不能仅凭“2+1”或“3+1”就确定服务器数量。

节点规格、磁盘类型、纠删码集合、扩容批次和不停机扩容条件应由实施团队确认。不要直接修改对象存储底层目录或在未验证的情况下改变磁盘布局。损坏后的修复需要足够存活分片，并应监控修复结果。

高可用、复制与纠删码均不替代独立备份。完整资源与恢复规划见[服务器需求](https://www.babel.cc/public/babelwiki/zh/deployment-requirements.html)和[高可用部署](https://www.babel.cc/public/babelwiki/zh/deployment-high-availability.html)。
