数据写入方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机领域,具体而言,涉及一种数据写入方法及装置。
【背景技术】
[0002]目前,在相关技术中,RAID5或RAID6采用异或校验值来确保条带的数据冗余性。在一个冗余条带中既可以包含用户的有效数据又可以包含上述有效数据的校验值,每次写操作都需要同时更新条带的数据和校验值。如果在执行写操作时突然发生掉电情况导致写操作失败,那么会破坏该条带的校验一致性。而如果不对这种错误采取任何补救措施,仍然假设条带是一致的,那么后面陆续写入的数据将会使得条带的数据越写越坏。当一块磁盘失效导致RAID5降级后,若希望读取该失效磁盘上的数据,则必须利用RAID5的条带校验规则计算出上述数据。RAID5的条带校验通常建立在条带一致的基础上,而如果该条带缺乏一致性,将会导致计算出的数据与期望不符,这就是所谓的RAID5、RAID6的write-hole问题。
[0003]图1是根据相关技术的RAID5发生write-hole问题的示意图。如图1所示,初始时条带具有冗余性,即Pl=Dl ? D2 ? D3 ? D4,然而在写入Al和P2的过程中,系统发生掉电,从而导致仅写入了部分数据,此时,Y!=X ? D2 ? D3 ? D4,条带就此失去了校验一致性。
[0004]在当前情况下,如果其中一块磁盘发生故障,例如:D2盘发生故障,那么在对D2盘访问时,需要通过D2=X ? D3 ? D4 ? Y的计算得出结果。而由于之前发生的异常导致X ? D2 ? D3 ? D4 ? Y!=0,因而,计算出的D2与期望不符,即读取的数据是错误的。
[0005]对于上述问题,相关技术中提供了如下解决方案:
[0006]Linux内核可以通过位图记录正在访问的条带信息,采用先写入位图再写入数据的方式。在掉电后系统恢复上电时,读取位图信息,对可能存在不一致的条带进行恢复操作。使图1中所示的Y=X ? D2 ? D3 ? D4。
[0007]然而,采用上述Linux内核的解决方案,仅能减少RAID5、RAID6数据发生错误的概率,但却不能完全解决因为掉电而产生的write-hole问题。
[0008]综上所述,在系统发生掉电后,在RAID条带尚未完成修复之如,如果其中一块成员磁盘发生故障或者被拔走,那么条带修复将会因为缺少一块数据磁盘而无法进行。此时,若执行重构读取操作,则读取出的数据就是错误的。另外,在其中一块磁盘发生故障后,若执行降级写入操作,而恰巧在写入的过程中发生掉电,由于对发生故障的磁盘进行了更换,因此将无法重构出正确的数据。
【发明内容】
[0009]本发明提供了一种数据写入方法及装置,以至少解决相关技术中因RAID5或RAID6中的write-hole问题会导致条带校验不一致,从而影响后续操作的问题。
[0010]根据本发明的一个方面,提供了一种数据写入方法。
[0011]根据本发明实施例的包括:在执行写输入/输出(I/O)操作将数据写入磁盘之前,对写条带信息进行存储,其中,写条带信息包括:条带的位置信息、RAID写模式、数据的地址信息以及数据;在将数据写入磁盘的过程中发生异常时,采用写条带信息对条带的校验一致性进行恢复。
[0012]优选地,在采用写条带信息对条带的校验一致性进行恢复之后,还包括:在执行写I/o操作成功后,对存储的写条带信息进行删除。
[0013]优选地,对写条带信息进行存储包括:将写条带信息存储在第一节点的内存中;经由在第一节点与第二节点之间的数据镜像通道将写条带信息镜像至第二节点中。
[0014]优选地,对写条带信息进行存储包括:在本地磁盘上划分存储空间;将写条带信息保存至存储空间。
[0015]优选地,采用写条带信息对条带的校验一致性进行恢复包括:确定在将数据写入磁盘的过程中发生异常;读取已经存储的写条带信息,并根据位置信息、RAID写模式、地址信息以及数据对条带的校验一致性进行恢复;继续执行写I/O操作。
[0016]优选地,对存储的写条带信息进行删除包括:向上层主机返回成功执行写I/O操作的结果;删除在第一节点上保存的写条带信息;经由数据镜像通道删除在第二节点上存储的写条带信息。
[0017]优选地,对存储的写条带信息进行删除包括:向上层主机返回成功执行写I/O操作的结果;删除在存储空间上保存的写条带信息。
[0018]根据本发明的另一方面,提供了一种数据写入装置。
[0019]根据本发明实施例的数据写入装置包括:存储模块,用于在执行写输入输出I/O操作将数据写入磁盘之前,对写条带信息进行存储,其中,写条带信息包括:条带的位置信息、RAID写模式、数据的地址信息以及数据;恢复模块,用于在将数据写入磁盘的过程中发生异常时,采用写条带信息对条带的校验一致性进行恢复。
[0020]优选地,上述装置还包括:删除模块,用于在执行写I/O操作成功后,对存储的写条带信息进行删除。
[0021]优选地,存储模块包括:第一存储单元,用于将写条带信息存储在第一节点的内存中;第二存储单元,用于经由在第一节点与第二节点之间的数据镜像通道将写条带信息镜像至第二节点中。
[0022]优选地,存储模块包括:划分单元,用于在本地磁盘上划分存储空间;第三存储单元,用于将写条带信息保存至存储空间。
[0023]优选地,恢复模块包括:确定单元,用于确定在将数据写入磁盘的过程中发生异常;读取单元,用于读取已经存储的写条带信息,并根据位置信息、RAID写模式、地址信息以及数据对条带的校验一致性进行恢复;执行单元,用于继续执行写I/O操作。
[0024]优选地,删除模块包括:第一反馈单元,用于向上层主机返回成功执行写I/O操作的结果;第一删除单元,用于删除在第一节点上保存的写条带信息;第二删除单元,用于经由数据镜像通道删除在第二节点上存储的写条带信息。
[0025]优选地,删除模块包括:第二反馈单元,用于向上层主机返回成功执行写I/O操作的结果;第三删除单元,用于删除在存储空间上保存的写条带信息。
[0026]通过本发明实施例,采用在执行写I/O操作将数据写入磁盘之前,对写条带信息(包括:数据在条带上写入的位置信息、RAID写模式、数据的地址信息以及数据)进行存储;在将数据写入磁盘的过程中发生异常时,可以采用该写条带信息对条带的校验一致性进行恢复,由此解决了相关技术中因RAID5或RAID6中的write-hole问题会导致条带校验不一致,从而影响后续操作的问题,进而提高了在执行写I/O操作过程中写入磁盘数据的准确性。
【附图说明】
[0027]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0028]图1是根据相关技术的RAID5发生write-hole问题的示意图;
[0029]图2是根据本发明实施例的数据写入方法的流程图;
[0030]图3是根据本发明优选实施例一的RAID5的条带写入操作示意图;
[0031]图4是根据本发明优选实施例二的RAID5的条带写入操作示意图;
[0032]图5是根据本发明优选实施例三的RAID5的条带写入操作示意图;
[0033]图6是根据本发明实施例的数据写入装置的结构框图;
[0034]图7是根据本发明优选实施例的数据写入装置的结构框图;
[0035]图8是根据本发明优选实施例一的存储系统架构的示意图;
[0036]图9是根据本发明优选实施例一的write-hole恢复流程的示意图;
[0037]图10是根据本发明优选实施例二的存储系统架构的示意图;
[0038]图11是根据本发明优选实施例二的write-hole恢复流程的示意图。
【具体实施方式】
[0039
]下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0040]图2是根据本发明实施例的数据写入方法的流程图。如图2所示,该方法可以包括以下处理步骤:
[0041]步骤S202:在执行写I/O操作将数据写入磁盘之前,对写条带信息进行存储,其中,写条带信息包括:条带的位置信息、RAID写模式、数据的地址信息以及数据;
[0042]步骤S204:在将数据写入磁盘的过程中发生异常时,采用写条带信息对条带的校验一致性进行恢复。
[0043]相关技术中,因RAID5或RAID6中的write-hole问题会导致条带校验不一致,从而影响后续操作的问题。采用如图2所示的方法,在执行写1/0操作将数据写入磁盘之前,对写条带信息(包括:数据在条带上写入的位置信息、RAID写模式、数据的地址信息以及数据)进行存储;在将数据写入磁盘的过程中发生异常时,采用该写条带信息对条带的校验一致性进行恢复,因为在执行写1/0操作的过程中始终保持条带的校验一致性,由此解决了相关技术中因RAID5或RAID6中的write-hole问题会导致条带校验不一致,从而影响后续操作的问题,进而提高了在执行写1/0操作过程中写入磁盘数据的准确性。
[0044]需要说明的是,RAID5处理上层下发的写入数据1/0,最终都是分布到条带上完成的。条带上各子1/0在向磁盘写入数据期间,RAID5不会再处理上层下发的分配至同一条带的1/0,直到条带上的全部子1/0均处理完成,即条带的处理可以看作是在条带锁的保护情况下完成的。条带子1/0在向磁盘写入数据的过程中,与条带对应的磁盘数据不满足RAID的校验一致性,此时如果系统发生掉电,即会产生write-hole问题。而当系统再次上电后,首先需要恢复上述条带的一致性,然后才能够向上层提供服务。
[0045]在优选实施过程中,本发明实施例所提供的技术方案需要遵循以下设计原则:
[0046](I)必须保护条带中未被修改的数据,而修改失败的数据可以不对其进行保护。
[0047](2)在每执行一次数据写入操作后,条带均需要满足校验一致性。如果不满足校验一致性,则首先需要对条带不满足校验一致性进行修复而后再执行下一次写I/o操作。
[0048]RAID5的条带写入操作可以根据写I/O的模式不同具体分为以下三种方式:
[0049]方式一、满条带写入数据(FULL):
[0050]图3是根据本发明优选实施例一的RAID5的条带写入操作示意图。如图3所示,上层的母I/o被拆分成的子1/0,全部覆盖到条带上的各个磁盘。对于此种满条带写入数据的方式,条带中的所有磁盘都将被写入数据,从而不存在未被修改的数据,因此,只需要保护条带的一致性即可。当需要对write-hole问题进行修复时,首先读取各个磁盘(在图3中包括:1号、2号、3号以及4号磁盘)的数据,然后重新计算校验值P并将计算结果写入校验盘。存储系统只需要持久化存储该条带的信息,而不需要存储任何数据信息。
[0051]方式二、重构写入数据(RCW):
[0052]图4是根据本发明优选实施例二的RAID5的条带写入操作示意图。如图4所示,上层的母I/o被拆分成的子1/0,需要将数据写入磁盘1、2和3,此时,需要读取磁盘4的数据D4,然后与磁盘I的数据D1、磁盘2的数据D2以及磁盘3的数据D3计算得到校验值P,最后重新向磁盘I写入数据D1、向磁盘2写入数据D2、向磁盘3写入数据D3以及向存储校验值的磁盘写入校验值P。
[0053]对于RCW这种方式,需要保护未修改的D4数据,当需要对write-hole问题进行修复时,读取磁盘I的数据D1、磁盘2的数据D2以及磁盘3的数据D3,与持久化保护的D4计算出新的校验值P写入校验盘。存储系统不仅需要持久化保存该条带的信息,还需要持久化保存D4数据信息。
[0054]需要说明的是,满条带写入数据可以看做是一种特殊的RCW。
[0055]方式三、读改写(RMW):
[0056]图5是根据本发明优选实施例三的RAID5的条带写入操作示意图。如图5所示,上层的母I/o被拆分成的子1/0,需要将数据写入磁盘1,这时首先需要读取磁盘I和校验盘原先存储的数据Dl和P,与当前待写入的数据D1’计算校验值P’,然后将D1’写入磁盘I以及将P’写入校验盘。
[0057]对于RMW这种方式,需要保护未修改的D2、D3、D4数据,但这种保护需要通过持久化原先存储的数据Dl和校验值P来完成,当需要对write-hole问题进行修复时,将已持久化的原先存储的数据Dl和校验值P写入磁盘中即可。存储系统不仅需要持久化保存该条带的信息,还需要持久化保存Dl和P的数据信息。
[0058]在此种方式中需要持久化两种数据:其一是条带信息,用来记录条带在其所属RAID中的位置,写入数据的方式以及条带磁盘数据的页面地址等;其二是页面数据,这些页面数据用于在对write-hole问题进行修复时使用。
[0059]优选地,在步骤S204,采用写条带信息对条带的校验一致性进行恢复之后,还可以包括以下处理:
[0060]步骤S1:在执行写I/O操作成功后,对存储的写条带信息进行删除。即在执行写I/o操作成功后,写条带信息就将无效,因此,为了节省存储空间有必要将其删除。
[0061]优选地,在步骤S202中,对写条带信息进行存储可以包括以下操作:
[0062]步骤S2:将写条带信息存储在第一节点的内存中;
[0063]步骤S3:经由在第一节点与第二节点之间的数据镜像通道将写条带信息镜像至第二节点中。
[0064]在优选实施例中,为了解决RAID的write-hole问题,可以采用双控存储系统,在双控存储系统之间存在用于内存的镜像数据保护的数据通道,其中,在创建RAID时,第一节点为RAID处理的主节点,并在主节点上下发写入数据请求。而在执行写I/O操作将数据写入磁盘之前,可以将与写I/O对应的条带位置信息、写I/O的RAID写模式、需要保存的页面地址(即数据在内存中的地址信息)和页面数据(即内存中的数据)存储在第一节点的内存中,并通过节点间的数据镜像通道镜像至第二节点。
[0065]优选地,在步骤S202中,对写条带信息进行存储可以包括以下步骤:
[0066]步骤S4:在本地磁盘上划分存储空间;
[0067]步骤S5:将写条带信息保存至存储空间。
[0068]在优选实施例中,为了解决RAID的write-hole问题,还可以采用基于单节点存储系统或者双节点存储系统运行在单节点状态。在本存储系统管理的磁盘上专门划分出一部分空间用来保存write-hole信息。在执行写I/O操作将数据写入磁盘之前,可以先将write-hole信息保存至特意为write-hole保留的空间上。然后将写1/0操作对应的条带位置信息,写1/0操作的RAID写模式,需要保存的页面地址和页面数据存储在存储节点管理的磁盘上。
[0069]优选地,在步骤S204中,采用写条带信息对条带的校验一致性进行恢复可以包括以下操作:
[0070]步骤S6:确定在将数据写入磁盘的过程中发生异常;
[0071]步骤S7:读取已经存储的写条带信息,并根据位置信息、RAID写模式、地址信息以及数据对条带的校验一致性进行恢复;
[0072]步骤S8:继续执行写1/0操作。
[0073]优选地,在步骤SI中,对存储的写条带信息进行删除可以包括以下步骤:
[0074]步骤Sll:向上层主机返回成功执行写1/0操作的结果;
[0075]步骤S12:删除在第一节点上保存的写条带信息;
[0076]步骤S13:经由数据镜像通道删除在第二节点上存储的写条带信息。
[0077]在优选实施例中,当将数据写入磁盘的写1/0操作执行完毕后,删除在第一节点上存储的writ
e-hole信息,向主机返回写1/0操作成功,然后,异步删除镜像节点(即第二节点)上存储的write-hole信息。
[0078]优选地,在步骤SI中,对存储的写条带信息进行删除可以包括以下操作:
[0079]步骤S14:向上层主机返回成功执行写1/0操作的结果;
[0080]步骤S15:删除在存储空间上保存的写条带信息。
[0081]在优选实施例中,当将数据写入磁盘的写1/0操作执行完毕后,向主机返回写1/0操作成功。然后异步删除保留空间上存储的write-hole信息。
[0082]图6是根据本发明实施例的数据写入装置的结构框图。如图6所示,该数据写入装置可以包括:存储模块10,用于在执行写输入输出I/O操作将数据写入磁盘之前,对写条带信息进行存储,其中,写条带信息包括:条带的位置信息、RAID写模式、数据的地址信息以及数据,恢复模块20,用于在将数据写入磁盘的过程中发生异常时,采用写条带信息对条带的校验一致性进行恢复。
[0083]采用如图6所示的装置,解决了相关技术中因RAID5或RAID6中的write-hole问题会导致条带校验不一致,从而影响后续操作的问题,进而提高了在执行写I/O操作过程中写入磁盘数据的准确性。
[0084]优选地,如图7所示,上述装置还可以包括:删除模块30,用于在执行写I/O操作成功后,对存储的写条带信息进行删除。
[0085]优选地,如图7所示,存储模块10可以包括:第一存储单元100,用于将写条带信息存储在第一节点的内存中;第二存储单元102,用于经由在第一节点与第二节点之间的数据镜像通道将写条带信息镜像至第二节点中。
[0086]优选地,如图7所示,存储模块10可以包括:划分单元104,用于在本地磁盘上划分存储空间;第三存储单元106,用于将写条带信息保存至存储空间。
[0087]优选地,如图7所示,上述恢复模块20可以包括:确定单元200,用于确定在将数据写入磁盘的过程中发生异常;读取单元202,用于读取已经存储的写条带信息,并根据位置信息、RAID写模式、地址信息以及数据对条带的校验一致性进行恢复;执行单元204,用于继续执行写I/O操作。
[0088]优选地,如图7所示,删除模块30可以包括:第一反馈单元300,用于向上层主机返回成功执行写I/o操作的结果;第一删除单元302,用于删除在第一节点上保存的写条带信息;第二删除单元304,用于经由数据镜像通道删除在第二节点上存储的写条带信息。
[0089]优选地,如图7所示,删除模块30可以包括:第二反馈单元306,用于向上层主机返回成功执行写I/o操作的结果;第三删除单元308,用于删除在存储空间上保存的写条带信息。
[0090]下面将结合以下两个优选实施方式对上述优选实施过程作进一步的描述。
[0091]优选实施例一、
[0092]本发明优选实施例提供了一种针对RAID的write-hole问题的解决方案,其基于双控存储系统,在双控存储系统之间存在用于内存的镜像数据保护的数据通道,其中,在创建RAID时,第一节点为RAID处理的主节点,并在主节点上下发写入数据请求。而在执行写I/O操作将数据写入磁盘之前,可以将与写I/O对应的条带位置信息、写I/O的RAID写模式、需要保存的页面地址和页面数据存储在第一节点的内存中,并通过节点间的数据镜像通道镜像至第二节点。当将数据写入磁盘的写I/O操作执行完毕后,删除在第一节点上存储的write-hole信息,向主机返回写I/O操作成功,然后,异步删除镜像节点(即第二节点)上存储的write-hole信息。
[0093]在该优选实施例中,上述解决方案的实现依赖于图8所示的存储系统架构。图8是根据本发明优选实施例一的存储系统架构的示意图。如图8所示,互为备份的双控节点上均设置有RAID处理模块、write-hole处理模块(相当于上述存储模块和删除模块)以及磁盘管理模块,其中,RAID处理模块与write-hole处理模块可以合并为同一个模块。
[0094]下面将结合图8和图9所示的优选实施方式对上述优选实施过程做进一步的描述。
[0095]执行一次写I/O操作可以包括以下处理步骤:
[0096](I) RAID处理模块接收到执行写I/O操作的请求。
[0097](2)RAID处理模块确定写I/O操作的写模式(FULL、RCW或RMW),申请RAID处理需要申请的页面资源,并进行RAID的异或校验计算。在RAID处理完毕后,将写I/O操作交给Write-hole处理模块加以处理。Write-hole处理模块将写I/O操作对应的条带位置信息,写I/O操作的RAID写模式,需要保存的页面地址和页面数据存储在第一节点的内存中。
[0098](3)ffrite-hole处理模块将写I/O操作的RAID写模式,需要保存的页面地址和页面数据通过节点间的镜像通道镜像至第二节点的内存中。
[0099](4)第二节点对上述信息进行存储,然后向第一节点回复响应。
[0100](5) Write-hole模块在接收到回复响应后,向RAID处理模块返回write-hole的处理结果。
[0101](6) RAID处理模块调用磁盘管理模块的接口,执行I/O写盘操作。
[0102](7)磁盘管理模块向RAID处理模块返回I/O写盘结果。
[0103](8) RAID处理模块向上层业务模块返回I/O写盘结果。
[0104](9) RAID处理模块通知write-hole处理模块删除其存储的write-hole信息。
[0105](10) write-hole处理模块通过镜像通道通知第二节点删除对应的镜像write-hole 信息。
[0106]图9是根据本发明优选实施例一的write-hole恢复流程的示意图。如图9所示,当控制器发生掉电后,write-hole恢复流程可以包括以下处理步骤:
[0107](l)write-hole处理模块进行掉电后的恢复处理,将记录的write-hole对应的页面写盘。
[0108](2)磁盘管理模块返回写盘结果。
[0109](3)write-hole处理模块通知RAID处理模块write-hole掉电恢复处理已经完成。
[0110](4) RAID模块开始处理主机1/0。
[0111](5) write-hole处理模块异步通知第二节点删除已经处理的write-hole数据。
[0112]优选实施例二、
[0113]本发明优选实施例提供了一种针对RAID的write-hole问题的解决方案,其基于单节点存储系统或者双节点存储系统运行在单节点状态。在本存储系统管理的磁盘(尽量选择高性能磁盘)上专门划分出一部分空间用来保存write-hole信息。在执行写1/0操作将数据写入磁盘之前,可以先将write-hole信息保存至特意为write-hole保留的空间上。然后将写1/0操作对应的条带位置信息,写1/0操作的RAID写模式,需要保存的页面地址和页面数据存储在存储节点管理的磁盘上。当将数据写入磁盘的写1/0操作执行完毕后,向主机返回写1/0操作成功。然后异步删除保留空间上存储的write-hole信息。
[0114]下面将结合图10和图11所示的优选实施方式对上述优选实施过程做进一步的描述。
[0115]图10是根据本发明优选实施例二的存储系统架构的示意图。如图10所示,执行一次写I/o操作可以包括以下处理步骤:
[0116](I) RAID处理模块接收到执行写I/O操作的请求。
[0117](2)RAID处理模块确定写I/O操作的写模式(FULL、RCW或RMW),申请RAID处理需要申请的页面资源,并进行RAID的异或校验计算。在RAID处理完毕后,将写I/O操作交给Write-hole处理模块加以处理。
[
0118](3)ffrite-hole处理模块将写I/O操作的RAID写模式,需要保存的页面地址和页面数据存储在write-hole的保留空间。
[0119](4)磁盘管理模块返回写处理结果。
[0120](5) Write-hole模块在接收到回复响应后,向RAID处理模块返回write-hole的处理结果。
[0121](6) RAID处理模块调用磁盘管理模块的接口,执行I/O写盘操作。
[0122](7)磁盘管理模块向RAID处理模块返回I/O写盘结果。
[0123](8) RAID处理模块向上层业务模块返回I/O写盘结果。
[0124](9) write-hole处理模块异步删除保留空间上记录的write-hole信息。
[0125]图11是根据本发明优选实施例二的write-hole恢复流程的示意图。如图11所示,当控制器发生掉电后,write-hole恢复流程可以包括以下处理步骤:
[0126](l)write-hole处理模块进行掉电后的恢复处理,首先从磁盘中write-hole的保留空间读取write-hole信息。
[0127](2)磁盘管理模块返回读盘结果。
[0128](3)write-hole处理模块根据读取的write-hole信息将记录的write-hole对应的页面写盘。
[0129](4)磁盘管理模块返回写盘结果。
[0130](5)write-hole处理模块通知RAID处理模块write-hole掉电恢复处理已经完成。
[0131](6) RAID模块开始处理主机1/0。
[0132](7) write-hole处理模块异步删除已经处理的write-hole数据。
[0133]从以上的描述中,可以看出,上述实施例实现了如下技术效果(需要说明的是这些效果是某些优选实施例可以达到的效果):采用本发明实施例所提供的技术方案,在执行写I/o操作将数据写入磁盘之前,对写条带信息(包括:数据在条带上写入的位置信息、RAID写模式、数据在内存中的地址信息以及数据)进行存储,该写条带信息用于在将数据写入磁盘的过程中发生异常时,对条带的校验一致性进行恢复;在执行写1/0操作成功后,对存储的写条带信息进行删除,因为在执行写1/0操作的过程中始终保持条带的校验一致性,由此解决了相关技术中因RAID5或RAID6中的write-hole问题会导致条带校验不一致,从而影响后续操作的问题,进而提高了在执行写1/0操作过程中写入磁盘数据的准确性。
[0134]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0135]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种数据写入方法,其特征在于,包括: 在执行写输入/输出I/o操作将数据写入磁盘之前,对写条带信息进行存储,其中,所述写条带信息包括:条带的位置信息、RAID写模式、所述数据的地址信息以及所述数据;在将所述数据写入所述磁盘的过程中发生异常时,采用所述写条带信息对所述条带的校验一致性进行恢复。2.根据权利要求1所述的方法,其特征在于,在采用所述写条带信息对所述条带的校验一致性进行恢复之后,还包括: 在执行所述写I/O操作成功后,对存储的所述写条带信息进行删除。3.根据权利要求1所述的方法,其特征在于,对所述写条带信息进行存储包括: 将所述写条带信息存储在第一节点的内存中; 经由在所述第一节点与第二节点之间的数据镜像通道将所述写条带信息镜像至所述第二节点中。4.根据权利要求1所述的方法,其特征在于,对所述写条带信息进行存储包括: 在本地磁盘上划分存储空间; 将所述写条带信息保存至所述存储空间。5.根据权利要求3或4所述的方法,其特征在于,采用所述写条带信息对所述条带的校验一致性进行恢复包括: 确定在将所述数据写入所述磁盘的过程中发生异常; 读取已经存储的所述写条带信息,并根据所述位置信息、所述RAID写模式、所述地址信息以及所述数据对所述条带的校验一致性进行恢复; 继续执行所述写I/O操作。6.根据权利要求3所述的方法,其特征在于,对存储的所述写条带信息进行删除包括: 向上层主机返回成功执行所述写I/O操作的结果; 删除在所述第一节点上保存的所述写条带信息; 经由所述数据镜像通道删除在所述第二节点上存储的所述写条带信息。7.根据权利要求4所述的方法,其特征在于,对存储的所述写条带信息进行删除包括: 向上层主机返回成功执行所述写I/O操作的结果; 删除在所述存储空间上保存的所述写条带信息。8.一种数据写入装置,其特征在于,包括: 存储模块,用于在执行写输入/输出I/O操作将数据写入磁盘之前,对写条带信息进行存储,其中,所述写条带信息包括:条带的位置信息、RAID写模式、所述数据的地址信息以及所述数据; 恢复模块,用于在将所述数据写入所述磁盘的过程中发生异常时,采用所述写条带信息对所述条带的校验一致性进行恢复。9.根据权利要求8所述的装置,其特征在于,所述装置还包括: 删除模块,用于在执行所述写I/O操作成功后,对存储的所述写条带信息进行删除。10.根据权利要求8所述的装置,其特征在于,所述存储模块包括: 第一存储单元,用于将所述写条带信息存储在第一节点的内存中; 第二存储单元,用于经由在所述第一节点与第二节点之间的数据镜像通道将所述写条带信息镜像至所述第二节点中。11.根据权利要求8所述的装置,其特征在于,所述存储模块包括: 划分单元,用于在本地磁盘上划分存储空间; 第三存储单元,用于将所述写条带信息保存至所述存储空间。12.根据权利要求10或11所述的装置,其特征在于,所述恢复模块包括: 确定单元,用于确定在将所述数据写入所述磁盘的过程中发生异常; 读取单元,用于读取已经存储的所述写条带信息,并根据所述位置信息、所述RAID写模式、所述地址信息以及所述数据对所述条带的校验一致性进行恢复; 执行单元,用于继续执行所述写I/O操作。13.根据权利要求10所述的装置,其特征在于,所述删除模块包括: 第一反馈单元,用于向上层主机返回成功执行所述写I/o操作的结果; 第一删除单元,用于删除在所述第一节点上保存的所述写条带信息; 第二删除单元,用于经由所述数据镜像通道删除在所述第二节点上存储的所述写条带信息。14.根据权利要求11所述的装置,其特征在于,所述删除模块包括: 第二反馈单元,用于向上层主机返回成功执行所述写I/O操作的结果; 第三删除单元,用于删除在所述存储空间上保存的所述写条带信息。
【专利摘要】本发明公开了一种数据写入方法及装置,在上述方法中,在执行写I/O操作将数据写入磁盘之前,对写条带信息进行存储,其中,写条带信息包括:条带的位置信息、RAID写模式、数据的地址信息以及数据;在将数据写入磁盘的过程中发生异常时,采用写条带信息对条带的校验一致性进行恢复。根据本发明提供的技术方案,提高了在执行写I/O操作过程中写入磁盘数据的准确性。
【IPC分类】G06F11/08, G06F3/06
【公开号】CN104881242
【申请号】CN201410074021
【发明人】刘卯银
【申请人】中兴通讯股份有限公司
【公开日】2015年9月2日
【申请日】2014年2月28日
转载请注明原文地址:https://www.famiwei.com/read-8138830.html