Fast accessible compressed thin provisioning volume
First Claim
1. A computerized data storage system comprising:
- a. at least one storage device;
b. a cache memory operatively coupled to a storage port and a data management controller, the cache memory comprises a data storing area storing data;
c. the storage port, wherein the storage port operable to connect to a host computer, wherein the storage port receives and sends I/O information required by the host computer, wherein the storage port is operable to receive a request to read data, and, in response to the request to read data, the storage port is operable to send the data stored in the data storing area of the cache memory and wherein the storage port is operable to receive a request to write data, and, in response to the request to write data, the storage port is operable to send write data to the data storing area of the cache memory;
d. a thin provisioning controller, the thin provisioning controller operable to manage virtual volumes to which one or more capacity pool pages from capacity pools are allocated, and to which at least one of the virtual volumes is attributed as a target of a compression;
e. a data compression controller operable to perform a compression operation on the capacity pool page, andf. a data decompression controller operable to perform a decompression operation on the capacity pool page;
wherein the data management controller is operable to;
store a first write data, which is corresponding to a first write request targeted to a first area in a first virtual volume not attributed as the target of a compression, in the cache memory,allocate a first capacity pool page from the capacity pool to store the first write data;
wherein the data management controller is further operable to;
store a second write data, which is corresponding to a second write request targeted to a second area in a second virtual volume attributed as the target of the compression, in the cache memory,transfer a data corresponding to the second write data to the cache memory from a second capacity pool page in the storage device after decompressing the data if the data was compressed,merge the data corresponding to the second write data received from the second capacity pool page in the storage device with the second write data stored in the cache memory,compress the merged data by the data compression controller, andallocate a third capacity pool page, other than the first or second capacity pool page, from the capacity pools to store the compressed and merged data.
1 Assignment
0 Petitions
Accused Products
Abstract
A computerized data storage system includes at least one storage device including a nonvolatile writable medium; a cache memory operatively coupled to the storage port and including a data storing area and a data management controller and a storage port. The storage port is operable to connect to a host computer, receive and send I/O information required by the host computer. The storage port is also operable to receive a request to read data, and, in response to the request to read data, the storage port is operable to send the data stored in the data storing area of the cache memory. The storage port is further operable to receive a request to write data, and, in response to the request to write data, the storage port is operable to send the write data to the data storing area of the cache memory. The storage system further includes a thin provisioning controller operable to provide a virtual volume having a virtual volume page, a capacity pool having a capacity pool page and manage a mapping between the virtual volume page and the capacity pool page. The storage system further includes a data compression controller operable to perform a compression operation, and a data decompression controller operable to perform a decompression operation.
15 Citations
42 Claims
-
1. A computerized data storage system comprising:
-
a. at least one storage device; b. a cache memory operatively coupled to a storage port and a data management controller, the cache memory comprises a data storing area storing data; c. the storage port, wherein the storage port operable to connect to a host computer, wherein the storage port receives and sends I/O information required by the host computer, wherein the storage port is operable to receive a request to read data, and, in response to the request to read data, the storage port is operable to send the data stored in the data storing area of the cache memory and wherein the storage port is operable to receive a request to write data, and, in response to the request to write data, the storage port is operable to send write data to the data storing area of the cache memory; d. a thin provisioning controller, the thin provisioning controller operable to manage virtual volumes to which one or more capacity pool pages from capacity pools are allocated, and to which at least one of the virtual volumes is attributed as a target of a compression; e. a data compression controller operable to perform a compression operation on the capacity pool page, and f. a data decompression controller operable to perform a decompression operation on the capacity pool page; wherein the data management controller is operable to; store a first write data, which is corresponding to a first write request targeted to a first area in a first virtual volume not attributed as the target of a compression, in the cache memory, allocate a first capacity pool page from the capacity pool to store the first write data; wherein the data management controller is further operable to; store a second write data, which is corresponding to a second write request targeted to a second area in a second virtual volume attributed as the target of the compression, in the cache memory, transfer a data corresponding to the second write data to the cache memory from a second capacity pool page in the storage device after decompressing the data if the data was compressed, merge the data corresponding to the second write data received from the second capacity pool page in the storage device with the second write data stored in the cache memory, compress the merged data by the data compression controller, and allocate a third capacity pool page, other than the first or second capacity pool page, from the capacity pools to store the compressed and merged data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 27, 28)
-
-
21. A method to be performed by a computerized data storage system, the method comprising:
-
a. managing capacity pool page for a capacity pool; b. providing a storing area storing data in a cache memory; c. receiving a request to read data from a host computer, and, in response to the request to read data, sending to the host computer the data stored in the cache memory; d. storing a first write data, which is corresponding to a first write request targeted to a first area in a first virtual volume not attributed as the target of a compression, in the cache memory; e. allocating a first capacity pool page from the capacity pool to store the first write data; f. storing a second write data, which is corresponding to a second write request targeted to a second area in a second virtual volume attributed as the target of the compression, in the cache memory; g. transferring a data corresponding to the second write data to the cache memory from a second capacity pool page in the storage device after decompressing the data if the data was compressed; h. merging the data corresponding to the second write data received from the second capacity pool page in the storage device with the second write data stored in the cache memory; i. compressing the merged data; and j. allocating a third capacity pool page, other than the first or second capacity pool page, from the capacity pool to store the compressed and merged data. - View Dependent Claims (22, 23, 29)
-
-
24. A non-transitory computer-readable medium embodying a set of instructions, the set of instructions, when executed by a storage system comprising one or more processors, causes the storage system to:
-
a. manage one or more capacity pool page for a capacity pool; b. provide a storing area storing data in a cache memory; c. receive a request to read data from a host computer, and, in response to the request to read data, send to the host computer the data stored in the cache memory; d. store a first write data, which is corresponding to a first write request targeted to a first area in a first virtual volume not attributed as the target of a compression, in the cache memory; e. allocate a first capacity pool page from the capacity pool to store the first write data; f. store a second write data, which is corresponding to a second write request targeted to a second area in a second virtual volume attributed as the target of the compression, in the cache memory; g. transfer a data corresponding to the second write data to the cache memory from a second capacity pool page in a storage device after decompressing the data if the data was compressed; h. merge the data corresponding to the second write data received from the second capacity pool page in the storage device with the second write data stored in the cache memory; i. compress the merged data; and j. allocate a third capacity pool page, other than the first or second capacity pool page, from the capacity pool to store the compressed and merged data. - View Dependent Claims (25, 26, 30)
-
-
31. A data storage system comprising:
-
a controller, which includes a cache memory temporality storing data, providing a plurality of virtual volumes; and at least one storage device providing its storing area as capacity pool including a plurality of fixed-length storing regions; wherein at least one of the virtual volume is attributed as a target of a compression;
the controller is operable to;store a first write data, which is corresponding to a first write request targeted to a first area in a first virtual volume not attributed as the target of the compression, in the cache memory, allocate first one or more fixed-length storing regions from the capacity pool to store the first write data; store a second write data, which is corresponding to a second write request targeted to a second area, to which second one or more fixed-length storing regions are allocated, in a second virtual volume attributed as the target of the compression, in the cache memory, read data corresponding to the second write data to the cache memory from second one or more fixed-length storing regions, decompress the read data if the read data was compressed, merge the decompressed read data with the second write data stored in the cache memory, compress the merged data, and allocate third one or more fixed-length storing regions from the capacity pool to store the compressed merged write data. - View Dependent Claims (32, 33, 34, 35, 36)
-
-
37. A data processing method executed by a storage system comprising:
-
a controller, which includes a cache memory temporality storing data, providing a plurality of virtual volumes; and at least one storage device providing its storing area as capacity pool including a plurality of fixed-length storing regions; wherein at least one of the virtual volume is attributed as a target of a compression; wherein the data processing method comprising steps of; storing a first write data, which is corresponding to a first write request targeted to a first area in a first virtual volume not attributed as the target of the compression, in the cache memory, allocating first one or more fixed-length storing regions from the capacity pool to store the first write data; storing a second write data, which is corresponding to a second write request targeted to a second area, to which second one or more fixed-length storing regions are allocated, in a second virtual volume attributed as the target of the compression, in the cache memory, reading data corresponding to the second write data to the cache memory from second one or more fixed-length storing regions, after decompressing the read data if the data was compressed, merging the decompressed read data with the second write data stored in the cache memory, compressing the merged data, and allocating third one or more fixed-length storing regions from the capacity pool to store the compressed merged write data. - View Dependent Claims (38, 39, 40, 41, 42)
-
Specification