基于RHEL6的iSCSI网络存储应用


网络存储概述

1、DAS(Direct Attached Storage直接附加存储)

通过与计算机主板的I/O接口直接相连

2、NAS(Network Attachment Storage网络附加存储)

存储的数据以文件的形式通过NFS或CIFS共享协议进行传输

为客户机分配存储空间时通常采用共享文件夹的方式进行发布

采用普通以太网,对速率、冗余无特别要求

通过购买硬件NAS设备或安装FreeNAS平台可搭建NAS存储设备

3、SAN(Storage Area Network存储区域网络)

存储的数据以数据块的形式通过iSCSI协议进行传输

SAN区域应采用独立的物理连接

多采用高速光纤通道,对速率、冗余性要求高

高可用性、可扩展性、易恢复性

4、iSCSI协议

1)iSCSI协议简介

iSCSI协议是当前最流行的网络存储协议,可以解决SCSI协议在连接的设备数目和连接距离方面的限制。用户可以像使用本地的硬盘一样访问网络上任何位置的存储资源,也可以将原有的旧的分散的存储资源整合成一个大的存储池

2)iSCSI Cake与网络邻居共享有什么不同?

网络邻居是文件级共享,iSCSI是裸设备级共享。网络邻居映射的盘不支持数据库和运行某些游戏,iSCSI支持所有磁盘操作和应用程序,而且iSCSI的性能要高于网络邻居。

3)配置iSCSI服务

iSCSI由服务端和客户端两部分组成,客户端也称为启动器

①iSCSI服务端也称为Target端,负责定义存储对象、分配逻辑空间,需要安装scsi-target-utils软件包

②iSCSI客户端也称为Initiator端,负责连接iSCSI设备,在iSCSI设备中创建文件系统和存取数据,需要安装iscsi-initiator软件包

 

实验环境

为服务器添加3块2G的SCSI硬盘,组成一个RAID5磁盘阵列,并分配给客户机使用

服务器:192.168.4.254

客户机:192.168.4.22

 

一、配置iSCSI服务器

安装scsi-target-utils软件包以搭建iSCSI服务器,服务名为tgtd,管理命令为tgtadm

yum -y install scsi-target-utils

1、准备存储设备

使用mdadm工具创建软RAID阵列设备,此处使用三块磁盘组建RAID 5阵列

fdisk –l

mdadm -Cv /dev/md0 -a yes -n3 -l5 /dev/sd[bcd]

mdadm -Q /dev/md0

将阵列配置保存为/etc/mdadm.conf,以便重建或恢复时使用

mdadm -D /dev/md0 | grep UUID

vi /etc/mdadm.conf

Snip20181020_3.png

1) 准备给iSCSI服务器的存储设备不需要格式化,因为其并不在服务器中使用,而是由客户机使用并进行格式化、挂载等操作

2)mdadm命令各选项含义:

-C,--create       创建新的RAID设备

-v                  输出详细信息

-a yes             若对应的设备文件不存在则自动创建

-n,--raid-devices=  阵列所使用的磁盘数量

-l,--level=        RAID级别

-Q,--query         查询设备的RAID信息

-D,--detail        查询RAID设备的详细信息

-S,--stop          解散、停止/删除RAID阵列

 

2、创建iSCSI对象

service tgtd start

netstat -ntpl | grep "tgt" (默认端口为:3260)

tgtadm -L iscsi -o new -m target -t 1 -T iqn.2012-4.com.benet.y2:raid

tgtadm -L iscsi -o show -m target

Snip20181020_4.png

1)iscsi对象命名规范: iqn.YYYY-mm.反向域名:识别标记

例:iqn.2012-4.com.benet.y2:raid

2)tgtadm命令各选项含义:

-L、--lld        指定驱动类型,如-L iscsi表示iSCSI存储

-o、--op         指定操作类型,如-o new、-o delete、-o show

-m、--mode        指定管理目标,如-m target表示iSCSI对象、logicalunit表示LUN

-t、--tid        指定对象ID号,如-t 1表示第一个对象

-T、--targetname  指定iSCSI对象的名称

 

3、为客户机分配存储空间(LUN)

tgtadm -L iscsi -o new -m logicalunit -t 1 -l 1 -b /dev/md0

tgtadm -L iscsi -o bind -m target -t 1 -I 192.168.4.22

圆角矩形标注: 此处的1表示iscsi对象ID号tgtadm -L iscsi -o show -m target

Snip20181020_5.png

tgtdam命令分配LUN时各选项含义:

-l、--lun                指定LUN的ID号,如-l 1

-b、--backing-store       指定块设备位置,如-b /dev/md0

-I、--initiator-address  指定客户机地址,如-I 192.168.4.22

-m  logicalunit          表示管理目标为LUN

-o bind                  表示绑定客户机地址

 

4、保存target和LUN信息,以便重启tgtd服务后仍然有效

vi /etc/tgt/targets.conf

圆角矩形标注: 分配存储空间给指定的客户机使用Snip20181020_6.png

chkconfig --level 35 tgtd on

注:iSCSI服务器必须先于客户机启动

 

二、配置iSCSI客户机

安装iscsi-initiator-utils软件包以连接iSCSI设备存取数据,服务名为iscsi,管理命令为iscsiadm,将lsscsi软件包也一并安装,方便查看iSCSI设备

yum -y install iscsi-initiator-utils lsscsi

1、连接iSCSI设备

查找iSCSI设备

service iscsi start

iscsiadm  -m discovery -t sendtargets -p 192.168.4.254

连接到指定的iSCSI存储设备

iscsiadm -m node -T  iqn.2012-4.com.benet.y2:raid  --login

圆角矩形标注: 看到Login to ...successful表示连接成功Snip20181020_7.png

查看SCSI设备列表

lsscsi

圆角矩形标注: iSCSI网络存储设备/dev/sdbSnip20181020_8.png

连接成功后会自动创建配置文件并保存到/var/lib/iscsi/nodes/目录下的子目录中

Snip20181020_9.png

iscsiadm命令各选项含义:

-m discovery             表示发现/查找

-t sendtargets           表示发布的target,可缩写为-t st

-p ip:port               用来指定服务器的ip地址及tgtd服务监听的端口

-m node                  表示管理目录为节点

-T                       用来指定要连接的iSCSI存储对象

-l,--login               表示连接/登陆

--logout                 表示断开/登出

 

2、使用iSCSI设备

查看iscsi共享磁盘标识并进行分区

fdisk -l

fdisk /dev/sdb

partprobe /dev/sdb            -----更新信息

fdisk -l /dev/sdb

mkfs -t ext4 /dev/sdb1       -----创建文件系统

mkdir /opt/data              -----挂载文件系统

mount /dev/sdb1 /opt/data/

df -hT

3、保存iSCSI连接配置

chkconfig  --level 35 iscsi on  ----设置iscsi服务自启动状态

blkid /dev/sdb1       -----使用blkid 命令查看设备文件的UUID

vi /etc/fstab

Snip20181020_10.png

重启客户机后将自动连接iSCSI设备,并挂载指定的网络存储文件系统。

 

注:①由于iSCSI设备的特殊性,挂载时应启用_netdev参数

②有时会因设备连接变动、引导顺序等影响,导致iSCSI设备文件异常,因此通过设备文件的UUID来定位设备

③如果iSCSI服务器端与客户端可相互ping通,但当iSCSI客户端discover scsi-targets时,报错“No route to host”,此时关闭iSCSI服务器端iptables防火墙或开放3260端口即可

④在Windows环境下也可通过某些软件来实现iSCSI网络存储


猜你喜欢

转载自blog.51cto.com/12402007/2306815