关于云计算:焱融科技在高性能全闪文件存储系统设计的思考

3次阅读

共计 2073 个字符,预计需要花费 6 分钟才能阅读完成。

在云计算和大数据时代,企业数据总量呈现出激增的趋势,尤其是在人工智能、主动驾驶和 GIS 天文测绘等翻新技术畛域。其中,值得注意的是非结构化数据的增长尤为惊人。目前非结构化数据的内容占据了以后次要的数据增长量。依据国际数据公司(IDC)预测,到 2023 年,中国的数据量将达到 40zb,其中 80% 超过是非结构化数据,同时非结构化数据的增长速度也会远远超过结构化数据。由此可见,企业用户对于高性能存储的需要愈发强烈。

家喻户晓,高性能存储离不开硬件技术的反对。以后,曾经呈现了为新一代性能型全闪分布式存储,提供更高性能存储的裸金属服务器,不仅降级了处理器的工艺及架构,反对更多的核数、更高的主频,帮忙企业用户实现性能、算力的一直晋升,更是全面提高了 DDR 通道及 PCIe 通道的扩展性。

目前看来,无论是从第一代 InfiniBand 到 40Gb/s、56Gb/s 和 100Gb/s,还是当初的 200 Gb HDR InfiniBand 技术,都在一直发明更高的数据吞吐量记录,为高性能计算、人工智能、云计算、存储等泛滥数据密集型利用提供当先的效率和可扩展性。

同时,随着 SSD 技术的倒退,NVMe 也因高性能、低延时、低功耗、兼容性高和逐步升高的价格等劣势,而被广泛应用。在硬件疾速迭代的同时,软件技术也受到了肯定的良性影响,如 SPDK、io-uring、DPDK、RDMA 等技术。

实际上,想要构建高性能全闪存储系统,并不只是简略的高性能硬件和软件重叠,而是须要对存储的零碎框架进行从新设计。同时,文件存储系统的性能指标,咱们具体指的是元数据性能和数据性能。 为此,咱们在零碎设计之前,次要会思考以下几个方面:

  • 网络提早
  • 无锁队列
  • 网络 RPC 与存储 IO 模型
  • 上下文切换
  • 内存零拷贝

就目前而言,CPU 架构在进行疾速地迭代,架构降级带来的就是更高的 CPU 性能。在同代平台中,主频和外围就间接决定了 CPU 的性能下限,尽管主频无奈大幅度晋升,然而外围数能够较容易地晋升。在理论业务中,在多核场景下的“锁”,对性能限度很大,如无锁队列单 core 能够提供百万级的能力,并且能够实现随着 core 数量的减少,而线性晋升。然而如果引入了锁,不仅会将零碎整体性能限度在单 core 以下,而且随着外围数的晋升,性能反而会逐渐升高。

常见的网络 RPC 模型是基于 epoll + 线程池的实现,一旦陷入到这种架构中, 单个存储节点的性能就很难有所突破 。尽管网络 RPC 模型在实践上十分优良,然而在理论高性能场景中,它并不适合。

工作工作从 A 队列转移到 B 队列,肯定概率是从一个 core 调度到另一个 core 上。在转移过程中,唤醒的提早开销、上下文切换的开销,其中产生的提早很难保障。很多开源网络 RPC 组件,和一些基于软件模仿实现的存储 Target 计划,很容易呈现性能瓶颈显著,单节点根本在 50W IOPS 左右。再加上一些外部性能逻辑的限度,很多文件存储单节点仅能提供 40W IOPS,对于全 SATA SSD 节点可能根本施展硬件性能性能,但对于 NVMe 节点,则会呈现性能重大节约的问题。

在解决掉网络 RPC 性能瓶颈后,下一步须要解决的事, 如何高效解决磁盘读写的问题 。如应用大量工作线程并发读写 NVME 设施,将带来微小的调度开销。可应用 SPDK、io-uring 或 AIO 等技术进行 IO 聚合收发,从而缩减工作线程数量,减小调度损耗。

另外,方才咱们也提及了上下文切换的问题,因为 CPU 核数无限,不可能给存储业务配太多工作线程,毕竟大量线程来回调度开销很大,所以就算是绑定 CPU 资源,整体的数量也须要管制,不然调度和上下文切换开销就会大于业务理论开销,导致性能更差。

目前,200G 网络正在遍及,400G 网络也曾经公布,如果双卡聚合,则间接可提供 800G 网络带宽。为此,PCIe5.0 的需要也会越来越迫切,全闪的带宽能力也极大晋升,从而凸显出内存带宽瓶颈,不可能数据在缓存中来回搬移。想要实现高带宽场景的高利,RDMA 技术就有着人造的劣势。而如何高效地治理 RDMA 内存,以及如何在 RDMA 场景中,保障低提早的前提下,晋升集群随机 4K 和 8K 并发读写能力,也是须要对 RDMA 做出相应的优化。

总结

综上所述,YRCloudFile 从客户端到 Server 端做了全链路的优化,高并发场景解决连接池中锁的影响,在 Server 端从新设计的网络异步模型和 IO 异步模型,管制门路为保障文件存储系统的语义,深度优化锁相干逻辑,保障极小粒度。在数据流门路上,实现齐全无锁化。依赖资源隔离,在低负载时,应用大量 Polling 资源逻辑在负载晋升时,Polling 资源也随着晋升,直到达到节点性能下限。

在 RDMA 小 IO 场景中,咱们为了用 CPU 资源换取更低的提早,进行了从新设计。针对 RDMA 的 NUMA 环境带宽能力,也进行了优化。 因而,YRCloudFile 单节点不仅能提供高 IOPS,还能提供更低的提早,以及带宽实现将网卡打满

具体 YRCloudFile 理论测试数值如下(最小集群采纳 3 节点服务器,每节点配置为单颗 7742 CPU,32G X 8 内存,单个 200Gb Infiniband 卡):

正文完
 0