iSCSI(Internet Small Computer System Interface,Internet小型计算机系统接口)是一种由IBM公司研究开发的IP SAN技术。
该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,基于 TCP/IP的协议连接iSCSI服务端(Target)和客户端(Initiator),使得封装后的SCSI数据包可以在通用互联网传输,最终实现iSCSI服务端映射为一个存储空间(磁盘)提供给已连接认证后的客户端。
整体架构概述
iSCSI是一种存储设备远程映射技术
,它可以将一个远程服务器上的存储设备映射到本地,并呈现为一个块设备(大白话就是磁盘)。
从普通用户的角度,映射过来的磁盘与本地安装的磁盘毫无差异。这种映射方式基于是基于SCSI协议
的,SCSI协议是计算机与外围设备(例如硬盘、光盘等)通信的协议。而iSCSI则是通过TCP协议对SCSI进行封装的一种协议,也就是通过以太网传输SCSI协议的内容
iSCSI 的工作原理
ISCSI 通过在服务器上的iSCSI 启动器和存储设备上的iSCSI 目标之间传输块级数据来工作。iSCSI 协议封装 SCSI 命令并将数据组装到 TCP/IP 层的数据包中。使用点对点连接通过网络发送数据包。到达后,iSCSI 协议分解数据包,分离 SCSI 命令,以便操作系统 (OS) 将存储视为本地连接的 SCSI 设备,可以像往常一样进行格式化。今天,iSCSI 在中小型企业 (SMB) 中的流行与服务器虚拟化利用存储池的方式有关。在虚拟化环境中,集群内的所有主机都可以访问存储池集群节点通过iSCSI协议通过网络与存储池进行通信。有许多 iSCSI 设备可以在客户端服务器和存储系统之间实现这种类型的通信。
此图显示了为 iSCSI 规划网络的更实用的方法。通过为存储网络添加专用以太网交换机或允许在专用以太网网络不可用时将生产 LAN 用作备份路径,可以扩展此设计以允许多路径 I/O。
iSCSI 的组件
ISCSI 的组件包括
☑ iSCSI initiator
iSCSI启动器是安装在服务器中的一种软件或硬件,用于向基于iSCSI的存储阵列或iSCSI目标发送数据或从其接收数据。
使用软件启动器时,可以使用标准以太网组件(如网络接口卡)来创建存储网络。但是将软件启动器与网卡一起使用实际上将所有处理负担都留给了服务器的CPU,这可能会影响服务器处理其他任务的性能。
iSCSI主机总线适配器类似于光纤通道(FC) HBA。它减轻了主机系统处理器的大量处理负担,提高了服务器和存储网络的性能。然而,性能的提高是有代价的,因为iSCSI HBA的成本通常是标准以太网NIC的三到四倍。一个类似的,但稍微便宜一点的替代方案是iSCSI卸载引擎——或iSOE——顾名思义,它从主机上卸载一些进程。
☑ iSCSI target
在iSCSI配置中,存储系统是“target”。target实际上是一台服务器,它托管存储资源并允许通过一个或多个网卡、HBA或iSOE访问存储。
☑ iSCSI vs Fibre Channel
最初,iSCSI存储系统被定位为更昂贵但性能更高的基于光纤通道的存储阵列
的替代品,这些存储阵列处理企业数据中心中的大量数据块存储任务。FC阵列使用专为存储任务设计的协议来读写存储设备的数据,因此它通常为块存储访问提供最高的性能——这种访问类型通常是具有高事务率、要求快速I/o和低延迟的数据库应用程序的首选。
配置iSCSI存储的过程类似于设置FC存储,创建逻辑单元号(LUN)是该过程的基础。
实验环境
1.服务端ISCSI Target配置(192.168.1.1)
firewall-cmd --permanent --add-port=3260/tcp
firewall-cmd --reload
[root@localhost ~]
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 8390655 2097152 8e Linux LVM
/dev/sdb3 8390656 12584959 2097152 8e Linux LVM
[root@localhost ~]
targetcli-2.1.fb41-3.el7.noarch(确保有这个程序,没有则需要YUM安装)
selinux-policy-targeted-3.13.1-102.el7.noarch
[root@localhost ~]
[root@localhost ~]
/> ls
..............................................................................................................
o- backstores
| o- block
| o- fileio
| o- pscsi
| o- ramdisk
o- iscsi
o- loopback
backstores表示支持存储对象的“后端类型”。主要由:
block block类型存储对象 适用于本地块设备和逻辑设备(保存的是块设备)
fileio fileio类型存储对象 适用于存储在本地磁盘上的常规文件(保存的是文件类型设备)
pscsi pscsi类型存储对象 适用于直接通过SCSI命令访问的资源(本地实体scsi设备)
ramdisk ramdisk类型存储对象 适用于临时缓存设备,支持多session(内存磁盘)
/> backstores/block create k1 /dev/sdb1
/> iscsi/ create iqn.2021-06.com.baidu.www:k1
iqn 限定名称
2021-06 固定格式YYYY-MM(不可以加月份)
com.baidu.www 反向域名
:k1 自定义标识(k1可以改)
/> iscsi/iqn.2021-06.com.baidu.www:k1/tpg1/acls create wwn=iqn.2021-06.com.qq.www.client1
/> iscsi/iqn.2021-06.com.baidu.www:k1/tpg1/luns create storage_object=/backstores/block/k1
/> iscsi/iqn.2021-06.com.baidu.www:k1/tpg1/portals delete 0.0.0.0 ip_port=3260
/> iscsi/iqn.2021-06.com.baidu.www:k1/tpg1/portals create ip_address=192.168.1.1 ip_port=3260
/> saveconfig
/> clearconfig confirm=true
2.客户端iSCSI Initiator配置(192.168.1.10)
rpm -qa | grep iscsi
yum -y install iscsi-initiator-utils
iscsiadm -m discovery -t st -p 192.168.1.1
echo "InitiatorName=iqn.2021-06.com.qq.www.client1" >/etc/iscsi/initiatorname.iscsi
systemctl restart iscsid
iscsiadm -m node -T iqn.2021-06.com.baidu.www:k1 -l
iscsiadm -m node -T iqn.2021-06.com.baidu.www:k1 -u
iscsiadm -m node
iscsiadm -m session
-m:模式(discovery:发现,node:节点)
-t:sendtargets(st) 类型 将服务端的信息发送给客户端(其中st表示允许每个iSCSItarget发送一个可用target列表给initiator)
-T:指定要连接的服务目标(iqn设备名)
注意:此处InitiatorName须与服务端配置的ACL允许ISCSI客户机连接的名称一致(指定密钥才能连接)
iscsiadm 侦测到的的结果会写入/var/lib/iscsi/nodes/ 中,因此只需启动iscsi就能够在下次开机时,自动连接到正确的target了~
[root@localhost ~]
drw-------. 3 root root 32 6月 21 22:51 iqn.2021-06.com.baidu.www:k1
侦测信息都写入了/var/lib/iscsi/nodes/iqn.2022-02.com.baidu.www\:aa/192.168.1.1\,3260\,1/default 文件中了。
Difficulties like springs, you weak it strong, you strong it weak.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)