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

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

命令行的实现: 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---用主机名作标识好记忆。 命令行实现: targetcli /iscsi create iqn.2018-08.co.zhuxu:target 7,为target server portal创建一个网络监听信息{portal} 以发现target 命令实现: 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关联后端存储) 命令实现: 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} 命令实现: 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 2,查看iscsi-initiator-utils软件包有没有安装(默认是安装的)如果没有安装yum install -y iscsi-initiator-utils 安装即可 3,开启iscsi服务,开启开机自启动。 4,修改iqn 5,发现target 的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 此时,fdisk -l 会发现多出来一块磁盘。你可以对着磁盘分区,格式化挂载等操作。 7,登出target(临时取消对target的iscsi的访问,如果重启服务,依然能发现有一块磁盘)

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


配置chap认证 target服务器端 1,配置发现认证discovery authentication 1.1单向认证(target服务器认证initiator) 1.2双向认证(target服务器端和inititor客户端互相认证)

initiator客户端 1,配置发现认证discovery authentication 1.1单向认证配置 1.2双向认证配置

2.normal 认证 target服务器端配置 normal认证和discovery认证类似。都分为单向认证和双向认证。 配置方法:

initiator客户端配置