云硬盘存储系统容量管理实践

摘要

如果说云计算拼的就是运维的话,那么公有云的运维拼的就是容量管理。公有云上容量管理(以下容量管理特指公有云上容量管理)就是要保障有充足的资源可对外售卖,即“有货可卖”。当资源供应不足,用户无法购买需要的云计算资源时,就产生了所谓的“售罄”事件。售罄问题对公有云口碑影响很大,影响用户体验的同时甚至会造成用户的流失。本文主要对容量管理相关问题进行总结和分析,同时介绍云硬盘存储系统容量管理实践方案。

问题

云硬盘(Cloud Block Service,CBS)作为腾讯云基础组件之一,在容量管理方面之前遇到了很多问题,总结起来有以下几点。

缺少统一、多维度资源规划

通常我们的资源主要有三部分组成:线上可对外售卖资源,线下储备设备以及报备在途设备。这三部分资源分别在三个不同的系统中维护,缺乏统一的视图,导致运维人员对资源整体储备情况无法准确预估。另外一方面,目前腾讯云有众多可用区,同时有多种云硬盘产品,不同产品使用不同的机型;如果只考虑整体资源,而不考虑不同可用区不同云盘产品的售卖情况的话,很容易出现资源不均衡的情况,即部分可用区/云盘产品售罄的同时其他可用区/云盘产品却资源过剩。因此,我们需要统一、多维度的资源规划,打通线上、线下资源系统,从全局进行不同地区不同产品类型的资源规划和调度。

字源交付效率低

一台物理设备的生命周期会经历采购、到货、初始化、上架、维修、下架。交付过程中的大量环节需要人工介入和操作,资源交付自动化程度较低会导致单Set交付时间可能超过几十分钟,并且交付并发度基本为串行。如此低的交付效率一方面会导致售罄频发(交付赶不上售卖),另一方面会增加运维在交付方面的人力投入(60%以上)。

系统感知滞后,监控力度过粗

通过对售罄问题的分析,我们发现大部分售罄问题往往是因为短时间的突发购买击穿库存导致。现有的容量系统无法做到实时感知和预警短时间内的突发购买行为,等到触发资源不足告警再去追查和分析,使得后端运维响应非常被动。另外,现有的资源监控策略基于静态阈值,只能做到Zone级别的资源总体情况预警,缺乏细粒度监控(例如TOP20 VIP用户购买情况、不同大小的盘资源情况等)。

碎片化问题

除了突发购买,碎片化问题也会导致售罄。很多时候线上整体可售卖的资源还有很多,但是这些资源都分布在很多个Set,就会导致无法提供大规格的整块资源。造成碎片化最直接的原因是前端售卖装箱策略不合理,但容量管理系统本身也需要具备定期整理碎片、均衡资源的能力。

实践方案

图1 容量管理整体解决方案

如图1所示,为了有效解决售罄问题,可以从线下、后端、前端、监控和数据分析等方面入手,总结起来有以下五点。

统一规划,全局调配

前面分析问题时指出各种资源数据分布在多个系统,缺少统一、多维度的规划。因此我们需要建立全局资源看板,来对资源进行统一规划和全局调配。具体来说,我们的全局资源看板包括以下内容: ž归一化地展示线上可售卖、线下储备和报备在途设备,这样一来就可以很清楚的知道现在有多少货可卖buffer有多少,最近能够到货多少。

ž清晰地展示各个可用区、各种类型产品的资源情况(包括可售卖、线下储备和报备在途),便于进行各可用区之间的资源调度和腾挪。

ž其他维度的资源展示,例如不同规格区间的资源情况等。

图2 全局资源看板示例

自动交付,弹性伸缩

图3 设备生命周期

设备一旦到货以及需要紧急扩容的情况下,我们需要具备快速自动交付能力,降低售罄风险的同时也能优化运维人力。一方面需要打通整个设备生命周期,实现全自动化交付。另一方面需要和监控以及数据分析联动起来,当收到资源不足预警时自动触发上架操作,及时扩容。

实时感知,精细运营

图4 容量监控分析体系

容量监控分析体系如图4所示,主要由三部分组成:

