背景说明:

  近期公司的数据增量迅速增长,存储的成本太高,需要采用生命周期进行管理,热存储中的数据或者被删除,或者备份至冷存储。但是冷备时是否要压缩,需要进行验证。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. 01 使用JavaScript原生控制div属性

    写在前面: 因对前端开发感兴趣,于是自学前端技术,现在已经会HTML.CSS.JavaScript基础技术.但水平处于小白阶段,在网上找一些小项目练练手,促进自己的技术成长.文章记录自己的所思所想,以 ...

  2. js中数组, JSON的与字符串的处理

    1. JSON转字符串 var jsonStr = {"name": "xiaoming", "sex": "男"} J ...

  3. mySql连接报错

    问题: mySql链接报错如下: 解决: 设定时区 在链接URL增加?serverTimezone=UTC,变为jdbc:mysql://localhost:3306/TEST?serverTimez ...

  4. cf1060D. Social Circles(贪心)

    题意 题目链接 Sol 我是这样考虑的:从大到小考虑每个\(l, r\),最大的\(l\)应该和最大的\(r\)匹配(不然就亏了),其次次大的\(r\)应该和次大的\(l\)匹配 然后就过了.. /* ...

  5. PHP学习笔记(二) ---- PHP数据类型

    PHP  __数据结构类型 一.php 中的八种数据类型 1.四种标量类型 Boolean (布尔类型): true  or  false,多用于条件判断. 实例: <?php $x = &qu ...

  6. mysql中LOCATE和CASE WHEN...THEN...ELSE...END结合用法

    之前项目中需要写一个sql,就是查出某个调研详情中,选A答案,B答案,C答案...F答案的人各有多少人,这个sql也是费了很大的力气才写出来,故记下来,方便以后使用. 其中tbl_research_i ...

  7. Android 虚拟多开系列二——技术原理

    目录         Android虚拟多开应用有哪些?         Android虚拟多开应用技术原理有哪几类?         Android虚拟多开需求分析         反虚拟多开技术 ...

  8. mongodb shell警告

    # mongoMongoDB shell version: 3.0.2connecting to: testServer has startup warnings: 2015-05-09T12:34: ...

  9. 结对编程项目总结(core2组)

    结对编程项目总结(core2组) 作业---四则运算(Core 第二组)   ----by 吴雪晴 PB16061514 齐天杨 PB16060706 一.项目简介 项目的任务为制作一个给(貌似是?) ...

  10. python基础——Linux系统下的文件目录结构

    单用户操作系统和多用户操作系统 单用户操作系统:指一台计算机在同一时间只能由一个用户使用,一个用户独自享用系统的全部硬件和软件资源. 多用户操作系统:指一台计算机在同一时间可以由多个用户使用,多个用户 ...