|
|
|
|
移动端

4.3 存储服务的计费

《Microsoft Azure 管理与开发.上册,基础设施服务IaaS》本书是当下关于Microsoft Azure 产品的书籍中特别具有完整性、实用性的一本书,由Microsoft Azure中国区运维团队——世纪互联蓝云的资深工程师们编写。本节为大家介绍存储服务的计费。

作者:世纪互联蓝云公司来源:电子工业出版社|2018-07-05 18:29

【新品产上线啦】51CTO播客,随时随地,碎片化学习

4.3 存储服务的计费

1. 存储计费原则

Azure 提供了多种存储服务,来满足不同类型的数据存储需求。用户只需要为其使用的存储服务付费。每项存储服务的计费标准除遵循Azure 服务的特征原则外,还具有如下特征。

(1) 存储与访问分开独立计算。

每个用户对Azure 存储的需求都不一样,有的主要用于归档,较少访问这些归档的数据,但存储量较大,主要是对存储空间的占用;有的虽然数据量较小,却需要频繁地访问,更多的是对单位时间内可用I/O 的占用。

为了让用户能够更为精确地控制这些成本,Azure 采用存储与访问分开,独立计算的方式,用户仅需为其占有的存储空间和I/O 资源付费。

与把存储、访问分开,独立计算用户的用量不同,相对传统的做法是:仅按存储容量计费,针对单位时间内用户可占有的I/O 资源规定了上限,超过这个上限,用户就需要以更高的单位容量成本使用存储。这样的计算模型,显然不适合需要频繁访问的数据存储需求;而对于以归档为主的存储需求,用户也要承担不必要的I/O 成本。

(2) 按冗余级别付费。

为保障用户位于Azure 存储上的数据安全可靠,Azure 为用户数据提供了多重冗余。首先,Azure 在其单个数据中心内部的多个设备之间复制用户的数据,保障了用户数据免受硬件故障(如存储设备掉电、磁盘损坏等)导致的无法读取,甚至永久丢失。

通过在同一地域内相隔数百公里的两个区域之间(在中国,这两个区域分别是距离1000 公里以上的位于中国东部的上海和位于中国北部的北京)进行复制,避免了因为某个Azure 数据中心的灾难性故障(例如严重性地震)带来的用户数据损失。用户可以选择某一区域作为保存其数据的主要区域,那么另一区域则是这些数据的辅助区域。

用户可以依据自身数据的可靠性要求,选择适合的冗余方案,降低其存储成本。

(3) 存储成本按“天”计费。

不同的数据具有不同的生命周期:财务报表可能需要长期保存;而访问日志可能仅需要保留30 天。Azure 存储以“天”而不是“月”来计算用户对存储空间的使用量,进一步降低了那些生命周期较短的数据的存储成本。例如,用户有些市场活动的海报,以PNG格式保存在Azure 文件存储上,该活动将于一星期后结束。活动结束后,海报文件将从Azure存储上删除。假设这套海报约占10GB 存储空间,则海报存储一星期的成本约为:

1.75/31.10.7=3.95 元,而不是1.75.10=17.5 元(Azure 网站上所示的存储价格是按月汇总后的,即假设数据存储的周期是31 天)。

(4) 按操作类型统计访问次数。

如上文所述,将存储与访问成本分开计算,便于用户从存储容量和I/O 两个方面较为精确地控制其成本投入,无论是对于归档数据,还是活动数据,用户都仅需为其占用的资源付费。

而对于访问I/O,用户可以更加精确地控制其成本,这得益于Azure 对用户的不同I/O操作是分开计数并定价的。例如放置Blob 和容器(类似文件系统中的创建文件和文件夹)操作,列出容器操作(类似列目录),删除操作等。这样用户就可以不断优化自身应用对存储的访问操作,来实现对存储成本的精细控制。

例如,对于后续不再使用,且无须在Azure 存储中持久保存的数据,可以及时将其删除,这样可以在控制存储空间成本的同时,不增加I/O 成本,因为删除操作通常是免费的。

也可以根据应用的需求,将相互关联的一组数据写入同一个Blob,这样可以将I/O 成本控制得更低。因为在Blob 中写入数据,比放置一个Blob 的成本更低。

下面我们分别介绍每种Azure 存储服务的特点和计费逻辑。

2. 文件存储

Azure 文件存储使用标准的SMB(Server Message Block)协议为应用程序和用户提供共享存储。SMB 是NAS(Network Attached Storage)架构的常用协议。使用SMB 协议的常见存储解决方案还有:Windows 文件服务器和基于Linux 的Samba 服务器。

