以往数据存储是单一化的,结构化数据整齐码进数据库,直接把文件保存在本地桌面取用。随着数据化时代的到来,大数据、AI、物联网等新技术融入行业,数据呈现指数级增长,并作为企业的数字资产进行存储管理最终投入应用。由数据规模化效应触发,加上企业对存储与应用的成本,性能,可靠性,以及高扩展性等需求促使云服务逐渐成为企业新一代IT基础设施的标准之一。

作为国内领先的云服务提供商之一,腾讯云一直以云硬盘CBS(Cloud Block Storage)产品,即模仿类似传统块设备(如硬盘)行为,为用户提供用于CVM(云主机)的持久性块存储服务。

腾讯云CBS产品由CBS接入、MDS(Meta data Server)控制集群和CBS存储集群构成。CBS接入收到CVM云主机集群的数据读写请求后,根据MDS提供的集群路由信息,将读写请求转发至对应的CBS存储节点中。

目前其单磁盘容量最大可支持32TB,单个云主机累计可挂载640TB容量,可为用户业务场景提供单盘最大110W的随机IOPS性能,以及最高每秒4Gbps的带宽能力,凭借三副本分布式机制,可提供高达99.9999999%的数据可靠性。

凭借自身高性能,高可靠性等优势,腾讯云CBS在如高负载OLTP (联机事务处理) 金融交易系统、高吞吐电商系统、面向人工智能的数据分析系统、高并发的CDN网络等中得到了广泛部署和应用。

但基于分布式构建的存储集群,整体性能会受到来自网络接入、传输延迟等因素影响,从而与本地存储产生差异。这也是用户对在核心数据库、内容分发网络等要求性能和灵敏度的场景中采用CBS产品存疑的原因之一。

随着云服务在企业业务系统中比重加大,更多更复杂的核心业务数据读写需求驱动腾讯云对极速存储体验的CBS产品开展深度优化并提升性能,以此打消用户对CBS产品的顾虑。

针对CBS产品的架构、存储引擎以及硬件基础设施,腾讯云开始支持远程直接数据存取(Remote Direct Memory Access,RDMA)协议,并与英特尔携手开展了存储引擎以及基于英特尔SPDK开发套件对SSD的性能优化。但实际上,SSD本身的高延迟就是CBS产品提升整体性能的障碍。

为此,腾讯云与英特尔的联合更进一步,以高耐用性和低延迟的英特尔® 傲腾™持久内存作为新一代极速型CBS产品存储核心,重构数据落盘方案,以便满足性能密集场景在延迟上的更高要求。

在腾讯云既有的极速型CBS产品设计中,以数据落盘为例,在此过程中,云主机数据首先通过HASH找到或分配到对应的块节点里,然后数据被缓存到不同页面。接着系统要执行两次写操作,一次把业务数据写入SSD对应的数据区,另一次是把元数据以日志形式写入SSD中。

整个过程,SSD一次写入延迟通常为数十微秒,两次写入就会有数十乃至近百微秒的延迟。数字虽然看起来小,但为了适配端到端网络延迟1毫秒 (1000微秒)的5G时代,整体性能仍需突破。除此之外,还有反复擦写导致SSD使用寿命缩短,日志回收过程中存在的相应毛刺问题等。

基于英特尔® 傲腾™技术构建的英特尔® 傲腾™持久内存能帮助CBS产品有效应对以上问题。英特尔® 傲腾™技术通过一种全新的无晶体管存储架构,在三维矩阵中堆叠存储网格,从而在提高存储密度、增强读写性能的同时,提供持久化的存储能力。持久内存可按字节寻址,可以像内存一样精准控制读写的位置和大小。

与传统DRAM内存相比,英特尔® 傲腾™ 持久内存的两大优势包括存储密度更高、单位存储成本更低,具有良好的经济效益,其次通App Direct模式下的英特尔® 傲腾™ 持久内存能够有效充当CBS产品的数据持久化存储载体。

优化之后的极速型CBS产品,数据通过HASH分配到对应的块节点并缓存到页面中,然后数据就马上被持久化存储到英特尔® 傲腾™持久内存中,同时页面/块的元数据也会直接更新到对应的数据区中。

除数据落盘过程实现优化之外,企业还可以通过定制化的策略和算法,决定英特尔® 傲腾™ 持久内存中的数据分配。例如,将需要频繁读写的“热数据”保留在持久内存中,而长时间不需访问的“冷数据”定期被后台转移至SSD里降低TCO。

还有英特尔® 持久内存开发工具包PMDK(Persistent Memory Development Kit) 为CBS产品提供面向英特尔® 傲腾™持久内存的编程模型和环境。以其中的libpmem库为例,作为PMDK 中的底层库,其支持用内存映射方式访问持久内存,这一方式可将持久内存上的文件映射到应用的虚拟内存空间进行操作。通过规避内核参与和上下文切换带来的开销,持久内存的性能可直接为应用提供助力。

除此之外,libpmem还封装了 NTW (NonTemporal Write) 指令,该指令能利用写合并方式来绕过处理器缓存 (Cache), 直接将数据从存储缓冲区中写入内存控制器的WPQ(写请求队列)里,从而提高性能。

数据读写延迟缩短。英特尔傲腾持久内存的读写延迟可控制在1微秒以内;另一方面,借助PMDK提供的函数库与工具, 英特尔傲腾持久内存能对整个写流程实现更细致和准确的控制,并有效提升系统的写入性能。

系统使用寿命提升。英特尔傲腾持久内存的按字节寻址特性有效避免了因反复擦写造成的设备使用寿命缩短问题。另一方面,英特尔傲腾技术独有的存储结构也使其具有更长的使用期限。

空间使用率增强。英特尔傲腾技术允许单独访问和更新内存单元,无需再执行垃圾收集,进而避免了NAND盘面临的回收毛刺问题,提升存储空间的使用效率。

为验证新硬件与优化设计对CBS产品产生的效果,腾讯云与英特尔开展了验证测试。测试结果显示,采用英特尔傲腾持久内存构建的CBS产品方案整体写延迟从120微秒下降到60微秒,整体读延迟从130微秒下降到40微秒, 同 IOPS可高达200W 以上,性能得到有效提升。

随着云存储技术的不断完善,云服务正在企业级业务系统中扮演越来越重要的角色,用户也势必会对各类云服务的性能提出更多和更高的要求,这些技术与应用场景的互动将大力推动着相关产品与技术的持续演进与优化。

作为云服务行业的重要参与者和引领者,腾讯云与英特尔基于英特尔® 傲腾™持久内存开展的CBS产品优化及所取得的收益,正是这一趋势的显著体现。

面向未来,国内云计算市场飞速发展,更多IT巨头基于自身业务优势拿到了市场准入券,竞争之势渐起。因此,拥抱更多先进产品和技术持续创新和优化自身云服务产品,为用户数据打造更好的云存储体验,有助于腾讯云巩固自身市场地位,使CBS等云存储产品成为未来企业级业务数据存储的可靠依托。