ECIC演讲精华|如何构建云原生应用下的高性能持久化存储?_高性能

近日,由全球企业级开源解决方案领导者SUSE举办的第四届“企业云原生创新大会Enterprise Cloud Native Innovation Conference”(以下简称“ECIC”)在北京金隅喜来登大酒店盛大举行。作为国内规模最大、影响力最强的云原生技术大会之一,ECIC大会现场依旧火爆,13场来自各行业头部企业IT负责人的主题演讲,吸引了近千名容器技术爱好者到场和近万名观众线上观看直播。

ECIC演讲精华|如何构建云原生应用下的高性能持久化存储?_存储技术_02

焱融科技作为受邀参讲嘉宾之一,在大会现场分享并深度剖析现阶段企业客户在实际应用场景下遇到的存储瓶颈以及转向容器存储所面临的挑战。那么,

  • 云原生应用下的高性能持久化存储是如何构建的?
  • 企业该如何打破存储技术阻碍云原生应用?
  • 什么才是容器持久化存储的关键?

以下是焱融科技产品总监黎俊鸿在 ECIC 大会现场的演讲实录精华版,阅读时长 15mins,Enjoy~

ECIC演讲精华|如何构建云原生应用下的高性能持久化存储?_分布式_03

YRCloudFile 产品设计初衷

在2019年年初,焱融科技是国内第一个进入 CNCF 云原生存储地图的国内企业。其实这里面有一个小插曲和小故事,在分析未来存储方向的时候,我们认为云原生以后肯定是整个行业的一个重要方向,而且我们当时认为 Kubernetes 已经是整个云原生的一个事实标准,所以当我们在开发这款产品的时候,就已经瞄准了 Kubernetes,而且未来会以 CSI 为标准接口来进行开发。

当我们针对 Kubernetes 的应用接口开发后一段时间,大概半年左右,Gartner 发布了每年一次的存储技术能力成熟度曲线的分析,在 2018 年发布的时候,我们发现 Gartner第一次把Cloud Native Storage 放在能力成熟度曲线里面,这让整个团队都非常欣喜。经过团队的不懈努力,焱融 YRCloudFile 产品无论是在性能上,还是用户数量上都得到了业界的充分肯定。焱融科技产品已经形成了一定的技术壁垒, 曾进入全球 IO 500 存储性能挑战前六。

存储成为容器应用面临的挑战

ECIC演讲精华|如何构建云原生应用下的高性能持久化存储?_存储技术_04

在分析不同的云原生应用在数据中心的使用状况的时候,我们看到一个有趣的现象:从 DockerHub 的 Image 下载量可以看到,大量的持久化应用在 Docker 环境上面运行,为了对这种有状态的应用进行支撑,一定需要一个持久化的存储。从很多调研报告上看,容器的存储技术是云原生在企业里更大范围应用的一个障碍,容器存储提供的数据访问、读写模式、读写性能以及与 Kubernetes 等主流编排平台的整合,都是容器持久化存储的关键。

Kubernetes 能否很好地去编排底层存储体现在两方面:一是 K8S 在进行接口层面的对接时,让 K8S 能够很顺畅的去编排和调度底层存储,这里需要提到的是 CSI 基本上已经是很成熟或者说被广泛认可的一种接口;二是整个底层存储是否能够支持多种读写模式,包括对共享型数据的支持。

ECIC演讲精华|如何构建云原生应用下的高性能持久化存储?_文件存储_05

此外,容器平台上 PV 的数量会远远大于我们使用虚拟机创建的 Volume 的数量,如何管理和监控大量 PV,以及呈现 K8S 中 Pod、PVC、PV 等关联关系,也是容器平台使用和运维人员关注的地方。

存储是为应用而服务的,如何为应用提供足够的性能,对于很多用户来说也是无比棘手的一件事情。因此,焱融 YRCloudFile 针对 IO 场景做了不少针对性的优化。

应用场景带动容器存储需求

什么样的存储产品才称得上优秀?我们认为能够很好的去对接用户应用,让应用能够更高效地去访问数据才是好的存储产品。为此,我们花费了大量时间和精力投入在应用场景上,研究特定场景的 IO 特点。

基于容器的 AI 架构面临的挑战

首先对于 AI 这种业务来说,一定是面向海量数据的,一些 AI 行业客户单个数据集群,数据量以及文件数量都在几亿,也有一些极端客户,单个集群的数量都在几十亿,在这种集群下,集群到了几亿甚至几千万文件数量级别后,整个文件系统的访问性能会出现较大的衰减。

我们把元数据集群设计成了一个可扩展的架构,有效地解决了承载海量文件元数据的核心问题,在为我们承载几十亿、上百亿文件后访问性能无衰减打下了基础,在海量文件场景下,不管是元数据的 creation、stat 还是 removal 操作,或者是我们文件读写操作,我们的性能都可以保持稳定状态。

MySQL(MariaDB) IO 模型和特点

ECIC演讲精华|如何构建云原生应用下的高性能持久化存储?_高性能_06

MySQL 数据库中有几个关键的文件,其中一个是 Redolog,它记录事务日志,这是一个固定文件,它会循环的写,而且是 512KB 对齐写。Binlog 文件记录数据库所有的更新操作,追加写,不对齐。YRCloudFile 本身确保 Redolog 和 Binlog 数据在写入时直接落盘,减少远程的 fsync 调用,省去客户端调用 fsync 的开销。通过这样的优化,能把 MySQL 容器应用的写入性能提升近一倍。

以上是 ECIC 会上分享给大家主要内容。焱融科技作为软件定义存储的企业,希望能为用户提供面向容器环境的优秀的持久化存储服务。

演讲视频完整版请戳????:https://www.itdks.com/Home/Act/apply?id=5675&mUid=20022#dingbu