存储技术原理分析

存储技术原理分析

基于Linux 2.6内核源代码

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。

作品简介

本书通过对Linux 2.6内核源代码的分析,详细讨论存储技术的内在实现原理。分为三条主线:解释PCI设备、SCSI设备以及块设备的发现过程;跟踪存储I/O路径,即用户对文件的读/写请求怎么通过中间各个层次,最终到达磁盘介质;此外,还简要介绍主机适配器、块设备驱动以及文件系统等编程框架。

书中将设计一些主要的场景,跟踪实现的各个层次,对其中的主要函数进行代码级的讲解。在分析每个模块时,会给出整体框架、主要数据结构之间的关系,并列出各个域的详细含义。

采用这种方式,我们希望读者能对存储相关概念(如RAID、快照等)的内在实现有具体的了解,也试图帮助读者理解Linux内核设计和开发的一些思想,为进一步分析其他模块(如进程管理、内存管理等)起借鉴作用。

读者对象:本书适合作为高校计算机相关专业本科生和研究生学习操作系统的辅助和实践教材,也适合作为Linux爱好者学习内核的参考书籍。同时,它也是存储从业工程师深入理解存储架构,以及软件开发工程师掌握软件架构的有效工具。

敖青云,博士,2001年毕业于上海交通大学计算机科学及工程系。毕业后一直从事存储及相关产品的研发工作,主要研究方向为开源技术、操作系统、存储及虚拟机技术等。现居上海。

作品目录

  1. 前言
  2. 第一部分 存储技术
  3. 第1章 存储技术概论
  4. 1.1 存储系统元素
  5. 1.2 存储相关技术
  6. 1.3 网络存储结构
  7. 1.4 存储I/O通道
  8. 1.5 存储应用举例
  9. 第二部分 设备
  10. 第2章 Linux驱动模型
  11. 2.1 概述
  12. 2.2 引用计数
  13. 2.3 内核对象及集合
  14. 2.4 sysfs文件系统
  15. 2.5 kobject编程模式
  16. 2.6 驱动模型对象
  17. 2.7 驱动模型编程模式
  18. 第3章 PCI子系统
  19. 3.1 概述
  20. 3.2 PCI子系统对象
  21. 3.3 PCI核心初始化
  22. 3.4 配置访问方法
  23. 3.5 PCI总线扫描
  24. 3.6 PCI中断路由
  25. 3.7 PCI资源分配
  26. 3.8 PCI设备驱动编程模式
  27. 第4章 SCSI子系统
  28. 4.1 概述
  29. 4.2 SCSI子系统对象
  30. 4.3 SCSI子系统初始化
  31. 4.4 添加适配器到系统
  32. 4.5 SCSI设备探测
  33. 4.6 SCSI磁盘驱动
  34. 4.7 SCSI命令执行
  35. 4.8 SCSI错误恢复
  36. 4.9 SCSI低层驱动编程模式
  37. 第三部分 存储I/O
  38. 第5章 块I/O子系统
  39. 5.1 概述
  40. 5.2 块I/O子系统对象
  41. 5.3 添加磁盘到系统
  42. 5.4 请求处理过程
  43. 5.5 I/O调度算法
  44. 5.6 请求处理完成
  45. 5.7 屏障I/O处理
  46. 5.8 完整性保护
  47. 5.9 磁盘类设备驱动编程模式
  48. 第6章 Multi-Disk(MD)模块
  49. 6.1 概述
  50. 6.2 RAID模块对象
  51. 6.3 MD模块初始化
  52. 6.4 MD设备创建
  53. 6.5 MD设备请求执行
  54. 6.6 MD个性化编程模式
  55. 6.7 RAID0模块
  56. 6.8 RAID5模块
  57. 第7章 Device Mapper模块
  58. 7.1 概述
  59. 7.2 Device Mapper对象
  60. 7.3 Device Mapper模块初始化
  61. 7.4 映射设备的创建
  62. 7.5 映射设备的请求执行
  63. 7.6 内核复制线程
  64. 7.7 Device Mapper目标类型编程模式
  65. 7.8 条带映射模块
  66. 7.9 快照映射模块
  67. 第8章 文件系统
  68. 8.1 概述
  69. 8.2 文件系统对象
  70. 8.3 装载文件系统
  71. 8.4 路径查找
  72. 8.5 打开文件
  73. 8.6 读文件
  74. 8.7 写文件
  75. 8.8 冲刷文件
  76. 8.9 块设备文件
  77. 8.10 文件系统编程模式
  78. 主要参考文献