在法国用二手 NAS 跑 MinIO,别把纠删码设成单盘
上个月把一台二手 DS218(两盘位,8T×2,DSM 7.2)拿来跑 MinIO,想给家里几个小项目做个 S3 兼容的对象存储。数据量不大,目前不到 1.2T,主要是备份文件、照片原图和几个静态站点的构建产物。
装法是 Docker 起官方镜像,一开始图省事,直接把纠删码按单盘模式配了:
docker run -d --name minio \
-p 9000:9000 -p 9001:9001 \
-v /volume1/docker/minio/data:/data \
-e MINIO_ROOT_USER=xxx \
-e MINIO_ROOT_PASSWORD=xxx \
minio/minio server /data --console-address ":9001"
单盘模式下 MinIO 不做纠删码,等于把所有对象平铺在一个目录里。问题出在写入:传一个 300M 左右的构建包时,NAS 的机械盘随机写扛不住,速度从 80MB/s 掉到 9MB/s 左右,而且 DSM 的索引进程还在后台抢 IO。改成两盘各挂一个目录、走纠删码之后,写入变成条带化加校验,同样的包稳定在 40MB/s 上下,小文件多的目录也顺了不少:
minio/minio server /data1 /data2 --console-address ":9001"
代价是可用容量直接砍半:8T×2 实际能用的对象空间只有 8T 左右,另外还要留出校验和元数据的余量。对我这种 1T 出头的量级可以接受,但如果你的数据已经接近盘容量,就别指望靠加盘解决,两盘位没有扩容余地。
会失效的地方我也踩过:一是两盘必须是独立挂载点,如果都在同一个 RAID1 卷下的两个子目录,纠删码等于没有,MinIO 启动时不会拦你;二是 DSM 的系统盘(/volume1 所在的那块 SSD)别拿来当 data 目录,套件更新重启时 MinIO 会因为挂载顺序报错退出;三是单盘模式下 mc admin info 看着一切正常,只有实际传大文件才会暴露问题,别拿小文件测性能。
现在还在犹豫要不要把校验级别从默认调低来换容量。你们在两盘位的机器上跑 MinIO,是接受容量减半,还是干脆退回单盘加定期冷备?
0
赞同度 100% · 0 条评论 · 2 阅读
0 条评论
还没有评论,写下第一条。