在法国用二手 NAS 跑 rsync 备份,别把 --delete 当同步
先交代场景:DS218j 两块 4T 红盘做 SHR,DSM 7.1,数据盘约 2.8T,主要是照片和几份工程项目的归档。另一头是同一局域网里的一台 OVH 独立服务器(法国本地机房),走 WireGuard 隧道连回来,每晚 3 点用 rsync 把 NAS 上的 `/volume1/archive` 拉到服务器上做异地副本。带宽是 Freebox 的千兆下行、700M 上行,实测 rsync
喜欢把复杂的事说简单,不喜欢把简单的事说复杂。
先交代场景:DS218j 两块 4T 红盘做 SHR,DSM 7.1,数据盘约 2.8T,主要是照片和几份工程项目的归档。另一头是同一局域网里的一台 OVH 独立服务器(法国本地机房),走 WireGuard 隧道连回来,每晚 3 点用 rsync 把 NAS 上的 `/volume1/archive` 拉到服务器上做异地副本。带宽是 Freebox 的千兆下行、700M 上行,实测 rsync
上个月在孟买机房的 Ubuntu 20.04 那台日志中转机上,有个目录要实时收上游推来的日志分片,一天大概 15 万个小文件、30GB 左右。我第一版用 `inotifywait -m -r -e create,moved_to` 监听,脚本里拿到文件名就 `tail -f` 读几行入库。跑了两天发现漏文件,高峰期能丢 3% 左右,日志里查不到任何报错。
家里是 Freebox Pop,固件版本 4.7.x,内网一台二手 NUC(Debian 12)跑 dnsmasq,本来只想给几台设备做本地域名解析。规模很小:二十来个客户端,一条千兆光纤,没有 VLAN。
印度机房一台备份机,Debian 11,源目录 1.8TB 左右,约 42 万个文件,主要是应用日志和上传件。目标是一块 4TB 的外挂盘,xfs。每天凌晨跑一次同步,跑完我只看 rsync 的退出码和尾部几行,一直是 0,就默认没事。
在孟买那台 4C8G 的 KVM 上跑一个数据补录脚本,Ubuntu 20.04,Python 3.8,输出量不算大,一天大概 1.2G 的 stdout。之前一直用 `nohup python backfill.py > run.log 2>&1 &`,SSH 断了进程还在,但输出只有落盘之后才能看,想实时盯进度就得 tail。后来换成了 screen,想的是断线之后重新 attach 能直接看
上个月帮朋友重整他家那台二手 DS218j,DSM 7.1,两块 4T 盘做 SHR,Docker 套件是社区源装的。现象很具体:容器一多,套件中心转圈,File Station 打开共享目录要等三四秒,`docker ps` 本身很快,但 `docker compose up` 拉镜像解压时整机像卡住。数据量不大,2T 左右,问题不在容量。
去年冬天把一台二手 NUC8i3 装成 Debian 12,跑 Gitea 自用,顺带给两个朋友做私有仓库。机器放家里,Freebox 后面,数据盘一开始图省事插了块旧 USB3 的 2.5 寸 HDD——这就是后面所有麻烦的起点。
上周在孟买那台备份机上遇到一个空间问题:df 显示 /data 用了 87%,但业务那边说这个分区只存了不到 40% 的备份数据。系统是 Ubuntu 20.04,ext4,分区 8T,上面跑的是自己写的增量备份脚本,用 rsnapshot 的思路做的硬链接快照,保留了 14 天的日备。
印度机房一台跑日志归档的机器,Ubuntu 20.04,/var 分区 500G,报警时 df 显示 98%。用 ncdu 扫了一遍,/var/log 下有个归档目录占了 210G,里面是三个月前的 .tar.gz,确认没人要,直接 rm -rf 清掉了。
家里 NAS 跑 DSM 7.2,Freebox Pop 光纤,公网 IPv4 不是固定地址。之前用 Freebox OS 自带的 DDNS 功能,域名填的是自己买的 .fr 域名,托管在 OVH。现象是:Freebox 重启或运营商侧租约更新后,外网访问会断十几分钟,DSM 里 QuickConnect 倒是能连上,但走的是中继,速度掉到几百 KB/s。
家里有台 2015 年的旧笔记本,4GB 内存,扔了可惜。法国这边打印店少,家里有台 HP LaserJet M15w,平时手机直接连 Wi-Fi 打印,但孩子学校偶尔要交扫描件,手机搞不定。想着把旧笔记本装个 Debian 12 当打印/扫描服务器,CUPS 跑起来,全家都能用。
上个月要把一批约 1.2TB 的备份文件从孟买机房的旧存储节点挪到浦那的新节点,两边都是 CentOS 7,内核 3.10,走的是同城专线。一开始用 rsync -avz 直接跑,平均速率只有 18MB/s 左右,传了快十个小时才走完三分之一,而且中途断了一次,重跑还得从头比对,时间全耗在扫描上。
去年帮人整理 CAF(Caisse d'allocations familiales)房补材料,场景很具体:Debian 12 上一台旧笔记本,Quarto 1.4 加 Python 3.11,处理两三年里攒下的 PDF——租房合同、quittance de loyer、attestation de loyer、银行流水,一共 180 多个文件、约 400MB。现象是每次补件都靠翻文件夹和回忆,C
上个月在孟买一台测试机上复现客户的问题,环境是 Ubuntu 22.04,Docker 24.x,Postgres 15.4 官方镜像,数据量不大,一张订单表 80 万行左右,但每条记录都带 created_at。现象很怪:后端写进去的时间是对的,客户从后台导出 CSV 看到的时间总比实际早 30 分钟,而且只有一部分行错,不是全部。
我们有个每天凌晨 2 点跑的同步任务,把订单数据从业务库拉到分析库,量不算大,单次大概 40 万行,跑在孟买一台 4C8G 的机器上,Python 3.9 + cron。现象是:每月 1 号跑出来的报表,前一天的汇总总是少一截。不是全丢,是夜里 0 点到 2 点之间的数据没进去。
法国这边很多公寓预装了 Orange 的光纤,光猫是 Livebox,但有人为了用 Freebox 的 NAS 功能会再串一台 Freebox。我这边是 Orange Livebox 4 做桥接(mode bridge 其实是 DMZ),后端接 Freebox Pop,下面挂一台 QNAP TS-233 跑 2TB 的小备份。现象很具体:从外网访问 NAS 的 WebDAV,用手机 4G 可以,用