SCSI - SCSI-3协议族简介

 SCSI协议的发展历程

       SCSI(Small Computer System Interface)是一种广泛使用的计算机总线标准,旨在实现计算机与外部设备(如硬盘、打印机和扫描仪)之间的通信。SCSI规范的发展历程如下:

  1. 初期阶段(1980年代)

    • SCSI-1(1986年):SCSI规范的首次发布。它定义了7个设备的连接、数据传输速率为5 MB/s,以及8位宽的数据总线。
    • SCSI-2(1994年):在SCSI-1的基础上进行了扩展,增加了支持更大设备数量(最多可连接16个设备)、更高的传输速率(可达10 MB/s)以及对更复杂的设备(如扫描仪)的支持。
  2. 中期发展(1990年代)

    • SCSI-3(1996年):进一步提升了性能,允许使用多种传输协议,包括并行和串行连接。SCSI-3定义了不同的协议(如Ultra SCSI,Ultra2 SCSI)以提高速度,Ultra3 SCSI的传输速率达到40 MB/s。
    • Fast SCSI与Ultra SCSI:这些是SCSI-3的不同实现,Fast SCSI提供了更高的速率,而Ultra SCSI则进一步提高了性能,支持更高的传输速率。
  3. 串行SCSI的引入(2000年代)

    • SAS(Serial Attached SCSI):在2004年引入,标志着SCSI从并行转向串行连接。SAS提供了更高的速度(可达6 Gb/s,后续版本更高),并且可以向后兼容SCSI设备。
  4. 现代发展(2010年代及之后)

    • SCSI Express:结合了SAS和PCI Express技术,提供了更高的传输速率和更低的延迟。
    • NVMe(Non-Volatile Memory Express):虽然不完全属于SCSI,但与SCSI的演变密切相关,针对闪存存储设备的高速访问需求进行优化。

SCSI-3协议族

  • SCSI-3协议族概括

SCSI-3(Small Computer System Interface-3)是一组标准,由国际标准化组织(ISO)和美国国家标准学会(ANSI)发布。SCSI-3标准包含了许多不同的规范,这些规范之间有着不同的关系。

在SCSI-3中,每个规范都是独立的,它们描述了不同方面的SCSI-3协议。这些规范可以单独使用,也可以一起使用,以满足具体的应用需求。

其中一些主要的SCSI-3规范包括:

  • SCSI-3 Architecture Model (SAM):定义了SCSI-3协议的体系结构和概念模型;

  • SCSI Primary Commands - 3 (SPC-3):定义了SCSI-3协议中的基本命令集;

  • SCSI Block Commands - 3 (SBC-3):定义了在块设备上执行数据传输的命令集;

  • SCSI Stream Commands - 3 (SSC-3):定义了在流设备上执行数据传输的命令集;

  • SCSI Enclosure Services - 3 (SES-3):定义了在存储器件封装中执行的命令集;

  • SCSI Multimedia Commands - 3 (MMC-3):定义了在多媒体设备上执行的命令集。

