在法國用舊 Raspberry Pi 跑 Samba 當 Time Machine:備份中斷後我改了這幾處

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

在法國家裡用 Orange 光纖,路由器是 Livebox,網路本身沒什麼問題。備份主機是一台舊 Raspberry Pi 4(4GB),系統是 Raspberry Pi OS Bookworm,外接一顆 2TB USB 3.0 硬碟(ext4,沒有用 exFAT)。Mac 是 M1 MacBook Air,跑 macOS Sonoma,用 Time Machine 備份到這台 Pi 上的 Samba 分享。資料量不大,第一次完整備份約 180GB,之後每次增量在幾百 MB 到 2GB 之間。現象是:完整備份跑到一半就中斷,Console 裡出現 “The network backup disk does not support the required capabilities”;有時候則是跑到 60–70% 速度掉到幾百 KB/s,最後直接斷線。

我的做法分三塊。第一,Samba 設定改成 Time Machine 需要的 vfs 模組,不要只開一般分享:

[timemachine]
   path = /srv/tm
   valid users = tmuser
   writable = yes
   vfs objects = fruit streams_xattr
   fruit:time machine = yes
   fruit:time machine max size = 1T
   fruit:metadata = stream
   fruit:resource = stream
   durable handles = yes
   kernel oplocks = no
   posix locking = no

第二,Pi 上的 USB 硬碟供電要確認。我一開始用一條很細的 USB 線,dmesg 裡會出現斷開重連的紀錄,換成有輔助供電的 USB hub 後才穩定。第三,把 Livebox 的 Wi-Fi 換成有線,Mac 用 USB-C 轉乙太網路,備份期間不再走 2.4GHz。

為什麼這樣做:Time Machine over SMB 依賴 SMB2/3 的 durable handle 與 Apple 的 fruit 擴充屬性,缺少 fruit:time machine 時,macOS 會判定該磁碟不具備備份能力;streams_xattr 則是把 Finder 的 metadata 放進 xattr,避免在 ext4 上生成一堆 ._ 檔案。代價是 Samba 的設定變複雜,而且 posix locking = no 會讓其他用途的檔案鎖行為改變,這台機器只做備份,所以我能接受。

會失效的地方:第一,Livebox 的 DHCP 租約如果讓 Pi 換 IP,Time Machine 會找不到目標,我後來在 Livebox 裡把 Pi 的 MAC 綁定固定 IP。第二,Pi 的 SD 卡如果掛掉,Samba 設定和帳號會一起消失,我現在把 /etc/samba/smb.conf 備一份到外接碟。第三,macOS 更新後偶爾會重新驗證分享,第一次連線要手動輸入帳密,否則備份排程會靜默失敗。

你們在法國用 Samba 跑 Time Machine 時,是讓 Pi 直接接 USB 硬碟,還是走 NAS 再轉一層?我這邊直接接碟在大量寫入時 CPU 會吃滿,想確認是不是只有我這樣。

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

0 条评论

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

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