数据是当前信息技术发展的核心资产,需要被高效并可靠地存储起来,以服务众多现实生活中的应用,如互联网、大数据、人工智能及高性能计算等。鉴于数据存储的重要性,从2003年开始,我们在清华大学开设了面向计算机专业研究生的“网络存储技术”课程,介绍数据存储领域的基础知识及最新的学术动态。在这么多年的教学过程中,我们发现没有合适的图书可以作为课程教材:一方面,大部分计算机系统类图书仅将数据存储作为其中的章节,对数据存储介绍得不够全面系统;另一方面,专门介绍数据存储的图书内容相对陈旧,无法反映当前存储领域在硬件和软件方面的最新进展。因此,我们萌生了编写一本数据存储技术图书的想法。就在这个想法产生不久后,华为数据存储产品线找到了我们,他们也有相似的需求:编写一本数据存储技术的图书,向员工和客户普及数据存储的基本概念和技术。在此契机下,我们与华为的同人一起编写本书,本书既包含我们团队在数据存储领域多年的教学和科研经验,也包含以华为为代表的存储产业界力量在存储维护、存储解决方案等方面的深度思考。
本书共14章,内容概述如下。
第1章 数据存储的背景
这一章介绍数据存储的背景,包括数据存储在当今信息时代的重要性及目标。
第2章 存储盘与存储介质
在计算机中,数据被存储在不同的存储介质和存储设备中,这一章主要介绍存储盘与存储介质,包括磁盘、SSD(Solid State Disk,固态硬盘)及主存。针对每类存储盘与存储介质,这一章简述其发展历史、组成结构及性能特征。为了充分发挥硬件的性能,存储盘一般包含复杂的固件设计,比如地址映射、磁盘缓存及磁盘调度等。此外,这一章还简要介绍光存储、磁带等其他存储介质。
第3章 存储阵列
单独的存储设备无法满足应用的容量和可靠性诉求,因此需要将多个存储设备进行集中池化管理,即构成存储阵列。这一章首先介绍存储阵列的硬件架构,包括控制器模块、接口模块等;然后介绍其软件架构并着重介绍RAID(Redundant Arrays of Independent Disks,独立磁盘冗余阵列)算法;最后介绍如何设计存储阵列,以达到高性能和高可靠性的目标。
第4章 存储协议
存储协议负责主机与存储设备之间的通信及数据交互。这一章介绍典型的存储协议,包括面向磁盘的SCSI(Small Computer System Interface,小型计算机系统接口)协议,以及面向SSD的NVMe(Non-Volatile Memory express,非易失性内存标准)协议。此外,还介绍新型的内存互连协议——CXL(Compute Express Link,缓存一致性互连)协议。
第5章 键值存储
现实中的大量数据都可以通过键值对的映射方式来表达,因此键值存储系统应用广泛。这一章介绍键值存储系统常用的索引结构,如散列索引、B+树及LSM树等,并介绍键值存储系统如何进行数据布局。此外,这一章还探讨崩溃一致性机制,这类机制使得键值存储系统在崩溃后能恢复到一致的状态。
第6章 文件系统
除了键值存储系统,另一种常见的存储软件系统是文件系统。这一章讲述文件系统的基本操作,包括文件操作和目录操作。这一章通过案例逐步剖析文件系统的关键设计模块,如命名空间管理、缓存与一致性等,帮助读者深刻理解文件系统的运作原理。
第7章 网络存储体系结构
相比于存储阵列,网络存储系统在扩展性、稳定性及共享访问等方面具有优势。这一章介绍网络存储系统体系结构的发展历程:从最初的直连式存储到集中式网络存储(例如网络附属存储和存储区域网络),再到并行存储、P2P存储及云存储。此外还介绍存储虚拟化、软件定义存储、超融合架构等前沿技术。
第8章 分布式存储系统
分布式存储系统将数据分散存储在多台服务器中,以应对持续增长的数据量。这一章首先介绍分布式存储系统的典型架构及其关键衡量指标,然后分别介绍分布式键值存储系统、分布式对象存储系统、分布式块存储系统及分布式文件系统。对于每一类分布式存储系统,通过介绍系统实例帮助读者熟悉其中的关键技术。
第9章 存储可靠性
高可靠性是数据存储的核心诉求之一,这一章首先介绍存储可靠性的基本概念,然后阐述硬盘可靠性和闪存介质可靠性问题,随后分析纠删码技术原理及发展趋势,最后阐述分布式存储系统可靠性问题。
第10章 存储安全
存储安全事故会导致用户隐私数据泄露甚至彻底丢失。这一章首先介绍存储安全的理念和安全体系,然后介绍存储安全的关键技术,包括系统安全、数据安全及安全管理等。此外,这一章还介绍最新的硬件安全技术,比如TEE(Trusted Execution Environment,可信执行环境)技术。
第11章 数据保护
这一章介绍如何对数据进行保护,包括镜像、快照及克隆等技术。此外,还介绍数据保护的三大类场景,即备份、归档和容灾,在这些场景中,数据保护具有不同的作用和定位。
第12章 存储维护
存储系统的复杂度日益提高,维护难度也随之增加。这一章介绍存储维护中的预防性维护和纠正性维护,其中前者用于预防存储系统发生故障,而后者用于修复已发生的故障。
第13章 存储解决方案
这一章介绍不同场景的存储解决方案,包括运营商、政务融合场景、金融行业、医疗行业及教育行业等,帮助读者通过场景实例了解如何根据不同需求设计高效的数据存储方案。
第14章 存储技术趋势与发展
这一章介绍存储技术趋势与发展,分别介绍了存内计算、持久性内存、在网存储、智能存储、边缘存储、区块链存储、分离式数据中心架构、高密度新型存储等前沿技术。