云数据库ClickHouse企业版高性能共享存储架构

云数据库 ClickHouse 企业版此前基于存算分离架构,结合对象存储OSS实现升级、水平扩容等运维操作的0停机以及N副本数据高可用。然而,传统HDD对象存储在高吞吐读写和低延迟实时分析场景中存在I/O性能瓶颈和网络延迟问题。为此,阿里云推出高性能共享存储方案,采用SSD作为存储介质,充分发挥其随机读写性能和高带宽优势,显著提升性能表现。经测试,该方案在多数场景下优于同等级云盘的存算一体架构开源ClickHouse,同时保留存算分离架构的优势,如运维0停机、单点故障业务不中断、Serverless成本优化等。

网络环境

高性能共享存储集群独立部署于阿里云内部独立VPC,外部无法访问。云数据库 ClickHouse 企业版产品实例中,每个节点通过DNS服务器可解析到任意存储集群节点,使用高性能共享存储集群提供的服务。

image

节点独立提供服务,API服务会根据数据存储情况自行路由。每个存储集群的API节点独立,为无状态服务,同时存储集群可随时线性扩展,以持续保障数据分布均衡,提供更好的读写性能。

image

数据安全

存储集群内采用EC算法进行冗余存储。在三个及以上可用区的地域,可保证单可用区故障时,不影响数据读写;双可用区部署下,单可用区故障时,不影响数据读取。故障结束,集群可自动重建恢复高可用架构。

读取时,通过EC的数据块和存量数据块共同解码出缺失数据,保证数据完整性。

image

image

性能隔离

每个云数据库 ClickHouse 企业版实例独立租户、Bucket,享有对应的存储性能。不同实例间带宽、IOPS隔离,避免实例间影响。

image

线性扩展

  • 存储集群设有独立监控指标和告警,专业团队运维支撑。

  • 集群支持独立水平扩容,随负载提升服务能力。

image.png

存储性能

ClickHouse运行中常涉及大量小Part数据写入,这些数据需经过合并处理以优化后续查询性能。合并过程中会产生大量读写IO请求,对存储的响应时间(RT)、读写带宽和读写IOPS有较高要求。使用IO性能更好的高性能共享存储可提升Merge性能,进而提升查询性能。

  • OSS本地冗余相比,云盘类型显著降低读写RT。

    存储类型

    域名类型

    加速器

    4KiBRT(ms)

    4KiBRT(ms)

    OSS本地冗余

    普通域名

    13.8~14.2间波动

    24.7~26.4间波动

    云盘类型

    不适用

    不适用

    1.2

    2.6

  • 可根据业务所需存储带宽,选择相应盘型。

    类型

    ESSD_L1

    ESSD_L2

    集群读写带宽(MB/s)

    min{120*节点数+0.5*总存储预购量, 460*节点数}

    min{120*节点数+0.5*总存储预购量,980*节点数}