背景说明:

  近期公司的数据增量迅速增长,存储的成本太高,需要采用生命周期进行管理,热存储中的数据或者被删除,或者备份至冷存储。但是冷备时是否要压缩,需要进行验证。Azure本身没有提供压缩的接口,只能自己处理。以下是测试的结论。

备份压缩步骤

采用压缩流。验证了两种方式,方式一在文件较大时(>3G)会超时报错,方式二可行。

1、方式一:将源stream直接压缩包装输出到目标stream。不经过本地磁盘(测试应用服务器)。

这种方式在测试环境中,当文件>3G时,会报超时错误。

2、方式二:先将源文件下载到本地磁盘(测试应用服务器),然后通过压缩流写入目标stream。

基于这种方式,备份的文件操作步骤如下:

说明:

逐个将blob下载到应用服务器,压缩上传后立即删除,再下载next blob,保证在任一时刻,应用服务器上只有一个blob文件,以减少对应用服务器带来的存储压力和存储成本。

压缩算法测试

测试环境

应用服务器

测试应用服务器:App2(虚拟机)

内存:7G

CPU:Interl Xeon E5-2660 2.20GHz,4个虚拟处理器

操作系统:64位,windows server 2012R2

测试数据:Task_Log目录,包括99个blob,大小从1k至5.5G不等,总大小为20G (20553082991 B)。

热存储

AccountName:hdptest

AccountContainer:backup

冷存储

同热存储。通过热存储进行模拟,重点在于压缩算法的测试。

说明:

热存储、冷存储、应用服务器在同一区域内,不会产生传输费用

测试结果

操作耗时说明:

文件下载时间:539.9651764 s

从存储中删除文件时间:0.2446082 s

删除本地文件时间:1.1063126 s

压缩上传时间:见下表

测试失败的算法:

关于以上压缩算法或格式的说明,后附。

分析报告

1、压缩率与压缩速度成反比。压缩速度的差异 > 压缩率的差异

1)压缩率与压缩速度前三名

压缩率前三:7z-高压缩比,Gzip-优化,Gzip-普通

压缩速度前三:LZ4-普通,Deflate-快速,Gzip-快速

2) 在以上几种算法中,LZ4(普通模式)更新适合目前的备份压缩应用场景。

压缩率=28%,20G压缩时间=256s。相对来说,LZ4(普通模式)的磁盘IO较高。

以1T数据量为例,LZ4(普通模式)压缩后的大小估计284G,压缩时间估计3.5小时。

2、基于压缩传输的时间较长,所以备份的数据量要尽量控制,建议按周或更小的粒度来进行表的分区操作。

3、应用服务器、热存储、冷存储三者必须保证在同一个区域内,否则会产生网络传输费用。

4、关于Block Blob的说明:

1)Azure存储中,单个Block Blob最大4.75TB,追加Blob最大195G,Page Blob最大1T。

2)HBase的单个Block Blob 不超过200G,用的是追加Blob。

是否采用压缩的存储费用对比

对比分析前提说明

1、需要进行冷存储的数据为XX日志,目前总量47T,日增量0.5T,月增量15T。XX日志按月分表,每月备份一次,每次备份的数据量为15T。

XX日志生命周期参考如下:

2、热存储中需要常驻4个月的数据,所以假设备份的日期在2017.12(4个月后)。此时,需要冷备的数据量为47T,热存储中数据量为60T。

3、假设采用算法为LZ4(普通模式),压缩率28.42%,压缩时间3.5h/TB。该算法压缩率较高,但速度最快。

4、存储冗余级别为LRS(本地冗余存储),应用服务器、热存储、冷存储在同一数据中心。

压缩时需要将文件下载到应用服务器,由于是逐个下载,上传完毕即删,然后再下载另一个,所以在应用服务器上产生的存储费用忽略。

Blob存储费用说明:

参考:https://www.azure.cn/pricing/calculator/storage/

https://www.azure.cn/pricing/details/storage/

不冷备时的费用

每个月的固定费用:15943 ,并且每月增长 2235

冷备不压缩时的费用

第一次冷备产生的一次性费用:771

每个月的固定费用:8940+5170+246 = 14356 ,并且每月增长 1650

冷备压缩时的费用

第一次冷备产生的一次性费用:219

每个月的固定费用:8940+1469+70 = 10479 ,并且每月增长 469

三种费用对比

三种存储方式下的费用对比:

三种存储方式下的费用对比示例:

压缩算法简介