每个规范都描述了SCSI-3协议中的一些特定方面。它们之间的关系可以被视为一种模块化设计,使得不同的规范可以在不同的应用环境中灵活使用。例如,一个应用可能只需要使用SPC-3和SBC-3规范,而另一个应用可能需要使用所有这些规范。

  • SCSI-3 Architecture Model

        SCSI-3 Architecture Model(SAM)是SCSI-3标准中的一个规范,它描述了SCSI-3协议的体系结构和概念模型。SAM主要在讲解SCSI-3协议的三个层次:应用层、传输层和物理层,以及它们之间的交互关系。SAM定义了SCSI-3协议中的三个主要组件:

  1. SCSI设备:SCSI设备是指在SCSI总线上连接的设备,包括磁盘驱动器、磁带驱动器、光盘驱动器等。每个SCSI设备都有一个唯一的SCSI地址,以便在SCSI总线上识别和寻址。

  2. SCSI主机:SCSI主机是指在SCSI总线上控制和管理SCSI设备的主机,通常是一个服务器或工作站。SCSI主机可以向SCSI设备发送命令,并从SCSI设备接收响应。

  3. SCSI总线:SCSI总线是连接SCSI设备和SCSI主机的物理介质,它提供了在它们之间传输数据的通道。

        SAM规范还定义了一些SCSI-3协议中的基本概念,例如SCSI命令和SCSI响应。SCSI命令是SCSI主机发送给SCSI设备的指令,用于执行特定的操作,例如读取数据或写入数据。SCSI响应是SCSI设备返回给SCSI主机的信息,用于指示操作是否成功,并提供结果数据(如果有的话)。

        除了这些基本概念之外,SAM还定义了一些高级概念,例如SCSI-3协议中的逻辑单元号(LUN)和设备类型码(Device Type Code)。这些概念用于识别和管理SCSI设备,并支持多个逻辑设备连接到单个SCSI地址上的功能。

  • SCSI Primary Commands-3(SPC-3)

        SCSI Primary Commands-3(SPC-3)定义了SCSI-3协议中的基本命令集。SPC-3规范主要在讲解SCSI-3协议中的通用命令,这些命令适用于所有SCSI设备。SPC-3规范定义了一组基本的SCSI命令,包括读取数据、写入数据、检查设备状态、发送控制命令等等。这些命令可以用于管理和操作SCSI设备,并支持数据传输、设备控制、错误恢复和性能优化等功能。

        SPC-3规范还定义了一些重要的SCSI概念,例如SCSI命令块(SCSI Command Descriptor Block,CDB)和SCSI状态字(SCSI Status Descriptor)。SCSI命令块用于描述SCSI命令的内容和参数,以便SCSI设备正确执行命令。SCSI状态字用于表示SCSI设备对SCSI命令的响应状态,并提供有关命令执行结果的信息。

        除了基本命令和概念之外,SPC-3规范还定义了一些高级命令和特性,例如命令队列、自动请求发送(Asynchronous Event Notification,AEN)、多路径I/O(Multipath I/O,MPIO)和块大小抽象(Block Size Abstraction)。这些特性可以提高SCSI设备的性能和可靠性,并为应用程序提供更好的控制和管理。

  • SCSI Block Commands - 3 (SBC-3)

        SBC-3定义了SCSI协议在块设备上的命令和功能,主要在讲解SCSI协议在磁盘、固态硬盘和其他块设备上的操作。

        SBC-3规范定义了一组SCSI命令,用于读取和写入块设备中的数据。这些命令包括读取块、写入块、读取元数据、写入元数据等。SBC-3规范还定义了一些高级命令和特性,例如写入同步(Write Synchronization)、数据比较(Data Comparison)和块寿命信息(Block Life Information)。这些命令和特性可以提高块设备的性能和可靠性,并为应用程序提供更好的控制和管理。

        此外,SBC-3规范还定义了一些重要的概念,例如块设备的大小、块的编号方式、块设备的访问模式和块设备的容量管理。这些概念可以帮助开发人员理解和管理块设备,并确保SCSI命令正确地操作块设备。

  • SCSI Enclosure Services-3 (SES-3)

        SES-3主要定义了一组用于管理储存设备封装的命令和协议。这些封装可以包含多个磁盘驱动器、电源单元、风扇、LED指示灯等元素,用于构建存储系统中的物理基础设施。SES-3规范涵盖了与封装设备通信、监视和控制设备、报告设备状态等方面的内容。

        SPC-3定义了用于发送命令和接收响应的通用SCSI命令,而SES-3则提供了一些专门针对封装设备的附加命令和功能。这些命令包括查询封装设备的状态、控制封装设备的操作以及报告封装设备中各个元素(如驱动器、电源、风扇)的状态等。因此,SES-3规范可以视为在SPC-3协议的基础上,为封装设备提供了额外的管理和控制功能。

        总的来说,SES-3规范作为SCSI协议族的一部分,与其他协议共同构建了一个完整的存储系统管理框架,使得用户可以更加灵活地管理和控制储存系统中的各个组件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值