iSCSI概述一

iSCSI是一种使用TCP/IP网络传输SCSI命令的协议,它允许主机通过标准网络访问存储设备。文章介绍了iSCSI的历史、工作机制,以及其如何通过请求/响应模式在主机和目标设备之间进行通信。同时,文章还讨论了iSCSI的发现机制,包括静态和动态发现,以及其在存储网络中的应用和优势。
摘要由CSDN通过智能技术生成

iSCSI历史:

  1. 最初,SCSI(Small Computer Systems Interface)是为与存储设备通信而设计的接口协议。

  2. 随后,Fibre Channel推动了设备和传输方式的分离,将命令与设备分开,同时也关注命令是如何传输的。

  3. iSCSI的方法是:使用TCP/IP作为传输的基础,将SCSI块协议传输在TCP/IP网络上。

    它是唯一一种不涉及硬件定义的主流SCSI传输方式。

  4. iSCSI最初在2002-2004年间由IBM、思科(Cisco)、惠普(HP)等公司在IETF RFC 3720中进行了定义。后来在2014年,通过RFC 7143进行了更新。

  5. iSCSI的主要目标是在标准(TCP/IP)网络上定义块存储,从而将存储与计算资源分离,使得存储设备可以通过IP网络访问。这种方法在SAN(存储区域网络)的部署中变得非常普遍,使得网络存储可以更加灵活地管理和扩展,同时提供了更好的存储利用率。

工作机制

iSCSI(Internet Small Computer Systems Interface)通过在TCP/IP数据包中封装SCSI(Small Computer Systems Interface)命令。它使得SCSI命令可以在基于IP的网络上传输,实现存储设备和主机之间使用标准网络基础设施进行通信。

当主机(发起者)想要通过iSCSI访问目标设备上的存储(例如磁盘阵列或存储服务器)时,它会生成用于执行读取、写入或其他与存储相关的操作的SCSI命令。然后,这些SCSI命令通过iSCSI头部封装在TCP/IP数据包中,形成iSCSI PDU(Protocol Data Unit,协议数据单元)。

iSCSI PDU通过IP网络发送,就像其他网络流量一样。iSCSI协议负责管理和协商发起者与目标设备之间的通信,确保正确传递SCSI命令,并接收适当的响应。

一旦到达目标设备,目标设备上的iSCSI协议处理iSCSI PDU,提取其中的SCSI命令,执行存储操作,并通过同样的TCP/IP通信发送适当的响应(例如成功或失败的响应)。

总结来说,iSCSI允许SCSI命令通过标准的TCP/IP网络进行传输,实现了主机与存储设备之间高效的存储通信。
请添加图片描述

SCSI概念

Request / Response protocol

请求/响应协议是一种通信协议范式,其中通信过程分为两个阶段:请求和响应。在这种模式下,通信的一方发送一个请求消息,而另一方接收该请求并回复一个相应的响应消息。

在iSCSI中,也采用了"请求/响应"模式。在iSCSI通信中,主机(也称为发起者/INITIATORS)生成存储相关的请求消息,并将其发送到目标设备(也称为服务端/TARGETS)。目标设备接收请求,执行相应的存储操作,并生成响应消息,然后将其发送回主机。

这种模式保证了通信的可靠性和顺序性。在iSCSI中,请求和响应都经过TCP/IP网络传输,从而确保了数据的准确性和可靠性。主机发出请求后,会等待目标设备的响应,然后继续执行后续的操作,形成一个有序的通信过程。

总结:iSCSI采用了基于请求和响应的通信模式,主机(发起者/INITIATORS)生成存储请求并发送到目标设备(服务端/TARGETS),目标设备执行请求并生成相应的响应消息,随后将响应发送回主机,完成通信过程。

SCSI INITIATORS are usually hosts

在计算设备中,如服务器或工作站,它们可以在iSCSI通信中同时充当INITIATORS(发起者)和TARGETS(服务端)的角色。主机既可以发起存储请求(作为INITIATOR),也可以接收并处理存储请求(作为TARGET)。

主机上的iSCSI INITIATORS可以与多个目标设备建立并维护多个并行连接。这意味着主机可以与多个存储设备进行通信,同时执行多个存储操作。这种并行连接的能力增加了iSCSI通信的灵活性和效率,使主机能够同时访问多个存储资源,从而提高了存储系统的整体性能。

