一种识别磁盘异常的方法、装置及分布式存储系统制造方法及图纸

技术编号:26508387 阅读:19 留言:0更新日期:2020-11-27 15:36
本发明专利技术属于分布式存储技术领域,涉及一种识别磁盘异常的方法、装置及分布式存储系统。该方法包括:通过虚拟块设备向内核模块中部署OSD与磁盘的映射关系;当所述OSD读写磁盘时,将接收到的IO请求提交给所述虚拟块设备,在所述虚拟块设备发送所述IO请求后,所述内核模块截获所述IO请求;所述内核模块根据所述映射关系将所述IO请求经SCSI层提交给所述OSD对应的磁盘;当所述IO请求在所述磁盘响应失败时,所述内核模块获取SCSI错误码,并解析所述SCSI错误码;根据所述SCSI错误码的解析结果识别所述磁盘的异常。本发明专利技术提供的识别磁盘异常的方法、装置及分布式存储系统能获取磁盘的SCSI错误码,根据SCSI错误码识别磁盘的异常,从而最大限度的保证了系统稳定运行。

【技术实现步骤摘要】
一种识别磁盘异常的方法、装置及分布式存储系统
本专利技术属于分布式数据存储
,更具体地涉及一种识别磁盘异常的方法、装置及分布式存储系统。
技术介绍
磁盘作为分布式存储系统中数据最终存储的地方,磁盘的故障在存储系统中非常常见,集群中单个或少量磁盘出现故障后如何保证系统业务不受影响,是存储软件必须解决的问题。在分布式存储系统中,当磁盘出现异常情况时,会导致IO请求处理失败,OSD(ObjectStorageDevice,对象存储设备)会收到IO请求失败的响应,该响应一般是针对部分错误码进行简单的重试,而对于大部分错误会触发OSD异常退出。专利技术人在实现本专利技术实施例的过程中,发现相关技术至少存在以下技术问题:1)对于本可以进行容错修复的错误未修复,导致磁盘最终被踢出集群,错误的磁盘当坏盘处理,增加了系统运营成本;2)OSD异常退出触发集群视图变更,会引起IO性能波动;3)OSD异常退出后触发数据重构,影响集群整体的IO性能。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种识别磁盘异常的方法、装置及分布式存储系统,其目的在于准确识别出磁盘的异常情况,以解决系统运营成本高、进程异常退出引起的IO性能波动的技术问题。为实现上述目的,按照本专利技术的一个方面,提供了一种识别磁盘异常的方法,所述方法应用于分布式存储系统,所述分布式存储系统包括至少一台应用主机,所述至少一台应用主机包括内核模块和虚拟块设备,所述方法包括:通过所述虚拟块设备向所述内核模块中部署OSD与磁盘的映射关系;当所述OSD读写磁盘时,将接收到的IO请求提交给所述虚拟块设备,在所述虚拟块设备发送所述IO请求后,所述内核模块截获所述IO请求;所述内核模块根据所述映射关系将所述IO请求经SCSI层提交给所述OSD对应的磁盘;当所述IO请求在所述磁盘响应失败时,所述内核模块获取SCSI错误码,并解析所述SCSI错误码;根据所述SCSI错误码的解析结果识别所述磁盘的异常。可选地,所述内核模块部署于Linux系统内核的BIO层,所述内核模块用于与所述SCSI层进行交互。可选地,所述在所述虚拟块设备发送所述IO请求后,所述内核模块截获所述IO请求,具体包括:在所述虚拟块设备发送所述IO请求至所述Linux系统内核的VFS层时,所述内核模块从所述VFS层截获所述IO请求。可选地,所述根据所述SCSI错误码的解析结果识别所述磁盘的异常,包括:对所述SCSI错误码的解析结果进行分类,并分别处理所述分类的结果;其中,所述分类包括需要重试的IO、需要重置的IO、坏扇区错误以及不可修复错误。可选地,所述方法还包括:获取IO错误次数、IO时延信息以及磁盘SMART信息;根据所述SCSI错误码的解析结果、所述IO错误次数、所述IO时延信息以及所述磁盘SMART信息对所述磁盘进行故障预测;根据所述故障预测的结果对所述磁盘进行预防处理。按照本专利技术的另一方面,提供了一种识别磁盘异常的装置,所述装置应用于分布式存储系统,所述分布式存储系统包括至少一台应用主机,所述至少一台应用主机包括内核模块和虚拟块设备,所述装置包括:信息部署模块,用于通过所述虚拟块设备向所述内核模块中部署OSD与磁盘的映射关系;数据处理模块,用于当所述OSD读写磁盘时,将接收到的IO请求提交给所述虚拟块设备,在所述虚拟块设备发送所述IO请求后,所述内核模块截获所述IO请求;数据提交模块,用于所述内核模块根据所述映射关系将所述IO请求经SCSI层提交给所述OSD对应的磁盘;错误码解析模块,用于当所述IO请求在所述磁盘响应失败时,所述内核模块获取SCSI错误码,并解析所述SCSI错误码;磁盘异常识别模块,用于根据所述SCSI错误码的解析结果识别所述磁盘的异常。可选地,所述内核模块部署于Linux系统内核的BIO层,所述内核模块用于与所述SCSI层进行交互。可选地,所述磁盘异常识别模块具体用于:对所述SCSI错误码的解析结果进行分类,并分别处理所述分类的结果;其中,所述分类包括需要重试的IO、需要重置的IO、坏扇区错误以及不可修复错误。可选地,所述装置还包括:信息获取模块,用于获取IO错误次数、IO时延信息以及磁盘SMART信息;故障预测模块,用于根据所述SCSI错误码的解析结果、所述IO错误次数、所述IO时延信息以及所述磁盘SMART信息对所述磁盘进行故障预测;预处理模块,用于根据所述故障预测的结果对所述磁盘进行预防处理。按照本专利技术的又一方面,提供了一种分布式存储系统,所述分布式存储系统包括:至少一台应用主机;所述至少一台应用主机包括:至少一个处理器;与所述至少一个处理器通信连接的存储器;以及内核模块和虚拟块设备;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够基于所述内核模块和所述虚拟块设备执行如上所述的识别磁盘异常的方法。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,具有如下有益效果:本专利技术实施例提供了一种识别磁盘异常的方法、装置及分布式存储系统,通过增加内核模块和虚拟块设备,获取磁盘的SCSI错误码,根据所述SCSI错误码的解析结果识别出磁盘的异常情况,由此,可以针对不同的错误码在软件层面进行详细处理,最大限度的确保了系统稳定运行;对于真正的硬件故障,也可以主动触发节点隔离,从而避免了进程异常退出引起的IO性能波动、数据重构等问题。附图说明一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。图1是本专利技术实施例提供的一种分布式存储系统的结构示意图;图2是本专利技术实施例提供的一种分布式存储系统中OSD提交IO请求给磁盘的流程示意图;图3是本专利技术实施例提供的一种识别磁盘异常的方法的流程图;图4是本专利技术另一实施例提供的一种识别磁盘异常的方法的流程图;图5是本专利技术实施例提供的一种识别磁盘异常的装置的结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。请参阅图1,图1是本专利技术实施例提供的一种分布式存储系统的结构示意图。所述分布式存储系统100包括至少一台应用主机10,所述应用主机10具体可以是服务器,所述分布式存储系统100可以将多台服务器组成一个超大服务器集群。在该服务器集群中,包括配置中心和存储节点。其中本文档来自技高网...

