支持文件级别 dedup 的对象存储服务端?

2023-02-21 06:25:38 +08:00
 sNullp

调研了一下 Minio 和 Seaweedfs ,感觉这些实现都支持 replication 和 erasure coding ,但是不支持 dedup 。那么有支持 dedup 的对象存储实现嘛?

如果没有是不是我可以跑一个服务端 over btrfs ,然后用 brtfs 的 file level dedup ?问题在于如果用 btrfs (或者 zfs )做底层,那 fs 层面的很多复杂功能都和软件层提供的功能重复了。

1477 次点击
所在节点    程序员
15 条回复
sNullp
2023-02-22 09:43:13 +08:00
这……355 次点击怎么没人回复……
TtTtTtT
2023-02-22 09:55:01 +08:00
dedup 指的啥?
Mithril
2023-02-22 09:56:18 +08:00
@TtTtTtT 文件去重吧。
my3157
2023-02-22 10:01:11 +08:00
理论上你可以使用 zfs/btrfs 作为 local fs 来实现,当时由于是单机文件系统,不过效果一般甚至可能负的,ceph 应该可以,商业存储大部分支持全局去重,大部分实现都是离线的,周期性后台任务
TtTtTtT
2023-02-22 10:05:48 +08:00
总之,replication 和 EC 都是高可用的功能。
像 dedup 这种基于存储效率的功能,粗略的估计了一下,好像对于计算和元数据都有不小的要求,所以不做也正常。
至少,对于 MinIO 这种规模的小软件,可能太难了 hhh
starxin79
2023-02-22 10:22:36 +08:00
windows server 自带的 压缩去重,在邮件服务器上用了一段时间,效果还是不错的。特别是大附件群发的场景,这个压缩比杠杠的~
azuginnen
2023-02-22 10:29:06 +08:00
楼主的原始需求是啥?

我看很多备份软件都支持 dedup ,比如 duplicacy. 他是 dedup 之后再存入对象存储,不然你文件某个 chunk 变了咋办?
sNullp
2023-02-22 11:29:28 +08:00
@azuginnen 对象是 immutable 的。
如果在对象存储之上做 dedup 当然可以,但是 io 不 efficient 。
sNullp
2023-02-22 11:34:10 +08:00
@my3157 ceph 的文档至少提到了这个词。我去看一下。

我其实不太需要 distributed fs.. 但感觉做对象存储的都 distribited 。
my3157
2023-02-22 11:38:18 +08:00
@sNullp #9 单机的话, zfs 配合大内存, io 很可观
sNullp
2023-02-22 12:33:00 +08:00
@my3157 我本来也是打算不行就 zfs+minio 。但是 zfs 是 block based dedup 有点太占资源。
litguy
2023-02-22 12:40:59 +08:00
我写过,支持 dedup 的 block + object 存储
公司坚持了 6 年,才迎来第一个 50W USD 的单子
老板直接 fire all 了
zfs + minio 不支持全局重删
我们是从头写的,global dedup
sNullp
2023-02-22 12:48:24 +08:00
@litguy 为啥不支持全局 dedup ?是因为是分布式的吗?
sNullp
2023-02-22 12:49:35 +08:00
@litguy 还支持 block 存储。好厉害。您听说过 pure storage 嘛?感觉是那方面的人才。
sNullp
2023-02-23 14:45:31 +08:00
@my3157 Ceph 的 dedup 基本属于玩票性质。我有点想基于 seaweedfs 手撸一个了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/917789

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX