电子工业出版社精品店店铺主页二维码
电子工业出版社精品店
微信扫描二维码,访问我们的微信店铺

文件系统技术内幕:大数据时代海量数据存储之道

49.00
运费: 免运费
文件系统技术内幕:大数据时代海量数据存储之道 商品图0
文件系统技术内幕:大数据时代海量数据存储之道 商品缩略图0

商品详情

书名:文件系统技术内幕:大数据时代海量数据存储之道  
定价:102.0  
ISBN:9787121424786  
作者:张书宁  
版次:第1版  
出版时间:2022-01  

内容提要:  
本书通过理论与实践相结合的方式,深入浅出地介绍了文件系统的概念、原理和具体实现。本书涵盖本地文件系统、网络文件系统、分布式文件系统和对象存储等内容,可以说涵盖了数据持久化文件系统的主要领域。为了使读者更加深入地理解文件系统的原理,本书不仅介绍了文件系统的原理和关键技术,还结合开源项目介绍了文件系统的实现细节。*后,本书介绍了在互联网领域广泛使用的对象存储、承载海量访问请求的原理及可存储海量数据的架构。希望读者通过阅读本书对文件系统有全面、深入的认识。本书既可以作为文件系统及其他存储系统开发人员的指导用书,也可以作为软件架构师、程序员和 Linux 运维人员的参考用书。  



作者简介:  
张书宁戴尔科技(Dell Technologies)首席软件开发工程师,负责公司核心存储产品Unity和PowerStore的研发工作。先后就职于华为、甲骨文(Oracle)、戴尔科技等世界五百强公司,曾负责分布式存储产品FusionStorage及中端企业级存储产品Unity和PowerStore等的系统设计和开发工作,深耕存储领域十几载。为了答谢广大读者,凡购买本书的读者有机会免费加入作者的交流存储技术社群(每季度限100人),在该社群中交流存储及文件系统相关技术,或者咨询问题。公众号: SunnyZhang的IT世界ID:itworld123关注公众号,私信“免费社群”即可获得免费加入的方法  

