本人 10t 的硬盘,都满了, 究其原因,大量重复文件.不同时期的系统镜像,手机照片的非增量备份.这些东西如果软件去重,会花费大量的时间, 有没有的类似网盘重复文件保留一份的方案.类似资料上说的 Windows Server 2019 Btrfs Ceph ZFS 等方案.但是如何具体的落实到家用中呢?目前大容量硬盘若干. 硬盘柜两个. 移动硬盘若干. 大家有什么好的建议, 给个方案.这里先感谢大家了.

我的想法是建立一个支持去重的硬盘系统, 把包含大量重复的, 例如软件备份.照片备份,系统镜像等丢进去. 这个硬盘系统就当做最终备份系统. 安全性要求并不是很高.(有了去重功能,最终备份的体积也会小很多,就算不重要也可以做双备份)然后重要资料,例如照片等,再单独手工整理之后拷贝出来. 这样以后重要性不确定的东西可以先丢进去.然后隔一段时间挑重要的拷贝出来.采用硬盘备份.网络备份等方式处理.

有什么经济可靠的方案. 给推荐一下,听说群辉可能支持,但是一来不知道是否稳定, 二来我并不需要群辉的其他配套功能. 对我来说经济浪费.能够支持 10t 的群辉价格昂贵.而且我已经有两个硬盘柜了.

技术关键词叫 copy-on-write (COW)的文件系统

zfs 轻松搞定

用什么方案呢, 自建 nas?

如果自建一个 nas 系统, 在有硬盘柜的情况下,用什么方案比较好呢, ? 软路由主机+硬盘柜?

copy on write 只能解决复制文件不增加空间的问题,不同来源的相同文件是解决不了的。你要的是基于一个或几个 hash 判重的系统,比如百度是依靠开头 256kb 和全文件 md5,crc32,外加文件大小来判重的。自己做的话可能一个 sha256 也够了,不过现成解决方案倒是不了解

我目前家里的服务器 Debian ,用的 ZFS

你要找的是不是 TrueNAS

可以用 Python 或 Go 之类写个快速去重的小工具,截取每个文件开头的一部分,保存 md5 到 sqlite ,这样跑一遍很快的,可以筛选出大概率重复的文件,这些文件数量不会很多,对这些可疑文件再跑一次完整的查重就行了。

自建网盘推荐:Seafile自带文件去重,占用资源不高,国内开发,开源版不限用户,专业版限制 3 用户缺点是直接用资源管理器无法直接访问文件备份推荐:restic自带文件去重,增量备份,版本控制,非常好用个人用户不推荐 Ceph ,自建服务器内存不充裕不推荐 ZFS

你可以看下 fastdfs去重在不同层有不同做法。

你这种情况,都删了就成了,反正也不看。要么没事自己翻翻照片,每天收拾一点,重温记忆。你拍照的时候,不就是为了重温么。。我以前也有这个顾虑,现在完全没有了,4T 的硬盘存视频和照片,还是能富裕,用了 10 年了。

抽空整理一下吧

块级别去重ZFS dedup: www.truenas.com/docs/references/zfsdeduplication/或者 btrfs + bees github.com/Zygo/bees文件级别去重 github.com/markfasheh/duperemove对于备份场景,我现在用的是 kopia 进行备份,他是基于 CDS 做的 kopia.io/docs/features/#backup-files-and-directories-using-snapshots网盘的文件唯一是另一个原理,那个是基于 OSS 的校验和做的。但是一般的 OSS 比如 minio 本身不支持去重。

写个代码,循环处理,计算哈希,哈希重复的标记删除,或者是挪到同一个的某个路径,人工审核一遍,再删除。需求不大,不会到一百行代码的。

文件去重和内容去重是两码事前者很简单,递归一遍检查 bytes(size)/hash 就够了,因为检查是只读性质,多进程跑加速,并且把 path:hash 保存起来,以后检查无需再次 hash如果文件不是你产生创建的,例如下载,多数需要后者,这就难办了,需要一套专门的相似匹配系统

如果特别多重复的上 zfs 的块级去重,就是内存占用大一些

简单方法,再加个硬盘

老铁 6666

感谢 我研究研究