跳到主內容

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 設定

  先設定 TrueNASiSCSI 相關設定

  • 先到服務啟用 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 選項

freenas-pve-01.png

  • 進入到 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 主機新增加儲存設備
  1. 新增 ZFS over iSCSI

  1. iSCSI 提供者選擇 FreeNAS-API

  1. 開始輸入資料

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 上運行。

備註





參考相關網頁