【云驻共创】分布式存储容量提升25%的黑科技:鲲鹏BoostKit KPS 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服务实现对磁盘的管理 。 通过映射关系计算其要写入数据的位置,客户端直接用于存储节点通信,实现无中心节点和避免性能瓶颈
存储服务经历不断的发展,目前主要分为三种类型的存储服务:块存储服务、对象存储服务、文件存储服务,其主要的特点和典型的业务应用场景如下表:
类型 |
特点 |
典型业务场景 |
块存储 |
|
虚拟机、数据库、ERP |
对象存储 |
|
视频、音频、图片、网盘、静态网页等的存储 |
文件存储 |
|
大数据、HPC |
1.3 存储场景分类
关于存储场景,可分为 热数据存储场景、 温数据 存储场景和冷数据存储场景三大类,这三种存储场景,都可以使用分布式存储来实现,分布式存储场景 , 实现这 三种存储场景 的 部署需求 的存储结构图如下 :
上述三种存储场景 ,对应的存储类型,分别 是全闪存 、均衡性和容量型,其对应的业务场景、性能需求以及硬件方案如下表所示:
类型 |
数据类型 |
业务场景 |
性能要求 |
硬件方案 |
全闪存 |
热数据 |
频繁访问的在线数据 |
存储性能要求高 |
|
均衡型 |
温数据 |
介于热数据与冷数据 之间 |
介于热、 冷数据 之间 |
|
容量型 |
冷数据 |
不经常访问的离线数据(如备份归档数据 ) |
存储性能要求低,要求大容量存储介质 |
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 的学习资料,扫描下面二维码获取 :
- 点赞
- 收藏
- 关注作者
评论(0)