Storage system and control method for data-type redundancy and non-volatile data management
In each of a plurality of nodes constituting a storage system, when there is data to be stored in a segment allocated from a cache, the node determines, for the segment, whether redundancy (redundant data of the data in the segment is transferred to another node) and whether non-volatilization (data in the segment is stored in a non-volatile area) are required according to a type of the data, and controls, based on a result of the determination, whether to perform the redundancy of data in the segment and whether to perform the non-volatilization of data in the segment.
1 . A storage system comprising:
a plurality of nodes each including a memory in which a cache is provided and a processor connected to the memory, wherein
in each of the plurality of nodes, when there is data to be stored in a segment allocated from the cache, the processor is configured to:
determine, for the segment, whether redundancy which is to transfer redundant data of the data in the segment to another node is required, and whether non-volatilization which is to store the data in the segment into a non-volatile area is required according to a type of the data, and
control, based on the determination, whether to perform the redundancy of the data in the segment and whether to perform the non-volatilization of the data in the segment, and
for each of the plurality of nodes, the non-volatile area is an area based on one or more non-volatile media inside or outside the node,
the plurality of nodes are a plurality of secondary nodes constituting a secondary storage system,
among the plurality of secondary nodes, a first secondary node has
a secondary journal volume which is a volume in which a journal is stored, the journal including data to be written into a primary volume in a primary storage system and metadata including a sequence number indicating an order in which the data is to be written,
a secondary volume that forms a pair with the primary volume in the primary storage system,
a first secondary cache that is a cache in the secondary node, and
a first secondary processor that is a processor in the secondary node,
the first secondary processor is configured to:
allocate, from the first secondary cache, the segment in which the journal is to be stored,
when the data to be stored in the allocated segment is the journal, determine for the segment that the redundancy is not required, and
when it is determined for the segment that the redundancy is not required, not perform the redundancy which is to write the journal in the segment to the secondary journal volume and transfer the redundant data of the journal in the segment to a second secondary node having a secondary mirror volume that is a mirror volume of the secondary volume, and
for each of the plurality of secondary nodes, the volume is an area based on one or more non-volatile media inside or outside the secondary node.
2 . The storage system according to claim 1 , wherein
when the data to be stored in the allocated segment is the journal, determine for the segment that the that the non-volatilization is not required, and
when it is determined for the segment that neither the redundancy nor the non-volatilization is required, perform neither the redundancy, nor the non-volatilization which is to store the journal in the segment into the non-volatile area, and
for each of the plurality of secondary nodes, the volume is an area based on one or more non-volatile media inside or outside the secondary node.
3 . The storage system according to claim 2 , wherein
the first secondary processor is configured to:
allocate, from the first secondary cache, the segment in which the data in the journal is to be stored,
when the data stored in the allocated segment is the data in the journal, determine for the segment that the redundancy is required and that the non-volatilization is not required, and
when it is determined for the segment that the redundancy is required but the non-volatilization is not required, perform the redundancy which is to write the data in the segment to the secondary volume and transfer the redundant data of the data in the segment to the second secondary node, but does not perform the non-volatilization which is to store the data in the segment into the non-volatile area.
4 . The storage system according to claim 2 , wherein
the primary storage system includes a plurality of primary nodes which are the plurality of nodes,
among the plurality of primary nodes, a first primary node has a primary journal volume which is a volume in which a journal is stored, the primary volume, a first primary cache which is a cache in the primary node, and a first primary processor which is a processor in the primary node,
the first primary processor is configured to:
allocate, from the first primary cache, the segment in which the journal is to be stored,
when the data to be stored in the allocated segment is the journal, determine for the segment that the redundancy is required, and that the non-volatilization is also required, and
when it is determined for the segment that both the redundancy and the non-volatilization are required, perform both the redundancy which is to write the journal in the segment to the primary journal volume and transfer the redundant data of the journal in the segment to a second primary node having a primary mirror volume that is a mirror volume of the primary volume, and the non-volatilization, which is to store the journal in the segment in the non-volatile area, and
for each of the plurality of primary nodes, the volume is an area based on one or more non-volatile media inside or outside the primary node.
5 . The storage system according to claim 4 , wherein
the first primary processor is configured to:
allocate, from the first primary cache, the segment in which data included in a journal and from a host is to be stored,
when the data to be stored in the allocated segment is the data from the host, determine for the segment that the redundancy is required and that the non-volatilization is also required, and
when it is determined for the segment that both the redundancy and the non-volatilization are required, perform both the redundancy which is to write the data in the segment to the primary volume and transfer the redundant data of the data in the segment to the second primary node, and the non-volatilization which is to store the data in the segment into the non-volatile area.
6 . The storage system according to claim 2 , wherein
the first secondary processor is configured to update the sequence number of the journal that is already reflected after the data is written to the secondary volume, and notify the primary storage system of the updated sequence number, and
the primary storage system is configured to purge, from the primary storage system, the journal having the sequence number up to the sequence number notified by the first secondary processor.
7 . The storage system according to claim 2 , wherein
the first secondary processor is configured to, when it is detected that a failure occurs in the pair, notify the primary storage system of the failure in the pair, and
the first secondary node receives a journal including data representing a difference between the secondary volume and the primary volume from the primary storage system that receives the notification, and the first secondary processor is configured to allocate the segment from the first secondary cache and store the journal into the segment.
8 . The storage system according to claim 7 , wherein
the pair including the secondary volume and the primary volume is formed in response to a pair forming request from the primary storage system, and
in response to the notification, the first secondary node receives the pair forming request from the primary storage system, and in a process performed in response to the pair forming request, the first secondary node receives the journal including the data as the difference from the primary storage system.
9 . The storage system according to claim 1 , wherein
the processor is configured to, when it is determined for the segment that the non-volatilization is not required, write the data in the segment to an instance store in one of the nodes which includes the processor.
10 . The storage system according to claim 1 , wherein
the redundant data is replicate data or parity data.
11 . A storage control method to be executed by each of a plurality of nodes constituting a storage system, the method comprising:
when there is data to be stored into a segment allocated from a cache,
the node performing redundancy-and-non-volatilization determination that is determination for the segment as to whether redundancy which is to transfer redundant data of the data in the segment to another node is required, and whether non-volatilization which is to store the data in the segment into a non-volatile area is required according to a type of the data, and
the node controlling, based on the determination, whether to perform the redundancy of the data in the segment and whether to perform the non-volatilization of the data in the segment, wherein
the plurality of nodes are a plurality of secondary nodes constituting a secondary storage system,
among the plurality of secondary nodes, a first secondary node has
a secondary journal volume which is a volume in which a journal is stored, the journal including data to be written into a primary volume in a primary storage system and metadata including a sequence number indicating an order in which the data is to be written,
a secondary volume that forms a pair with the primary volume in the primary storage system,
a first secondary cache that is a cache in the secondary node, and
a first secondary processor that is a processor in the secondary node,
the first secondary processor is configured to:
allocate, from the first secondary cache, the segment in which the journal is to be stored,
when the data to be stored in the allocated segment is the journal, determine for the segment that the redundancy is not required, and
when it is determined for the segment that the redundancy is not required, not perform the redundancy which is to write the journal in the segment to the secondary journal volume and transfer the redundant data of the journal in the segment to a second secondary node having a secondary mirror volume that is a mirror volume of the secondary volume, and
for each of the plurality of secondary nodes, the volume is an area based on one or more non-volatile media inside or outside the secondary node.
12 . A storage system comprising:
a plurality of nodes each including a memory in which a cache is provided and a processor connected to the memory, wherein
in each of the plurality of nodes, when there is data to be stored in a segment allocated from the cache, the processor is configured to:
determine, for the segment, whether redundancy which is to transfer redundant data of the data in the segment to another node is required, and whether non-volatilization which is to store the data in the segment into a non-volatile area is required according to a type of the data, and
control, based on the determination, whether to perform the redundancy of the data in the segment and whether to perform the non-volatilization of the data in the segment, and
for each of the plurality of nodes, the non-volatile area is an area based on one or more non-volatile media inside or outside the node,
the plurality of nodes are a plurality of secondary nodes constituting a secondary storage system,
among the plurality of secondary nodes, a first secondary node has
a secondary journal volume which is a volume in which a journal is stored, the journal including data to be written into a primary volume in a primary storage system and metadata including a sequence number indicating an order in which the data is to be written,
a secondary volume that forms a pair with the primary volume in the primary storage system,
a first secondary cache that is a cache in the secondary node, and
a first secondary processor that is a processor in the secondary node,
the first secondary processor is configured to:
allocate, from the first secondary cache, the segment in which the journal is to be stored,
when the data to be stored in the allocated segment is the journal, determine for the segment that the non-volatilization is not required, and
when it is determined for the segment that the non-volatilization is not required, not perform the non-volatilization which is to store the journal in the segment into the non-volatile area, and
for each of the plurality of secondary nodes, the volume is an area based on one or more non-volatile media inside or outside the secondary node.
13 . A storage control method to be executed by each of a plurality of nodes constituting a storage system, the method comprising:
when there is data to be stored into a segment allocated from a cache,
the node performing redundancy-and-non-volatilization determination that is determination for the segment as to whether redundancy which is to transfer redundant data of the data in the segment to another node is required, and whether non-volatilization which is to store the data in the segment into a non-volatile area is required according to a type of the data, and
the node controlling, based on the determination, whether to perform the redundancy of the data in the segment and whether to perform the non-volatilization of the data in the segment, wherein
the plurality of nodes are a plurality of secondary nodes constituting a secondary storage system,
among the plurality of secondary nodes, a first secondary node has
a secondary journal volume which is a volume in which a journal is stored, the journal including data to be written into a primary volume in a primary storage system and metadata including a sequence number indicating an order in which the data is to be written,
a secondary volume that forms a pair with the primary volume in the primary storage system,
a first secondary cache that is a cache in the secondary node, and
a first secondary processor that is a processor in the secondary node,
the first secondary processor is configured to:
allocate, from the first secondary cache, the segment in which the journal is to be stored,
when the data to be stored in the allocated segment is the journal, determine for the segment that the non-volatilization is not required, and
when it is determined for the segment that the non-volatilization is not required, not perform the non-volatilization which is to store the journal in the segment into the non-volatile area, and
for each of the plurality of secondary nodes, the volume is an area based on one or more non-volatile media inside or outside the secondary node.