近日,腾讯云用户“前沿数控”平台一块操作系统云盘,因受所在物理硬盘固件版本 Bug 导致的静默错误(写入数据和读取出来的不一致)影响,文件系统元数据损坏。
8 月 6 日,腾讯云官微发布关于用户“前沿数控”数据完整性受损及腾讯云补偿措施的说明 。
腾讯云表示,监控到异常后,***时间向用户告知故障状态,并立即组织文件系统专家并联合厂商技术专家尝试修复数据。虽经多方努力,最终仍有部分数据完整性校验失败。
经过分析,该硬盘静默错误是在极小概率下被触发,腾讯云随即对固件版本有 Bug 的硬盘全部进行下线处理,确保相关隐患全部排除。
作为运维专家,纯从技术角度分析腾讯云与前沿数控的磁盘数据丢失事件,避免类似的问题再次发生。
硬盘固件详解和数据保护机制
固件又称 Firmware,就是“固化在硬件中的软件”,不太恰当但是好理解的就是:固件就是硬盘的操作系统。
固件 Firmware 是安装在硬盘的一个小记忆芯片上的,用于引导硬盘工作,担任着一个系统最基础***层的工作。它是用汇编语言编写的引导命令、控制语句和执行语句,协调和控制硬盘各个内部部件之间相互作用。
对于固件的保存位置来说,不同品牌的硬盘各不相同。硬盘在工作时,用户可以访问的是零磁道以后的位置,因此固件区是无法访问的。
只有通过专业工具,将硬盘置于工厂状态下,才能实现对硬盘进行读写固件区信息、获取固件区模块和表格配置图、获取扇区分配表、进行 LBA (逻辑地址)与 CHS (物理地址)互换、进行低级格式化以及读、写硬盘的闪存芯片等操作。
固件就是硬件设备的灵魂,因为一些硬件设备除了固件以外没有其他软件组成,因此固件也就决定着硬件设备的功能及性能。
在硬盘中,固件负责驱动、控制、解码、传送、检测等工作,如管理数据的存放位置、记录已经损坏的缺陷扇区、避免使用过程中再次用到这些坏的缺陷扇区、记录硬盘在工作中的温度或出现的错误等。少了固件的硬盘就只是一堆机械和电子元件,不能正常运转,更不用说在其中读写数据了。
硬盘固件分为几个不同的工作区,不同品牌、不同型号的硬盘,其工作区各不相同,不同工作区的组成模块也不尽相同,有的硬盘只有 A、B 两个工作区,而有的硬盘有 A、B、C 三个工作区。
硬盘的固件信息以模块的形式表现出来,可能每个模块记录一个信息,也可能一个模块记录多个信息。这些模块的大小并不一致,有些模块只有几个字节,有些则达到几十个字节,它们并不是连续存放的,而是各有其固定的位置。硬盘固件的信息模块包括管理模块、配置和设置表、缺陷列表以及工作记录表等。
为了解决为了组合廉价的小磁盘来代替昂贵的大磁盘,同时在磁盘失效的时候能保护数据引入了 RAID 机制,RAID 可以充分发挥出多块磁盘的优势,可以提升磁盘速度,增大容量,提供容错等能力,此种 RAID 方案被服务器、存储厂家延用至今。
RAID 0
又称为 Stripe 或 Striping (分条),即数据分条技术。RAID 0 可以把多块硬盘连成一个容量更大的硬盘群,从而提高磁盘的性能和吞吐量,要求至少两个磁盘。
- 优点
读写性能高,可用容量为各个磁盘的容量和 。
- 缺点
无容错,无冗余,不适用于安全性要求高的类型。
RAID 1
又称为 Mirror 或 Mirroring (镜像)。RAID 1 把一个磁盘的数据镜像放在另一个磁盘上面,在不影响性能的情况下***限度的保证系统的可靠性和可修复性。
- 优点
很高的数据冗余能力,安全性高
- 缺点
磁盘容量是总容量的一半,成本高
RAID 5
是 RAID 0 和 RAID 1 的折衷方案,但没有完全使用 RAID 1 镜像概念,而是使用了”奇偶校验信息”来作为数据恢复的方式,需要至少三个或更多的磁盘。
- 优点
容错性,数据冗余能力,读性能高,安全性较高
- 缺点
与 RAID 1 相比,由于采用的是奇偶校验方式,数据保障程度要差一些,而磁盘利用率要高一些。
RAID 10
又称为镜像阵列条带。如 RAID 0 一样,数据跨磁盘抽取,也如 RAID 1一样,每个磁盘都有一个镜像磁盘。因此 RAID 10 又称为 RAID 0+1。
- 优点
100% 数据冗余,安全性高
- 缺点
价格相对较高,磁盘利用率 50%
硬盘固件Bug?
腾讯云的公告称因硬盘固件 Bug,导致文件系统元数据受损,数据无法恢复。相信一线的运维同学对公告也有同样的疑惑:
- 硬盘是哪一品牌的硬盘?
- 服务器或存储是否进行 RAID 进行数据保护?
- 硬盘的固件的哪一版本有 Bug?升级到哪个版本能避免此问题?
- 极小概率触发 Bug,触发的场景又是什么?
- 存在问题硬盘下线策略是什么,会不会对使用的用户有二次影响?
建议把 Bug 的详情和升级方案进行公布,让更多的公司来避免相似的问题,相信也是一种贡献。
服务可用性
腾讯云承诺的"99.9999999% 的数据可靠性,搭载了云硬盘提供三副本存储策略,保障了数据在任何一副本出现故障时快速进行迁移和恢复。”按照正常思维逻辑,前沿数控的数据有三个副本,三个副本不可能在一台机器、同一块磁盘上。难道是宣传销售的一个噱头?
公有云不需要备份?
前沿数控显然存在失误,云服务的使用者要对数据负责,不是完全依赖于云服务提供商。出现数据丢失跟灾备措施有直接的关系,建议使用云架构方式的企业,所有的数据必须进行多云或者异地方式进行备份。本次腾讯云与前沿数控的磁盘数据丢失事件就是血的教训。
墨菲定律告诉我们,容易犯错误是人类与生俱来的弱点,不论科技多发达,事故都会发生。而且我们解决问题的手段越高明,面临的麻烦就越严重。所以,我们在事前应该是尽可能想得周到、全面一些。
本人从事运维工作十年有余,精通网站架构,对各家的云都有了解,熟知数据对创业公司的重要性。如有需要,愿提供技术支持。
作者:刘晓明
简介:互联网公司运维技术负责人,拥有 10 年的互联网开发和运维经验。一直致力于运维工具的开发和运维专家服务的推进,赋能开发,提高效能。***给自己代个盐,欢迎大家有空时翻下我牌子(知乎号:布道,微信:AiDevOps),看看“开发运维”专栏的文章和公众号的文章,希望多些关注和点赞是给作者***的鼓励 !