Persistent reservations… shudder.
Very neat to see this all written up in go, though it’s a bit lost on me what the exact use case is for this code.
It can export the network block device to user, work as a scsi/iscsi library package. Now, longhorn from openebs is working on this.
Or all codes are implemented by golang on userland, you can modify and test it more easily than LIO or SCST. Compared with tgt which is first scsi target implemented on userland, this gotgt works on any platform, I think this is more easy to hand. And we will plan to implement more features to make it more dazzled.
So largely the use case for this is people who develop scsi initiators? That’s very neat, but was not obvious from my reading of everything.
Good luck with everything, wish I could help more.