A high-performance storage plugin for Proxmox VE that integrates TrueNAS SCALE via iSCSI or NVMe/TCP, featuring live snapshots, LXC container storage, ZFS integration, and cluster compatibility.
| Feature | TrueNAS Plugin | Standard iSCSI | NFS |
|---|---|---|---|
| Snapshots | ✅ | ⚠️ | ⚠️ |
| VM State Snapshots (vmstate) | ✅ | ✅ | ✅ |
| Clones | ✅ | ⚠️ | ⚠️ |
| Thin Provisioning | ✅ | ⚠️ | ⚠️ |
| Block-Level Performance | ✅ | ✅ | ❌ |
| Shared Storage | ✅ | ✅ | ✅ |
| Automatic Volume Management | ✅ | ❌ | ❌ |
| Automatic Resize | ✅ | ❌ | ❌ |
| Pre-flight Checks | ✅ | ❌ | ❌ |
| Multi-path I/O | ✅ | ✅ | ❌ |
| ZFS Compression | ✅ | ❌ | ❌ |
| Container Storage | ✅ | ⚠️ | ✅ |
| Backup Storage | ❌ | ❌ | ✅ |
| ISO Storage | ❌ | ❌ | ✅ |
| Raw Image Format | ✅ | ✅ | ✅ |
Legend: ✅ Native Support | ⚠️ Via Additional Layer | ❌ Not Supported
Notes:
Option 1 (Recommended): APT Repository
Install from the official APT repository with the installer:
bash <(curl -sSL https://raw.githubusercontent.com/truenas/truenas-proxmox-plugin/alpha/install.sh) --non-interactive --apt-install
Optional suite override (for scripted installs):
bash <(curl -sSL https://raw.githubusercontent.com/truenas/truenas-proxmox-plugin/alpha/install.sh) --non-interactive --apt-install --apt-suite trixie
Suite mapping:
bookwormtrixieManual deb822 source setup:
cat >/etc/apt/sources.list.d/truenas-proxmox-plugin.sources <<'EOF'
Types: deb
URIs: https://truenas.github.io/truenas-proxmox-plugin/apt/
Suites: <bookworm|trixie>
Components: main
Architectures: amd64
Signed-By: /etc/apt/keyrings/truenas-proxmox-plugin.gpg
EOF
mkdir -p /etc/apt/keyrings
curl -fsSL https://truenas.github.io/truenas-proxmox-plugin/apt/pubkey.gpg -o /etc/apt/keyrings/truenas-proxmox-plugin.gpg
apt-get update
apt-get install -y truenas-proxmox-plugin
Option 2: Direct .deb Installation
Download a release package and install it directly:
wget https://github.com/truenas/truenas-proxmox-plugin/releases/download/v<RELEASE_TAG>/truenas-proxmox-plugin_<DEB_VERSION>_all.deb
dpkg -i truenas-proxmox-plugin_<DEB_VERSION>_all.deb
apt-get -f install -y
Option 3: Interactive Installer (Existing Workflow)
Download and run the installer interactively:
bash <(curl -sSL https://raw.githubusercontent.com/truenas/truenas-proxmox-plugin/alpha/install.sh)
Or download first, then run:
wget https://raw.githubusercontent.com/truenas/truenas-proxmox-plugin/alpha/install.sh
chmod +x install.sh
./install.sh
The installer provides:
For expanded installation instructions, see the Installation Guide.
Alternative: Manual Plugin File Installation
If you prefer manual plugin file installation:
# Download the plugin
wget https://raw.githubusercontent.com/truenas/truenas-proxmox-plugin/main/TrueNASPlugin.pm
# Copy to plugin directory
cp TrueNASPlugin.pm /usr/share/perl5/PVE/Storage/Custom/
# Set permissions
chmod 644 /usr/share/perl5/PVE/Storage/Custom/TrueNASPlugin.pm
# Restart Proxmox services
systemctl restart pvedaemon pveproxy
Add to /etc/pve/storage.cfg:
truenasplugin: truenas-storage
tn_api_host 192.168.1.100
tn_api_key 1-your-truenas-api-key-here
tn_api_insecure 1
tn_target_iqn iqn.2005-10.org.freenas.ctl:proxmox
tn_dataset tank/proxmox
tn_discovery_portal 192.168.1.100:3260
content images
shared 1
Replace:
192.168.1.100 with your TrueNAS IP1-your-truenas-api-key-here with your TrueNAS API keytank/proxmox with your ZFS dataset pathFor lower latency and reduced CPU overhead, use NVMe/TCP instead of iSCSI:
truenasplugin: truenas-nvme
tn_api_host 192.168.1.100
tn_api_key 1-your-truenas-api-key-here
tn_transport_mode nvme-tcp
tn_subsystem_nqn nqn.2005-10.org.freenas.ctl:proxmox-nvme
tn_dataset tank/proxmox
tn_discovery_portal 192.168.1.100:4420
content images
shared 1
NVMe/TCP Requirements:
nvme-cli on Proxmox: apt-get install nvme-cliSee wiki/NVMe-Setup.md for complete NVMe/TCP setup guide.
Navigate to Datasets → Create new dataset:
proxmox (under existing pool like tank)Navigate to System Settings → Services:
Navigate to Shares → Block Shares (iSCSI) → Targets:
proxmox (becomes iqn.2005-10.org.freenas.ctl:proxmox)Navigate to Shares → Block Shares (iSCSI) → Portals:
0.0.0.0:3260Navigate to Credentials → Local Users:
The plugin will automatically:
tank/proxmox/vm-XXX-disk-N)# Create VM
qm create 100 --name "test-vm" --memory 2048 --cores 2
# Add disk from TrueNAS storage
qm set 100 --scsi0 truenas-storage:32
# Start VM
qm start 100
# Create snapshot
qm snapshot 100 backup1 --description "Before updates"
# Create live snapshot (with RAM state)
qm snapshot 100 live1 --vmstate 1
# List snapshots
qm listsnapshot 100
# Rollback to snapshot
qm rollback 100 backup1
# Delete snapshot
qm delsnapshot 100 backup1
# Check storage status
pvesm status truenas-storage
# List all volumes
pvesm list truenas-storage
# Check available space
pvesm status
The installer supports additional features:
For detailed installation instructions and troubleshooting, see the Installation Guide.
Comprehensive documentation is available in the Wiki:
TrueNAS SCALE 25.10+ Required: This plugin requires TrueNAS SCALE 25.10 or later. WebSocket API is the only supported transport method.
For issues, questions, or contributions:
This project is provided as-is for use with Proxmox VE and TrueNAS SCALE.
Version: 2.1.5 Last Updated: June 16, 2026 Compatibility: Proxmox VE 8.x+, TrueNAS SCALE 25.10+
Shell
68.9%
Perl
31.1%
A high-performance storage plugin for Proxmox VE that integrates TrueNAS SCALE via iSCSI or NVMe/TCP, featuring live snapshots, LXC container storage, ZFS integration, and cluster compatibility.
| Feature | TrueNAS Plugin | Standard iSCSI | NFS |
|---|---|---|---|
| Snapshots | ✅ | ⚠️ | ⚠️ |
| VM State Snapshots (vmstate) | ✅ | ✅ | ✅ |
| Clones | ✅ | ⚠️ | ⚠️ |
| Thin Provisioning | ✅ | ⚠️ | ⚠️ |
| Block-Level Performance | ✅ | ✅ | ❌ |
| Shared Storage | ✅ | ✅ | ✅ |
| Automatic Volume Management | ✅ | ❌ | ❌ |
| Automatic Resize | ✅ | ❌ | ❌ |
| Pre-flight Checks | ✅ | ❌ | ❌ |
| Multi-path I/O | ✅ | ✅ | ❌ |
| ZFS Compression | ✅ | ❌ | ❌ |
| Container Storage | ✅ | ⚠️ | ✅ |
| Backup Storage | ❌ | ❌ | ✅ |
| ISO Storage | ❌ | ❌ | ✅ |
| Raw Image Format | ✅ | ✅ | ✅ |
Legend: ✅ Native Support | ⚠️ Via Additional Layer | ❌ Not Supported
Notes:
Option 1 (Recommended): APT Repository
Install from the official APT repository with the installer:
bash <(curl -sSL https://raw.githubusercontent.com/truenas/truenas-proxmox-plugin/alpha/install.sh) --non-interactive --apt-install
Optional suite override (for scripted installs):
bash <(curl -sSL https://raw.githubusercontent.com/truenas/truenas-proxmox-plugin/alpha/install.sh) --non-interactive --apt-install --apt-suite trixie
Suite mapping:
bookwormtrixieManual deb822 source setup:
cat >/etc/apt/sources.list.d/truenas-proxmox-plugin.sources <<'EOF'
Types: deb
URIs: https://truenas.github.io/truenas-proxmox-plugin/apt/
Suites: <bookworm|trixie>
Components: main
Architectures: amd64
Signed-By: /etc/apt/keyrings/truenas-proxmox-plugin.gpg
EOF
mkdir -p /etc/apt/keyrings
curl -fsSL https://truenas.github.io/truenas-proxmox-plugin/apt/pubkey.gpg -o /etc/apt/keyrings/truenas-proxmox-plugin.gpg
apt-get update
apt-get install -y truenas-proxmox-plugin
Option 2: Direct .deb Installation
Download a release package and install it directly:
wget https://github.com/truenas/truenas-proxmox-plugin/releases/download/v<RELEASE_TAG>/truenas-proxmox-plugin_<DEB_VERSION>_all.deb
dpkg -i truenas-proxmox-plugin_<DEB_VERSION>_all.deb
apt-get -f install -y
Option 3: Interactive Installer (Existing Workflow)
Download and run the installer interactively:
bash <(curl -sSL https://raw.githubusercontent.com/truenas/truenas-proxmox-plugin/alpha/install.sh)
Or download first, then run:
wget https://raw.githubusercontent.com/truenas/truenas-proxmox-plugin/alpha/install.sh
chmod +x install.sh
./install.sh
The installer provides:
For expanded installation instructions, see the Installation Guide.
Alternative: Manual Plugin File Installation
If you prefer manual plugin file installation:
# Download the plugin
wget https://raw.githubusercontent.com/truenas/truenas-proxmox-plugin/main/TrueNASPlugin.pm
# Copy to plugin directory
cp TrueNASPlugin.pm /usr/share/perl5/PVE/Storage/Custom/
# Set permissions
chmod 644 /usr/share/perl5/PVE/Storage/Custom/TrueNASPlugin.pm
# Restart Proxmox services
systemctl restart pvedaemon pveproxy
Add to /etc/pve/storage.cfg:
truenasplugin: truenas-storage
tn_api_host 192.168.1.100
tn_api_key 1-your-truenas-api-key-here
tn_api_insecure 1
tn_target_iqn iqn.2005-10.org.freenas.ctl:proxmox
tn_dataset tank/proxmox
tn_discovery_portal 192.168.1.100:3260
content images
shared 1
Replace:
192.168.1.100 with your TrueNAS IP1-your-truenas-api-key-here with your TrueNAS API keytank/proxmox with your ZFS dataset pathFor lower latency and reduced CPU overhead, use NVMe/TCP instead of iSCSI:
truenasplugin: truenas-nvme
tn_api_host 192.168.1.100
tn_api_key 1-your-truenas-api-key-here
tn_transport_mode nvme-tcp
tn_subsystem_nqn nqn.2005-10.org.freenas.ctl:proxmox-nvme
tn_dataset tank/proxmox
tn_discovery_portal 192.168.1.100:4420
content images
shared 1
NVMe/TCP Requirements:
nvme-cli on Proxmox: apt-get install nvme-cliSee wiki/NVMe-Setup.md for complete NVMe/TCP setup guide.
Navigate to Datasets → Create new dataset:
proxmox (under existing pool like tank)Navigate to System Settings → Services:
Navigate to Shares → Block Shares (iSCSI) → Targets:
proxmox (becomes iqn.2005-10.org.freenas.ctl:proxmox)Navigate to Shares → Block Shares (iSCSI) → Portals:
0.0.0.0:3260Navigate to Credentials → Local Users:
The plugin will automatically:
tank/proxmox/vm-XXX-disk-N)# Create VM
qm create 100 --name "test-vm" --memory 2048 --cores 2
# Add disk from TrueNAS storage
qm set 100 --scsi0 truenas-storage:32
# Start VM
qm start 100
# Create snapshot
qm snapshot 100 backup1 --description "Before updates"
# Create live snapshot (with RAM state)
qm snapshot 100 live1 --vmstate 1
# List snapshots
qm listsnapshot 100
# Rollback to snapshot
qm rollback 100 backup1
# Delete snapshot
qm delsnapshot 100 backup1
# Check storage status
pvesm status truenas-storage
# List all volumes
pvesm list truenas-storage
# Check available space
pvesm status
The installer supports additional features:
For detailed installation instructions and troubleshooting, see the Installation Guide.
Comprehensive documentation is available in the Wiki:
TrueNAS SCALE 25.10+ Required: This plugin requires TrueNAS SCALE 25.10 or later. WebSocket API is the only supported transport method.
For issues, questions, or contributions:
This project is provided as-is for use with Proxmox VE and TrueNAS SCALE.
Version: 2.1.5 Last Updated: June 16, 2026 Compatibility: Proxmox VE 8.x+, TrueNAS SCALE 25.10+
Shell
68.9%
Perl
31.1%