专栏首页焱融科技构建可靠的磁盘系统:故障判定和自动化处理
原创

构建可靠的磁盘系统:故障判定和自动化处理

存储痛点

存储系统以保证数据可靠为首要任务,传统单机存储以极低成本对外提供存储服务,但存在多处单点故障,可用性较低,扩展性差等问题。

随后演化出支持SAS接口双控双活控制器架构,在一定程度上能够避免单点故障,实现升级软硬件时业务不感知,能够保证可用性,但扩展性仍受到很大制约。

另外,以上两种传统存储方案中,均存在重构耗时过长的隐患,以目前单盘最大容量14TB磁盘而言,在不影响业务的前提下,存储单点故障后的重构时间将要以天计算,过大的重构时间窗口,出现高阶故障的概率会增大,数据面临风险也增大。

面对这些问题,为满足扩展性、无单点故障、快速重构的需求,设计者用分布式架构让更多的存储服务器参与到系统中,理论上它确实解决了以上问题,但均面临磁盘系统的软硬件故障,大规模分布式存储系统虽然能够快速处理单点故障,但单个存储系统磁盘规模可到K级别,随着业务的增长和磁盘寿命的衰减,单点故障成为常态,同时发生高阶故障的概率也会逐渐递增,给整个存储系统的稳定性和可靠性带来了挑战。

监控磁盘系统的必要性

分布式存储系统中,每个服务组件都有各自的监控逻辑,但都不涉及到OS层和硬件层面的监控。在业务层监控并处理底层异常,犹如隔靴挠痒,感知异常较滞后,有时在底层异常很长时间后,业务层才感知到,并且业务层预判异常,很容易出现误判。

因此无论在传统存储中,还是在大规模分布式存储中,都需要一套能提前感知和预判磁盘子系统软硬件健康状况的机制。一方面,生产环境的单个存储集群拥有海量磁盘,当业务运行度过磁盘稳定期后,磁盘故障率会变大,同时也面临质保过期的问题。因此能够辨别磁盘故障类别,是可修复的异常,还是直接申请售后更换,都能节约一定成本;另一方面,在配合产品定义的数据冗余特性,保证存储可靠性的前提下,给自动化运维提供可信的数据支持,实现自动化快速处理异常。短期来看,它直接提高存储的可用性和服务质量;长期来看,它让整个存储系统一直处于良好的健康状态,并且减轻运维人员的工作量,以及分析处理异常的复杂度。

故障分类

硬件类

1)磁盘硬件故障:以单盘故障居多,极少会遇到批量磁盘硬件故障,故障影响范围小,前提是软件要及时处理该异常。

2)HBA卡硬件故障:影响整台服务器的IO,故障影响范围大,会触发较多数据迁移。

软件类

1) 磁盘固件bug:有批次问题,统计故障时,在某段时间内,同型号多块磁盘发生故障,重启后又可以正常工作,健康值良好,可和厂家确认是否是磁盘固件有缺陷。

2) 磁盘驱动异常处理逻辑缺失:磁盘驱动若没及时处理异常,慢盘处理机制缺失,单盘异常可能夯死整台服务器,无法重启服务器,很难定位到异常盘,对业务影响大。

3) 低效的scsi中间层错误处理逻辑:该逻辑适合桌面级应用中,不适合企业级存储系统中,单盘异常可能会导致整台服务器IO夯,体验差,对业务影响大。

分析方法

一次异常不能认为该设备故障无法被继续使用(如震动、温度的影响),只有已经明确的故障,才能认为设备不可用,需替换。磁盘的好坏很难界定,所以一般用健康值去衡量磁盘是否可用,一般分良好、警告、错误,而健康值是个多维度给磁盘打分后的综合值。

1. 硬件类异常: HBA的特定寄存器值异常、有硬件复位、PCIE寄存器异常都可以表明该HBA已经异常,磁盘的特定sense key可以表明磁盘是否为坏盘。

2. 软件异常:磁盘iops和吞吐基本为0,利用率达到99%,某些异常sense key,表明磁盘有异常。

3. 常见影响磁盘健康值的因素:G表,重映射扇区数,CRC项,各类sense key,IO超时,最大IO延迟时间等。

处理方法

软件层面优化:磁盘异常处理在磁盘驱动层实现,及时处理IO超时、IO错误、慢盘,完成磁盘异常修复。自己实现单盘异常处理逻辑,将单盘异常处理和系统隔离。

A) IO超时类:如果不是环境震动导致,说明磁盘本身有异常,可通知监控报警。

B) IO错误类:具体错误具体处理,部分错误可被scsi命令修复,而业务不感知。

C) 慢盘类:确认不是驱动bug导致,底层驱动最先感知到,可通知监控报警。

磁盘健康值打分维度:

A) smart信息中关键指标项、特定的sense key都可直接判定为坏盘。

B) smart中特性属性值,IO延迟大和超时,可以设置磁盘警告。

C) 在业务低峰期时的磁盘短检,随机抽样读取数据,若有IO报错,可设置警告

D) 离线时的磁盘长检,可判定磁盘的健康状态。

自动化运维处理

自动化运维目的是减轻运维人员的工作量和工作复杂度,提升集群服务质量和可用性。

通过给磁盘健康值评分后,业务监控层根据自己踢盘策略配置,在满足上层数据冗余条件下,在一定故障域配额下自动化完成集群移除磁盘操作,并主动触发恢复,如果在恢复期间,再次发现异常盘,继续根据踢盘策略决定是否移除磁盘。

