当前位置:   article > 正文

[FAST23论文导读]More Than Capacity- Performance-oriented Evolution of Pangu in Alibaba_fast23 论文

fast23 论文

导读

    本文介绍了Pangu存储系统如何不断地随着硬件技术和业务模型的发展而不断演进,提供具有100us级I/O延迟的高性能、可靠的存储服务。Pangu的演进包括两个阶段:

  • 第一阶段,Pangu利用新的固态硬盘SSD和RDMA网络技术重新设计了一套用户态存储系统,降低了I/O延迟,同时提高吞吐和IOPS;

  • 第二阶段,Pangu从面向空间容量的存储服务向面向性能的存储服务演进。为了适应这种变化,Pangu升级服务器——配置更高容量SSD和更高带宽RDMA,网络从25Gbps升级到100Gbps。同时引入一系列关键设计,包括减少网络流量放大、远程直接缓存访问和CPU计算卸载,以确保Pangu充分利用硬件升级带来的性能提升。

    除了技术创新,论文里还分享了Pangu进化过程中的运营经验,并对经验教训及进行总结。

公众号阅读:

1 概述

    Pangu系统从2009年开始开发部署,提供高扩展、高性能和高可靠性的存储系统,已经成为阿里巴巴集团和阿里云底层的统一存储服务。目前服务诸如淘宝、蚂蚁金服、阿里妈妈等众多核心业务,同时也是阿里云块存储(EBS)、对象存储(OSS)、NAS(Network Attatched Storage)、PolarDB和MaxCompute等云服务的底层存储系统,管理EB级别数据和上万亿的文件。

    Pangu的演进包括两个阶段:

Pangu 1.0(2009 ~ 2015):提供面向空间容量的存储服务

    主要目标是能够利用通用服务器资源(CPU和HDD)构建一个大规模的分布式文件系统,提供毫秒级别IO延迟。Pangu 1.0存储引擎采用Linux自带ext4内核文件系统,网络使用TCP网络,当时对标的主要是HDFS,从业务视角来看当时面临的主要问题是如何存储大规模的数据,对性能的要求并不是很高。Pangu 1.0时期为了适应业务需求,也提供了多种文件类型,比如支持Append-only的LogFile,支持随机读写的Random Access File和类似临时文件系统的的TempFile,可以看出这个时期从Pangu团队来看主要目标是能够接入更多的业务,积极满足业务的需求。

Pangu 2.0(2015 ~ now):提供面向性能的存储服务

    随着高性能固态硬盘和高性能网络RDMA技术的出现和成熟,2015年开始,Pangu团队开始其引入到Pangu系统,开启Pangu 2.0阶段。Pangu团队认为Pangu1.:

    (1)提供各种文件访问模型,尤其是随机读写模型,随机读写相比顺序读写并不能发挥SSD硬件的性能,提供极致吞吐和IOPS

    (2)存储引擎使用内核文件系统,IO链路上存在大量的数据复制和IO中断,都影响IO性能,相比于SSD和RDMA,差距太大。

    (3)数据中心架构已经由服务器为中心演变为以资源为中心,如何适配这种范式演进从而提供低IO延迟的服务带来了新的挑战。

Pangu2.0 第一阶段:重构用户态存储操作系统

    为了充分发挥SSD和RDMA的性能,在单机存储引擎的设计上Pangu 2.0做了如下改进:

  • 重新设计文件系统,提供用户态文件系统(USSOS),提供append-only的语义,并重新设计了一种自包含的Chunk Layout避免文件系统一次IO产生两次IO的情况(一次数据IO和一次元数据IO)。

  • 在线程模型上使用run-to-completion的模型,避免了额外的线程切换开销,实现了用户态存储栈和用户态网络栈的高效协同,同时也提供了一个用户态的CPU/MEM资源调度机制。

  • 提供动态环境的SLA保障机制

    该阶段实施效果也是相当显著的,2018年双十一期间,Pangu 2.0为阿里巴巴数据库服务提供了280us的优异延迟性能;对于写敏感的EBS/Drive服务,其PCT999延迟低于1ms;对于读敏感的如在线搜索业务,其PCT999延迟低于11ms

Pangu2.0 第二阶段:升级基础设施适应面向性能的业务模型和打破CPU/Mem的瓶颈

    2018年开始,越来越多的企业开始使用阿里云服务,他们的业务场景对Pangu的延迟性能提出了更高的要求,为了更好满足业务的需求,阿里巴巴开始自研存储服务器,提供了单机97TB SSD和100Gpbs网卡的高性能服务器。硬件升级了,软件栈同样也要进行适配,从而打破CPU/MEM的瓶颈,软件栈主要做了如下优化:

  • 通过技术手段减少网络写放大,并且提供动态调整流量优先级的策略

  • 提供远端缓存访问技术(RDCA)

  • 降低序列化反序列化开销,减少CPU消耗

  • 引入了CPU wait指令同步超线程

    通过使用自研的存储服务器,先比之前网络从2x25Gbps升级到2x100Gbps,并且解决了硬件升级造成软件层面存在的CPU/MEM瓶颈,Pangu 2.0的吞吐提升了6.1倍

2 背景

2.1 Pangu架构

    图1是Pangu的整体架构,整体看包含了三个部分:Pangu Service、Pangu Core和Pangu Monitor,Pangu Core、 Pangu Service和 Pangu Monitor的基础设施通过高速网络相互连接。

  • Pangu Service:建立在Pangu Core的基础上,通过面向云原生的文件系统提供传统的云存储服务(如EBS、OSS、NAS)和云原生存储服务。

  • Pangu Monitor:为Pangu Core和 Pangu Service提供实时监测和AI辅助根因分析服务。

  • Pangu Core: 该部分是本文关注的Pangu系统部分,Pangu Core由clients、masters和chunkservers组成,并提供append-only的持久性语义,其中Client向Pangu Service提供SDK,并负责接收调用方的文件读写请求,然后和Maters和Chunkservers交互完成数据读写,Client是一个重SDK,其在整个系统中扮演着重要的角色,诸如多副本的写入,数据的一致性等都由其负责;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/739634
推荐阅读
相关标签
  

闽ICP备14008679号