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

逻辑单元(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网络。相对于以往的网络存储技术,它解决了开放性、容量、传输速度、兼容性、安全性等问题,其优越的性能使其备受始关注与青睐。

如上图所示,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的概念与工作原理-阿里云开发者社区

【存储】SCSI、iSCSI协议详解及对比相关推荐

  1. [免费专栏] Android安全之数据存储与数据安全「详解」

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  2. 【计算机网络面试高频】-HTTP协议详解,HTTP协议常见问题

    4.HTTP协议详解有关问题 4.1 HTTP请求 一个HTTP请求报文由请求行.请求头部.空行和请求数据四个部分组成. 1.请求行 请求行中有请求方法字段.URL字段和HTTP协议版本3个字段组成. ...

  3. SSL(Secure Sockets Layer)安全套接层协议详解

    SSL(Secure Sockets Layer)安全套接层协议详解 SSL简介 SSL历史发展 1.诞生 2.更名 3.发展 SSL协议结构 SSL协议结构详解 SSL警告协议 SSL修改密文协议 ...

  4. HTTPS协议详解(三):PKI 体系

    本文大部分内容摘自:http://www.wosign.com/faq/faq2016-0309-03.htm 尊重知识产权,转载注明Wosign -------------------------- ...

  5. HTTP协议详解(真的很经典)

    转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...

  6. Http 协议详解笔记

    HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第 ...

  7. Http协议 详解(转载)

    http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分 ...

  8. HTTP协议详解 转自小坦克

    HTTP协议详解 转自小坦克 -- 有些文章是引用别人的,为了方便我以后或不再备注;引用目的是因为直接网摘里面的地址经常被重置,找不到原来的文章 当今web程序的开发技术真是百家争鸣,ASP.NET, ...

  9. 【HTTP协议】超详细的HTTP协议详解

    基本介绍 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/ ...

最新文章

  1. centos 7 部署 open-falcon 0.2.0
  2. matlab截图放不下,[转载]【MATLAB】MATLAB的自带数据及可生成数据的函数——图片形式...
  3. linux 命令 单词,linux中常用的命令相对应的单词
  4. 来来来,一起五句话搞定JavaScript作用域
  5. 电子书下载:Ultra-Fast ASP.NET 4.5 2nd
  6. Windows Server 2008 R2 域控DOS命令
  7. Maven Plugins
  8. Dubbo 源码解析 —— Directory
  9. visio一分二的箭头_visio双箭头怎么画? visio2013绘制双箭头直线的教程
  10. Python程序员培训计划
  11. TextView 跑马灯效果
  12. SVN更新出错 提示:working copy XXX locked
  13. 嵌入式系统中的电源管理
  14. 如何修复无法打开的Excel文件,三大原因三大方法为你解决
  15. layui弹框回车越来越黑
  16. 一文告诉你车载测试的秘密
  17. 合并k个有序链表 python_Leetcode打卡 | No.23 合并 k 个有序链表
  18. 用户登录、注册(基于MyBatis+CSS+HTML+Selvet)
  19. Java实现简单的倒排索引
  20. 从前慢-MySql高级

热门文章

  1. 【数量技术宅|量化投资策略系列分享】多周期共振交易策略
  2. 科技观察:通用人工智能已被中央关注
  3. java编程思想企业版Enterprise Thingking in java
  4. 用c语言写心理测试,心理小测试题目及答案
  5. Unity UGUI Text 首行缩进,空白字符
  6. 设置电脑眼睛保护色_百度经验
  7. 2023 新年倒计时HTML源码
  8. 小伙用VC.NET还原多阶魔方全过程,嗯,CPU的香味
  9. 基于在线地图的轨迹跟踪服务_论文推荐丨陆川伟,孙群,陈冰,等:车辆轨迹数据的道路学习提取法...
  10. uniapp开发APP和微信小程序——使用高德实现定位