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

网友投稿 777 2022-05-25

目录

分布式存储背景

鲲鹏 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年发表,并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多 云计算 厂商的支持并被广泛应用。

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

其基本的概念包括:

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 的学习资料,扫描下面二维码获取 :

专属分布式存储服务 分布式 存储 鲲鹏

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【图像分类】实战——使用DenseNet实现识别秃头(pytorch)
下一篇:案例 | 中移在线:云原生下的监控能力演进
相关文章