在法國用 QNAP 跑 Container Station 備份到 USB 硬碟的實測

这篇内容暂时只有 繁體中文 版本,以下是原文。

QNAP TS-231P,QTS 5.1.5,接一顆 4TB USB 3.0 外接硬碟(ext4),透過 Container Station 跑一個 Alpine 容器,裡面只有 rsync 和 cron。資料量約 1.8TB,主要是照片和掃描的紙本文件,每天增量大概 3 到 8GB。現象是:用 Hybrid Backup Sync 做 USB 單鍵備份,跑到一半整台 NAS 的網頁介面會卡住十幾秒,而且中斷後續傳常常重來。

我的做法是把備份從 HBS 拆出來,交給容器裡的 rsync 做。先在 Container Station 建一個 bind mount,把 /share/CACHEDEV1_DATA 掛到容器的 /data,外接硬碟掛到 /backup,然後用這段:

rsync -aHAX --delete --numeric-ids \
  --exclude='@Recycle/' --exclude='.@upload_cache/' \
  --partial-dir=.rsync-partial \
  --log-file=/backup/rsync-$(date +%F).log \
  /data/ /backup/data/

排程用容器內的 cron,每天凌晨 3 點跑一次,跑完再 sync。外接硬碟是 ext4,所以 -aHAX 的 ACL 和 xattr 都能落地,不會像 FAT32 那樣直接報錯。

為什麼這樣做:HBS 卡住我猜是它把索引和校驗都塞進同一條 I/O 佇列,網頁服務跟著排隊;rsync 是單執行緒、循序讀寫,對這顆 ARM 機器的負擔比較可預測。代價是沒有圖形介面、沒有版本歷史,刪掉的檔案在備份端也會被 --delete 清掉,所以我另外留了 --partial-dir,只保證中斷可續,不保證誤刪可救。

會失效的地方:第一,--delete 是雙面刃,我踩過一次把整個目錄搬走後跑備份,備份端同步被清空,還好那是測試資料;現在跑之前會先 --dry-run 看一次清單。第二,USB 硬碟斷線重插後掛載點會變,容器看不到,得在 QTS 裡確認掛載路徑再重啟容器。第三,QNAP 的韌體更新偶爾會把 Container Station 的 autostart 關掉,備份就默默沒跑,我現在會看 log 檔有沒有當天的日期。

你們在用 QNAP 做 USB 備份時,是留在 HBS 還是也換成 rsync?如果換了,誤刪的防線是怎麼補的?

0
赞同度 100% · 0 条评论 · 2 阅读

0 条评论

支持 Markdown · 回复会实时推送给对方

还没有评论,写下第一条。