【存储】SCSI、iSCSI协议详解及对比

作        者:  @NGDCN

原文链接:【存储】SCSI、iSCSI协议详解及对比 - NGDCN

版        权: 本文由 @NGDCN 于2022-11-11原创发布在 NGDCN,未经许可,禁止转载。

SCSI

SCSI是小型计算机系统接口(Small Computer System Interface)的简称,于1979首次提出,是为小型机研制的一种接口技术,现在已完全普及到了小型机,高低端服务器以及普通PC上。SCSI协议定义了一套不同设备(磁盘,磁带,处理器,光设备,网络设备等)利用该框架进行信息交互的模型和必要指令集。

SCSI指的是一个庞大协议体系,可以划分为SCSI-1、SCSI-2、SCSI-3,最新的为SCSI-3,也是目前应用最广泛的SCSI版本。

◼ SCSI-1:1979年提出,支持同步和异步SCSI外围设备;支持7台8位的外围设备,最大数据传输速度为5MB/s。

◼ SCSI-2:1992年提出,也称为Fast SCSI,数据传输率提高到20MB/s。

◼ SCSI-3:1995年提出,Ultra SCSI(Fast-20)。Ultra 2 SCSI(Fast-40)出现于1997年,最高传输速率可达80MB/s。1998年9月,Ultra 3 SCSI(Utra 160 SCSI)正式发布,最高数据传输率为160MB/s。Ultra 320 SCSI的最高数据传输率已经达到了320MB/s。

SCSI协议本质上同传输介质无关,SCSI可以在多种介质上实现,甚至是虚拟介质。例如基于光纤的FCP链路协议(FCP,Fibre Channel Protocol,是使用底层光纤通道连接的 SCSI接口 协议),基于SAS的链路协议(串行SCSI协议(SSP)用于传输SCSI命令),基于虚拟IP链路的iSCSI协议。通俗点说SCSI协议就是一个存储设备与服务器之间接口传递的一个规范。

【存储】SCSI、iSCSI协议详解及对比_第1张图片

SCSI 实现了一种客户机/服务器风格的通信架构。发起者/Initator向目标设备/Target发送命令请求。该目标处理此请求并向发起者返回响应。发起者可以是托管计算机中的一个 SCSI 设备,而 SCSI 最终访问目标则可以是一个磁盘、光盘和磁带设备或特殊设备(比如箱体设备,LUN)。下图是一个整体逻辑拓扑架构示例。

【存储】SCSI、iSCSI协议详解及对比_第2张图片

逻辑单元(LUN):LUN是SCSI目标器中所描述的名字空间资源,一个目标器可以包括多个LUN,而且每个LUN的属性可以有所区别,比如LUN#0可以是磁盘,LUN#1可以是其他设备。

启动器(Initiator):本质上,SCSI是一个C/S架构,其中客户端成为启动器,负责向SCSI目标器发送请求指令,一般主机系统都充当了启动器的角色。启动器通常在软件中实现,其功能类似于硬件 iSCSI HBA,以从远程存储服务器访问目标。使用基于软件的 iSCSI 发起程序需要连接到具有足够带宽的现有以太网网络以承载预期的存储流量。

目标器(Target):处理SCSI指令的服务端称为目标器,它接收来自主机的指令并解析处理,比如磁盘阵列的角色就是目标器。 SCSI的Initiator与Target共同构成了一个典型的C/S模型,每个指令都是“请求/应答”这样的模型来实现。为了提供对存储或输出设备的访问,目标配置有一个或多个逻辑单元号 (LUN)。在 iSCSI 中,LUN 显示为目标的按顺序编号的磁盘驱动器,尽管目标通常只有一个 LUN。启动器与目标执行 SCSI 协商以建立到 LUN 的连接。LUN 以模拟 SCSI 磁盘块设备的形式响应,它可以以原始形式使用,也可以使用客户端支持的文件系统进行格式化。iscsi 通过使用 ACL 提供 LUN 屏蔽。这确保了只有指定的客户端节点才能登录到特定的目标。在目标服务器上,可以在 TPG 级别设置 ACL 以保护 LUN 组,或为每个 LUN 单独设置。

◼ Initiator主要任务:发出SCSI请求。

◼ Target主要任务:回答SCSI请求,通过LUN提供业务,并通过任务管理器提供任务管理功能。

iSCSI

iSCSI是由Cisco和 IBM两家发起的,2003年2月由IETF(互联网工程任务组)认证通过,是一项比较成熟的技术。它将SCSI命令封装在TCP/IP包里,并使用一个iSCSI帧头。它基于IP协议栈,假设以不可靠的网络为基础,依靠TCP恢复丢失的数据包。iSCSI继承了两大最传统技术:SCSI和TCP/IP协议。这为iSCSI的发展奠定了坚实的基础。基于iSCSI的存储系统只需要不多的投资便可实现SAN存储功能,甚至直接利用现有的TCP/IP网络。相对于以往的网络存储技术,它解决了开放性、容量、传输速度、兼容性、安全性等问题,其优越的性能使其备受始关注与青睐。

【存储】SCSI、iSCSI协议详解及对比_第3张图片

如上图所示,iSCSI (Internet SCSI)把SCSI命令和块状数据封装在TCP中在IP网络中传输。iSCSI作为SCSI的传输层协议,基本出发点是利用成熟的IP网络技术来实现和延伸SAN。 iSCSI协议是SCSI远程过程调用模型到TCP/IP协议的映射。SCSI协议层负责生成CDB,并将其送到iSCSI协议层,然后由 iSCSI协议层进一步封装成PDU,经IP网络进行传送。

iSCSI工作流程

 

◼ iSCSI系统由SCSI适配器发送一个SCSI命令。

◼ 命令封装到TCP/IP包中并送入到以太网络。

◼ 接收方从TCP/IP包中抽取SCSI命令并执行相关操作。

◼ 把返回的SCSI命令和数据封装到TCP/IP包中,将它们发回到发送方。

◼ 系统提取出数据或命令,并把它们传回SCSI子系统。

具体来讲,发起端(Initiator):

◼ SCSI层负责生成CDB(命令描述符块),将CDB传给iSCSI。

◼ iSCSI层负责生成iSCSI PDU(协议数据单元),并通过IP网络将PDU发给target。

目标器(Target):

◼ iSCSI层收到PDU,将CDB传给SCSI层。

◼ SCSI层负责解释CDB的意义,必要时发送响应。

总结

SCSI与ISCSI区别

◼ iSCSI,即internet SCSI,是IETF制订的一项标准,用于将SCSI数据块映射成以太网数据包。从根本上说,iSCSI协议是一种跨过IP网络来传输潜伏时间短的 SCSI数据块的方法;简单的说, iSCSI可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。

◼ SCSI 的意义是小型计算机系统接口(Small Computer System Interface);今天的SCSI已划分为SCSI-1和SCSI-2,以及最新的SCSI-3三个类型。不过,目前最为流行的版本还要算是SCSI-2

参考资料

1、SCSI/ISCSI协议_嚴 帅的博客-CSDN博客_iscsi scsi

2、SCSI、FC、iSCSI三大协议概述 - 知乎

3、scsi和iscsi区别_yujin2010good的博客-CSDN博客_iscsi和scsi

4、https://www.interserver.net/tips/kb/iscsi-internet-scsi-target-initiator-configuration/

5、存储知识学习之--IP网络存储iSCSI的概念与工作原理-阿里云开发者社区

你可能感兴趣的:(存储,网络,网络协议)