targetcli配置iSCSI

Posted 陆小呆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了targetcli配置iSCSI相关的知识,希望对你有一定的参考价值。

概述:这篇文章来介绍LIO下的用户态工具targetcli来配置iSCSI服务

虚拟机环境:centos7.x(内核版本3.10.0-862.el7.x86_64)

IP分别为192.168.1.200/201

 

targetcli安装

centos一般都自带了此工具,没有的话去官网下载,这里就不再介绍

 

快速创建IP-SAN

1.命令行输入targetcli进入交互界面,在交互界面可以使用ls,cd等命令灵活简单的操作,如图所示,最上层目录包括backstores、iscsi等,如果有FC或Infiniband的话,还会有其余的一些子模块如qla2xxx等

 

 

2.创建卷资源

使用cd进入/backstores/block目录,

cd backstores/block

然后创建卷资源,使用块设备/dev/sdb

create dev=/dev/sdb name=sdb

提示sdb设备正在被使用,重新选择/dev/sdc来创建卷资源,提示创建成功(readonly属性表示读写权限,wwn号为卷资源的唯一标号)

 

 

3.创建iSCSI

快速创建一个iSCSI服务的步骤如下:

a.首先创建一个iqn

b.在iqn下添加提供服务的IP以及需要映射的卷

c.设置认证

 操作如下:

这里介绍一个技巧,在交互界面输入cd,可以进入下图界面,可以灵活快速地跳到指定目录

 

接下来在iscsi目录下创建iqn

 

然后在iqn的对应目录下添加服务IP,映射卷和权限设置

 

 

initiator端发现:可以看到已经可以发现登录过来的逻辑卷

发现命令:iscsiadm -m discovery -t st -p IP

登录命令:在发现命令后面加入-l或者iscsiadm -m node -T IQN -l

登出命令:iscsiadm -m node -T IQN -u 如 iscsiadm -m node -T iqn.2018-10.hzhrinet.com:test -u

 

 iSCSI认证

iSCSI认证分为发现认证和登录认证,其中每种认证又分为单向认证和双向认证

发现认证和登录认证的意思就和名字一样

单向认证是指initiator端在发现target端的时候,要提供正确的认证才能发现在target端的iSCSI服务

双向认证是指在单向认证的基础上,target端需要正确设置initiator端设置的认证才能被initiator端发现

发现认证:

1.首先我们来看发现认证的默认属性,这是一个全局的设置

 

2.设置单向认证

首先在target端执行命令,设置单向认证

此时initiator端登录会出现认证错误,无法发现

这时我们需要设置initiator端的配置文件/etc/iscsi/iscsid.conf

此时再在initiator端发现,发现成功

 

3.设置双向认证(必须建立在单向认证的基础上)

首先在initiator端设置认证

 

然后在target端设置initiator的认证

 

 

PS:这里也可以不动配置文件,通过操作discoverydb来发现认证,首先我们看一下现在的数值

 

[root@nodeb ~]# iscsiadm -m discoverydb -t st -p node -o show
# BEGIN RECORD 6.2.0.874-10
discovery.startup = manual
discovery.type = sendtargets
discovery.sendtargets.address = node
discovery.sendtargets.port = 3260
discovery.sendtargets.auth.authmethod = None
discovery.sendtargets.auth.username = <empty>
discovery.sendtargets.auth.password = <empty>
discovery.sendtargets.auth.username_in = <empty>
discovery.sendtargets.auth.password_in = <empty>
discovery.sendtargets.timeo.login_timeout = 15
discovery.sendtargets.use_discoveryd = No
discovery.sendtargets.discoveryd_poll_inval = 30
discovery.sendtargets.reopen_max = 5
discovery.sendtargets.timeo.auth_timeout = 45
discovery.sendtargets.timeo.active_timeout = 30
discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768
# END RECORD

 

然后可以通过类似如下命令来修改值

 

iscsiadm -m discoverydb -t st -p node -o update -n discovery.sendtargets.auth.authmethod -v CHAP

 

然后执行

iscsiadm -m discoverydb -t st -p node -D

这里注意,iscsiadm -m discovery命令默认是从配置文件去获取的,所以如果执行了discovery命令,discoverydb的默认值又会被改回来

 

 

 

登录认证:

登录认证和发现认证类似,也是分为单向认证和双向认证,设置的方法和发现认证几乎一样

这里有几个注意的地方

1.generate_node_acls属性表示是否开启ACL,当为no-gen-acls的是否,initiator端的iqn号(/etc/iscsi/initiatorname.iscsi下)必须加入acl才能登陆

2.在tpg目录下打开认证set attribute authentication=1,作用类似发现认证的enable

在acl的iqn目录下设置用户和密码,操作类似发现认证

 

initiator端修改这些选项就可以了,和发现认证类似

 

 

参考:http://blog.51cto.com/zhuxu91313/2154819

以上是关于targetcli配置iSCSI的主要内容,如果未能解决你的问题,请参考以下文章

radhat7下使用targetcli为多个启动器配置iSCSI访问控制

ISCSI共享存储

iSCSI网络磁盘共享

CentOS7 搭建 iSCSI网络存储

通过iscsi配置网络存储

通过iscsi配置网络存储