Method, electronic device and computer program product for storage management

By creating an independent data protection layer for each node in the SSD layer, the problem of data loss during NVRAM failure is solved, achieving data reliability and integrity protection and reducing the risk of data loss.

CN115237667BActive Publication Date: 2026-01-02EMC IP HLDG CO LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110442297.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-04-23
Publication Date
2026-01-02
Estimated Expiration
2041-04-23

AI Technical Summary

Technical Problem

In the event of an NVRAM failure, existing technologies cannot effectively protect and recover dirty page data, leading to data loss, especially when dirty page data on the primary or secondary node is corrupted, making it impossible to obtain data from the data protection layer of the peer node.

Method used

By creating a data protection layer for each node separately, including creating a page description storage layer in the SSD for the first node and the second node, creating a data protection layer in the SSD for the second node, creating a data protection layer on the SSD layer 231, and creating a page description data protection layer on the SSD layer 231 for the first node and the second node.

Benefits of technology

It improves the reliability of the storage system, reduces the risk of data loss when NVRAM drives are offline or damaged, and identifies and isolates points of failure during data protection and deprotection.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115237667B_ABST
    Figure CN115237667B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to a method, an electronic device and a computer program product for storage management. The method comprises writing, if it is determined that a first disk for dirty page storage has failed, a first target page description generated by a first node and associated with a first set of target dirty pages of the first node and a second set of target dirty pages of a second node, which is a peer node of the first node, to a first page description storage layer for the first node in a second disk; writing a second target page description generated by the second node and associated with the first set of target dirty pages and the second set of target dirty pages to a second page description storage layer for the second node in the second disk; and if it is determined that the failure of the first disk has been eliminated, restoring the first set of target dirty pages and the second set of target dirty pages in the first disk based on at least one of the first target page description and the second target page description. Thereby, the reliability of the storage system is improved, and the risk of data loss when the non-volatile random access memory (NVRAM) is offline or damaged is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] Embodiments of the present disclosure generally relate to data processing systems, and more particularly, to a method, an electronic device and a computer program product for storage management. BACKGROUND

[0002] In some storage systems, dirty data is persisted into non-volatile random access memory (NVRAM). Once the NVRAM is corrupted, the persisted dirty data will be lost.

[0003] In the case that the NVRAM does not work properly, for example, when the NVRAM is powered off, the storage system writes dirty pages and corresponding page descriptors into the disk tier in a solid state drive (SSD). Once the NVRAM works properly, these data can be recovered to the NVRAM. In the current recovery process, the data will be copied from the corresponding disk tier of the SSD to the NVRAM directly without verification and error handling. SUMMARY

[0004] Embodiments of the present disclosure relate to an improved solution for storage management.

[0005] In a first aspect of the present disclosure, a method for data processing is provided. The method comprises writing, if it is determined that a first disk for dirty page storage has failed, first target page descriptors generated by a first node and associated with a first set of target dirty pages of the first node and a second set of target dirty pages of a second node to a first page descriptor storage tier for the first node in a second disk, the second node being a peer node of the first node; writing second target page descriptors generated by the second node and associated with the first set of target dirty pages and the second set of target dirty pages to a second page descriptor storage tier for the second node in the second disk; and if it is determined that the failure of the first disk has been eliminated, recovering the first set of target dirty pages and the second set of target dirty pages in the first disk based on at least one of the first target page descriptors and the second target page descriptors.

[0006] In a second aspect of the disclosure, an electronic device is provided. The electronic device includes at least one processor; and at least one memory having computer program instructions stored therein, the at least one memory and the computer program instructions being configured to, with the at least one processor, cause the electronic device to perform actions. The actions include writing, if it is determined that a first disk for dirty page storage has failed, a first target page description generated by a first node and associated with a first set of target dirty pages of the first node and a second set of target dirty pages of a second node to a first page description storage tier for the first node in a second disk, the second node being a peer node of the first node; writing a second target page description generated by the second node and associated with the first set of target dirty pages and the second set of target dirty pages to a second page description storage tier for the second node in the second disk; and if it is determined that the failure of the first disk has been eliminated, restoring the first set of target dirty pages and the second set of target dirty pages in the first disk based at least on one of the first target page description and the second target page description.

[0007] In a third aspect of the disclosure, a computer program product is provided. The computer program product is tangibly stored on a non-transitory computer readable medium and comprises machine executable instructions. The machine executable instructions, when executed, cause a device to perform the method of the first aspect.

[0008] It should be understood that all statements herein made regarding the foregoing aspects of the disclosure are intended to encompass both the specific and generic features of the aspects described herein. Furthermore, the foregoing aspects of the disclosure are intended to cover all embodiments of the disclosure falling within the scope of the claims. BRIEF DESCRIPTION OF DRAWINGS

[0009] The foregoing and other objects, features and advantages of the embodiments of the present disclosure will be more readily understood upon reading the following detailed description in conjunction with the drawings and the claims. The drawings of which are included solely for illustration purposes, show several embodiments of the present disclosure, by way of example only, in which:

[0010] Figure 1 A block diagram of an example system in which embodiments of the present disclosure can be implemented is shown;

[0011] Figure 2 A schematic diagram of data protection by embodiments of the present disclosure is shown;

[0012] Figure 3 A schematic diagram of data de-protection by embodiments of the present disclosure is shown;

[0013] Figure 4 A flowchart of a method for storage management according to embodiments of the present disclosure is shown;

[0014] Figure 5A schematic block diagram of a device that can be used to implement embodiments of the present disclosure is shown.

