合理使用冷热存储,节约IT成本

最近见到一个客户,主要使用Azure的存储服务,保存海量归档数据,每年主要cloud的花费都在存储上,并且客户的数据量还在迅猛增长。客户对Azure存储服务的安全性非常满意,避免了本地保存的高成本以及数据管理、安全方面的资金及人力投入。但是随着存储量增加,成本也急剧上升(客户数据不能删除)。

为客户合理规划存储服务,可大大降低客户的使用成本。下边,就谈谈通过冷热存储分层的方式来降低客户开销。

Blob存储账户

Blob存储账户概念

细心的客户可以看到,在创建存储账户时,账户类型会有两个选项:常规用途和Blob存储:

mark

而在常规用途里,也含有Blob:

mark

那么,这两个不同地方的Blob有什么区别?

在Azure网站上对Blob存储账户有说明:

mark

不同于通用存储账户的Blob,Blob存储账户只支持Block及Append。

创建一个Blob存储账户:

mark

可见,Blob存储账户分为了冷热两个访问层。

冷热访问层

在Azure里,对冷热访问层的描述如下:

mark

从使用上来看,冷热并没有区别,和常规存储中的Block和Append没区别。这三者之间主要是定价策略不一样。理论上,使用传统存储账户Blob的(不含Page Blob、下同)的数据都可以使用Blob存储账户,我们需要根据需求选择合理的存放方式来为客户解决成本。

Blob存储价格

Azure存储的价格预估是一件很头疼的事情,大体来说,需要考虑实际容量、IO操作数量、写入写出数据量等因素。下边对三种Blob存储的计价方式分别说明和比较:

定价策略

常规存储账户中的Blob

mark

Blob存储账户

mark

可见,从存储价格来看,由高到低为:块Blob>热存储>冷存储;从访问价格来看,由高到低为:冷存储>热存储=块Blob。

综合来说,应该尽可能考虑使用Blob账户,并根据数据访问的频繁程度来决定使用热访问层还是冷访问层。

实际价格比较

下边,以客户案例来说明如何选择存储类型。

客户需求

某客户有1PiB数据需要长期存放,平均文件大小为约100MiB,冗余要求LRS。此数据为客户归档数据,大约每半年每个文件需要访问一次。计算一年的Azure使用成本(不考虑)。

客户需求分析

  • 容量:1PiB,转化为GB为1*1024=1,048,576GB(Azure按GB计算价格),影响价格因素:

    • 存储价格:按照单月1,048,576GB计算,全年为12,582,912
    • 数据写入:数据导入时一起性写入的容量,按照1,048,576GB计算
    • 数据检索:每半年访问一次,全年访问两次,检索容量为1,048,576*2=2,097,152GB
  • 文件数量:1,048,576*1024/100=10,737,418个,以4MB的块放入Azure,每个文件的Blob/块比例为:100/4=25,所有文件合计25*10,737,418=268,435,450,影响价格因素:

    • 放置 Blob/块(按10,000计):268,435,450/10,000=26,844
    • 除删除(此操作免费)之外的其他操作(按10,000计):每个文件全年读取两次,合计26,844*2=53,688
  • 容器数量:由于每个存储账户的最大容量为500TB,单个容器只能放入一个存储账号,所以1PiB数据需放入多个容器,经与客户讨论,计划使用100个容器,这部分数量较少,按10,000计基本忽略不计

    对客户需求进行按价格计算工具量化如下:

    存储容量(GB) 放置 Blob/块(按10,000计) 除删除(此操作免费)之外的其他操作(按 10,000 计) 数据检索 (GB) 数据写入 (GB)
    1,048,576 26,844 53,688 2,097,152 1,048,576

冷访问层价格计算

存储容量(GB) 放置 Blob/块(按10,000计) 除删除(此操作免费)之外的其他操作(按 10,000 计) 数据检索 (GB) 数据写入 (GB)
数量 12,582,912 26,844 53,688 2,097,152 1,048,576
单价(元) 0.11 0.09 0.03 0.0657 0.0164
总价(元) 1,384,120.32 2,415.96 1,610.64 137,782.89 17,196.65

合计总金额:1,543,126.46

热访问层价格计算

存储容量(GB) 放置 Blob/块(按10,000计) 除删除(此操作免费)之外的其他操作(按 10,000 计) 数据检索 (GB) 数据写入 (GB)
数量 12,582,912 26,844 53,688 2,097,152 1,048,576
单价(元) 0.1436 0.045 0.015 0 0
总价(元) 1,806,906.16 1,207.98 805.32 0 0

合计总金额:1,808,919.46

对比两个价格方案,可以看到,客户虽然数据量大,但是访问很少,综合比较下来,虽然热访问层存储的访问价格只有不到冷访问层价格的一般,但是由于冷访问层的存储价格大大低于热访问层,所以还是采用冷访问层存储的成本较低。

如果客户访问较频繁,例如每月访问一次,全年12次,大家可以计算,采用什么方式存储成本更低。

存储评估工具

如何针对现有使用状况评估存储的使用成本?Azure提供了一系列工具来监视存储使用指标,以web界面为例:

  1. 登录Azure门户预览,选择需要评估的存储账户并选择诊断,将状态设置为开,选择需要惊恐的指标,诊断数据保留的天数并保存:

    mark

  2. 在指标和使用状况可以看到相关的存储使用情况

Blob存储操作

Blob存储账户建立

Blob存储账户建立如同常规存储账户,只是在账户类型选择Blob存储(注:Blob存储的性能只能选择标准),如下建立两个Blob存储账号,分别为热访问层和冷访问层:

mark mark

建立容器并添加Blob

进入存储账户,可以看到如同常规存储的Blob,可以在其中创建容器并上传下载删除文件,可以在web界面,也可以在Azure Storage Explorer或者PowerShell、CLI等操作,没有区别:

mark

mark

mark

冷热间数据迁移

客户可能常有类似的需求,例如一个视频网站,新视频在第一个月会经常访问,需要放到热访问层降低访问成本,而一个月以上的视频基本算作归档,需要放到冷访问层降低存储成本。如何实现数据迁移?

目前,Blob存储不提供冷热访问层之间的按策略自动化迁移(例如1周没有使用的数据自动迁入冷访问层),而是需要通过手工操作。在Azure门户,可以很方便的实现冷热访问层的转化。

进入存储账户,选择配置,即可改变冷热访问层,并可在此改变存储账户的冗余策略:

mark

请注意,冷热间的迁移会产生费用,参见如下:

mark

常规账户到Blob存储账户的数据迁移

常规账户和Blob存储账户之间的数据迁移无法通过Azure门户直接进行,但是可以通过Azure Storage Exploer进行拷贝粘贴。

还可以通过azcopy软件进行,具体可参考的azcopy部分:

Blob简单文件操作

总结

本文简单总结了Blob存储相关的概念、用途、价格比较、常规操作等,希望能对大家在日常的存储使用规划有帮助。

本文参考了@王嵩 Azure存储概述的相关内容,感谢@Stan、@沙涛、@Yatao的帮助与支持。