Title: OpenBSD and iSCSI part2: the initiator (client)
Author: Solène
Date: 21 February 2019
Tags: unix openbsd iscsi
Description: 

This is the second article of the serie about iSCSI. In this one, you
will
learn how to connect to an iSCSI target using OpenBSD base daemon
**iscsid**.

The configuration file of **iscsid** doesn't exist by default, its
location is
**/etc/iscsi.conf**. It can be easily written using the following:

    target1="100.64.2.3"
    myaddress="100.64.2.2"

    target "disk1" {
        initiatoraddr $myaddress
        targetaddr $target1
        targetname "iqn.1994-04.org.netbsd.iscsi-target:target0"
    }

While most lines are really obvious, it is **mandatory** to have the
line
initiatoraddr, many thanks to cwen@ for pointing this out when I was
stuck on
it.

The targetname value will depend of the iSCSI target server. If you use
netbsd-iscsi-target, then you only need to care about the last part,
aka
**target0** and replace it by the name of your target (which is target0
for the
default one).

Then we can enable the daemon and start it:

    # rcctl enable iscsid
    # rcctl start iscsid

In your dmesg, you should see a line like:

    sd4 at scsibus0 targ 1 lun 0:  SCSI3
0/direct fixed t10.NetBSD_0x5c6cf1b69fc3b38a

If you use netbsd-iscsi-target, the whole line should be identic except
for the
sd4 part which can change, depending of your hardware.

If you don't see it, you may need to reload iscsid configuration file
with
`iscsictl reload`.

Warning: iSCSI is a bit of pain to debug, if it doesn't work, double
check the
IPs in **/etc/iscsi.conf**, check your PF rules on the initiator and
the
target. You should be at least able to telnet into the target IP port
3260.

Once you found your new sd device, you can format it and mount it as a
regular
disk device:

    # newfs /dev/rsd4c
    # mount /dev/sd4c /mnt

iSCSI is far mor efficient and faster than NFS but it has a total
different
purpose. I'm using it on my powerpc machines to build packages on it.
This
reduce their old IDE disks usage while giving better response time and
equivalent speed.