Method and system for compression of data for block mode access storage
First Claim
Patent Images
1. For use in a storage network operable with a block mode access storage protocol, a method of operating a compression system operatively coupled with at least one computer and with at least one storage logical unit accommodating compressed data, said method comprising:
- a. creating in respect to the storage logical unit a corresponding virtual logical unit configured to virtually represent in non-compressed form the data stored in the storage logical unit, wherein a size of the virtual logical unit corresponds to an estimated size of raw data which, being compressed, would substantially amount to a size of the storage logical unit and providing the following;
i). segmenting the virtual logical unit into one or more virtual storage portions (clusters);
ii). compressing the data represented in said clusters and thereby generating compressed sections of variable size within the storage logical unit corresponding to said clusters; and
iii). dividing at least one compressed section of said compressed sections into at least one fixed-size compression logical units (CLU) and creating a section table with at least one record describing each of said at least one compressed section, said record holding at least information on CLUs corresponding to the at least one compressed section and storage location pointers pertaining to said CLUs;
b) intercepting “
read given data range”
data access related requests from said at least one computer addressed to the storage logical unit and addressing said request to the virtual logical unit and providing the following operations;
i). determining a first cluster to be read in accordance with the request;
ii). determining a corresponding compressed section;
iii). determining the CLUs corresponding to said compressed section and storage location thereof by referring to the section table;
iv). facilitating restoring the data corresponding to said cluster from said CLUs; and
v). repeating the stages i)-v) for next clusters if said certain data range exceeds the first restored cluster, until all data to be read are restored; and
c) facilitating mapping between the compressed data stored in the compressed sections and their representation at the virtual logical unit.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and system for creating, reading and writing compressed data for use with a block mode access storage. The compressed data are packed into plurality of compressed units and stored in a storage logical unit (LU). One or more corresponding compressed units may be read and/or updated with no need of restoring the entire storage logical unit whilst maintaining de-fragmented structure of the LU.
29 Citations
10 Claims
-
1. For use in a storage network operable with a block mode access storage protocol, a method of operating a compression system operatively coupled with at least one computer and with at least one storage logical unit accommodating compressed data, said method comprising:
-
a. creating in respect to the storage logical unit a corresponding virtual logical unit configured to virtually represent in non-compressed form the data stored in the storage logical unit, wherein a size of the virtual logical unit corresponds to an estimated size of raw data which, being compressed, would substantially amount to a size of the storage logical unit and providing the following; i). segmenting the virtual logical unit into one or more virtual storage portions (clusters); ii). compressing the data represented in said clusters and thereby generating compressed sections of variable size within the storage logical unit corresponding to said clusters; and iii). dividing at least one compressed section of said compressed sections into at least one fixed-size compression logical units (CLU) and creating a section table with at least one record describing each of said at least one compressed section, said record holding at least information on CLUs corresponding to the at least one compressed section and storage location pointers pertaining to said CLUs; b) intercepting “
read given data range”
data access related requests from said at least one computer addressed to the storage logical unit and addressing said request to the virtual logical unit and providing the following operations;i). determining a first cluster to be read in accordance with the request; ii). determining a corresponding compressed section; iii). determining the CLUs corresponding to said compressed section and storage location thereof by referring to the section table; iv). facilitating restoring the data corresponding to said cluster from said CLUs; and v). repeating the stages i)-v) for next clusters if said certain data range exceeds the first restored cluster, until all data to be read are restored; and c) facilitating mapping between the compressed data stored in the compressed sections and their representation at the virtual logical unit.
-
-
2. For use in a storage network operable with a block mode access storage protocol, a method of operating a compression system operatively coupled with at least one computer and with at least one storage logical unit accommodating compressed data, said method comprising:
-
a. creating in respect to the storage logical unit a corresponding virtual logical unit configured to virtually represent in non-compressed form the data stored in the storage logical unit, wherein a size of the virtual logical unit corresponds to an estimated size of raw data which, being compressed, would substantially amount to a size of the storage logical unit and providing the following; i). segmenting the virtual logical unit into one or more virtual storage portions (clusters); ii). compressing the data represented in said clusters and thereby generating compressed sections of variable size within the storage logical unit corresponding to said clusters; and iii). dividing at least one compressed section of said compressed sections into at least one fixed-size compression logical units (CLU) and creating a section table with at least one record describing each of said at least one compressed section, said record holding at least information on CLUs corresponding to the at least one compressed section and storage location pointers pertaining to said CLUs; b) intercepting “
write data at a given data range”
data access-related requests from said at least one computer addressed to the storage logical unit and addressing said request to the virtual logical unit and providing the following operations;i) determining first cluster to be updated thereby constituting the original cluster; ii) determining a corresponding original compressed section; iii) determining the CLUs corresponding to said original compressed section and storage location thereof by referring to the section table; iv) facilitating restoring the data from said original compressed section; v) calculating an offset of the updating data within corresponding cluster and facilitating the update at the given data range; vi) compressing the updated cluster into an updated compressed section; vii) facilitating overwriting said original compressed section with updated compressed section; viii) tip dating the section table; ix) repeating stages ii) to ix) for next clusters if the range of data to be written exceeds the first restored cluster, until all required data are written, c) handling a list of free CLUs released during writing data, said list is handled until the storage logical unit is disconnected; d) comparing the number No of CLUs required to said original compressed section and number Nu required to said updated compressed section and facilitating one of the following; i. overwriting all CLUs corresponding to the original compressed section with CLUs corresponding to the updated compressed section if No=Nu; ii. overwriting first Nu CLUs corresponding to the original compressed section with CLUs corresponding to the updated compressed section and updating the list of free CLUs about released CLUs if No>
Nu;iii. overwriting all CLUs corresponding to the original compressed section with CLUs corresponding to the updated compressed section and writing the rest of CLUs corresponding to the updated compressed section to the CLUs contained in the list of free CLUs, if No<
Nu<
No+Nf, where Nf is a number of CLUs in said list; andiv. overwriting all CLUs corresponding to the original compressed section with CLUs corresponding to the updated compressed section, writing the CLUs corresponding to the updated compressed section to the CLUs contained in the list of free CLUs, and continuous writing the rest of CLUs corresponding to the updated compressed section to next free storage location if No+Nf<
Nu; ande) facilitating mapping between the compressed data stored in the compressed sections and their representation at the virtual logical unit. - View Dependent Claims (3, 4, 5, 6)
-
-
7. For use in a storage network operable with a block mode access storage protocol, a compression system operatively coupled with at least one computer and with at least one storage logical unit, said system comprising:
-
a. means for compressing raw data to be stored in said at least one storage logical unit; b. means for creating in respect to the storage logical unit a corresponding virtual logical unit configured to virtually represent in non-compressed form the data stored in the storage logical unit, wherein a size of the virtual logical unit corresponds to an estimated size of raw data which, being compressed, would substantially amount to a size of the storage logical unit and including the following; i). means for segmenting the virtual logical unit into one or more virtual storage portions (clusters); ii). means for compressing the data represented in said clusters and thereby generating compressed section within the storage logical unit corresponding to said clusters; iii). means for dividing at least one compressed section into at least one fixed-size compression logical units (CLU) and creating a section table with at least one record describing each of said at least one compressed section, said record holding at least information on CLUs corresponding to the at least one compressed section and storage location pointers pertaining to said CLUs; c) means for intercepting “
read given data range”
data access related requests from said at least one computer addressed to the storage logical unit and addressing said request to the virtual logical unit, said means for intercepting further comprising;i) means for determining first cluster to be read in accordance with the request; ii) means for determining a corresponding compressed section; iii) means for determining the CLUs corresponding to said compressed section and storage location thereof by referring to the section table; iv) means for facilitating restoring the data corresponding to said cluster from said CLUs; and v) means for repeating the processing of said preceding means i)-v) for next clusters if said certain data range exceeds the first restored cluster, until all data to be read are restored; and d. means for facilitating mapping between the compressed data and their virtual accommodation at the virtual logical unit. - View Dependent Claims (8, 9, 10)
-
Specification