简单的介绍一下SAN (存储区域网络 storage area network and SAN protocols ,简称SAN),它是一种高速网络实现计算机与存储系统之间的数据传输。常见的分类是FC-SAN和IP-SAN两种。
FC-SAN通过光纤通道协议转发scsi协议;IP-SAN通过TCP协议转发scsi协议,也就是IP 地址。
存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列,主要厂商EMC、日立等。

下面配置IP-SAN存储实战

服务名称


服务器地址


服务端 :node01


192.168.137.101


客户端 :node02

192.168.137.102


客户端 :node03

192.168.137.103

一、服务端安装
 1.1 IPSAN 是C/S模式  服务端口3260

点击(此处)折叠或打开

1. [root@node01 ~]# yum -y install scsi-target-utils     #yum 安装 
			
2. [root@node01 ~]# ll /etc/tgt/targets.conf           #主要配置文件
 -rw------- 1 root root 6945 Sep  4  2013 /etc/tgt/targets.conf

 [root@node01 ~]# chkconfig tgtd on
 [root@node01 ~]# netstat -antup |grep 3260     #检查服务端口
           
tcp        0      0 0.0.0.0:3260            0.0.0.0:*               LISTEN      2106/tgtd           
tcp6       0      0 :::3260                 :::*                    LISTEN      2106/tgtd         
 [root@node01 ~]#

1.2 新建存储分区,在这里我们通过在vmvare新增加一个块10G大小的磁盘 /dev/sdb,重启服务器

点击(此处)折叠或打开

1. [root@node01 ~]# fdisk -l |grep "Disk" 
			
2. Disk /dev/sda: 21.5 GB, 21474836480 bytes 
			
3. Disk identifier: 0x0004a1ec 
			
4. Disk /dev/sdb: 10.7 GB, 10737418240 bytes 
			
5. Disk identifier: 0x00000000 
			
6. [root@node01 ~]# 
			
7. [root@node01 ~]# fdisk  /dev/sdb         #分区 ,大小5G

1.3 共享存储分区,修改/etc/tgt/targets.conf 文件

点击(此处)折叠或打开

1. [root@node01 ~]#.conf   # 增加以下内容,以下是iscsi的格式
2. 
3. <target iqn.2016-08.cn.node01.www:target4_scan>    #命名 
4. -store /dev/sdb1                    #共享的分区
5. -address 192.168.137.102          #允许访问的地址
6. -address 192.168.137.103
7.         vendor_id  node                             #标示
8.         product_id target4                         #产品编号
9. </target> 
			
10. [root@node01 ~]# tgt-admin  -show             #查看状态
1. Target 1: iqn.2016-08.cn.node01.www:target4_scan
    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: 5379 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdb1
            Backing store flags: 
    Account information:
    ACL information:
        192.168.137.102
        192.168.137.103
[root@node01 ~]#

二、客户端配置
2.1 安装iscsi-initiator-utils,并配置服务信息

点击(此处)折叠或打开

1. [root@node02 ~]# yum -y install iscsi-initiator-utils 
			
2. [root@node02 ~]# iscsiadm  -m discovery -t sendtargets -p 192.168.137.101    #发现target存储 
			
3. Starting iscsid:                                           [  OK  ] 
			
4. 192.168.137.101:3260,1 iqn.2016-08.cn.node01.www:target4_scan 
			
5. [root@node02 ~]# 
			
6. [root@node02 ~]# /etc/init.d/iscsid  status                                #查看客户端服务 
			
7. iscsid (pid  1153) is running... 
			
8. [root@node02 ~]# 
			
9. [root@node02 ~]# tree /var/lib/iscsi/                                     #发现target服务,信息会写入/var/lib/iscsi 目录下 
			
10. /var/lib/iscsi/ 
			
11. ├── ifaces 
			
12. ├── isns 
			
13. ├── nodes 
			
14. │   └── iqn.2016-08.cn.node01.www:target4_scan 
			
15. │       └── 192.168.137.101,3260,1 
			
16. │           └── default 
			
17. ├── send_targets 
			
18. │   └── 192.168.137.101,3260 
			
19. │       ├── 
iqn.2016-08.cn.node01.www:target4_scan,192.168.137.101,3260,1,default 
-> 
/var/lib/iscsi/nodes/iqn.2016-08.cn.node01.www:target4_scan/192.168.137.101,3260,1 
			
20. │       └── st_config 
			
21. ├── slp 
			
22. └── static 
			
23. 
24. 10 directories, 2 files 
			
25. [root@node02 ~]# 
			
26. [root@node02 ~]# /etc/init.d/iscsid  start                   #先启动iscsid 服务
[root@node02 ~]# /etc/init.d/iscsi  start                    #在启动iscsi服务 该服务是根据iscsid服务信息/var/lib/iscsi/ 来识别设备的
Starting iscsi:                                            [  OK  ]
[root@node02 ~]#

2.2 检查是否发现磁盘, 以及卸载和登录scsi设备

点击(此处)折叠或打开

1. [root@node02 ~]# ll /dev/sdb 
			
2. brw-rw---- 1 root disk 8, 16 Aug 12 00:48 /dev/sdb 
			
3. [root@node02 ~]# lsblk                        #lsblk查看块信息的命令 
			
4. NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  200M  0 part /boot
├─sda2   8:2    0   10G  0 part /
└─sda3   8:3    0    1G  0 part [SWAP]
sr0     11:0    1  3.6G  0 rom  /media
sdb      8:16   0    5G  0 disk 5. 
6. [root@node02 ~]# 
			
7. [root@node02 ~]# tree /var/lib/iscsi/ 
			
8. /var/lib/iscsi/
├── ifaces
├── isns
├── nodes
│   └── iqn.2016-08.cn.node01.www:target4_scan
│       └── 192.168.137.101,3260,1
│           └── default
├── send_targets
│   └── 192.168.137.101,3260
│       ├── 
iqn.2016-08.cn.node01.www:target4_scan,192.168.137.101,3260,1,default 
-> 
/var/lib/iscsi/nodes/iqn.2016-08.cn.node01.www:target4_scan/192.168.137.101,3260,1
│       └── st_config
├── slp
└── static

10 directories, 2 files 
			9. [root@node02 ~]# iscsiadm  -m node -T iqn.2016-08.cn.node01.www:target4_scan -u              #卸载scsi设备 
			
10. Logging out of session [sid: 1, target: iqn.2016-08.cn.node01.www:target4_scan, portal: 192.168.137.101,3260] 
			
11. Logout of [sid: 1, target: iqn.2016-08.cn.node01.www:target4_scan, portal: 192.168.137.101,3260] successful. 
			
12. [root@node02 ~]# lsblk 
			
13. NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  200M  0 part /boot
├─sda2   8:2    0   10G  0 part /
└─sda3   8:3    0    1G  0 part [SWAP]
sr0     11:0    1  3.6G  0 rom  /media 
			14. [root@node02 ~]# iscsiadm  -m node -T iqn.2016-08.cn.node01.www:target4_scan -l               #登录scsi设备 
			
15. Logging in to [iface: default, target: iqn.2016-08.cn.node01.www:target4_scan, portal: 192.168.137.101,3260] (multiple) 
			
16. Login to [iface: default, target: iqn.2016-08.cn.node01.www:target4_scan, portal: 192.168.137.101,3260] successful. 
			
17. [root@node02 ~]# lsblk 
			
18. NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  200M  0 part /boot
├─sda2   8:2    0   10G  0 part /
└─sda3   8:3    0    1G  0 part [SWAP]
sr0     11:0    1  3.6G  0 rom  /media
sdb      8:16   0    5G  0 disk  
			19. [root@node02 ~]#

2.3 使用scsi设备,并做写入操作

点击(此处)折叠或打开

1. [root@node02 ~]# df -h 
			
2. Filesystem      Size  Used Avail Use% Mounted on 
			
3. /dev/sda2       9.9G  869M  8.5G  10% / 
			
4. tmpfs           238M     0  238M   0% /dev/shm 
			
