专栏首页WalkingCloudCentOS6下配置基于CHAP认证的iSCSI网络存储服务

CentOS6下配置基于CHAP认证的iSCSI网络存储服务

之前有简单介绍过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

加入如下配置

<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课程讲解+笔记整理

本文分享自微信公众号 - WalkingCloud(WalkingCloud2018)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Harbor企业级实践丨20倍性能提升so easy!

    ? 本文作者 / 阿杜 玩Docker,玩K8s,玩Harbor 爱技术,爱运动,爱生活 “K8s&云原生技术开放日”特邀讲师 本文内容源于“K8s&云原生技...

    腾讯云TStack
  • Smart Template component rendering process - part 1 till xml view creation

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    Jerry Wang
  • Linux软链接与硬链接实战解析

    一般情况下,文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。

    公众号guangcity
  • 有赞前端质量保障体系

    最近一年多一直在做前端的一些测试,从小程序到店铺装修,基本都是纯前端的工作,刚开始从后端测试转为前端测试的时候,对前端东西茫然无感,而且团队内没有人做过纯前端的...

    测试开发社区
  • PWA---新生代手机APP

    最近公司里让我研究PWA,经过几天的研究发现PWA竟是如此万能,功能接近手机原生APP,最大的优点是它的离线缓存机制,这主要得益于ServiceWorker!

    我被狗咬了
  • redis数据结构及内部编码-hash数据结构

    在讲redis的hash数据结构之前我们先了解下skiplist Wikipedia给出的解释如下: 跳跃列表(skiplist)是一种数据结构。它允许快速查询...

    jasonlu
  • 一篇文章搞懂「一致性哈希」

    在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求,起到负载均衡的作用。我们常想到的...

    程序员小强
  • Asyncio---Python牛不牛就靠你了

    之前在看gevent的时候不小心又看到了这个模块,gevent其实并不是python官方的标准库,有一些缺陷,所以这个时候Asyncio出现了。

    我被狗咬了
  • 【腾讯云Serverless】Github Actions自动部署云函数

    Github Actions是Github近来推出的新功能,能够自动化构建,部署我们的github项目。

    Juli
  • 关于W3Cschool定义的设计模式--常用的9种设计模式的介绍

      tip:每种设计模式,其实都是为了更高效的,更方便的解决在面对对象编程中所遇到的问题。

    用户6050340

扫码关注云+社区

领取腾讯云代金券