这种多对多(many-to-many)的连接方式也是iSCSI在企业环境中非常受欢迎的原因之一,因为它允许在复杂的存储网络中有效地管理和分配存储资源。通过使用多个并行连接,主机可以同时与不同的目标设备通信,实现数据的高吞吐量和更好的负载均衡。

因此,iSCSI提供了灵活的通信方式,使得计算设备可以同时在发起者和服务端的角色中进行存储通信,并支持并行连接,从而提高存储系统的性能和可扩展性。

SCSI TARGETS are usually storage devices

在iSCSI中,存储设备(例如存储阵列)也可以充当发起者(INITIATORS),向其他目标设备(TARGETS)发起存储相关请求。这意味着存储设备不仅可以作为目标设备响应发起者的存储请求,还可以主动向其他目标设备请求存储操作。

此外,iSCSI目标设备(存储设备)可以与多个发起者(主机)建立并维护多个并行连接。这种能力使得存储设备可以同时处理来自多个主机的存储请求,提高存储系统的整体吞吐量和可扩展性。

总结:在iSCSI中,无论是主机还是存储设备都可以在发起者(INITIATORS)和目标设备(TARGETS)之间交替地发挥作用。主机可以发起存储请求,也可以响应来自其他设备的存储请求,而存储设备也可以主动发起存储请求,并处理来自多个主机的请求。这种灵活性使得iSCSI成为各种IT环境中广泛使用的存储网络协议。

iSCSI defines several identifiers to enable this:

在 iSCSI 中,有一些不同的名称和标识用于标识和管理 iSCSI 会话和连接。

  1. iSCSI Initiator Session Identifiers (ISID)(iSCSI 发起者会话标识):ISID 是用于唯一标识 iSCSI 会话的标识符。在 iSCSI 通信中,当一个主机(发起者)与一个目标设备(服务端)建立连接时,会话被创建,主机和目标之间的通信就被归为该会话。ISID 用于区分不同的会话,使得每个会话可以独立地管理和处理存储请求。

  2. iSCSI Connection Identifiers (CID)(iSCSI 连接标识):CID 是用于标识 iSCSI 中的不同连接的标识符。在一个 iSCSI 会话中,可能会有多个并行连接,CID 用于区分和管理这些连接。每个连接都代表着一条独立的通信路径,允许主机和目标之间进行多个并发的存储数据传输。

  3. iSCSI Target Portals (TPGT)(iSCSI 目标端口):iSCSI 目标端口是用于标识 iSCSI 目标设备上的不同网络端口的标识符。在一个 iSCSI 目标设备上,可能有多个网络端口用于处理来自不同发起者的存储请求。每个端口都有一个唯一的 TPGT,用于区分和路由存储请求到正确的端口和目标。

这些标识符和名称在 iSCSI 通信中起着关键的作用,确保不同的会话和连接得到正确的处理和管理。通过有效地使用这些标识符,iSCSI 可以提供高效和灵活的存储网络通信。

iSCSI

iSCSI 可以运行在任何 TCP/IP 支持的物理网络上,包括以太网、InfiniBand等。它利用 TCP/IP 协议来传输 SCSI 块协议,使得存储请求可以在不同类型的网络上进行传输。

在 iSCSI 中,块存储(Block Storage)是最常见和最典型的使用方式,也是唯一在 Windows Server 上受支持的存储方式。通过 iSCSI,主机可以使用 SCSI 块协议直接访问远程存储设备,使得这些存储设备在主机看来就像本地连接的磁盘一样,从而实现高效的块级存储访问。

关于 RFC 的情况:

  • RFC 5048 是对最初的 iSCSI 标准 RFC 3720 进行了修正和澄清。它对 iSCSI 的一些细节进行了补充和更正,以提高协议的可靠性和互操作性。
  • RFC 7143 是在 2014 年发布的更新版本,取代了原始标准 RFC 3720,并进一步完善了 iSCSI 协议。RFC 7143 对 iSCSI 协议进行了更新和扩展,以适应当时的网络环境和技术要求。

通过不断地更新和改进,iSCSI 成为了一种广泛使用的存储网络协议,为企业和数据中心提供了高效、灵活的存储解决方案。