5. /dev/sda1       194M   27M  158M  15% /boot 
			
6. /dev/sr0        3.6G  3.6G     0 100% /media 
			
7. 
8. [root@node02 ~]# 
			
9. [root@node02 ~]# fdisk /dev/sdb                 #分区 
			
10.   
			
11. [root@node02 ~]# lsblk                          #查看分区块 
			
12. NNAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  200M  0 part /boot
├─sda2   8:2    0   10G  0 part /
└─sda3   8:3    0    1G  0 part [SWAP]
sr0     11:0    1  3.6G  0 rom  /media
sdb      8:16   0    5G  0 disk 
└─sdb1   8:17   0    5G  0 part 13. 
14. [root@node02 ~]# mkfs.ext4 /dev/sdb1             #格式化分区 
			
15. mke2fs 1.41.12 (17-May-2010) 
			
16. Filesystem label= 
			
17. OS type: Linux 
			
18. Block size=4096 (log=2) 
			
19. Fragment size=4096 (log=2) 
			
20. Stride=0 blocks, Stripe width=0 blocks 
			
21. 328656 inodes, 1312222 blocks 
			
22. 65611 blocks (5.00%) reserved for the super user 
			
23. First data block=0 
			
24. Maximum filesystem blocks=1346371584 
			
25. 41 block groups 
			
26. 32768 blocks per group, 32768 fragments per group 
			
27. 8016 inodes per group 
			
28. Superblock backups stored on blocks: 
			
29. 32768, 98304, 163840, 229376, 294912, 819200, 884736 
			
30. 
31. Writing inode tables: done 
			
32. Creating journal (32768 blocks): done 
			
33. Writing superblocks and filesystem accounting information: done 
			
34. 
35. This filesystem will be automatically checked every 21 mounts or 
			
36. 180 days, whichever comes first.  Use tune2fs -c or -i to override. 
			
37. [root@node02 ~]# mkdir /scsi               #挂载分区 到新建目录/scsi 
			
38. [root@node02 ~]# mount /dev/sdb1 /scsi/ 
			
39. [root@node02 ~]# df -h 
			
40. Filesystem      Size  Used Avail Use% Mounted on 
			
41. /dev/sda2       9.9G  869M  8.5G  10% / 
			
42. tmpfs           238M     0  238M   0% /dev/shm 
			
43. /dev/sda1       194M   27M  158M  15% /boot 
			
44. /dev/sr0        3.6G  3.6G     0 100% /media 
			
45. /dev/sdb1       5.0G  139M  4.6G   3% /scsi 
			
46. [root@node02 ~]# cp -r /root/* /scsi/    #写入验证 
			
47. [root@node02 ~]# ll /scsi/ 
			
48. total 36 
			
49. -rw------- 1 root root   980 Aug 12 00:59 anaconda-ks.cfg 
			
50. -rw-r--r-- 1 root root 10197 Aug 12 00:59 install.log 
			
51. -rw-r--r-- 1 root root  3161 Aug 12 00:59 install.log.syslog 
			
52. drwx------ 2 root root 16384 Aug 12 00:58 lost+found 
			
53. [root@node02 ~]# df -h /scsi/ 
			
54. Filesystem      Size  Used Avail Use% Mounted on 
			
55. /dev/sdb1       5.0G  139M  4.6G   3% /scsi 
			
56. [root@node02 ~]#

三、添加另外客户端192.168.137.103。操作同192.168.137.102基本类似,只是本次不再需要格式化分区

点击(此处)折叠或打开

1. [root@node03 ~]# yum -y install iscsi-initiator-utils 
			
2. [root@node03 ~]# 
			
