iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。众多详细资料找百度百科。真正的iSCSI是一个高性能的硬件产品,本内容只是通过linux来实现此功能。

iSCSI这个架构主要是讲存储设备与使用主机分为两部分,分别是:

iSCSI target : 就是存储设备端,存放磁盘或RAID的设备,目前也能够将linux主机仿真成为iSCSI target了,目的在于提供其他主机使用的磁盘。

iSCSI initiator:就是能够使用target的客户端,通常是服务器。也就是说,想要连接到iSCSI target的服务器,也必须要安装iSCSI initiator的相关功能后才能够使用iSCSI target提供过的磁盘。

iSCSI服务基础配置(iSCSItarget)

iSCSI其实就是通过一个网络接口,将现有的磁盘共享出去。可以共享的磁盘类型:

1、 大型文件(由dd命令所创建)

2、 单一分区

3、 单一设备(磁盘、软件磁盘阵列、lvm)

服务器安装的软件:scsi-target-utils

yum –y installscsi-target-utils

服务器端创建要共享的磁盘:

[root@student liang]# ddif=/dev/zero of=/home/liang/scsi bs=1M count=500    //使用dd创建一个大文件

[root@student liang]#fdisk -l  #找个不用的硬盘分好区,不用格式化,如sd1

修改配置文件/etc/tgt/targets.conf

命名格式一般为:iqn.年-月.网络名称反转写法.共享的target名称

<targetiqn.2014-03.com.example:scsiserver>

///我的主机名为robo.example.com 。scsiserver是target名称

backing-store/etc/sdb1      ///根文件

backing-store /dev/server/scsilv                 // sda5lvm 磁盘

backing-store/dev/sda6                        // sda6 普通磁盘

initiator-address192.168.0.0/24     //限制能够使用的地址

incominguser   scsiuser scsipasswd  //创建的用户和密码 ,允许客户端连接输入用户和密码

write-cache off     //关闭缓存,如果数据重要建议关闭缓存

</target>
启动iSCSI target 服务

[root@student liang]#/etc/init.d/tgtd restart

停止 SCSI target daemon:                                 [确定]

正在启动 SCSI target daemon:                             [确定]

tgtadm: invalid request

Command:

tgtadm –lld iscsi –op new –mode logicalunit –tid 1 –lun 3 -b /home/liang/scsi

exited with code: 22.

启动出现以上显示的问题,查看日志信息提示/home/liang/scsi这个文件没有权限,我们可以设置selinux关闭或者修改selinux规则。

[root@student liang]#chkconfigtgtd on

查看相关配置信息

[root@student liang]# tgt-admin –show  //查看显示是否正确。

 

防火墙设置

[root@student liang]#iptables –A INPUT –p tcp –s 192.168.0.0/24 –dport 3260 -j –ACCEPT

 

客户端配置(iSCSI initiator)

安装软件:iscsi-initiator-utils

修改配置文件/etc/iscsi/iscsid.conf

[root@www ~]# vim/etc/iscsi/iscsid.conf

node.session.auth.username =scsiuser         //连接时

node.session.auth.password =scsipasswd

 

discovery.sendtargets.auth.username= scsiuser     //检测时

discovery.sendtargets.auth.password= scsipasswd

客户端需要启动的服务有两个

[root@www ~]# chkconfig iscsid on

[root@www ~]# chkconfig iscsi on

 

[root@www ~]# iscsiadm -mdiscovery -t sendtargets -p 192.168.0.8:3260  //检测

192.168.0.8:3260,1iqn.2014-03.com.example:scsiserver

 

[root@www ~]# iscsiadm -mnode     ///找出本机上检测到的target

192.168.0.8:3260,1 iqn.2014-03.com.example:scsiserver

 

看到上面就是发现到的磁盘,想怎么用就怎么用Ok。

[root@www ~]# iscsiadm -m node -Tiqn.2014-03.com.example:scsiserver –logout

//这个是退出登录

[root@www ~]# iscsiadm -m node –o[delete|new|update] -T iqn.2014-03.com.example:scsiserver

-o delete  删除后面接的那台target

-o update  更新相关的信息

-o new 增加一个新的target

测试:

1、将target上共享出来的磁盘分区格式化,挂在到iSCSI initiator上,存储数据。

2、取消挂载,退出登录,重新登录,可以直接挂载,数据仍然存在。

3、将target上大文件删掉,initiator磁盘仍存在数据仍在,但是不能重启target服务器,重启之后,initiator大文件磁盘就会消失,数据消失。