Update Servers & Workflows/Linux/Virtualization/Proxmox/ZFS-Over-iSCSI.md

This commit is contained in:
Nicole Rappe
2024-02-14 19:12:21 -07:00
parent 3e05fd9b8d
commit dc98f7281c

View File

@ -8,15 +8,15 @@
!!! note "Environment Assumptions" !!! note "Environment Assumptions"
This document assumes you are running at least 2 ProxmoxVE nodes. For the sake of the example, it will assume they are named `proxmox-node-01` and `proxmox-node-02`. We will also assume you are using TrueNAS Core. TrueNAS SCALE (should work) in the same way, but there may be minor operational / setup differences between the two different deployments of TrueNAS. This document assumes you are running at least 2 ProxmoxVE nodes. For the sake of the example, it will assume they are named `proxmox-node-01` and `proxmox-node-02`. We will also assume you are using TrueNAS Core. TrueNAS SCALE (should work) in the same way, but there may be minor operational / setup differences between the two different deployments of TrueNAS.
## Configure SSH Key Exchange ## Configure SSH Key Exchange (All Nodes)
The first step is creating SSH trust between the ProxmoxVE cluster nodes and the TrueNAS storage appliance. You will leverage the ProxmoxVE `shell` to run the following commands. The first step is creating SSH trust between the ProxmoxVE cluster nodes and the TrueNAS storage appliance. You will leverage the ProxmoxVE `shell` to run the following commands.
``` sh ``` sh
apt-get install librest-client-perl git unzip # (4)
mkdir /etc/pve/priv/zfs mkdir /etc/pve/priv/zfs
ssh-keygen -f /etc/pve/priv/zfs/192.168.101.100_id_rsa # (1) ssh-keygen -f /etc/pve/priv/zfs/192.168.101.100_id_rsa # (1)
ssh-copy-id -i /etc/pve/priv/zfs/192.168.101.100_id_rsa.pub root@192.168.101.100 # (2) ssh-copy-id -i /etc/pve/priv/zfs/192.168.101.100_id_rsa.pub root@192.168.101.100 # (2)
ssh -i /etc/pve/priv/zfs/192.168.101.100_id_rsa root@192.168.101.100 # (3) ssh -i /etc/pve/priv/zfs/192.168.101.100_id_rsa root@192.168.101.100 # (3)
apt-get install librest-client-perl git # (4)
iscsiadm --mode discovery --op update --type sendtargets --portal 192.168.101.100 iscsiadm --mode discovery --op update --type sendtargets --portal 192.168.101.100
iscsiadm -m node -T iqn.2005-10.org.moon-storage-01.ctl:proxmox-zfs-storage -p 192.168.101.100 -l iscsiadm -m node -T iqn.2005-10.org.moon-storage-01.ctl:proxmox-zfs-storage -p 192.168.101.100 -l
iscsiadm -m node # (5) iscsiadm -m node # (5)
@ -30,6 +30,23 @@ iscsiadm -m session # (6)
5. Making sure that it's actually communicating with the iSCSI target successfully or not. 5. Making sure that it's actually communicating with the iSCSI target successfully or not.
6. Making sure that it's actually communicating with the iSCSI target successfully or not. 6. Making sure that it's actually communicating with the iSCSI target successfully or not.
## Configure Storage Provider
Now you need to set up the storage provider in TrueNAS via a series of "patches" provided by the community. You will run the commands below within a ProxmoxVE shell, then when finished, log out of the ProxmoxVE WebUI, clear the browser cache for ProxmoxVE, then log back in. This will have added a new storage provider called `FreeNAS-API` under the `ZFS over iSCSI` storage type.
``` sh
cd /tmp
wget https://github.com/TheGrandWazoo/freenas-proxmox/archive/refs/tags/v2.2.zip
unzip v2.2.zip
cd freenas-proxmox
patch -b /usr/share/pve-manager/js/pvemanagerlib.js < pve-manager/js/pvemanagerlib.js.patch
patch -b /usr/share/perl5/PVE/Storage/ZFSPlugin.pm < perl5/PVE/Storage/ZFSPlugin.pm.patch
patch -b /usr/share/pve-docs/api-viewer/apidoc.js < pve-docs/api-viewer/apidoc.js.patch
cp perl5/PVE/Storage/LunCmd/FreeNAS.pm /usr/share/perl5/PVE/Storage/LunCmd/FreeNAS.pm
systemctl restart pvedaemon
systemctl restart pveproxy
systemctl restart pvestatd
```
| **IP Address** | **Hostname** | **Additional Notes** | | **IP Address** | **Hostname** | **Additional Notes** |
| :--- | :--- | :--- | | :--- | :--- | :--- |
| 192.168.5.1 | PFSENSE | pfSense Firewall | | 192.168.5.1 | PFSENSE | pfSense Firewall |