用于I/O控制的方法、装置以及计算机可读介质制造方法及图纸

技术编号:24089165 阅读:39 留言:0更新日期:2020-05-09 07:18
本公开的实施例提供了用于I/O控制的方法、装置以及计算机可读介质。该方法包括响应于接收到I/O请求,针对I/O请求涉及的独立冗余盘阵列(RAID)中的条带,检测第一组信息位。RAID建立在由多个盘划分而来的多个盘切片上,条带包括多个区段,第一组信息位中的每个信息位指示条带中的一个对应区段所在的盘切片是否处于故障状态。该方法还包括基于第一组信息位,确定条带中处于故障状态的第一组区段和未处于故障状态的第二组区段。该方法进一步包括针对第二组区段执行I/O请求而不针对第一组区段执行I/O请求。本发明专利技术的实施例能够简化I/O控制中信息位的存储、支持针对RAID的降级条带写请求、并且提升执行I/O控制的处理器的性能。

Methods, devices and computer readable media for I / O control

【技术实现步骤摘要】
用于I/O控制的方法、装置以及计算机可读介质
本公开的实施例涉及数据存储领域,并且更具体地,涉及用于I/O控制的方法、装置以及计算机可读介质。
技术介绍
独立磁盘冗余阵列(RAID)技术是一种数据存储虚拟化技术。根据该虚拟化技术,可以在多个物理存储盘上建立一个或多个RAID,以用于提供数据冗余、性能提升等多种特性。一些传统RAID在盘的级别上均匀写入数据。这样的系统可能存在盘管理、I/O控制等多个方面的缺陷。随着RAID技术的发展,已经提出了一种新的RAID技术。该RAID在盘的切片级别上而不是在盘的级别上执行数据读取和写入。根据这种技术,多个盘中的每个盘被划分为多个盘切片。基于这些盘切片建立的RAID的每个条带被分配一定数目的区段,并且RAID的全部条带所包括的区段在多个盘切片上基本均匀分布。通过以盘的切片为单位来创建RAID,实现了更灵活的盘管理和I/O控制、提高了系统的运行性能。然而,尽管RAID技术不断发展,在RAID中仍然需要更优化的I/O控制方案。
技术实现思路
本公开的实施例提供了一种改进的用于I/O控制的方案。在本公开的第一方面中,提供了一种用于I/O控制的方法。该方法包括:响应于接收到I/O请求,针对该I/O请求涉及的独立冗余盘阵列(RAID)中的条带,检测第一组信息位,该RAID建立在由多个盘划分而来的多个盘切片上,该条带包括多个区段,该第一组信息位中的每个信息位指示该条带中的一个对应区段所在的盘切片是否处于故障状态;基于该第一组信息位,确定该条带中处于该故障状态的第一组区段和未处于该故障状态的第二组区段;以及针对该第二组区段执行该I/O请求而不针对该第一组区段执行该I/O请求。在本公开的第二方面中,提供了一种用于I/O控制的装置。该装置包括处理器以及与该处理器耦合的存储器,该存储器具有存储于其中的指令,该指令在被处理器执行时使该装置执行动作,该动作包括:响应于接收到I/O请求,针对该I/O请求涉及的独立冗余盘阵列(RAID)中的条带,检测第一组信息位,该RAID建立在由多个盘划分而来的多个盘切片上,该条带包括多个区段,该第一组信息位中的每个信息位指示该条带中的一个对应区段所在的盘切片是否处于故障状态;基于该第一组信息位,确定该条带中处于该故障状态的第一组区段和未处于该故障状态的第二组区段;以及针对该第二组区段执行该I/O请求而不针对该第一组区段执行该I/O请求。在本公开的第三方面中,提供了一种计算机可读介质,其上存储有计算机可读指令,计算机可读指令在被执行时使设备:响应于接收到I/O请求,针对该I/O请求涉及的独立冗余盘阵列(RAID)中的条带,检测第一组信息位,该RAID建立在由多个盘划分而来的多个盘切片上,该条带包括多个区段,该第一组信息位中的每个信息位指示该条带中的一个对应区段所在的盘切片是否处于故障状态;基于该第一组信息位,确定该条带中处于该故障状态的第一组区段和未处于该故障状态的第二组区段;以及针对该第二组区段执行该I/O请求而不针对该第一组区段执行该I/O请求。提供
技术实现思路
部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。
技术实现思路
部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。附图说明通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。图1示出了传统的用于操作存储系统的架构的示意图;图2A至图2C示出了在RRS中各个盘的盘切片处于不同状态时位置信息和组标识的变化的示意图;图3示出了本公开的实施例可以在其中被实现的架构的示意图;图4示出了根据本公开的实施例的I/O控制的方法的流程图;图5示出了根据本公开的实施例的待执行I/O请求的RAID及其盘切片信息的示意图;图6示出了根据本公开的实施例的在I/O请求为写请求时I/O控制的另一方法的流程图;图7A至图7D示出了根据本公开的实施例的在图5的RAID结构下的RAID、盘切片信息和第二组信息位的变化的示意图;图8A和图8B示出了根据本公开的实施例的在I/O请求为读请求时执行读请求的方法的流程图;图9A和图9B示出了根据本公开的实施例的在图5的RAID结构下的RAID、盘切片信息和第二组信息位的示意图;以及图10示出了可以用来实施本公开的实施例的示例设备的示意性框图。具体实施方式下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。本文所述的RAID技术建立在由多个盘划分而来的多个盘切片上,其中每个盘由多个盘切片组成。在对RAID执行I/O请求时,以条带的形式跨RAID中的多个盘切片执行I/O请求。条带包括多个区段,其中不同的区段处于不同的盘切片上。在执行I/O请求时,跨RAID中的全部盘切片的一个条带(其包括每个盘切片中的各一个区段)执行的I/O请求可以被称为全条带I/O请求,这表示针对RAID中的所有盘切片执行了本次I/O请求。在其他情况下,跨RAID中的部分盘切片的一个条带执行的I/O请求可以被称为降级条带I/O请求,这表示针对RAID中的部分盘切片执行了本次I/O请求。图1示出了传统的用于操作存储系统的架构100的示意图。架构100包括存储系统130、记录器140、配置调试工具150、映射器160’、高速缓存170和命名空间180。存储系统130存储有用户数据,并且为架构100中的其他部件(诸如图1中的映射器160’、记录器140和配置调试工具150)提供I/O接口。存储系统130的底层为切片池102,切片池102管理存储系统130中的所有盘。切片池102中的盘由图1中的附图标记104所图示。每个盘104均被划分为多个固定大小的盘切片。在图1中图示了一个盘104包括八个盘切片,这仅仅是为了图示清楚的目的,并且在一些实现中一个盘104可以包括其他数目的盘切片。在一些实现中,每个盘切片的大小为4GB。切片池102中的各个盘104均被集合到不同的RAID弹性集(RAIDResilienceSet,RRS)108-1、108-2…108-N(为了简化的目的,在下文中,各个RRS被统称或分别称为RRS108)。在本文中,RRS被用于包括有限数目的盘104,以使得在该RRS中的盘出现故障时,仅从该RRS中重新分本文档来自技高网
...

