Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
IEC 14776-150-05 是国际电工委员会(IEC)发布的关于 SCSI(小型计算机系统接口)主命令-3(SCSI Primary Commands – 3, SPC-3)的技术标准,其技术内容与 ISO/IEC 14776-150:2005 完全一致。该标准是 SCSI 协议体系的核心文档之一,定义了所有 SCSI 设备必须实现的通用命令集和行为规范,不依赖于特定的传输协议(如 Fibre Channel、iSCSI 或 SAS)。
标准主要适用于支持 SCSI 命令集的存储设备(硬盘、固态盘、光盘、磁带机、磁盘阵列等)以及主机总线适配器(HBA)的驱动和固件开发。它规定了设备以逻辑单元(Logical Unit)的形式对外提供存储服务的命令交互模型,涵盖命令格式、状态报告、数据交换方式以及设备自管理等基础功能。
标准定义了一套完整的操作命令分类,包括数据访问命令(如 READ/WRITE)、设备控制命令(如 MODE SELECT/SENSE)、状态管理命令(如 TEST UNIT READY、REQUEST SENSE)以及初始化、日志和自检功能。每个命令以固定格式的命令描述块从发起端发送至目标逻辑单元,CDB 由操作码(Operation Code)、控制位、逻辑块地址(LBA)、传输长度及附加参数组成,长度通常为 6、10、12 或 16 字节。
| 字节位置 | 字段名称 | 说明 |
|---|---|---|
| 0 | 操作码(OP Code) | 8 位,指定命令类型 |
| 1-2 | 逻辑块地址(LBA) | 起始地址,MSB 优先 |
| 3-4 | 保留/组号 | 某些命令用作保留或组号 |
| 5-6 | 传输长度 | 待传输的逻辑块数量 |
| 7 | 控制字节 | 包含链接命令、标志、NACA、相对地址等位域 |
| 8-9 | 控制字节(续) | 通常包含 NACA 等附加控制 |
SPC-3 规范了数据在发起端(Initiator)与目标(Target)之间的三种传输方向:从发起端到目标(写操作)、从目标到发起端(读操作)以及无数据传送(控制类命令)。通过命令的“数据传输属性”位域区分,同时支持自动协商的可变数据传输宽度与速率。此外,标准要求所有逻辑单元必须实现状态字节(Status Byte)报告,包括好(Good)、忙(Busy)、条件满足(Condition Met)等,以及感知数据(Sense Data)的返回,用于详细描述错误来源。
标准引入了模式页面(Mode Pages)和日志页面(Log Pages)机制,用于配置和查询设备运行参数。例如:缓冲器模式页面(用于读写缓存策略)、错误恢复页面(重试与超时参数)、以及控制模式页面(任务管理设置)。通过 MODE SENSE 和 MODE SELECT 命令,主机能够获取或更改这些参数。日志页面则通过 LOG SENSE 命令收集自检结果、温度统计、错误计数器等历史信息,便于运维监控。
SPC-3 强制要求设备支持“自检”功能(通过 SEND DIAGNOSTIC 命令触发),包括默认自检和后台自检。同时,标准详细定义了持久性保留(Persistent Reservation)机制,允许集群系统中的多台主机通过注册和预留来协调对逻辑单元的访问。该机制是 SAN 高可用性环境实现故障切换的核心前提。
由于 SPC-3 是 SCSI 协议栈的“主命令”层,它独立于底层的传输协议(如 iSCSI、FC、SAS 或并行 SCSI)。因此,在驱动和固件实现时,应将命令解析、状态处理和感知数据管理放在通用层,而将链路封装、差错重传交给传输层。这种分层设计可确保设备在不同物理链路间平滑迁移。同时,需注意 T10 委员会发布的与 SPC-3 配套的其他标准(如 SBC-3、SSC-3)所增加的命令扩展。
实施 SPC-3 的设备必须通过相应的一致性测试,重点验证:
建议使用国际认可的 SCSI 协议分析仪(如 SCSI Trade Association 推荐的测试工具)进行自动化回归测试,以保证互操作性。
在性能方面,标准推荐主机端使用“链接命令(Linked Command)”来减少交互次数,同时配合“立即位(Immediate)”控制字节使命令能够及时返回而不必等待数据就绪。对于安全环境,要求通过 MODE SELECT 禁用不必要的命令(如 FORMAT UNIT 或 WRITE BUFFER),以防止未授权操作。设备固件应严格校验 CDB 中的逻辑块地址范围,防止缓冲区溢出攻击。
IEC 14776-150-05 属于 SCSI-3 标准族,它与下列标准紧密配合:
此外,该标准已作为技术规范被许多国际数据中心自动化框架(如 SNIA 的存储管理计划)引用。2026 年,随着 NVMe 等新型传输协议的发展,SCSI 主命令集仍然作为模拟兼容层被广泛应用于存储虚拟化网关中。