一 . 环境
操作系统: redhat RHEL7.0
服务端程序:targetd 服务端管理程序:targetcli
客户端程序:Linux < iscsi-initiator-utils > Windows < 自带 iSCSI 客户端程序 >
二 . 基础知识
1:网络存储分类
DAS:直连式存储 (顾名思义,直接连接外存储设备)
适用于中小型企业,存储系统被直连到应用的服务器中,在中小企业中,许多的数据应用是必须安装在直连的DAS存储器上。DAS存储的更多的以来服务器主机操作系统进行数据的I/O读写和存储维护管理、数据备份和恢复要求占用服务器主机资源。DAS与服务器主机之间的连接通道通常采用SCSI连接,然而SCSI通道在CPU和存储空间越来越大的情况下,十分吃力。
NAS:网络接入存储
存储设备通过标准的网络拓扑结构(例如以太网)添加到一群计算机上,NAS是文件级的存储方法,重点在于帮助工作组和部门及机构解决迅速增加存储容量的需求。如今的用途很广泛,主要用来进行文档共享、图片共享、电影共享等等,并且随着云计算的发展,一些DAS厂商推出了云存储功能。NAS设备一般支持多计算机平台,可以通过网络协议进行文档等传输,挺灵活的。不足那,是它需要处理的数据比较多,包含数据传输信息还有操作存储磁盘请求信息,并且,对于网络带宽的要求比较高。
SAN:存储区域网络
设备通过光纤通道交换机连接存储阵列和服务器主机,最后成为一个专用的存储网络。目前已经成为标准。SAN提供了一种与现在LAN连接的简易方法,并且通过同一物理通道支持广泛的SCSI和IP协议。如今的SAN通常采用两种形式:光纤信道以及iSCSI或者基于IP的SAN,FC SAN和IP SAN。
总结:DAS存储一般应用在中小企业,与计算机采用直连方式。NAS存储通过以太网添加到计算机上。SAN存储使用FC接口,提供性能更佳的存储。
使用场景:DAS虽然历史久远,但很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业。NAS适用于文件服务器,用于存储非结构化数据,受限于以太网的速度,但部署灵活,成本低。SAN适用于大型应用或数据库系统,缺点是成本高较复杂。
2:iSCSI的基础知识
通过上述简单讲解,已经知道SAN存储有两种形式。一种是FC SAN,基于专用的网络设备,利用光纤建立光纤通道进行传输。另一种是IP SAN,基于以太网,将以太网虚拟成系统总线进行传送数据。基于IP SAN的系统比起FC SAN系统价格优越,但是性能上不能比拟。IP SAN系统利用iSCSI的协议传送SCSI的命令,从而实现存储区域网络SAN的搭建。
三 . 搭建iSCSI环境
1 > 前期工作 - 创建RAID磁盘阵列
(1)虚拟机里,需要添加4块SCSI的硬盘,或者外接移动硬盘(如果是学习的话就没必要买)
(2)创建 RAID 5磁盘阵列
mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm -D /dev/md0 # 查看挂在设备文件信息
2 > 配置 iSCSI 服务端
(1)安装服务端程序
yum install targetd targetcli # targetd是iSCSI服务端 targetcli是管理程序
(2)启动 iSCSI
systemctl start targetd # 启动targetd程序
systemctl enable targetd # 将targetd程序设置为自启动项
(3)配置 iSCSI 服务端共享资源
ls # 列出 targetd 的结构
cd /backstores/block # /backstores/block为iSCSI服务端配置共享设备
create disk0 /dev/md0 # disk0 是存储设备的名字(自己设置)
(4)创建 iSCSI target 名称及配置共享资源
cd iscsi # 进入 iscsi 目录下
create # 创建一个存放共享资源
cd tpql/luns # 进入 /tpql/luns 目录下,用于存放共享存储设备
create /backstores/block/disk0 # 将原先创建的disk0加载到当前目录
(5)设置 ACL 访问控制列表
# iSCSI 协议是通过用户端名称进行验证的
# 用户在登陆时不需要登陆密码
cd .. # 到上一个目录 /iscsi/iqn.20.../tpgl
cd acls # 存放能够访问iSCSI服务共享设备资源的客户端名称
create iqn.20...:client #在连接时,需要被用到
(6)检查并退出
ls / # 查看结构的组成,检查相应的内容
exit # 利用 exit 退出,不要暴力退出,否则不会保存
systemctl restart targetd # 重启targetd服务
firewall-cmd --permanent --add-port=3260/tcp # 修改防火墙
firewall-cmd --reload # 重启防火墙,使策略立即生效
3 > 配置 Linux 客户端
(1)安装 iSCSI 客户端
yum install iscsi-initiator-utils
(2)配置基本信息
vim /etc/iscsi/initiatorname.iscsi # 填入服务端设置的用户标识符
systemctl restart iscsid # 重启 iscsi 服务
systemctl enable iscsid # 将 iscsi 服务设置为启动项
(3)利用 iscsiadm 工具管理
iscsiadm -m discovery -t st -p <服务端 ip>
# 用于管理、查询、插入、更新或删除
# -m discovery 目的是扫描并发现可用的共享存储资源
# -t st 为执行扫描操作的类型
iscsiadm -m node -T <发现的 iSCSI 设备名> -p <服务端 ip> --login
# -m node 将客户端主机作为节点服务器
# -T 指定共享的设备 --login 进行登陆验证
mkfs.xfs /dev/sdb # 格式化登陆的共享存储硬盘
mkdir /iscsi # 创建挂载文件
mount /dev/sdb /iscsi # 挂载存储硬盘
df -h # 查看本机硬盘情况
(4)其他有关命令
blkid | grep /dev/sdb # blkid 用来查看设备的名称、文件系统及UUID
# 避免下次挂载时名称改变,可以将信息存入 /dev/fstab 文件
# 在 /etc/fstab 添加如下信息
# < _netdev 表示系统联网后再进行挂在操作 >
UUID = 存储硬盘名称 本机挂载硬盘的文件(/iscsi) xfs defaults,_netdev 0 0
(5)关闭连接
iscsiadm -m node -T 挂载硬盘名称 -u # -u参数将设备卸载
4 > 配置 Windows 客户端
(1)打开 iSCSI 客户端程序
iSCSI 位置:
控制面板-> 管理工具 -> iSCSI 发起程序 -> 配置 -> 目标 -> 填写目标 -> 连接
管理工具-> 计算机管理 -> 存储 -> 首先格式化磁盘1 -> 右击磁盘1新建卷
(2)步骤
附录:来自于《 Linux就该这么学 》笔记