BS ISO IEC 14776——小型计算机系统接口SCSI标准系列(SAS协议层与块命令)

Information Technology — Small Computer System Interface (SCSI): SAS Protocol Layer — 2 and SCSI Block Commands — 3

💾 BS ISO/IEC 14776 是国际标准化组织(ISO)与国际电工委员会(IEC)联合制定的小型计算机系统接口(SCSI)标准系列,英国标准协会(BSI)采纳其为英国国家标准。本批收录 ISO/IEC 14776-262:2017(SAS 协议层 2,SPL-2)与 ISO/IEC 14776-323:2017(SCSI 块命令 3,SBC-3)两个分部,涵盖串行连接 SCSI(SAS)传输层与磁盘块设备命令集两个核心层面,两者均以 ICS 35.200(信息技术应用)归类。

SCSI 是存储领域的”通用语言”:主机通过统一的 SCSI 命令集与各类存储设备(磁盘、磁带、光驱、RAID 控制器)通信。与并行 SCSI 相比,串行连接 SCSI(SAS)以高速串行链路取代宽并行总线,在保持命令集兼容的同时显著提升速率、改善信号完整性并支持更灵活的拓扑。SPL-2 定义了 SAS 的协议层行为,SBC-3 定义了直接访问块设备的命令语义,二者共同支撑起现代企业级存储的互操作基础。

💡 SCSI 体系的分层逻辑:上层是”命令集”(做什么),下层是”传输协议”(怎么传)。SBC-3 负责前者,SPL-2 负责后者;两者都建立在 SCSI 架构模型(SAM)与主命令集(SPC)的共同约定之上。

一、系列概述与定位 📌

ISO/IEC 14776 系列(对应于 SCSI 标准体系)由多个分部组成,分别规定 SCSI 架构模型(SAM)、主命令集(SPC)、各设备类型命令集(如 SBC 块命令、SSC 流命令)以及各类传输协议层(如 SAS 的 SPL、光纤通道的 FCP 等)。英国参与本系列制定工作由技术委员会 I/-(杂项标准材料和化学品)负责。本批收录的分部覆盖”传输层”与”块命令集”两个层面。

标准号中文标题发布年份核心内容
BS ISO/IEC 14776-262:2017SAS 协议层 2(SPL-2)2017SAS 传输层、连接、端口、链路与协议规程
BS ISO/IEC 14776-323:2017SCSI 块命令 3(SBC-3)2017磁盘块设备的命令集、读/写/查询与状态

两个分部的英国版本分别于 2017 年 2 月与 2017 年 3 月由英国标准政策与战略委员会授权发布,国际版本为 2017 年 1 月与 2017 年 2 月的 Edition 1.0。二者相互配合:SPL-2 负责在 SAS 链路上可靠地搬运命令与数据,SBC-3 负责把磁盘访问的语义翻译为设备可执行的命令序列。

⚠️ SCSI 术语、符号与约定(如 UML 记法)贯穿整个系列。SBC-3 与 SPL-2 均引用 SCSI 架构模型(SAM)与主命令集(SPC),理解时应首先把握”架构模型—主命令集—设备命令集—传输协议”这一分层体系,否则容易在交叉引用中迷失。

二、SAS 协议层 2(Part 262) 🔌

Part 262 定义了串行连接 SCSI(SAS)协议层 2,规范 SAS 物理层之上、SCSI 传输层之下的协议行为。SAS 采用点对点全双工串行链路,每个链路端称为一个 PHY,若干 PHY 可汇聚为一个端口(port),并通过 SAS 扩展器(expander)构建任意拓扑的交换式存储网络。

2.1 SAS 传输与连接管理

标准定义了 SAS 链路的帧格式、序列与传输规程,以及连接(connection)的建立、复用与断开规则。SAS 连接是”窄端口—窄端口”的临时通路,多个设备间通过连接建立与连接断开完成数据交换,从而在共享拓扑中实现时分复用。

  • SAS 传输:定义帧格式、序列与传输规程,保证数据完整性;
  • 连接与端口:定义 PHY、链路、端口与连接建立/断开规则;
  • 寻址与路由:定义 SAS 地址、区域(zone)与路由规则,支持多级扩展器寻址。

2.2 错误处理、复位与约定

标准还规定了链路错误恢复、复位与设备管理规程,并对术语、定义、符号、缩写、关键词及编辑约定作出统一说明。特别地,标准采用UML 记法约定来表述状态机、类图、对象图与约束,使协议行为可以用图形化模型精确描述,便于不同实现者理解一致的语义。UML 约定的引入意味着 SCSI 规范从纯文本走向”模型驱动”,显著提升了跨厂商实现的一致性。

💡 SAS 支持点对点高速串行连接与扩展(SAS 扩展器),并保持与 SATA 设备的互操作,是企业级磁盘阵列与服务器存储的主流互连方案。一个 SAS 域可以同时容纳 SAS 磁盘、SATA 磁盘与主机端口。

