背景说明:

  近期公司的数据增量迅速增长,存储的成本太高,需要采用生命周期进行管理,热存储中的数据或者被删除,或者备份至冷存储。但是冷备时是否要压缩,需要进行验证。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. HTTP完整请求过程

    重要申明:感谢原文作者——沐风的心,想看原文请戳这里!我借鉴了原文的页面请求流程,原文见时序图之后正文. 重要申明:感谢原文作者——一行两行,想看原文请戳这里!我借鉴了原文的完整HTTP请求流程. 增 ...

  2. 系统分析与设计 homework-1

    1.软件工程的定义 软件工程是将系统化.规范化.可度量的方法应用于软件的开发.运营和维护上,也就是将工程方法应用于软件上,并对这些方法的研究. 2.软件危机(software crisis) 软件危机 ...

  3. Thymeleaf学习记录(6)--迭代及条件语法

    迭代: 条件选择: IF-THEN: (if) ? (then) IF-THEN-ELSE: (if) ? (then) : (else) 默认: (value) ?: (defaultvalue) ...

  4. [POI2007]EGZ-Driving Exam

    能到达所有路的充要条件是能到达左右两端的路 用vector反向建边对每条路左右分别求个最长不上升子序列 预处理出每条路向左向右分别需要多建多少路才能到达最左端和最右端 然后跑个\(\Theta(n)\ ...

  5. POJ P2828 Buy Ticket——线段树的其他信息维护

    Description Railway tickets were difficult to buy around the Lunar New Year in China, so we must get ...

  6. python单下划线、双下划线、头尾双下划线说明:

      单下划线.双下划线.头尾双下划线说明: __foo__: 定义的是特殊方法,一般是系统定义名字 ,类似 __init__() 之类的. _foo: 以单下划线开头的表示的是 protected 类 ...

  7. Android adb命令查看sharedpreferences

    adb shell run-as com.example.android //对应包名 ls查看当前目录下的所有文件,找到shared_prefs cd shared_prefs ls 查看所有的 s ...

  8. CSS的下拉菜单被挡住,修改Z-INDEX也不成功

    CSS的下拉菜单被挡住,修改Z-INDEX也不成功 做了一个鼠标放上去就出现的下拉菜单,但是这个下拉的内容被挡住了. Z-INDEX 是设置不同块的层次的,我修改了问题还是有. 后来发现是必须要把该便 ...

  9. xcopy-参数详解

    XCOPY——目录复制命令 1.功能:复制指定的目录和目录下的所有文件连同目录结构. 2.类型:外部命令 3.格式:XCOPY [源盘:]〈源路径名〉[目标盘符:][目标路径名][/S][/V][/E ...

  10. 对于当下国产CPU如火如荼有感

    国家在国家战略层面去做国产CPU这个事情,从初衷来说是好的.国产CPU战略如果能够实现,则会大大加强我国在计算机产业领域从头到尾的话语权与技术竞争力.但是个人觉得,事情不是那么简单.我将从下面几个方面 ...