一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于存储管理的方法、电子设备和计算机程序产品与流程

2022-10-26 04:27:29 来源:中国专利 TAG:


1.本公开的实施例一般地涉及数据处理系统,并且更特别地,涉及一种用于存储管理的方法、电子设备和计算机程序产品。


背景技术:

2.在一些存储系统中,脏数据(dirty data)被持久化到非易失性随机访问存储器(nvram)中。一旦该nvram被损坏,被持久化的脏数据将丢失。
3.在nvram无法正常工作的情况下,例如出现nvram掉电时,存储系统将脏页面(dirty page)和相应的页面描述符写入固态盘(ssd)中的盘层。一旦nvram正常工作,可以将这些数据恢复到nvram。在当前的恢复过程中,数据将从ssd的相应盘层直接复制到nvram,而无需进行验证和错误处理。


技术实现要素:

4.本公开的实施例涉及一种用于存储管理的改进方案。
5.在本公开的第一方面,提供了一种用于数据处理的方法。该方法包括如果确定用于脏页面存储的第一盘发生故障,将由第一节点生成的与第一节点的第一组目标脏页面和第二节点的第二组目标脏页面相关联的第一目标页面描述写入第二盘中的用于第一节点的第一页面描述存储层,所述第二节点是所述第一节点的对等节点;将由所述第二节点生成的与所述第一组目标脏页面和所述第二组目标脏页面相关联的第二目标页面描述写入所述第二盘中的用于第二节点的第二页面描述存储层;以及如果确定所述第一盘的故障已被消除,至少基于所述第一目标页面描述和所述第二目标页面描述之一而在所述第一盘中恢复所述第一组目标脏页面和所述第二组目标脏页面。
6.在本公开的第二方面,提供了一种电子设备。该电子设备包括至少一个处理器;以及存储有计算机程序指令的至少一个存储器,至少一个存储器和计算机程序指令被配置为与至少一个处理器一起使电子设备执行动作。动作包括如果确定用于脏页面存储的第一盘发生故障,将由第一节点生成的与第一节点的第一组目标脏页面和第二节点的第二组目标脏页面相关联的第一目标页面描述写入第二盘中的用于第一节点的第一页面描述存储层,所述第二节点是所述第一节点的对等节点;将由所述第二节点生成的与所述第一组目标脏页面和所述第二组目标脏页面相关联的第二目标页面描述写入所述第二盘中的用于第二节点的第二页面描述存储层;以及如果确定所述第一盘的故障已被消除,至少基于所述第一目标页面描述和所述第二目标页面描述之一而在所述第一盘中恢复所述第一组目标脏页面和所述第二组目标脏页面。
7.在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令。机器可执行指令在被执行时使设备执行第一方面的方法。
8.应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或
重要特征,亦非用于限制本公开的范围。本公开的其他特征通过以下的描述将变得容易理解。
附图说明
9.通过参考附图阅读下文的详细描述,本公开的实施例的上述以及其他目的、特征和优点将变得容易理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施例,其中:
10.图1示出了本公开的实施例可以在其中被实现的示例系统的框图;
11.图2示出了本公开的实施例的进行数据保护的示意图;
12.图3示出了本公开的实施例进行数据解除保护的示意图;
13.图4示出了根据本公开的实施例的用于存储管理的方法的流程图;
14.图5示出了可以被用来实施本公开的实施例的设备的示意性框图。
15.贯穿所有附图,相同或者相似的参考标号被用来表示相同或者相似的组件。
具体实施方式
16.下面将参考附图中所示出的若干示例性实施例来描述本公开的原理和精神。应当理解,描述这些具体的实施例仅是为了使本领域的技术人员能够更好地理解并实现本公开,而并非以任何方式限制本公开的范围。
17.图1示出了本公开的实施例可以在其中被实现的示例性系统100的示意图。
18.系统100可以包括第一节点110和第二节点120。第一节点110和第二节点120可以是一对对等节点,也就是说它们具有完全对应的结构和组件。第一节点110可以被视为这对对等节点中的主节点,而第二节点120可以被视作辅节点。
19.第一节点110可以包括用于接收用户的输入/输出(i/o)请求的命名空间(name space)111。命名空间111可以与缓存设备112连接。缓存设备112可以与映射器113和日志设备114彼此连接。映射器102用于将用户请求中的地址映射到存储数据的物理空间以便于用户读取或写入数据。日志设备114例如可以记录数据被写入、修改或删除。
20.同样的,第二节点120也可以包括命名空间121、缓存设备122、映射器123以及日志设备124。第二节点120处的各个组件与第一节点110的各个组件具有相同或大致相同的连接方式和功能。
21.系统100还包括盘阵列130。在一个示例中,盘阵列可以为独立冗余盘阵列(raid)。在一个示例中,盘阵列130可以包括固态存储层(ssd层)131和非易失性随机访问存储层(nvram层)132。例如,ssd层131可以包括多个盘161至166,而nvram层132可以包括盘167和盘168。在图1中图示了一个ssd层131包括六个盘,而一个nvram层包括两个盘。上述示例仅是为了说明本公开,而非对本公开的限定。在其他实施例中,存储设备可以根据需要设置为包括任意数目的盘。
22.第一节点110中的日志设备114和第二节点120中的日志设备124分别与ssd层131和nvram层132之间存在数据路径。第一节点110和第二节点120上的脏页面可以被持久化到nvram层132。
23.nvram层132可以包括与脏页面持久化相关联的多个层。如图1所示,nvram层132可
以包括元数据(md)页面描述符(pd)层151、用户数据(ud)pd层154、第一节点的md脏页面的页面缓冲(pb)层152、第二节点的md脏页面pb层153、第一节点的ud脏页面pb层155和第二节点的ud脏页面pb层156。与第一节点和第二节点相关联的脏页面的页面描述可以被持久化到md pd层151和ud pd层154,而与第一节点和第二节点相关联的脏页面的页面缓冲可以被持久化到第一节点的md脏页面pb层152、第二节点的md脏页面pb层153、第一节点的ud脏页面pb层155和第二节点的ud脏页面pb层156。
24.一旦nvram层132脱机,系统将通知第一节点110中的日志设备114和第二节点120中的日志设备124该脱机事件。第一节点110中的日志设备114和第二节点120中的日志设备124分别中断和nvram层132之间的数据路径。
25.第一节点110中的日志设备114和第二节点120中的日志设备124将在ssd层131上创建用于保存持久化的脏页面的数据保护(vault)层。例如,可以在ssd层131上创建用于保存持久化的与第一节点和第二节点相关联的脏页面的页面描述的md pd数据保护层141和ud pd数据保护层144。
26.此外,还可以在ssd层131上创建用于保存持久化的与第一节点和第二节点相关联的脏页面的第一节点的md脏页面数据保护pb层142、第二节点的md脏页面数据保护pb层143、第一节点的ud脏页面数据保护pb层145和第二节点的ud脏页面数据保护pb层146。
27.在nvram层132脱机期间,可以将与第一节点110和第二节点120的脏页面相关联的页面描述保存到所创建的md pd数据保护层141和ud pd数据保护层144。第一节点110和第二节点120的脏页面可以被保存到第一节点的md脏页面数据保护pb层142、第二节点的md脏页面数据保护pb层143、第一节点的ud脏页面数据保护pb层145和第二节点的ud脏页面数据保护pb层146。
28.一旦nvram层132被恢复,则第一节点110中的日志设备114和第二节点120中的日志设备124将重启与nvram层132之间的数据路径。在启动过程中,存储数据将从ssd层131被复制到nvram层132。在对ssd层131中的脏页面解除数据保护(un-vault)之后,第一节点110和第二节点120上的脏页面将按照正常的数据路径被引导。
29.如上文所述,存储系统可以在nvram无法正常工作的情况下将脏页面和相应的页面描述符写入ssd中的盘层。一旦nvram正常工作,可以将这些数据恢复到nvram。然而,在当前的恢复过程中,数据将从ssd的相应盘层直接复制到nvram,无需进行验证和错误处理。
30.此外,对于图1示出的双对等节点系统,在当前的nvram脱机情况下的数据保护过程中,主节点(例如图1中的第一节点110)将所有脏页面的页面描述符保存到数据保护层,而辅节点(例如图1中的第二节点120)则不对任何页面描述符进行数据保护。主节点和辅节点中的每个节点均只对其自己的脏页面的页面缓冲进行保护,即使其节点缓存的对等节点也具有脏页面,主节点或辅节点也不会持久化其对等节点的脏页面。这在一般情况下并没有问题,因为已经将脏页面和其页面描述符持久化到ssd的数据保护层中。
31.然而,可能出现的情况是,缓冲内存或在ssd中持久化的数据发生损坏。由于只有主节点保存所有脏页面的页面描述符并且主节点和辅节点中的每个节点均只对其自己的脏页面的页面缓冲进行保护,因此在当前方案下,一旦主节点或辅节点的脏页面数据发生损坏,无法从其对等节点的数据保护层上获得相应的数据。
32.此外,在解除数据保护的过程中,当前方案仅仅是直接将ssd层的保护数据复制到
nvram层,而不进行任何的验证或错误处理。如果解除数据保护过程失败,则删除层中的所有与脏页面相关联的数据,因此在这种情况下会造成与脏页面相关联的数据彻底丢失。
33.因此,本公开的实施例提出一种管理存储的方法。在该方法中,在ssd层中分别为第一节点和第二节点创建各自的数据保护层。如果确定nvram层发生故障,将由第一节点生成与第一节点和第二节点的脏页面相关联的页面描述写入ssd层中的用于第一节点的页面描述数据保护层,而将由第二节点生成与第一节点和第二节点的脏页面相关联的页面描述写入ssd层中的用于第二节点的页面描述数据保护层。此外,在ssd层中的用于第一节点的页面缓冲数据保护层存储第一节点和第二节点的所有脏页面,而在ssd层中的用于第二节点的页面缓冲数据保护层也存储第一节点和第二节点的所有脏页面。如果确定nvram层被恢复,则至少基于由第一节点生成与第一节点和第二节点的脏页面相关联的页面描述和由第二节点生成与第一节点和第二节点的脏页面相关联的页面描述中的至少一个来恢复第一节点和第二节点的脏页面。
34.以此方式,当在ssd中由一个节点保存的与脏页面相关联的数据发生损坏时,可以使用其对等节点保存的与脏页面相关联的数据来恢复数据,由此提高存储系统的可靠性,减少nvram驱动器离线或损坏时数据丢失的风险。同时,该方法还可以识别和隔离在数据保护和解除数据保护期间的故障点,以进一步提高存储系统的可靠性。
35.图2示出了根据本公开的一些实施例的进行数据保护的示意图。
36.在图2中,存储系统200可以包括已经结合图1描述的第一节点110和与该第一节点110对等的第二节点120。
37.与图1中示出的系统100类似的,存储系统200还可以包括盘阵列230。盘阵列230可以包括ssd层231和nvram层232。ssd层231可以包括多个盘261至266,而nvram层232可以包括盘267和盘268。在图2中图示了一个ssd层131包括六个盘,而一个nvram层包括两个盘。上述示例仅是为了说明本公开,而非对本公开的限定。在其他实施例中,存储设备可以根据需要设置为包括任意数目的盘。
38.第一节点110中的日志设备114和第二节点120中的日志设备124分别与ssd层231和nvram层232之间存在数据路径。第一节点110和第二节点120上的脏页面可以被持久化到nvram层232。
39.nvram层232可以包括与脏页面持久化相关联的多个层。如图2所示,nvram层232可以包括md pd层251、ud pd层254、第一节点的md脏页面pb层252、第二节点的md脏页面pb层253、第一节点的ud脏页面pb层255和第二节点的ud脏页面pb层256。与第一节点和第二节点相关联的脏页面的页面描述可以被持久化到md pd层251和ud pd层254,与第一节点相关联的脏页面的页面缓冲可以被持久化到第一节点的md脏页面pb层252和第一节点的ud脏页面pb层255,与第二节点相关联的脏页面的页面缓冲可以被持久化到第二节点的md脏页面pb层253和第二节点的ud脏页面pb层256。
40.一旦nvram层132脱机,系统将通知第一节点110中的日志设备114和第二节点120中的日志设备124该脱机事件。第一节点110中的日志设备114和第二节点120中的日志设备124分别中断和nvram层232之间的数据路径。
41.可以在ssd层232上创建用于第一节点110存储与第一节点和第二节点相关联的脏页面的页面描述的md pd数据保护层241和ud pd数据保护层244。同时还可以在ssd层232上
创建用于第二节点120存储与第一节点和第二节点相关联的脏页面的页面描述的md pd数据保护层241’和ud pd数据保护层244’。
42.此外,可以在ssd层232上创建用于第一节点110存储与第一节点相关联的脏页面的第一节点的md脏页面数据保护pb层242和第一节点的ud脏页面数据保护pb层245和用于第一节点110存储与第二节点相关联的脏页面的第二节点的md脏页面数据保护pb层243和第二节点的ud脏页面数据保护pb层246。
43.同样的,还可以在ssd层232上创建用于第二节点120存储与第一节点相关联的脏页面的第一节点的md脏页面数据保护pb层242’和第一节点的ud脏页面数据保护pb层245’和用于第二节点120存储与第二节点相关联的脏页面的第二节点的md脏页面数据保护pb层243’和第二节点的ud脏页面数据保护pb层246’。
44.在进行数据保护过程中,将由第一节点110生成与第一节点110和第二节点120的脏页面相关联的页面描述写入ssd层231中的用于第一节点110的页面描述数据保护层,即页面描述的md pd数据保护层241和ud pd数据保护层244,而将由第二节点120生成与第一节点110和第二节点120的脏页面相关联的页面描述写入ssd层232中的用于第二节点120的页面描述数据保护层,即md pd数据保护层241’和ud pd数据保护层244’。
45.此外,在ssd层231中的用于第一节点110的页面缓冲数据保护层,即第一节点的md脏页面数据保护pb层242、第一节点的ud脏页面数据保护pb层245、第二节点的md脏页面数据保护pb层243和第二节点的ud脏页面数据保护pb层246存储第一节点110和第二节点120的所有脏页面。
46.而在ssd层231中的用于第二节点的页面缓冲数据保护层,即第一节点的md脏页面数据保护pb层242’、第一节点的ud脏页面数据保护pb层245’、第二节点的md脏页面数据保护pb层243’和第二节点的ud脏页面数据保护pb层246’也存储第一节点110和第二节点120的所有脏页面。
47.也就是说,在ssd层232上可以分别为第一节点110和第二节点120创建六个数据保护层,在用于每个节点的各自的数据保护层上存储的数据是完全独立的。
48.以用户数据为例,用户数据的页面描述符可被持久化在用于第一节点110的ud pd数据保护层244和用于第二节点120的ud pd数据保护层244’。应当理解,用于第一节点110的ud pd数据保护层244持久化位于第一节点110的内存中的页面描述符,而用于第二节点120的ud pd数据保护层244’持久化位于第二节点120的内存中的页面描述符。它们的内容在正常情况下应该是相同的。
49.对于用于第一节点110的第一节点ud脏页面数据保护pb层245,它持久化所有第一节点110拥有的用户是数据的脏页面。在用于第二节点120的第一节点ud脏页面数据保护pb层245’,持久化第二节点120上的由第一节点110拥有的脏页面缓冲。正常情况下,第一节点ud脏页面数据保护pb层245’上的数据内容应与第一节点ud脏页面数据保护pb层245相同。
50.同样,在用于第一节点110的用户数据脏页面数据保护层上也存储由第二节点120拥有的脏页面缓冲,其内容应当与在用于第二节点120的用户数据脏页面数据保护层上存储的脏页面缓冲具有相同的内容。
51.对于第一节点110和第二节点120上的元数据脏页面而言,上述结合用户数据描述的内容是同样适用的。
52.以此方式,与第一节点110和第二节点120的脏页面相关联的数据能够被分别被存储到ssd层231上的用于第一节点110的相应数据保护层上和用于第二节点120的相应数据保护层上。
53.在盘阵列230中的nvram层232恢复工作之后,在ssd层231上的与第一节点110和第二节点120的脏页面相关联的数据可以被解除数据保护。在数据解除保护的过程中,需要将第一节点110和第二节点120的脏页面相关联的数据恢复到nvram层232。图3示出了本公开的实施例进行数据解除保护的示意图。
54.在图3中,盘阵列230中的nvram层232恢复工作。因此可以将在ssd层231上的与第一节点110和第二节点120的脏页面相关联的数据解除数据保护。
55.在nvram层232恢复与第一节点110的脏页面相关联的数据的过程中,可以加载ssd层的md pd数据保护层241和ud pd数据保护层244存储的第一节点和第二节点相关联的脏页面的第一页面描述,并根据该第一页面描述中的与第一节点的脏页面相关联的第一页面描述的第一部分确定该第一页面描述的第一部分与第一节点的脏页面的第一映射关系。
56.获取在ssd层231的用于第一节点的第一节点脏页面数据保护pb层上存储的第一节点的脏页面并且基于该第一映射关系反推出与第一节点的脏页面相关联的另一页面描述。
57.可以比较该另一页面描述与从ssd层的md pd数据保护层241和ud pd数据保护层244所加载出的与第一节点的脏页面相关联的第一页面描述的第一部分是否匹配。如果确定该另一页面描述与第一页面描述的第一部分相匹配,则将在ssd层231的用于第一节点的第一节点脏页面数据保护pb层上存储的第一节点的脏页面恢复到nvram层232,即将ssd层上的第一节点的md脏页面数据保护pb层242的数据恢复到nvram层的第一节点的md脏页面pb层252,以及将ssd层上的第一节点的ud脏页面数据保护pb层245的数据恢复到nvram层的第一节点的ud脏页面pb层255。
58.如果确定该另一页面描述与第一页面描述的第一部分不匹配,则可以获取在ssd层上的md pd数据保护层241’和ud pd数据保护层244’上存储的与第一节点和第二节点相关联的脏页面的第二页面描述。
59.基于与第一节点和第二节点相关联的脏页面的第二页面描述中与第一节点的脏页面相关联的第二页面描述的第一部分确定该第二页面描述的第一部分与第一节点的脏页面的第二映射关系。
60.获取在ssd层231的用于第二节点的第一节点脏页面数据保护pb层上存储的第一节点的脏页面并且基于该第二映射关系反推出与第一节点的脏页面相关联的另一页面描述。
61.可以比较该另一页面描述与从ssd层的md pd数据保护层241’和ud pd数据保护层244’所加载出的与第一节点的脏页面相关联的第二页面描述的第一部分是否匹配。如果确定该另一页面描述与第二页面描述的第一部分相匹配,则将在ssd层231的用于第二节点的第一节点脏页面数据保护pb层上存储的第一节点的脏页面恢复到nvram层232,即将ssd层232的第一节点的md脏页面数据保护pb层242’的数据恢复到nvram层的第一节点的md脏页面pb层252,以及将ssd层232的第一节点的ud脏页面数据保护pb层245’的数据恢复到nvram层的第一节点的ud脏页面pb层255。
62.如果确定另一页面描述与第二页面描述的第一部分仍不匹配,则恢复过程失败。在ssd层231上存储的与第一节点的脏页面相关联的页面描述的数据被标记为损坏,因此第一节点的脏页面丢失。
63.在nvram层232恢复与第二节点120的脏页面相关联的数据的过程中,可以加载ssd层的md pd数据保护层241’和ud pd数据保护层244’上存储的与第一节点和第二节点相关联的脏页面的第二页面描述。基于与第一节点和第二节点相关联的脏页面的第二页面描述中与第二节点的脏页面相关联的第二页面描述的第二部分可以确定该第二页面描述的第二部分与第二节点的脏页面的第三映射关系。
64.获取在ssd层231的用于第二节点的第二节点脏页面数据保护pb层上存储的第二节点的脏页面并且基于该第三映射关系反推出与第二节点的脏页面相关联的另一页面描述。
65.可以比较该另一页面描述与从ssd层的md pd数据保护层241’和ud pd数据保护层244’所加载出的与第二节点的脏页面相关联的第二页面描述的第二部分是否匹配。如果确定该另一页面描述与第二页面描述的第二部分相匹配,则将在ssd层231的用于第二节点的第二节点脏页面数据保护pb层上存储的第二节点的脏页面恢复到nvram层232,即将ssd层上的第二节点的md脏页面数据保护pb层243’上的数据恢复到nvram层的第二节点的md脏页面pb层253,以及将ssd层上的第二节点的ud脏页面数据保护pb层246’的数据恢复到nvram层的第二节点的ud脏页面pb层256。
66.如果确定该另一页面描述与第二页面描述的第二部分不匹配,则可以获取ssd层的md pd数据保护层241和ud pd数据保护层244上存储的与第一节点和第二节点相关联的脏页面的第一页面描述。基于与第一节点和第二节点相关联的脏页面的第一页面描述中与第二节点的脏页面相关联的第一页面描述的第二部分可以确定该第二页面描述的第一部分与第二节点的脏页面的第四映射关系。
67.获取在ssd层231的用于第一节点的第二节点脏页面数据保护pb层上存储的第二节点的脏页面并且基于该第四映射关系反推出与第二节点的脏页面相关联的另一页面描述。
68.可以比较该另一页面描述与从ssd层的md pd数据保护层241和ud pd数据保护层244加载出的与第二节点的脏页面相关联的第一页面描述的第二部分是否相匹配,如果确定该另一页面描述与第一页面描述的第二部分相匹配,则将在ssd层231的用于第一节点的第二节点脏页面数据保护pb层上存储的第二节点的脏页面恢复到nvram层232,即将ssd层上的第二节点的md脏页面数据保护pb层243上的数据恢复到nvram层的第二节点的md脏页面pb层253,以及将ssd层上的第二节点的ud脏页面数据保护pb层246的数据恢复到nvram层的第二节点的ud脏页面pb层256。
69.如果确定另一页面描述与第一页面描述的第二部分仍不匹配,则恢复过程失败。在ssd层231上存储的与第二节点的脏页面相关联的页面描述的数据被标记为损坏,因此第二节点的脏页面丢失。
70.此外,在加载ssd层231的用于第一节点的md pd数据保护层241和ud pd数据保护层244上存储的与第一节点和第二节点相关联的脏页面的第一页面描述或ssd层的用于第二节点的md pd数据保护层241’和ud pd数据保护层244’的第二页面描述时,可以首先校验
第一页面描述或第二页面描述的有效性。一旦有效性检验被通过,才可以在解除数据保护的过程中加载第一页面描述或第二页面描述。
71.例如在加载在ssd层上的md pd数据保护层241和ud pd数据保护层244上存储的与第一节点和第二节点相关联的脏页面的第一页面描述,可以检验第一页面描述的有效性。例如,可以获取第一页面描述的相关联的参数。该参数例如可以包括第一页面描述的校验和、第一页面描述的幻数(magic number)、版本号或序列号。
72.如果确定在ssd层上的md pd数据保护层241和ud pd数据保护层244上存储的与第一节点和第二节点相关联的脏页面的第一页面描述有效,则加载第一页面描述以用于生成上文所述的映射关系。
73.如果确定在ssd层上的md pd数据保护层241和ud pd数据保护层244上存储的与第一节点和第二节点相关联的脏页面的第一页面描述无效,可以检验在ssd层上的md pd数据保护层241’和ud pd数据保护层244’上存储的与第一节点和第二节点相关联的脏页面的第二页面描述的有效性。例如,可以获取与第二页面描述的相关联的参数。该参数例如可以包括第二页面描述的校验和、第二页面描述的幻数(magic number)、版本号或序列号。
74.如果确定在ssd层上的md pd数据保护层241’和ud pd数据保护层244’上存储的与第一节点和第二节点相关联的脏页面的第二页面描述有效,则可以加载该被存储的第一节点和第二节点相关联的脏页面的第二页面描述。
75.以此方式,当在ssd中由一个节点保存的与脏页面相关联的数据发生损坏时,可以使用其对等节点保存的与脏页面相关联的数据来恢复数据,由此提高存储系统的可靠性,减少nvram驱动器离线或损坏时数据丢失的风险。同时,该方法还可以识别和隔离在数据保护和解除数据保护期间的故障点,以进一步提高存储系统的可靠性。
76.图4示出了根据本公开的实施例的用于存储管理的方法400的流程图。方法400可以被实现在图1所示的系统100中。方法400例如可以由设置在图1示出的系统100中所包括的计算设备来实施。可以结合图1来描述方法200。
77.在图4所示,在框410,如果确定用于脏页面存储的第一盘发生故障,则计算设备将由第一节点生成的与第一节点的第一组目标脏页面和第二节点的第二组目标脏页面相关联的第一目标页面描述写入第二盘中的用于第一节点的第一页面描述存储层,所述第二节点是所述第一节点的对等节点。
78.在框420,计算设备将由所述第二节点生成的与所述第一组目标脏页面和所述第二组目标脏页面相关联的第二目标页面描述写入所述第二盘中的用于第二节点的第二页面描述存储层。
79.在框430,如果确定所述第一盘的故障已被消除,则在框440,计算设备至少基于所述第一目标页面描述和所述第二目标页面描述之一而在所述第一盘中恢复所述第一组目标脏页面和所述第二组目标脏页面。
80.在一些实施例中,计算设备可以基于所述第一目标页面描述中的与所述第一组目标脏页面相关联的一组目标页面描述符生成所述一组目标页面描述符与所述第一组目标脏页面的第一映射关系。计算设备可以基于所述第一映射关系和从所述第二盘的用于第一节点的第一脏页面存储层中获取的与所述第一节点相关联的第一组参考脏页面确定一组参考页面描述符。计算设备可以确定所述一组参考页面描述符是否与所述一组目标页面描
述符相匹配。如果确定所述一组参考页面描述符与所述一组目标页面描述符相匹配,计算设备可以基于所述第一组参考脏页面恢复所述第一组目标脏页面。
81.在一些实施例中,如果确定所述一组参考页面描述符与所述一组目标页面描述符不匹配,计算设备可以基于所述第二目标页面描述中的与所述第一组目标脏页面相关联的另一组目标页面描述符生成所述另一组目标页面描述符与所述第一组目标脏页面的第二映射关系。计算设备可以基于所述第二映射关系和从所述第二盘的用于第二节点的第二脏页面存储层中获取的与所述第一节点相关联的第二组参考脏页面确定另一组参考页面描述符。计算设备可以确定所述另一组参考页面描述符是否与所述另一组目标页面描述符相匹配。如果确定所述另一组参考页面描述符与所述另一组目标页面描述符相匹配,计算设备可以基于所述第二组参考脏页面恢复所述第一组目标脏页面。
82.在一些实施例中,计算设备可以基于所述第二目标页面描述中的与所述第二组目标脏页面相关联的一组目标页面描述符生成所述一组目标页面描述符与所述第二组目标脏页面的第三映射关系。计算设备可以基于所述第三映射关系和从所述第二盘的用于第二节点的第二脏页面存储层中获取的与所述第二节点相关联的第三组参考脏页面确定一组参考页面描述符。计算设备可以确定所述一组参考页面描述符是否与所述一组目标页面描述符相匹配。如果确定所述一组参考页面描述符与所述一组目标页面描述符相匹配,计算设备可以基于所述第三组参考脏页面恢复所述第二组目标脏页面。
83.在一些实施例中,如果确定所述一组参考页面描述符与所述一组目标页面描述符不匹配,计算设备可以基于所述第一目标页面描述中的与所述第二组目标脏页面相关联的另一组目标页面描述符生成所述另一组目标页面描述符与所述第二组目标脏页面的第四映射关系。计算设备可以基于所述第四映射关系和从所述第二盘的用于第一节点的第一脏页面存储层中获取的与所述第二节点相关联的第四组参考脏页面确定另一组参考页面描述符。计算设备可以确定所述另一组参考页面描述符是否与所述另一组目标页面描述符相匹配。如果确定所述另一组参考页面描述符与所述另一组目标页面描述符相匹配,计算设备可以基于所述第四组参考脏页面恢复所述第一组目标脏页面。
84.在一些实施例中,计算设备可以基于与所述第一目标页面描述相关联的参数校验所述第一目标页面描述是否有效性,所述参数包括以下至少一项:与所述第一目标页面描述所包括的一组页面描述页的校验和;所述第一目标页面描述的幻数,所述第一目标页面描述的版本号,所述第一目标页面描述的序列号。计算设备可以基于所述参数校验所述第一目标页面描述的有效性并且如果确定所述第一目标页面描述有效,计算设备可以基于所述第一目标页面描述生成所述第一映射关系。
85.在一些实施例中,如果确定所述第一目标页面描述无效,计算设备可以基于与所述第二目标页面描述相关联的参数校验所述第二目标页面描述的有效性,所述参数包括以下至少一项:与所述第二目标页面描述所包括的一组页面描述页的校验和;所述第二目标页面描述的幻数,所述第二目标页面描述的版本号,所述第二目标页面描述的序列号。如果确定所述第二目标页面描述有效,计算设备可以基于所述第二目标页面描述生成所述第一映射关系。
86.图5示意性示出能够被用来实施本公开的实施例的设备500的框图。设备500可以被实现为或者被包括于图1的系统100所包括的计算设备处。
87.如图5中所示出的,设备500包括中央处理单元(cpu)501,其可以根据存储在只读存储设备(rom)502中的计算机程序指令或者从存储单元508加载到随机访问存储设备(ram)503中的计算机程序指令,来执行各种适当的动作和处理。在ram 503中,还可存储设备500操作所需的各种程序和数据。cpu 501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
88.设备500中的多个部件连接至i/o接口505,包括:输入单元506,例如键盘、鼠标等;输出单元505,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
89.上文所描述的各个过程和处理,例如过程400可由处理单元501来执行。例如,在一些实施例中,过程400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由rom 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序被加载到ram 503并由cpu 501执行时,可以执行上文描述的过程400的一个或多个步骤。
90.如本文所使用的,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。本文还可能包括其他明确的和隐含的定义。
91.如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可以包括运算、计算、处理、导出、调查、查找(例如,在表格、数据库或另一数据结构中查找)、查明等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选择、选取、建立等。
92.应当注意,本公开的实施例可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。
93.此外,尽管在附图中以特定顺序描述了本公开的方法的操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤组合为一个步骤执行,和/或将一个步骤分解为多个步骤执行。还应当注意,根据本公开的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
94.虽然已经参考若干具体实施例描述了本公开,但是应当理解,本公开不限于所公开的具体实施例。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等效布置。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献