网络存储概述
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
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
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
tgtadm -L iscsi -o show -m target
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
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
查看SCSI设备列表
lsscsi
连接成功后会自动创建配置文件并保存到/var/lib/iscsi/nodes/目录下的子目录中
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
重启客户机后将自动连接iSCSI设备,并挂载指定的网络存储文件系统。
注:①由于iSCSI设备的特殊性,挂载时应启用_netdev参数
②有时会因设备连接变动、引导顺序等影响,导致iSCSI设备文件异常,因此通过设备文件的UUID来定位设备
③如果iSCSI服务器端与客户端可相互ping通,但当iSCSI客户端discover scsi-targets时,报错“No route to host”,此时关闭iSCSI服务器端iptables防火墙或开放3260端口即可
④在Windows环境下也可通过某些软件来实现iSCSI网络存储