之前有简单介绍过iscsi网络存储的基本配置CentOS配置iSCSI网络存储服务,下面再详细介绍iSCSI服务端与客户端的常用命令tgtadm和iscsiadm,以及如何配置基于CHAP认证的iSCSI网络存储服务
一、基于下面的简单拓扑图
服务端10.20.10.139将/dev/sda6作为iscsi共享存储介质
二、iscsi-target服务端配置
1、安装iscsi服务端:
yum -y install scsi-target-utils
service tgtd start
chkconfig tgtd on
netstat -tnlp | grep 3260
2、服务端配置管理工具tgtadm的使用:
tgtadm --lld driver --op operation --mode mode...
(1)、添加一个新的 target 且其ID为 id, 名字为 name.
--lld driver --op new --mode target --tid=id --targetname name
(2)、显示所有或某个特定的target:
--lld driver --op show --mode target [--tid=id]
(3)、向某ID为id的设备上添加一个新的LUN,其号码为lun,且此设备提供给initiator使用。path是某“块设备”的路径,此块设备也可以是raid或lvm设备。lun0已经被系统预留。
--lld driver --op new --mode=logicalunit --tid=id --lun=lun --backing-store path
(4)、删除ID为id的target:
--lld driver --op delete --mode target --tid=id
(5)、删除target id中的LUN lun:
-lld driver --op delete --mode=logicalunit --tid=id --lun=lun
(6)、定义某target的基于主机的访问控制列表,其中,address表示允许访问此target的initiator客户端的列表:
--lld driver --op bind --mode=target --tid=id --initiator-address=address
(7)、解除target id的访问控制列表中address的访问控制权限:
--lld driver --op unbind --mode=target --tid=id --initiator-address=address
例如:
1)创建一个target:
tgtadm --lld iscsi --mode target --op new --targetname iqn.2019-10.cn.walkingcloud:storage.disk --tid 1
tgtadm --lld iscsi --op show --mode target
2)创建LUN,号码为1
tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sda6
3)只开放给10.20.10.0/23网络中的主机访问
tgtadm --lld iscsi --mode target --op bind --tid=1 --initiator-address 10.20.10.0/23
4)创建账户
tgtadm --lld iscsi --op new --mode account --user admin --password admin@2019
5)将账户和target绑定
tgtadm --lld iscsi --op bind --mode account --tid 1 --user admin
man tgtadm 查看CHAP认证的相关命令
三、iscsi-initiator客户端配置
1、yum install iscsi-initiator-utils安装客户端工具并开启服务
yum install iscsi-initiator-utils
iscsi-iname
echo "InitiatorName=iqn.2019-10.node1.cn.walkingcloud:iscsi-client" > /etc/iscsi/initiatorname.iscsi
cat /etc/iscsi/initiatorname.iscsi
service iscsi start
chkconfig iscsi on
2、iscsiadm工具的使用:
iscsiadm是个模式化的工具,其模式可通过-m或--mode选项指定,常见的模式有discoverydb、node、fw、session、host、iface几个,
如果没有额外指定其它选项,则discoverydb和node会显示其相关的所有记录;
session用于显示所有的活动会话和连接,
fw显示所有的启动固件值,
host显示所有的iSCSI主机,
iface显示/var/lib/iscsi/ifaces目录中的所有ifaces设定。
iscsiadm -m discovery -d debug_level [ -I iface -t type -p ip:port -l ]
iscsiadm -m node -d debug_level -L all,manual,automatic [ -T tar-getname -p ip:port -I iface ] [ -o operation
-d, --debug=debug_level 显示debug信息,级别为0-8;
-l, --login
-t, --type=type 这里可以使用的类型为sendtargets(可简写为st)、slp、fw和 isns,此选项仅用于discovery模式,且目前仅支持st、fw和isns;其中st表示允许每个iSCSI target发送一个可用target列表给initiator;
-p, --portal=ip:port 指定target服务的IP和端口;
-m, --mode op 可用的mode有discovery, node, fw, host iface 和 session
-T, --targetname=targetname 用于指定target的名字
-u, --logout
-o, --op=OPEARTION:指定针对discoverydb数据库的操作,其仅能为new、delete、update、show和nonpersistent其中之一;
-I, --interface=iface:指定执行操作的iSCSI接口,这些接口定义在/var/lib/iscsi/ifaces中;
3、登录到target目标的操作步骤
1)发现目标:iscsiadm -m discovery -t sendtargets -p 10.20.10.139
2)登录iscsiadm -m node -T iqn.2019-10.cn.walkingcloud:storage.disk -p 10.20.10.139 -l
因为开启了CHAP认证,所以这时登录失败
3)、更新登录参数后, 再进行登录
root@node1 ~# iscsiadm -m node -T iqn.2019-10.cn.walkingcloud:storage.disk -p 10.20.10.139 -o update --name=node.session.auth.authmethod --value=CHAP
root@node1 ~# iscsiadm -m node -T iqn.2019-10.cn.walkingcloud:storage.disk -p 10.20.10.139 -o update --name=node.session.auth.username --value=admin
root@node1 ~# iscsiadm -m node -T iqn.2019-10.cn.walkingcloud:storage.disk -p 10.20.10.139 -o update --name=node.session.auth.password --value=admin@2019
root@node1 ~# iscsiadm -m node -T iqn.2019-10.cn.walkingcloud:storage.disk -p 10.20.10.139 -l
4)、查看会话相关信息:
iscsiadm -m session -s
5)如果initiator端已经登录过此target,此时还需要先注销登录后重启iscsid服务,并在删除此前生成的database后重新发现target,并重新登入
iscsiadm -m node -T iqn.2019-10.cn.walkingcloud:storage.disk -p 10.20.10.139 -u
iscsiadm -m node -T iqn.2019-10.cn.walkingcloud:storage.disk -p 10.20.10.139 -o delete
rm -rf /var/lib/iscsi/nodes/
rm -rf /var/lib/iscsi/send_targets/10.20.10.139,3260/
service iscsid restart
四、服务端 客户端配置文件修改
1、服务端
cd /etc/tgt/
cp targets.conf targets.conf_bak_default
vi targets.conf
加入如下配置
代码语言:javascript复制<target iqn.2019-10.cn.walkingcloud:storage.disk>
<backing-store /dev/sda6>
vendor_id storage
lun 1
</backing-store>
initiator-address 10.20.10.0/23
incominguser admin admin@2019
</target>
2、客户端
cd /etc/iscsi/
cp iscsid.conf iscsid.conf_bak_default
vi iscsid.conf
取消如下项的注释:
node.session.auth.authmethod = CHAP
node.session.auth.username = admin
node.session.auth.password = admin@2019
修改完成后service iscsid restart重启服务,进行发现和登录target操作
重启后也会自动登录挂载iscsi存储
当然上面介绍的只是CHAP单向认证,未涉及双向认证,本文基于马哥教育的iscsi课程讲解 笔记整理