首页 > 代码库 > 教你构建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 上。
实验环境: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
现在用客户端尝试连接使用,先安装程序。
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
发现服务端设备,登录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
如果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配置文件
这就好了,重新登录的方式和前面一样,略。
我们都知道这样用命令配置的是即刻生效但是重启就没有了,想要永久生效可以写到配置文件中。
刚刚做的配置可以这样写在文件里:
<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
本文出自 “坏人的博客” 博客,转载请与作者联系!