早在《RH254小结(八)iscsi服务应用搭建》中有提到iscsi的搭建和使用,不过真正在现网使用iscsi协议的存储时,一般会配置chap认证以增加安全。chap是Challenge-Handshake Authentication Protocol的简写。chap认证又分为单向认证和双向认证。

一、单向认证

单向认证是仅initiator连接target时进行认证。这个配置比较简单,打开/etc/iscsi/iscsid.conf 文件,找到如下三项并取消注释:

1node.session.auth.authmethod = CHAP   //开启CHAP认证
2node.session.auth.username = redhat    //配置账号
3node.session.auth.password = redhat123  //密码

通过以下命令重启服务并生效:

1/etc/init.d/iscsid restart
23systemctl restart iscsid

上面的配置只是在开机自启动时会查找该配置中的信息,如果想要通过命令行测试用户名密码的有效性可以使用如下命令:

 1# 发现target
 2iscsiadm -m discovery -t sendtargets -p 10.131.131.150  //发现
 3iscsiadm -m node -T iqn.2006-08.com.huawei:oceanstor:10.131.131.150 -l   //登陆
 4iscsiadm -m node -o delete -T iqn.2006-08.com.huawei:oceanstor:10.131.131.150 //删除session
 5# 使用用户名密码
 6iscsiadm -m node -o update -p 10.131.131.150 -n node.session.auth.authmethod -v CHAP
 7iscsiadm -m node -o update -p 10.131.131.150 -n node.session.auth.username -v myusername
 8iscsiadm -m node -o update -p 10.131.131.150 -n node.session.auth.password -v mypassword
 9# 也可以使用下面的格式
10iscsiadm -m node -T iqn.2006-08.com.huawei:oceanstor:10.131.131.150 -o update --name node.session.auth.authmethod --value=CHAP
11iscsiadm -m node -T iqn.2006-08.com.huawei:oceanstor:10.131.131.150 --op update --name node.session.auth.username --value=myusername
12iscsiadm -m node -T iqn.2006-08.com.huawei:oceanstor:10.131.131.150 --op update --name node.session.auth.password --value=mypassword

连接后,可以使用如下命令查看连接状态:

1# 查看状态
2iscsiadm -m node
3iscsiadm -m node -o show
4# 查看连接后状态
5iscsiadm -m session -o show

上面的连接状态信息,也可以通过进入/var/lib/iscsi/ifaces/目录通过查看文件进行查看。对于已经连接过的session,可以使用如下命令删除该session:

1for iqn in `iscsiadm -m node|awk '{print $NF}'`;do iscsiadm -m node -T $iqn -u;done
2for iqn in `iscsiadm -m node|awk '{print $NF}'`;do iscsiadm -m node -o delete -T $iqn;done

二、双向认证

双向认证就是在Initiator端和target端都进行认证。Initiator 认证:在initiator尝试连接到一个target的时候,initator需要提供一个用户名和密码给target供target进行认证。下面我们称这个用户名密码为incoming账号,即:incoming账号是initiator端提供给target端,供target端认证的账号。target 认证:在initiator尝试连接到一个target的时候,target需要提供一个用户名和密码给initiator供initiator进行认证。与之对应的是outcoming账号,即:outcoming账号是target端提供给initiator端,供initiator认证的账号。双向认证的配置如下:

1# To set a CHAP username and password for initiator
2# authentication by the target(s), uncomment the following lines:
3node.session.auth.username = username
4node.session.auth.password = password
5# To set a CHAP username and password for target(s)
6# authentication by the initiator, uncomment the following lines:
7node.session.auth.username_in = username_in
8node.session.auth.password_in = password_in

三、有关多路径聚合

存储端一般会有多控,也就是可以由多个对应的IP可供discovery 和 login使用,比如一个两控的就会使用如下的方式进行挂载:

1# iscsiadm -m node -p <存储系统A控iSCSI主机端口的IP-A> -l
2# iscsiadm -m node -p <存储系统B控iSCSI主机端口的IP-B> -l

接下来可以使用多路径软件进行聚合,这里以multipath为例,使用如下指令生成配置文件并重启服务生效。

1# mpathconf --enable
2# mpathconf --with_module y
3# mpathconf --with_multipathd y

具体可以参考:multipath多路径配置