Add LIO or IET iSCSI target compatibility to SCALE so Proxmox "ZFS over ISCSI" can work natively

Problem/Justification
SCALE doesn’t implement LIO or IET which are required by Proxmox. Storage: ZFS over ISCSI - Proxmox VE

There is a workaround by using a sometimes buggy API. The ask here is to allow Proxmox to more natively be integrated into TrueNAS.

Impact
Big benefits to the vast majority of TrueNAS users if Proxmox integration was more “native” and “out of the box just works” a large amount of people have migrated to Proxmox recently after the vmware exodus.

User Story
Users who leverage Proxmox clusters as their hypervisor want to be able to use TrueNAS managed storage remotely and natively thru Proxmox’s web interface.

9 Likes

I’m also using the FreeNAS / TrueNAS API plugin for the moment. I just noticed that upgrading to 25.04 Fangtooth breaks the plugin completely, which forces me to stay on 24.10 until a better solution comes around. I am really hoping that this feature request gets implemented in the near future, since my setup is very dependent on ZFS-over-ISCSI.

The TrueNAS documentation for 25.04 also mentions that the REST API is deprecated.

1 Like

I dont understand how proxmox does it, but if it requires it to have LIO or IET as the target implementation in TrueNAS instead of SCST this is not going to happen.

Would you mind expanding on why is not going to happen?

does SCST offer something that neither LIO or IET give TrueNAS? What are those things?

You do understand the core of this request is focused on Proxmox, so you could just do what another industry leader does and just build a proxmox plugin for it. Setting Up Highly Available Storage for Proxmox Using LINSTOR & the LINBIT GUI - LINBIT

I could very well reverse the question, a lot of enterprise features are built on top of SCST and changing it to a completely different backend would be a lot of worth and risk regression, so what are the advantages of LIO or IET over SCST?

A request to implement a proxmox plugin is way more reasonable and easier than changing away from SCST.

I don’t disagree. This FR is about someone build a plugin themselves and the thing isn’t reliable, can TrueNAS just natively integrate with Proxmox?

As long as the solution allows a close integration with the hypervisor and its performant, I don’t think people would care how the problem is solved. I did file this request with the information I had available at the time which was proxmox expects XYZ protocols to be used for ZFS over iSCSI to work natively.

Apparently other companies have solved the integration in a different way, by rather than using the protocol solution via LIO or IET they just baked themselves into proxmox with some plugin which is fine solution.

If you feel renaming the title of the FR is appropriate, you have my permission to change it to Native Proxmox VE integration or w/e.

Just wanted to throw some additional weight behind this FR. I’d love to see some kind of officially blessed path to get this working reliably.

Thanks.

Hello,
I’m also intersted. I use ceph with proxmox as main storage in my small clusters but I still have some truenas servers that was used with vmware.
ZFS over iscsi is for now the best implementation.

Proxmox needs to use our APIs to create iSCSI LUNs and do snapshots. Doing manual config via SSH to set up luns without coordination with the TrueNAS backend is a non-starter that will result in broken systems. IIRC this happened in the past (proxmox “zfs over iscsi” causing subtle TrueNAS Core breakage). Forums old timers probably remember having to help people out with recovery after proxmox made a mess of things.

I have a shot in the dark on what might be happening w.r.t 25.04 making the plugin fail, so I’ll see if I can look into this in a few days.

As @awalkerix mentioned, it’s important that this is done through the API in a manner that TrueNAS expects. The “SSH as root” method results in Proxmox bypassing the middleware.

I cant speak for anyone else but I only used the old buggy ssh based plugin to get ZFS over iscsi for my vms. Official support, even via a plugin, is my dream come true.

1 Like

Thanks for looking into this, @HoneyBadger . :slight_smile:

This might help: Truenas Scale 2025.04 api error · Issue #205 · TheGrandWazoo/freenas-proxmox · GitHub

That’s the issue for the plugin not working with Fangtooth. A few people are digging into the code there and tagging potential issues. I admit I don’t understand everything there, but looks like a combination of some hard-coded version strings (an easier problem to fix) and something having changed about how TrueNAS passes data between itself and the plugin (and Proxmox?).

Apparently, the plugin relies to a degree on using HTTP to pass commands/data around, and Fangtooth does that differently enough that the plugin broke.

The consensus also seems to be that converting the plugin to use the new websockets API would be less an update and more a fork/rewrite.

We have made progress resolving the issues with the plugin. I have a working patch that is promising but requires more testing. @TheGrandWazoo has gotten involved so I anticipate that the plugin will live on until the REST API is finally pulled.

Given that Trunas provides the API’s required to accomplish the mission the problem seems to lie in the proxmox implementation of zfs over iscsi and the use of iscsiadm for some of the operations.

freenas-proxmox/README.md at master · TheGrandWazoo/freenas-proxmox · GitHub
Please be aware that this plugin uses the TrueNAS APIs but still uses SSH keys due to the underlying Proxmox VE perl modules that use the iscsiadm command.

Once the existing bugs get worked out I’m sure @TheGrandWazoo will address the Websocket elephant in the room.

2 Likes

In addition to my previous comment. We have been trying to develop a native plugin for Proxmox ZFS over ISCSI however the API in insufficient to accomplish all of the functions required for a fully functional plugin.

I’m opening a feature request to have the API extended to allow for some additional zfs dataset / zvol management.

Regarding the existing freenas-proxmox plugin, I’m confident the solution will continue to be maintained.

A fork was created and converted into pure ssh+root commands, bypassing the API entirely.

I’m working on a fork that will integrate the new websocket API. The problem is the API has gone through some changes that makes backwards compatibility a challenge.

The current recommendation, in my opinion, is to continue to use original REST API plugin created by @TheGrandWazoo up to version 25.04.0. A working patch is available to restore operation in 25.04.0 but the official package hasn’t been updated yet.

In order to honor the great work of the original developers I’m going to work with them before releasing a websocket compatible version.

I really appreciate y’all jumping down the rabbit hole to get this working. Watching the work here and on the GitHub has been really inspiring. And I’ve learned a lot about how all this works just from watching.

Could you please add a link here to the feature request for the API additions? I’m sure some of us would like to track that.

Just to clarify, the original REST API plugin’s main branch will eventually be updated with the working patch, correct?

If so, I think for those of us who haven’t set this up yet at all, waiting on the patch to go to the mainline release will be the easiest way to go.

I’m confident an update will be released at some point. I think @TheGrandWazoo is working on testing. I’m fairly new to participating in opensource so I’m being careful not to overstep.

I intend to collaborate with the original devs before releasing my websocket version of the plugin. I’ll post a link regarding my feature request once I post it.

Feature request is here:

1 Like

Thanks!

I agree with you… its easier to make sure TrueNAS APIs have the right capabilities …

Integrating directly is easier and more robust than via a 3rd party API.

We haven’t heard anything from @TheGrandWazoo so at this point I think we are considering the project abandoned. I have reworked the project to use websockets. I will be removing the alpha tag from my project next week.

1 Like