Proxmox shared iSCSI storage across multiple nodes is doable, but you can’t just slap ext4 on a LUN and call it a day. You need LVM over iSCSI so the cluster handles locking. Here’s the working setup with TrueNAS.

Why plain filesystems fail
iSCSI gives you a block device. If two Proxmox nodes mount the same ext4 filesystem on that block device, they’ll both write to it and corrupt the hell out of it. No cluster awareness, no locking. That’s why the forum threads are full of warnings. The fix is LVM on top of iSCSI, which Proxmox understands natively.
TrueNAS side: create the target
On TrueNAS, create a zvol and then an iSCSI target. Don’t bother with file extents for this—use a device extent pointing at the zvol. Set up a portal on your storage network and map the target to it. Note the IQN and the portal IP.

Proxmox side: add iSCSI storage
On each Proxmox node, install open-iscsi if it’s not already there:
apt install open-iscsi
Then in the Proxmox GUI, go to Datacenter → Storage → Add → iSCSI. Enter the portal IP, and Proxmox will discover the target. Select it, and Proxmox will create an LVM volume group on top of the iSCSI LUN automatically. That’s the key—Proxmox handles the LVM layer for you.
Once added, the storage will show up as LVM on all nodes. You can then create VMs and place their disks on this shared storage. Live migration works because the LUN is visible everywhere.
Gotchas
Make sure all nodes can reach the iSCSI portal. If you’re using a separate storage network, set the portal to that IP. Also, don’t enable the same LUN on two different storage entries—that will confuse things. And if you’re doing HA, you’ll need a quorum device, but that’s a whole other post.
One more thing: snapshots on LVM-over-iSCSI are not as flexible as on ZFS or Ceph. If you need snapshots, consider multipath iSCSI with ZFS over iSCSI instead, but that’s more complex.
My take
For a homelab, this works fine. It’s not as fancy as Ceph, but it’s simple and gets you shared storage without a lot of fuss. Just don’t try to share a raw LUN with a filesystem—that’s asking for trouble.