基于Azure Blob冷存储的数据压缩算法测试对比分析的更多相关文章

  1. 基于Azure Blob冷存储的数据压缩备份总结

    基于上一篇的压缩算法对比分析报告,选择了LZ4算法的普通模式,其测试压缩率为28%,20G压缩时间为256s,估计1T的冷备时间为3.5h. 接下来,将23T的HBase历史数据进行了压缩冷备,压缩后 ...

  2. Windows Azure HandBook (6) Azure带宽与Azure Blob云存储

    <Windows Azure Platform 系列文章目录> 在笔者这几年Azure售前工作中,经常会遇到客户提同样的问题:Azure 虚拟机的带宽是多少?Azure提供独享带宽吗?这个 ...

  3. 基于Azure blob storage T级别HBase表恢复

    为减少Hbase集群压力,提高性能,我们将HBase库中的数据移到另外的存储,下面记录当我需要对数据进行计算时,数据恢复的过程 目录: Azure storage explorer 工具 数据复制 元 ...

  4. 基于mybatis向oracle中插入数据的性能对比

    数据库表结构: 逐条插入sql语句: <insert id="insert" parameterType="com.Structure"> INSE ...

  5. [AWS vs Azure] 云计算里AWS和Azure的探究(6) - Amazon Simple Storage Service 和 Microsoft Azure Blob Storage

    这几天Nasuni公司出了一份报告,分析了各个云厂商的云存储的性能,包括Amazon S3,Azure Blob Storage, Google Drive, HP以及Rackspace.其中性能上A ...

  6. presto访问 Azure blob storage

    当集群使用Azure Blog Storage时,prestoDB无法获取返回结果,在此记录下 如下,hive里面的两个表,一个使用的是本地的hdfs,一个是使用 azure blob storage ...

  7. Azure Blob (三)参数设置说明

    一,引言 上一篇将 Azure Blob 存储的时候,有使用到一个 .NET  Core Web 项目,通过代码的方式进行操作 Azure Blob 的数据,接着上一篇的内容,今天继续看一下代码,具体 ...

  8. 使用Azure Blob存储

    可以通过多种方式来对Azure Blob进行操作.在此我们介绍通过VS的客户端及代码两种方式来操作Blob. 一.通过VS来操作Blob. 1.首先下载publish settings 文件:打开“h ...

  9. 通过 PHP 连接China Azure Blob 存储

    问题说明 Azure Blob 存储是一种将非结构化数据作为对象/Blob存储在云中的服务.Blob存储可以存储任何类型的文本或二进制数据,例如文档.媒体文件或应用程序安装程序.Blob存储也称为对象 ...

随机推荐

  1. 最简单应用的时间日期选择插件---My97DatePicker

    最简单的应用:http://www.my97.net/dp/demo/resource/2.1.asp

  2. redis集群的远程管理与监控

    一.redis集群的重要性 目前大部分的互联网平台,都会用到Redis内存数据库,以提高响应速度,提升用户使用体验. 为了实现Redis的高可用,通常都会布署Redis集群,使用Redis-Senti ...

  3. HDU 2045 RPG难题

    http://acm.hdu.edu.cn/showproblem.php?pid=2045 这道题也是用倒推: 先假设前n-2个块都已经涂好,涂第n-1块时有以下两种情况: 1.n-1和1相同,则n ...

  4. Working C# code for MySql5.5 Stored Procedures IN parameters

    MySQL5.5存储过程: #插入一条 涂聚文 DELIMITER $$ DROP PROCEDURE IF EXISTS `geovindu`.`proc_Insert_BookKindList` ...

  5. jQuery自适应-3D旋转轮播图

    3D旋转轮播图 本例源于(站长之家实例http://sc.chinaz.com/jiaoben/170215391070.htm) 其他相似示例(https://www.cnblogs.com/inc ...

  6. BZOJ3193: [JLOI2013]地形生成

    传送门 Sol 第一问可以考虑按照山的高度从大到小放 但是这样如果遇到高度相同的就不好考虑,那么同时要求数量限制从小到大 这样每次放的时候后面的一定不会影响前面,并且高度相同的时候前面能放的位置后面的 ...

  7. xshell5 可用注册码

    101210-450789-147200(可以激活Xshell5,而且可以升级) 亲测可用 只能用于xshell5

  8. win10_64位系统下安装ALM12.01(QC),笔者只在Win10平台上试过,大家也可以在win7的平台上试一下,一个道理!(Alpha)

    HP的ALM是一个非常全面的缺陷管理系统,但安装学习的非常的麻烦,以前学的是ALM,好久没用带今天想学习一下发现安装的非常的困难 !发现网上对ALM的系统安装的介绍非常少,也非常琐碎!今天就借着自己学 ...

  9. 使用wm_concat函数导致字符串过长

    场景:使用select wm_concat(xxxxx) from table 的时候 返回的字符串过长 解决方案 :使用to_clob 将字符串转成 clob类型,但是由于使用的前端框架不能解析cl ...

  10. js作用域链以及全局变量和局部变量

    > [带var] > 在当前作用于中声明了一个变量,如果当前是全局作用域,也相当于给全局作用域设置了一个属性叫做a ```javascript //=>变量提升:var a; < ...