【云驻共创】分布式存储容量提升25%的黑科技:鲲鹏BoostKit KPS ZIP压缩算法

举报
码农爱学习 发表于 2021/06/23 23:18:31 2021/06/23
【摘要】 本文主要介绍 鲲鹏 Bo oostKit 分布式存储 ,以及 鲲鹏 ZIP压缩算法 在压缩率方面的 的提升。

目录

  • 分布式存储背景
  • 鲲鹏 Bo oostKit 分布式存储 使能套件
  • 鲲鹏 Bo oostKit 分布式存储 ZIP压缩算法
  • 实验操作

1.  分布式存储背景

        存储,从广义上说,就是把我们需要的信息保持起来。在计算机时代,存储与计算有着密不可分的联系。随着技术的不断进步,存储技术也在不断的改进与提升。

1.1 存储技术趋势

        从最早的软盘,到 机械硬盘、闪存盘,存取速度在不断的提高。从早期的集中式存储,到现在的分布式存储,实现存储资源的共享。从数据的孤立存储,到 数据湖 的数据共享,更大限度地挖掘数据的价值。

        总的来说, 存储技术 发展 趋势 ,正朝着 闪存、 云化和 数据价值挖掘 的方向发展。

1.2 存储技术架构演进

        纵观存储技术的发展 过程

  • 1957年开始发明硬盘
  • 1970 年代发明 SAN(Storage Area Network)
  • 1980 年代发明 NAS(Network Attached Storage)
  • 2006年发明 Object Storage

        可以看出,存储技术是不断向上和应用结合的过程,但这些技术并不是 存储 代次的 替换 , 而是场景的扩展 和存储架构的演进。

        存储技术架构 的主要 演进 趋势为 :从集中式到分布式发展。

  • 集中式存储

        集中式 存储 是由主计算机 ( 一台或多台 ) 组成中心节点,数据集中存储 在 中心节点,且所有业务单元都集中部署在中心节点上,系统所有功能均由 中心节点 集中处理。

        集中式存储的存储结构 包含核机头(控制器)、磁盘阵列(JBOD)和交换机、管理设备等,数据统一通过存储系统的机头入口

  •  分布式存储

        分布式系统中的计算机没有主/从之分,既没有控制整个系统的主机,也没有被控制的从机,组成分布式系统的所有节点都是对等的。 分布式存储的计算机可能被放在不同的机柜上,也可能在不同的机房中,甚至分布在不同的城市 。

        分布式存储的存储结构包括 Mon 服务维护存储系统的硬件逻辑关系,OSD服务实现对磁盘的管理 。 通过映射关系计算其要写入数据的位置,客户端直接用于存储节点通信,实现无中心节点和避免性能瓶颈

        存储服务经历不断的发展,目前主要分为三种类型的存储服务:块存储服务、对象存储服务、文件存储服务,其主要的特点和典型的业务应用场景如下表:

类型

特点

典型业务场景

块存储

  • 将裸磁盘空间整个映射给主机,需要通过文件系统格式化
  • F C 、ISCI
  • 性能高、时延低( xxx us)、可扩展性一般

     虚拟机、数据库、ERP

对象存储

  • 通过键 值访问 文件,数据存储扁平,使用方便
  • Http 、Https
  • 性能 一般 、时延 x x m s )、可扩展性

     视频、音频、图片、网盘、静态网页等的存储

文件存储

  •  通过文件 存储路径进行文件访问,使用方便
  •  NFS、CIFS、 Posix
  • 性能 一般 、时延 较高 x ms )、可扩展性

     大数据、HPC


1.3 存储场景分类

        关于存储场景,可分为 热数据存储场景、 温数据 存储场景和冷数据存储场景三大类,这三种存储场景,都可以使用分布式存储来实现,分布式存储场景 , 实现这 三种存储场景 的 部署需求 的存储结构图如下 :

        上述三种存储场景 ,对应的存储类型,分别 是全闪存 、均衡性和容量型,其对应的业务场景、性能需求以及硬件方案如下表所示:

类型

数据类型

业务场景

性能要求

硬件方案

全闪存

热数据

频繁访问的在线数据

存储性能要求高

  • 通常采用 NV Me SSD 全闪存 存储
  • IO并非度要求高,以小数据 块访问 为主
  • CPU资源通常是 瓶颈,适合多核架构

均衡型

温数据

介于热数据与冷数据 之间

介于热、 冷数据 之间

  •  通常采用 容量型SSD 大容量HDD 存储
  • 网络资源是性能瓶颈
  • 通过数据压缩提升存储介质利用率

容量型

冷数据

不经常访问的离线数据(如备份归档数据 )

存储性能要求低,要求大容量存储介质


1.4 Ceph 介绍

        Ceph 是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和 可 扩展性 。 Ceph 项目最早起源于Sage就读博士期间的工作 , 最早的成果于2004年发表,并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多 云计算 厂商的支持并被广泛应用。

        其基本的概念包括:

  • Object (对象) :原生 API , 兼容 Swift S3
  • Block (块) :精简配置、快照、克隆
  • File (文件系统) :支持 Posix 接口,快照功能

        Ceph 架构如下图所示:

        Ceph 的IO存储框架 如下图:

  • 通过 Inode onode 计算保证 oid 唯一不重复
  • 通过 PG (placement group) 计算将数据做到离散分布
  • 通过 CRUSH (C on trolled Peplication Under Scalable Hashing) 算法将存储单元做到分布式管理

2.  鲲鹏BoostKit分布式存储使能套件

2.1 鲲鹏应用使能套件 BoostKit

        鲲鹏应用使能套件 BoostKit , 提供八大应用场 景 ,释放 倍 级性能优势 。

        八大应用场景包括:大数据、分布式存储、数据库、虚拟化、ARM原生、Web/C DN 、NFV和HPC。

         鲲鹏应用使能套件 BoostKit 的一些开源软件包有:应用加速软件包,主要用于机器学习、图像算法、云手机指令流技术等;基础加速软件包,主要用于NUMA优化、KAE加速库、IO智能预取等;高性能开源组件,主要用于高性能Hadoop 、MySQL 、Ceph 组件等。


2.2 BoostKit 分布式存储开源使能

        鲲鹏 BoostKit 分布式存储具有 开源生态 ,下面是 ceph 的 开源库地址: https://download.ceph.com/rpm-nautilus/el7/noarch/

        Ceph 社区合入流程 如下,开发者针对ARM或x86 硬件,进行开发、构建、测试与打包,最后就是发布,可以给到ARM用户或x86 用户使用。

        Ceph 开源社区支持ARM架构并提供相应的二进制软件包 ,并且 Ceph 开源社区合入支持KAE的 zlib /md5 硬件加速引擎 。

2.3 BoostKit 分布式存储全景图

        鲲鹏 BoostKit 分布式存储 的主要目的是让 数据访问更快、存储更高效 ,为此, 鲲鹏 BoostKit 主要做了三方面的优化:

  • 降低读写时延,降低到150us左右
  • 高性能EC技术,提升存储容量
  • 高效压缩技术,提升压缩率30%

        Erasure Code(EC),即纠删码,是一种前向错误纠正技术,主要应用在网络传输中避免包的丢失,存储系统利用它来提高存储可靠性。 鲲鹏 BoostKit 分布式 高性能EC技术,同等磁盘容量,多存 一 倍数据,性能不降低 。

        智能预取技术,是指 利用小容量的高速存储介质作为缓存盘,把预测可能被访问到的IO数据提前放入缓存盘中,下次直接从高速缓存中获取数据,可以显著的改善系统整体的存储IO性能。 鲲鹏 BoostKit 分布式 存储 通过 IO智能预取技术, 创新性的采用高速缓存盘配合高效的预取算法,提升系统存储IO性能,进而提升存储IO密集型场景的整体性能 ,使存储性能提升20%。

