首页 > 代码库 > 教你构建iSCSI服务器实现SAN存储模型

教你构建iSCSI服务器实现SAN存储模型

    iSCSI(Internet Small Computer System Interface)Internet 小型计算机系统接口,是一种基于 TCP/IP的协议,用来建立和管理 IP 存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得 SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。

    SCSI 结构基于客户/服务器模式,其通常应用环境是:设备互相靠近,并且这些设备由 SCSI 总线连接。iSCSI 的主要功能是在 TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。此外,iSCSI 提供了在 IP 网络封装 SCSI 命令,且运行在 TCP 上。

wKiom1PV-f3woVRnAAH_Vys5rW4049.jpg


实验环境:RHEL6.4

192.168.18.201 target

192.168.18.202 initiator


我们先来配置一个iSCSI 服务端。

1、安装服务端程序。

  • yum install scsi-target-utils -y

2、启动服务,随后添加一个target

  • /etc/init.d/tgtd start

  • tgtadm -L iscsi -m target -o new -t 1 -T iqn.2014-07.com.tuchao:tg1

3、给target添加一个存储(LUN)。

  • tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 -b /dev/sdb

4、开放给192.168.18.0/24网络中的主机访问。

  • tgtadm --lld iscsi --mode target --op bind --tid 1 -I 192.168.18.0/24

#其中的-I相当于--initiator-address

查看一下。

  • tgtadm --lld iscsi --mode target --op show

wKiom1PWAZGzAcdyAAKxUBVe9vo706.jpg

现在用客户端尝试连接使用,先安装程序。

yum install iscsi-initiator-utils -y

配置initiator名称

cd /etc/iscsi/

echo "InitiatorName=`iscsi-iname -p iqn.2014-07.com.tuchao`" > initiatorname.iscsi

发现设备,登录设备。

iscsiadm -m discovery -t sendtargets -p 192.168.18.201

iscsiadm -m node -T iqn.2014-07.com.tuchao:tg1 -p 192.168.18.201:3260 -l

这里显示success后表示登录成功,然后用fdisk -l 查看本地磁盘,会发现多了一块硬盘,可以分区格式化当作本地硬盘来使用了。


删除原先的配置。

先在initiator登出,然后删除连接。

iscsiadm -m node -T iqn.2014-07.com.tuchao:tg1 -p 192.168.18.201:3260 -u

iscsiadm -m node -T iqn.2014-07.com.tuchao:tg1 -p 192.168.18.201:3260 -o delete

rm -rf /var/lib/iscsi/send_targets/192.168.18.201,3260/

来到target端,解绑开放的网段,删除lun,删除target。

tgtadm --lld iscsi --mode target --op unbind  --tid 1 -I 192.168.18.0/24

tgtadm --lld iscsi  --mode logicalunit --op delete --tid 1 --lun 1

tgtadm --lld iscsi  --mode target --op delete --tid 1


配置CHAP(询问握手认证协议)

创建target,创建lun,绑定开放的网段。

tgtadm -L iscsi -m target -o new -t 1 -T iqn.2014-07.com.tuchao:chap1

tgtadm -L iscsi -m logicalunit -o new -t 1 -l 1 -b /dev/sdb

tgtadm -L iscsi -m target -o bind -t 1 -I 192.168.18.0/24

创建服务端帐号,并绑定某tid给予访问权限。(单向认证)

tgtadm --lld iscsi --mode account --op new --user tuchao --password 123456

tgtadm --lld iscsi --mode account --op bind --tid 1 --user tuchao

编辑initiator端配置文件

vim /etc/iscsi/iscsid.conf

wKioL1PWGPfQEuKEAAHGNskbRCg893.jpg

发现服务端设备,登录target。

iscsiadm -m discovery -t sendtargets -p 192.168.18.201

iscsiadm  -m node -T iqn.2014-07.com.tuchao:chap1 -p 192.168.18.201:3260 -l

这里登录成功了,截图略。

在原有的基础上配置为双向认证。

tgtadm --lld iscsi --mode account --op new  --user testuser --password redhat

tgtadm --lld iscsi --mode account --op bind --tid 1 --user testuser --outgoing

tgtadm -L iscsi -m target -o show

wKiom1PWHTfQKAATAAGPn9G0x2o380.jpg


如果initiator端已经登录过此target,此时还需要先注销登录后重启iscsid服务,并在删除此前生成的database后重新发现target,并重新登入。


iscsiadm -m node -T iqn.2010-8.com.example.ts:disk1 -p 192.168.0.11:3260 -u

iscsiadm -m node -T iqn.2010-8.com.example.ts:disk1 -p 192.168.0.11:3260 -o delete

rm -rf -rf /var/lib/iscsi/send_targets/192.168.0.11,3260

service iscsid restart


然后编辑iscsid.conf配置文件

wKioL1PWHnbgF3CRAAJ0GsjQJ0I711.jpg

这就好了,重新登录的方式和前面一样,略。


我们都知道这样用命令配置的是即刻生效但是重启就没有了,想要永久生效可以写到配置文件中。

刚刚做的配置可以这样写在文件里:

<target iqn.2014-07.com.tuchao:chap1>

        backing-store /dev/sdb

        initiator-address 192.168.18.0/24

        incominguser tuchao 123456

        outgoinguser testuser redhat

</target>


好了,总结完成,有更好的建议欢迎与我交流QQ:1183710107


本文出自 “坏人的博客” 博客,转载请与作者联系!