数据写入方法及装置制造方法及图纸

技术编号:11994178 阅读:148 留言:0更新日期:2015-09-02 22:25
本发明专利技术公开了一种数据写入方法及装置,在上述方法中,在执行写I/O操作将数据写入磁盘之前,对写条带信息进行存储,其中,写条带信息包括:条带的位置信息、RAID写模式、数据的地址信息以及数据;在将数据写入磁盘的过程中发生异常时,采用写条带信息对条带的校验一致性进行恢复。根据本发明专利技术提供的技术方案,提高了在执行写I/O操作过程中写入磁盘数据的准确性。

【技术实现步骤摘要】

本专利技术涉及计算机领域,具体而言,涉及一种数据写入方法及装置
技术介绍
目前,在相关技术中,RAID5或RAID6采用异或校验值来确保条带的数据冗余性。在一个冗余条带中既可以包含用户的有效数据又可以包含上述有效数据的校验值,每次写操作都需要同时更新条带的数据和校验值。如果在执行写操作时突然发生掉电情况导致写操作失败,那么会破坏该条带的校验一致性。而如果不对这种错误采取任何补救措施,仍然假设条带是一致的,那么后面陆续写入的数据将会使得条带的数据越写越坏。当一块磁盘失效导致RAID5降级后,若希望读取该失效磁盘上的数据,则必须利用RAID5的条带校验规则计算出上述数据。RAID5的条带校验通常建立在条带一致的基础上,而如果该条带缺乏一致性,将会导致计算出的数据与期望不符,这就是所谓的RAID5、RAID6的write-hole问题。图1是根据相关技术的RAID5发生write-hole问题的示意图。如图1所示,初始时条带具有冗余性,即Pl=Dl ? D2 ? D3 ? D4,然而在写入Al和P2的过程中,系统发生掉电,从而导致仅写入了部分数据,此时,Y!=X ? D2 ? D3 ? D4,条带就此失去了校验一致性。在当前情况下,如果其中一块磁盘发生故障,例如:D2盘发生故障,那么在对D2盘访问时,需要通过D2=X ? D3 ? D4 ? Y的计算得出结果。而由于之前发生的异常导致X ? D2 ? D3 ? D4 ? Y!=0,因而,计算出的D2与期望不符,即读取的数据是错误的。对于上述问题,相关技术中提供了如下解决方案:Linux内核可以通过位图记录正在访问的条带信息,采用先写入位图再写入数据的方式。在掉电后系统恢复上电时,读取位图信息,对可能存在不一致的条带进行恢复操作。使图1中所示的Y=X ? D2 ? D3 ? D4。然而,采用上述Linux内核的解决方案,仅能减少RAID5、RAID6数据发生错误的概率,但却不能完全解决因为掉电而产生的write-hole问题。综上所述,在系统发生掉电后,在RAID条带尚未完成修复之如,如果其中一块成员磁盘发生故障或者被拔走,那么条带修复将会因为缺少一块数据磁盘而无法进行。此时,若执行重构读取操作,则读取出的数据就是错误的。另外,在其中一块磁盘发生故障后,若执行降级写入操作,而恰巧在写入的过程中发生掉电,由于对发生故障的磁盘进行了更换,因此将无法重构出正确的数据。
技术实现思路
本专利技术提供了一种数据写入方法及装置,以至少解决相关技术中因RAID5或RAID6中的write-hole问题会导致条带校验不一致,从而影响后续操作的问题。根据本专利技术的一个方面,提供了一种数据写入方法。根据本专利技术实施例的包括:在执行写输入/输出(I/O)操作将数据写入磁盘之前,对写条带信息进行存储,其中,写条带信息包括:条带的位置信息、RAID写模式、数据的地址信息以及数据;在将数据写入磁盘的过程中发生异常时,采用写条带信息对条带的校验一致性进行恢复。优选地,在采用写条带信息对条带的校验一致性进行恢复之后,还包括:在执行写I/o操作成功后,对存储的写条带信息进行删除。优选地,对写条带信息进行存储包括:将写条带信息存储在第一节点的内存中;经由在第一节点与第二节点之间的数据镜像通道将写条带信息镜像至第二节点中。优选地,对写条带信息进行存储包括:在本地磁盘上划分存储空间;将写条带信息保存至存储空间。优选地,采用写条带信息对条带的校验一致性进行恢复包括:确定在将数据写入磁盘的过程中发生异常;读取已经存储的写条带信息,并根据位置信息、RAID写模式、地址信息以及数据对条带的校验一致性进行恢复;继续执行写I/O操作。优选地,对存储的写条带信息进行删除包括:向上层主机返回成功执行写I/O操作的结果;删除在第一节点上保存的写条带信息;经由数据镜像通道删除在第二节点上存储的写条带信息。优选地,对存储的写条带信息进行删除包括:向上层主机返回成功执行写I/O操作的结果;删除在存储空间上保存的写条带信息。根据本专利技术的另一方面,提供了一种数据写入装置。根据本专利技术实施例的数据写入装置包括:存储模块,用于在执行写输入输出I/O操作将数据写入磁盘之前,对写条带信息进行存储,其中,写条带信息包括:条带的位置信息、RAID写模式、数据的地址信息以及数据;恢复模块,用于在将数据写入磁盘的过程中发生异常时,采用写条带信息对条带的校验一致性进行恢复。优选地,上述装置还包括:删除模块,用于在执行写I/O操作成功后,对存储的写条带信息进行删除。优选地,存储模块包括:第一存储单元,用于将写条带信息存储在第一节点的内存中;第二存储单元,用于经由在第一节点与第二节点之间的数据镜像通道将写条带信息镜像至第二节点中。优选地,存储模块包括:划分单元,用于在本地磁盘上划分存储空间;第三存储单元,用于将写条带信息保存至存储空间。优选地,恢复模块包括:确定单元,用于确定在将数据写入磁盘的过程中发生异常;读取单元,用于读取已经存储的写条带信息,并根据位置信息、RAID写模式、地址信息以及数据对条带的校验一致性进行恢复;执行单元,用于继续执行写I/O操作。优选地,删除模块包括:第一反馈单元,用于向上层主机返回成功执行写I/O操作的结果;第一删除单元,用于删除在第一节点上保存的写条带信息;第二删除单元,用于经由数据镜像通道删除在第二节点上存储的写条带信息。优选地,删除模块包括:第二反馈单元,用于向上层主机返回成功执行写I/O操作的结果;第三删除单元,用于删除在存储空间上保存的写条带信息。通过本专利技术实施例,采用在执行写I/O操作将数据写入磁盘之前,对写条带信息(包括:数据在条带上写入的位置信息、RAID写模式、数据的地址信息以及数据)进行存储;在将数据写入磁盘的过程中发生异常时,可以采用该写条带信息对条带的校验一致性进行恢复,由此解决了相关技术中因RAID5或RAID6中的write-hole问题会导致条带校验不一致,从而影响后续操作的问题,进而提高了在执行写I/O操作过程中写入磁盘数据的准确性。【附图说明】此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是根据相关技术的RAID5发生write-hole问题的示意图;图2是根据本专利技术实施例的数据写入方法的流程图;图3是根据本专利技术优选实施例一的RAID5的条带写入操作示意图;图4是根据本专利技术优选实施例二的RAID5的条带写入操作示意图;图5是根据本专利技术优选实施例三的RAID5的条带写入操作示意图;图6是根据本专利技术实施例的数据写入装置的结构框图;图7是根据本专利技术优选实施例的数据写入装置的结构框图;图8是根据本专利技术优选实施例一的存储系统架构的示意图;图9是根据本专利技术优选实施例一的write-hole恢复流程的示意图;图10是根据本专利技术优选实施例二的存储系统架构的示意图;图11是根据本专利技术优选实施例二的write-hole恢复流程的示意图。【具体实施方式】[0039当前第1页1 2 3 4 本文档来自技高网
...

【技术保护点】
一种数据写入方法,其特征在于,包括:在执行写输入/输出I/O操作将数据写入磁盘之前,对写条带信息进行存储,其中,所述写条带信息包括:条带的位置信息、RAID写模式、所述数据的地址信息以及所述数据;在将所述数据写入所述磁盘的过程中发生异常时,采用所述写条带信息对所述条带的校验一致性进行恢复。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘卯银
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东;44

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

1