I have been playing around with my newQNAP
NAS
appliance, getting the storage configured and the volumes setup with my
Scientific Linux 6 virtual machines using Daniel’s
articles
as a reference point. While the articles worked well easily for me at
the beginning, setting client VMs with authentication to multiple
targets took a bit more effort. Hopefully, this post will help those who
may encounter this similar problem.
The first thing to do is the go through the configuration wizard to
create the targets as
documented
in the article. Continue on until you get to this screen:

Choose “Use CHAP Authentication” (leave Mutual CHAP disabled for now),
assigned it a login user and (THIS IMPORTANT), a password that is up to
16 chapters long. The wizard will not make it obvious that you exceeded
your password field, so pay careful attention when you type in your
credentials.
At any event, after entering your credentials, continue through the
wizard and repeat until you reached the desired number of volumes (or
LUNs). You will have the screen similar to this:

Note the IQNs. Those names will become important later.
On the client server, we will setup a iSCSI initiator. First, we will
install the following package:
iscsi-initiator-utils
Assuming you have a repo setup, you can install it like this:
yum -y install iscsi-initiator-utils
Then cd to /etc/iscsi. After backing the backup of the existing
iscsi.conf file, you will enable or add the following:
node.session.auth.authmethod = CHAP
node.session.auth.username = puttargetusernamehere
node.session.auth.password = puttargetpasswordhere
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = puttargetusernamehere
discovery.sendtargets.auth.password = puttargetpasswordhere
Afterward, save the file and then enable iscsi for startup:
chkconfig iscsi on
And then bring up the service:
service iscsi start
It’s okay if you don’t see the “OK” response back yet. You are not done
yet.
Now we will need to initiate a connection the NAS with the following
command:
iscsiadm -m discoverydb -t st -p 192.168.15.250 -D
What this will do is to pull a list of targets (this is when the actual
ISCSI daemon on the initiator starts up):
[root@localhost iscsi]# iscsiadm -m discoverydb -t st -p
192.168.15.250 -D
Starting iscsid: [ OK ]
192.168.15.250:3260,1
iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0005.c2d7bd
192.168.15.250:3260,1
iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0004.c2d7bd
192.168.15.250:3260,1
iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0003.c2d7bd
192.168.15.250:3260,1
iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0002.c2d7bd
192.168.15.250:3260,1
iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0001.c2d7bd
and save them to the following directory:
root@localhost iscsi]# cd /var/lib/iscsi/
[root@localhost iscsi]# ls
ifaces isns nodes send_targets slp static
[root@localhost iscsi]# find .
.
./static
./nodes
./nodes/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0003.c2d7bd
./nodes/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0003.c2d7bd/192.168.15.250,3260,1
./nodes/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0003.c2d7bd/192.168.15.250,3260,1/default
./nodes/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0005.c2d7bd
./nodes/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0005.c2d7bd/192.168.15.250,3260,1
./nodes/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0005.c2d7bd/192.168.15.250,3260,1/default
./nodes/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0002.c2d7bd
./nodes/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0002.c2d7bd/192.168.15.250,3260,1
./nodes/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0002.c2d7bd/192.168.15.250,3260,1/default
./nodes/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0001.c2d7bd
./nodes/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0001.c2d7bd/192.168.15.250,3260,1
./nodes/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0001.c2d7bd/192.168.15.250,3260,1/default
./nodes/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0004.c2d7bd
./nodes/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0004.c2d7bd/192.168.15.250,3260,1
./nodes/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0004.c2d7bd/192.168.15.250,3260,1/default
./slp
./send_targets
./send_targets/192.168.15.250,3260
./send_targets/192.168.15.250,3260/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0004.c2d7bd,192.168.15.250,3260,1,default
./send_targets/192.168.15.250,3260/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0003.c2d7bd,192.168.15.250,3260,1,default
./send_targets/192.168.15.250,3260/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0005.c2d7bd,192.168.15.250,3260,1,default
./send_targets/192.168.15.250,3260/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0001.c2d7bd,192.168.15.250,3260,1,default
./send_targets/192.168.15.250,3260/st_config
./send_targets/192.168.15.250,3260/iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0002.c2d7bd,192.168.15.250,3260,1,default
./ifaces
./isns
(It should be noted while the login credentials are saved as well in
that directory, the files are only readable by root).
Finally, you will enable the initiator to login and attach to a specific
LUN. Enter following with IQN of the LUN you will be using:
iscsiadm -m node -T
iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0002.c2d7bd –login
For some reason, you have to pull a list of target first from the
volume, otherwise, you will encounter something similar to this:
iscsiadm: no records found!
Now, assuming you have the correct login in the iscsi.conf and on the
NAS volume, you will get the following screen:
[root@localhost iscsi]# iscsiadm -m node -T
iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0002.c2d7bd –login
Logging in to [iface: default, target:
iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0002.c2d7bd, portal:
192.168.15.250,3260]
Login to [iface: default, target:
iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0002.c2d7bd, portal:
192.168.15.250,3260] successful.
Otherwise, you will get the following screen:
[root@localhost iscsi]# iscsiadm -m node -T
iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0002.c2d7bd –login
Logging in to [iface: default, target:
iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0002.c2d7bd, portal:
192.168.15.250,3260]
iscsiadm: Could not login to [iface: default, target:
iqn.2004-04.com.qnap:ts-419pplus:iscsi.kvm0002.c2d7bd, portal:
192.168.15.250,3260].
iscsiadm: initiator reported error (19 - encountered non-retryable
iSCSI login failure)
You will probably need to recheck your login. Worse case, you can always
wiped the initiator config with:
iscsiadm -m discoverydb -t st -p 192.168.15.250 -o delete
From this point, when you established a successful ISCSI connect, you
will see the following in kernel buffer:
csi4 : iSCSI Initiator over TCP/IP
scsi 4:0:0:0: Direct-Access QNAP iSCSI Storage 3.1 PQ: 0 ANSI: 5
sd 4:0:0:0: [sda] 104857600 512-byte logical blocks: (53.6 GB/50.0
GiB)
sd 4:0:0:0: [sda] Write Protect is off
sd 4:0:0:0: [sda] Mode Sense: 2f 00 00 00
sd 4:0:0:0: [sda] Write cache: disabled, read cache: enabled,
doesn’t support DPO or FUA
sda: unknown partition table
sd 4:0:0:0: [sda] Attached SCSI disk
sd 4:0:0:0: Attached scsi generic sg0 type 0
If you see this, you are done. RHEL OS sees it as a regular block device
and configures it accordingly. You may now partition and format it for
production use.