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大文件磁盘就会消失,数据消失。