ž静态阈值监控。除了监控各个地区和各种类型云盘线上容量之外,我们还增加了两种预警,即上架预警和报备预警。上架预警和上面的自动化交付系统关联,当线上容量触发上架预警值之后会回调自动化上架接口进行扩容操作。报备预警会综合线上容量和线下buffer,当资源整体消耗较快无法保障未来一个月的售卖时,会及时告知运维人员发起报备。

ž动态异常分析。通过对用户的购买行为进行动态异常分析和监控,可以及时感知突发购买和刷单等异常情况,以便及时采取措施,防止库存被击穿。

ž精细化分析。除了关注大盘整体容量情况和短期的异常外,我们还对TOP20用户进行了定制化监控分析,重点关注VIP的用户行为和使用情况,主动发现问题来提升服务专业度和口碑。

合理装箱,自动均衡

典型的部署模型提供的最小容量单位为Set,用户可购买的云盘的规格为2G-16T,这是一个很典型的装箱问题。我们还在不断探索和优化装箱策略和算法,我们已经采取的主要优化措施包括: žSet容量实时上报,指定Set售卖装箱。各Set将可售卖容量实时上报,控制系统综合全局容量情况指定Set售卖和装箱,避免随机装箱造成的碎片问题。

ž定期碎片整理和均衡。后端会定期对Set的装箱和使用情况进行分析,将大规格的云盘打散分布;同时会综合各个Set的底层存储使用率,自动发起盘迁移和均衡操作。

多管齐下,分级预案

容量管理问题没办法做到一招制胜,而是需要一套“组合拳”来应对不同情况。表1为容量分级预案,不同的触发条件对应了不同的预案,每种预案的时效性也不尽相同。只有多管齐下,做好充足的预案和准备,才能够从容的应对各种突发情况。

表1 容量问题分级预案

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SDNLAB

不管怎么称呼,基础设施2.0时代终究是来了

多年前,当云计算刚刚兴起,DevOps还只是一个想法的时候,一个非常小但颇有远见的小组聚在一起讨论基础设施的未来。基础设施2.0工作小组囊括了很多互联网传奇人物...

2765
来自专栏CoXie带你学编程

Python学到什么程度才可以去找工作?掌握这4点足够了!

 大家在学习Python的时候,有人会问“Python要学到什么程度才能出去找工作”,对于在Python培训机构学习Python的同学来说这都不是问题,因为按照...

6152
来自专栏Petrichor的专栏

好程序需要你写(至少)两遍

  最近这些年,越来越多的人开始转向敏捷开发。各种敏捷开发技术并不新鲜,大多是在80 和 90年代发展形成。但只是在最近这些年,程序员和(更重要的是)一些商业顾...

1274
来自专栏北京马哥教育

不懂Python学习如何下手?看完本文您能知道60%

本文由马哥教育Python自动化实战班导师wayne撰写,内容略经小编改编和加工,观点跟作者无关,最后感谢作者的辛苦贡献与付出。 你觉得Python真的好吗?或...

4215
来自专栏PHP在线

写出高质量代码的10个建议

原文出处: 汤涛(@星星D灯) 很长一段时间以来,我都在关注如何提高代码质量,也为此做过一些尝试,我想这个话题可能大家会比较感兴趣,在这里分享一下我关于如何...

37714
来自专栏大数据和云计算技术

计算机系统结构变革在即?

15年6月,intel正式宣布167亿美元收购FPGA生产商Altera。此交易为该公司有史以来涉及金额最大的一次收购案例。167亿美金不是小数目,intel ...

2987
来自专栏灯塔大数据

探秘 | 写了一百万行代码是什么体验?

搞程序的累计写到一百万行代码到底是什么体验呢? 如果一百万是标量的话,来和大家研究一下这个数据,假设最好的情况,一天100行高质量代码,一年36500,100/...

3774
来自专栏北京马哥教育

5个超高评价的机器学习Python 库

? 作者 | Serdar Yegulalp 来源 | 搜狐 糖豆贴心提醒,本文阅读时间6分钟,文末有秘密! 机器学习令人无比神往,但从事这个工作的人可能...

3835
来自专栏CDA数据分析师

【扫盲】五分钟了解Python

? 前言 Python 是当下十分流行的编程语言,那么用 Python 可以做些什么? 有些什么优势、缺点?在这篇文章中都能找到你的答案。 如何描述 Pyth...

1957
来自专栏平凡文摘

理解程序员并不是一项简单的任务, 即使你当过程序员

1434

扫码关注云+社区