PVE中的ZFS over iSCSI配合TrueNas的使用方法
静默未名
编辑于 2023年08月25日 03:47

众所周知,TrueNas可以通过iSCSI共享磁盘给宿主机PVE使用,而这个ZFS over iSCSI是什么,先放一段new bing的解释:


  • ZFS over iSCSI 是一种使用 ZFS 卷作为 iSCSI 目标的方法。它可以让你在远程机器上通过 SSH 创建和管理 ZFS 卷,并将它们作为 iSCSI LUN 导出给其他客户端。你也可以使用 ZFS 的一些特性,如快照、复制和压缩。

  • ZFS over iSCSI 的一些优点是:

  • 你可以使用 ZFS 镜像 vdev 从多个 iSCSI LUN 创建高可用性存储池。

  • 你可以使用 ZFS 块大小来优化不同工作负载的性能。

  • 你可以使用 FreeNAS 或 TrueNAS 作为远程机器,提供一个 web 界面和 API 来管理 ZFS 和 iSCSI。

  • ZFS over iSCSI 的一些缺点是:

  • 你需要配置 SSH 访问和权限,以便远程机器。

  • 你需要使用远程机器的根池,而不是子卷。

  • 你可能遇到不同 iSCSI 提供者的错误或兼容性问题。


要搭配TrueNas使用ZFS over iSCSI功能需要用到一个GitHub上的第三方插件,在PVE中复制下列命令安装:

代码块
Shell
自动换行
复制代码
keyring_location=/usr/share/keyrings/ksatechnologies-truenas-proxmox-keyring.gpg
复制成功

代码块
Shell
自动换行
复制代码
curl -1sLf 'https://dl.cloudsmith.io/public/ksatechnologies/truenas-proxmox/gpg.284C106104A8CE6D.key' |  gpg --dearmor >> ${keyring_location}
复制成功

代码块
Shell
自动换行
复制代码
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
复制成功

代码块
Shell
自动换行
复制代码
apt update
apt install freenas-proxmox
复制成功

至此插件已经安装完成,下一步是生成TrueNas的SSH密钥,把192.168.1.1换成TrueNas的IP

注意:TrueNas要开放SSH密码登录root

代码块
Shell
自动换行
复制代码
mkdir /etc/pve/priv/zfs
ssh-keygen -f /etc/pve/priv/zfs/192.168.1.1_id_rsa
ssh-copy-id -i /etc/pve/priv/zfs/192.168.1.1_id_rsa.pub root@192.168.1.1
复制成功

在PVE里使用这个命令登录一次TrueNas

代码块
Shell
自动换行
复制代码
ssh -i /etc/pve/priv/zfs/192.168.1.1_id_rsa root@192.168.1.1
复制成功


然后就是设置TrueNas的iSCSI共享,设置方法有很多教程,这里不展开讲,可以不用设置"范围&#​34;和"相关目标&#​34;,以后使用中会自动设置

填你喜欢的名字

选择监听你喜欢的网卡的IP,我这里设置成不需要密码验证,有需要的可以自己设置

填你喜欢的名字


浏览器的pve管理页面刷新一下,现在可以发现ZFS over iSCSI设置页面中多了个FreeNAS-API

数据中心-存储-添加-ZFS over iSCSI

ID: 填你喜欢的名字

入口: TrueNas的IP

资源池: TrueNas中想要共享的数据集的路径

目标: TrueNas里iSCSI共享中的设置

API Username: root

API IPv4 Host: TrueNas的IP

API Password: TrueNas中root的密码

参考一下我的设置

添加成功后的样子,只能使用磁盘映像的功能

和常规的iSCSI共享不一样,这里PVE的磁盘映像都可以在TrueNas里单独管理,用多大的磁盘映像占多大的空间,而不是划分一大块Zvol预先占用空间共享给PVE使用,最明显的缺点是只能用于存放PVE的磁盘映像

个人感觉PVE的管理页面下的ZFS不太好管理,这个功能有没有用纯粹见仁见智,可以当整活折腾一下

参考链接:

代码块
Shell
自动换行
复制代码
https://github.com/TheGrandWazoo/freenas-proxmox
https://pve.proxmox.com/wiki/Legacy:_ZFS_over_iSCSI
复制成功