[0015] Throughout the drawings, the same or similar reference labels are used to refer to the same or similar components. DETAILED DESCRIPTION

[0016] The principles and spirit of the present disclosure will be described below with reference to several exemplary embodiments shown in the drawings. It should be understood that the description of these specific embodiments is only to enable those skilled in the art to better understand and implement the present disclosure, and not to limit the scope of the present disclosure in any way.

[0017] Figure 1 A schematic diagram of an exemplary system 100 in which embodiments of the present disclosure can be implemented is shown.

[0018] The system 100 can include a first node 110 and a second node 120. The first node 110 and the second node 120 can be a pair of peer nodes, that is, they have fully corresponding structures and components. The first node 110 can be considered as a primary node in the pair of peer nodes, while the second node 120 can be considered as a secondary node.

[0019] The first node 110 can include a namespace 111 for receiving input / output (I / O) requests of a user. The namespace 111 can be connected with a cache device 112. The cache device 112 can be connected with a mapper 113 and a log device 114 with each other. The mapper 102 is used to map addresses in the user requests to physical spaces where data is stored so as to facilitate the user to read or write data. The log device 114 can record, for example, that data is written, modified or deleted.

[0020] Similarly, the second node 120 can also include a namespace 121, a cache device 122, a mapper 123 and a log device 124. The components at the second node 120 have the same or substantially the same connection manner and functions as the components of the first node 110.

[0021] The system 100 further includes a disk array 130. In one example, the disk array can be a redundant array of independent disks (RAID). In one example, the disk array 130 can include a solid state storage layer (SSD layer) 131 and a non-volatile random access memory layer (NVRAM layer) 132. For example, the SSD layer 131 can include a plurality of disks 161-166, while the NVRAM layer 132 can include a disk 167 and a disk 168. In one example, the disk array 130 can be connected with the first node 110 and the second node 120. Figure 1The diagram illustrates an SSD layer 131 comprising six disks, while an NVRAM layer comprises two disks. The above examples are for illustrative purposes only and are not intended to limit the scope of this disclosure. In other embodiments, the storage device may be configured to include any number of disks as needed.

[0022] Data paths exist between the log device 114 in the first node 110 and the log device 124 in the second node 120 and the SSD layer 131 and NVRAM layer 132, respectively. Dirty pages on the first node 110 and the second node 120 can be persisted to the NVRAM layer 132.

[0023] NVRAM layer 132 may include multiple layers associated with dirty page persistence. For example... Figure 1 As shown, NVRAM layer 132 may include a metadata (MD) page descriptor (PD) layer 151, a user data (UD) PD layer 154, a page buffer (PB) layer 152 for dirty MD pages of the first node, a dirty MD page PB layer 153 for the second node, a dirty UD page PB layer 155 for the first node, and a dirty UD page PB layer 156 for the second node. Page descriptors of dirty pages associated with the first and second nodes can be persisted to MD PD layer 151 and UD PD layer 154, while page buffers of dirty pages associated with the first and second nodes can be persisted to dirty MD page PB layer 152 for the first node, dirty MD page PB layer 153 for the second node, dirty UD page PB layer 155 for the first node, and dirty UD page PB layer 156 for the second node.

[0024] Once NVRAM layer 132 goes offline, the system will notify log device 114 in first node 110 and log device 124 in second node 120 of the offline event. Log device 114 in first node 110 and log device 124 in second node 120 will respectively interrupt the data path between themselves and NVRAM layer 132.

[0025] Log device 114 in the first node 110 and log device 124 in the second node 120 will create a data protection (vault) layer on the SSD layer 131 to store persistent dirty pages. For example, MD PD data protection layer 141 and UD PD data protection layer 144 can be created on the SSD layer 131 to store page descriptions of persistent dirty pages associated with the first and second nodes.

[0026] In addition, a first node MD dirty page data protection PB layer 142, a second node MD dirty page data protection PB layer 143, a first node UD dirty page data protection PB layer 145, and a second node UD dirty page data protection PB layer 146 can be created on the SSD layer 131 to store persistent dirty pages associated with the first node and the second node.

[0027] During the offline period of NVRAM layer 132, page descriptions associated with dirty pages of the first node 110 and the second node 120 can be saved to the created MD PD data protection layer 141 and UD PD data protection layer 144. Dirty pages of the first node 110 and the second node 120 can be saved to the MD dirty page data protection PB layer 142 of the first node, the MD dirty page data protection PB layer 143 of the second node, the UD dirty page data protection PB layer 145 of the first node, and the UD dirty page data protection PB layer 146 of the second node.

[0028] Once NVRAM layer 132 is restored, log device 114 in first node 110 and log device 124 in second node 120 will restart the data path between NVRAM layer 132. During startup, storage data will be copied from SSD layer 131 to NVRAM layer 132. After un-vaulting the dirty pages in SSD layer 131, the dirty pages on first node 110 and second node 120 will be booted along the normal data path.

[0029] As mentioned above, the storage system can write dirty pages and their corresponding page descriptors to the disk tier in the SSD if NVRAM malfunctions. Once NVRAM is functioning correctly, this data can be restored to NVRAM. However, in the current recovery process, data is copied directly from the corresponding disk tier of the SSD to NVRAM without verification or error handling.