【技术保护点】
1.一种用于I/O控制的方法,包括:/n响应于接收到I/O请求,针对所述I/O请求涉及的独立冗余盘阵列(RAID)中的条带,检测第一组信息位,所述RAID建立在由多个盘划分而来的多个盘切片上,所述条带包括多个区段,所述第一组信息位中的每个信息位指示所述条带中的一个对应区段所在的盘切片是否处于故障状态;/n基于所述第一组信息位,确定所述条带中处于所述故障状态的第一组区段和未处于所述故障状态的第二组区段;以及/n针对所述第二组区段执行所述I/O请求而不针对所述第一组区段执行所述I/O请求。/n

【技术特征摘要】
1.一种用于I/O控制的方法,包括:
响应于接收到I/O请求,针对所述I/O请求涉及的独立冗余盘阵列(RAID)中的条带,检测第一组信息位,所述RAID建立在由多个盘划分而来的多个盘切片上,所述条带包括多个区段,所述第一组信息位中的每个信息位指示所述条带中的一个对应区段所在的盘切片是否处于故障状态;
基于所述第一组信息位,确定所述条带中处于所述故障状态的第一组区段和未处于所述故障状态的第二组区段;以及
针对所述第二组区段执行所述I/O请求而不针对所述第一组区段执行所述I/O请求。


