SCSI:Small Computer System Interface,SCSI作为输入/输出接口,主要用于硬盘,打印机,扫描仪设备。
FC:Fibre Channel,是一种适合于千兆数据传输的、成熟而安全的解决方案。与SCSI技术相比,FC提供更高的数据传输速率,更远的传输速度,更多的连接设备支持,更稳定的性能,更简易的安装。
DAS:Direct-Attached Storage,指存储设备通过SCSI接口或光纤设备直接连到一台计算机上。
NAS:Network-Attached Storage,通过网络交换机连接存储系统和服务器,建立专门用于数据存储的私有网络,用户通过TCP/IP协议访问数据,采用业界标准的文件共享协议如NFS,HTTP,CIFS来实现基于文件级的数据共享。
SAN:Storage Area Network,一种通过光纤交换机、光纤路由器、光纤集线器等设备将磁盘阵列、磁带等存储设备与相关服务器起来的光速专用子网。
ISCSI:internet SCSI,就是在IP网络上运行SCSI协议的一种网络存储技术。
ISCSI的组成:
ISCSI INITIATOR:是一个安装在计算机上的软件或硬件设备,它负责与ISCSI存储设备进行通信。
ISCSI Target:将服务器的存储空间分配给客户机使用。
搭建一个基于IP SAN的ISCSI存储系统
配置环境:
名称 操作系统 IP地址 安装软件
主机 centos6.5-x86_64 10.3.156.141 ISCSI-target-utils
INITIATOR centos6.5-x86_64 10.3.156.142 ISCSI-INITIATOR-utils
INITIATOR centos6.5-x86_64 10.3.156.134 ISCSI-INITIATOR-utils
主机将/dev/sdb作为共享磁盘分配给客户机使用。
一:主机上安装ISCSI-Target软件
从
[root@node1 ~]# tar xf iscsitarget-1.4.20.2.tar.gz
[root@node1 ~]# cd iscsitarget-1.4.20.2
[root@node1 iscsitarget-1.4.20.2]# make && make install
[root@node1 iscsitarget-1.4.20.2]# service iscsi-target status
iSCSI Target stopped
[root@node1 iscsitarget-1.4.20.2]# chkconfig iscsi-target on //让iscsi-target开机自动运行
二:配置ISCSI-Target
安装完成后,ISCSI-Target的配置文件/etc/iet/ietd.conf,打开ietd.conf,找到如下一行:
#Target iqn.2001-04.com.example:storage.disk2.sys1.xyz
说明:iqn表示"ISCSI Qualified Name”,简称iqn
2001-04表示年份-月份
com.example表示域名反转
storage.disk2.sys1.xyz表示识别代码
将其修改为:Target iqn.2014-05.com.example:storage.disk2.sys1.xyz
设定LUN:找到类似如下的代码
#Lun 0 Path=/dev/sdc,Type=fileio,ScsiId=xyz,ScsiSN=xyz
说明:Lun 0 Path=/dev/sdc表示块设备号为0,磁盘为/dev/sdc
Type=fileio表示对一个磁盘进行存储共享。
将其修改为:Lun 0 Path=/dev/sdb,Type=fileio,ScsiId=xyz,ScsiSN=xyz
然后启动服务:[root@node1 iet]# service iscsi-target start
三:在客户机上配置ISCSI-INITIATOR
1.安装ISCSI-INITIATOR
[root@node2 ~]# yum install -y iscsi-initiator-utils
[root@node2 iscsi]# service iscsi start
2.在Linux上查询ISCSI Target主机划分了哪些LUN
[root@node2 iscsi]# iscsiadm -m discovery -t sendtargets -p 10.3.156.141
10.3.156.141:3260,1 iqn.2014-05.com.example:storage.disk2.sys1.xyz //就是刚刚设置的名称
[root@node2 iscsi]# iscsiadm -m node -T iqn.2014-05.com.example:storage.disk2.sys1.xyz -p 10.3.156.141 -l // 登陆ISCSI Target主机
Logging in to [iface: default, target: iqn.2014-05.com.example:storage.disk2.sys1.xyz, portal: 10.3.156.141,3260] (multiple)
Login to [iface: default, target: iqn.2014-05.com.example:storage.disk2.sys1.xyz, portal: 10.3.156.141,3260] successful.
[root@node2 iscsi]# iscsiadm -m node -T iqn.2014-05.com.example:storage.disk2.sys1.xyz -p 10.3.156.141 -u // 这是断开与ISCSI Target主机的指令
Logging out of session [sid: 1, target: iqn.2014-05.com.example:storage.disk2.sys1.xyz, portal: 10.3.156.141,3260]
Logout of [sid: 1, target: iqn.2014-05.com.example:storage.disk2.sys1.xyz, portal: 10.3.156.141,3260] successful.
3.管理共享磁盘
[root@node2 iscsi]# fdisk -l
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 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
我们已经看到ISCSI共享磁盘标识为/dev/sdb,大小为20G,此时客户机就可以对共享磁盘进行分区,格式化等操作
现在设置INITATIOR主机以密码认证的方式获取ISCSI Target资源。
修改/etc/iet/ietd.conf文件,找到如下行:
#IncomingUser joe secret
说明:IncomingUser是一个全局参数,设置登陆用户名和密码
joe:用户名
secret:密码
修改后的内容如下:
IncomingUser admin redhat
然后重启服务:[root@node1 iet]# service iscsi-target restart
再修改initiator主机
编辑/et/iscsi/iscsid.conf文件,找到如下几行:
以下三行是设置Login的
#node.session.auth.authmethod = CHAP // 启用CHAP认证
#node.session.auth.username = username // 设置用户名,要与ISCSI Target上设置的用户名一致
#node.session.auth.password = password // 设置密码,要与ISCSI Target设置的密码一致
以下三行是设置discovery的
#discovery.sendtargets.auth.authmethod = CHAP //启动CHAP认证
#discovery.sendtargets.auth.username = username // 用户名,与ISCSI Target设置一致
#discovery.sendtargets.auth.password = password // 设置密码,要与ISCSI Target设置的密码一致
修改后重启iscsi服务:
[root@node2 nodes]# service iscsi restart
然后重新发现ISCSI Target主机
[root@node2 nodes]# iscsiadm -m discovery -t sendtargets -p 10.3.156.141
10.3.156.141:3260,1 iqn.2014-05.com.example:storage.disk2.sys1.xyz
[root@node2 nodes]# fdisk -l
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
64 heads, 32 sectors/track, 20480 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
看另外一台INITIATOR主机,没有修改/etc/iscsi/iscsid.conf
[root@mysql1 nodes]# service iscsi start
Starting iscsi: [ OK ]
[root@mysql1 nodes]# iscsiadm -m discovery -t sendtargets -p 10.3.156.141 //此时就会显示如下信息
iscsiadm: Login failed to authenticate with target
iscsiadm: discovery login to 10.3.156.141 rejected: initiator failed authorization
iscsiadm: Could not perform SendTargets discovery: iSCSI login failed due to authorization failure
现在验证基于IP认证方式获取ISCSI Target资源
编辑ISCSI Target主机的/etc/iet/initiators.allow文件
将最后一行ALL ALL 注释掉,并写入如下内容:
iqn.2014-05.com.example:storage.disk2.sys1.xyz 10.3.156.142 // 只有ip为10.3.156.142的主机才能获取ISCSI Target资源
[root@node2 iscsi]# service iscsi restart
[root@node2 iscsi]# iscsiadm -m discovery -t sendtargets -p 10.3.156.141
10.3.156.141:3260,1 iqn.2014-05.com.example:storage.disk2.sys1.xyz
在ip为10.3.156.134上,就发现不了ISCSI Target资源
[root@mysql1 nodes]# iscsiadm -m discovery -t sendtargets -p 10.3.156.141
iscsiadm: No portals found