怎样让您的备份只有之前一半大小——Percona Xtrabackup 支持的 ZSTD 压缩算法介绍
对数据库备份就像保险一样,您必须每月支付一次费用,以确保在需要时提供可用服务。在谈到备份时,保存备份所需要的存储是考虑价格因素之一,备份越大,后者保留时期越长,成本就越高。
压缩备份是降低成本的常见做法。目前,Percona XtraBackup (PXB)支持两种压缩算法:quicklz(一个废弃项目,很快将在 PXB 中弃用)和 LZ4。
今天,我们很高兴介绍 Percona XtraBackup 8.0.30 中引入的新的压缩算法——Zstandard(ZSTD)。
Zstandard 是一种快速无损压缩算法,以 zlib 级别的实时压缩场景和更好的压缩比为目标。
用法
Xtrabackup --compress
选项引入了新的值。将 --compress=zstd
传给 PXB 将使用新的 Zstandard 算法进行压缩。
通过调整 --parallel=X
和 --compress-threads=x
选项可以并行文件复制和并行压缩。
对 PXB 和 xbstream 上的解压,用法保持不变。用户只需要传 --decompress
选项,将使用与压缩相同的算法。
请注意,与 qpress
和 LZ4
一样,您需要 ZSTD
客户端运行 --decompress
操作。
压缩
xtrabackup --backup --compress=zstd --parallel=16 --compress-threads=8 --target-dir=/backup
解压
xtrabackup --decompress --parallel=16 --target-dir=/backup
测试
为了测试使用 ZSTD
压缩和 LZ4
压缩和不压缩的备份比较,我们用 AWS EC2 实例,规格为 c5.4xlarge (16C 32G内存)建立了一个测试环境,数据和备份使用同一磁盘分区,EBS IO2 配备 10K IOPS 的 SSD磁盘。
对每轮测试,我们创建了12张包含4千万的表的数据集,总大小为109G。
我们进行了五轮测试,每轮都创建一个新的数据库,数据量相同。
引用 --parallel=16
和 --compress-threads=8
。
生成备份的大小(未压缩、LZ4 和 ZSTD)、运行的备份时间(未压缩、LZ4 和 ZSTD)以及解压缩生成备份的时间(LZ4 和 ZSTD)。
第二轮测试探讨了将数据上传上传到 S3 时两种算法和未压缩备份的性能。
第一步是再次进行备份并将其上传到 S3,测量完成时间。
测试的第二部分是从 S3 下载备份,如果是未压缩备份,只需将其存储在磁盘上,对于压缩备份,我们首先将其解压,然后将其存储到磁盘上。
对于所有测试, ZSTD 压缩比都为1。
结果
总结
正如我们在上面的测试结果中看到的,ZSTD 不仅在所有测试中都超过了 LZ4 的结果,而且还将备份大小压缩到原始大小的一半。
在流处理中,我们看到了两种算法的最大差异,ZSTD 以更大的优势领先 LZ4。
这些可以为用户和组织带来大量的备份存储节省,无论是在本地还是云环境中,我们都要按使用的每GB存储付费。
原文始发于微信公众号(Mwkk):[译文]怎样让您的备份只有之前一半大小
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/100521.html