成功加入购物车
敖青云 编 / 电子工业出版社 / 2011-09 / 平装
售价 ¥ 208.00
品相 九品
优惠 满包邮
延迟发货说明
上书时间2023-08-22
卖家超过10天未登录
存储技术原理分析:基于Linux 2.6内核源代码
《存储技术原理分析:基于Linux2.6内核源代码》通过对Linux2.6内核源代码的分析,详细讨论存储技术的内在实现原理。分为三条主线:解释PCI设备、SCSI设备以及块设备的发现过程;跟踪存储I/O路径,即用户对文件的读/写请求怎么通过中间各个层次,最终到达磁盘介质;此外,还简要介绍主机适配器、块设备驱动以及文件系统等编程框架。
书中将设计一些主要的场景,跟踪实现的各个层次,对其中的主要函数进行代码级的讲解。在分析每个模块时,会给出整体框架、主要数据结构之间的关系,并列出各个域的详细含义。
采用这种方式,我们希望读者能对存储相关概念(如RAID、快照等)的内在实现有具体的了解,也试图帮助读者理解Linux内核设计和开发的一些思想,为进一步分析其他模块(如进程管理、内存管理等)起借鉴作用。
读者对象:《存储技术原理分析:基于Linux2.6内核源代码》适合作为高校计算机相关专业本科生和研究生学习操作系统的辅助和实践教材,也适合作为Linux爱好者学习内核的参考书籍。同时,它也是存储从业工程师深入理解存储架构,以及软件开发工程师掌握软件架构的有效工具。
敖青云,博士,2001年毕业于上海交通大学计算机科学及工程系。毕业后一直从事存储及相关产品的研发工作,主要研究方向为开源技术、操作系统、存储及虚拟机技术等。现居上海。
第一部分存储技术第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.4RAID技术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驱动模型2.1概述2.2引用计数2.3内核对象及集合2.3.1创建或初始化内核对象2.3.2将内核对象添加到sysfs文件系统2.3.3创建、初始化、添加内核对象集2.3.4发送内核对象变化事件到用户空间2.4sysfs文件系统2.4.1构建内核对象、对象属性和对象关系的内部树2.4.2对sysfs文件的读/写转换为对属性的show和store操作2.4.3为具体内核对象定义属性的规范流程2.5kobject编程模式2.6驱动模型对象2.6.1总线类型2.6.2设备2.6.3驱动2.6.4类2.6.5接口2.7驱动模型编程模式第3章PCI子系统3.1概述3.2PCI子系统对象3.2.1pci_bus:PCI总线3.2.2pci_dev:PCI设备3.3PCI核心初始化3.4配置访问方法3.4.1机制#1方式3.4.2PCIBIOS方式3.4.3配置访问接口3.5PCI总线扫描3.5.1PCI总线编号范例3.5.2PCI总线扫描流程3.6PCI中断路由3.6.1中断路由初始化3.6.2查找中断路由表3.6.3查找中断路由驱动3.6.4分配ISAIRQ号3.7PCI资源分配3.7.1PCI资源分配范例3.7.2PCI资源分配流程3.8PCI设备驱动编程模式3.8.1定义PCI驱动结构3.8.2定义支持设备ID列表3.8.3实现probe回调方法3.8.4实现remove回调方法3.8.5实现其他回调方法3.8.6注册与注销PCI驱动第4章SCSI子系统4.1概述4.2SCSI子系统对象4.2.1scsi_host_template:SCSI主机适配器模板4.2.2Scsi_Host:SCSI主机适配器4.2.3scsi_target:SCSI目标节点4.2.4scsi_device:SCSI逻辑设备4.2.5scsi_cmnd:SCSI命令4.3SCSI子系统初始化4.4添加适配器到系统4.5SCSI设备探测4.5.1探测流程入口4.5.2探测逻辑单元4.5.3添加SCSI设备4.6SCSI磁盘驱动4.6.1同步执行部分4.6.2异步执行部分4.6.3重新校验磁盘4.6.4让磁盘转起来4.7SCSI命令执行4.8SCSI错误恢复4.8.1命令进入错误恢复4.8.2错误恢复线程执行4.8.3发送错误恢复命令4.9SCSI低层驱动编程模式4.9.1定义主机适配器模板4.9.2完善探测回调处理逻辑4.9.3实现queuecommand回调函数4.9.4实现中断处理函数4.9.5实现其他回调函数4.9.6模块加载和卸载第三部分存储I/O第5章块I/O子系统5.1概述5.2块I/O子系统对象5.2.1gendisk:通用磁盘5.2.2hd_struct:分区5.2.3block_device:块设备5.2.4request_queue:请求队列5.2.5request:块设备驱动层请求5.2.6bio:通用块层请求5.3添加磁盘到系统5.3.1分配通用磁盘描述符5.3.2添加到sysfs文件系统5.3.3获取磁盘块设备描述符5.3.4打开磁盘块设备描述符5.3.5重新扫描磁盘分区5.3.6设备号映射机制5.4请求处理过程5.4.1上层向块I/O子系统提交请求5.4.2构造、排序或合并请求5.4.3SCSI策略例程逐个处理请求5.4.4为请求构造SCSI命令5.4.5为SCSI命令准备聚散列表5.4.6派发SCSI命令到低层驱动5.5I/O调度算法5.5.1为请求队列建立关联的I/O调度队列5.5.2判断bio是否可以被合并到request5.5.3将请求添加到I/O调度队列或请求队列5.5.4从I/O调度队列派发请求到请求队列5.6请求处理完成5.6.1低层驱动调用完成回调函数5.6.2引发块I/O子系统的软中断5.6.3调用请求队列的软中断回调5.6.4调用上层的完成回调函数5.7屏障I/O处理5.7.1屏障I/O接口5.7.2添加屏障请求5.7.3处理屏障请求5.7.4完成屏障请求5.8完整性保护5.8.1数据完整性对象5.8.2为块设备注册完整性能力5.8.3为bio准备完整性元数据5.8.4校验完整性元数据5.8.5修正bio基准标签5.9磁盘类设备驱动编程模式5.9.1定义磁盘类设备私有数据结构5.9.2定义和实现块设备操作表5.9.3分配和初始化磁盘类设备相关结构5.9.4为磁盘类设备准备请求队列并添加通用磁盘到系统第6章Multi-Disk(MD)模块6.1概述6.2RAID模块对象6.2.1mddev_t:RAID设备6.2.2mdk_rdev_t:成员磁盘6.2.3mdk_personality:MD个性6.3MD模块初始化6.4MD设备创建6.4.1从用户空间打开MD设备6.4.2用户空间发送ioctl创建MD6.4.3自动检测和运行RAID6.5MD设备请求执行6.6MD个性化编程模式6.6.1定义私有数据结构6.6.2声明个性化结构6.6.3实现个性化方法6.6.4实现模块加载和卸载方法6.7RAID0模块6.7.1为RAID0设备构造条带区域6.7.2查找包含给定偏移的条带区域6.7.3映射到成员设备及其扇区偏移6.8RAID5模块6.8.1RAID5模块对象6.8.2请求执行过程6.8.3同步和恢复过程第7章DeviceMapper模块7.1概述7.2DeviceMapper对象7.2.1dm_table:映射表结构7.2.2dm_target:映射目标结构7.2.3mapped_device:映射设备结构7.2.4dm_dev:低层设备结构7.2.5target_type:映射目标类型7.3DeviceMapper模块初始化7.4映射设备的创建7.4.1分配映射设备描述符7.4.2加载映射表7.4.3恢复映射设备7.5映射设备的请求执行7.5.1添加到延迟链表7.5.2分割与处理bio7.6内核复制线程7.6.1准备复制任务7.6.2任务处理流程7.7DeviceMapper目标类型编程模式7.7.1定义私有数据结构7.7.2声明目标类型结构7.7.3实现目标类型方法7.7.4实现模块加载和卸载方法7.8条带映射模块7.8.1构造函数7.8.2析构函数7.8.3映射函数7.8.4end_io函数7.9快照映射模块7.9.1快照映射对象7.9.2快照源构造7.9.3快照构造7.9.4快照源读/写7.9.5快照读/写7.9.6例外仓库第8章文件系统8.1概述8.2文件系统对象8.2.1file_system_type:文件系统类型8.2.2super_block:VFS超级块8.2.3inode:VFS索引节点8.2.4dentry:VFS目录项8.2.5vfsmount:文件系统装载8.3装载文件系统8.3.1mount系统调用的处理流程8.3.2构建子文件系统装载实例8.3.3关联文件系统的超级块实例8.3.4调用回调函数填充超级块8.3.5装载到全局文件系统树8.4路径查找8.4.1路径查找入口8.4.2逐个分量解析8.4.3解析单个分量8.4.4上溯通过装载点8.4.5下溯通过装载点8.4.6处理符号链接8.5打开文件8.5.1open系统调用的处理流程8.5.2解析路径最后一个分量8.5.3填充文件描述符的内容8.6读文件8.6.1read系统调用的处理流程8.6.2基于缓冲页面构造I/O请求8.6.3直接针对页面构造I/O请求8.6.4从文件块编号推导磁盘块编号8.7写文件8.7.1write系统调用的处理流程8.7.2通知为缓冲写请求作准备8.7.3通知数据已复制到缓冲区8.8冲刷文件8.8.1BDI相关对象8.8.2注册后备设备信息8.8.3forker线程执行流程8.8.4flusher线程执行流程8.8.5同步相关系统调用8.9块设备文件8.9.1块设备的主inode和次inode8.9.2对块设备文件的操作转换为对块设备的操作8.9.3对块设备文件的读/写作用于块设备之上8.10文件系统编程模式主要参考文献
展开全部
配送说明
...
相似商品
为你推荐
开播时间:09月02日 10:30