聊聊分布式存储中的“慢盘”现象及对策

针对“慢盘”问题,最常见的做法是,通过磁盘自带的SMART信号来检测磁盘的亚健康状态,以及实时检测读写时延的变化,以便及时发现慢盘现象,然后将慢盘剔除,将慢盘上的数据在其他磁盘上进行重构修复。

何为“慢盘”现象?

分布式存储系统,可分为去中心化架构与中心化架构两大类。

去中心化架构以Ceph为代表,支持块设备存储、对象存储和文件存储三种应用场景,其主要技术特征在于:业务数据切分为固定大小的数据块(如4MB大小的Object),通过伪随机CRUSH算法计算得出该数据块的位置,尽可能将数据均匀分布在各个节点各个磁盘上。

中心化架构以Google GFS、HDFS以及Lustre等分布式文件系统为代表,其主要技术特征在于:采用中心化元数据服务器来保存和查询数据块的具体位置信息,而数据块由元数据服务器按照某种条带(Strip)算法或伪随机算法为数据块分配地址空间,即尽可能将业务数据均匀分布在所有磁盘上。

在长期运行过程中,由于体质或频繁读写的原因,部分硬盘会出现延时变大、读写变慢的情况。无论是Ceph,还是GFS、HDFS以及Lustre,分布式存储架构普遍存在“慢盘”现象:当某个磁盘出现性能故障或IO负载过高等情况导致延迟变大时,用户几乎所有业务都会受到严重影响。“慢盘现象”会导致整个集群性能下降,严重时甚至会导致数据丢失、服务不可用等问题。

慢盘现象与古老的木桶效应如出一辙:木桶效应指的是木桶最多能盛的水,不是由最高的那块木板所决定,而是由最短的那块木板所决定。与此类似,分布式存储的性能不是由最快的磁盘决定,而是由最慢的磁盘所决定。

常见应对方法

针对“慢盘”问题,最常见的做法是,通过磁盘自带的SMART信号来检测磁盘的亚健康状态,以及实时检测读写时延的变化,以便及时发现慢盘现象,然后将慢盘剔除,将慢盘上的数据在其他磁盘上进行重构修复。

基于慢盘检测的应对方法有以下三个缺陷。

第一,“慢盘”检测的准确度问题。无论是磁盘SMART信号,还是读写时延,都无法100%地准确检测到故障磁盘。大量硬盘故障数据表明,SMART信号时常出现漏报或误报磁盘故障,而读写时延的波动,不单单受到磁盘亚健康状况的影响,同时也可能随着磁盘上工作负载的波动而波动,从而影响到慢盘检测的准确性。

第二,“慢盘”检测存在误报率问题。误报率的产生,不仅加重运维人员的工作负担,同时,由于误报磁盘故障而导致正常的磁盘被剔除,产生不必要的数据重构,反而会影响到系统的稳定性与性能。

第三,“慢盘”检测手段无法提前预测磁盘故障,属于后知后觉。当真正的慢盘被检测到时,往往前端业务已经受到显著的影响,甚至已经出现业务不可用的情况。

双重RAID应对“慢盘”挑战

极致高可用:双重RAID是目前应对“慢盘”现象的最有效技术手段。双重RAID采用节点内RAID与跨节点间副本技术相结合的技术;集群中各个节点通过软件定义存储技术,实现节点内存储资源池化管理与节点内RAID数据保护。当某个磁盘因为出现故障而成为“慢盘”时,节点内RAID会自动识别到该磁盘,并通过读取该节点其他磁盘上相关数据,进行本地数据重建,及时向前端业务发送数据。

由于本地RAID对慢盘形成了有效的故障隔离,前端业务完全感知不到“慢盘”对业务的影响,从而具有极致高可用的特征。

降低运维成本:由于本地RAID通过磁盘级在线数据完整校验,可精准定位故障,并实现数据本地修复,因此可降低运维难度,节约运维人员成本。

超强故障容错能力:与三副本分布式存储相比,双重RAID具有更强的故障容错能力与数据自修复能力。按节点内(2+1) RAID50 或(4+2) RAID60、节点间副本计算,其可靠性指标(平均故障间隔时间MTTF)提升一个数量级或以上。更强的故障容错能力,可帮助国产信创CPU、国产服务器实现国产化存储替换,并可延长硬件生命周期,将硬件寿命从普遍的3-5年延长到8到10年。

更高性能:双重RAID采用分布式自适应缓存技术,将Cache命中率从磁盘阵列中常见的60~70%提升到90%以上,可充分利用内存与高速NVMe盘的读写性能,提升IOPS性能3~4倍,降低平均时延50%以上。

来源:至顶网存储频道

0赞

好文章,需要你的鼓励

2023

07/12

10:21

分享

点赞

邮件订阅