像从桌面端访问典型 SMB 文件共享一样,用户可以借助Azure 文件存储服务在应用程序的各组件之间、多个用户之间共享文件数据。

由于Azure 将利用支持加密的SMB 3.0 来在用户本地客户端和Azure 文件共享之间安全地传输数据,用户本地需要使用Windows 8/Windows Server 2012 或更新的Windows 操作系统,以支持SMB 3.0。如果SMB 客户端是与Azure 文件共享在同一区域中的 Azure 虚拟机,则其他支持SMB 2.1 的操作系统也受支持。关于各Windows 版本支持的SMB 版本,可参考https://blogs.technet.microsoft.com/josebda/2013/10/02/windows-server-2012-r2-which-version-of-the-smb-protocol-smb-1-0-smb-2-0-smb-2-1-smb-3-0-or-smb-3-02-are-you-using/。与其他Azure 服务一样,用户也可以通过文件存储 API 来访问共享中的文件数据。支持通用的SMB 存储协议,使Azure 文件存储服务具有更好的兼容性,方便用户应用的逐步云化需求。

由世纪互联运营的Azure 文件存储目前提供2 个冗余级别的服务:本地冗余(LRS)和异地冗余(GRS)。

其存储空间成本分别按各级别的实际使用量计算,最小计费单位为“/GB/天”。

访问成本分为4 类操作分别进行统计,分别是:

放置文件、创建容器操作(按10 000 计)

列出容器操作(按10 000 计)

除删除(此操作免费)之外的其他操作(按10 000 计)

文件协议操作(按10 000 计)

3. 表存储

Azure 表存储服务为半结构化数据的存储提供了基础架构。所谓半结构化数据,不同于传统数据库的二维表,数据库二维表的每行拥有相同的字段,而在半结构化数据中,代表现实实体的行可以拥有不同数量,不同名称的字段,称为属性。如下面这个案例:

公司人力资源部门保存的员工档案中,每个员工都有相同的属性,如姓名、出生日期、入职日期、岗位、基本薪金等;也有些属性只是部分员工才拥有的,如项目经验对于行政员工则不具备。如果仅是如此,仍然比较适合在传统的数据库中保存,对于不需要项目经验的员工,该字段留空即可。

如果行政员工恰巧也有一些字段是项目工程师不具备的,则我们要在表结构中再增加一些字段,对于项目工程师,该字段留空。如果这样的情况再复杂一些,多个岗位都有其独有的字段,那么这个表的结构将变得相当松散。如果某些项目工程师的项目经验比较多,则在表结构的设计上和查询逻辑的编写上就相对麻烦些。

而Azure 表存储的每个实体可以拥有不同数量、不同字段名称的属性,上面案例中的情况则非常适合用Azure 表存储来进行数据管理。

在传统环境中,针对这种半结构化的数据,比较常用的解决方案是XML 和JSON,而Azure 表存储服务与JSON 有很好的互操作性,无疑为用户的半结构化数据基础结构向云端扩展提供了更好的选择。

由世纪互联运营的Azure 表存储目前提供3 个冗余级别的服务,分别是:本地冗余(LRS)、异地冗余(GRS)和读取访问跨异地冗余(RA-GRS)。

与标准的异地冗余级别不同,这种冗余级别支持在对主要区域进行读写的同时,对辅助区域的数据提供只读访问,更适合“一地写入,多地访问”的应用场景。标准异地冗余中的辅助区域仅供灾备使用。

表存储的存储成本分别按各级别的实际使用量计费,并按用量“阶梯定价”,最小计费单位为“/GB/天”。具体价格见Azure 网站的价格页面。

表存储的访问成本分为6 类操作分别进行统计,分别是:

放置表、创建容器操作(按10 000 计)

批处理放置表、创建容器操作(按10 000 计)

列出容器操作(按10 000 计)

表读取操作(按10 000 计)

扫描容器操作(按10,000 计)

表删除操作(按10,000 计)

4. 队列存储

Azure 队列存储是一种云端的消息服务。消息服务是现代分布式应用结构中常见的组成部分,用来在各个应用组件之间传递所需信息。很多软件厂商都有用于本地化部署的消息服务软件。

