预购商品
书目分类
特别推荐
本書通過理論與實踐相結合的方式,深入淺出地介紹了檔案系統的概念、原理和具體實現。本書涵蓋本地檔案系統、網路檔案系統、分散式檔案系統和物件存儲等內容,可以說涵蓋了資料持久化檔案系統的主要領域。為了使讀者更加深入地理解檔案系統的原理,本書不僅介紹了檔案系統的原理和關鍵技術,還結合開源項目介紹了檔案系統的實現細節。最後,本書介紹了在互聯網領域廣泛使用的物件存儲、承載海量訪問請求的原理及可存儲海量資料的架構。希望讀者通過閱讀本書對檔案系統有全面、深入的認識。 本書既可以作為檔案系統及其他存儲系統開發人員的指導用書,也可以作為軟體架構師、程式師和 Linux 運維人員的參考用書。
第1章從檔案系統是什麼說起.1 1.1什麼是檔案系統.1 1.1.1普通用戶角度的檔案系統.3 1.1.2作業系統層面的檔案系統.9 1.1.3檔案系統的基本原理.12 1.2常見檔案系統及分類.13 1.2.1本地檔案系統.14 1.2.2偽檔案系統.14 1.2.3網路檔案系統.15 1.2.4集群檔案系統.16 1.2.5分散式檔案系統.16 第2章知其然——如何使用檔案系統.17 2.1巧婦之炊——準備開發環境.17 2.2檔內容的訪問——讀/寫檔.18 2.2.1檔案系統的API.18 2.2.2檔訪問的一般流程.19 2.2.3檔內容的讀/寫實例.20 2.2.4關於API函數的進一步解釋.22 2.3如何遍歷目錄中的檔.24 2.4格式化檔案系統與掛載.27 2.5檔案系統與許可權管理.29 2.5.1Linux許可權管理簡介.30 2.5.2設置文件的RWX許可權.31 2.5.3設置文件的ACL許可權.34 2.6檔案系統的鎖機制.37 2.6.1檔鎖的分類與模式.37 2.6.2Linux檔鎖的使用.38 2.7檔案系統的擴展屬性.41 2.8檔的零拷貝.42 2.8.1零拷貝的基本原理.42 2.8.2零拷貝的系統API.44 第3章知其所以然——本地檔案系統原理及核心技術.46 3.1Linux檔案系統整體架構簡介.46 3.1.1從VFS到具體檔案系統.48 3.1.2關鍵處理流程舉例.50 3.2本地檔案系統的關鍵技術與特性.61 3.2.1磁碟空間佈局(Layout).61 3.2.2檔的資料管理.69 3.2.3緩存技術.77 3.2.4快照與克隆技術.82 3.2.5日誌技術.84 3.2.6許可權管理.85 3.2.7配額管理.89 3.2.8文件鎖的原理.91 3.2.9擴展屬性與ADS.92 3.2.10其他技術簡介.94 3.3常見本地檔案系統簡介.95 3.3.1ExtX檔案系統.95 3.3.2XFS檔案系統.95 3.3.3ZFS檔案系統.96 3.3.4Btrfs檔案系統.97 3.3.5FAT檔案系統.98 3.3.6NTFS檔案系統.98 第4章從理論到實戰——Ext2檔案系統代碼詳解.99 4.1本地檔案系統的分析方法與工具.99 4.1.1基於文件構建檔案系統.100 4.1.2瞭解函式呼叫流程的利器.100 4.2從Ext2檔案系統磁片佈局說起.102 4.2.1Ext2檔案系統整體佈局概述.102 4.2.2超級塊(SuperBlock).103 4.2.3塊組描述符(BlockGroupDescriptor).106 4.2.4塊點陣圖(BlockBitmap).108 4.2.5inode點陣圖(inodeBitmap).109 4.2.6inode與inode表.109 4.3Ext2檔案系統的根目錄與目錄資料佈局.113 4.4Ext2檔案系統的掛載.116 4.5如何創建一個檔.117 4.5.1創建普通檔.118 4.5.2創建軟硬連結.121 4.5.3創建目錄.125 4.6Ext2檔案系統刪除檔的流程.125 4.7Ext2檔案系統中檔的資料管理與寫資料流程程.129 4.7.1Ext2檔案系統中的檔資料是如何管理的.129 4.7.2從VFS到Ext2檔案系統的寫流程.130 4.7.3不同寫模式的流程分析.134 4.7.4緩存資料刷寫及流程.138 4.8讀數據的流程分析.140 4.8.1緩存命中場景.141 4.8.2非緩存命中場景.142 4.8.3資料預讀邏輯.143 4.9如何分配磁碟空間.148 4.9.1計算存儲路徑.150 4.9.2獲取存儲路徑.152 4.9.3分配磁碟空間.153 4.10Ext2檔案系統的擴展屬性.154 4.10.1Ext2檔案系統擴展屬性是怎麼在磁片存儲的.154 4.10.2設置擴展屬性的VFS流程.157 4.10.3Ext2檔案系統擴展屬性介面實現.159 4.11許可權管理代碼解析.163 4.11.1ACL的設置與獲取.163 4.11.2ACL許可權檢查.164 4.12檔鎖代碼解析.165 4.12.1flock()函數的內核實現.165 4.12.2fcntl()函數的內核實現.167 第5章基於網路共用的網路檔案系統.172 5.1什麼是網路檔案系統.172 5.2網路檔案系統與本地檔案系統的異同.174 5.3常見的網路檔案系統簡析.174 5.3.1NFS檔案系統.174 5.3.2SMB協定與CIFS協定.175 5.4網路檔案系統關鍵技術.175 5.4.1遠端程序呼叫(RPC協議).176 5.4.2用戶端與服務端的語言——檔案系統協定.177 5.4.3檔鎖的網路實現.178 5.5準備學習環境與工具.179 5.5.1搭建一個NFS服務.179 5.5.2學習網路檔案系統的利器.180 5.6網路檔案系統實例.181 5.6.1NFS檔案系統架構及流程簡析.181 5.6.2RPC協議簡析.185 5.6.3NFS協議簡析.186 5.6.4NFS協議的具體實現.191 5.7NFS服務端及實例解析.203 5.7.1NFSD.203 5.7.2NFS-Ganesha.210 第6章提供橫向擴展的分散式檔案系統.216 6.1什麼是分散式檔案系統.216 6.2分散式檔案系統與網路檔案系統的異同.217 6.3常見分散式檔案系統.217 6.3.1GFS.218 6.3.2CephFS.219 6.3.3GlusterFS.219 6.4分散式檔案系統的橫向擴展架構.220 6.4.1中心架構.220 6.4.2對等架構.221 6.5分散式檔案系統的關鍵技術.222 6.5.1分散式資料佈局.222 6.5.2分散式資料可靠性(Reliability).224 6.5.3分散式資料一致性(Consistency).228 6.5.4設備故障與容錯(FaultTolerance).229 6.6分散式檔案系統實例之CephFS.230 6.6.1搭建一個CephFS分散式檔案系統.230 6.6.2CephFS分散式檔案系統架構簡析.231 6.6.3CephFS用戶端架構.234 6.6.4CephFS集群端架構.236 6.6.5CephFS資料組織簡析.239 6.6.6CephFS檔創建流程解析.244 6.6.7CephFS寫資料流程程解析.251 6.7分散式系統實例之GlusterFS.253 6.7.1GlusterFS的安裝與使用.253 6.7.2GlusterFS整體架構簡析.257 6.7.3轉換器與轉換器樹.259 6.7.4GlusterFS資料分佈與可靠性.263 6.7.5GlusterFS用戶端架構與I/O流程.268 6.7.6GlusterFS服務端架構與I/O流程.270 第7章百花爭豔——檔案系統的其他形態.272 7.1用戶態檔案系統框架.272 7.1.1Linux中的用戶態檔案系統框架Fuse.272 7.1.2Windows中的用戶態檔案系統框架Dokany.279 7.2物件存儲與常見實現簡析.282 7.2.1從檔案系統到物件存儲.282 7.2.2S3物件存儲簡析.287 7.2.3Haystack物件存儲簡析.288 參考文獻.295
客服公告
热门活动
订阅电子报