Other shared lun between multiple iscsi initiators

Good day everyone!
In Linux, it is possible to use the lun as a shared resource by adding it to the lvm group.
This way, you get shared access to the lun from several initiators with any changes displayed.
Here is a simple example: https://github.com/LINBIT/linstor-server/issues/181
I am trying to achieve similar functionality in FreeBSD with a ctld target and two iscsid initiators, but when creating a markup table and a partition (and making any changes in general), the changes are displayed only on one initiator host (where this was done).
I also tried creating gvirstor on top of lun, but it didn't change anything...
Are there any mechanisms in FreeBSD that allow you to add an abstraction that can be shared on multiple hosts with isci initiators (similar to how it is raelized in Linux: open-iscsi + lvm)?
 
Clarification first: what do you mean by "creating a markup table"? I understand what you mean by "creating a partition".

Second, the XY problem: What are you really trying to accomplish? The reason I ask is that it is very difficult for multiple initiators that are on different computers (multiple hosts) to use the same logical unit. The reason for that is that the initiators will have to carefully agree on who is writing what. And if they cache any data from the disk, they have to know to invalidate caches when another initiator overwrites it. Typically, there are two kinds of things in the software stack that know how to handle this. The first are block layer orchestrators, such as multi-host LVMs (LinStor / LinBit is one example, but other cluster volume managers such as RedHat's CVM are more common), which are typically used for failover (active/passive), I think typically used with containers such as Docker. The second kind are multi-write cluster file systems (Lustre, Ceph and Gluster are common examples).

The problem you describe (create a partition on one host, other host doesn't know about it) is exactly an example of that cache control problem. Both hosts, when they booted or started using the iSCSI logical unit, read the partition table, and cached the result of decoding it in their memory. The second host does not get notified when the first one modifies the partition table on disk, so it continues to use outdated cache content.

And to answer your question: The only such technology that I know of on FreeBSD is the Gluster port.
 
Back
Top