请添加图片描述

iSCSI Names

在 iSCSI 中,iSCSI 名称具有全球唯一性。iSCSI 节点拥有名称,这些名称类似于 Fibre Channel 中的节点世界范围名称 (WWN)。

iSCSI 有两种主要的名称类型:

  1. iSCSI Qualified Name (IQN)(iSCSI 合格名称):这是一种采用全球唯一标识符的命名格式。它类似于 Fibre Channel 中的 WWN。IQN 的示例名称格式为:“iqn.1997-11.org.snia:hedgetrimmer-1926184”。IQN 名称在 iSCSI 中广泛使用,用于唯一标识 iSCSI 设备和节点。

  2. EUI iSCSI Name(EUI iSCSI 名称):这是采用 IEEE EUI-64 格式(扩展唯一标识符)的命名格式。它的名称格式中,前 24 位为公司标识符。示例名称格式为:“eui.02004567A425678D”。EUI iSCSI 名称在一些场景中使用,但并不像 IQN 名称那样普遍。

此外,iSCSI 还支持 iSCSI 别名(iSCSI Alias),这是一种"友好"的名称,用于在内部查看,但仅在内部使用,不具有全局唯一性。

总结:iSCSI 名称具有全球唯一性,主要有两种命名格式:iSCSI 合格名称 (IQN) 和 EUI iSCSI 名称。IQN 是 iSCSI 中广泛使用的全球唯一标识符格式,类似于 Fibre Channel 中的 WWN。另外,还有 iSCSI 别名,它是一种"友好"的名称,仅在内部使用。

Sessions, Connections and Target Portals请添加图片描述

I_T nexus & multi-connection sessions

iSCSI具有原生协议支持,可以将多个可靠传输连接组合成单个iSCSI会话。这种特性被称为"连接归属",每个I/O(输入/输出)在iSCSI会话中都与一个特定的传输连接相关联。

通过将多个网络适配器(NICs)的传输连接合并成一个iSCSI会话,可以扩展数据传输的吞吐量。这种方式可以实现负载均衡,并为正在进行的I/O提供连接故障的容错性。

iSCSI是一种"SCSI传输协议",它基于SCSI的命令和语义进行通信。iSCSI允许主机使用SCSI命令在IP网络上传输块级存储数据。它使得主机能够以一种与直接连接存储设备类似的方式访问远程存储资源。

然而,iSCSI本身依赖于与SCSI语义无关的不同传输协议。在iSCSI通信中,SCSI命令和数据被封装在TCP/IP或其他支持的网络协议中进行传输。这些底层传输协议负责确保数据的可靠传输,而iSCSI协议负责管理和解释SCSI命令和数据的传输。

因此,iSCSI作为一种SCSI传输协议,依赖于底层的网络传输协议来实现SCSI命令和数据的传输和通信。

请添加图片描述

iSCSI Discovery

在 iSCSI 中,有两种主要的发现方式用于找到可用的目标设备:静态发现和动态发现。

  1. 静态发现(Static Discovery): 静态发现是一种手动配置的方式,主机管理员通过提供目标设备的 IP 地址和 iSCSI 名称来手动建立连接。这些信息被称为发现地址(Discovery Address),主机会尝试使用这些地址来找到目标设备。这种方式需要管理员事先知道目标设备的连接信息,并手动配置它们,因此适用于相对简单的配置环境。

  2. 动态发现(Dynamic Discovery): 动态发现是一种更灵活的自动配置方式。在动态发现中,主机使用 SendTargets 命令向特定 IP 地址发送请求,以获取所有可用的 iSCSI 名称和 IP 地址列表。目标设备会响应这个请求,并将自己的信息返回给主机。然后,主机会使用这些信息建立与目标设备的连接。

动态发现允许主机在网络中自动发现新的目标设备,而无需手动配置每个目标设备的信息。这对于复杂的存储网络环境非常有用,因为管理员只需添加新的目标设备,主机会自动检测并建立连接。

总结:iSCSI支持静态发现和动态发现两种方式。静态发现需要手动配置目标设备的 IP 地址和 iSCSI 名称,而动态发现则通过 SendTargets 命令自动获取目标设备的信息,使得主机能够在网络中动态发现和连接目标设备。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值