栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

        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驱动编程模式

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/613310.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号