Hi all, I've been looking at the kernel to iscsid interfaces with an eye towards opening up the possibility for several things that we can't do right now. Like running iscsid in a container, or moving towards a multi-process model with a simplified iscsid process managing each session.
There's a few issues blocking experimenting with those ideas, but I've only run into one breaking change so far. - The big change here, is making everything isolated by network namespace. This is what keeps the netlink interface from working at all inside of a container with a net-ns, and once we're namespace aware I think it makes sense to filter the netlink responses and sysfs visibility by net-ns. - This lets you run an iscsid per net-ns, but only iscsi_tcp (and maybe iSER?) will work in a namespace/container. We could extend to allow moving of an iscsi_host to a namespace like network interfaces. - The flashnode stuff, that's where I had to break the Open-iSCSI tools. The tools don't search for the sysfs devices anywhere outside of /sys/bus/iscsi_flashnode (best practice for sysfs is to search all "subsystems" like bus, class, etc.) It's an easy fix for the tools, but a harder issue if we wanted to keep the kernel back compatible. - Are people using the flashnode commands? They only work with qla4xxx. - The final patch here is a test towards fixing the netlink messaging to support multiple processes communicating with the kernel. It doesn't get everything, but shows that we can move to unicasting responses and iscsid still works. And my timing on this is terrible, but I'm going to put this on the list and then be gone for the next week (and I know I've been too quiet here lately). I'll try and keep an eye on any replies, and then starting the 14th look at making any needed changes to finalize these and see about moving them to an ready to merge submission. Thanks, - Chris iscsi: create per-net iscsi netlink kernel sockets iscsi: sysfs filtering by network namespace iscsi: make all netlink multicast namespace aware iscsi: set netns for iscsi_tcp hosts iscsi: pass ep to bind_conn iscsi: convert flashnode devices from bus to class iscsi: rename iscsi_bus_flash_* to iscsi_flash_* iscsi: filter flashnode sysfs by net namespace iscsi: respond to netlink with unicast when appropriate drivers/infiniband/ulp/iser/iscsi_iser.c | 8 +- drivers/scsi/be2iscsi/be_iscsi.c | 6 +- drivers/scsi/be2iscsi/be_iscsi.h | 1 + drivers/scsi/bnx2i/bnx2i_iscsi.c | 5 +- drivers/scsi/cxgbi/libcxgbi.c | 6 +- drivers/scsi/cxgbi/libcxgbi.h | 4 +- drivers/scsi/iscsi_tcp.c | 12 +- drivers/scsi/qedi/qedi_iscsi.c | 6 +- drivers/scsi/qla4xxx/ql4_os.c | 58 +-- drivers/scsi/scsi_transport_iscsi.c | 625 +++++++++++++++++++++---------- include/scsi/scsi_transport_iscsi.h | 47 ++- 11 files changed, 507 insertions(+), 271 deletions(-) -- 2.9.4 -- You received this message because you are subscribed to the Google Groups "open-iscsi" group. To unsubscribe from this group and stop receiving emails from it, send an email to open-iscsi+unsubscr...@googlegroups.com. To post to this group, send email to open-iscsi@googlegroups.com. Visit this group at https://groups.google.com/group/open-iscsi. For more options, visit https://groups.google.com/d/optout.