<div dir="ltr"><div>Our iSCSI/ZFS infraestructure is somewhat specific to our environment,</div><div>and I felt like adding a driver just for us was of no use for proxmox</div><div>folks, nor for the community at large, so I've opted for an alternative</div>
<div>way by introducing a 'generic' LUN management driver which just invokes</div><div>an independent 'management helper' (which can be either an script or a</div><div>native binary) which is invoked for lun creation/deletion/etc.</div>
<div><br></div><div>This way, the specifics of the lun management can be developed independently</div><div>of proxmox, and we can avoid interfering with proxmox's release schedule.</div><div><br></div><div>The 'protocol' which proxmox uses to communicate with the helper is simply</div>
<div>based on exposing a set of environment variables along with a few command</div><div>line arguments which are passed to helper script. This is based on the</div><div>same concept around CGI, AGI, and other similar decoupled invocation protocols.</div>
<div><br></div><div>Also, the helper can be invoked either locally or remotelly thru ssh (just</div><div>the same way it goes for invoking zfs itself), and some 'commands' expect</div><div>some kind of output as response (as it happends with Comstar's code). And</div>
<div>of course, helper's exit code is honored, so a non-zero exit code is</div><div>considered an error.</div><div><br></div><div>This is working for us in production on 3.1, but I am submitting this patch</div><div>
in order to be reviewed for comments and improvements which may be of use</div>
<div>for other users as well. And in the hope of this being merged into proxmox</div><div>once any identified issues are fixed/implemented.</div><div><br></div><div>The patchs included by this feature (that would be received by this mailling list) are:</div>
<div><br></div><div>GIT: [PATCH 1/2] Added a new 'generic' LUN management driver to ZFS</div><div>GIT: [PATCH 2/2] Improve parsing of zfs volumes (ZVOLs) in order to avoid</div><div><br></div><div>Best Regards,</div>
<div>Pablo</div></div>