作品简介
本书致力于帮助读者形成有关Linux开源存储世界的细致的拓扑,从存储硬件、Linux存储堆栈、存储加速、存储安全、存储管理、分布式存储、云存储等各个角度与层次展开讨论,同时对处于主导地位的、较为流行的开源存储项目进行阐述,包括SPDK、ISA-L、OpenSDS、Ceph、OpenStack Swift与Cinder、容器存储等。本书内容基本不涉及具体源码,主要围绕各个项目的起源与发展、实现原理与框架、要解决的网络问题等方面展开讨论,致力于帮助读者对Linux开源存储技术的实现与发展形成整体清晰的认识。本书语言通俗易懂,能够带领读者快速走入Linux开源存储的世界并作出自己的贡献。
英特尔开源技术中心负责英特尔的开源技术中心的开源工作,英特尔的工程师都参与其中。您可以在一个地方找到我们维护和贡献的项目,从Linux内核到云编排,到ClearLinux和KATA容器等重点项目。每个项目都有自己的部分,在那里可以很容易地了解项目并参与到我们的全球社区中。
作品目录
内容简介
推荐序一
推荐序二
前 言
第1章 Linux开源存储
1.1 Linux和开源存储
1.1.1 为什么需要开源存储
1.1.2 Linux开源存储技术原理和解决方案
1.2 Linux开源存储系统方案介绍
1.2.1 Linux单节点存储方案
1.2.2 存储服务的分类
1.2.3 数据压缩
1.2.4 重复数据删除
1.2.5 开源云计算数据存储平台
1.2.6 存储管理和软件定义存储
1.2.7 开源分布式存储和大数据解决方案
1.2.8 开源文档管理系统
1.2.9 网络功能虚拟化存储
1.2.10 虚拟机/容器存储
1.2.11 数据保护
1.3 三大顶级基金会
第2章 存储硬件与协议
2.1 存储设备的历史轨迹
2.2 存储介质的进化
2.2.1 3D NAND
2.2.2 3D XPoint
2.2.3 Intel Optane
2.3 存储接口协议的演变
2.4 网络存储技术
第3章 Linux存储栈
3.1 Linux存储系统概述
3.2 系统调用
3.3 文件系统
3.3.1 文件系统概述
3.3.2 Btrfs
3.4 Page Cache
3.5 Direct I/O
3.6 块层(Block Layer)
3.6.1 bio与request
3.6.2 I/O调度
3.6.3 I/O合并
3.7 LVM
3.8 bcache
3.9 DRBD
第4章 存储加速
4.1 基于CPU处理器的加速和优化方案
4.2 基于协处理器或其他硬件的加速方案
4.2.1 FPGA加速
4.2.2 智能网卡加速
4.2.3 Intel QAT
4.2.4 NVDIMM为存储加速
4.3 智能存储加速库(ISA-L)
4.3.1 数据保护:纠删码与磁盘阵列
4.3.2 数据安全:哈希
4.3.3 数据完整性:循环冗余校验码
4.3.4 数据压缩:IGZIP
4.3.5 数据加密
4.4 存储性能软件加速库(SPDK)
4.4.1 SPDK NVMe驱动
4.4.2 SPDK应用框架
4.4.3 SPDK用户态块设备层
4.4.4 SPDK vhost target
4.4.5 SPDK iSCSI Target
4.4.6 SPDK NVMe-oF Target
4.4.7 SPDK RPC
4.4.8 SPDK生态工具介绍
第5章 存储安全
5.1 可用性
5.1.1 SLA
5.1.2 MTTR、MTTF和MTBF
5.1.3 高可用方案
5.2 可靠性
5.2.1 磁盘阵列
5.2.2 纠删码
5.3 数据完整性
5.4 访问控制
5.5 加密与解密
第6章 存储管理与软件定义存储
6.1 OpenSDS
6.1.1 OpenSDS社区
6.1.2 OpenSDS架构
6.1.3 OpenSDS应用场景
6.1.4 与Kubernetes集成
6.1.5 与OpenStack集成
6.2 Libvirt存储管理
6.2.1 Libvirt介绍
6.2.2 Libvirt存储池和存储卷
第7章 分布式存储与Ceph
7.1 Ceph体系结构
7.1.1 对象存储
7.1.2 RADOS
7.1.3 OSD
7.1.4 数据寻址
7.1.5 存储池
7.1.6 Monitor
7.1.7 数据操作流程
7.1.8 Cache Tiering
7.1.9 块存储
7.1.10 Ceph FS
7.2 后端存储ObjectStore
7.2.1 FileStore
7.2.2 BlueStore
7.2.3 SeaStore
7.3 CRUSH算法
7.3.1 CRUSH算法的基本特性
7.3.2 CRUSH算法中的设备位置及状态
7.3.3 CRUSH中的规则与算法细节
7.3.4 CRUSH算法实践
7.3.5 CRUSH算法在Ceph中的应用
7.4 Ceph可靠性
7.4.1 OSD多副本
7.4.2 OSD纠删码
7.4.3 RBD mirror
7.4.4 RBD Snapshot
7.4.5 Ceph数据恢复
7.4.6 Ceph一致性
7.4.7 Ceph Scrub机制
7.5 Ceph中的缓存
7.5.1 RBDCache具体实现
7.5.2 固态硬盘用作缓存
7.6 Ceph加密和压缩
7.6.1 加密
7.6.2 压缩
7.6.3 加密和压缩的加速
7.7 QoS
7.7.1 前端QoS
7.7.2 后端QoS
7.7.3 dmClock客户端
7.8 Ceph性能测试与分析
7.8.1 集群性能测试
7.8.2 集群性能数据
7.8.3 综合测试分析工具
7.8.4 高级话题
7.9 Ceph与OpenStack
第8章 OpenStack存储
8.1 Swift
8.1.1 Swift体系结构
8.1.2 环
8.1.3 Swift API
8.1.4 认证
8.1.5 对象管理与操作
8.1.6 数据一致性
8.2 Cinder
8.2.1 Cinder体系结构
8.2.2 Cinder API
8.2.3 cinder-scheduler
8.2.4 cinder-volume
8.2.5 cinder-backup
第9章 容器存储
9.1 容器
9.1.1 容器技术框架
9.1.2 Docker
9.1.3 容器与镜像
9.2 Docker存储
9.2.1 临时存储
9.2.2 持久化存储
9.3 Kubernetes存储
9.3.1 Kubernetes核心概念
9.3.2 Kubernetes数据卷管理
9.3.3 Kubernetes CSI
载入中