搭建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

------------------------------------------------------------------

一:实验拓扑

搭建iscsi存储系统_第1张图片 

二:实验目标

:配置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 #

为:

6-11.cn.xuegod.www:target_san1>

backing-store /dev/sda4

initiator-address 192.168.1.64

vendor_id xuegod

product_id target1

注释:

default-driver iscsi #此配置文件默认全部注释,使用iscsi 

# iscsi正规名字格式 : iqn.年-月.主机名倒着写: target端名字

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...

 

3target存储服务器信息在客户端存储的位置:

[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

搭建iscsi存储系统_第2张图片 

 

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文件系统就可以同步。