注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)存儲(chǔ)技術(shù)原理分析:基于Linux 2.6內(nèi)核源代碼

存儲(chǔ)技術(shù)原理分析:基于Linux 2.6內(nèi)核源代碼

存儲(chǔ)技術(shù)原理分析:基于Linux 2.6內(nèi)核源代碼

定 價(jià):¥118.00

作 者: 敖青云 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: LINUX

ISBN: 9787121144325 出版時(shí)間: 2011-09-01 包裝: 平裝
開本: 大16開 頁數(shù): 768 字?jǐn)?shù):  

內(nèi)容簡介

  《存儲(chǔ)技術(shù)原理分析:基于Linux 2.6內(nèi)核源代碼》通過對Linux 2.6內(nèi)核源代碼的分析,詳細(xì)討論存儲(chǔ)技術(shù)的內(nèi)在實(shí)現(xiàn)原理。分為三條主線:解釋PCI設(shè)備、SCSI設(shè)備以及塊設(shè)備的發(fā)現(xiàn)過程;跟蹤存儲(chǔ)I/O路徑,即用戶對文件的讀/寫請求怎么通過中間各個(gè)層次,最終到達(dá)磁盤介質(zhì);此外,還簡要介紹主機(jī)適配器、塊設(shè)備驅(qū)動(dòng)以及文件系統(tǒng)等編程框架。書中將設(shè)計(jì)一些主要的場景,跟蹤實(shí)現(xiàn)的各個(gè)層次,對其中的主要函數(shù)進(jìn)行代碼級的講解。在分析每個(gè)模塊時(shí),會(huì)給出整體框架、主要數(shù)據(jù)結(jié)構(gòu)之間的關(guān)系,并列出各個(gè)域的詳細(xì)含義。采用這種方式,我們希望讀者能對存儲(chǔ)相關(guān)概念(如RAID、快照等)的內(nèi)在實(shí)現(xiàn)有具體的了解,也試圖幫助讀者理解Linux內(nèi)核設(shè)計(jì)和開發(fā)的一些思想,為進(jìn)一步分析其他模塊(如進(jìn)程管理、內(nèi)存管理等)起借鑒作用。讀者對象:《存儲(chǔ)技術(shù)原理分析:基于Linux 2.6內(nèi)核源代碼》適合作為高校計(jì)算機(jī)相關(guān)專業(yè)本科生和研究生學(xué)習(xí)操作系統(tǒng)的輔助和實(shí)踐教材,也適合作為Linux愛好者學(xué)習(xí)內(nèi)核的參考書籍。同時(shí),它也是存儲(chǔ)從業(yè)工程師深入理解存儲(chǔ)架構(gòu),以及軟件開發(fā)工程師掌握軟件架構(gòu)的有效工具。

作者簡介

  敖青云,博士,2001年畢業(yè)于上海交通大學(xué)計(jì)算機(jī)科學(xué)及工程系。畢業(yè)后一直從事存儲(chǔ)及相關(guān)產(chǎn)品的研發(fā)工作,主要研究方向?yàn)殚_源技術(shù)、操作系統(tǒng)、存儲(chǔ)及虛擬機(jī)技術(shù)等?,F(xiàn)居上海。

圖書目錄

