Patent ID: 8688916
Filing Date: 2014-04-01
Classification: G06F

Abstract:
1. A storage system comprising a cache memory having a first area and a second area, the first area being managed as a storage area for storing cache information used for chunk redundancy elimination processing or data redundancy elimination processing and the second area being managed as a storage area for storing data, a storage apparatus for storing data and information for managing the data, and a controller for controlling I/O processing on the cache memory or the storage apparatus based on an access request from an access requestor, wherein when receiving a write access request from the access requestor, the controller divides a data group constituting a data block, which is an access target, into a plurality of data sub-blocks, manages each data sub-block as a chunk, searches the first area first and then the storage apparatus based on each chunk, and judges whether or not chunk storage information, indicating that each chunk is stored in the storage apparatus, exists in the first area or the storage apparatus; and if a negative result is obtained for the judgment, the controller executes chunk storage processing for storing each chunk in the storage apparatus, creates the chunk storage information indicating that each chunk is stored in the storage apparatus, and stores it in the storage apparatus; and if an affirmative result is obtained for the judgment, the controller eliminates the chunk storage processing for storing each chunk in the storage apparatus; and if the chunk storage information does not exist in the first area, the controller stages the chunk storage information from the storage apparatus to the first area at least on condition that the first area has an unused area, and wherein when receiving the access request from the access requestor, the controller sorts each chunk into a plurality of groups based on its listed order in the data block, manages the chunks on a group basis, calculates a hash value for identifying each chunk with respect to each chunk belonging to any of the groups, searches the first area first and then the storage apparatus based on each calculated hash value, and judges whether or not chunk group information, in which information indicating that each chunk is stored in the storage apparatus is registered on a group basis, exists in the first area or the storage apparatus; and if a negative result is obtained for the judgment of the first area and an affirmative result is obtained for the judgment of the storage apparatus, the controller calculates a coefficient based on a plurality of elements constituting chunk group information corresponding to the group to which the relevant chunk belongs and a number of redundancies per chunk in relation to a number of data blocks stored in the storage apparatus, wherein the number of redundancies is a number of times each data block refers to each chunk in a chunk group; and if the calculated coefficient is equal to or more than a threshold for judging whether the chunk group information stored in the storage apparatus should be staged to the first area or not, and if an unused area exists in the first area, the controller stages the stored chunk group information, as the chunk storage information, from the storage apparatus to the first area.