linux io target scsi,linux I/O栈 之 SCSI TARGET (1) 基础介绍

我们之前介绍了,linux I/O 栈的预习方面。简单地了解了一下整个linux I/O 栈的组成。

从今天开始我们仔细介绍linux I/O栈的导出I/O栈,linux I/O target。

一、基础介绍

I/O导出协议栈是什么?

从广义上讲,大家每天可能都会去接触这个东西。

比如:我们每天使用的移动硬盘,它的内部也是一个I/O导出协议栈,但是由于它不涉及于I/O命令的解析,它仅仅是做了从SATA转USB的工作。

其实硬盘本身也是一个I/O导出的标准规范,它用的规范往往是在后端存储协议实现(SAS 、SATA等)。

那么我今天主要介绍的是前端导出I/O协议栈,主要是包括:iscsi、fiber channel等大家比较常见的方式。

历史上很多导出I/O协议栈,如我最早接触的IET(iSCSI Enterprise Target),他只能导出iscsi target,还有SCST,他比较全面debug,很多hba板卡厂商推荐它。

我们重点介绍的是:linux 主线维护的LIO,也就是内核里的target模块。

LIO-Architecture.png

linux I/O target的架构是很清晰的,从最上层的管理由CLI实现。

CLI由/usr/lib/python3/dist-packages/rtslib_fb等支持。

rtslib_fb通过操作/sys/kernel/config/target目录下面的目录和文件来创建target内核支持。

target在内核的configfs是一套比较复杂的代码,用来管理kernel里的target的各个实例。

target core模块由内核实现,它主要是做SCSI CMD的仿真工作,能够提供各样先进的能力。

比如在cluster的角度,支持persistent reservations,ALUA(asymmetric logical unit assigntment),

REFERRALS特性,fence特性等。能够实现高级VAAI特性,这主要用于vmware exsi。

这其中主要的SCSI命令unmap,zero,write same,xcopy等也可以适用于其他虚拟化存储平台。

存储管理引擎包括:标准storage,内存map和RDMA等功能。

最下层的fabric mod主要是导出协议驱动的支持。

storage mod,主要是提供backend的种类支持。

【本文只在51cto博客作者 “底层存储技术” https://blog.51cto.com/12580077  个人发布,公众号发布:存储之谷】,如需转载,请于本人联系,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值