SCSI代码分析(0)SCSI层框架

SCSI代码分析(0)SCSI层框架

SCSI代码分析(1)SCSI HOST的管理

SCSI代码分析(2)SCSI设备的管理1

SCSI代码分析(3)SCSI设备的管理2

SCSI代码分析(4)SCSI层IO下发和完成

SCSI代码分析(5)SCSI驱动编程模式

SCSI代码分析(6)错误处理

SCSI代码分析(7)错误处理(续)

        SCSI即Small Computer System Interface,是一种存储的传输/控制协议。SCSI不是单个协议,而是一组协议,包括SAM-5/SPC/SBC等。这里跳过对协议的介绍,当涉及到时再介绍。

1. SCSI层框架

        内核SCSI层(主要代码在drivers/scsi/目录下)负责对接BLOCK层,将上层的IO转化为SCSI命令,完成IO下发和完成;负责SCSI设备的管理;负责HBA的管理;负责错误的处理与恢复;负责与下层的对接等。

其中:

  1. SCSI Upper Layer:对不同类型设备的扫描(包括disk/tape/CDROM等);
  2. SCSI Middle Layer:负责IO下发和完成,设备的管理,以及错误处理等;
  3. SCSI Low Level Layer:不同的SCSI驱动;

HBA:Host Bus Adapter主机适配器,一般指控制器,如SAS控制器,SATA控制器

2. HBA与硬盘之间的连接

        HBA与硬盘之间有两种连接:直接连接和通过expander扩展连接。直接连接是硬盘直接与HBA相连,没有中间介质,一般HBA可外接的接口有限,因此能够连接的硬盘有限;expander扩展连接时HBA与硬盘之间通过expander扩展连接,有些可以多级扩展,这样大大增加了外接硬盘的数量。

        相比直接连接,expander扩展连接的设备拓扑相对复杂,因此需要软件能够识别负责的设备拓扑。目前SCSI层不包含对复杂设备拓扑的识别,一般交给底层驱动来做。如libsas负责识别设备拓扑。

后续章节准备从以下几个方面对SCSI层代码做介绍:

  1. SCSI HOST的识别和管理
  2. SCSI设备的识别和管理
  3. SCSI层IO下发和完成
  4. SCSI命令的执行
  5. SCSI错误处理
  6. SCSI驱动编程模式

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值