
存储技术原理分析
基于Linux 2.6内核源代码
¥35.40
作品简介
本书通过对Linux 2.6内核源代码的分析,详细讨论存储技术的内在实现原理。分为三条主线:解释PCI设备、SCSI设备以及块设备的发现过程;跟踪存储I/O路径,即用户对文件的读/写请求怎么通过中间各个层次,最终到达磁盘介质;此外,还简要介绍主机适配器、块设备驱动以及文件系统等编程框架。
书中将设计一些主要的场景,跟踪实现的各个层次,对其中的主要函数进行代码级的讲解。在分析每个模块时,会给出整体框架、主要数据结构之间的关系,并列出各个域的详细含义。
采用这种方式,我们希望读者能对存储相关概念(如RAID、快照等)的内在实现有具体的了解,也试图帮助读者理解Linux内核设计和开发的一些思想,为进一步分析其他模块(如进程管理、内存管理等)起借鉴作用。
读者对象:本书适合作为高校计算机相关专业本科生和研究生学习操作系统的辅助和实践教材,也适合作为Linux爱好者学习内核的参考书籍。同时,它也是存储从业工程师深入理解存储架构,以及软件开发工程师掌握软件架构的有效工具。
敖青云,博士,2001年毕业于上海交通大学计算机科学及工程系。毕业后一直从事存储及相关产品的研发工作,主要研究方向为开源技术、操作系统、存储及虚拟机技术等。现居上海。
作品目录
前言
第一部分 存储技术
第1章 存储技术概论
1.1 存储系统元素
1.2 存储相关技术
1.3 网络存储结构
1.4 存储I/O通道
1.5 存储应用举例
第二部分 设备
第2章 Linux驱动模型
2.1 概述
2.2 引用计数
2.3 内核对象及集合
2.4 sysfs文件系统
2.5 kobject编程模式
2.6 驱动模型对象
2.7 驱动模型编程模式
第3章 PCI子系统
3.1 概述
3.2 PCI子系统对象
3.3 PCI核心初始化
3.4 配置访问方法
3.5 PCI总线扫描
3.6 PCI中断路由
3.7 PCI资源分配
3.8 PCI设备驱动编程模式
第4章 SCSI子系统
4.1 概述
4.2 SCSI子系统对象
4.3 SCSI子系统初始化
4.4 添加适配器到系统
4.5 SCSI设备探测
4.6 SCSI磁盘驱动
4.7 SCSI命令执行
4.8 SCSI错误恢复
4.9 SCSI低层驱动编程模式
第三部分 存储I/O
第5章 块I/O子系统
5.1 概述
5.2 块I/O子系统对象
5.3 添加磁盘到系统
5.4 请求处理过程
5.5 I/O调度算法
5.6 请求处理完成
5.7 屏障I/O处理
5.8 完整性保护
5.9 磁盘类设备驱动编程模式
第6章 Multi-Disk(MD)模块
6.1 概述
6.2 RAID模块对象
6.3 MD模块初始化
6.4 MD设备创建
6.5 MD设备请求执行
6.6 MD个性化编程模式
6.7 RAID0模块
6.8 RAID5模块
第7章 Device Mapper模块
7.1 概述
7.2 Device Mapper对象
7.3 Device Mapper模块初始化
7.4 映射设备的创建
7.5 映射设备的请求执行
7.6 内核复制线程
7.7 Device Mapper目标类型编程模式
7.8 条带映射模块
7.9 快照映射模块
第8章 文件系统
8.1 概述
8.2 文件系统对象
8.3 装载文件系统
8.4 路径查找
8.5 打开文件
8.6 读文件
8.7 写文件
8.8 冲刷文件
8.9 块设备文件
8.10 文件系统编程模式
主要参考文献