• ISCSI的部署与安装


    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				 		# 开放3260端口(默认情况下,网络通信是至iSCSI目标上的3260/tcp明文端口)
    
    [root@localhost ~]# fdisk -l /dev/sdb		# 创建用于共享的物理磁盘
       设备 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 ~]# rpm -qa | grep target
    targetcli-2.1.fb41-3.el7.noarch(确保有这个程序,没有则需要YUM安装)
    selinux-policy-targeted-3.13.1-102.el7.noarch
    [root@localhost ~]# systemctl start target
    [root@localhost ~]# targetcli 			 //命令可tab【/backstores/block是iSCSI服务端配置共享设备的位置】
    /> ls					# 查看菜单目录结构
    .............................................................................................................. 
      o- backstores 		# 指定可以添加的存储设备类型
      | o- block 			# 数据块
      | o- fileio			# 文件数据
      | o- pscsi 			# 物理SCSI
      | o- ramdisk 			# 内容
      o- iscsi 				# 保存target的相关属性,例如:acl,portal
      o- loopback
    backstores表示支持存储对象的“后端类型”。主要由:
    block		block类型存储对象    适用于本地块设备和逻辑设备(保存的是块设备)
    fileio		fileio类型存储对象   适用于存储在本地磁盘上的常规文件(保存的是文件类型设备)
    pscsi		pscsi类型存储对象    适用于直接通过SCSI命令访问的资源(本地实体scsi设备)
    ramdisk		ramdisk类型存储对象  适用于临时缓存设备,支持多session(内存磁盘)
    
    # 设置/dev/sdb1为共享硬盘并起名为k1
    /> backstores/block create k1 /dev/sdb1
    # 生成外部共享名称【创建标签IQN (Iscsi Qualified Name)】
    /> iscsi/ create iqn.2021-06.com.baidu.www:k1
    iqn		限定名称
    2021-06 固定格式YYYY-MM(不可以加月份)
    com.baidu.www		反向域名
    :k1		自定义标识(k1可以改)
    # 创建ACL列表(生成密钥)
    /> iscsi/iqn.2021-06.com.baidu.www:k1/tpg1/acls create wwn=iqn.2021-06.com.qq.www.client1
    # 绑定设备【lun:逻辑单元号(外部名称和和内部名称关联)】
    /> 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 
    # 指定本机提供服务的IP地址及端口(默认情况下,iscsi发起方和目标方之间通过端口3260连接)
    /> iscsi/iqn.2021-06.com.baidu.www:k1/tpg1/portals create ip_address=192.168.1.1 ip_port=3260
    # 保存并应用(exit自动保存)
    /> saveconfig
    #清空IQN等相关配置
    /> clearconfig  confirm=true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

    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
    # 设置服务端密钥(initiatorname.iscsi标记了initiator的名称)
    echo "InitiatorName=iqn.2021-06.com.qq.www.client1" >/etc/iscsi/initiatorname.iscsi
    systemctl restart iscsid			# iscsid(用于设置密钥)与iscsi(登录访问磁盘)是两个服务【可以不重启iscsid,默认启动】
    # 连接ISCSI设备(或者重启iscsi)
    iscsiadm -m node -T iqn.2021-06.com.baidu.www:k1 -l
    # 断开ISCSI设备
    iscsiadm -m node -T iqn.2021-06.com.baidu.www:k1 -u
    # 查看target记录
    iscsiadm -m node
    # 查看所有iscsi连接
    iscsiadm -m session			
    
    -m:模式(discovery:发现,node:节点)
    -t:sendtargets(st) 类型 将服务端的信息发送给客户端(其中st表示允许每个iSCSItarget发送一个可用target列表给initiator)
    -T:指定要连接的服务目标(iqn设备名)
    注意:此处InitiatorName须与服务端配置的ACL允许ISCSI客户机连接的名称一致(指定密钥才能连接)
    # 查看nodes
    iscsiadm 侦测到的的结果会写入/var/lib/iscsi/nodes/ 中,因此只需启动iscsi就能够在下次开机时,自动连接到正确的target了~
    [root@localhost ~]# ll /var/lib/iscsi/nodes/
    drw-------. 3 root root 32 621 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 文件中了。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    Difficulties like springs, you weak it strong, you strong it weak.

  • 相关阅读:
    如何借助现有股票量化交易平台编写策略和回测分析
    文件包含漏洞全解
    无胁科技-TVD每日漏洞情报-2022-11-24
    Docker镜像分层
    这里有一份超实用Excel快捷键合集(常用+八大类汇总)
    Kotlin 空类型,区间,数组
    【笔者感悟】笔者的工作感悟【七】
    【光电工程实训】几何光学 小孔成像 光的反射 光的折射 透镜成像
    你不知道的自然语言处理应用场景和挑战
    java基于springboot教学评价管理系统附源码
  • 原文地址:https://blog.csdn.net/qq_50573146/article/details/126611448