推荐序一
当我们审视人工智能、5G、自动驾驶、电子商务、区块链等行业的技术发展趋势时,都会碰到一个挑战:其对数据的需求持续增长,并且超过了我们现有的存储、移动和处理数据的能力。DRAM(Dynamic Random Access Memory)虽然速度足够快,且可以将稳定的数据流提供给功能强大的处理器和AI算法,但由于其价格昂贵,因此只能用于小容量设计。当数据量超过DRAM的容量时,处理器就要从后级存储中获取数据,从而导致访问延时呈指数级增长。因此,我在整个职业生涯中一直致力于开发新兴的存储技术,以期解决DRAM速度与存储容量和非易失性之间的矛盾,从而推动该行业的持续发展。
借助英特尔傲腾持久内存,我们在内存-存储子系统中创建了一个新层次,这使整个行业都会受益。持久内存基于革命性的英特尔3D-XPoint技术,将传统内存的速度与容量和持久性结合在一起。自从该方案于2019年4月推出起,我们已经看到了一系列针对数据存储问题的创新解决方案。例如,在相同成本的硬件上支持更高密度的虚拟机,或通过从持久内存中重建数据库来减少重新加载时间。DRAM已接近其扩展极限,而处理器技术还需继续扩展性能及其相应的内存需求,因此拓展新层次的内存是一个必然趋势。英特尔只是这场革命的第一个成员。
中国有着丰富的创新成长土壤。从2019年英特尔傲腾持久内存发布后,中国就一直站在持久内存应用创新的前沿。从AI推理系统优化、内存数据库更具扩展性和负担性,到建立适合社区的开放性解决方案,中国公司对持久内存和新的内存-存储架构进行了大量探索,并在生产环境中进行了部署实践。
自20多年前NAND闪存问世以来,在内存-存储架构中引入新层级是业界最艰巨的挑战。创新者们正在尝试把物理及虚拟化的基础架构、中间件和软件融合在一起,以加速下一波技术发展趋势。我很荣幸能为这项工作做出一些贡献,也欢迎您加入这场持久内存技术革命。
阿尔珀·伊尔克巴哈(Alper Ilkbahar)
数据平台事业部副总裁
内存和存储产品事业部总经理
英特尔公司
2021年1月
推荐序二
持久内存并不是一个全新的概念。学术界早在20世纪就已经开始了对持久内存颗粒和应用技术的研究。随着移动互联网的蓬勃发展,应用接入端对存储系统的要求不断提高,数据规模越来越大,数据访问频率越来越高,曾被寄予厚望的Flash技术,愈发难以满足需求。从早期的Flash DIMM(一种将Flash颗粒贴在DIMM条上的技术),到NVDIMM标准的确立,再到基于DRAM+Flash的NVDIMM-N产品的问世,业界关于持久内存的尝试从未停止。但真正把持久内存从实验室推向工业界的是2016年英特尔公司和美光(Micron)公司联合发布的3D-XPoint技术,以及之后英特尔公司基于3D-XPoint研发的英特尔傲腾系列产品和配套的软硬件架构。
Flash是一项被熟知的技术,手机、计算机等各类电子产品都使用Flash作为数据存储介质。在数据中心内部,Flash作为主要的高速存储介质,响应着峰值高达每秒上亿次的请求。作为硬盘的替代品,Flash非常好地解决了读写延时和存储密度低等问题。然而,Flash的读写长尾延时、页对齐访问、读写放大及擦写寿命短等问题,限制了Flash的使用场景。此外,从平均访问延时上分析,Flash百微秒的量级与内存几十纳秒的量级有着约103量级的差距。简单来说,访问一次Flash的耗时与访问1000次内存的耗时相同,存储系统中的数据持久化操作仍是突出的性能瓶颈。传统的DRAM,由于其容量有限且数据易失,无法满足数据量和编程模型的需求。持久内存,尤其是3D-XPoint技术的出现,在一定程度上解决了这些问题。
持久内存拥有比Flash更低的读写延时、更稳定的QoS、更长的寿命,其近似内存的读写访问模式可以提供更好的性能。利用3D-XPoint技术的高存储密度,可以将单台机器的内存容量轻松扩展到几TB。借助持久内存的数据非易失特性,可以重新构建存储系统的数据持久化架构,实现更好的服务质量和更高的数据恢复效率。然而令人遗憾的是,国内关于持久内存的研究较少,且缺乏系统性,对这项技术感兴趣的人很难通过网络获取相关资料。已经使用持久内存技术的团队,对该技术的了解往往也只停留在表面。这极大地限制了技术人员对持久内存的技术探索和规模部署,导致一些适合部署持久内存的场景还在使用不适合的旧技术,甚至干脆不能提供满足需求的策略。
这本由英特尔公司一线技术人员编写的《持久内存架构与工程实践》,详细地介绍了持久内存技术的软硬件架构。相信有一定计算机体系结构基础的读者,在读完这本书之后,对持久内存会有更清晰的认识,进而可以尝试在自己的项目里使用持久内存。我阅读本书之后,有如下体会。首先,本书的知识结构非常系统。不像网络上关于持久内存的只言片语,或者一些应用场景中对持久内存介绍的浅尝辄止,本书比较系统和全面地介绍了持久内存的原理、架构及使用模式等。其次,内容有针对性且通俗易懂。本书作者来自英特尔公司一线技术团队,他们在推广持久内存技术的过程中,汇总了业务团队和一线研发人员最关注的问题,并在书中对这些问题进行了有针对性的解答和介绍,内容鞭辟入里。最后,本书还集成了持久内存工程实践的例子。这些工程实践是过去一年中知名互联网厂商规模部署持久内存的真实案例,时效性强,极具参考性,是不可多得的技术资料。
国内的技术人员为了解最新技术,在很多时候只能阅读翻译的外文书籍,或者查阅国外的资料,因此获取的资料要么已经过时,难以举一反三,要么翻译不符合我们的语义,难以全面理解,要么举例离我们的生活太远,不能很好领悟。本书完全由国人编写,面向国内技术人员,书中的案例更多地取自国内场景,在确保严谨的同时,为读者带来了很好的阅读体验。
在移动互联网时代,越来越多的国内厂商探索出了有自身特色的应用。希望这本书可以帮助读者在自己的场景中,借助持久内存,创造出更大的价值。
感谢李志明、潘丽娜、朱大义、张志杰和整个英特尔团队,在百度导入持久内存技术的过程中给予的帮助。谢谢!
张家军
系统部高级经理
百度
2021年1月
前言
动态随机访问内存是计算机系统的核心部件,用来暂时保存计算所需的数据和中间结果。动态随机访问内存的访问延时远远小于硬盘甚至固态硬盘,微处理器需要先把访问的数据从硬盘读取到内存中,然后在内存中直接对数据进行处理,最后再将数据写回硬盘中。如果大部分数据都不在内存中,那么程序的性能将受限于硬盘的读取速度;同时,为了防止意外断电造成的数据丢失或者数据完整性被破坏,数据需要以阻塞的方式频繁写入硬盘,减少程序并发性并降低性能。持久内存的出现可以从根本上解决上述问题,常用的数据可以常驻在持久内存中,微处理器可以直接访问及处理,不需要频繁地向磁盘写入。持久内存最先在存储等场景获得广泛关注,2019年英特尔发布的傲腾持久内存把该技术的应用进一步拓展到云计算的各个细分领域。
为什么写作本书
持久内存技术是内存领域革命性的技术,从根本上改变了内存和存储设备的界限。持久内存技术对产业界和学术界产生了深远影响,涉及计算机微架构、系统硬件、固件、操作系统、开发库和应用软件等众多领域。我们在推动持久内存在互联网行业应用时发现,即便资深计算机行业从业者也需要花费几个月阅读大量的文献并进行大量的实践,才能充分掌握持久内存技术的核心概念并将其应用到自身的领域中。尽管国外的学术会议陆续有相关的研究发表,且发布了持久内存编程库的英文在线书籍,但仍然缺乏对持久内存系统性的介绍和应用实践的总结,而且中文的资源基本处于空白状态。与此相对的是,中国的云计算用户和厂商对该技术的兴趣非常高,一些早期应用原型甚至处于世界的前列。基于此,我们萌发了系统性地总结持久内存技术和应用实践的想法,以推动持久内存应用技术在中国更快、更广泛的传播,促进更多的创新。
关于本书作者
本书作者均就职于英特尔公司,从事持久内存的开发、验证和应用等前沿工作,具备丰富的理论知识和一线实战经验,并与相关产业合作伙伴有着密切的合作。
第1章由胡寅玮负责,桂丙武参与编写;第2章由李翔负责,周瑜锋、李军、李志明参与编写;第3章由杜凡负责,任磊、杨伟参与编写;第4章由吴国安编写;第5章由束文辉编写;第6章由斯佩峰负责,吴国安、周雨馨参与编写;第7章由徐铖负责,张建、杜炜、双琳娜、刘献阳等参与编写;第8章由李志明编写。全书由李志明统稿。
本书主要内容
本书共包括8章,可以分为三部分:
架构基础。第1章介绍持久内存产生的背景及技术的分类;第2章介绍持久内存的硬件、固件架构和性能。
软件、编程和优化。第3章介绍操作系统和虚拟化下的驱动实现;第4章介绍编程模型和开发库;第5章介绍性能优化方法和工具。
应用实践。第6章介绍数据库应用;第7章介绍大数据应用;第8章介绍其他领域的应用。第6章、第7章中的案例多数由本书作者开发,第8章中的案例来自公开文献或经合作伙伴授权发布。
致谢
感谢英特尔数据平台事业部副总裁阿尔珀•伊尔克巴哈(Alper Ilkbahar)先生,他在非易失存储领域耕耘多年,对持久内存在英特尔及产业界的推动发挥了巨大的作用。自2017年起,阿尔珀•伊尔克巴哈就对持久内存在中国的技术发展和客户合作给予了充分支持,促进了一大批人才的培养。感谢英特尔公司院士Naga Gurumoorthy,资深首席工程师Lily Looi、Andy Rudoff、Arafa、Mohamed Arafa、Ian Steiner、Min Liu,首席工程师Kaushik Balasubramanian、Jane Xu等人在持久内存技术发展中做出的巨大贡献。以上人才和知识储备是本书得以写成的基础。感谢英特尔资深总监周翔对持久内存在中国发展的推动,他的激励直接促成了本书的写作。
感谢百度公司的系统部高级经理张家军在百忙中为本书作序,他的团队对持久内存在信息流和搜索等领域的应用起到了行业示范作用。
感谢本书所有作者在繁忙工作之余完成了本书的写作。感谢阿里巴巴的付秋雷(花名漠冰)、严春宝(花名叶目),百度的胡剑阳,快手的张新杰、任恺、王靖、徐雷鸣和刘富聪,以及英特尔公司的王宝临、朱大义、张志杰、王晨光、王超提供的宝贵案例。感谢何飞龙、唐浩栋、刘景奇、潘丽娜、张骏、彭翔宇、龚海峰、梁晓国、应蓓蓓、Simin Xiong、Ren Wu、John Wither等人为本书提供宝贵意见。感谢余志东、翟纲对本书的大力支持。
感谢电子工业出版社博文视点的宋亚东编辑在本书构架、写作过程中给予我们的持续帮助,他专业负责的态度让我们获益匪浅。
由于作者水平有限,书中不足之处在所难免,敬请专家和读者给予批评指正。
李志明