【深入Linux块设备驱动层次之一】整体层次

简介:

 最近在做文件系统和linux块设备相关的工作,需要对文件系统和底层块设备之间的关系和交互有比较深入的了解。笔者参考的书籍有敖青云所著的《存储技术原理分析-基于Linux2.6内核原代码》,同时参考的还有Jonathan Corbet、Alessandro Rubini和Greg Kroah-Hartman 一起著作的linux设备经典书籍《Linux设备驱动Edition 3 》、陈学松写的《深入Linux设备驱动内核机制》.对比了一下,还是敖青云写的很存储结合更紧密一些。整体上《存储技术原理分析-基于Linux2.6内核原代码》中对块设备的层次划分很清晰,完整地总结了通用块层、IO调度层和物理块设备层之间的关联。下面是他对块设备驱动的层次划分:

wKioL1kDLaqjFHt_AAC07xVhoXw855.png


但是对于它对块设备驱动的层次划分,个人认为上面的图不是特别精确。比如,根据Linux Storage Stack Diagrm 中的描述,md和device mapper设备驱动应该在I/O  scheduler之上:


wKiom1kDLdTDqn29AAHYNsWxOPA863.png

因为ioscheduler要实现scatter read/gather write, 就必须基于存储盘片或者RAID的物理特性,根据上层逻辑块设备或者device mapper发过来的逻辑IO请求,把它翻译转换成对应存储设备上的IO请求。因此这个层次的device mapper 需要在IO schedulre 层之上。















本文转自存储之厨51CTO博客,原文链接:http://blog.51cto.com/xiamachao/1920614 ,如需转载请自行联系原作者













相关文章
|
5天前
|
监控 Unix Linux
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
Linux操作系统调优相关工具(四)查看Network运行状态 和系统整体运行状态
36 0
|
5天前
|
Linux API 调度
Linux系统驱动跟裸机驱动的区别
Linux系统驱动跟裸机驱动的区别
36 0
|
5天前
|
Linux C语言 SoC
嵌入式linux总线设备驱动模型分析
嵌入式linux总线设备驱动模型分析
38 1
|
5天前
|
存储 缓存 Linux
【Shell 命令集合 磁盘维护 】Linux 设置和查看硬盘驱动器参数 hdparm命令使用教程
【Shell 命令集合 磁盘维护 】Linux 设置和查看硬盘驱动器参数 hdparm命令使用教程
45 0
|
5天前
|
分布式计算 关系型数据库 MySQL
Sqoop【部署 01】CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
【2月更文挑战第8天】Sqoop CentOS Linux release 7.5 安装配置 sqoop-1.4.7 解决警告并验证(附Sqoop1+Sqoop2最新版安装包+MySQL驱动包资源)
113 1
|
5天前
|
Linux 芯片 Ubuntu
Linux驱动入门 —— 利用引脚号操作GPIO进行LED点灯
Linux驱动入门 —— 利用引脚号操作GPIO进行LED点灯
|
5天前
|
Ubuntu Linux
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-2
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-2
|
5天前
|
Linux 芯片
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-1
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯-1
|
5天前
|
Linux C语言 Ubuntu
Linux驱动入门——编写第一个驱动
Linux驱动入门——编写第一个驱动
Linux驱动入门——编写第一个驱动
|
5天前
|
Linux
linux驱动层输出dev_dbg打印信息
linux驱动层输出dev_dbg打印信息
28 0