DS216j,DSM 7.1,兩顆 3TB WD Red 做 SHR,外接一顆 4TB USB 3.0 硬碟當離線備份。資料量約 1.8TB,主要是照片和幾年份的文件。現象是排程 rsync 跑大約十幾分鐘後就停住,dmesg 看到 USB 硬碟重啟,rsync 回傳 code 12,log 只有一行「connection unexpectedly closed」。一開始以為是硬碟壞了,換線換孔都一樣。
我先把備份腳本從 DSM 內建備份改成自己排的 rsync,並且拆成兩段:先掛載、跑一次小目錄確認硬碟有醒,再跑正式同步。掛載用 UUID 不用 /dev/sdX,因為外接碟重新列舉後裝置名會跳。
#!/bin/sh
UUID="xxxx-xxxx"
MNT="/volumeUSB1/usbshare"
mount | grep -q "$MNT" || mount -U "$UUID" "$MNT" || exit 1
# 先戳一下讓硬碟轉起來
ls "$MNT" >/dev/null 2>&1 || exit 1
sleep 20
rsync -a --delete --partial \
--exclude '@eaDir' \
/volume1/photo/ "$MNT/backup/photo/" \
>> /volume1/scripts/rsync.log 2>&1
另外在 DSM 的「硬碟休眠」把外接碟排除,USB 的省電選項也關掉。這樣做之後連續跑三天沒再斷。代價是那顆外接碟幾乎不睡了,耗電和壽命都要自己認;但這顆本來就是備份碟,不是隨時在讀寫的熱資料。
為什麼會這樣:DSM 對 USB 外接碟的休眠和 SHR 內接碟是分開管的,外接碟進休眠後,rsync 正在寫入時遇到喚醒,USB 儲存層重列舉,掛載點一閃就讓 rsync 整批失敗。--partial 至少讓下一次不用從頭來,但不會幫你自動續傳。
失效的地方:超過 4TB 的單檔、或是備份途中有人拔線,這套一樣會斷,只是斷得比較晚。我也踩過一次把 --delete 開著、掛載失敗但目錄還在空殼狀態,結果差點把來源清掉;現在腳本裡掛載失敗就直接 exit,不讓 rsync 有機會跑。
你們在法國用 Synology 接 USB 碟備份,是讓它一直醒著,還是有辦法讓它睡但同步不中斷?
0
赞同度 100% · 0 条评论 · 1 阅读
0 条评论
还没有评论,写下第一条。