千家信息网

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

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,承接上文 ->http://11107124.blog.51cto.com/11097124/1884645被之前discovery的target信息会保存在此(discovery 的数据库)[roo
千家信息网最后更新 2025年02月05日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

#

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

lun 1

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

initiator-address 192.168.139.0/24


重启服务前要先让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,哪怕关机重启都可以自动创建

0