iSCSI,即internet SCSI,又称为IP-SAN,是IETF制订的一项标准,用于将SCSI数据块映射成以太网数据包。iSCSI是一种基于TCP/IP 的协议,用来建立和管理IP存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。SCSI 结构基于C/S模式,其通常应用环境是:设备互相靠近,并且这些设备由SCSI 总线连接。
iSCSI 的主要功能是在TCP/IP 网络上的主机系统(启动器 initiator)和存储设备(目标器 target)之间进行大量数据的封装和可靠传输过程。
从根本上说,iSCSI协议是一种跨过IP网络来传输潜伏时间短的SCSI数据块的方法。
完整的iSCSI系统的拓扑结构如下:
与传统的SCSI技术比较起来,iSCSI技术有以下三个革命性的变化:
把原来只用于本机的SCSI协同透过TCP/IP网络传送,使连接距离可作无限的地域延伸;
连接的服务器数量无限(原来的SCSI-3的上限是15);
由于是服务器架构,因此也可以实现在线扩容以至动态部署。
ISCSI的协议结构:
--------------------------------------分割线--------------------------------------
CentOS 6.4挂载iSCSI网络存储
基于RHCS+iSCSI+CLVM实现Web服务的共享存储集群架构
Citrix XenServer中安装CentOS 6.0并配置iSCSI服务
--------------------------------------分割线--------------------------------------
二,搭建基于 IP SAN 的 ISCSI 存储系统
规划:
环境: CentOS 6.6 32位
服务器端 IP: 192.168.1.43
客户端 IP : 192.168.1.111
共享磁盘: /dev/sdb
1,配置服务器端
[root@localhost ~]# yum -y install scsi-target-utils #安装服务器端软件
[root@node1 iscsi]# rpm -ql scsi-target-utils
/etc/rc.d/init.d/tgtd
/etc/sysconfig/tgtd
/etc/tgt/targets.conf #配置文件
/usr/sbin/tgt-admin
/usr/sbin/tgt-setup-lun
/usr/sbin/tgtadm
/usr/sbin/tgtd
/usr/sbin/tgtimg
/usr/share/doc/scsi-target-utils-1.0.24
/usr/share/doc/scsi-target-utils-1.0.24/README
/usr/share/doc/scsi-target-utils-1.0.24/README.iscsi
/usr/share/doc/scsi-target-utils-1.0.24/README.iser
/usr/share/doc/scsi-target-utils-1.0.24/README.lu_configuration
/usr/share/doc/scsi-target-utils-1.0.24/README.mmc
/usr/share/man/man5/targets.conf.5.gz
/usr/share/man/man8/tgt-admin.8.gz
/usr/share/man/man8/tgt-setup-lun.8.gz
/usr/share/man/man8/tgtadm.8.gz
[root@localhost ~]# lsmod |grep scsi
mptscsih 31330 1 mptspi
mptbase 86744 2 mptspi,mptscsih
scsi_transport_spi 19726 1 mptspi #高级驱动程序
iscsi可以使用命令或配置文件进行配置,我们首先使用命令行来进行配置:
[root@node1 iscsi]# service tgtd start
Starting SCSI target daemon: [ OK ]
[root@node1 iscsi]# ss -tlnp |grep 3260 #其监听在3260端口
LISTEN 0 128 :::3260 :::* users:(("tgtd",11882,5),("tgtd",11885,5))
LISTEN 0 128 *:3260 *:* users:(("tgtd",11882,4),("tgtd",11885,4))
[root@localhost ~]# tgtadm -L iscsi -o new -m target -t 1 -T iqn.2015-08.com.feiyu.testsan:1 #创建一个target,-t指定TID,-T指定名称
iqn表示“ISCSI Qualified Name”,简称iqn。
[root@localhost ~]# tgtadm -L iscsi -o show -m target
Target 1: iqn.2015-08.com.feiyu.testsan:1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
Account information:
ACL information:
然后设定LUN(Logical Unit Number,逻辑单元号),服务器端只需要创建好分区,不需要格式化:
[root@localhost ~]# tgtadm -L iscsi -o new -m logicalunit -t 1 -l 1 -b /dev/sdb5 #创建一个LUN,-m表示模式,-l :LUN ,-b: 设备
[root@localhost ~]# tgtadm -L iscsi -o bind -m target -t 1 -I 192.168.0.0/16
[root@node1 iscsi]# tgtadm -L iscsi -o show -m target
Target 1: iqn.2015-08.com.feiyu.testsan:1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 2107 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/sdb5
Backing store flags:
Account information:
ACL information:
[root@node1 iscsi]# tgtadm -L iscsi -o bind -m target -t 1 -I 192.168.0.0/16 #设定共享区
[root@node1 iscsi]# tgtadm -L iscsi -o show -m target
Target 1: iqn.2015-08.com.feiyu.testsan:1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 2107 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/sda5
Backing store flags:
Account information:
ACL information:
192.168.0.0/16
[root@localhost ~]# tgtadm -L iscsi -o new -m logicalunit -t 1 -l 2 -b /dev/sdb6 #绑定第二个LUN
2,配置客户端
[root@node1 ~]# yum install -y iscsi-initiator-utils #安装客户端
[root@node1 iscsi]# echo "InitiatorName=`iscsi-iname -p iqn.2013-05.com.feiyu`" > /etc/iscsi/initiatorname.iscsi #生成iqn
[root@node1 iscsi]# echo "InitiatorAlias=initiator1" >> /etc/iscsi/initiatorname.iscsi #定义别名
[root@node1 iscsi]# ls
initiatorname.iscsi iscsid.conf
[root@node1 iscsi]# cat initiatorname.iscsi #查看所定义的数据
InitiatorName=iqn.2015-08.com.feiyu:10834bd52221
InitiatorAlias=initiator1
[root@node1 ~]# service iscsi start #启动服务,需要启动两个服务
[root@node1 ~]# service iscsid start
[root@node1 ~]# chkconfig iscsi on
[root@node1 ~]# chkconfig iscsid on
若出现以下错误,可能由于服务器端的防火墙没有关!
[root@node1 ~]# iscsiadm -m discovery -t st -p 192.168.1.43
Starting iscsid: [ OK ]
iscsiadm: cannot make connection to 192.168.1.43: No route to host
[root@node1 ~]# iscsiadm -m discovery -t st -p 192.168.1.43 #进行探测
192.168.1.43:3260,1 iqn.2015-08.com.feiyu.testsan:1
[root@node1 ~]# iscsiadm -m node -T iqn.2015-08.com.feiyu.testsan:1 -p 192.168.1.43 -l #登录节点
Logging in to [iface: default, target: iqn.2015-08.com.feiyu.testsan:1, portal: 192.168.1.43,3260] (multiple)
Login to [iface: default, target: iqn.2015-08.com.feiyu.testsan:1, portal: 192.168.1.43,3260] successful.
[root@node1 ~]# fdisk -l #登录成功可以看到多了一块硬盘,
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006d052
Device Boot Start End Blocks Id System
/dev/sda1 * 1 39 307200 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 39 2354 18598912 83 Linux
/dev/sda3 2354 2610 2057689 5 Extended
/dev/sda5 2354 2610 2057657+ 83 Linux
Disk /dev/sdc: 10.7 GB, 10742183424 bytes -------> iscsi设备
64 heads, 32 sectors/track, 10244 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
为磁盘创建分区并格式化。
[root@node1 ~]# mke2fs -t ext4 /dev/sdc1