一种存储管理方法、装置、设备及可读存储介质与流程

摘要: 本说明书涉及通信,尤其是涉及一种存储管理方法、装置、设备及可读存储介质。背景技术:1、为了应对存储硬件不可避免的故障风险,分布式存储系统通常采用多副本或纠删码等...
一种存储管理方法、装置、设备及可读存储介质与流程

本说明书涉及通信,尤其是涉及一种存储管理方法、装置、设备及可读存储介质。

背景技术:

1、为了应对存储硬件不可避免的故障风险,分布式存储系统通常采用多副本或纠删码等冗余策略,将数据分散存储在集群内的多个物理或逻辑隔离单元中,这些隔离单元被称为故障域,常见的故障域包括但不限于单个节点(host)、整个机架(rack)乃至数据中心。当系统中的某个存储设备,如磁盘,出现故障时,为了保证数据的冗余度不降低并维持业务的持续运行,系统必须迅速将该故障盘从服务集群中隔离出来,并立即启动数据重构流程,将原本存储于故障盘上的数据在其他健康的存储节点上重新生成副本或校验块,从而恢复到预设的安全冗余水平。

2、在实际的大规模生产环境中,盘故障并非总是孤立发生的。尤其是在硬件老化、批次性问题、供电波动或网络瞬断等情况下,极有可能出现多块磁盘在短时间内相继甚至同时报告故障的现象。这种并发故障可能发生在同一个故障域内,例如同一台服务器节点上的多块硬盘同时出现慢盘、io超时或预坏盘信号;也可能跨越不同的故障域,例如集群中不同节点的磁盘几乎同时进入异常状态。面对这种复杂的并发故障场景,传统的盘隔离机制暴露出了显著的缺陷。最为基础的现有技术方案是,当检测到磁盘故障时,系统不进行任何关于集群剩余冗余能力的判断,直接依次将故障盘进行隔离。这种方案在绝大多数单点故障场景下能够正常工作,因为它假设了并发故障是小概率事件。但是,随着集群规模的急剧膨胀,并发故障的概率随之上升,这种不做冗余校验的直接隔离方式,极有可能在短时间内隔离了超出系统冗余设计上限数量的磁盘,从而导致数据副本数或纠删码条带完整性被破坏,最终引发业务中断甚至永久性的数据丢失,这是生产环境所不能接受的重大事故。

技术实现思路

1、有鉴于此,本说明书提供一种存储管理方法、装置、设备及可读存储介质,以改善上述超冗余事件造成业务或数据受损的问题。

2、具体地技术方案如下:

3、本说明书提供了一种存储管理方法,应用于分布式存储集群的存储管理设备,所述分布式存储集群包括硬盘池,硬盘池包括若干硬盘,所述方法包括:预先获取和/或更新并记录硬盘池内各硬盘的状态机的状态信息,所述状态信息包括该硬盘状态机当前的所处的状态,包括处于允许直接隔离的第一类型状态或不允许直接隔离第二类型状态;响应于硬盘隔离请求,获取硬盘隔离请求关联的待隔离硬盘归属的硬盘池,根据硬盘池内各硬盘的状态信息判断当前该硬盘池内的故障节点总数,其中,故障节点指的是关联的硬盘处于第二类型状态的节点;根据该硬盘池内的故障节点总数与允许故障节点数的比较关系,允许或拒绝隔离硬盘隔离请求关联的待隔离硬盘。

4、作为一种技术方案,属于所述第二类型状态的状态包括:down状态,用于指示硬盘关联的osd实例异常但未触发重构,盘上数据可能不完整;和/或,out状态,用于指示硬盘关联的osd实例异常,已触发重构但未重构完成,盘上数据在其他盘上备份数可能不足;和/或,recover状态,用于指示硬盘从异常状态重新加入集群,数据正在重构中,盘上数据在其他盘上备份数可能不足。

5、作为一种技术方案,所述响应于硬盘隔离请求,获取硬盘隔离请求关联的待隔离硬盘归属的硬盘池,根据硬盘池内各硬盘的状态信息判断当前该硬盘池内的故障节点总数,包括:根据记录的硬盘池内各硬盘的状态机的状态信息,获取当前已确认故障的故障节点;根据硬盘隔离请求获取硬盘隔离请求关联的一个或多个硬盘归属的一个或多个节点,将所述一个或多个节点视为故障节点;将上述两步骤中的故障节点去重后统计故障节点总数。

6、作为一种技术方案,所述根据该硬盘池内的故障节点总数与允许故障节点数的比较关系,允许或拒绝隔离硬盘隔离请求关联的待隔离硬盘,包括:获取硬盘池内各存储池分别允许的故障节点的数量,去其中最小的作为允许故障节点数,若故障节点总数小于等于允许故障节点数,则允许隔离硬盘隔离请求关联的待隔离硬盘。