【技术保护点】
1.一种识别磁盘异常的方法,所述方法应用于分布式存储系统,所述分布式存储系统包括至少一台应用主机,所述至少一台应用主机包括内核模块和虚拟块设备,其特征在于,所述方法包括:/n通过所述虚拟块设备向所述内核模块中部署OSD与磁盘的映射关系;/n当所述OSD读写磁盘时,将接收到的IO请求提交给所述虚拟块设备,在所述虚拟块设备发送所述IO请求后,所述内核模块截获所述IO请求;/n所述内核模块根据所述映射关系将所述IO请求经SCSI层提交给所述OSD对应的磁盘;/n当所述IO请求在所述磁盘响应失败时,所述内核模块获取SCSI错误码,并解析所述SCSI错误码;/n根据所述SCSI错误码的解析结果识别所述磁盘的异常。/n

【技术特征摘要】
1.一种识别磁盘异常的方法,所述方法应用于分布式存储系统,所述分布式存储系统包括至少一台应用主机,所述至少一台应用主机包括内核模块和虚拟块设备,其特征在于,所述方法包括:
通过所述虚拟块设备向所述内核模块中部署OSD与磁盘的映射关系;
当所述OSD读写磁盘时,将接收到的IO请求提交给所述虚拟块设备,在所述虚拟块设备发送所述IO请求后,所述内核模块截获所述IO请求;
所述内核模块根据所述映射关系将所述IO请求经SCSI层提交给所述OSD对应的磁盘;
当所述IO请求在所述磁盘响应失败时,所述内核模块获取SCSI错误码,并解析所述SCSI错误码;
根据所述SCSI错误码的解析结果识别所述磁盘的异常。


2.如权利要求1所述的方法,其特征在于,所述内核模块部署于Linux系统内核的BIO层,所述内核模块用于与所述SCSI层进行交互。


3.如权利要求2所述的方法,其特征在于,所述在所述虚拟块设备发送所述IO请求后,所述内核模块截获所述IO请求,具体包括:
在所述虚拟块设备发送所述IO请求至所述Linux系统内核的VFS层时,所述内核模块从所述VFS层截获所述IO请求。


4.如权利要求1至3任一项所述的方法,其特征在于,所述根据所述SCSI错误码的解析结果识别所述磁盘的异常,包括:
对所述SCSI错误码的解析结果进行分类,并分别处理所述分类的结果;
其中,所述分类包括需要重试的IO、需要重置的IO、坏扇区错误以及不可修复错误。


5.如权利要求4所述的方法,其特征在于,所述方法还包括:
获取IO错误次数、IO时延信息以及磁盘SMART信息;
根据所述SCSI错误码的解析结果、所述IO错误次数、所述IO时延信息以及所述磁盘SMART信息对所述磁盘进行故障预测;
根据所述故障预测的结果对所述磁盘进行预防处理。


6.一种识别磁盘异常的装置,所述装置应用于分布式存储系统,所述分布式存储系统包括至少一台应用主机,所述至少一台应用主机包括内核模块和虚...

【专利技术属性】
技术研发人员:李海静马平川张书东蓝海李庆林
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1