千亿级数据防丢指南:存储系统的可靠性保障实践

本文根据龚兵老师在〖2023 Gdevops全球敏捷运维峰会-北京站〗现场演讲内容整理而成 。(文末有PPT获取方式,不要错过)

千亿级数据防丢指南:存储系统的可靠性保障实践

文章插图
作者介绍
龚兵,vivo云存储研发负责人 。工作10余年,先后就职于华为、腾讯、百度,现在vivo担任云存储研发负责人,研究方向:对象存储、文件存储、NOSQL存储等分布式存储领域 。
分享概要
一、溯源:vivo存储服务介绍
二、归因:存储可靠性原因分析
三、建模:存储可靠性量化模型
四、实践:存储可靠性评估实践
五、思考:存储可靠性评估思考
六、Q&A
一、溯源——vivo存储服务介绍
1.产品矩阵
千亿级数据防丢指南:存储系统的可靠性保障实践

文章插图
当前我们的团队主要负责两大板块内容,一是存储和数据库产品矩阵 , 二是周边工具及接收类服务 。
这两部分内容的区别主要是,周边工具和接入类服务几乎是无状态的,用户对这类服务提出可用性的需求,比如我们平时接触到的SLA;而存储及数据库产品等引擎 , 主要面向对象存储、文件存储、表格存储等专门的服务业务,包括可用性和可靠性的指标 。
2.存储框架
云存储领域的黄金数字是11个9,接下来就以存储服务为切入点 , 向大家介绍11个9能否量化?如何量化?
千亿级数据防丢指南:存储系统的可靠性保障实践

文章插图
如上图所示,存储框架的核心思路是以自研的存储引擎为核心,辅以阿里、腾讯等公有云的存储,获得统一的存储底座,在上方形成对应存储的统一网关,进而提供一套混合云的存储系统 。然后,存储系统进行协议转换、衍生产品开发 , 为业务提供存储服务和衍生的生态服务 。
比如 , 我们会利用自己的SDK和AWS S3 SDK , 提供原生的对应重组产品 , 向前封装文件的存储网关 , 兼容posix协议 , 为用户提供文件的存储产品 。除此之外 , 还会封装企业网盘,进行专项服务,为用户提供相应的衍生产品 。
3.运营数据
当前,基于跨机房的纠删码相关优化,对可靠性提出了挑战 。如下图所示,我们线上的集群容量达到400亿(此数据尚未包括Hadoop的数据容量),存储数量已超1,000亿 。
千亿级数据防丢指南:存储系统的可靠性保障实践

文章插图
二、归因:存储可靠性原因分析
1.数据丢失影响因素
千亿级数据防丢指南:存储系统的可靠性保障实践

文章插图
数据丢失的五大原因包括:软件故障、数据损坏、恶意窃取、人为失误、硬件故障,其中硬件故障的占比较高 。
2.软件故障和数据损坏
千亿级数据防丢指南:存储系统的可靠性保障实践

文章插图
软件故障的主要原因是软件设计不规范、测试不完善及运维发布的操作爆炸半径太高 。
这些问题的通用解决方案是:
  • 设计标准规范化,比如,AWS引入了TLA+、Plusal等形式化规范语言来设计系统;
  • 要达到测试自动化;
  • 做好版本向前版本兼容、版本回滚、读写分离等操作 。
数据损坏的行业通用解决方案相对成熟,因为在处理传输与存储的过程中,都有一定概率遇到数据损坏的问题 。
解决方案:
  • 通过HTTPS协议,保证传输的安全;
  • 然后通过MD5校验,记录交易数据的完整性;
  • 最后通过定期的scrubbing处理机制,快速扫描是否具有静默错误 。
3.恶意窃取和人为失误
千亿级数据防丢指南:存储系统的可靠性保障实践

文章插图
人为失误主要包括两类问题,第一类是运维人员操作失误,第二类是用户自己的误杀或误覆盖 。
  • 针对运维的解决方案:运维自动化、运维白屏化、遵循POLP的最小权限原则 。
  • 针对用户的解决方案:自动存储方面,可以利用多版本的特性,保证用户可以找回误删的这种数据;文件方面,提供回收站功能可以达到相同效果 。
恶意窃取主要是内外部人员相关窃取或删除数据,其解决方案包括:
  • 进行权限控制和生命周期管控;
  • 可以锁定对象粒度为只读模式;
  • 针对删除操作 , 可以提供这种多因素的、健全的双因子论证 , 管控删除操作 。
4.硬件故障
硬件故障是需要重点关注的存储可靠性原因 , 因为它占比较高 , 样本量比较大,所以有一定概率进行量化 。


推荐阅读