作品简介

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

张书宁,戴尔科技(Dell Technologies)首席软件开发工程师,负责公司核心存储产品Unity和PowerStore的研发工作。

先后就职于华为、甲骨文(Oracle)、戴尔科技等世界五百强公司,曾负责分布式存储产品FusionStorage及中端企业级存储产品Unity和PowerStore等的系统设计和开发工作,深耕存储领域十几载。

作品目录

  • 推荐序
  • 前言
  • 第1章 从文件系统是什么说起
  • 1.1 什么是文件系统
  • 1.2 常见文件系统及分类
  • 第2章 知其然——如何使用文件系统
  • 2.1 巧妇之炊——准备开发环境
  • 2.2 文件内容的访问——读/写文件
  • 2.3 如何遍历目录中的文件
  • 2.4 格式化文件系统与挂载
  • 2.5 文件系统与权限管理
  • 2.6 文件系统的锁机制
  • 2.7 文件系统的扩展属性
  • 2.8 文件的零拷贝
  • 第3章 知其所以然——本地文件系统原理及核心技术
  • 3.1 Linux文件系统整体架构简介
  • 3.2 本地文件系统的关键技术与特性
  • 3.3 常见本地文件系统简介
  • 第4章 从理论到实战——Ext2文件系统代码详解
  • 4.1 本地文件系统的分析方法与工具
  • 4.2 从Ext2文件系统磁盘布局说起
  • 4.3 Ext2文件系统的根目录与目录数据布局
  • 4.4 Ext2文件系统的挂载
  • 4.5 如何创建一个文件
  • 4.6 Ext2文件系统删除文件的流程
  • 4.7 Ext2文件系统中文件的数据管理与写数据流程
  • 4.8 读数据的流程分析
  • 4.9 如何分配磁盘空间
  • 4.10 Ext2文件系统的扩展属性
  • 4.11 权限管理代码解析
  • 4.12 文件锁代码解析
  • 第5章 基于网络共享的网络文件系统
  • 5.1 什么是网络文件系统
  • 5.2 网络文件系统与本地文件系统的异同
  • 5.3 常见的网络文件系统简析
  • 5.4 网络文件系统关键技术
  • 5.5 准备学习环境与工具
  • 5.6 网络文件系统实例
  • 5.7 NFS服务端及实例解析
  • 第6章 提供横向扩展的分布式文件系统
  • 6.1 什么是分布式文件系统
  • 6.2 分布式文件系统与网络文件系统的异同
  • 6.3 常见分布式文件系统
  • 6.4 分布式文件系统的横向扩展架构
  • 6.5 分布式文件系统的关键技术
  • 6.6 分布式文件系统实例之CephFS
  • 6.7 分布式系统实例之GlusterFS
  • 第7章 百花争艳——文件系统的其他形态
  • 7.1 用户态文件系统框架
  • 7.2 对象存储与常见实现简析
  • 参考文献
展开全部