首页 > 代码库 > iSCSI之基于用户的认证及基于配置文件创建iSCSI

iSCSI之基于用户的认证及基于配置文件创建iSCSI

承接上文 ->http://11107124.blog.51cto.com/11097124/1884645 


被之前discovery的target信息会保存在此(discovery 的数据库)

[root@node2 mnt]# cd /var/lib/iscsi/

[root@node2 iscsi]# ls

ifaces  isns  nodes  send_targets  slp  static

[root@node2 iscsi]# ls send_targets/

[root@node2 mnt]# ls /var/lib/iscsi/send_targets/192.168.139.2,3260/

iqn.2016-12.com.zxl:store1.disk1,192.168.139.2,3260,1,default  st_config

192.168.139.2,3260

http://11107124.blog.51cto.com/11097124/1884645

更多关于iSCSI配置在这里

[root@node2 iscsi]# vim  /etc/iscsi/iscsid.conf

node.startup = automatic \\节点开启式自动启动

# CHAP Settings \\与CHAP双向认证有关的设置

#node.session.auth.authmethod = CHAP

# To set a CHAP username and password for initiator\\server对client端进行认证时的账号和密码

#node.session.auth.username = username \\

#node.session.auth.password = password


# To set a CHAP username and password for target\\client对server认证时的账号和密码

#node.session.auth.username_in = username_in

#node.session.auth.password_in = password_in


下面则是一般用系统默认的与各种关于时间的定以,一般用系统默认便可以,很少改

node.session.timeo.replacement_timeout = 120

node.conn[0].timeo.login_timeout = 15 \\登入超时时间

node.conn[0].timeo.logout_timeout = 15 \\登出超时时间

node.conn[0].timeo.noop_out_interval = 5 \\登出时间间隔

node.conn[0].timeo.noop_out_timeout = 5 \\登出时间

node.session.err_timeo.abort_timeout = 15 \\session会话时间


下面开始定义关于基于用户的认证

首先进行登出target关联的LUN

[root@node2 iscsi]# iscsiadm -m node -T iqn.2016-12.com.zxl:store1.disk1 -p 192.168.139.2 -u

Logging out of session [sid: 1, target: iqn.2016-12.com.zxl:store1.disk1, portal: 192.168.139.2,3260]

Logout of [sid: 1, target: iqn.2016-12.com.zxl:store1.disk1, portal: 192.168.139.2,3260] successful.

[root@node2 iscsi]# fdisk -l \\可以发现/dev/sdc盘不见了

但是discovery 的数据库仍然在,只要开机后iscsi服务一启动,它会自动登录discovery数据库中早已发现的target


直接删除discovery的数据库

[root@node2 iscsi]# iscsiadm -m node -T iqn.2016-12.com.zxl:store1.disk1 -p 192.168.139.2 -o delete

[root@node2 iscsi]# ls /var/lib/iscsi/send_targets/192.168.139.2,3260/

st_config  \\192.168.139.2,3260目录下已近没有了记录数据,将这个目录页删了

[root@node2 iscsi]# rm -rf /var/lib/iscsi/send_targets/192.168.139.2,3260/


先创建一个server对client认证的账号,并与target的tid绑定


[root@node1 ~]# tgtadm --lld iscsi --mode account --op new --user zxl --password 888

创建的用户为:zxl 密码:888

[root@node1 ~]# tgtadm --lld iscsi --mode account --op bind --tid 1 --user zxl

[root@node1 ~]# tgtadm --lld iscsi --mode target --op show 

 Account information:

        zxl

 ACL information:

        192.168.139.0/24

[root@node2 iscsi]# vim /etc/iscsi/iscsid.conf \\开启以下3项

node.session.auth.authmethod = CHAP

node.session.auth.username = zxl

node.session.auth.password = 888


[root@node2 iscsi]# iscsiadm  -m discovery -t st -p 192.168.139.2

192.168.139.2:3260,1 iqn.2016-12.com.zxl:store1.disk1

OK,可以发现,进行target登录

root@node2 iscsi]# iscsiadm -m node -T iqn.2016-12.com.zxl:store1.disk1 -p 192.168.139.2 -l

Login to [iface: default, target: iqn.2016-12.com.zxl:store1.disk1, portal: 192.168.139.2,3260] successful.

OK,登入成功

[root@node2 iscsi]# fdisk -l \\但是变成sdd了,sdc被上次登入使用,信息未清除

Disk /dev/sdd: 5379 MB, 5379300864 bytes

[root@node2 iscsi]# mount /dev/sdd1 /mnt