2.根据权利要求1所述的方法,其中所述I/O请求为读请求,针对所述第二组区段执行所述I/O请求包括:
针对所述条带检测第二组信息位,所述第二组信息位中的每个信息位指示所述条带中的一个对应区段所在的盘切片是否包含有效数据;
基于所述第二组信息位,确定所述第二组区段中包含所述有效数据的第三组区段和不包含所述有效数据的第四组区段;以及
针对所述第三组区段执行所述读请求而不针对所述第四组区段执行所述读请求。


3.根据权利要求2所述的方法,其中:
所述第二组信息位基于与所述读请求之前的写请求相关联的数据是否被成功写入盘切片而被确定。


4.根据权利要求1所述的方法,其中所述I/O请求为读请求,针对所述第二组区段执行所述I/O请求包括:
针对所述条带检测第三组信息位,所述第三组信息位中的每个信息位指示所述条带中的一个对应区段所在的盘切片是否处于新盘重建状态;
基于所述第三组信息位,确定所述第二组区段中处于所述新盘重建状态的第五组区段和未处于所述新盘重建状态的第六组区段;以及针对所述第六组区段执行所述读请求而不针对所述第五组区段执行所述读请求。


5.根据权利要求1所述的方法,其中所述I/O请求为写请求,所述方法进一步包括:
检测与所述写请求相关联的数据是否被成功写入所述第二组区段;
响应于确定所述数据未被成功写入所述第二组区段中的至少一个区段,更新所述第一组信息位以将所述至少一个区段所在的至少一个盘切片相对应的信息位更新为指示所述至少一个盘切片处于所述故障状态;以及
基于更新后的所述第一组信息位来重新执行所述写请求。


6.一种用于I/O控制的装置,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述装置执行动作,所述动作包括:
响应于接收到I/O请求,针对所述I/O请求涉及的独立冗余盘阵列(RAID)中的条带,检测第一组信息位,所述RAID建立在由多个盘划分而来的多个盘切片上,所述条带包括多个区段,所述第一组信息位中的每个信息位指示所述条带中的一个对应区段所在的盘切片是否处于故障状态;
基于所述第一组信息位,确定所述条带中处于所述故障状态的第一组区段和未处于所述故障状态的第二组区段;以及
针对所述第二组区段执行所述I/O请求而不针对所述第一组区段执行所述I/O请求。


7.根据权利要求6所述的装置,其中所述I/O请求为读请求,针对所述第二组区段执行所述I/O请求包括:
针对所述条带检测第二组信息位,所述第二组信息位中的每个信息位指示所述条带中的一个对应区段所在的盘切片是否包含有效数据;
基于所述第二组信息位,确定所述第二组区段中包含所述有效数据的第三组区段和不包含所述有效数据的第四组区段;以及
针对所述第三组区段执行所述读请求而不针对所述第四组区段执行所述读请求。


8.根据权利...

【专利技术属性】
技术研发人员:韩耕康剑斌董继炳
申请(专利权)人:伊姆西IP控股有限责任公司
类型:发明
国别省市:美国;US

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

1