MinIO 生产运维实战
MinIO 生产运维实战
MinIO 是一款高性能对象存储系统,采用 Go 语言编写,完全兼容 Amazon S3 API。它适合私有云和边缘计算场景,单集群吞吐可达 GiB/s 级别。本文从核心原理出发,覆盖生产部署、日常运维、故障排查和监控告警全流程。
MinIO 简介
MinIO 的核心设计目标是在私有环境中提供与公有云 S3 一致的对象存储体验。与 Ceph RGW 等方案相比,MinIO 部署简单、运维轻量,同时通过纠删码(Erasure Coding)实现了高可用数据保护。
主要特性:
- S3 兼容 API:支持 S3 Select、S3 Event Notification、Versioning、Lifecycle 等
- 高性能:单节点可达 10 GiB/s 读写(取决于硬件),天然适合大文件和高吞吐场景
- 纠删码保护:无需 RAID,应用层实现数据冗余,存储效率高于传统多副本
- 分布式原生的:无单点故障,支持横向扩展和站点间复制
- 加密与合规:支持服务端加密(SSE-S3/SSE-KMS)、WORM 模式、对象锁定
适用场景:数据湖存储、日志归档、备份与容灾、机器学习数据集管理、CI/CD 制品仓库、ClickHouse 冷数据存储。
核心概念
| 概念 | 说明 |
|---|---|
| Bucket | 对象存储的命名空间容器,类似文件系统的目录,但不可嵌套 |
| Object | 存储的基本单元,包含数据(文件内容)、元数据(key-value)和版本号 |
| Erasure Coding(纠删码) | 将对象分片为数据片和校验片分布存储,允许部分磁盘/节点故障而不丢数据 |
| Erasure Set | 纠删码的最小计算单元,由一组磁盘(通常 8-16 块)组成,数据在同一 Set 内做纠删 |
| Server Pool | 一组 MinIO Server 的集合,多个 Pool 可横向扩展容量,每个 Pool 独立做纠删 |
| IAM 策略 | 基于策略的访问控制,兼容 AWS IAM 策略语法,支持用户、组、STSTS 临时凭证 |
数据流向示意:
客户端请求(S3 API)
│
▼
┌─ MinIO Server ──────────────────────┐
│ Bucket 策略 → IAM 认证/授权 │
│ 对象写入 → 纠删码编码 → 分片写入 │
│ Erasure Set(8 块磁盘) │
│ ┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐┌──┐ │
│ │D1││D2││D3││D4││P1││P2││P3││P4│ │
│ └──┘└──┘└──┘└──┘└──┘└──┘└──┘└──┘ │
│ 数据片(D) 校验片(P) │
└─────────────────────────────────────┘纠删码原理
纠删码是 MinIO 数据保护的核心机制。与传统三副本(存储效率 33%)相比,纠删码在相同可靠性的前提下提供更高的存储利用率。
编码过程
原始数据 → 分成 N 个数据片 + M 个校验片 → 分布到不同磁盘
示例:EC:4(4 个数据片 + 4 个校验片,共 8 块盘)
┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐
│ D1 │ │ D2 │ │ D3 │ │ D4 │ │ P1 │ │ P2 │ │ P3 │ │ P4 │
│数据片│ │数据片│ │数据片│ │数据片│ │校验片│ │校验片│ │校验片│ │校验片│
└─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘
↑ 可丢失任意 4 块盘
读取:任意 4 个存活片即可恢复完整数据
写入:需要写入全部 8 个分片(数据片 + 校验片)EC 配置对比
| 配置 | 数据片 : 校验片 | 可丢失磁盘数 | 存储效率 | 适用场景 |
|---|---|---|---|---|
| EC:2 | 6 : 2 | 2 | 75% | 测试/开发环境 |
| EC:4 | 4 : 4 | 4 | 50% | 生产环境(默认,推荐) |
| EC:6 | 2 : 6 | 6 | 33% | 高可靠场景(金融、合规) |
生产环境默认使用 EC:4,即可容忍一半磁盘故障。如果对存储效率有更高要求且硬件可靠,可调低校验片数量;如果数据极为关键,可增加校验片。
关键约束:在一个 Erasure Set 中,同时故障的磁盘数不得超过校验片数量,否则数据不可恢复。
生产部署
分布式集群部署
推荐的最小生产拓扑为 4 节点,每节点 4 块独立磁盘(共 16 块盘),组成两个 Erasure Set(每个 Set 8 块盘)。
# 启动分布式集群
minio server \
http://minio{1...4}/data{1...4} \
--console-address ":9001" \
--address ":9000"
# 或者使用环境变量配置
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD='your-strong-password-here'
export MINIO_OPTS="--console-address :9001"生产环境注意事项:
- 每块盘独立挂载到
/data{1...N},不要使用 RAID 或 LVM,MinIO 自身管理纠删码 - 确保所有节点系统时间同步(NTP/Chrony),时间偏差会导致证书验证失败和复制异常
- 磁盘建议使用 SSD 或 NVMe,HDD 仅适用于归档等低吞吐场景
- 网络带宽至少 10 Gbps,纠删码需要在节点间传输校验片
systemd 服务管理
创建 /etc/systemd/system/minio.service:
[Unit]
Description=MinIO Object Storage
Documentation=https://min.io/docs/minio/linux
After=network-online.target
Wants=network-online.target
[Service]
User=minio-user
Group=minio-user
Environment="MINIO_ROOT_USER=admin"
Environment="MINIO_ROOT_PASSWORD=your-strong-password"
ExecStart=/usr/local/bin/minio server /data{1...4} --console-address ":9001"
Restart=always
RestartSec=10
LimitNOFILE=65536
TasksMax=infinity
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.targetsystemctl daemon-reload
systemctl enable minio
systemctl start minioNginx 负载均衡
upstream minio_s3 {
least_conn;
server minio1:9000;
server minio2:9000;
server minio3:9000;
server minio4:9000;
}
upstream minio_console {
least_conn;
server minio1:9001;
server minio2:9001;
server minio3:9001;
server minio4:9001;
}
server {
listen 443 ssl http2;
server_name s3.example.com;
ssl_certificate /etc/ssl/certs/s3.example.com.pem;
ssl_certificate_key /etc/ssl/private/s3.example.com.key;
client_max_body_size 0; # 不限制上传大小
proxy_buffering off;
location / {
proxy_pass http://minio_s3;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 300;
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
}
}多站点复制
MinIO 支持站点级别的 Bucket 复制,可用于异地容灾和数据就近访问。
Active-Active 模式:两个站点均可读写,双向同步。
# 站点 A(北京)配置站点 B(上海)为远端
mc admin bucket replicate add \
myminio-beijing/data-lake \
http://minio-shanghai:9000/data-lake \
--replicate "delete,delete-marker,replica-metadata-sync"
# 站点 B 同步配置反向复制
mc admin bucket replicate add \
myminio-shanghai/data-lake \
http://minio-beijing:9000/data-lake \
--replicate "delete,delete-marker,replica-metadata-sync"Active-Passive 模式:主站点写入,备站点只读,单向同步。适用于灾备场景,配置时只建单向复制规则即可。
注意事项:
- 两端 Bucket 均需开启版本控制(Versioning)
- 复制是异步的,存在短暂延迟(通常秒级)
- 网络带宽需满足数据同步速率要求
Kubernetes 部署:MinIO Operator
# 安装 MinIO Operator
kubectl apply -k "github.com/minio/operator?ref=v6.0.0"
# 部署 MinIO Tenant
kubectl apply -f - <<EOF
apiVersion: minio.min.io/v2
kind: Tenant
metadata:
name: myminio
namespace: minio-system
spec:
image: minio/minio:RELEASE.2025-04-22T22-12-26Z
imagePullPolicy: IfNotPresent
pools:
- name: pool-0
servers: 4
volumesPerServer: 4
volumeClaimTemplate:
metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Ti
storageClassName: local-ssd
mounting: false
requestAutoCert: false
certConfig:
commonName: myminio.minio-system.svc.cluster.local
env:
- name: MINIO_ROOT_USER
value: admin
- name: MINIO_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: minio-creds
key: rootPassword
EOFOperator 会自动管理 StatefulSet、Service 和 PVC。生产环境建议使用 local-ssd StorageClass,避免网络存储带来的性能损失。
日常运维
Bucket 管理与生命周期
mc(MinIO Client)是主要的命令行管理工具。
# 配置 mc 别名
mc alias set myminio https://s3.example.com admin your-password
# 创建 Bucket
mc mb myminio/data-lake
mc mb myminio/logs-archive
mc mb myminio/backup
# 设置生命周期规则:nginx 日志 90 天后自动过期
mc ilm rule add myminio/logs-archive \
--expire-days 90 \
--prefix "nginx/"
# 查看生命周期规则
mc ilm rule ls myminio/logs-archive
# 列出 Bucket 中所有对象
mc ls myminio/data-lake --recursive
# 查看 Bucket 用量
mc du myminio/data-lake版本控制
开启版本控制后,删除操作会生成一个删除标记(Delete Marker)而非真正删除,可以恢复误删的对象。
# 开启版本控制
mc version enable myminio/data-lake
# 查看对象的所有版本
mc ls myminio/data-lake/report.csv --versions
# 恢复到特定版本
mc cp myminio/data-lake/report.csv?versionId=xxxxx myminio/data-lake/report.csv注意:版本控制会导致存储空间持续增长,建议配合生命周期规则清理旧版本。
# 清理 30 天前的非当前版本
mc ilm rule add myminio/data-lake \
--noncurrent-expire-days 30IAM 用户和策略管理
# 创建用户
mc admin user add myminio app-user app-password
# 创建策略(JSON 格式,兼容 AWS IAM 语法)
mc admin policy create myminio readwrite-policy /etc/minio/policies/readwrite.json
# 将策略绑定到用户
mc admin policy attach myminio readwrite-policy --user app-user
# 创建 STS 临时凭证(适用于应用接入)
mc admin sts assume myminio app-user
# 查看所有用户
mc admin user ls myminio
# 查看策略列表
mc admin policy ls myminio策略文件示例(只允许访问指定 Bucket):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject", "s3:DeleteObject"],
"Resource": ["arn:aws:s3:::data-lake/*"]
},
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::data-lake"]
}
]
}监控与健康检查
# 集群整体健康状态
mc admin info myminio
# 查看详细磁盘信息(JSON 格式)
mc admin info myminio --json | jq '.info.servers[].disks[]'
# 查看在线/离线磁盘
mc admin info myminio --json | jq '[.info.servers[].disks[] | .state] | group_by(.) | map({(.[0]): length}) | add'
# 实时追踪集群事件
mc admin trace myminio
# 查看集群告警
mc admin trace myminio --alerts
# 查看集群配置
mc admin config get myminioPrometheus 指标:MinIO 内置 Prometheus 指标端点,访问 http://minio:9000/minio/v2/metrics/cluster 即可获取。
关键指标:
minio_cluster_disk_online_total/minio_cluster_disk_offline_total:在线/离线磁盘数minio_cluster_usage_total_bytes:集群总使用量minio_s3_requests_total:S3 请求总量minio_s3_errors_total:S3 错误总量minio_inter_node_traffic_bytes_total:节点间流量(纠删码产生的校验片传输)
性能测试
# 网络吞吐测试
mc admin speedtest myminio --type net
# 磁盘读写测试
mc admin speedtest myminio --type drive
# 对象读写测试(完整 S3 路径)
mc admin speedtest myminio --type object
# 自定义并发和大小
mc admin speedtest myminio --concurrent 32 --size 64MiB建议在集群上线前和定期巡检时运行性能测试,建立性能基线。
MinIO 高可用与集群部署
高可用层级
MinIO 高可用的三个层级:
1. 单集群纠删码(Erasure Coding)
┌─────────────────────────────────────┐
│ 节点级容错:可丢失 N/2 块盘 │
│ 数据不丢失,服务不中断 │
└─────────────────────────────────────┘
2. 多站点复制(Site Replication)
┌─ Site A ──────┐ ┌─ Site B ──────┐
│ 主动读写 │ ←→ │ 主动读写 │
│ 双向同步 │ │ 双向同步 │
└───────────────┘ └───────────────┘
3. 站点级故障切换(通过负载均衡器)
┌─ LB ─────┐
│ 健康检查 │
│ 自动切换 │
└──┬────┬──┘
│ │
┌─ Site A ─┐ ┌─ Site B ─┐
│ Primary │ │ Standby │
└───────────┘ └───────────┘纠删码高可用详解
4 节点 × 4 盘的纠删码集群:
┌─ Node 1 ──────────────────┐
│ /data1 /data2 /data3 /data4 │
│ D1 D2 P1 P2 │
└────────────────────────────┘
┌─ Node 2 ──────────────────┐
│ /data1 /data2 /data3 /data4 │
│ D3 D4 P3 P4 │
└────────────────────────────┘
┌─ Node 3 ──────────────────┐
│ /data1 /data2 /data3 /data4 │
│ P5 P6 D5 D6 │
└────────────────────────────┘
┌─ Node 4 ──────────────────┐
│ /data1 /data2 /data3 /data4 │
│ P7 P8 D7 D8 │
└────────────────────────────┘
EC:4 配置:每个对象分成 4 数据片 + 4 校验片
可丢失任意 4 块盘(包括整个节点),数据仍可读
读写操作:任意 4 个存活盘即可完成
节点故障恢复:
┌─ Node 3 宕机 ──────────┐
│ 4 块盘全部离线 │
│ EC:4 可以容忍 │
│ → 数据仍可读写 │
│ │
│ Node 3 恢复后: │
│ → 自动检测缺失数据 │
│ → 从其他节点重建 │
│ → healing 进度可监控 │
└─────────────────────────┘多站点复制(Site Replication)
MinIO 站点复制架构(双向同步):
┌─ Site A (北京) ────────────────────┐
│ 4 节点集群(EC:4) │
│ Bucket: data-lake │
│ Versioning: enabled │
│ ┌──────────┐ ┌──────────┐ │
│ │ 写入对象 │ │ 同步队列 │ │
│ │ → 本地 EC │ │ → Site B │─────│──→ Site B
│ └──────────┘ └──────────┘ │
└────────────────────────────────────┘
┌─ Site B (上海) ────────────────────┐
│ 4 节点集群(EC:4) │
│ Bucket: data-lake │
│ Versioning: enabled │
│ ┌──────────┐ ┌──────────┐ │
│ │ 写入对象 │ │ 同步队列 │ │
│ │ → 本地 EC │ │ → Site A │─────│──→ Site A
│ └──────────┘ └──────────┘ │
└────────────────────────────────────┘
配置命令:
mc admin replicate add SiteA SiteB --replication "bucket,content,iam,config"
冲突解决:
- 使用对象版本号(Version ID)解决冲突
- 最后写入获胜(Last Writer Wins)
- 删除操作也会同步(通过删除标记)
站点级故障切换:
┌─ Global LB ─────────────────────┐
│ 健康检查: GET /minio/health/cluster │
│ Site A 不可用时自动切到 Site B │
│ DNS 切换或负载均衡器切换 │
└─────────────────────────────────┘MinIO on K8s 多租户部署
# MinIO Operator 多租户部署
apiVersion: minio.min.io/v2
kind: Tenant
metadata:
name: storage-tenant
spec:
pools:
- servers: 4
volumesPerServer: 4
volumeClaimTemplate:
metadata:
name: data
spec:
accessModes: [ReadWriteOnce]
resources:
requests:
storage: 1Ti
resources:
requests:
cpu: "2"
memory: 4Gi
mountPath: /data
requestAutoCert: true # 自动 TLS
s3:
bucketDNS: false
podManagementPolicy: Parallel # 并行启动,加速恢复高可用配置最佳实践
容量规划:
- 最少 4 节点(EC:4,容忍 4 盘故障)
- 生产推荐 8-16 节点(EC:4,按需扩展)
- 磁盘使用率告警阈值:80%
性能保证:
- 读写一致性:纠删码保证强一致
- 读操作:从任意存活分片读取
- 写操作:写入 N/2 + 1 个分片确认
监控要点:
- mc admin info 查看集群健康
- 磁盘在线率 = 100%
- healing 进度
- 站点复制延迟常见问题排查
磁盘故障处理
现象: mc admin info 显示某块磁盘状态为 offline。
# 查看离线磁盘详情
mc admin info myminio --json | jq '.info.servers[].disks[] | select(.state == "offline")'
# 在对应节点上检查磁盘硬件状态
smartctl -a /dev/sdb
dmesg | grep -i error | grep sd
# 查看磁盘 IO 错误
iostat -x 1 /dev/sd{a,b,c,d}处理流程:
- 确认磁盘物理故障(smartctl 报告、dmesg 错误日志)
- 更换新磁盘,确保容量大于等于原磁盘
- 将新磁盘挂载到相同路径(如
/data3) - MinIO 自动检测新磁盘并开始数据修复(healing)
- 监控修复进度:
mc admin info中会显示 healing 状态
# 查看修复进度
mc admin heal myminio --recursive重要: 如果同时故障的磁盘数超过纠删码校验片数量(如 EC:4 时超过 4 块),数据将不可恢复。生产环境务必做好磁盘监控和及时更换。
写入性能下降
现象: 应用写入延迟增大,S3 PutObject 请求耗时明显增加。
# 检查网络带宽(节点间)
iperf3 -c minio2
# 检查磁盘 IO
iostat -x 1 /dev/sd{a,b,c,d}
# 重点关注 %util(使用率)和 await(等待时间)
# 检查是否有磁盘故障导致纠删码降级
mc admin info myminio常见原因和解决方案:
| 原因 | 表现 | 解决方案 |
|---|---|---|
| 磁盘 IO 瓶颈 | %util 接近 100%,await 高 | 使用 SSD/NVMe 替换 HDD |
| 网络带宽不足 | 节点间 iperf 带宽低于预期 | 升级到 25/100 Gbps 网络 |
| 小文件过多 | 大量 PUT 请求但数据量小 | 客户端侧合并为 tar/zip 后上传 |
| 纠删码降级 | 有磁盘 offline | 尽快替换故障磁盘 |
| 并发过高 | S3 请求排队 | 适当控制客户端并发数 |
MinIO 的设计目标是高吞吐大文件场景。对于大量小文件(< 1 MiB),建议在客户端侧做批量打包后上传。
Bucket 空间增长过快
现象: 磁盘空间持续增长,可用空间告警频繁触发。
# 查看 Bucket 使用量
mc du myminio/data-lake --summarize
# 查看各前缀下的对象数量
mc ls myminio/data-lake --summarize --recursive
# 如果开启了版本控制,旧版本也占空间
mc ls myminio/data-lake --versions --recursive | wc -l解决方案:
# 方案 1:设置过期策略(按天数)
mc ilm rule add myminio/logs-archive --expire-days 30 --prefix "temp/"
# 方案 2:清理旧版本(版本控制场景)
mc ilm rule add myminio/data-lake --noncurrent-expire-days 7
# 方案 3:手动清理(谨慎操作)
mc rm --recursive --force myminio/data-lake/temp/建议在创建 Bucket 时就规划好生命周期策略,避免后期空间失控。
证书过期
现象: 客户端报 TLS 证书验证失败,Console 或 S3 API 无法访问。
# 检查证书有效期
openssl x509 -in /etc/ssl/certs/s3.example.com.pem -noout -dates
# 更新证书文件后重启 MinIO
systemctl restart minio
# 如果使用 cert-manager(K8s),检查证书状态
kubectl get certificate -n minio-system
kubectl describe certificate myminio-cert -n minio-system建议配置证书自动续期(如 acme.sh、cert-manager),并设置证书过期告警(提前 30 天)。
与 ClickHouse 冷热分离
MinIO 常作为 ClickHouse 冷数据存储后端,实现存储成本与查询性能的平衡。
数据流向:
应用/日志 ──→ Kafka ──→ ClickHouse(实时分析)
│
└──→ MinIO(原始数据归档 + ClickHouse 冷存储)
ClickHouse 冷热分离:
┌─ 热数据(本地 SSD) ──────┐ ┌─ 冷数据(MinIO S3) ──────┐
│ 最近 30 天 │ │ 30 天前 │
│ MergeTree 本地存储 │ │ S3 存储引擎 → MinIO │
│ 毫秒级查询 │ │ 秒级查询,成本降 80% │
└───────────────────────────┘ └────────────────────────────┘ClickHouse 冷存储配置:
<!-- config.xml -->
<storage_configuration>
<disks>
<hot>
<type>local</type>
<path>/var/lib/clickhouse/data/</path>
</hot>
<cold>
<type>s3</type>
<endpoint>http://minio:9000/clickhouse-cold/</endpoint>
<access_key_id>ch-user</access_key_id>
<secret_access_key>ch-password</secret_access_key>
</cold>
</disks>
<policies>
<hot_cold>
<volumes>
<hot_volume>
<disk>hot</disk>
<max_data_part_size_bytes>107374182400</max_data_part_size_bytes> <!-- 100GB -->
</hot_volume>
<cold_volume>
<disk>cold</disk>
</cold_volume>
</volumes>
<move_factor>0.2</move_factor> <!-- 热盘剩余 20% 时开始迁移 -->
</hot_cold>
</policies>
</storage_configuration>-- 使用冷热存储策略建表
CREATE TABLE access_logs (
timestamp DateTime64(3),
level LowCardinality(String),
service LowCardinality(String),
message String,
trace_id String
)
ENGINE = MergeTree()
PARTITION BY toYYYYMM(timestamp)
ORDER BY (service, timestamp)
TTL timestamp + INTERVAL 30 DAY TO VOLUME 'cold_volume',
timestamp + INTERVAL 180 DAY TO DELETE
SETTINGS
storage_policy = 'hot_cold';这种架构下,MinIO 承载了 80% 以上的冷数据存储,大幅降低了 SSD 采购成本。
监控告警
关键指标与告警阈值
| 指标 | 说明 | 告警阈值 | 级别 |
|---|---|---|---|
| 磁盘在线率 | 集群中在线磁盘占比 | < 100% | Warning |
| 可用空间 | 集群剩余可用空间 | < 20% | Warning,< 10% Critical |
| 纠删码健康 | 是否有磁盘降级 | 任何磁盘降级 | Critical |
| S3 请求错误率 | 5xx 错误占比 | > 1% | Warning |
| 节点间网络延迟 | 纠删码节点通信延迟 | > 5ms | Warning |
| 对象复制延迟 | 站点间复制延迟 | > 60s | Warning |
| TLS 证书有效期 | 证书剩余有效期 | < 30 天 | Warning |
Prometheus 告警规则示例
groups:
- name: minio-alerts
rules:
- alert: MinIODiskOffline
expr: minio_cluster_disk_offline_total > 0
for: 5m
labels:
severity: critical
annotations:
summary: "MinIO 磁盘离线"
description: "集群中有 {{ $value }} 块磁盘离线,请立即检查"
- alert: MinIOSpaceLow
expr: minio_cluster_disk_free_bytes / minio_cluster_disk_total_bytes < 0.2
for: 10m
labels:
severity: warning
annotations:
summary: "MinIO 存储空间不足"
description: "可用空间低于 20%,当前 {{ $value | humanizePercentage }}"
- alert: MinIOHighErrorRate
expr: rate(minio_s3_errors_total[5m]) / rate(minio_s3_requests_total[5m]) > 0.01
for: 5m
labels:
severity: warning
annotations:
summary: "MinIO S3 请求错误率过高"
description: "错误率 {{ $value | humanizePercentage }}"总结
| 维度 | 要点 |
|---|---|
| 核心原理 | 纠删码(EC:4)提供 50% 存储效率,可容忍一半磁盘故障 |
| 部署 | 4 节点 x 4 盘起步,独立磁盘挂载,NTP 时间同步 |
| 运维 | mc 工具管理 Bucket/用户/策略,生命周期规则控制空间 |
| 高可用 | 多站点复制(Active-Active),版本控制防误删 |
| 监控 | 磁盘在线率、可用空间、S3 错误率为核心告警指标 |
| 扩展 | 作为 ClickHouse 冷存储后端,降低 80% SSD 成本 |
| 排障 | 磁盘故障及时更换,小文件打包上传,证书自动续期 |
参考资源:
