1. 当前位置: 网站首页 >  NAS >  两台NAS怎么做异地备份?老群晖搬到我妈家,rsync定时同步全流程跑通了

两台NAS怎么做异地备份?老群晖搬到我妈家,rsync定时同步全流程跑通了

两台NAS异地备份拓扑图:rsync单向同步流程与避坑要点

去年写勒索病毒那篇的时候,我家备份是这个格局:飞牛主用,一台老群晖DS220j插在同一个屋的插座上,rsync单向拉过去。写完我心里一直有个疙瘩——两台机器在一个屋,那不叫备份,那叫复制两份等死。水管爆了、进贼连锅端、楼下电动车充电起火,哪样来了都是一锅端。3-2-1原则里那条「1份异地」我拖了大半年没做,直到九月中旬我妈家宽带装好(帮我妈远程管路由器那篇写过这事),我才下决心把DS220j发配过去,把异地这层真正补上。

先想清楚三件事:备什么、往哪备、多久备一次

动手搬机器前我先把账算了。要异地的东西就两摊:照片库4.6万张共186GB,加上工作文档和扫描件那类零碎的20GB,一共206GB。DS220j里两块4T盘做的RAID1,容量绰绰有余,机器是老了点,跑备份这种慢性活完全够用。

方向只有一条:我家飞牛是源头,DS220j是目的地,单向,只许数据从我这边流向我妈家。这个方向问题我在勒索病毒那篇里掰扯过——双向同步是灾难放大器,这头文件被加密,那头忠实地把加密版同步过去,等于亲手销毁唯一的健康副本。

频率我定的是每天凌晨跑一次增量。206GB只是首次全量,跑完之后每天新增的也就是照片几百兆、文档几十兆的量级,十几分钟的事。

异地那条线怎么通:先查公网IP,没有就绕路

两台机器不在一个屋,rsync就得走公网。走公网的前提是我家这台飞牛能被外面够到,第一件事是查公网IP:登进路由器看WAN口,拿到的地址和手机流量查出来的出口IP一致,那就是真公网;WAN口要是100.64开头或者192.168开头,前面还压着运营商或光猫那层,得先打10000号要公网IP,或者把光猫改桥接。怎么查我专门写过,三步就能判断。

我家是千兆宽带,上行50兆,换算下来大约6MB/s,这是异地同步的速度天花板——206GB首次全量按这个速度纯跑要十来个小时,跨网延迟再打个折,实际我跑了两个晚上。这笔账先算明白,免得第一次跑的时候盯着进度条骂机器慢。

打通有两条路。我家有公网IP,走的是正路:路由器上做DDNS绑了个域名,端口转发把外面的50022转到飞牛的22端口——外部端口别拿22原样转发,扫段的脚本一天能敲你几百次,挪到高位端口加上后面说的密钥登录,安全程度家用完全够。家里没公网IP的别硬上,直接用Tailscale这类组网工具把两台NAS拉进同一个虚拟局域网,像本地互访一样跑rsync,一条端口都不用对外暴露,我在VPN回家那篇里把原理写透了。

第一次跑通:免密登录和那条命令

线路通了,接下来配免密。定时任务要是每次跑到一半停下来等输密码,那就不是备份,是闹钟。

我的方向是DS220j主动来我家拉,所以私钥放在DS220j上。SSH进DS220j,ssh-keygen -t ed25519一路回车,把生成的公钥追加到飞牛那边的authorized_keys里。这一步我卡了半个多小时——密钥配完照样要密码,反反复复。后来才想起来是权限的事:SSH对家目录权限极其挑剔,家目录和.ssh目录得700,authorized_keys得600,差一点它就静默忽略你的密钥、回退去要密码,还不报任何错。群晖的家目录在/var/services/homes/下面,改完权限再试,一次就过了。

然后是那条核心命令,手动先跑一遍:

rsync -avzh --delete -e "ssh -p 50022" /vol1/photo/ admin@我家域名:/volume1/backup/photo/

参数挨个说:-a是归档模式,时间戳、权限这些原样带过去;-v让它把干了什么念出来;-z走压缩,照片视频这种本来就压过的收益不大,文档表格能省点流量;-h把数字换算成人看得懂的MB和GB。末尾源路径那个斜杠有讲究,带斜杠是「目录里的内容」,不带是「连目录本身」,搞反了你的备份会多套一层文件夹,第一次跑务必先拿个小目录试。

头一晚跑了六个多小时,我妈家跳闸断了一次——老小区,空调微波炉一块开就跳。断了我不慌,rsync最大的本事就是增量续传,重跑一遍接着上次的进度走,不用从头再来,这是比整盘拷贝强太多的地方。第二个晚上收尾,206GB全量落地。

--delete差点把我的备份删没了

全量跑通后我踏实了一个礼拜,然后被自己坑了。周末整理相册,把一个重复导入的目录删掉,顺手把隔壁2022年国庆的目录也框进去了,40GB。本地删完我没反应过来,当晚定时任务照跑,第二天才想起来去备份里捞——备份里那40GB也没了。--delete的意思是让目标和源保持一模一样,你在源头删了什么,它就忠实地在备份里删掉什么,它不问你为什么删。

这是「镜像」和「备份」的本质区别:镜像只保证两边一样,不保留历史;真备份得有版本,删错了能回到昨天的样子。幸亏DS220j的存储池用的是Btrfs,我开着快照,从早上五点那版快照里把整个目录原样捞回来,前后虚惊四十分钟。

捞回来之后我把命令改成了这样:

rsync -avzh --delete --backup --backup-dir=/volume1/backup_trash/$(date +%F) -e "ssh -p 50022" ...

--backup的意思是:同步时被删掉、被覆盖的文件不直接消失,先挪进backup-dir指定的目录,按日期归档。配合DS220j每天一拍的快照,等于给误删上了双保险。回收目录我还设了个保留一个月的清理任务,不然它会自己把4T的盘吃满——别问我是怎么知道的。

定时跑起来:任务计划和告警一个都不能少

手动跑通只算半程,剩下的交给定时。DS220j这头,DSM里控制面板→任务计划→创建→计划的任务→用户定义的脚本,把改好的rsync命令贴进去,我设的每天03:40。时间挑有讲究:DS220j现在是纯备份机,我把它的硬盘休眠关了,省得任务开跑时盘还在睡眼惺忪起不来的路上;要是不舍得这点电,就把任务窗口和休眠等待错开,休眠排坑那篇里写过这俩怎么打架。

告警必须配。任务计划编辑页里有「发送电子邮件通知」,勾上「仅当任务异常终止时发送」。我一开始偷懒没配,九月中下旬我妈家又跳了一次闸,任务连着三个晚上静默失败,我盯着App翻记录才发现。配完邮件,任务一失败邮箱就响,虽然吵,但踏实。发件邮箱得先在控制面板→通知设置里配好,这步别漏。

顺带说一句,两台都是群晖的读者可以偷懒:DSM7源端控制面板→文件服务→高级→共享文件夹同步,目标端把rsync服务一开(控制面板→文件服务→rsync),图形界面点几下就成。底层走的就是rsync这一套,只是--backup这种细粒度参数它不给你露出来。我是飞牛配群晖,没这个福气,只能命令行伺候。

什么人值得抄这套

跑通这一个月,每天增量十几分钟,流量账一个月下来不到20GB,上行50兆的宽带完全无感。这套东西值不值得抄,看你的家底:

你家的情况该走的路
两台群晖共享文件夹同步,图形界面点几下就完事
飞牛配群晖(我家这种)本文的rsync命令行,一次配好常年不用管
只有一台NAS先别惦记异地,冷备份盘按月插拔,成本低一半
只想保照片手机自动备份先配好,相册目录再复用本文思路异地一份
电脑整机也想保Active Backup给电脑做镜像,NAS自身数据走本文

收尾给个总顺序:查公网IP→没有就上Tailscale→路由器转发高位端口→配SSH免密→小目录试跑确认斜杠→全量→加--backup→定时任务→勾邮件告警。哪一步卡住,回头翻对应那节,坑我都替你踩过一遍了。

展开全文


版权说明 手机扫码阅读
版权所有:《数巢笔记》 => 《两台NAS怎么做异地备份?老群晖搬到我妈家,rsync定时同步全流程跑通了》
本文地址:https://www.shunot.com/nas/1016.html
除非注明,文章均为 《SHUNOT》 原创,欢迎转载!转载请注明本文地址,谢谢。

发表评论

联系我们

在线咨询:点击这里给我发消息

微信号:master_135

工作日:9:00-23:00,节假日休息

扫码关注