求教,Linux下实时备份硬盘数据到另一个硬盘,有什么方案?

背景

淘汰的Linux主机,想直接拿来做家庭服务器,现有的硬盘数据有点多,没有第三个硬盘可以备份这么多数据,没办法空出来硬盘组软raid。想找个能够实时备份,或者定时备份的方案,从硬盘A备份到硬盘B。

现在用的方案

rsync同步

  • 想换的原因:大量数据频繁写入实在是占用性能,主机掉频严重。

目标

后面会搞raid阵列卡组raid1 。敢问各位大佬,有没有软件方案,让我能不在不删除现有数据的前提下,能够实现一个比较低功耗的方案,将硬盘A的数据备份到硬盘B

黑群晖?

定时备份的话,rsync挺好的吧,你让它凌晨同步,占用点性能也无所谓

试过 unison

可以结合 inotify-tools 监测文件变更

主要是nas需要的功能都已经用docker实现了,连iPhone的图片都能通过immich进行备份。群晖实在是功能有点重叠了。谢谢建议

现在就是这么做的。还是希望能够实时备份。

如果使用inotify的话,好像跟rsync差不多。有什么特别的地方吗?

inotify 主要是用来监视文件系统的,它可以和 rsync 或者 unison 结合使用。你不是说要实时备份吗。

或者你可以直接用 lsyncd ,它也采用了 inotify 接口。

rysnc 占用性能是校验和压缩导致的,如果你的同步的文件很大又很多的话…好像是没办法的事

https://wzyboy.im/post/1186.html

不好意思打错了,是unison 和rsync有什么区别? :sweat_smile:

这个挺好的,学习一下,谢谢

可以研究一下 btrfs-sendbtrfs receive 两条命令。它们可以向第二台电脑发送 btrfs 文件系统自从上次发送之后的修改。不怎么消耗性能。可以试试。

但是需要一定的编程技巧。因为在发送之前,需要先使用 btrfs subvolume 创建 snapshot,然后发送完之后,又要删除老旧的 snapshot. 目前没看到有现成的工具。

还是决定凌晨定时任务跑rsync了,实时就用unsion加上inotify同步重要数据,等到有闲钱以后再加硬盘

是的。我虽然懂 btrfs-send 和 btrfs-receive,实际上我自己日常也是用 rsync 同步的。不过我不像你这么频繁。我两台 NAS 都是 openSUSE + BTRFS RAID1,一般不太会丢数据。反正日常也没怎么使用。所以我是想起来就同步一次。

写了个脚本,凌晨同步一下,然后就给备份盘卸载了,嘿嘿

另外准备买个2080ti魔改版,22g显存,用oclink转接进去,玩玩ai服务器