一种请求处理方法及设备技术

技术编号:9872420 阅读:256 留言:0更新日期:2014-04-04 05:05
本发明专利技术提供一种请求处理方法及设备。其中一种请求处理方法,包括:接收主机发送的第一读请求后,生成RAID系统的第二读请求;为第二读请求分配的读页面;将第二读请求拆分成多个子请求;若任意一个子请求出现慢IO情况,且出现慢IO情况的子请求为冗余子请求,则对冗余子请求进行RAID系统降级读,返回冗余子请求对应的数据。因此,当任意一个子请求出现慢IO情况,且出现慢IO情况的子请求为冗余子请求时,在无需等待该冗余子请求返回的情况下,即可以对冗余子请求进行RAID系统降级读,返回冗余子请求对应的数据,实现了对出现慢IO情况的冗余子请求快速返回数据,解决偶尔出现慢IO的子请求无法快速返回数据的问题。

【技术实现步骤摘要】
一种请求处理方法及设备
本专利技术涉及RAID系统
,特别涉及一种请求处理方法及设备。
技术介绍
在RAID(RedundantArrayofIndependentDisks,独立磁盘冗余阵列)系统中,其接收到一个主机的读请求,会将该读请求拆分成多个子请求下发到RAID系统中的多个硬盘上并行执行,主机读请求的处理时间取决于这些子请求的最大处理时间,当这些拆分的子请求中有一个请求处理时间较慢时可能会导致整个主机读请求超时,进而影响整个RAID系统的性能。当RAID系统的硬盘数目较多时某个硬盘出现慢IO(Input/Output,输入/输出)的概率就会线性增加,其中慢IO是IO响应较慢,其中IO响应是指对子请求的响应。这种慢IO已成为RAID系统问题中较典型的问题。现有解决慢IO的一种方法是增加对慢盘的识别,当发现RAID系统中某个硬盘在一段时间内持续出现IO响应较慢的情况则定义该盘为慢盘,在RAID系统有冗余的情况下可以将该慢盘离线,这样可以排除该慢盘对整个RAID系统的影响。其中RAID系统有冗余是指硬盘可以通过其他硬盘的RAID系统降级读返回数据,将慢盘离线是将该慢盘从RAID系统中去除。虽然这种离线慢盘的方式可以提高主机读请求的处理时间,但是其只适用于在一段时间内连续出现慢IO的硬盘,对于偶发慢IO的硬盘无法进行处理。并且进一步地,直接将慢盘离线可能导致整个RAID系统无法通过RAID系统降级读返回数据,增加双盘失效的风险。另外,RAID系统在将慢盘离线后,需要对其他硬盘的数据进行重构,同样会影响整个RAID系统的IO性能。
技术实现思路
本专利技术所要解决的技术问题是提供一种请求处理方法及设备,用以解决现有技术中无法对偶发慢IO的硬盘处理、将慢盘离线导致的双盘失效以及将慢盘离线导致的影响整个RAID系统的IO性能的问题。技术方案如下:第一方面,本专利技术实施例提供一种请求处理方法,包括:接收主机发送的第一读请求后,生成独立磁盘冗余阵列系统的第二读请求,所述第二读请求用于从所述独立磁盘冗余阵列系统的硬盘中读取数据;为所述第二读请求分配的读页面,其中所述读页面用于存储所述第二读请求对应的数据;将所述第二读请求拆分成多个子请求,其中所拆分的子请求个数取决于所述第二读请求所请求的数据范围,每个所述子请求用于读取对应硬盘中的数据;若任意一个所述子请求出现慢IO情况,且出现慢IO情况的所述子请求为冗余子请求,则对所述冗余子请求进行独立磁盘冗余阵列系统降级读,返回所述冗余子请求对应的数据,其中所述冗余子请求为可通过独立磁盘冗余阵列系统降级读返回数据的子请求。在第一方面的第一种可能实现方式中,所述方法还包括:获取每个所述子请求相对于所述第二读请求的偏移值,并在每个所述子请求中记录各自的偏移值及所述第二读请求的地址。结合第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,对所述冗余子请求进行独立磁盘冗余阵列系统降级读,返回所述冗余子请求对应的数据,包括:通过复制所述冗余子请求的字段信息,生成一个新子请求,其中所述新子请求用于读取所述冗余子请求对应的硬盘中的数据;根据所述新子请求中所述第二读请求的地址,查找到所述第二读请求,并为所述第二读请求重新分配读页面;根据所述新子请求对应的硬盘和其他硬盘之间的冗余关系,对所述其他硬盘相应位置处的数据进行校验计算,得到所述新子请求对应的数据,其中重新分配的读页面为每个所述子请求分配存储数据的子页面,其他硬盘为拆分得到的所有子请求中除所述冗余子请求之外的子请求对应的硬盘。结合第一方面或第一方面的第一种可能实现方式或第一方面的第二种可能实现方式,在第一方面的第三种可能实现方式中,判定处理时间超过阈值的所述子请求出现慢IO情况。结合第一方面的第三种可能实现方式中,在第一方面的第四种可能实现方式中,确定具有冗余标识的所述子请求为冗余子请求。结合第一方面或第一方面的第一种可能实现方式或第一方面的第二种可能实现方式,在第一方面的第五种可能实现方式中,所述方法还包括:释放所述冗余子请求,并回收所述读页面为所述冗余子请求分配的子页面。第二方面,本专利技术实施例还提供一种请求处理设备,包括:接收单元,用于接收主机发送的第一读请求后,生成独立磁盘冗余阵列系统的第二读请求,所述第二读请求用于从所述独立磁盘冗余阵列系统的硬盘中读取数据;分配单元,用于为所述第二读请求分配的读页面,其中所述读页面用于存储所述第二读请求对应的数据;拆分单元,用于将所述第二读请求拆分成多个子请求,其中所拆分的子请求个数取决于所述第二读请求所请求的数据范围,每个所述子请求用于读取对应硬盘中的数据;数据获取单元,用于若任意一个所述子请求出现慢IO情况,且出现慢IO情况的所述子请求为冗余子请求,对所述冗余子请求进行独立磁盘冗余阵列系统降级读,返回所述冗余子请求对应的数据,其中所述冗余子请求为可通过独立磁盘冗余阵列系统降级读返回数据的子请求。在第二方面的第一种可能实现方式中,所述设备还包括:获取单元,用于获取每个所述子请求相对于所述第二读请求的偏移值,并在每个所述子请求中记录各自的偏移值及所述第二读请求的地址。结合第二方面的第一种可能实现方式,在第二方面的第二种可能实现方式中,所述数据获取单元,包括:请求生成子单元,用于当任意一个所述子请求出现慢IO情况,且出现慢IO情况的所述子请求为冗余子请求时,通过复制所述冗余子请求的字段信息,生成一个新子请求,其中所述新子请求用于读取所述冗余子请求对应的硬盘中的数据;查找子单元,用于根据所述新子请求中的所述第二读请求的地址,查找到所述第二读请求,并为所述第二读请求重新分配读页面;数据获得子单元,用于根据所述新子请求对应的硬盘和其他硬盘之间的冗余关系,对所述其他硬盘相应位置处的数据进行校验计算,得到所述新子请求对应的数据,其中重新分配的读页面为每个所述子请求分配存储数据的子页面,其他硬盘为拆分得到的所有子请求中除所述冗余子请求之外的子请求对应的硬盘。结合第二方面或第二方面的第一种可能实现方式或第二方面的第二种可能实现方式,在第二方面的第三种可能实现方式中,所述数据获取单元具体用于:判定处理时间超过阈值的所述子请求出现慢IO情况。结合第二方面的第三种可能实现方式,在第二方面的第四种可能实现方式中,所述数据获取单元进一步具体用于:确定具有冗余标识的所述子请求为冗余子请求。结合第二方面或第二方面的第一种可能实现方式或第二方面的第二种可能实现方式,在第二方面的第五种可能实现方式中,所述设备还包括:回收单元,用于释放所述冗余子请求,并回收所述读页面为所述冗余子请求分配的子页面。与现有技术相比,本专利技术包括以下优点:在本专利技术实施例中,当接收到主机发送的第一读请求后,生成一用于从RAID系统的硬盘中读取数据的第二读请求,并为第二读请求分配读页面。将第二读请求拆分成多个子请求以读取硬盘中的数据,当任意一个子请求出现慢IO情况,且出现慢IO情况的子请求为冗余子请求时,在无需等待该冗余子请求返回的情况下,即可以对冗余子请求进行RAID系统降级读,返回冗余子请求对应的数据,实现了对出现慢IO情况的冗余子请求快速返回数据,解决偶尔出现慢IO的子请求无法快速返回数据的问题。当出现慢IO情本文档来自技高网...
一种请求处理方法及设备