第一部分 存儲(chǔ)技術(shù)
第1章 存儲(chǔ)技術(shù)概論
1.1 存儲(chǔ)系統(tǒng)元素
1.1.1 磁盤驅(qū)動(dòng)器
1.1.2 存儲(chǔ)設(shè)備
1.1.3 服務(wù)器部件
1.1.4 存儲(chǔ)軟件
1.2 存儲(chǔ)相關(guān)技術(shù)
1.2.1 備份技術(shù)
1.2.2 快照技術(shù)
1.2.3 連續(xù)數(shù)據(jù)保護(hù)技術(shù)
1.2.4 RAID技術(shù)
1.2.5 “多路徑”技術(shù)
1.2.6 虛擬化技術(shù)
1.3 網(wǎng)絡(luò)存儲(chǔ)結(jié)構(gòu)
1.3.1 直接連接存儲(chǔ)
1.3.2 網(wǎng)絡(luò)連接存儲(chǔ)
1.3.3 存儲(chǔ)區(qū)域網(wǎng)絡(luò)
1.4 存儲(chǔ)I/O通道
1.4.1 存儲(chǔ)I/O物理通道
1.4.2 存儲(chǔ)I/O邏輯通道
1.4.3 虛擬機(jī)I/O邏輯通道
1.5 存儲(chǔ)應(yīng)用舉例
1.5.1 同時(shí)提供文件服務(wù)和塊服務(wù)
1.5.2 按需擴(kuò)容、隨需取用延緩企業(yè)投資
1.5.3 計(jì)算與存儲(chǔ)分離便于故障恢復(fù)和系統(tǒng)升級
1.5.4 為高可用性集群提供共享存儲(chǔ)
1.5.5 利用快照技術(shù)恢復(fù)被病毒破壞的數(shù)據(jù)
1.5.6 基于文件的數(shù)據(jù)備份和遠(yuǎn)程鏡像方案
1.5.7 利用PXE和iSCSI實(shí)現(xiàn)遠(yuǎn)程引導(dǎo)和映像恢復(fù)
1.5.8 虛擬機(jī)故障的檢測及遷移
第二部分 設(shè)備
第2章 Linux驅(qū)動(dòng)模型
2.1 概述
2.2 引用計(jì)數(shù)
2.3 內(nèi)核對象及集合
2.3.1 創(chuàng)建或初始化內(nèi)核對象
2.3.2 將內(nèi)核對象添加到sysfs文件系統(tǒng)
2.3.3 創(chuàng)建、初始化、添加內(nèi)核對象集
2.3.4 發(fā)送內(nèi)核對象變化事件到用戶空間
2.4 sysfs文件系統(tǒng)
2.4.1 構(gòu)建內(nèi)核對象、對象屬性和對象關(guān)系的內(nèi)部樹
2.4.2 對sysfs文件的讀/寫轉(zhuǎn)換為對屬性的show和store操作
2.4.3 為具體內(nèi)核對象定義屬性的規(guī)范流程
2.5 kobject編程模式
2.6 驅(qū)動(dòng)模型對象
2.6.1 總線類型
2.6.2 設(shè)備
2.6.3 驅(qū)動(dòng)
2.6.4 類
2.6.5 接口
2.7 驅(qū)動(dòng)模型編程模式
第3章 PCI子系統(tǒng)
3.1 概述
3.2 PCI子系統(tǒng)對象
3.2.1 pci_bus:PCI總線
3.2.2 pci_dev:PCI設(shè)備
3.3 PCI核心初始化
3.4 配置訪問方法
3.4.1 機(jī)制#1方式
3.4.2 PCIBIOS方式
3.4.3 配置訪問接口
3.5 PCI總線掃描
3.5.1 PCI總線編號范例
3.5.2 PCI總線掃描流程
3.6 PCI中斷路由
3.6.1 中斷路由初始化
3.6.2 查找中斷路由表
3.6.3 查找中斷路由驅(qū)動(dòng)
3.6.4 分配ISA IRQ號
3.7 PCI資源分配
3.7.1 PCI資源分配范例
3.7.2 PCI資源分配流程
3.8 PCI設(shè)備驅(qū)動(dòng)編程模式
3.8.1 定義PCI驅(qū)動(dòng)結(jié)構(gòu)
3.8.2 定義支持設(shè)備ID列表
3.8.3 實(shí)現(xiàn)probe回調(diào)方法
3.8.4 實(shí)現(xiàn)remove回調(diào)方法
3.8.5 實(shí)現(xiàn)其他回調(diào)方法
3.8.6 注冊與注銷PCI驅(qū)動(dòng)
第4章 SCSI子系統(tǒng)
4.1 概述
4.2 SCSI子系統(tǒng)對象
4.2.1 scsi_host_template:SCSI主機(jī)適配器模板
4.2.2 Scsi_Host:SCSI主機(jī)適配器
4.2.3 scsi_target:SCSI目標(biāo)節(jié)點(diǎn)
4.2.4 scsi_device:SCSI邏輯設(shè)備
4.2.5 scsi_cmnd:SCSI命令
4.3 SCSI子系統(tǒng)初始化
4.4 添加適配器到系統(tǒng)
4.5 SCSI設(shè)備探測
4.5.1 探測流程入口
4.5.2 探測邏輯單元
4.5.3 添加SCSI設(shè)備
4.6 SCSI磁盤驅(qū)動(dòng)
4.6.1 同步執(zhí)行部分
4.6.2 異步執(zhí)行部分
4.6.3 重新校驗(yàn)磁盤
4.6.4 讓磁盤轉(zhuǎn)起來
4.7 SCSI命令執(zhí)行
4.8 SCSI錯(cuò)誤恢復(fù)
4.8.1 命令進(jìn)入錯(cuò)誤恢復(fù)
4.8.2 錯(cuò)誤恢復(fù)線程執(zhí)行
4.8.3 發(fā)送錯(cuò)誤恢復(fù)命令
4.9 SCSI低層驅(qū)動(dòng)編程模式
4.9.1 定義主機(jī)適配器模板
4.9.2 完善探測回調(diào)處理邏輯
4.9.3 實(shí)現(xiàn)queuecommand回調(diào)函數(shù)
4.9.4 實(shí)現(xiàn)中斷處理函數(shù)
4.9.5 實(shí)現(xiàn)其他回調(diào)函數(shù)
4.9.6 模塊加載和卸載
第三部分 存儲(chǔ)I/O
第5章 塊I/O子系統(tǒng)
5.1 概述
5.2 塊I/O子系統(tǒng)對象
5.2.1 gendisk:通用磁盤
5.2.2 hd_struct:分區(qū)
5.2.3 block_device:塊設(shè)備
5.2.4 request_queue:請求隊(duì)列
5.2.5 request:塊設(shè)備驅(qū)動(dòng)層請求
5.2.6 bio:通用塊層請求
5.3 添加磁盤到系統(tǒng)
5.3.1 分配通用磁盤描述符
5.3.2 添加到sysfs文件系統(tǒng)
5.3.3 獲取磁盤塊設(shè)備描述符
5.3.4 打開磁盤塊設(shè)備描述符
5.3.5 重新掃描磁盤分區(qū)
5.3.6 設(shè)備號映射機(jī)制
5.4 請求處理過程
5.4.1 上層向塊I/O子系統(tǒng)提交請求
5.4.2 構(gòu)造、排序或合并請求
5.4.3 SCSI策略例程逐個(gè)處理請求
5.4.4 為請求構(gòu)造SCSI命令
5.4.5 為SCSI命令準(zhǔn)備聚散列表
5.4.6 派發(fā)SCSI命令到低層驅(qū)動(dòng)
5.5 I/O調(diào)度算法
5.5.1 為請求隊(duì)列建立關(guān)聯(lián)的I/O調(diào)度隊(duì)列
5.5.2 判斷bio是否可以被合并到request
5.5.3 將請求添加到I/O調(diào)度隊(duì)列或請求隊(duì)列
5.5.4 從I/O調(diào)度隊(duì)列派發(fā)請求到請求隊(duì)列
5.6 請求處理完成
5.6.1 低層驅(qū)動(dòng)調(diào)用完成回調(diào)函數(shù)
5.6.2 引發(fā)塊I/O子系統(tǒng)的軟中斷
5.6.3 調(diào)用請求隊(duì)列的軟中斷回調(diào)
5.6.4 調(diào)用上層的完成回調(diào)函數(shù)
5.7 屏障I/O處理
5.7.1 屏障I/O接口
5.7.2 添加屏障請求
5.7.3 處理屏障請求
5.7.4 完成屏障請求
5.8 完整性保護(hù)
5.8.1 數(shù)據(jù)完整性對象
5.8.2 為塊設(shè)備注冊完整性能力
5.8.3 為bio準(zhǔn)備完整性元數(shù)據(jù)
5.8.4 校驗(yàn)完整性元數(shù)據(jù)
5.8.5 修正bio基準(zhǔn)標(biāo)簽
5.9 磁盤類設(shè)備驅(qū)動(dòng)編程模式
5.9.1 定義磁盤類設(shè)備私有數(shù)據(jù)結(jié)構(gòu)
5.9.2 定義和實(shí)現(xiàn)塊設(shè)備操作表
5.9.3 分配和初始化磁盤類設(shè)備相關(guān)結(jié)構(gòu)
5.9.4 為磁盤類設(shè)備準(zhǔn)備請求隊(duì)列并添加通用磁盤到系統(tǒng)
第6章 Multi-Disk(MD)模塊
6.1 概述
6.2 RAID模塊對象
6.2.1 mddev_t:RAID設(shè)備
6.2.2 mdk_rdev_t:成員磁盤
6.2.3 mdk_personality:MD個(gè)性
6.3 MD模塊初始化
6.4 MD設(shè)備創(chuàng)建
6.4.1 從用戶空間打開MD設(shè)備
6.4.2 用戶空間發(fā)送ioctl創(chuàng)建MD
6.4.3 自動(dòng)檢測和運(yùn)行RAID
6.5 MD設(shè)備請求執(zhí)行
6.6 MD個(gè)性化編程模式
6.6.1 定義私有數(shù)據(jù)結(jié)構(gòu)
6.6.2 聲明個(gè)性化結(jié)構(gòu)
6.6.3 實(shí)現(xiàn)個(gè)性化方法
6.6.4 實(shí)現(xiàn)模塊加載和卸載方法
6.7 RAID0模塊
6.7.1 為RAID0設(shè)備構(gòu)造條帶區(qū)域
6.7.2 查找包含給定偏移的條帶區(qū)域
6.7.3 映射到成員設(shè)備及其扇區(qū)偏移
6.8 RAID5模塊
6.8.1 RAID5模塊對象
6.8.2 請求執(zhí)行過程
6.8.3 同步和恢復(fù)過程
第7章 Device Mapper模塊
7.1 概述
7.2 Device Mapper對象
7.2.1 dm_table:映射表結(jié)構(gòu)
7.2.2 dm_target:映射目標(biāo)結(jié)構(gòu)
7.2.3 mapped_device:映射設(shè)備結(jié)構(gòu)
7.2.4 dm_dev:低層設(shè)備結(jié)構(gòu)
7.2.5 target_type:映射目標(biāo)類型
7.3 Device Mapper模塊初始化
7.4 映射設(shè)備的創(chuàng)建
7.4.1 分配映射設(shè)備描述符
7.4.2 加載映射表
7.4.3 恢復(fù)映射設(shè)備
7.5 映射設(shè)備的請求執(zhí)行
7.5.1 添加到延遲鏈表
7.5.2 分割與處理bio
7.6 內(nèi)核復(fù)制線程
7.6.1 準(zhǔn)備復(fù)制任務(wù)
7.6.2 任務(wù)處理流程
7.7 Device Mapper目標(biāo)類型編程模式
7.7.1 定義私有數(shù)據(jù)結(jié)構(gòu)
7.7.2 聲明目標(biāo)類型結(jié)構(gòu)
7.7.3 實(shí)現(xiàn)目標(biāo)類型方法
7.7.4 實(shí)現(xiàn)模塊加載和卸載方法
7.8 條帶映射模塊
7.8.1 構(gòu)造函數(shù)
7.8.2 析構(gòu)函數(shù)
7.8.3 映射函數(shù)
7.8.4 end_io函數(shù)
7.9 快照映射模塊
7.9.1 快照映射對象
7.9.2 快照源構(gòu)造
7.9.3 快照構(gòu)造
7.9.4 快照源讀/寫
7.9.5 快照讀/寫
7.9.6 例外倉庫
第8章 文件系統(tǒng)
8.1 概述
8.2 文件系統(tǒng)對象
8.2.1 file_system_type:文件系統(tǒng)類型
8.2.2 super_block:VFS超級塊
8.2.3 inode:VFS索引節(jié)點(diǎn)
8.2.4 dentry:VFS目錄項(xiàng)
8.2.5 vfsmount:文件系統(tǒng)裝載
8.3 裝載文件系統(tǒng)
8.3.1 mount系統(tǒng)調(diào)用的處理流程
8.3.2 構(gòu)建子文件系統(tǒng)裝載實(shí)例
8.3.3 關(guān)聯(lián)文件系統(tǒng)的超級塊實(shí)例
8.3.4 調(diào)用回調(diào)函數(shù)填充超級塊
8.3.5 裝載到全局文件系統(tǒng)樹
8.4 路徑查找
8.4.1 路徑查找入口
8.4.2 逐個(gè)分量解析
8.4.3 解析單個(gè)分量
8.4.4 上溯通過裝載點(diǎn)
8.4.5 下溯通過裝載點(diǎn)
8.4.6 處理符號鏈接
8.5 打開文件
8.5.1 open系統(tǒng)調(diào)用的處理流程
8.5.2 解析路徑最后一個(gè)分量
8.5.3 填充文件描述符的內(nèi)容
8.6 讀文件
8.6.1 read系統(tǒng)調(diào)用的處理流程
8.6.2 基于緩沖頁面構(gòu)造I/O請求
8.6.3 直接針對頁面構(gòu)造I/O請求
8.6.4 從文件塊編號推導(dǎo)磁盤塊編號
8.7 寫文件
8.7.1 write系統(tǒng)調(diào)用的處理流程
8.7.2 通知為緩沖寫請求作準(zhǔn)備
8.7.3 通知數(shù)據(jù)已復(fù)制到緩沖區(qū)
8.8 沖刷文件
8.8.1 BDI相關(guān)對象
8.8.2 注冊后備設(shè)備信息
8.8.3 forker線程執(zhí)行流程
8.8.4 flusher線程執(zhí)行流程
8.8.5 同步相關(guān)系統(tǒng)調(diào)用
8.9 塊設(shè)備文件
8.9.1 塊設(shè)備的主inode和次inode
8.9.2 對塊設(shè)備文件的操作轉(zhuǎn)換為對塊設(shè)備的操作
8.9.3 對塊設(shè)備文件的讀/寫作用于塊設(shè)備之上
8.10 文件系統(tǒng)編程模式
主要參考文獻(xiàn)

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號