Data updating technology
First Claim
1. A data updating method performed in a storage system having a plurality of storage nodes forming a redundant array of independent disks (RAID), comprising:
- receiving, by a management node of the storage system, a write request carrying to-be-written data, wherein a size of the to-be-written data is smaller than a stripe size of the RAID;
obtaining, by the management node, an update data chunk from the to-be-written data;
sending, by the management node to a first storage node in the plurality of storage nodes, a first update request for updating a first data block of a stripe in the RAID, the first data block being stored in the first storage node, the first update request comprising the update data chunk and an update indicator having a first value selected according to the size of the to-be-written data being smaller than the stripe size;
in response to the update indicator in the first update request, storing, by the first storage node, information regarding the update data chunk into a new data node of a log chain of the first data block in a non-volatile memory (NVM) cache of the first storage node, wherein the information regarding the update data chunk comprises the update data chunk or a storage address of the update data chunk in the NVM cache, and wherein the NVM cache contains data representing the log chain of the first data block, the log chain comprises data nodes, each data node containing information regarding a data chunk to be written into the first data block in a corresponding data write event performed on the first data block; and
sending, by the first storage node, a backup request to a second storage node in the plurality of storage nodes, the backup request carrying the update data chunk for storing in the second storage node.
1 Assignment
0 Petitions
Accused Products
Abstract
A storage system includes a management node and a plurality of storage nodes forming a redundant array of independent disks (RAID). When the management node determines that not all data in an entire stripe is updated based on a received write request, the management node sends update data chunk obtained from to-be-written data to corresponding storage node. The storage node do not directly update, based on the received update data chunks, data block stored in storage device of the storage node, but store the update data chunk into non-volatile memories (NVM) cache of the storage node and send the update data chunk to another storage node to backup. According to the data updating method, write amplification problems caused in a stripe update process can be reduced, thereby improving update performance of the storage system.
11 Citations
17 Claims
-
1. A data updating method performed in a storage system having a plurality of storage nodes forming a redundant array of independent disks (RAID), comprising:
-
receiving, by a management node of the storage system, a write request carrying to-be-written data, wherein a size of the to-be-written data is smaller than a stripe size of the RAID; obtaining, by the management node, an update data chunk from the to-be-written data; sending, by the management node to a first storage node in the plurality of storage nodes, a first update request for updating a first data block of a stripe in the RAID, the first data block being stored in the first storage node, the first update request comprising the update data chunk and an update indicator having a first value selected according to the size of the to-be-written data being smaller than the stripe size; in response to the update indicator in the first update request, storing, by the first storage node, information regarding the update data chunk into a new data node of a log chain of the first data block in a non-volatile memory (NVM) cache of the first storage node, wherein the information regarding the update data chunk comprises the update data chunk or a storage address of the update data chunk in the NVM cache, and wherein the NVM cache contains data representing the log chain of the first data block, the log chain comprises data nodes, each data node containing information regarding a data chunk to be written into the first data block in a corresponding data write event performed on the first data block; and sending, by the first storage node, a backup request to a second storage node in the plurality of storage nodes, the backup request carrying the update data chunk for storing in the second storage node. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A data updating method performed by a first storage node of a storage system having a management node and a plurality of storage nodes forming a redundant array of independent disks (RAID), comprising:
-
receiving from the management node a first update request for updating a first data block of a stripe in the RAID, the first data block being stored in the first storage node, the first update request comprising the update data chunk and an update indicator having a first value indicating that the update data chunk is to be cached by the first storage node; storing information regarding the update data chunk into a new data node of a log chain of the first data block in a non-volatile memory (NVM) cache of the first storage node in response to the update indicator in the first update request, wherein the information regarding the update data chunk comprises the update data chunk or a storage address of the update data chunk in the NVM cache, and wherein the NVM cache contains data representing the log chain of the first data block, the log chain comprises data nodes, each data node containing information regarding a data chunk to be written into the first data block in a corresponding data write event performed on the first data block; and sending a backup request to a second storage node in the plurality of storage nodes, the backup request carrying the update data chunk for storing in the second storage node. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A storage system, comprising:
-
a plurality of storage nodes forming a redundant array of independent disks (RAID), the plurality of storage nodes including a first storage node; a management node coupled to the plurality of storage nodes and configured to; receive a write request carrying to-be-written data, wherein a size of the to-be-written data is smaller than a stripe size of the RAID; obtain an update data chunk from the to-be-written data; send, to the first storage node in the plurality of storage nodes, a first update request for updating a first data block of a stripe in the RAID, the first data block being stored in the first storage node, the first update request comprising the update data chunk and an update indicator having a first value selected according to the size of the to-be-written data being smaller than the stripe size; the first storage node being configured to; store information regarding the update data chunk into a new data node of a log chain of the first data block in a non-volatile memory (NVM) cache of the first storage node in response to the update indicator in the first update request, wherein the information regarding the update data chunk comprises the update data chunk or a storage address of the update data chunk in the NVM cache, and wherein the NVM cache contains data representing the log chain of the first data block, the log chain comprises data nodes, each data node containing information regarding a data chunk to be written into the first data block in a corresponding data write event performed on the first data block; and send a backup request to a second storage node in the plurality of storage nodes, the backup request carrying the update data chunk for storing in the second storage node. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification