linux I/O栈 之 SCSI TARGET (2) iscsi target-<1>协议

      1、iSCSI  概念

    

    我把iscsi target作为TARGET的第一篇来讲,主要因为很多人知道I/O导出协议,也都是第一个想到iscsi。

    iscsi是什么。首先,我们来讲讲它的概念。

    

SCSI,小型计算机系统接口,是基于client-server模型设计的存储接口,SCSI的client(initiator)将命令发送给server(target),server处理命令后回应result给client。由于要传送命令必然要用到相应的传输协议保障,iSCSI就是其中的一种传输协议,除此之外还有FC和SAS等。

iSCSI是SCSI over IP缩写,它使用TCP/IP协议来传递SCSI命令与响应,其借用现有成熟廉价的以太网来实现SCSI通讯,成本低,管理和使用非常方便。

iSCSI有initiator和target两个部分,分别对应于SCSI的initiator和target,iSCSI的initiator与target使用TCP进行传输协议实现了SCSI的initiator与target之间的数据传输。

2、iSCSI 协议

SCSI target中包含许多LU(逻辑单元),每一个SCSI命令都有其目标LU,这些LU负责对针对其的SCSI命令进行处理与响应。iSCSI有自己的PDU,在iSCSI initiator端,其包含SCSI initiator下发给其的LUN(逻辑单元号码)及SCSI命令(CDB),在被作为TCP的数据部分传递到iSCSI target端后由SCSI target根据LUN将SCSI命令投放到目标LU中,LU在处理命令后把响应结果递交给SCSI target,SCSI target再将其递交给iSCSI target,iSCSI target把结果封装成iSCSI PDU,再使用TCP回传给iSCSI initiator,iSCSI initiator再将结果递交给上层。


猜你喜欢

转载自blog.51cto.com/12580077/2312229