《存储技术原理分析(基于Linux2.6内核源代码)》(作者敖青云)所针对的读者应该具有一定基础。应该对存储技术有些了解,应该对操作系统有些领悟,应该对软件开发有些心得,但是这种了解、领悟和心得又似乎浮于表面,经不住考验。最为重要的是,应该有对细节的渴望和对未知的好奇。本书通过分析Linux源代码系统阐述存储技术的内在原理,它要告诉的,不是LinuX的历史有多长、功能有多强,或是那些古老的话题,重复在我们的身旁;它要讲述的,是一些执着的人们思考着什么,又最终决定了什么,在并不为我们所知的地方。
《存储技术原理分析(基于Linux2.6内核源代码)》(作者敖青云)通过对Linux 2.6内核源代码的分析,详细讨论存储技术的内在实现原理。分为三条主线:解释PCI设备、SCSI设备及块设备的发现过程;跟踪存储I/O路径,即用户对文件的读/写请求怎么通过中间各个层次,最终到达磁盘介质;此外,还简要介绍主机适配器、块设备驱动及文件系统等编程框架。
《存储技术原理分析(基于Linux2.6内核源代码)》中将设计一些主要的场景,跟踪实现的各个层次,对其中的主要函数进行代码级的讲解。在分析每个模块时,会给出整体框架与主要数据结构之间的关系,并列出各个域的详细含义。
采用这种方式,希望读者能对存储相关概念(如RAID、快照等)的内在实现有具体的了解,也试图帮助读者理解Linux内核设计和开发的一些思想,为进一步分析其他模块(如进程管理、内存管理等)起借鉴作用。
本书适合作为高校计算机相关专业本科生和研究生学习操作系统的辅助和实践教材,也适合作为Linux爱好者学习内核的参考书籍。同时,它也是存储从业工程师深入理解存储架构,以及软件开发工程师掌握软件架构的有效工具。
第一部分 存储技术
第1章 存储技术概论
1.1 存储系统元素
1.1.1 磁盘驱动器
1.1.2 存储设备
1.1.3 服务器部件
1.1.4 存储软件
1.2 存储相关技术
1.2.1 备份技术
1.2.2 快照技术
1.2.3 连续数据保护技术
1.2.4 RAID技术
1.2.5 “多路径”技术
1.2.6 虚拟化技术
1.3 网络存储结构
1.3.1 直接连接存储
1.3.2 网络连接存储
1.3.3 存储区域网络
1.4 存储I/O通道
1.4.1 存储I/O物理通道
1.4.2 存储I/O逻辑通道
1.4.3 虚拟机I/O逻辑通道
1.5 存储应用举例
1.5.1 同时提供文件服务和块服务
1.5.2 按需扩容、随需取用延缓企业投资
1.5.3 计算与存储分离便于故障恢复和系统升级
1.5.4 为高可用性集群提供共享存储
1.5.5 利用快照技术恢复被病毒破坏的数据
1.5.6 基于文件的数据备份和远程镜像方案
1.5.7 利用PXE和iSCSI实现远程引导和映像恢复
1.5.8 虚拟机故障的检测及迁移
第二部分 设备
第2章 Linux驱动模型
第3章 PCI子系统
第4章 SCSI子系统
第三部分 存储I/O
第5章 块I/O子系统
第6章 Multi-Disk(MD)模块
第7章 Device Mapper模块
第8章 文件系统
主要参考文献