[root@node2 iscsi]# cd /mnt

[root@node2 mnt]# ll \\挂载后可以看到文件都在

total 20

-rw-r--r--. 1 root root    47 Dec 21 10:28 issue

drwx------. 2 root root 16384 Dec 21 10:27 lost+found


用node4试试,先删除node4的discovery数据库

[root@node4 mnt]# iscsiadm -m node -T iqn.2016-12.com.zxl:store1.disk1 -p 192.168.139.2 -u

[root@node4 mnt]#  iscsiadm -m node -T iqn.2016-12.com.zxl:store1.disk1 -p 192.168.139.2 -o delete

[root@node4 mnt]#  ls /var/lib/iscsi/send_targets/192.168.139.2,3260/

st_config

[root@node4 mnt]# rm -rf /var/lib/iscsi/send_targets/192.168.139.2,3260/


此时还没有对node4的配置文件进行修改看能不能发现并登入

root@node4 mnt]#  iscsiadm  -m discovery -t st -p 192.168.139.2

192.168.139.2:3260,1 iqn.2016-12.com.zxl:store1.disk1

[root@node4 mnt]# iscsiadm -m node -T iqn.2016-12.com.zxl:store1.disk1 -p 192.168.139.2 -l

iscsiadm: initiator reported error (24 - iSCSI login failed due to authorization failure)

iscsiadm: Could not log into all portals

可以看到能发现但是不能登入

[root@node2 iscsi]# vim /etc/iscsi/iscsid.conf \\开启以下3项

node.session.auth.authmethod = CHAP

node.session.auth.username = zxl

node.session.auth.password = 888

[root@node4 mnt]# service iscsi restart

[root@node4 mnt]# iscsiadm -m node -T iqn.2016-12.com.zxl:store1.disk1 -p 192.168.139.2 -l

Login to [iface: default, target: iqn.2016-12.com.zxl:store1.disk1, portal: 192.168.139.2,3260] successful.

登入成功


iscsi-initiator-utils 不支持discovery(用账号密码认证时不能用discovery发现),必须首先开放IP认证才能discovery,然后才能用账号密码登入发现的target


如何关机重启tgtd服务后自动创建target和lun?

通过编辑配置文件的方法


[root@node1 ~]# cp /etc/tgt/targets.conf /etc/tgt/targets.conf.bak \\先备份文件

[root@node1 ~]# vim /etc/tgt/targets.conf \\进行如下编辑

#    backing-store /dev/LVM/somedevice

#</target>

<target iqn.2016-12.com.zxl:store1.disk1>

  backing-store /dev/sdb1 \\如果有多个盘这项可以重复

  lun 1

  incominguser zxl 888 \\incominguser对server来说对client进行用户认证为                              \\incoming,outgoinguser为client对server认证

  initiator-address 192.168.139.0/24

</target>


重启服务前要先让client的登入退出

[root@node2 mnt]# iscsiadm -m node -T iqn.2016-12.com.zxl:store1.disk1 -p 192.168.139.2 -u

[root@node4 mnt]# iscsiadm -m node -T iqn.2016-12.com.zxl:store1.disk1 -p 192.168.139.2 -u

[root@node1 ~]# service tgtd restart

Stopping SCSI target daemon:                               [  OK  ]

Starting SCSI target daemon:                               [  OK  ]

[root@node1 ~]# tgtadm --lld iscsi --mode target --op show 

Target 1: iqn.2016-12.com.zxl:store1.disk1

    System information:

        Driver: iscsi

        State: ready

    I_T nexus information:

    LUN information:

        LUN: 0

            Type: controller

            SCSI ID: IET     00010000

            SCSI SN: beaf10

            Size: 0 MB, Block size: 1

            Online: Yes

            Removable media: No

            Prevent removal: No

            Readonly: No

            Backing store type: null

            Backing store path: None

            Backing store flags: 

    Account information:

        zxl

    ACL information:

       192.168.139.0/24

[root@node2 mnt]# iscsiadm -m node -T iqn.2016-12.com.zxl:store1.disk1 -p 192.168.139.2 -u

Logout of [sid: 2, target: iqn.2016-12.com.zxl:store1.disk1, portal: 192.168.139.2,3260] successful.

登入成功

可以看到根据配置文件定义的/usr/sbin/tgt-admin命令自动建好了target和lun,哪怕关机重启都可以自动创建

本文出自 “11097124” 博客,请务必保留此出处http://11107124.blog.51cto.com/11097124/1884811

iSCSI之基于用户的认证及基于配置文件创建iSCSI