查看原文
其他

一文了解如何系统验证分布式存储可靠性

为用户排忧解惑的 志凌海纳SmartX 2023-06-03

作者:深耕行业的 SmartX 金融团队


背景


分布式存储以及衍生超融合架构经过多年的发展,客户部署规模已从十几节点扩大到几百节点,支撑的业务从边缘走向一般生产,甚至关键生产业务,例如数据库场景。分布式架构的可靠性和容错能力,以及各种极端故障场景的影响范围和恢复时长,是客户主要关注的 SLA 指标。基于此,本文剖析分布式架构原理,定义各种故障场景及标准验证方法,希望在发现问题、优化产品的同时,为用户提供横向对比不同产品可靠性的参考依据。


本文仅针对分布式架构异常场景中的 I/O 连续性和副本安全问题进行展开,并重点探索故障模拟以及监控的可行技术手段。


分布式架构故障分类:


  • 磁盘故障

  • HBA/RAID 卡故障

  • 网络故障

  • 系统/节点故障

  • 服务组件异常


磁盘故障


为了理解不同磁盘故障对集群造成的影响,首先需要了解分布式存储常见分区结构特征。


  • 启动分区(Boot):为了提高 OS 本身对单块磁盘的异常容忍能力,通常需要部署在 RAID1 分区之上,采用硬件 RAID,无需独立引导磁盘;但当使用软件 RAID,则需要一个“引导分区先引导 RAID,再加载 OS”的过程,此时 Boot 分区需要独立磁盘或 RAID1 保护。

  • 系统分区(OS):部署在 2 块磁盘上(硬件 RAID/软件 RAID)。

  • 元数据分区(MetaData):承载集群关键元数据。

  • 缓存分区(Cache):提高 I/O 读写性能。

  • 日志分区(Journal):用于写操作异常后的数据恢复与校验。

  • 持久化存储分区(Partition):大容量存储空间,数据最终都会落在此分区。


不同产品设计时,会基于自身需求和产品特点,将不同的分区和磁盘组合使用,当磁盘故障时,造成的影响也会因架构设计的不同,有一定的区别性。例如:


  • 磁盘组合设计一

    • Boot + OS + MetaData(RAID 保护)

    • Cache + Journal(数据副本保护)

    • Partition(数据副本保护)

  • 磁盘组合设计二

    • Boot(RAID 保护)

    • OS + MetaData(RAID 保护)/Cache + Journal(数据副本保护)

    • Partition(数据副本保护)

  • ……


磁盘 - 不可访问



磁盘 - 访问错误



磁盘 - I/O 超时/无响应


超时指的是发往磁盘 I/O 没有在规定的时间内返回,原因可能包含多种,如磁盘/HBA 固件版本异常、内核模块异常等。



磁盘 - 延迟较高


延迟较高指的是磁盘处于慢速状态,I/O 没有达到超时异常,但是响应速度明显低于预期,通常触发条件为磁盘异常或者 HBA 固件异常。在异常情况下涉及到慢速设备的 I/O 均会受到影响。



磁盘 - 性能下降


SSD 随着使用时间的增长有可能会出现峰值性能下降的情况,作为存储系统自身,可能比较难在不影响业务的情况下感知到这一现象。通常此类场景应该会伴随着延迟升高或者寿命告警等 S.M.A.R.T. 参数变化。


磁盘 - 寿命不足


此类异常仅作为警示指标,常见如下:


  • S.M.A.R.T. 工具返回的磁盘总体健康状态。

  • 剩余寿命百分比(仅 SSD 具备此指标,HDD 不具备)。

  • 扇区的重定向次数(在部分扇区/颗粒损坏时,固件可以将部分区域屏蔽,引导写入未统计在标称容量中的预留区域)。


HBA/RAID 故障


NVMe 通过 PCIe 通道与 CPU 直连,故不存在 HBA/RAID 卡故障。而本地存储 SSD 和 HDD 一般都挂载在同一块 HBA/RAID 上,HBA/RAID 故障可能会同时影响多块磁盘设备。HBA/RAID 故障可能会导致部分或者全部磁盘变为异常状态,异常状态包括:


  • I/O 错误

  • I/O 无响应

  • I/O 延迟高

  • 无法挂载磁盘

  • ……


并可能发生多个磁盘出现上述故障叠加。影响情况与磁盘异常中多个磁盘同时异常一致。


部分遇到的 HBA/RAID 故障无法通过重启系统或者服务自动修复,需要人工介入升级固件或者整体替换 HBA/RAID 卡修复。



网络故障


网络中断



网络延迟



网络风暴


如果网络中出现持续性网络风暴(通常会由核心交换机异常或是配置了错误的全局网络策略引发),丢包率大量上升,间歇性导致数据链路断开,延迟大幅度增加且不稳定。并且可能会出现集群元数据服务正常,但是节点间数据链路处于异常的状态(理论上是小概率事件,但可能存在)。可能会出现大量的剔除副本请求,导致大量副本进入降级状态,触发数据恢复(也会受网络影响),有数据安全风险。


异常

系统与节点异常



服务异常



以上就是我们整理的分布式存储故障和异常类型,以及通过故障模拟检验架构可靠性的完整方法体系。后续,SmartX 将结合客户案例,分享如何在实践中检验分布式存储架构可靠性,敬请期待!


点击阅读原文,或扫描下方二维码,下载《SmartX 分布式块存储 ZBS 自主研发之旅》,深入了解 ZBS 如何利用架构优化、数据同步协议 RDMA、接入协议 NVMe-oF 等技术提升性能与可靠性。


推荐阅读:


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存