Proxmox VE 與 TrueNAS 使用 ZFS over iSCSI 連接
BUBU 因現在公司的 Proxmox VE
主機有叢集經常會把 Guest OS
移到其他設備上繼續運行,之前是都用 NAS
裡內建的 iSCSI
使用發現到效能沒有說很好也很差,因此開始找尋其他的方案來使用,這次就用 ZFS over iSCSI
這個版本從 Proxmox VE 3
版起就有功能了,只是一直不知道怎麼去使用,所以找尋很久,在 Proxmox VE
官方論壇裡找尋到有人提出來的方式,這是國外人事寫出來的外掛方式,但由於在測試時發現到這個用 FreeNAS API
方式來連結。以下是設定方式及安裝使用。
109.03.03 FreeNAS 外掛套件已有釋出跟著更新一起更新該套件,此篇內容重新修正目前手冊說明
2025.01.31 修改文章內容測試 PVE 8.X 版及 TrueNAS CORE 版本
運行環境
環境都是在 「Proxmox VE 」 虛擬系統上架設,都是以 「 LXC 」模式為主,除非有特殊狀況會告知使用 「 VM 」 模式
- 系統環境: Proxmox VE 8.X and TrueNAS CORE 13.0-U6.7
設定流程
TrueNAS CORE 設定
先設定 TrueNAS
的 iSCSI
相關設定
- 先到服務啟用
iSCSI
服務
- 啟用好服務再到
共用
選擇Block 共用(iSCSI)
- 設定名稱
- 新增
Portals
- 在
IP
位置看是否有要限連線來源,如果沒有的話就直接0.0.0.0
。
- 設定
Initiators Groups
- 允許所有的連線者
- 設定目標
- 設定連線目標,如果您的前面設定都是只有一組的話,直接選擇
ID
都是1
就可以了
- 設定
儲存
的儲存集區
- 填入您想要的名稱,其他都是預設即可
Proxmox VE 設定
早期都是從作者的 GitHub
抓取下來,後期開發者有建立一個來源庫,已有打包一些套件及開發者的本身安裝的腳本,只要開發者有做更新經系統更新後也會連動做更新動作不用在手動去重新設定。
- 新增加金鑰來源
# Preferred - based on documentation. Copy and paste to bash command line:
keyring_location=/usr/share/keyrings/ksatechnologies-truenas-proxmox-keyring.gpg
- 設定金鑰
curl -1sLf 'https://dl.cloudsmith.io/public/ksatechnologies/truenas-proxmox/gpg.284C106104A8CE6D.key' | gpg --dearmor >> ${keyring_location}
- 新增加來源庫
cat << EOF > /etc/apt/sources.list.d/ksatechnologies-repo.list
# Source: KSATechnologies
# Site: https://cloudsmith.io
# Repository: KSATechnologies / truenas-proxmox
# Description: TrueNAS plugin for Proxmox VE - Production
deb [signed-by=${keyring_location}] https://dl.cloudsmith.io/public/ksatechnologies/truenas-proxmox/deb/debian any-version main
EOF
- 安裝套件
apt update && apt install freenas-proxmox
- 在重新整理
Proxmox VE
後台頁面,進到資料中心
裡面儲存
選擇ZFS over iSCSI
項目看iSCSI 提供者
會有FreeNAS-API
選項
- 進入到
TrueNAS
生成一組SSH
金鑰
ssh-keygen -t rsa
- 中間會問您鑰匙要放在哪個目錄,還有
passphrase
,按三次Enter
採用預設值
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
- 承上如下圖
- 產生完檔案後會放在
.SSH
目錄,將該目錄所產生id_ras.pub
檔案利用SCP
方式傳到Proxmox VE
# 先將 id_rsa.pub 檔案先修改檔名
cp id_ras.pub id_ras-TrueNAS.pub
# 利用 scp 方式傳資料到 PVE
scp /root/.ssh/id_ras-TrueNAS.pub root@PVE位置:/root/.ssh/
- 傳過去之前會出現一行文字,只要輸入
yes
之後再可進入該Proxmox VE
的密碼就可以了,然後再進Proxmox VE
主機將剛剛收到的鑰匙加入authorized_keys
這個檔案裡就可以了
cat id_ras-TrueNAS.pub >> authorized_keys
# 產生完檔案記得還要將這個檔案回傳到 TrueNAS 上面
scp /root/.ssh/authorized_keys root@TrueNAS連線位置:/root/.ssh/authorized_keys
- 回到
Proxmox ve
系統進到cd /etc/pve/priv
在該目錄下新增加zfs
目錄
mkdir zfs
or
mkdir /etc/pve/priv/zfs
- 在回到
TrueNAS
主機將剛剛所產出的金鑰傳送到Proxmox VE
剛剛上個動作所建目錄
# 傳過去將檔案修改成要連線的設備 IP
scp /root/.ssh/id_rsa [email protected]:/etc/pve/priv/zfs/192.168.xxx.xxx_id_rsa
# 傳過去將檔案修改成要連線的設備 IP
scp /root/.ssh/id_rsa.pub [email protected]:/etc/pve/priv/zfs/192.168.xxx.xxx_id_rsa.pub
設定儲存設備流程
- 進入
Proxmox VE
主機新增加儲存設備
- 新增
ZFS over iSCSI
-
iSCSI
提供者選擇FreeNAS-API
- 開始輸入資料
id:給該連線設備一個名稱
入口:所連線設備 IP 位子
集區:是指在 FreeNAS 上所建的磁碟名稱
目標: FreeNAS 的 iSCSI 的名稱,例:iqn.2005-10.org.freenas.ctl:pvetest
精簡配置:打勾
API use SSL:不勾
API IPv4 Host:輸入FressNAS 的 IP
API Username:輸入登入FreeNAS帳號
API Pswwword:輸入FressNAS密碼
Confirm Password:再次確認輸入 FreeNAS 密碼
- 這樣子就可以新增並且在存儲碟裡面看到您剛剛新增的設備
- 接下來就可以測試新增客機映像檔在
TrueNAS
上運行。