谁有好的解决办法?

37 条回复
285 次浏览

朋友公司在全国有 200 多个分支机构
平均每个分支每周要给公司传递超过 3000 个文件,一般都是 1MB 以内的文件
公司用网盘软件、在自己的服务器上搭建了一个网盘给分支机构
硬件用 7200 转的企业硬盘,16TB 的也很快就满了,统计了一下、有将近 1300 万个文件

现在的问题是:由于都是 1MB 以内大小的文件,造成硬盘读写非常缓慢,为了防止数据丢失,做了数据备份,结果每次备份就要 5~6 天才能完成。

我想到的办法是:把文件按分支机构压缩成 RAR,然后再备份。但压缩的过程也非常缓慢。

不知道各位兄弟有没有什么好的解决办法?

种子用户

问 AI 给的方案是自建 minio 或者买 S3 之类的对象存储,原理是对象存储不是传统文件系统,没有 inode 瓶颈,专门为海量对象设计

每个机构每周一传,机构自己的 3000 个 1mb 文件本地压缩好在发给总部。
如果结构相似,那么 3000 个 1mb 文件压缩后可能还没有 1G 大。

马上来
OP

文件不是一次性产生的,产生了就要传递,所以没法让机构自己压缩了再传递

走个面

如果不是长期大量写入,搞一个写缓存的固态呢?是不是会好很多?

马上来
OP

我建议他将服务器内存扩展到 128G,然后用 PrimoCache 来加速。但这些对持续的读写其实没太大作用。

走个面

如果只是备份的话,rsync 实时备份呢?这样只要写入能来得及,备份应该就能来得及。

展开 1 条评论
种子用户

你想问的好的解决办法,是压缩备份还是传递分发?

马上来
OP

主要是备份,压缩备份是我提的一个办法,但并不好。

种子用户

16T 是机械硬盘? 能塞满 16T 的 1M 小文件就是机械硬盘的灾难。
上 juicefs 、minio 这种对象存储管理吧,推荐 juicefs ,效果立竿见影

展开 3 条评论
大平衡者

有点好奇什么类型的业务,

另外备份是一周一次备份?
每个机构每天 400 个左右文件, 每个文件传到总部的时候直接备份呢?(我瞎说的)

对象存储就搞定了

这个文件量也不是很大,你们搞复杂了

文件现在一块固态上缓存,每超过 100G 自动集合成压缩文件(不要使用任何压缩算法,纯粹合并成一个文件)然后放到机械硬盘上。

混沌

压缩的时候可以调压缩等级,调到仅存储的话就非常快了,基本上可以接近硬盘读写速度

juicefs 还依赖其它组件提供 s3 和 kv 能力,seaweedfs 没有其它依赖,另外 seaweedfs 是 Facebook's Haystack 照片存储的开源实现,对 up 这种大多数 1M 大小的文件及其友好,我存了超过 1 亿个视频片段和图片(支撑了一个电影电视游戏海报、截图、热门片段 app),非常稳定,扩容也比 juicefs/minio 设计上优秀太多(加块就行,完全不用迁移和重新均衡数据)

展开 2 条评论
deleted_user

麻烦不要这个死板,我只是用 AI 的一些解决方案给他一些可能的启发。不是用 AI 发水贴。。。真行

展开 3 条评论
deleted_user

选型还是要基于具体的业务需求,这个还是要再细化的。

都听我说!

对象存储吧,搞个 minio,你这场景对象存储专业解决

发表一个评论

R保持