当遇到超出配额的高阶故障时,需要人工介入,确认故障类型后再做进一步处理。

总结

故障判定和自动化处理是个逐步完善的过程,需要对底层协议、内核、平台业务相关的有深入的理解。焱融云以保障客户数据为首要任务,在所有产品发布前,均进行大量线下故障模拟演练,并在生产环境中处理故障并得以验证,积累了大量自动化运维经验。以及在产品迭代中,不断优化自动化运维机制,从而提升产品竞争力和客户体验。

发布于 2018-07-10

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Raft 算法原理及其在 CMQ 中的应用(下)

    Raft 算法是一种分布式一致性算法。与 paxos 相比,它更易理解和工程化。我们完整实现了该算法并将其应用在自研的高可靠消息中间件 CMQ 中,同时沉淀出对...

    腾讯云中间件团队
  • 分布式存储系统可靠性:系统量化估算

    可用性指的是系统服务的可用性。一般按全年可用时间除以全年时间来衡量可用性的好坏,平常我们说的 SLA指标就是可用性指标,这里就不展开细说。

    2020labs小助手
  • 伸手党福利 - 直击TFS技术内幕

    TFS平台提供以文件为粒度的上传,下载,删除等数据访问服务,系统分为接入,文件索引,索引存储,数据存储四个部分。

    TEG云端专业号
  • 数据库事务总结

    SuperHeroes
  • 混沌工程 - 软件系统高可用、弹性化的必由之路

    随着摩尔定律的终结,单机计算性能已达到了极限,然而,我们的软件系统不论是规模还是复杂度一直在增长,所以软件系统都不约而同的朝着分布式化方向发展。近年来,随着云服...

    有赞coder
  • 超融合方案分析系列(3)深信服超融合方案分析

    前言 作者是国内研究超融合相当早的专家,有非常强的理论基础和实战经验,以下是超融合分析系列前面几篇,已经阅读过的同学可以跳过。 超融合分析系列: 超融合概述 ...

    大数据和云计算技术
  • 图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID100……

      RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆。这篇文章为网络转载,写得相当不错,它对 RAID 技术的概念特...

    菲宇
  • 分布式系统的可靠性指的是什么 —— 你可能从来就没有认真思考过

    本文节选之 DDIA 《Design Data Intensive Applications》,DDIA是一本神书,是一本可以让很多高级资深工程师醍醐灌顶的书。

    老钱
  • 廉价/独立磁盘冗余阵列RAID及CentOS 6上软RAID的实现

    磁盘阵列(Redundant Arrays of Independent Disks,RAID),由“价格便宜具有冗余能力的磁盘阵列”之意。原理是利用数组方式来...

    魏晓蕾
  • 云原生时代需要什么样的存储系统

    本文介绍了目前云原生环境下,支持有状态应用的几种典型存储方案的特点,并对市场主流的云原生存储产品实际测试性能进行对比。

    灵雀云
  • 【DB笔试面试766】在Oracle中,RAC、DG和OGG的区别有哪些?

    高可用(High Availability,HA)也可以称为高可用性或高可用环境。HA是分布式系统架构设计中必须考虑的因素之一。HA通常是指通过设计来减少系统不...

    小麦苗DBA宝典
  • 一文帮你理解整个 SRE 运维体系!

    在任何有一定规模的企业内部,一旦推行起来整个SRE的运维模式,那么对于可观测性系统的建设将变得尤为重要,而在整个可观测性系统中,通常我们会分为如下三个方面:

    杰哥的IT之旅
  • Ceph:一个新时代的开始

    目前Ceph 是一种已经震撼了整个存储行业的最热门的软件定义存储技术。它是一个开源项目,为块存储、文件存储和对象存储提供了统一的软件定义解决方案。Ceph 旨在...

    博文视点Broadview
  • RAID技术

    RAID 的两个关键目标是提高数据可靠性和 I/O 性能。磁盘阵列中,数据分散在多个磁盘中,然而对于计算机系统来说,就像一个单独的磁盘。通过把相同数据同时写入到...

    木可大大
  • RAID技术

    RAID 的两个关键目标是提高数据可靠性和 I/O 性能。磁盘阵列中,数据分散在多个磁盘中,然而对于计算机系统来说,就像一个单独的磁盘。通过把相同数据同时写入到...

    木可大大
  • 海量数据存储硬件平台解决思路

    "鹅厂网事"由深圳市腾讯计算机系统有限公司技术工程事业群网络平台部运营,我们希望与业界各位志同道合的伙伴交流切磋最新的网络、服务器行业动态信息,同时分享腾讯在网...

    鹅厂网事
  • 如何避免数据中心冷却水缺水?

    导语 冷却水在制冷系统中起到十分重要的作用,是冷量传递的媒介。冷却水系统如果发生缺水现象,会产生严重的后果,轻则导致空调送风温度升高,重则导致冷机停机,甚至导...

    腾讯数据中心
  • 电子政务云应急预案

    为了加强电子政务云平台运维团队收到用户报障或巡检发现异常后的处理应急机制,特制定本预案,主要包括以下内容:

    ICT售前新说
  • RAID、LVM、LVM操作实例详解

    磁盘阵列(Redundant Arrays of Independent Disks,RAID),有"独立磁盘构成的具有冗余能力的阵列"之意。

    用户8826052

扫码关注云+社区

领取腾讯云代金券