图4.3-1 展示了消息服务在订单系统中的应用场景,在未引入消息中间件时,用户的每次下单都要发起对库存组件的调用,下单组件收到库存组件的返回值,则订单成功。如果因为网络等原因未收到该返回值,则订单失败。引入了消息中间件之后,订单组件将订单状态写入消息中间件,完成订单;库存组件从消息中间件中读取订单状态,其他组件也可以从消息中间件读取订单状态,实现了订单状态在各组件之间共享,各组件也可以独立运行,处理过程无须等待其他组件,减少了每个订单的处理时间。

Azure 同时提供另一项消息队列的服务,叫做服务总线。两者的对比可以参考:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-azure-and-service-busqueues-compared-contrasted

由世纪互联运营的Azure 队列存储目前提供3 个冗余级别的服务,分别是:本地冗余(LRS)、异地冗余(GRS)和读取访问跨异地冗余(RA-GRS)。

其存储成本分别按各级别的实际使用量计费,并按用量“阶梯定价”,最小计费单位为“/GB/天”。具体价格见Azure 网站的价格页面。

队列存储的访问成本即是队列的操作:队列操作(按10 000 计)。

5. 磁盘存储/页Blob

Azure 页Blob 与块Blob 和Azure 文件存储一样,可以通过互联网存取较大的二进制非结构化数据。

页Blob 更为随机存取做了优化,适合用来存储虚拟磁盘文件,以应对传统操作系统对文件系统的随机读写。事实上,Azure 虚拟机的虚拟磁盘文件(VHD)正是存储于Azure页Blob 服务。正如前文提到的,Azure 虚拟机依赖于某项Azure 存储服务,除用于缓存的磁盘外,Azure 虚拟机的磁盘都是由页Blob 提供的存储服务,所以页Blob 又称为磁盘存储。

由世纪互联运营的Azure 磁盘存储目前提供2 个性能级别的服务,分别是标准磁盘和高级磁盘。高级磁盘服务由SSD 提供,具有非常高的吞吐量和低延迟,旨在支持I/O 密集型工作负荷。高级磁盘进一步提供了3 个子级别的服务,提供不同的容量和性能,分别是P10,P20,P30。

在冗余级别上,标准磁盘服务提供3 个冗余级别:本地冗余(LRS)、异地冗余(GRS)和读取访问跨异地冗余(RA-GRS);高级磁盘服务目前仅提供本地冗余级别。

标准磁盘服务的存储成本分别按各冗余级别的实际使用量计费,并按用量“阶梯定价”,最小计费单位为“/GB/天”。具体价格见Azure 网站的价格页面。

标准磁盘服务的访问成本分为3 类操作分别进行统计,分别是:

放置页Blob、创建容器操作(按10 000 计)

列出容器操作(按10 000 计)

除删除(此操作免费)之外的其他操作(按10 000 计)

高级磁盘的计量单位比较特殊,为“/磁盘/小时”。例如,如果在设置完 P10 磁盘的20 小时后删除它,则会以20 小时计算 P10 磁盘的费用。这与写入磁盘的实际数据量或使用的 IOPS/吞吐量无关。

6. 块Blob

块Blob 为通过互联网存取较大的二进制非结构化数据而设计。使用Azure Blob API,用户应用可以将需要上传的数据分成大小不同的块,多个块并行传输,提高传输效率。对于传输失败的块,也只需要重传这个块,无须重传全部数据。多线程传输和断点续传这样的功能可以很容易地在用户的应用中实现。

由世纪互联运营的Azure 块Blob 存储目前提供3 个冗余级别的服务,分别是:本地冗余(LRS)、异地冗余(GRS)和读取访问跨异地冗余(RA-GRS)。

每个冗余级别还提供“冷”和“热”2 个访问层,其分别对应的是低廉的存储成本,但访问成本略高;低廉的访问成本,但存储成本略高。用户可以选择“冷”存储保存归档数据,选择“热”存储保存需要频繁访问的数据,以分别降低每种数据的总体成本消耗。

块Blob 的存储成本分别按各级别的实际使用量计费,并按用量“阶梯定价”,最小计费单位为“/GB/天”。具体价格见Azure 网站的价格页面。

块Blob 存储的访问成本分为5 类操作分别进行统计,分别是:

放置Blob 或块、列出并创建容器操作(按10 000 计)

除删除(此操作免费)之外的其他操作(按10 000 计)

数据检索(GB)

数据写入(GB)

异地复制数据传输(GB)


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

计算机网络原理与实践标准教程

本书深入浅出地阐述了计算机网络技术的基本原理,介绍了当前常用的先进网络技术以及网络的实际应用知识。全书主要内容包括计算机网络概述、...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