Proxmox Backup Server(PBS)的備份空間不夠時,如果手邊有一台 NAS(例如 Synology),可以切一個 iSCSI LUN 給 PBS,當成 datastore 使用。對 PBS 來說,iSCSI 就是一顆本機磁碟,格式化、掛載之後,用法和本機硬碟完全一樣。
這篇整理從連線 iSCSI Target、格式化、設定開機自動掛載,到建立 datastore 的完整步驟,最後附上要移除時的做法。
環境與規劃
| 項目 | 範例 |
|---|---|
| NAS | Synology,IP 192.168.10.50 |
| iSCSI Target | iqn.2000-01.com.synology:nas01.Target-3.xxxxxxxxxx |
| LUN 大小 | 100 GB(範例) |
| PBS 掛載點 | /mnt/datastore/iscsi-pbs1 |
開始前先想清楚兩件事:
- 備份不要和正式資料放在同一台 NAS:如果 VM 本身也放在這台 NAS 上,NAS 一壞,正式資料和備份會一起不見
- iSCSI 建議走獨立的網路:備份流量大,和一般服務共用網路會互相影響
NAS 端準備
在 Synology 的 SAN Manager 建立 LUN 與 iSCSI Target,並且:
- 在 Target 的權限(遮罩)設定裡只允許 PBS 的 initiator 連線,不要開放給所有人
- 需要的話設定 CHAP 驗證
PBS 的 initiator 名稱在這裡:
apt install -y open-iscsi
cat /etc/iscsi/initiatorname.iscsi
注意:同一個 LUN 只能給一台主機掛載使用。ext4 這類一般檔案系統不支援多台同時掛載,兩台主機同時寫入會讓檔案系統損毀,備份資料全部報銷。
連線 iSCSI Target
探索 NAS 提供的 Target:
iscsiadm -m discovery -t sendtargets -p 192.168.10.50
192.168.10.50:3260,1 iqn.2000-01.com.synology:nas01.Target-1.xxxxxxxxxx
192.168.10.50:3260,1 iqn.2000-01.com.synology:nas01.Target-2.xxxxxxxxxx
192.168.10.50:3260,1 iqn.2000-01.com.synology:nas01.Target-3.xxxxxxxxxx
有設定 CHAP 的話,登入前先寫入帳密:
T=iqn.2000-01.com.synology:nas01.Target-3.xxxxxxxxxx
iscsiadm -m node -T $T -p 192.168.10.50 --op update -n node.session.auth.authmethod -v CHAP
iscsiadm -m node -T $T -p 192.168.10.50 --op update -n node.session.auth.username -v your-chap-user
iscsiadm -m node -T $T -p 192.168.10.50 --op update -n node.session.auth.password -v your-chap-password
登入:
iscsiadm -m node -T $T -p 192.168.10.50 --login
iscsiadm -m session
確認新磁碟出現:
lsblk
ls -l /dev/disk/by-path/ | grep iscsi
sdi 8:128 0 100G 0 disk
/dev/disk/by-path/ 底下的名稱會帶有 Target 的 IQN,用它來確認 sdi 真的是剛連上的那顆 iSCSI 磁碟。
格式化
mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0 /dev/sdi
-m 0
不保留給 root 的空間(預設 5%),datastore 專用的磁碟不需要lazy_itable_init=0,lazy_journal_init=0
格式化時就把 inode 表和日誌初始化完成,不在背景慢慢做,避免剛開始使用時效能被拖慢
注意:格式化前務必再確認一次裝置名稱,mkfs 打錯磁碟就是把那顆磁碟的資料全部清掉。可以直接用 /dev/disk/by-path/ 的完整路徑來格式化,比 /dev/sdX 保險。
掛載
mkdir -p /mnt/datastore/iscsi-pbs1
mount /dev/sdi /mnt/datastore/iscsi-pbs1
df -h /mnt/datastore/iscsi-pbs1
/dev/sdi 98G 2.1M 98G 1% /mnt/datastore/iscsi-pbs1
開機自動連線與掛載
iSCSI 自動登入
iscsiadm -m node -T $T -p 192.168.10.50 --op update -n node.startup -v automatic
systemctl enable iscsid open-iscsi
fstab
/dev/sdi 這種名稱在重新開機後可能會變,一律用 UUID:
blkid /dev/sdi
/dev/sdi: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" BLOCK_SIZE="4096" TYPE="ext4"
編輯 /etc/fstab 加入:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/datastore/iscsi-pbs1 ext4 defaults,_netdev,nofail 0 2
_netdev
告訴系統這是網路磁碟,要等網路與 iSCSI 連線好才掛載nofail
NAS 剛好沒開或連不上時,PBS 仍然可以正常開機,不會卡在開機畫面
注意:掛載選項不要加 noatime。PBS 的垃圾回收(GC)第一階段會更新每個仍在使用的 chunk 的存取時間(atime),第二階段再依 atime 判斷哪些 chunk 可以刪除。官方文件說明 GC 的寬限期是依照一般預設的 relatime 設計的,維持預設的掛載選項最保險。
測試設定是否正確:
umount /mnt/datastore/iscsi-pbs1
mount -a
df -h /mnt/datastore/iscsi-pbs1
最好實際重新開機一次,確認開機後會自動連線並掛載。
建立 datastore
網頁介面
- 登入 PBS 網頁介面
- 「資料儲存區 → 增加資料儲存區」
- 名稱填
iscsi-pbs1,備份路徑填/mnt/datastore/iscsi-pbs1 - 設定 GC 與清理(prune)排程後儲存
- 確認資料儲存區顯示的容量正確
指令
proxmox-backup-manager datastore create iscsi-pbs1 /mnt/datastore/iscsi-pbs1
proxmox-backup-manager datastore list
PBS 建立 datastore 時會自己設定目錄的擁有者為 backup,並建立 .chunks 目錄結構,不需要手動 chown。
接著就可以在 PVE 的「資料中心 → 儲存」新增這個 PBS datastore,或設定同步工作把其他 datastore 的備份複製過來。
注意:PBS 網頁介面「管理 → 存放裝置/磁碟 → 目錄」也可以直接格式化磁碟並建立 datastore,但它是用 systemd 的 mount unit 掛載,對 iSCSI 這種網路磁碟不一定會等到連線建立才掛載。網路磁碟我習慣自己寫 fstab 加 _netdev,開機順序比較確定。
移除 iSCSI datastore
之後不用了,要依序拆除:
移除 datastore
先確認 PVE 已經沒有使用這個 datastore(儲存設定、備份工作),再到 PBS「資料儲存區 → 選擇該儲存區 → 選項 → 移除資料儲存區」。
卸載
# 確認沒有程式在使用
lsof +D /mnt/datastore/iscsi-pbs1
fuser -vm /mnt/datastore/iscsi-pbs1
umount /mnt/datastore/iscsi-pbs1
移除 fstab 設定
編輯 /etc/fstab,刪掉之前加的那一行,否則下次開機會一直嘗試掛載。
登出並刪除 iSCSI 連線設定
# 登出
iscsiadm -m node -T $T -p 192.168.10.50 --logout
# 刪除連線設定,開機就不會再自動登入
iscsiadm -m node -T $T -p 192.168.10.50 --op delete
# 確認磁碟已經消失
lsblk
iscsiadm -m session
清理掛載點
rmdir /mnt/datastore/iscsi-pbs1
用 rmdir 而不是 rm -rf:目錄是空的才刪得掉,萬一卸載沒有成功,也不會誤刪到 iSCSI 磁碟裡的資料。
最後記得回 NAS 端把 LUN 與 Target 刪除,釋放空間。
結論
iSCSI 給 PBS 當 datastore 是很實用的擴充方式,NAS 上多的空間馬上就能拿來放備份。重點就三個:一個 LUN 只給一台主機掛、fstab 要用 UUID 並加上 _netdev、nofail、不要動 atime 相關的掛載選項。
參考資料
- Proxmox Backup Server 文件:Backup Storage
https://pbs.proxmox.com/docs/storage.html - Proxmox Backup Server 文件:Maintenance Tasks(Garbage Collection)
https://pbs.proxmox.com/docs/maintenance.html - Open-iSCSI 專案
https://github.com/open-iscsi/open-iscsi - Proxmox Backup Server 災難復原:設定檔備份清單
https://blog.jason.tools/2026/03/pbs-etc-backup.html



