ISCSI 实现IP SAN
RHEL5/6 CentOS5/6
==========================================================================================
场景一 PC Server:
disk1-disk2 RAID1 /dev/sda 安装系统
disk3-disk9 RAID6 /dev/sdb 提供存储
disk10 全局热备
为项目1的三台主机共享存储 /dev/sdb1 5T (说明:三台主机为LB的节点,需要并发写入,GFS2/OCFS...)
为项目2的两台主机共享存储 /dev/sdb2 10T (说明:两台主机为HA的节点,不需要并发写入, Ext3/Ext4/XFS/GFS2/OCFS...)
国企金融 FC SAN
一、Linux系统实现 ISCSI 存储端(target) RHEL6/Centos6
1、准备一个分区或者一块硬盘(也可以是一个文件)
[root@target ~]# fdisk -cu /dev/vdb
[root@target ~]# partx -a /dev/vdb
[root@target ~]# ll /dev/vdb*
brw-rw----. 1 root disk 252, 16 Aug 12 06:32 /dev/vdb
brw-rw----. 1 root disk 252, 17 Aug 12 06:32 /dev/vdb1
brw-rw----. 1 root disk 252, 18 Aug 12 06:32 /dev/vdb2
2、安装包
[root@target ~]# yum -y install scsi-target-utils
3、定义target共享 IQN
[root@target ~]# vim /etc/tgt/targets.conf
<target iqn.2015-08.com.uplook:lb>
backing-store /dev/vdb1
initiator-address 192.168.122.134
initiator-address 192.168.122.147
initiator-address 192.168.122.30
</target>
4、启动服务
[root@target ~]# service tgtd start
[root@target ~]# chkconfig tgtd on
[root@target ~]# tgt-admin --show
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 3221 MB, Block size: 512
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/vdb1
Backing store flags:
Account information:
ACL information:
192.168.122.134
192.168.122.147
192.168.122.30
[root@target ~]# netstat -tnlp |grep :3260
tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 15135/tgtd
tcp 0 0 :::3260 :::* LISTEN 15135/tgtd
5. 添加新的共享(当前有initiator端正在使用)
<target iqn.2015-08.com.uplook:ha>
backing-store /dev/vdb2
initiator-address 192.168.122.140
initiator-address 192.168.122.141
</target>
[root@target ~]# tgt-admin --force --update ALL 新增强制更新
二、initiator端(使用存储的前端服务器,此处为node1、node2、node3)centos6/centos7
1、安装包
[root@node1 ~]# yum -y install iscsi-initiator-utils
2、发现存储
[root@node1 ~]# iscsiadm -m discovery -t st -p 192.168.122.186:3260
Starting iscsid: [ OK ]
192.168.122.186:3260,1 iqn.2015-08.com.uplook:lb
[root@node1 ~]# tree /var/lib/iscsi/
/var/lib/iscsi/
├── ifaces
├── isns
├── nodes
│ └── iqn.2015-08.com.uplook:lb
│ └── 192.168.122.186,3260,1
│ └── default
├── send_targets
│ └── 192.168.122.186,3260
│ ├── iqn.2015-08.com.uplook:lb,192.168.122.186,3260,1,default -> /var/lib/iscsi/nodes/iqn.2015-08.com.uplook:lb/192.168.122.186,3260,1
│ └── st_config
├── slp
└── static
10 directories, 2 files
3、login登入存储
方法一:登入指定的存储
[root@node1 ~]# iscsiadm -m node -T iqn.2015-08.com.uplook:lb -l
方法二:登入所有的(/var/lib/iscsi/)
[root@node2 ~]# service iscsi restart
[root@node2 ~]# ll /dev/sda
brw-rw----. 1 root disk 8, 0 Aug 12 06:43 /dev/sda
[root@node2 ~]# fdisk -cul
Disk /dev/vda: 8589 MB, 8589934592 bytes
16 heads, 63 sectors/track, 16644 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000bddf3
Disk /dev/sda: 3221 MB, 3221225472 bytes
100 heads, 62 sectors/track, 1014 cylinders, total 6291456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
注:initiator
进程iscsid: initiator iscsi的核心进程,实现scsi通信,开机启动
进程iscsi: initiator 开机时自动登入所有的(/var/lib/iscsi/)
4、清除所有的iscsi登入[如果需要] 防止存储端删除共享,客户端根据配置文件自动挂载
[root@node1 ~]# tree /var/lib/iscsi/
/var/lib/iscsi/
├── ifaces
├── isns
├── nodes
│ └── iqn.2015-08.com.uplook:lb
│ └── 192.168.122.186,3260,1
│ └── default
├── send_targets
│ └── 192.168.122.186,3260
│ ├── iqn.2015-08.com.uplook:lb,192.168.122.186,3260,1,default -> /var/lib/iscsi/nodes/iqn.2015-08.com.uplook:lb/192.168.122.186,3260,1
│ └── st_config
├── slp
└── static
[root@node2 ~]# iscsiadm -m node -T iqn.2015-08.com.uplook:lb -u 注销
[root@node2 ~]# rm -rf /var/lib/iscsi/* 登录过有历史记录
5. 创建GFS2文件系统
a. node1,node2,node3 如果使用GFS文件系统把RHCS加入集群
b. pvcreate/vgcreate/lvcreate
c. mkfs.gfs2 -t cluster_name:mysql_lv -p lock_dlm -j 3 /dev/datavg/mysql_lv
d. cat /etc/fstab
/dev/datavg/mysql_lv /var/lib/mysql gfs2 defaults,_netdev 0 0
扩展:Iscsi 基于IQN实现访问控制
1. Targer授权指定的IQN连接
2. 客户端使用被授权的IQN连接
[root@uplook ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2015-08.com.uplook:client1
[root@uplook ~]# service iscsid restart