调研了一下 Minio 和 Seaweedfs ,感觉这些实现都支持 replication 和 erasure coding ,但是不支持 dedup 。那么有支持 dedup 的对象存储实现嘛?
如果没有是不是我可以跑一个服务端 over btrfs ,然后用 brtfs 的 file level dedup ?问题在于如果用 btrfs (或者 zfs )做底层,那 fs 层面的很多复杂功能都和软件层提供的功能重复了。
1
sNullp OP 这……355 次点击怎么没人回复……
|
2
TtTtTtT 2023-02-22 09:55:01 +08:00
dedup 指的啥?
|
4
my3157 2023-02-22 10:01:11 +08:00 via Android 1
理论上你可以使用 zfs/btrfs 作为 local fs 来实现,当时由于是单机文件系统,不过效果一般甚至可能负的,ceph 应该可以,商业存储大部分支持全局去重,大部分实现都是离线的,周期性后台任务
|
5
TtTtTtT 2023-02-22 10:05:48 +08:00
总之,replication 和 EC 都是高可用的功能。
像 dedup 这种基于存储效率的功能,粗略的估计了一下,好像对于计算和元数据都有不小的要求,所以不做也正常。 至少,对于 MinIO 这种规模的小软件,可能太难了 hhh |
6
starxin79 2023-02-22 10:22:36 +08:00
windows server 自带的 压缩去重,在邮件服务器上用了一段时间,效果还是不错的。特别是大附件群发的场景,这个压缩比杠杠的~
|
7
azuginnen 2023-02-22 10:29:06 +08:00
楼主的原始需求是啥?
我看很多备份软件都支持 dedup ,比如 duplicacy. 他是 dedup 之后再存入对象存储,不然你文件某个 chunk 变了咋办? |
8
sNullp OP @azuginnen 对象是 immutable 的。
如果在对象存储之上做 dedup 当然可以,但是 io 不 efficient 。 |
9
sNullp OP |
11
sNullp OP @my3157 我本来也是打算不行就 zfs+minio 。但是 zfs 是 block based dedup 有点太占资源。
|
12
litguy 2023-02-22 12:40:59 +08:00
我写过,支持 dedup 的 block + object 存储
公司坚持了 6 年,才迎来第一个 50W USD 的单子 老板直接 fire all 了 zfs + minio 不支持全局重删 我们是从头写的,global dedup |