三、SCSI 块命令 3(Part 323) 💿

Part 323 定义了直接访问块设备(磁盘)的 SCSI 命令集。块设备以固定大小的逻辑块为基本单位,主机通过逻辑块地址(LBA)读写数据。SBC-3 规定了这些命令的命令描述符(CDB)、参数页与返回数据的格式,是操作系统磁盘驱动与存储固件共同遵循的契约。

3.1 核心命令与数据传输

核心命令包括读(READ)、写(WRITE)、容量查询(READ CAPACITY)等,并扩展了带参数的数据传输命令(如 READ/WRITE 支持多个逻辑块、保护信息与流式传输)。这些命令是操作系统文件系统读写磁盘的直接入口。

  • 数据传输:READ、WRITE 及其变体,读写用户数据块;
  • 容量与介质:READ CAPACITY、MODE SELECT/SENSE,查询容量、设置介质参数;
  • 校验与缓存:VERIFY、SYNCHRONIZE CACHE,校验数据、刷新缓存;
  • 状态与日志:REQUEST SENSE、LOG SENSE,错误与日志汇报。

3.2 参数页、模式页与自动感知

SBC-3 定义了丰富的参数页与模式页,用于配置写缓存、读缓存、写保护、校验与错误恢复策略;同时规范了自动感知(auto-sense)机制,使设备在命令失败时自动返回感知数据,报告错误类型、逻辑块地址与校验信息,从而支持主机端的精确错误处理。缓存一致性是块命令的核心难题,SBC-3 通过缓存模式参数与同步命令协同解决。

命令类别典型命令用途
数据传输READ、WRITE读写用户数据块
容量与介质READ CAPACITY、MODE SELECT查询容量、设置介质参数
校验与缓存VERIFY、SYNCHRONIZE CACHE校验数据、刷新缓存
状态与日志REQUEST SENSE、LOG SENSE错误与日志汇报

四、关键技术要求 ⚙️

  • SAS 传输层应遵循 SPL-2 的帧格式、连接与路由规则,保证链路可靠与可扩展;
  • SCSI 块命令应遵循 SBC-3 命令描述符与参数页定义,保证跨设备兼容;
  • 命令应正确处理自动感知(auto-sense)、错误恢复与缓存一致性;
  • UML 记法约定的类图、对象图与约束应一致,保证规范可读、可实施;
  • 寻址与逻辑单元(LUN)管理应遵循 SAM 约定,确保多逻辑单元设备可被正确寻址。
⚠️ 块设备命令的缓存一致性至关重要:未同步的写缓存可能导致断电后数据丢失。应正确使用写缓存同步(SYNCHRONIZE CACHE)与写屏障命令,并在断电风险场景下关闭写缓存或采用带掉电保护的缓存。

五、工程实践应用 🛠️

  • 企业级存储:SAS 磁盘与 RAID 控制器互连,构建高可用存储阵列。
  • 服务器存储接口:SAS 主机总线适配器(HBA)与背板、扩展器连接,支持大规模磁盘扩展。
  • 存储驱动开发:按 SBC-3 命令集实现设备驱动与固件,正确处理读/写/校验/缓存。
  • 互操作测试:验证 SPL-2 传输与 SBC-3 命令的跨厂商兼容性,避免厂商专有扩展导致不兼容。
  • 故障诊断:利用 LOG SENSE 与 REQUEST SENSE 收集介质与错误日志,指导预防性维护。

六、常见问题解答 ❓

❓ 问:SAS 与 SCSI 有何关系?
答:SAS(串行连接 SCSI)是 SCSI 的一种串行传输实现,SPL-2 定义其协议层;SCSI 命令集(如 SBC-3)在 SAS 传输之上运行,因此 SAS 设备仍兼容 SCSI 命令体系。
❓ 问:SBC-3 定义什么?
答:SBC-3 定义直接访问块设备(磁盘)的 SCSI 命令集,包括读、写、容量查询、校验与缓存同步等命令,以及参数页与自动感知机制。
❓ 问:什么是 SAS 扩展器?
答:SAS 扩展器是用于扩展 SAS 拓扑的设备,允许多个 PHY 连接与路由,构建大型存储子系统;一个 SAS 域可包含多个扩展器与上百个磁盘。
🔍 问:为何写缓存一致性重要?
答:写缓存未同步时,断电可能丢失数据。应正确使用缓存同步命令(如 SYNCHRONIZE CACHE)与写屏障,保证数据持久性。
❓ 问:SPL-2 为何使用 UML 记法?
答:为精确、无歧义地描述协议状态机与对象关系。UML 类图、对象图与约束约定使不同厂商对协议行为的理解一致,减少实现偏差。
🔒
正在加载下载地址,请稍候 10 秒

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注