Gdevops 全球敏GlobalD捷evOpsSummit运维峰会 vivo存储系统的数据可靠性探索与实践 演讲人:龚兵vivo云存储研发负责人 个人简介vivo 龚兵 vivo存储研发高级经理 2019年加入vivo,参与过存储与数据库多个产品的研发工作,目前担 任存储和数据库产品研发团队的负责人 Gdevops全球敏捷运维峰会北京站 分享目的与目标vivo 目的OBJECTIVE自标TARGET 输出倒逼输入可靠性影响因素和量化模型全面剖析 让自己总结可靠性知识沉淀的理由让大家对11个9可靠性不再感到陌生 抛砖引玉引发存储可靠性评估探讨存储可靠性模型实用化、工程化 让大家意识可靠性评估重要性让大家在做存储系统设计有所借鉴 Gdevops全球敏捷运维峰会北京站 目录vivo CONTENTS 潮源 归因 建模 实践 思考 vivo存储服务介绍 存储可靠性原固分折 存储可靠性显化模型 存做可靠性评估实 存储可量性评估思老 0102030405 PARTONEPARTTWOPARTTHREEPARTFOURPARTFIVE Gdevops全球敏捷运维峰会北京站 vivo 01. PARTONE 产品矩阵 ·存储框架 运营数据严禁商业用途 仅供学习不行 溯源:vivo存储服务介绍 Gdevops全球敏捷运维峰会北京站 vivo存储产品介绍一-产品矩阵vivo 可靠性:服务质量另一个维度,存储领域指数据不丢不错,指标:"11个9” 存储&数据库产品矩阵工具&接入类服务矩阵 高可靠+低盛本,低成本+高性能)(高可用+高体验、高可用+高完备) 为业务提供一流的高可靠、高性能、低成本的存储和数据库产品为业务提供一流的高可用、高体验、高完备的周边工具接入产品 有状态服务无状态服务 对象存销文性存储企业网母日志服务统一接入网关多媒体处理分布式调座 车饿盘KV表格存储RedisMYSQLVSQLTuna-ProxyDT5 可用性:服务质量的一个维度衡量标准:SLA(服务等级协义):服务可用时长占全年时长的百分比 Gdevops全球敏捷运维峰会北京站 vivo存储产品介绍--存储框架vivo 云服旁份数据分折日志本计AE短规频混合云存陆平台 使用场量 企业云盘对象存 开源Hadoop 效招万象 统一管理 Hadoop/POSIX/N 产品维座 轩#SDK轩辆SDKS3SDK轩插SDK统一调度 个 FS/CIFS/CSI 文性存需网关可靠性评估 图片处理服务 账单分准管理 存储网关 对象存体同关规处理服务运维可视化 公有云存站弹性上下云轩装存化引擎阿里云OSS腾讯云COS高性能/标准存储冷/归档存化 分布式数据迁移 对象元数据存随 引擎(表格存随) B报表 存饰引维 华为对象存储百度云BOS 纠剧码优化网络10优化告置中心 故据入混合云 业据务数 数拓备份业旁日志训练样本数据音份日志中心 Gdevops全球敏捷运维峰会北京站 vivo存储产品介绍--运营数据vivo 存储容量(PB)存储数量(亿) 2019202020212022202320192020202120222023 集群容量:400PB+对象数量:1000亿+ Gdevops全球敏捷运维峰会北京站 02. PARTTWO +数据丢失影响因素 SoftwareFailure&DataCorruptionHumanError&MaliciousTheftHardwareFailure dbaplus vivo O 仅供学习不行 归因:存储可靠性原因分析 Gdevops全球敏捷运维峰会北京站 存储可靠性原因分析一影响因素vivo 数据丢失五大原因 硬件故障 软件故障人为失误 数据丢失 软件故障存储软件设计缺陷、软件实现有BUG 数据损坏 数据损坏并不仅仅只是bitflip,传输处理存储环节都可 能出现数据损坏 恶意窃取公司内部员工窃取外部恶意人员攻击 数据损坏恶意窃取 人为失误运维操作失误、用户误删除、误覆盖 硬件故障硬盘故障、机架级故障、机房级故障、区域级故障 Gdevops全球敏捷运维峰会北京站 存储可靠性原因分析一软件故障和数据损坏vivo 原因剖析 软件故障数据损坏 软件设计不规范CPU是不是永还不会说诺?(不一定 测试不完善TCP的checksum机出是否永远正旁?(不一定) 运维发布的操作混炸半径太大B反转是否一定只同限硬件问题?(不一定) 解决方案Qvivo待建设2vivo正完善中vivo己克持解决方案 设计标准规范化HTTPS/TLS TLA+,Plusal形式化规范语言亲设计系统保护故据在传节过程中的安全和完整件 测试白动化Content-MD5校验 测试用列完善、测试工异完善携带MD5可以进一步检验传过程的敬据完整性 版本兼容、版本回滚、读马分离Data-scrubbing 绝小运维发布轻件的露炸半径,快速回离,升级梁忆进行读写分离利用存技的cRC-checksum进行定期换完整性 Gdevops全球敏捷运维峰会北京站 存储诸可靠性原因分析一恶意窃取和人为失误vivo 原因剖析 人为失误恶意切取 运维人员择作失误 用户使用数后误操作时除内部员工恶宝取和副除故姆 用户使用数导语深作覆盖外部政击者恶急攻击利除数据 解决方案Qvivo待建设2vivo正完善中vivo己持解决方案 运维自动化,远雄白屏化,适循POLP权限控制+生命周期管控 让远维人员的人工强作极少,复杂度越优,操作极限滤细完各的限控和生命固期控司 ObjectVersioningObject-Lock 对象存储对象轻度的密版本功能特性让用户找回误出数据可以锁定对盈护度为品读摄式,可配合版本功能全名用 文件存储回收站功能MFA-Delete 文件存能的回收站功能也支持用户找回不久前误印隐的文件教提供史加究全的则除数活的机制防止费意除操作 Gdevops全球敏捷运维峰会北京站 存储可靠性原因分析一硬件故障vivo 挑战:纠划码技术兄余度+成本的衡量,多AZ余+修复带宽压力思路:设计低穴余度且支持多AZ部署且修复带宽较少的纠刮码方案 硬盘故障:最常见最重要的,驱动器、噬头,度、机祛胃故障主机故障:服务器各部件故障导款务器无法启动 机拒故章:由于电源。温度。网络等原因导致整机柜服务器停机机房故障:整个机房由于自然灾售本供电原因范卖A之故障:同一地理区好独立电力和网的机房故障 Region故障:不同地理区域的一个Region故障 解决方案@vivo待设vivo正完善中vivo日支持 base Timetorepai Repairfleet 数据穴余技术【RAID5/6,副本,纠到码】 fler 硬盘故障非常疑繁,需要对效据进行穴杀存诺,以视供时问修复 多AZ数据穴余部署【vivO3AZ部署】 Duradity 为应对电力和网络的同区最大规模故障,多AZ部置保证单AZ挂款据不玉 跨区域复制功施【功能具备,vivo还没多地域机房】11个9是通过可先性(持久化)模型计算得到的,并且与磁盘 故障率以及故障发现时间、修复时长等强相关 为应对区块级的自然灾主敌妇仍然不丢失,度区或意制可保证数恶不玉 故障预测+故障发现+故障修复将故障率和修复周期等信息输入可靠性评估模型来指导线上环境 预测越早越准越好,发现感及时起好,修急越快越好 Gdevops全球敏捷运维峰会北京站 vivo 03. PARTTHREE *11个9的由来 ·可靠性模型影响因索 MTTDL可靠性模型 ·EAFDL可靠性模型 建模:存储可靠性量化模型 O仅供学习不行 严禁商业用途 Gdevops全球敏捷运维峰会北京站 存储可靠性量化模型一11个9的由来vivo 11个9定义:存储一干万个对象预平均每1万年发生一个对象丢失11个9新定义:平均每年对象的丢失率预计为0.000000001% 用户疑问:这11个9是如何计算得来的呢?数据丢失主要原因硬件故障,其实硬盘故障至关重要 硬盘故障修复流程 如何量化?>>> 故障格测>>>故障依显 99.999999999%T1T2T3 MTTFMTTR MTTF:硬性均故障时间,对应的时间如上图T1 所有云存储提供商都像军备竞衰一样说能提供多少多少个9但行业内几乎设有任何一家云厂商能提供权感的量化模型 与MTTF相对应的指标:年平均故障率入MTTR:故障平均修复时问,包括故障发现的时间(T2+T3) 与MTTR指对应的指标:年平均接更率从 Gdevops全球敏捷运维峰会北京站 存储可靠性量化模型一影响因素vivo 2副本余存储系统故障修复 修复带宽 所有的可靠性量化评估模型都足基于这4个要素去迁模 系统节点数目:N 节点数目对紧复时间有间接影响 D2D2单节点修复带宽:W@ D1 慢复带宽 对修复时间有直接影响 单盘业务数据量:Z 2副本亢余存储系统2种数据分布硬盘的水位对修豆时问有互接影响 副本的数量:R D3D3 D2D2副本数对可靠性有接影响 D1 D3D3 硬盘故障率:入 硬盘故障率有直接彩响 D2: D1 DD2数据分布系数:S 对可靠性有影响 Gdevops全球敏捷运维峰会北京站 存储可靠性量化模型一MTTDLvivo MTTDL平均系统数据丢失时间:和MTTF区别在于MTTDL描述的是系统的平均丢数据时间 MTTDL-1.0MTTDL-2.0MTTDL总结 缺点: markov-chain 0故障盘故障2盘故障Dataloss MTTDL计算公式: MTTDL= 12(3N2-6N+2)+1(3LN-2L)+2u2 01Markov链 02指数分布 03 没考扇区错误 N(N-1)(N-2)M3优化 MTTDL计算公式:不考虑数据分布的系统持久性公式01非Markov链 112 MTTDL: N(N-1)(N-2)/3 02Weibull分布 P,=e-Abt(t=24*365) 独立扇区错误 系统最终持久化公式: 考虑数据分布系数5系统量终持久性公式:03 04相关性扇区错读 PheMTTDL(t=24*365] Ps=1-P(1-Pb) 05NOMAL指标 结论:MTTDL模型对不同系统设计的可靠性优劳评估作用非常大,MTTDL各种优化版本绝对值有一定借鉴意义 Gdevops全球敏捷运维峰会北京站 存储可靠性量化模型一EAFDLvivo 侧重频率:MTTDL相同EAFDL最大化 回顾MTTDL定义:平均系统➀失数据✁时间。低重数量:EAFDL相同MTTDL最大化 EAFDL模型 第第二 EAFDL计算公式: E(H) EAFDL= MTTDL越高表示系统有数据M,TTDL只关注➀失✁频MTTDL+U ➀失✁概率低,也就是出现 但是没有关注每次其中E(1I)为➀失✁平均数据量,U为用户总数据量 ➀数据✁频率低。➀失✁数量, E(H)计算公式:(spreadfactor=N) EAFDL:预期每年数据➀失比例E(H)= N-1 RC R-1/ 在MTTDL✁基础上进一步关注➀失✁数量。也就每年预期➀ 失✁数据比例,11个9定支:平均每年对象✁➀失率预计为0.000000000% 真实环境✁妥协: 有些云厂商根据实际IDC内部✁现网效据真实统计认为控制 EAFDL比MTTDL更贴近11个9✁计算➀失✁频率☎重要,因为每个➀失事件都会产生固定虎本, 而这些云厂商则可能仍然会关注MTTDL, Gdevops全球敏捷运维峰会北京站 04. +vivo可靠性建模思路 ·vivo多副本可靠性模型 dbaplus vivo PARTFOUR ?vivo纠删码可靠性模型 ●可靠性评估平台化建设 严禁商业用途 仅供学习不得 实践:存储可靠性评估实践 Gdevops全球敏捷运维峰会北京站 存诸可靠性评估实践一vivo建模思路vivo 取舍 原因剖析 固定运维或本不低硬性✁故障率恒定不变有一定误差 行业设统一标准Markov链无记忆性 零散✁计算公式有理论支撑扇区错误需要专虑,但当前房区相关✁错识幸行业内不统一 借鉴点舍弃点 MTTDL频率维度招数分布 MTTDL是时间维度进行转换后可以转换,成年癌✁➀数据