Alignment adjustment in a tiered storage system
First Claim
Patent Images
1. A method, comprising:
- monitoring storage access operations from initiators;
determining if data blocks for the storage access operations are located in a storage media;
forwarding the storage access operations to a storage target when the data blocks for the storage operations are not located in the storage media;
identifying address alignments between the storage access operations and the data blocks in storage media for different read sizes;
maintaining a count for each of the address alignments for each of the different read sizes for the storage access operations;
identifying a dominant one of the address alignments based on the count for each of the address alignments for each of the different read sizes;
clearing all data blocks in the storage media and copying new data blocks from the storage target into the storage media according to the dominant one of the address alignments.
12 Assignments
0 Petitions
Accused Products
Abstract
A storage proxy monitors storage access operations. Different address alignments are identified between the storage access operations and data blocks in a storage media. A dominant one of the address alignments is identified. Data blocks are mapped into the storage media to remove the dominant address alignment. An array of counters can be used to track the address alignments for different storage access sizes and the address alignment associated with the highest number of storage access operations is used as the dominant address alignment.
89 Citations
19 Claims
-
1. A method, comprising:
-
monitoring storage access operations from initiators; determining if data blocks for the storage access operations are located in a storage media; forwarding the storage access operations to a storage target when the data blocks for the storage operations are not located in the storage media; identifying address alignments between the storage access operations and the data blocks in storage media for different read sizes; maintaining a count for each of the address alignments for each of the different read sizes for the storage access operations; identifying a dominant one of the address alignments based on the count for each of the address alignments for each of the different read sizes; clearing all data blocks in the storage media and copying new data blocks from the storage target into the storage media according to the dominant one of the address alignments. - View Dependent Claims (2, 3, 4, 5, 6, 8, 9)
-
-
7. A method, comprising:
-
monitoring storage access operations; identifying address alignments between the storage access operations and data blocks in a storage media; identifying groups of the address alignments for different read sizes that provide a same alignment with the data blocks; identifying one of the groups of address alignments with a highest number of the storage access operations; using a largest one of the address alignments in the identified one of the groups as a dominant one of the address alignments; and mapping new data blocks into the storage media according to the dominant one of the address alignments.
-
-
10. An apparatus, comprising:
at least one processor configured to; identify different alignment offsets between starting addresses of read operations and starting addresses of locations of data blocks containing data for the read operations; identify different read sizes for the read operations; identify a number for each of the different alignment offsets for each of the different read sizes; determine a preferred one of the different alignment offsets based on the number for each of the different alignment offsets for each of the different read sizes; and store new data blocks into address locations in a storage device based on the preferred one of the different alignment offsets. - View Dependent Claims (11, 12, 13)
-
14. An apparatus, comprising:
-
at least one processor configured to; store data blocks in a storage device using a first address block size; receive storage access requests that use a second address block size; identify alignment differentials between the first address block size and the second address block size; use counters to track a number of the storage access requests for each of the alignment differentials, wherein different sets of the counters are associated with different read sizes; and sum together values in each of the different sets of counters to identify a dominant one of the alignment differentials and map the data blocks into the storage device according to the dominant one of the alignment differentials.
-
-
15. An apparatus, comprising:
-
at least one processor configured to; store data blocks in a storage device using a first address block size; receive storage access requests that use a second address block size; identify alignment differentials between the first address block size and the second address block size; use sets of counters to identify the alignment differentials for different read sizes that provide a same alignment with the data blocks in the storage device; sum values in each of the sets of counters; identify one of the sets of counters having a largest one of the summed values; use a largest one of the alignment differentials associated with the identified one of the sets of counters as a dominant one of the alignment differentials; and aligning subsequent data blocks according to the dominant one of the alignment differentials.
-
-
16. A storage system, comprising:
-
a processor configured to; operate as a storage proxy to store blocks of data from a storage device into a tiering media; determine if the blocks of data for storage access requests are located in the tiering media; forward the storage access requests to the storage device for the blocks of data not located in the tiering media; identify address alignment offsets between the storage access requests and the blocks of data in the tiering media; and copy new blocks of data from the storage device into the tiering media according to the address alignment offsets;
whereinthe storage proxy includes; an analysis engine configured to identify the address alignment offsets between the storage access requests and the blocks of data in the tiering media; and maintain a count of each of the address alignment offsets for each of a plurality of different read sizes in the storage access requests. - View Dependent Claims (17, 18, 19)
-
Specification