目录:  
目 录  
第 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.1 Linux 权限管理简介 .................................................................. 30  
2.5.2 设置文件的 RWX 权限 ............................................................. 31  
2.5.3 设置文件的 ACL 权限 .............................................................. 34  
2.6 文件系统的锁机制 ................................................................................ 37  
2.6.1 文件锁的分类与模式 ................................................................ 37  
2.6.2 Linux 文件锁的使用 .................................................................. 38  
2.7 文件系统的扩展属性 ............................................................................ 41  
2.8 文件的零拷贝 ........................................................................................ 42  
2.8.1 零拷贝的基本原理 .................................................................... 42  
2.8.2 零拷贝的系统 API ..................................................................... 44  
第 3 章 知其所以然——本地文件系统原理及核心技术 .......................................... 46  
3.1 Linux 文件系统整体架构简介 .............................................................. 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.1 ExtX 文件系统 ........................................................................... 95  
3.3.2 XFS 文件系统 ............................................................................ 95  
3.3.3 ZFS 文件系统 ............................................................................ 96  
3.3.4 Btrfs 文件系统 ........................................................................... 97  
3.3.5 FAT 文件系统 ............................................................................ 98  
3.3.6 NTFS 文件系统 ......................................................................... 98  
第 4 章 从理论到实战——Ext2 文件系统代码详解 ................................................. 99  
4.1 本地文件系统的分析方法与工具 ........................................................ 99  
4.1.1 基于文件构建文件系统 .......................................................... 100  
4.1.2 了解函数调用流程的利器 ...................................................... 100  
4.2 从 Ext2 文件系统磁盘布局说起 ......................................................... 102  
4.2.1 Ext2 文件系统整体布局概述 .................................................. 102  
4.2.2 超级块(SuperBlock) ........................................................... 103  
4.2.3 块组描述符(Block Group Descriptor) ................................ 106  
4.2.4 块位图(Block Bitmap) ........................................................ 108  
4.2.5 inode 位图(inode Bitmap) ................................................... 109  
4.2.6 inode 与 inode 表 ..................................................................... 109  
4.3 Ext2 文件系统的根目录与目录数据布局 .......................................... 113  
4.4 Ext2 文件系统的挂载 .......................................................................... 116  
4.5 如何创建一个文件 .............................................................................. 117  
4.5.1 创建普通文件 .......................................................................... 118  
4.5.2 创建软硬链接 .......................................................................... 121  
4.5.3 创建目录 .................................................................................. 125  
4.6 Ext2 文件系统删除文件的流程 .......................................................... 125  
4.7 Ext2 文件系统中文件的数据管理与写数据流程 .............................. 129  
4.7.1 Ext2 文件系统中的文件数据是如何管理的 .......................... 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.10 Ext2 文件系统的扩展属性 ................................................................ 154  
4.10.1 Ext2 文件系统扩展属性是怎么在磁盘存储的 .................... 154  
4.10.2 设置扩展属性的 VFS 流程 ................................................... 157  
4.10.3 Ext2 文件系统扩展属性接口实现 ........................................ 159  
4.11 权限管理代码解析 ............................................................................ 163  
4.11.1 ACL 的设置与获取 ............................................................... 163  
4.11.2 ACL 权限检查 ....................................................................... 164  
4.12 文件锁代码解析 ................................................................................ 165  
4.12.1 flock()函数的内核实现 ......................................................... 165  
4.12.2 fcntl()函数的内核实现 .......................................................... 167  
第 5 章 基于网络共享的网络文件系统 ................................................................... 172  
5.1 什么是网络文件系统 .......................................................................... 172  
5.2 网络文件系统与本地文件系统的异同 .............................................. 174  
5.3 常见的网络文件系统简析 .................................................................. 174  
5.3.1 NFS 文件系统 .......................................................................... 174  
5.3.2 SMB 协议与 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.1 NFS 文件系统架构及流程简析 .............................................. 181  
5.6.2 RPC 协议简析 .......................................................................... 185  
5.6.3 NFS 协议简析 .......................................................................... 186  
5.6.4 NFS 协议的具体实现 .............................................................. 191  
5.7 NFS 服务端及实例解析 ...................................................................... 203  
5.7.1 NFSD ........................................................................................ 203  
5.7.2 NFS-Ganesha ............................................................................ 210  
第 6 章 提供横向扩展的分布式文件系统 ............................................................... 216  
6.1 什么是分布式文件系统 ...................................................................... 216  
6.2 分布式文件系统与网络文件系统的异同 .......................................... 217  
6.3 常见分布式文件系统 .......................................................................... 217  
6.3.1 GFS ........................................................................................... 218  
6.3.2 CephFS ..................................................................................... 219  
6.3.3 GlusterFS .................................................................................. 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 设备故障与容错(Fault Tolerance) ...................................... 229  
6.6 分布式文件系统实例之 CephFS ........................................................ 230  
6.6.1 搭建一个 CephFS 分布式文件系统 ....................................... 230  
6.6.2 CephFS 分布式文件系统架构简析 ........................................ 231  
6.6.3 CephFS 客户端架构 ................................................................ 234  
6.6.4 CephFS 集群端架构 ................................................................ 236  
6.6.5 CephFS 数据组织简析 ............................................................ 239  
6.6.6 CephFS 文件创建流程解析 .................................................... 244  
6.6.7 CephFS 写数据流程解析 ........................................................ 251  
6.7 分布式系统实例之 GlusterFS ............................................................. 253  
6.7.1 GlusterFS 的安装与使用 ......................................................... 253  
6.7.2 GlusterFS 整体架构简析 ......................................................... 257  
6.7.3 转换器与转换器树 .................................................................. 259  
6.7.4 GlusterFS 数据分布与可靠性 ................................................. 263  
6.7.5 GlusterFS 客户端架构与 I/O 流程 .......................................... 268  
6.7.6 GlusterFS 服务端架构与 I/O 流程 .......................................... 270  
第 7 章 百花争艳——文件系统的其他形态 ............................................................ 272  
7.1 用户态文件系统框架 .......................................................................... 272  
7.1.1 Linux 中的用户态文件系统框架 Fuse ................................... 272  
7.1.2 Windows 中的用户态文件系统框架 Dokany ......................... 279  
7.2 对象存储与常见实现简析 .................................................................. 282  
7.2.1 从文件系统到对象存储 .......................................................... 282  
7.2.2 S3 对象存储简析 ..................................................................... 287  
7.2.3 Haystack 对象存储简析 .......................................................... 288  
参考文献 ....................................................................................................................... 295  

电子工业出版社精品店店铺主页二维码
电子工业出版社精品店
扫描二维码,访问我们的微信店铺

文件系统技术内幕:大数据时代海量数据存储之道

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