实验环境:两台虚拟机,系统为redhat7.0以上(本文使用redhat 7.5)
第一台虚拟ip地址为ip:192.168.0.118/24 gw:192.168.0.1 hostname:target.zhuxu.co ---主机名很关键。
第二台虚拟机ip地址为192.168.0.119/24 gw:192.168.0.1 hostname:initiator.zhuxu.co
两台虚拟机配置好yum 源。

一,target 服务器端配置
1,修改主机名为target.zhuxu.co(修改完成后断开,重新连接)
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
2,安装所需要的软件包
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
3,设置target开机自动启动和启动targetredhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
4,防火墙放行target 监听端口(默认为3260/tcp)
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
5,targetcli命令有两种模式,一种是交互式模式,一种是命令行模式。输入targetcli 回车就进入交互式模式,进入交互式模式可以使用ls,pwd,cd等命令
iredhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
本文以交互式做介绍,附带命令行的写法:targetcli ls
注解:后端存储介绍
o- backstores ...........
| o- block .......block:块设备,b,可以是磁盘驱动器,分区,逻辑卷,多路径设备,只要块设备都可以。
| o- fileio ......文件(镜像img),根据一个事先准备的文件,提供存储功能.
| o- pscsi ......物理scsi设备,不推荐使用
| o- ramdisk .....内存存储,利用内存当做存储。

5,创建物理磁盘结构作为target后端的物理存储(事先已经创建好了一个100M LV做备用)

redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
命令行的实现:
targetcli /backstores/block create name=datastore dev= /dev/iscsi_vg/iscsi_lv
6,为target server 创建IQN,自动创建一个默认的target portal.
注解:iqn的命令规则:iqn.yyyy-MM.域名反向书写:自定义
例如:iqn.2018-08.co.zhuxu:target---用主机名作标识好记忆。
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
命令行实现:
targetcli /iscsi create iqn.2018-08.co.zhuxu:target
7,为target server portal创建一个网络监听信息{portal} 以发现target
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
命令实现:
targetcli /iscsi/iqn.2018-08.co.zhuxu:target/tpg1/portals delete 0.0.0.0 3260
targetcli /iscsi/iqn.2018-08.co.zhuxu:target/tpg1/portals create 192.168.0.118
8,创建LUM代表设备(LUN关联后端存储)
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
命令实现:
targetcli /iscsi/iqn.2018-08.co.zhuxu:target/tpg1/luns create /backstores/block/datastore
9,配置ACL(可以不用配置,也可以使用)
ACL(访问控制列表)必须要和initiator端/etc/iscsi/initiatorname.iscsi里iqn名字保持一致。否则拒绝访问。
ACL默认是关闭的,需要手动开启。通过设置generate_node_acls={0|1}
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
命令实现:
targetcli /iscsi/iqn.2018-08.co.zhuxu:target/tpg1/acls create iqn.2018-08.co.zhuxu:initiator

targetcli /iscsi/iqn.2018-08.co.zhuxu:target/tpg1 set attribute generate_node_acls=1

target服务器端配置完成。

客户端配置
1,修改主机名为initiator.zhuxu.co
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
2,查看iscsi-initiator-utils软件包有没有安装(默认是安装的)如果没有安装yum install -y iscsi-initiator-utils 安装即可
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
3,开启iscsi服务,开启开机自启动。
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
4,修改iqn
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
5,发现target 的iscsi设备。
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
发现的target 信息会保存在/var/lib/iscsi/node 目录下
注解:
iscsiadm iscsi的管理程序

-m --mode指定模式,发现为discovery,登陆为node节点模式,session

-l --login登陆

-t --type 一般为sendtarget,简写为st

-o --op=op 指定选项,new delete update show nonpersistent

可以用-o delete 对已存在的node进行删除

-p --portal 指定入口 可以为IP地址或者域名

-P n 指定输出详细信息,[0|1|2|3],有四种格式可选

-u --logout 登出

-T --targetname=targetanme 指定要使用的服务器端的target名称,有时候服务器端创建了多个target,iqn.2015-10.com.example:

6,登录target
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
此时,fdisk -l 会发现多出来一块磁盘。你可以对着磁盘分区,格式化挂载等操作。
7,登出target(临时取消对target的iscsi的访问,如果重启服务,依然能发现有一块磁盘)
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。

8,如果不想访问target的iscsi设备(如果在重启服务,则不会出现发现的磁盘)
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
实际上这条命令就是删除/var/lib/iscsi/node/目录下对应的信息。


配置chap认证
target服务器端
1,配置发现认证discovery authentication
1.1单向认证(target服务器认证initiator)
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
1.2双向认证(target服务器端和inititor客户端互相认证)
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。

initiator客户端
1,配置发现认证discovery authentication
1.1单向认证配置
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。
1.2双向认证配置
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。

2.normal 认证
target服务器端配置
normal认证和discovery认证类似。都分为单向认证和双向认证。
配置方法:redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。

initiator客户端配置
redhat 7实现基于chap认证的iscsi,包括发现认证,和正常认证。