[0030] In addition, for Figure 1 The illustrated dual-peer node system, in the current NVRAM offline scenario, during data protection, the master node (e.g., Figure 1 The first node (110) saves the page descriptors of all dirty pages to the data protection layer, while the auxiliary nodes (e.g., Figure 1 The second node (120) does not provide data protection for any page descriptors. Each node in the primary and secondary nodes only protects its own dirty page buffer, even if its cached peer nodes also have dirty pages. The primary or secondary node will not persist the dirty pages of its peer nodes. This is generally not a problem because the dirty pages and their page descriptors are already persisted to the SSD's data protection layer.

[0031] However, it is possible that the buffered memory or the data persisted in the SSD is corrupted. Since only the master node holds the page descriptors of all dirty pages and each of the master node and the secondary nodes only protects the page buffer of its own dirty pages, once the dirty page data of the master node or the secondary node is corrupted, the corresponding data cannot be obtained from the data protection layer of its peer node under the current scheme.

[0032] Further, in the process of removing data protection, the current scheme only directly copies the protection data of the SSD layer to the NVRAM layer without any verification or error handling. If the process of removing data protection fails, all data associated with the dirty pages in the layer is deleted, thus resulting in complete loss of data associated with the dirty pages in this case.

[0033] Therefore, embodiments of the present disclosure propose a method of managing storage. In the method, a respective data protection layer is created for a first node and a second node in the SSD layer respectively. If it is determined that the NVRAM layer fails, the page descriptions associated with the dirty pages of the first node and the second node generated by the first node are written to the page description data protection layer for the first node in the SSD layer, and the page descriptions associated with the dirty pages of the first node and the second node generated by the second node are written to the page description data protection layer for the second node in the SSD layer. In addition, the page buffer data protection layer for the first node in the SSD layer stores all dirty pages of the first node and the second node, and the page buffer data protection layer for the second node in the SSD layer also stores all dirty pages of the first node and the second node. If it is determined that the NVRAM layer is recovered, the dirty pages of the first node and the second node are recovered based on at least one of the page descriptions associated with the dirty pages of the first node and the second node generated by the first node and the page descriptions associated with the dirty pages of the first node and the second node generated by the second node.

[0034] In this way, when the data associated with the dirty pages saved by one node in the SSD is corrupted, the data associated with the dirty pages saved by its peer node can be used to recover the data, thereby improving the reliability of the storage system and reducing the risk of data loss when the NVRAM drive is offline or corrupted. At the same time, the method can also identify and isolate the failure points during data protection and data protection removal, further improving the reliability of the storage system.

[0035] Figure 2 A schematic diagram of data protection is shown according to some embodiments of the present disclosure.

[0036] In Figure 2 In the Figure 1The first node 110 and the second node 120 corresponding to the first node 110 are described.

[0037] and Figure 1 Similar to the system 100 shown, the storage system 200 may also include a disk array 230. The disk array 230 may include an SSD layer 231 and an NVRAM layer 232. The SSD layer 231 may include multiple disks 261 to 266, while the NVRAM layer 232 may include disks 267 and 268. Figure 2 The diagram illustrates an SSD layer 131 comprising six disks, while an NVRAM layer comprises two disks. The above examples are for illustrative purposes only and are not intended to limit the scope of this disclosure. In other embodiments, the storage device may be configured to include any number of disks as needed.

[0038] Data paths exist between the log device 114 in the first node 110 and the log device 124 in the second node 120 and the SSD layer 231 and NVRAM layer 232, respectively. Dirty pages on the first node 110 and the second node 120 can be persisted to the NVRAM layer 232.

[0039] NVRAM layer 232 may include multiple layers associated with dirty page persistence. For example... Figure 2 As shown, NVRAM layer 232 may include MD PD layer 251, UD PD layer 254, MD dirty page PB layer 252 of the first node, MD dirty page PB layer 253 of the second node, UD dirty page PB layer 255 of the first node, and UD dirty page PB layer 256 of the second node. Page descriptions of dirty pages associated with the first and second nodes can be persisted to MD PD layer 251 and UD PD layer 254. Page buffers of dirty pages associated with the first node can be persisted to MD dirty page PB layer 252 and UD dirty page PB layer 255 of the first node. Page buffers of dirty pages associated with the second node can be persisted to MD dirty page PB layer 253 and UD dirty page PB layer 256 of the second node.

[0040] Once NVRAM layer 132 goes offline, the system will notify log device 114 in the first node 110 and log device 124 in the second node 120 of the offline event. Log device 114 in the first node 110 and log device 124 in the second node 120 will respectively interrupt the data path between themselves and NVRAM layer 232.

[0041] The MD PD data protection layer 241 and the UD PD data protection layer 244 for the first node 110 to store the page descriptions of the dirty pages associated with the first node and the second node can be created on the SSD layer 231. Meanwhile, the MD PD data protection layer 241' and the UD PD data protection layer 244' for the second node 120 to store the page descriptions of the dirty pages associated with the first node and the second node can also be created on the SSD layer 231.

[0042] In addition, the first node's MD dirty page data protection PB layer 242 and the first node's UD dirty page data protection PB layer 245 for the first node 110 to store the dirty pages associated with the first node and the second node's MD dirty page data protection PB layer 243 and the second node's UD dirty page data protection PB layer 246 for the first node 110 to store the dirty pages associated with the second node can be created on the SSD layer 231.

[0043] Similarly, the first node's MD dirty page data protection PB layer 242' and the first node's UD dirty page data protection PB layer 245' for the second node 120 to store the dirty pages associated with the first node and the second node's MD dirty page data protection PB layer 243' and the second node's UD dirty page data protection PB layer 246' for the second node 120 to store the dirty pages associated with the second node can also be created on the SSD layer 231.

[0044] In the data protection process, the page descriptions associated with the dirty pages of the first node 110 and the second node 120 generated by the first node 110 are written into the page description data protection layers for the first node 110 in the SSD layer 231, i.e., the MD PD data protection layer 241 and the UD PD data protection layer 244, while the page descriptions associated with the dirty pages of the first node 110 and the second node 120 generated by the second node 120 are written into the page description data protection layers for the second node 120 in the SSD layer 231, i.e., the MD PD data protection layer 241' and the UD PD data protection layer 244'.

[0045] In addition, all the dirty pages of the first node 110 and the second node 120 are stored in the page buffer data protection layers for the first node 110 in the SSD layer 231, i.e., the first node's MD dirty page data protection PB layer 242, the first node's UD dirty page data protection PB layer 245, the second node's MD dirty page data protection PB layer 243, and the second node's UD dirty page data protection PB layer 246.

[0046] The page buffer data protection layers for the second node in the SSD layer 231, i.e., the first node's MD dirty page data protection PB layer 242', the first node's UD dirty page data protection PB layer 245', the second node's MD dirty page data protection PB layer 243', and the second node's UD dirty page data protection PB layer 246', also store all dirty pages for the first node 110 and the second node 120.

[0047] That is, six data protection layers can be created on the SSD layer 231 for the first node 110 and the second node 120 respectively, and the data stored on the respective data protection layers for each node are completely independent.

[0048] Taking user data as an example, the page descriptors for the user data can be persisted in the UD PD data protection layer 244 for the first node 110 and the UD PD data protection layer 244' for the second node 120. It should be understood that the UD PD data protection layer 244 for the first node 110 persists the page descriptors located in the memory of the first node 110, while the UD PD data protection layer 244' for the second node 120 persists the page descriptors located in the memory of the second node 120. Their contents should be the same under normal circumstances.

[0049] For the first node UD dirty page data protection PB layer 245 for the first node 110, it persists all dirty pages for the user data owned by the first node 110. For the first node UD dirty page data protection PB layer 245' for the second node 120, it persists the dirty page buffer on the second node 120 owned by the first node 110. Under normal circumstances, the data content on the first node UD dirty page data protection PB layer 245' should be the same as that on the first node UD dirty page data protection PB layer 245.

[0050] Similarly, the dirty page buffer owned by the second node 120 is also stored on the user data dirty page data protection layer for the first node 110, and its content should be the same as the dirty page buffer stored on the user data dirty page data protection layer for the second node 120.

[0051] The above description in connection with the user data is also applicable to the metadata dirty pages on the first node 110 and the second node 120.

[0052] In this way, the data associated with the dirty pages of the first node 110 and the second node 120 can be respectively stored on the corresponding data protection layers for the first node 110 and the corresponding data protection layers for the second node 120 on the SSD layer 231.

[0053] After the NVRAM layer 232 in the disk array 230 resumes work, the data associated with the dirty pages of the first node 110 and the second node 120 on the SSD layer 231 can be de-protected. In the process of de-protecting the data, the data associated with the dirty pages of the first node 110 and the second node 120 needs to be restored to the NVRAM layer 232. Figure 3 A schematic diagram of the embodiment of the present disclosure is shown to de-protect data.

[0054] In Figure 3 The NVRAM layer 232 in the disk array 230 resumes work. Therefore, the data associated with the dirty pages of the first node 110 and the second node 120 on the SSD layer 231 can be de-protected.

[0055] In the process of restoring the data associated with the dirty pages of the first node 110 by the NVRAM layer 232, the first page description of the dirty pages associated with the first node and the second node stored by the MD PD data protection layer 241 and the UD PD data protection layer 244 of the SSD layer can be loaded, and the first mapping relationship between the first part of the first page description associated with the dirty pages of the first node in the first page description and the dirty pages of the first node is determined according to the first part of the first page description.

[0056] The dirty pages of the first node stored on the first node dirty page data protection PB layer of the SSD layer 231 for the first node are obtained, and another page description associated with the dirty pages of the first node is deduced based on the first mapping relationship.

[0057] The other page description can be compared with the first part of the first page description associated with the dirty pages of the first node loaded from the MD PD data protection layer 241 and the UD PD data protection layer 244 of the SSD layer. If it is determined that the other page description matches the first part of the first page description, the dirty pages of the first node stored on the first node dirty page data protection PB layer of the SSD layer 231 for the first node are restored to the NVRAM layer 232, that is, the data of the MD dirty page data protection PB layer 242 of the first node on the SSD layer is restored to the MD dirty page PB layer 252 of the first node of the NVRAM layer, and the data of the UD dirty page data protection PB layer 245 of the first node on the SSD layer is restored to the UD dirty page PB layer 255 of the first node of the NVRAM layer.

[0058] If it is determined that the other page description does not match the first part of the first page description, the second page description of the dirty pages associated with the first node and the second node stored on the MD PD data protection layer 241' and the UD PD data protection layer 244' of the SSD layer can be obtained.

[0059] A first part of the second page description associated with the dirty page of the first node is determined based on the second page description of the dirty page of the first node in the second page description of the dirty page associated with the first node and the second node.

[0060] The dirty page of the first node stored on the first node dirty page data protection PB layer for the second node at the SSD layer 231 is retrieved and another page description associated with the dirty page of the first node is deduced based on the second mapping relationship.

[0061] The other page description can be compared with the first part of the second page description associated with the dirty page of the first node loaded from the MD PD data protection layer 241' and the UD PD data protection layer 244' of the SSD layer. If it is determined that the other page description matches the first part of the second page description, the dirty page of the first node stored on the first node dirty page data protection PB layer for the second node at the SSD layer 231 is restored to the NVRAM layer 232, i.e. the data of the first node MD dirty page data protection PB layer 242' of the SSD layer 231 is restored to the first node MD dirty page PB layer 252 of the NVRAM layer, and the data of the first node UD dirty page data protection PB layer 245' of the SSD layer 231 is restored to the first node UD dirty page PB layer 255 of the NVRAM layer.

[0062] If it is determined that the other page description still does not match the first part of the second page description, the restoration process fails. The data of the page description associated with the dirty page of the first node stored on the SSD layer 231 is marked as damaged, and thus the dirty page of the first node is lost.

[0063] In the process of restoring the data associated with the dirty page of the second node 120 at the NVRAM layer 232, the second page description of the dirty page associated with the first node and the second node stored on the MD PD data protection layer 241' and the UD PD data protection layer 244' of the SSD layer can be loaded. Based on the second part of the second page description associated with the dirty page of the second node in the second page description of the dirty page associated with the first node and the second node, a third mapping relationship between the second part of the second page description and the dirty page of the second node can be determined.

[0064] The dirty page of the second node stored on the second node dirty page data protection PB layer for the second node at the SSD layer 231 is retrieved and another page description associated with the dirty page of the second node is deduced based on the third mapping relationship.

[0065] The other page description can be compared to a second portion of the second page description associated with the dirty page of the second node loaded from the MD PD data protection layer 241 and the UD PD data protection layer 244 of the SSD layer. If it is determined that the other page description matches the second portion of the second page description, the dirty page of the second node stored on the second node dirty page data protection PB layer of the SSD layer 231 for the second node is restored to the NVRAM layer 232, i.e., data on the MD dirty page data protection PB layer 243 of the second node on the SSD layer is restored to the MD dirty page PB layer 253 of the second node of the NVRAM layer, and data of the UD dirty page data protection PB layer 246 of the second node on the SSD layer is restored to the UD dirty page PB layer 256 of the second node of the NVRAM layer.

[0066] If it is determined that the other page description does not match the second portion of the second page description, a first page description of dirty pages associated with the first node and the second node stored on the MD PD data protection layer 241 and the UD PD data protection layer 244 of the SSD layer can be obtained. Based on the first page description of dirty pages associated with the first node and the second node, a second portion of the first page description associated with the dirty page of the second node can be determined to be the fourth mapping relationship of the first portion of the second page description and the dirty page of the second node.

[0067] The dirty page of the second node stored on the second node dirty page data protection PB layer of the SSD layer 231 for the first node is obtained and the other page description associated with the dirty page of the second node is deduced based on the fourth mapping relationship.

[0068] The other page description can be compared to a second portion of the first page description associated with the dirty page of the second node loaded from the MD PD data protection layer 241 and the UD PD data protection layer 244 of the SSD layer. If it is determined that the other page description matches the second portion of the first page description, the dirty page of the second node stored on the second node dirty page data protection PB layer of the SSD layer 231 for the first node is restored to the NVRAM layer 232, i.e., data on the MD dirty page data protection PB layer 243 of the second node on the SSD layer is restored to the MD dirty page PB layer 253 of the second node of the NVRAM layer, and data of the UD dirty page data protection PB layer 246 of the second node on the SSD layer is restored to the UD dirty page PB layer 256 of the second node of the NVRAM layer.

[0069] If it is determined that the other page description still does not match the second portion of the first page description, the recovery process fails. The data of the page description associated with the dirty pages of the second node stored on the SSD layer 231 is marked as corrupted, and thus the dirty pages of the second node are lost.

[0070] Further, in loading the first page description of the dirty pages associated with the first node and the second node stored on the MD PD data protection layer 241 and the UD PD data protection layer 244 of the SSD layer 231 for the first node or the second page description of the SSD layer for the second node of the MD PD data protection layer 241' and the UD PD data protection layer 244', the validity of the first page description or the second page description can be checked first. Once the validity check is passed, the first page description or the second page description can be loaded in the process of de-protecting the data.

[0071] For example, in loading the first page description of the dirty pages associated with the first node and the second node stored on the MD PD data protection layer 241 and the UD PD data protection layer 244 of the SSD layer, the validity of the first page description can be checked. For example, the associated parameters of the first page description can be obtained. The parameters can include, for example, a checksum of the first page description, a magic number of the first page description, a version number, or a serial number.

[0072] If it is determined that the first page description of the dirty pages associated with the first node and the second node stored on the MD PD data protection layer 241 and the UD PD data protection layer 244 of the SSD layer is valid, the first page description is loaded for generating the mapping relationship described above.

[0073] If it is determined that the first page description of the dirty pages associated with the first node and the second node stored on the MD PD data protection layer 241 and the UD PD data protection layer 244 of the SSD layer is invalid, the validity of the second page description of the dirty pages associated with the first node and the second node stored on the MD PD data protection layer 241' and the UD PD data protection layer 244' of the SSD layer can be checked. For example, the associated parameters of the second page description can be obtained. The parameters can include, for example, a checksum of the second page description, a magic number of the second page description, a version number, or a serial number.

[0074] If it is determined that the second page description of the dirty pages associated with the first node and the second node stored on the MD PD data protection layer 241' and the UD PD data protection layer 244' of the SSD layer is valid, the stored second page description of the dirty pages associated with the first node and the second node can be loaded.

[0075] In this way, when the data associated with the dirty pages saved by one node in the SSD is damaged, the data associated with the dirty pages saved by its peer node can be used to recover the data, thereby improving the reliability of the storage system and reducing the risk of data loss when the NVRAM driver is offline or damaged. At the same time, the method can also identify and isolate the fault points during data protection and data unprotection, to further improve the reliability of the storage system.

[0076] Figure 4 A flowchart of a method 400 for storage management according to an embodiment of the present disclosure is shown. The method 400 can be implemented in the system 100 shown. Figure 1 The method 400 may, for example, be implemented by a computing device included in the system 100 shown. The method 400 may, for example, be implemented by a computing device included in the system 100 shown. Figure 1 The method 400 may, for example, be implemented by a computing device included in the system 100 shown. The method 400 may, for example, be implemented by a computing device included in the system 100 shown. Figure 1 The method 200 can be described in conjunction with the system 100 shown.

[0077] In the system 100 shown, the first node and the second node are peer nodes. Figure 4 In the system 100 shown, the first node and the second node are peer nodes.

[0078] In the system 100 shown, the first node and the second node are peer nodes.

[0079] In the system 100 shown, the first node and the second node are peer nodes.

[0080] In some embodiments, the computing device can generate a first mapping relationship of a set of target page descriptors associated with the first set of target dirty pages in the first target page description based on the set of target page descriptors. The computing device can determine a set of reference page descriptors based on the first mapping relationship and a first set of reference dirty pages associated with the first node obtained from a first dirty page storage layer for the first node of the second disk. The computing device can determine whether the set of reference page descriptors matches the set of target page descriptors. If it is determined that the set of reference page descriptors matches the set of target page descriptors, the computing device can recover the first set of target dirty pages based on the first set of reference dirty pages.

[0081] In some embodiments, if it is determined that the set of reference page descriptors does not match the set of target page descriptors, the computing device can generate a second mapping relationship of another set of target page descriptors associated with the first set of target dirty pages in the second target page description based on the other set of target page descriptors. The computing device can determine another set of reference page descriptors based on the second mapping relationship and a second set of reference dirty pages associated with the first node obtained from a second dirty page storage layer for a second node of the second disk. The computing device can determine whether the other set of reference page descriptors matches the other set of target page descriptors. If it is determined that the other set of reference page descriptors matches the other set of target page descriptors, the computing device can recover the first set of target dirty pages based on the second set of reference dirty pages.

[0082] In some embodiments, the computing device can generate a third mapping relationship of a set of target page descriptors associated with the second set of target dirty pages in the second target page description based on the set of target page descriptors. The computing device can determine a set of reference page descriptors based on the third mapping relationship and a third set of reference dirty pages associated with the second node obtained from a second dirty page storage layer for a second node of the second disk. The computing device can determine whether the set of reference page descriptors matches the set of target page descriptors. If it is determined that the set of reference page descriptors matches the set of target page descriptors, the computing device can recover the second set of target dirty pages based on the third set of reference dirty pages.

[0083] In some embodiments, if it is determined that the set of reference page descriptors does not match the set of target page descriptors, the computing device can generate a fourth mapping relationship of another set of target page descriptors associated with the second set of target dirty pages and the second set of target dirty pages based on the first target page description. The computing device can determine another set of reference page descriptors based on the fourth mapping relationship and a fourth set of reference dirty pages associated with the second node obtained from the first dirty page storage layer for the first node of the second disk. The computing device can determine whether the another set of reference page descriptors matches the another set of target page descriptors. If it is determined that the another set of reference page descriptors matches the another set of target page descriptors, the computing device can recover the first set of target dirty pages based on the fourth set of reference dirty pages.

[0084] In some embodiments, the computing device can verify whether the first target page description is valid based on parameters associated with the first target page description, the parameters comprising at least one of: a checksum of a set of page description pages included in the first target page description; a magic number of the first target page description, a version number of the first target page description, a sequence number of the first target page description. The computing device can verify the validity of the first target page description based on the parameters and if it is determined that the first target page description is valid, the computing device can generate the first mapping relationship based on the first target page description.

[0085] In some embodiments, if it is determined that the first target page description is invalid, the computing device can verify the validity of the second target page description based on parameters associated with the second target page description, the parameters comprising at least one of: a checksum of a set of page description pages included in the second target page description; a magic number of the second target page description, a version number of the second target page description, a sequence number of the second target page description. If it is determined that the second target page description is valid, the computing device can generate the first mapping relationship based on the second target page description.

[0086] Figure 5 A block diagram of a device 500 that can be used to implement embodiments of the present disclosure is shown schematically. The device 500 can be implemented as or included in a computing device at the system 100. Figure 1

[0087] As Figure 5 ​As shown in FIG. 5, the device 500 includes a central processing unit (CPU) 501 that can perform various suitable actions and processes in accordance with computer program instructions stored in a read-only memory (ROM) 502 or computer program instructions loaded into a random access memory (RAM) 503 from a storage unit 508. Various programs and data used by the device 500 can also be stored in the RAM 503 as required. The CPU 501, ROM 502, and RAM 503 are connected to each other by a bus 504. An input / output (I / O) interface 505 is also connected to the bus 504.

[0088] Various components in the device 500 are connected to the I / O interface 505, including an input unit 506, such as a keyboard, a mouse, etc.; an output unit 507, such as various types of displays, speakers, etc.; the storage unit 508, such as a magnetic disk, a magneto-optical disk, etc.; and a communication unit 509, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 509 allows the device 500 to exchange information / data with other devices through a computer network, such as the Internet, and / or various telecommunication networks.

[0089] The various processes and processes described above, such as the process 400, can be performed by the processing unit 501. For example, in some embodiments, the process 400 can be implemented as a computer software program tangibly embodied in a machine-readable medium, such as the storage unit 508. In some embodiments, part or all of the computer program can be loaded and / or installed on the device 500 via the ROM 502 and / or the communication unit 509. When the computer program is loaded into the RAM 503 and executed by the CPU 501, one or more steps of the process 400 described above can be performed.

[0090] As used herein, the term “includes” and its variants are to be read as open-ended terms that mean “includes, but is not limited to.” The term “based on” is to be interpreted as “based, at least in part, on.” The term “one embodiment” or “the embodiment” are to be interpreted as “at least one embodiment.” The terms “first,” “second,” etc. can refer to different or the same objects. Other explicit or implicit definitions can also be included herein.

[0091] As used herein, the term “determining” encompasses a wide variety of actions. For example, “determining” can include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database or another data structure), ascertaining and the like. Also, “determining” can include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and the like. Also, “determining” can include resolving, selecting, choosing, establishing and the like.

[0092] It should be noted that embodiments of the present disclosure can be realized by hardware, software, or a combination of software and hardware. The hardware portion can be realized by a special logic; the software portion can be stored in a memory and executed by a proper instruction execution system, such as a microprocessor or a specially designed hardware. Those skilled in the art can understand that the above-mentioned apparatus and method can be realized by computer executable instructions and / or included in processor control codes, such as providing the codes on a programmable memory or a data carrier, such as an optical or electronic signal carrier.

[0093] Moreover, although the operations of the method(s) of the present disclosure are described in a particular, sequential order, this order is not meant to be a limitation and is not intended to imply that there is an absolute requirement to perform the operations in the order described. The steps depicted in the flowcharts can be changed, performed in other orders, combined into a single step, and / or separated into multiple steps. Additionally or alternatively, certain steps can be omitted, and / or certain steps can be performed in combination with other steps. It should also be noted that the features and functions of two or more devices according to the present disclosure can be embodied in a single device. Conversely, the features and functions of one device described above can be further divided into multiple devices.

[0094] While the present disclosure has been described with reference to several particular embodiments, it is understood that the present disclosure is not limited to the particular embodiments disclosed. The present disclosure is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.

Claims

1. A method of storage management, comprising: writing, if it is determined that a first disk for dirty page storage has failed, first target page descriptions generated by a first node and associated with a first set of target dirty pages of the first node and a second set of target dirty pages of a second node to a first page description storage tier for the first node in a second disk, the second node being a peer node of the first node; writing, by the second node, second target page descriptions generated by the second node and associated with the first set of target dirty pages and the second set of target dirty pages to a second page description storage tier for the second node in the second disk; and if it is determined that the failure of the first disk has been eliminated, restoring the first set of target dirty pages and the second set of target dirty pages in the first disk based on at least one of the first target page descriptions and the second target page descriptions.

2. The method of claim 1, wherein restoring the first set of target dirty pages comprises: generating, based on a set of target page descriptors associated with the first set of target dirty pages in the first target page descriptions, a first mapping relationship of the set of target page descriptors to the first set of target dirty pages; determining a set of reference page descriptors based on the first mapping relationship and a first set of reference dirty pages associated with the first node obtained from a first dirty page storage tier for the first node of the second disk; determining whether the set of reference page descriptors matches the set of target page descriptors; and if it is determined that the set of reference page descriptors matches the set of target page descriptors, restoring the first set of target dirty pages based on the first set of reference dirty pages.

3. The method of claim 2, further comprising: if it is determined that the set of reference page descriptors does not match the set of target page descriptors, generating, based on another set of target page descriptors associated with the first set of target dirty pages in the second target page descriptions, a second mapping relationship of the other set of target page descriptors to the first set of target dirty pages; determining another set of reference page descriptors based on the second mapping relationship and a second set of reference dirty pages associated with the first node obtained from a second dirty page storage tier for the second node of the second disk; determining whether the other set of reference page descriptors matches the other set of target page descriptors; and if it is determined that the other set of reference page descriptors matches the other set of target page descriptors, restoring the first set of target dirty pages based on the second set of reference dirty pages.

4. The method of claim 1, wherein restoring the second set of target dirty pages comprises: generating, based on a set of target page descriptors associated with the second set of target dirty pages in the second target page descriptions, a third mapping relationship of the set of target page descriptors to the second set of target dirty pages; determining a set of reference page descriptors based on the third mapping relationship and a third set of reference dirty pages associated with the second node obtained from a second dirty page storage tier for the second node of the second disk; ​ ​ ​ determining whether the set of reference page descriptors matches the set of target page descriptors; and restoring the second set of target dirty pages based on the third set of reference dirty pages if it is determined that the set of reference page descriptors matches the set of target page descriptors.

5. The method of claim 4, further comprising: generating a fourth mapping relationship between another set of target page descriptors associated with the second set of target dirty pages and the second set of target dirty pages based on the first target page descriptor if it is determined that the set of reference page descriptors does not match the set of target page descriptors; determining the another set of reference page descriptors based on the fourth mapping relationship and a fourth set of reference dirty pages associated with the second node obtained from a first dirty page storage layer for the first node of the second disk; determining whether the another set of reference page descriptors matches the another set of target page descriptors; and restoring the first set of target dirty pages based on the fourth set of reference dirty pages if it is determined that the another set of reference page descriptors matches the another set of target page descriptors.

6. The method of claim 2, wherein generating the first mapping relationship comprises: checking validity of the first target page descriptor based on parameters associated with the first target page descriptor, the parameters comprising at least one of: a checksum of a set of page descriptor pages included in the first target page descriptor; a magic number of the first target page descriptor, a version number of the first target page descriptor, a sequence number of the first target page descriptor; and checking the validity of the first target page descriptor based on the parameters; and generating the first mapping relationship based on the first target page descriptor if it is determined that the first target page descriptor is valid.

7. The method of claim 6, further comprising: checking validity of the second target page descriptor based on parameters associated with the second target page descriptor if it is determined that the first target page descriptor is invalid, the parameters comprising at least one of: a checksum of a set of page descriptor pages included in the second target page descriptor; a magic number of the second target page descriptor, a version number of the second target page descriptor, a sequence number of the second target page descriptor; and generating the first mapping relationship based on the second target page descriptor if it is determined that the second target page descriptor is valid.

8. An electronic device, comprising: a processor; and a memory coupled with the processor, the memory holding instructions to be executed, which when executed by the processor cause the electronic device to perform acts comprising: writing a first target page descriptor generated by a first node and associated with a first set of target dirty pages of the first node and a second set of target dirty pages of a second node to a first page descriptor storage layer for the first node in a second disk if it is determined that a first disk for dirty page storage fails, the second node being a peer node of the first node; ​ ​ ​ ​ writing, to a second page description storage layer for a second node in the second disk, second target page descriptions associated with the first set of target dirty pages and the second set of target dirty pages generated by the second node; and restoring, if it is determined that the failure of the first disk has been eliminated, the first set of target dirty pages and the second set of target dirty pages in the first disk based on at least one of the first target page descriptions and the second target page descriptions.

9. The apparatus of claim 8, wherein the first set of target dirty pages is restored by: generating, based on a set of target page descriptors associated with the first set of target dirty pages in the first target page descriptions, a first mapping relationship of the set of target page descriptors and the first set of target dirty pages; determining a set of reference page descriptors based on the first mapping relationship and a first set of reference dirty pages associated with the first node obtained from a first dirty page storage layer for a first node of the second disk; determining whether the set of reference page descriptors matches the set of target page descriptors; and restoring the first set of target dirty pages based on the first set of reference dirty pages if it is determined that the set of reference page descriptors matches the set of target page descriptors.

10. The apparatus of claim 9, the actions further comprising: generating, based on another set of target page descriptors associated with the first set of target dirty pages in the second target page descriptions, a second mapping relationship of the other set of target page descriptors and the first set of target dirty pages if it is determined that the set of reference page descriptors does not match the set of target page descriptors; determining another set of reference page descriptors based on the second mapping relationship and a second set of reference dirty pages associated with the first node obtained from a second dirty page storage layer for a second node of the second disk; determining whether the other set of reference page descriptors matches the other set of target page descriptors; and restoring the first set of target dirty pages based on the second set of reference dirty pages if it is determined that the other set of reference page descriptors matches the other set of target page descriptors.

11. The apparatus of claim 8, wherein the second set of target dirty pages is restored by: generating, based on a set of target page descriptors associated with the second set of target dirty pages in the second target page descriptions, a third mapping relationship of the set of target page descriptors and the second set of target dirty pages; determining a set of reference page descriptors based on the third mapping relationship and a third set of reference dirty pages associated with the second node obtained from a second dirty page storage layer for a second node of the second disk; determining whether the set of reference page descriptors matches the set of target page descriptors; and restoring the second set of target dirty pages based on the third set of reference dirty pages if it is determined that the set of reference page descriptors matches the set of target page descriptors.

12. The apparatus of claim 11, the actions further comprising: if it is determined that the set of reference page descriptors does not match the set of target page descriptors, generating a fourth mapping relationship of another set of target page descriptors associated with the second set of target dirty pages and the second set of target dirty pages based on the first target page description in the first target page description; determining another set of reference page descriptors based on the fourth mapping relationship and a fourth set of reference dirty pages associated with the second node obtained from a first dirty page storage layer for the first node of the second disk; determining whether the another set of reference page descriptors matches the another set of target page descriptors; and if it is determined that the another set of reference page descriptors matches the another set of target page descriptors, recovering the first set of target dirty pages based on the fourth set of reference dirty pages.

13. The apparatus of claim 9, wherein the first mapping relationship is generated by: checking whether the first target page description is valid based on parameters associated with the first target page description, the parameters comprising at least one of: a checksum of a set of page description pages included in the first target page description; a magic number of the first target page description, a version number of the first target page description, and checking the validity of the first target page description based on the parameters; and the sequence number described by the first target page; if it is determined that the first target page description is valid, generating the first mapping relationship based on the first target page description.

14. The apparatus of claim 13, the actions further comprising: if it is determined that the first target page description is invalid, checking the validity of the second target page description based on parameters associated with the second target page description, the parameters comprising at least one of: a checksum of a set of page description pages included in the second target page description; a magic number of the second target page description, a version number of the second target page description, a sequence number of the second target page description; and if it is determined that the second target page description is valid, generating the first mapping relationship based on the second target page description.

15. A computer program product tangibly stored on a non-transitory computer readable medium and comprising machine executable instructions that, when executed, cause a machine to perform the steps of the method of any one of claims 1 to 7. ​ ​ ​ ​

Citation Information

Patent Citations

  • Method and system for implementing cache data backup of distributed storage system

    CN107329708A

  • Method and device for processing data request by storage system

    CN110018796A