3.  鲲鹏BooostKit分布式存储ZIP压缩算法

3.1 压缩基础介绍

        压缩是为了减少存储空间,把数据转化为比原始数据更紧凑形式的过程。

        压缩分为无损压缩与有损压缩 ,两者的主要区别、应用场景以及对应的主流压缩算法如下表所示:

类型

定义

应用场景

主流压缩算法

无损压缩

      输出数据和输入数据始终完全相同,称为无损压缩,也称无损编码

  • 压缩文本
  • 压缩可执行程序
  • 其它需求数据重构的地方

     zlib 、lz4 、 zstd 、snappy 等

有损压缩

      输出数据和输入数据不能完全相同,称为有损压缩

      图像、视频、音频等场合在信息丢失程度可接受的程度上 提高压缩率

    JPEG、MP2 、MP3 等


3.2 压缩应用分析

        如下图左,随着科技的发展, CPU 的算力在 持续的提高,包括 CPU 的核数、主频、线程执行能力等。下图右是一个 3GHz 的 CPU 在 4k 的 IO 读取速度下的数据,对于不同的存储介质, NVME SSD 的性能是最高的。

        从CPU 算力角度 分析,在存储节点方面,还有富余的算例,如何利用好 这些算力是 一个关键技术。压缩是一个比较好的选择,在利用 现有算力的情况下, 可最大 可能的减少HDD的数据写入量。

        对于企业级应用场景,可以利用空闲CPU压缩数据来提升收益。

3. 3 鲲鹏 ZIP 优化压缩算法

        鲲鹏 BoostKit 的 ZIP优化压缩算法 ,能使 压缩率提升25%,带宽性能提升10% 。下图展示了 鲲鹏 BoostKit 的ZIP优化压缩算法 相比较x86的 lz4 算法,在块存储压缩率、块存储带宽、 对象存储压缩率、对象存储带宽方面的对比提升效果。


3.4 鲲鹏 ZIP 压缩原理

        鲲鹏 ZIP 压缩算法的基本原理如下图所示:

        首先, ZIP 压缩 算法使用的是全局历史信息表,相比传统使用哈希 查 表的方式, 效果要更好。其次,ZIP压缩算法利用分层算法模型来最大化压缩效益,该分层模型包含两层,第一层是针对整个数据块的压缩模型,第二层是基于压缩算法的情况下,匹配出最优的压缩参数。再次,ZIP压缩算法使用动态的压缩头数据结构,更加灵活。最后 , ZIP压缩算法使用弹性的匹配窗口,根据不同的场景,自动灵活匹配。

        此外,ZIP压缩算法还进行了一些指令级的优化,如某些场合嵌入汇编代码加速等。

3.5 Ceph 压缩灵活可配

        Ceph 压缩可以进行非常灵活的配置, 用户可以根据存储数据属性,灵活设置各种压缩参数 。例如压缩使能,可以选用块存储、文件存储或对象存储;压缩算法方面,可以根据实际对压缩率的要求,选用不同的压缩算法等;压缩格式方面,有强制、主动、被动三种格式;压缩单元又可区分不同硬盘,且压缩力度可控。

 

4.  实验操作

4. 1 搭建实验环境

        鲲鹏应用使能套件 BoostKit ZIP 压缩算法的实验操作如下,包括环境准备、环境配置、部署 Ceph 组件,配置压缩,以及最后的 ZIP 压缩算法测试。

4 .2 测试结果

        这里以Ceph在压缩DB数据库为例,分别使用 ZIP压缩 算法与lz4压缩算法对比测试,测试步骤与结果如下图:

        可以看出, 鲲鹏BoostKit ZIP 优化压缩在DB数据库场景算法压缩率提升了33%。

        更多关于鲲鹏 BoostKit 的学习资料,扫描下面二维码获取 :

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。