【技术保护点】
一种请求处理方法,其特征在于,包括:接收主机发送的第一读请求后,生成独立磁盘冗余阵列系统的第二读请求,所述第二读请求用于从所述独立磁盘冗余阵列系统的硬盘中读取数据;为所述第二读请求分配的读页面,其中所述读页面用于存储所述第二读请求对应的数据;将所述第二读请求拆分成多个子请求,其中所拆分的子请求个数取决于所述第二读请求所请求的数据范围,每个所述子请求用于读取对应硬盘中的数据;若任意一个所述子请求出现慢IO情况,且出现慢IO情况的所述子请求为冗余子请求,则对所述冗余子请求进行独立磁盘冗余阵列系统降级读,返回所述冗余子请求对应的数据,其中所述冗余子请求为可通过独立磁盘冗余阵列系统降级读返回数据的子请求。

【技术特征摘要】
1.一种请求处理方法,其特征在于,包括:接收主机发送的第一读请求后,生成独立磁盘冗余阵列系统的第二读请求,所述第二读请求用于从所述独立磁盘冗余阵列系统的硬盘中读取数据;为所述第二读请求分配的读页面,其中所述读页面用于存储所述第二读请求对应的数据;将所述第二读请求拆分成多个子请求,其中所拆分的子请求个数取决于所述第二读请求所请求的数据范围,每个所述子请求用于读取对应硬盘中的数据;若任意一个所述子请求出现慢IO情况,且出现慢IO情况的所述子请求为冗余子请求,则对所述冗余子请求进行独立磁盘冗余阵列系统降级读,返回所述冗余子请求对应的数据,其中所述冗余子请求为可通过独立磁盘冗余阵列系统降级读返回数据的子请求;其中,慢IO是指慢输入/输出。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取每个所述子请求相对于所述第二读请求的偏移值,并在每个所述子请求中记录各自的偏移值及所述第二读请求的地址。3.根据权利要求2所述的方法,其特征在于,对所述冗余子请求进行独立磁盘冗余阵列系统降级读,返回所述冗余子请求对应的数据,包括:通过复制所述冗余子请求的字段信息,生成一个新子请求,其中所述新子请求用于读取所述冗余子请求对应的硬盘中的数据;根据所述新子请求中所述第二读请求的地址,查找到所述第二读请求,并为所述第二读请求重新分配读页面;根据所述新子请求对应的硬盘和其他硬盘之间的冗余关系,对所述其他硬盘相应位置处的数据进行校验计算,得到所述新子请求对应的数据,其中重新分配的读页面为每个所述子请求分配存储数据的子页面,其他硬盘为拆分得到的所有子请求中除所述冗余子请求之外的子请求对应的硬盘。4.根据权利要求1至3任意一项所述的方法,其特征在于,判定处理时间超过阈值的所述子请求出现慢IO情况。5.根据权利要求4所述的方法,其特征在于,确定具有冗余标识的所述子请求为冗余子请求。6.根据权利要求1至3任意一项所述的方法,其特征在于,所述方法还包括:释放所述冗余子请求,并回收所述读页面为所述冗余子请求分配的子页面。7.一种请求处理设备,其特征在于,包括:接收单元,用于接收主机发送的第一读请求后,生成独立磁盘冗余阵列系统的第二读...

【专利技术属性】
技术研发人员:宋戈刘绍全曹红强
申请(专利权)人:华为数字技术苏州有限公司
类型:发明
国别省市:

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

1