7、本说明书同时提供了一种存储管理装置,应用于分布式存储集群的存储管理设备,所述分布式存储集群包括硬盘池,硬盘池包括若干硬盘,所述装置包括:第一模块,用于预先获取和/或更新并记录硬盘池内各硬盘的状态机的状态信息,所述状态信息包括该硬盘状态机当前的所处的状态,包括处于允许直接隔离的第一类型状态或不允许直接隔离第二类型状态;第二模块,用于响应于硬盘隔离请求,获取硬盘隔离请求关联的待隔离硬盘归属的硬盘池,根据硬盘池内各硬盘的状态信息判断当前该硬盘池内的故障节点总数,其中,故障节点指的是关联的硬盘处于第二类型状态的节点;第三模块,用于根据该硬盘池内的故障节点总数与允许故障节点数的比较关系,允许或拒绝隔离硬盘隔离请求关联的待隔离硬盘。

8、作为一种技术方案,属于所述第二类型状态的状态包括:down状态,用于指示硬盘关联的osd实例异常但未触发重构,盘上数据可能不完整;和/或,out状态,用于指示硬盘关联的osd实例异常,已触发重构但未重构完成,盘上数据在其他盘上备份数可能不足;和/或,recover状态,用于指示硬盘从异常状态重新加入集群,数据正在重构中,盘上数据在其他盘上备份数可能不足。

9、作为一种技术方案,所述响应于硬盘隔离请求,获取硬盘隔离请求关联的待隔离硬盘归属的硬盘池,根据硬盘池内各硬盘的状态信息判断当前该硬盘池内的故障节点总数,包括:根据记录的硬盘池内各硬盘的状态机的状态信息,获取当前已确认故障的故障节点;根据硬盘隔离请求获取硬盘隔离请求关联的一个或多个硬盘归属的一个或多个节点,将所述一个或多个节点视为故障节点;将上述两步骤中的故障节点去重后统计故障节点总数。

10、作为一种技术方案,所述根据该硬盘池内的故障节点总数与允许故障节点数的比较关系,允许或拒绝隔离硬盘隔离请求关联的待隔离硬盘,包括:获取硬盘池内各存储池分别允许的故障节点的数量,去其中最小的作为允许故障节点数,若故障节点总数小于等于允许故障节点数,则允许隔离硬盘隔离请求关联的待隔离硬盘。

11、本说明书同时提供了一种电子设备,包括处理器和可读存储介质,所述可读存储介质存储有能够被所述处理器执行的机器可执行指令,处理器执行所述机器可执行指令以实现前述的存储管理方法。

12、本说明书同时提供了一种可读存储介质,所述可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现前述的存储管理方法。

13、本说明书提供的上述技术方案至少带来了以下有益效果:

14、通过预先记录硬盘池内各硬盘状态机状态,在隔离请求时基于全局状态统计故障节点总数并与允许故障节点数比较,实现了隔离前的超冗余预判,避免了多盘并发故障场景下因缺乏全局感知而导致的超冗余隔离,保障了分布式存储系统的数据可用性和业务连续性。

1.一种存储管理方法,其特征在于,应用于分布式存储集群的存储管理设备,所述分布式存储集群包括硬盘池,硬盘池包括若干硬盘,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,属于所述第二类型状态的状态包括:

3.根据权利要求1所述的方法,其特征在于,所述响应于硬盘隔离请求,获取硬盘隔离请求关联的待隔离硬盘归属的硬盘池,根据硬盘池内各硬盘的状态信息判断当前该硬盘池内的故障节点总数,包括:

4.根据权利要求1所述的方法,其特征在于,所述根据该硬盘池内的故障节点总数与允许故障节点数的比较关系,允许或拒绝隔离硬盘隔离请求关联的待隔离硬盘,包括:

5.一种存储管理装置,其特征在于,应用于分布式存储集群的存储管理设备,所述分布式存储集群包括硬盘池,硬盘池包括若干硬盘,所述装置包括:

6.根据权利要求5所述的装置,其特征在于,属于所述第二类型状态的状态包括:

7.根据权利要求5所述的装置,其特征在于,所述响应于硬盘隔离请求,获取硬盘隔离请求关联的待隔离硬盘归属的硬盘池,根据硬盘池内各硬盘的状态信息判断当前该硬盘池内的故障节点总数,包括:

8.根据权利要求5所述的装置,其特征在于,所述根据该硬盘池内的故障节点总数与允许故障节点数的比较关系,允许或拒绝隔离硬盘隔离请求关联的待隔离硬盘,包括:

9.一种电子设备,其特征在于,包括:处理器和可读存储介质,所述可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令,以实现权利要求1-4任一所述的方法。

10.一种可读存储介质,其特征在于,所述可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1-4任一所述的方法。