搭建iscsi存储系统
NAS和SAN服务器概述
NAS网络附属存储:
NAS(Network Attached Storage),NAS服务器是连接在网络上,具备资料存储功能的服务器,一种与用数据存储服务器。网络附属存储基于标准网络协议(Tcp/IP)实现数据传输,为网络中的Windows / Linux / Mac OS 等各种不同操作系统的计算机提供文件共享和数据备仹。
优点:
1. I/O消耗由前端服务器转移到后端存储设备上
2. 扩展方便
缺点:
1. 以前网络会成为瓶颈。 但是现在使用10G光纤卡,就可以解决这个问题。
SAN存储:
存储区域网络(Storage Area Network and SAN Protocols,简写SAN,即存储区域网络,是一种高速网络,提供在计算机不同存储系统之间的数据传输。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列。 SAN存储,采用网状通道(Fibre Channel ,简称FC)技术,通过FC交换机连接存储阵列和服务器主机,建立与用于数据存储的区域网络。
SAN由于其基础是一个与用网络,因此扩展性很强,不管是在一个SAN系统中增加一定的存储空间还是增加几台使用存储空间的服务器都非常方便。
NAS不SAN的区别在两方面:
第一,从网络架构来说,本质区别在于:
NAS,直接使用TCP/IP传输数据。SAN使用SCSI戒iSCSI协议传输数据。
第二,从文件读写实现方法上来说,本质区别在于:
NAS采用了NFS和 CIFS技术实现文件共享。说明NAS是基于操作系统的“文件级”读写操作。
SAN中计算机和存储间的接口是底层的块协议,它挄照协议头的“块地址+偏移地址”来定位。共享的存储和前端的操作系统类型没有关系。仸务服务器操作系统,都可以正常实别。
运行模式: C/S
target 目标, initiator [n.ietr] 发起人
端口: 3260
------------------------------------------------------------------
一:实验拓扑
二:实验目标
实战:配置IP SAN服务器
实战:IP SAN服务器日常操作
三:实验环境
服务端:target xuegod63 192.168.1.63
客户端:initiator xuegod64 192.168.1.64
四:实验代码
实战: 配置一个IP SAN 存储服务器
分析:将xuegod63配置成ip san,将xuegod63上的sda4分区,通过ip san 共享出去。
------------------------------------------------------------------------------------------------
配置服务端xuegod63
1)安装:scsi-target-utils
[root@xuegod63 ~]# yum install -y scsi-target-utils
2)准备一个磁盘分区: sda4 大小5G
[root@xuegod63 ~]# fdisk /dev/sda #划分出sda4分区
Command (m for help): p
Command (m for help): n
p
Selected partition 4
Last cylinder, +cylinders or +size{K,M,G} (1428-2610, default 2610): +5G
Command (m for help): w
[root@xuegod63 ~]#reboot
9配置target ,把sda4分区共享出去
3)修改配置文件
[root@xuegod63 ~]# vim /etc/tgt/targets.conf #写入以下内容
在参考这段内容并在段内容后,追加以下红色标记内容:
#
76 # direct-store /dev/sdb # Becomes LUN 1
77 # direct-store /dev/sdc # Becomes LUN 2
78 # direct-store /dev/sdd # Becomes LUN 3
79 # write-cache off
80 # vendor_id MyCompany Inc.
81 #
为:
backing-store /dev/sda4
initiator-address 192.168.1.64
vendor_id xuegod
product_id target1
注释:
default-driver iscsi #此配置文件默认全部注释,使用iscsi驱动
backing-store /dev/sda4 # 可以是具体的分区,也可以是DD出来的文件。不能小于5G。 (后面的文件系统是GFS,光日志空间就128M)
initiator-address 192.168.1.62 #指定允许访问的此存储主机
initiator-address 192.168.1.64 #指定允许访问的此存储主机
vendor_id “xuegod” vendor (vendr供应商 ) 。 供应厂商编号 标识这个设备(字符不要过长)
product_id "TARGET1" # 产品编号
4)启动服务
[root@xuegod63 ~]#service tgtd restart
[root@xuegod63 ~]# netstat -antup | grep 3260
tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 3130/tgtd
tcp 0 0 :::3260 :::* LISTEN 3130/tgtd
5)查看状态tgt-admin --show
[root@xuegod63 ~]# tgt-admin --show
Account information:
ACL information: #允许哪些客户端可以访问
192.168.1.64
开机启动:
[root@xuegod63 Desktop]# chkconfig tgtd on
------------------------------------------------------------------------------------------------
配置客户端: xuegod64
1)安装包: iscsi-initiator
[root@xuegod64 ~]# rpm -ivh /mnt/Packages/iscsi-initiator-utils-6.2.0.872-34.el6.x86_64.rpm
2)启动客户端服务:
[root@xuegod64 ~]# /etc/init.d/iscisd start #启动后没有反应
注:需要先发现target存储,再启动客户端服务,才有效
[root@xuegod64 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.63:3260
Starting iscsid: [ OK ]
192.168.1.63:3260,1 iqn.20116-11.cn.xuegod.www:target_san1
[root@xuegod64 ~]# /etc/init.d/iscsid status
iscsid (pid 2607) is running...
3)target存储服务器信息在客户端存储的位置:
[root@xuegod64 ~]# rpm -ivh /mnt/Packages/tree-1.5.3-2.el6.x86_64.rpm
[root@xuegod64 ~]# tree /var/lib/iscsi/
/var/lib/iscsi/
├── ifaces
├── isns
├── nodes
│ └── iqn.2015-01.cn.xuegod.www:target_san1
│ └── 192.168.1.63,3260,1
│ └── default
├── send_targets
│ └── 192.168.1.63,3260
│ ├── iqn.2015-01.cn.xuegod.www:target_san1,192.168.1.63,3260,1,default -> /var/lib/iscsi/nodes/iqn.2015-01.cn.xuegod.www:target_san1/192.168.1.63,3260,1
│ └── st_config
├── slp
└── static
4)重新启动:
[root@xuegod64 ~]# /etc/init.d/iscsid restart #先启动iscsid
[root@xuegod64 ~]# /etc/init.d/iscsi restart # 根据/var/lib/iscsi/ 中发现的信息,识别设备
关闭:
[root@xuegod64 ~]# /etc/init.d/iscsi stop
[root@xuegod64 ~]# /etc/init.d/iscsid stop
5)开机自动启动:
[root@xuegod64 ~]# chkconfig iscsi on
[root@xuegod64 ~]# chkconfig iscsid on
查看默认开机两个服务的先后顺序:
[root@xuegod64 ~]# grep chkconfig: /etc/init.d/iscsid
# chkconfig: 345 7 89
[root@xuegod64 ~]# grep chkconfig: /etc/init.d/iscsi
# chkconfig: 345 13 89
6)查看发现到新硬盘:
[root@xuegod64 ~]# ll /dev/sdb
brw-rw---- 1 root disk 8, 16 Jul 30 19:11 /dev/sdb
------------------------------------------------------------------------------------------------
卸载,挂载存储设备
卸载方法一
1:卸载
[root@xuegod64 ~]# iscsiadm -m node -T iqn.2015-01.cn.xuegod.www:target_san1 -u
Logging out of session [sid: 1, target: iqn.2015-01.cn.xuegod.www:target_san1, portal: 192.168.1.63,3260]
Logout of [sid: 1, target: iqn.2015-01.cn.xuegod.www:target_san1, portal: 192.168.1.63,3260] successful.
[root@xuegod64 ~]# ls /dev/sdb
ls: cannot access /dev/sdb: No such file or directory :
2:登录存储存储设备
[root@xuegod64 ~]# iscsiadm -m node -T iqn.2015-01.cn.xuegod.www:target_san1 -l
Logging in to [iface: default, target: iqn.2015-01.cn.xuegod.www:target_san1, portal: 192.168.1.63,3260] (multiple)
Login to [iface: default, target: iqn.2015-01.cn.xuegod.www:target_san1, portal: 192.168.1.63,3260] successful.
[root@xuegod64 ~]# ls /dev/sdb
/dev/sdb
卸载方法二:
1:卸载
[root@xuegod64 ~]# /etc/init.d/iscsi stop
Stopping iscsi: [ OK ]
[root@xuegod64 ~]# ls /dev/sdb
ls: cannot access /dev/sdb: No such file or directory
2:登录存储存储设备
[root@xuegod64 ~]# /etc/init.d/iscsi restart
彻底退出:
[root@xuegod64 ~]# /etc/init.d/iscsi stop
[root@xuegod64 ~]# rm -rf /var/lib/iscsi/*
------------------------------------------------------------------------------------------------
在xuegod64上对识别出来的硬盘,分区格式化,挂载使用
1:发现存储设备
[root@xuegod64 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.63:3260 #发现存储设备
2:启动服务器
[root@xuegod64 ~]# /etc/init.d/iscsid restart
[root@xuegod64 ~]# /etc/init.d/iscsi restart
[root@xuegod64 ~]# ls /dev/sdb #发现sdb
/dev/sdb
分区格式化,挂载使用。
[root@xuegod64 ~]# fdisk /dev/sdb 划分一个分区sdb1
[root@xuegod64 ~]# fdisk /dev/sdb
Command (m for help): n
p primary partition (1-4)
p
Partition number (1-4): 1
Last cylinder, +cylinders or +size{K,M,G} (1-1019, default 1019): #直接回车使用所有可以使用的空间。
[root@xuegod64 ~]# ll /dev/sdb*
brw-rw---- 1 root disk 8, 16 Jul 30 21:44 /dev/sdb
brw-rw---- 1 root disk 8, 17 Jul 30 21:44 /dev/sdb1
[root@xuegod64 ~]# mkfs.ext4 /dev/sdb1
[root@xuegod64 ~]# mount /dev/sdb1 /opt
-------------------------------------------------------------------------------------------
在target服务端,再添加一个存储客户端
1:添加如下内容:
[root@xuegod63 ~]# vim /etc/tgt/targets.conf
2:重启服务
[root@xuegod63 ~]# /etc/init.d/tgtd restart
Stopping SCSI target daemon: initiators still connected [FAILED]
Starting SCSI target daemon: [FAILED] #报错
解决:客户端退出一下
[root@xuegod64 ~]# umount /opt/
[root@xuegod64 ~]# /etc/init.d/iscsi stop
客户端退出后,再测试启动:
[root@xuegod63 ~]# /etc/init.d/tgtd restart
Stopping SCSI target daemon: [ OK ]
Starting SCSI target daemon: [ OK ]
3:测试: xuegod64 和xuegod62 都挂载上硬盘,数据同步
[root@xuegod64 ~]#/etc/init.d/iscsi start
[root@xuegod64 ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1
[root@xuegod64 ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1
[root@xuegod64 ~]# mount /dev/sdb1 /opt/
[root@xuegod64 ~]# cp /etc/passwd /opt/ #复制一些数据
4:测试:xuegod62 是否数据同步
[root@xuegod62 ~]# rpm -ivh /mnt/Packages/iscsi-initiator-utils-6.2.0.872-34.el6.x86_64.rpm
[root@xuegod62 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.63:3260
192.168.1.63:3260,1 iqn.2015-01.cn.xuegod.www:target_san1
[root@xuegod62 ~]# /etc/init.d/iscsi restart
[root@xuegod62 ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1
[root@xuegod62 ~]# mount /dev/sdb1 /opt/
[root@xuegod62 ~]#ls /opt/ #可以看到数据已经同步过来了
lost+found passwd
5:测试xuegod64数据是否同步:
[root@xuegod62 ~]# cp /etc/hosts /opt
[root@xuegod62 ~]# ls /opt
hosts lost+found passwd
[root@xuegod64 ~]# ls /opt
lost+found passwd
# passwd #只看到passwd ,没有同步,是因为我们使用的ext4 文件系统,ext4文件系统不支持多个客户端同时使用。 使用GFS文件系统就可以同步。