背景说明:

  近期公司的数据增量迅速增长,存储的成本太高,需要采用生命周期进行管理,热存储中的数据或者被删除,或者备份至冷存储。但是冷备时是否要压缩,需要进行验证。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. Java实现进程调度算法(二) RR(时间片轮转)

    一.概述 因为这次os作业对用户在控制台的输入输出有要求,所以我花了挺多的代码来完善控制台的显示. 也因为我这次要实现多个类似算法,所以将一些共性单独提取出来作为一个类. 如果只想要和算法有关的核心代 ...

  2. ChannelSftp.chmod方法赋权文件夹

    最近对接分账工作需要上传分账文件到指定sftp服务器,在给sftp上文件夹赋权是遇到一个问题: 具体是ChannelSftp的chmod(int permissions, String path)方法 ...

  3. Elasticsearch数据类型

    Elasticsearch自带的数据类型是Lucene索引的依据,也是做手动映射调整的依据.映射中主要就是针对字段设置类型以及类型相关参数.1.JSON基础类型如下:字符串:string数字:byte ...

  4. POJ P1741 Tree 解题报告

    Description Give a tree with n vertices,each edge has a length(positive integer less than 1001). Def ...

  5. 精选10款HTML5手机模板

    1.Stroller | Mobile & Tablet Responsive Template 演示地址   购买地址 2.Ocean Mobile Template 演示地址   购买地址 ...

  6. c# 圆上坐标点

    var x=-33204.0924438;  //圆心x var y=-9512.41208658; //圆心y var r=1000;//半径 var angle=30;//角度 var tmpX ...

  7. 用CSS3 & jQuery创建apple TV海报视差效果

    用CSS和jQuery来实现它,尽量看起来和原效果一样. 最终效果图 本教程里,我将使用CSS,HTML和jQuery来创建一个近似Apple TV视差效果,如果你正在阅读,我假设你对上述三种技术都有 ...

  8. 转 VS Code 快捷键大全,没有更全

    VS Code折腾记 - (2) 快捷键大全,没有更全 前言 VSCode的快捷键继承了一些IDE风格,有VS的身影,也有Emacs的身影..简言之,内置快捷键玩熟了,效率提高不是一点两点. VsCo ...

  9. laravel之引入图片上传类

    1.在官网http://www.uploadify.com/ 下载插件,flash verison 的版本是免费版 2.解压后将文件夹放置在指定的目录下 3.前端导入css,js文件,可以仿照文件夹中 ...

  10. axios中设置post请求,后台却无法识别参数

    场景:在使用iview时,定义api请求时,代码如下 export const delWord = (data) => { return axios.request({ url: '/words ...