3. [root@node03 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.137.101 
			
4. Starting iscsid:                                           [  OK  ] 
			
5. 192.168.137.101:3260,1 iqn.2016-08.cn.node01.www:target4_scan 
			
6. [root@node03 ~]# yum -y install tree 
			
7. 
8. [root@node03 ~]# tree /var/lib/iscsi/ 
			
9. /var/lib/iscsi/ 
			
10. ├── ifaces 
			
11. ├── isns 
			
12. ├── nodes 
			
13. │   └── iqn.2016-08.cn.node01.www:target4_scan 
			
14. │       └── 192.168.137.101,3260,1 
			
15. │           └── default 
			
16. ├── send_targets 
			
17. │   └── 192.168.137.101,3260 
			
18. │       ├── 
iqn.2016-08.cn.node01.www:target4_scan,192.168.137.101,3260,1,default 
-> 
/var/lib/iscsi/nodes/iqn.2016-08.cn.node01.www:target4_scan/192.168.137.101,3260,1 
			
19. │       └── st_config 
			
20. ├── slp 
			
21. └── static 
			
22. 
23. 10 directories, 2 files 
			
24. 
25. [root@node03 ~]# /etc/init.d/iscsid restart 
			
26. Stopping iscsid: 
			
27. Starting iscsid:                                           [  OK  ] 
			
28. [root@node03 ~]# lsblk 
			
29. NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  200M  0 part /boot
├─sda2   8:2    0   10G  0 part /
└─sda3   8:3    0    1G  0 part [SWAP]
sr0     11:0    1  3.6G  0 rom  /media30. 
31. [root@node03 ~]# /etc/init.d/iscsi restart 
			
32. Stopping iscsi:                                            [  OK  ] 
			
33. Starting iscsi:                                            [  OK  ] 
			
34. [root@node03 ~]# lsblk                      #可以看到设备sdb1 了 
			
35. NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  200M  0 part /boot
├─sda2   8:2    0   10G  0 part /
└─sda3   8:3    0    1G  0 part [SWAP]
sr0     11:0    1  3.6G  0 rom  /media
sdb      8:16   0    5G  0 disk 
└─sdb1   8:17   0    5G  0 part 36. 
37. [root@node03 ~]# 
			
38. [root@node03 ~]# 
			
39. [root@node03 ~]# mkdir /scsi            
			
40. [root@node03 ~]# mount /dev/sdb1 /scsi/              #挂载 
			
41. [root@node03 ~]# cd !$ 
			
42. cd /scsi/ 
			
43. [root@node03 scsi]# ll                               #可以可看到在node02中写入的内容 
			
44. total 36 
			
45. -rw------- 1 root root   980 Aug 12 00:59 anaconda-ks.cfg 
			
46. -rw-r--r-- 1 root root 10197 Aug 12 00:59 install.log 
			
47. -rw-r--r-- 1 root root  3161 Aug 12 00:59 install.log.syslog 
			
48. drwx------ 2 root root 16384 Aug 12 00:58 lost+found 
			
49. [root@node03 scsi]# cp /etc/passwd /scsi/            #在node03上写入新文件passwd,在node02验证 
			
50. [root@node03 scsi]# ll 
			
51. total 40 
			
52. -rw------- 1 root root   980 Aug 12 00:59 anaconda-ks.cfg 
			
53. -rw-r--r-- 1 root root 10197 Aug 12 00:59 install.log 
			
54. -rw-r--r-- 1 root root  3161 Aug 12 00:59 install.log.syslog 
			
55. drwx------ 2 root root 16384 Aug 12 00:58 lost+found 
			
56. -rw-r--r-- 1 root root   901 Aug 12 01:11 passwd 
			
57. [root@node03 scsi]# 
			
58. #在node02 未能识别node03写入的passwd文件, 没有同步,是因为我们使用ext4文件系统 不支持,使用GFS可以保持同步
59. [root@node02 scsi]# ll
total 36
-rw------- 1 root root   980 Aug 12 00:59 anaconda-ks.cfg
-rw-r--r-- 1 root root 10197 Aug 12 00:59 install.log
-rw-r--r-- 1 root root  3161 Aug 12 00:59 install.log.syslog
drwx------ 2 root root 16384 Aug 12 00:58 lost+found
[root@node02 scsi]#


四、思考
4.1 验证GFS文件系统 ,支持多节点同时写入。
    4.2 ISCSI在多路径方面的应用。
    4.3 需要优化的参数都有哪些