The iSCSI initiator runs as a kernel driver, and provides access to iSCSI targets running across a network using the iSCSI protocol, RFC 3270. The iscsid
utility itself interfaces to the kernel iSCSI driver, and also communicates, using isns(3)
, with the iSCSI name service running on other hosts to locate services and iSCSI instances. In normal operation, iscsid
is a standard daemon, and will detach from the controlling terminal using daemon(3)
and then loops, reading requests, processing them, and sending responses. Communication takes place over a Unix domain socket. iscsid
exits on receiving a terminate message, (no response to one that is sent to the kernel), or when an error occurs reading from or writing to the socket.
The -d flag increases the debug level to lvl. Any level above 0 causes iscsid to remain in the foreground, and increases the amount of debug output. The -n flag makes the daemon single-threaded.
It is envisaged that user-level communication take place with iscsid using the iscsictl(8) utility, rather than directly over its communication socket. An example of setting up the in-kernel iSCSI initiator is shown in iscsictl(8).
iscsid requires scsibus(4) and sd(4) compiled in the kernel to load the iscsi kernel module.