温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

linux I/O栈 之 SCSI TARGET (1) 基础介绍

发布时间:2020-07-24 09:30:32 来源:网络 阅读:1304 作者:慢慢存储路 栏目:软件技术

    我们之前介绍了,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模块。

     linux I/O栈 之 SCSI TARGET (1) 基础介绍

        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  个人发布,公众号发布:存储之谷】,如需转载,请于本人联系,谢谢。

        

    

        


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI