前言
過去我會使用 backup script 配合 crontab 來定期的備份 nas 的資料,這次更換了 Proxmox Backup Server 的物理機後,多了一個硬碟的空間好讓我實驗 Truenas Scale 的備份機制。
差異
rsync 本身並沒有 server/client 的概念,只有 source 與 destination。 過去我會在備份主機上透過 samba 來 mount Nas 到資料夾內,檢查有沒有 mount 成功才在備份主機上使用 rsync。 而 Truenas Scale 提供的 Data Protection 功能中,內建了 Rsync Tasks 模組,透過預先建立好的 ssh credential 來呼叫備份主機進行 rsync。 同樣都是由備份主機來進行 rsync,主要是任務的執行呼叫是 Truenas Scale 本身還是備份主基本身。
在 Truenas Scale 上建立備份任務
建立 SSH Pair
首先到 Credentials -> Backup Credentials 的頁面
點擊 SSH Configurations 中的 Add
並且填上對應的 ip, port 與 username,Remote Host Key 則可以先複製起來備用,待會兒會需要貼到 PBS 的主機內。
建立 Rsync Task
到 Data Protection 中,點擊 Rsync Tasks 的 Add 按鈕
在 Rsync Mode 中選擇 SSH,並選擇剛剛建立好的 SSH Connection。Remote Path 則可能事:
- PBS 上透過 WebUI 建立 Directory 或是 ZFS -> 會綁在 PBS 的 Storate 下面所以 path 中會有
/mnt/datastore/{name}
。 - PBS 或任意主機上透過 cli 建立的 directory -> 就可能是任意位置,例如
/root/nas-backup
等等。
在 Proxmox Backup Server 上建立備份目標
建立 Storage
這邊選擇在 WebUI 上建立 Directory。
儲存 authorized key
到 PBS 的 cli 下,透過 cat 'authorized key' > ~/.ssh/authorized_keys
來儲存剛才產生的 ssh remote key。
驗收
回到 Truenas Scale,點擊 Rsync Tasks 中建立好的任務的 Run Now 按鈕,就可以看到任務開始跑了。
錯誤處理
PBS 預設沒有安裝 rsync,可以在 PBS 中使用 apt install rsync
來安裝。