# US 8,788,755 B2 · Mass data storage system and method of operating thereof

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,755 B2
- Document ID: US8788755B2
- Status: Granted
- Kind: B2
- Application number: 13/270,725
- Filed: 2011-10-11
- Published: 2012-05-10
- Granted: 2014-07-22
- Earliest claimed: 2010-07-01
- Assignees: Infinidat Ltd.
- Applicants: Julian Satran; Efraim Zeidner; Yechiel Yochai
- Inventors: Julian Satran; Efraim Zeidner; Yechiel Yochai
- Web page: https://patentgrep.com/patent/US8788755B2

## CPC

- G06F 3/064: {Management of blocks}
- G06F 3/0625: {Power saving in storage systems}
- G06F 3/0644: {Management of space entities, e.g. partitions, extents, pools}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 12/0284: {Multiple user address space allocation, e.g. using different base addresses (interprocessor communication G06F15/163)}
- G06F 12/0868: Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
- G06F 12/1009: using page tables, e.g. page table structures
- G06F 2206/1004: Defragmentation
- G06F 2212/262: configured as RAID
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

There are provided a mass storage system comprising a control layer operatively coupled to a physical storage space and operable to interface with one or more clients and to present to said clients a plurality of logical volumes. The method of operating the storage system comprises: dividing one or more logical volumes into a plurality of statistical segments with predefined size; assigning to each given statistical segment a corresponding activity level characterizing statistics of I/O activity with regard to data portions within the given statistical segment, said statistics collected over a plurality of cycles of fixed counting length; and managing one or more data storage processes in the storage system (e.g. a background defragmentation process, a background garbage collection process, a destage management process, etc.) using said activity level.

## Claims

### Claim 1

A method of operating a storage system comprising a control layer operable to interface with one or more clients and to present to said clients a plurality of logical volumes, said control layer comprising a cache memory and further operatively coupled to a physical storage space comprising a plurality of disk drives, the method comprising:
dividing one or more logical volumes into a plurality of statistical segments with predefined size;
assigning to each given statistical segment a corresponding activity level characterizing statistics of I/O activity with regard to data portions within the given statistical segment, said statistics collected over a plurality of cycles of fixed counting length; and
managing one or more data storage processes in the storage system using said activity level.

### Claim 2 (depends on 1)

The method of claim 1 wherein said activity level of a given statistical segment is characterized by an activity vector assigned to said given statistical segment, said activity vector characterized by at least one value obtained during a current cycle and by at least one value related to I/O statistics collected during at least one of the previous cycles.

### Claim 3 (depends on 1)

The method of claim 1 wherein at least one of said one or more data storage processes is selected from a group comprising a background defragmentation process; a background garbage collection process; and a destage management process.

### Claim 4 (depends on 3)

The method of claim 3 further comprising:
selecting one or more statistical segments with activity levels fitting a first selection criterion related a given data storage process; and
executing said given data storage process for one or more sets of data portions corresponding to the selected statistical segments, wherein said one or more sets of data portions fit a second selection criterion related a given data storage process.

### Claim 5 (depends on 1)

The method of claim 1 further comprising:
selecting one or more statistical segments with activity levels fitting a first defragmentation criterion; and
providing defragmentation of one or more sets of data portions corresponding to the selected statistical segments, wherein said one or more sets of data portions fit a second defragmentation criterion.

### Claim 6 (depends on 5)

The method of claim 5 further comprising:
reading to the cache memory said one or more sets of data portions to yield data portions to be defragmented;
consolidating data portions cached in the cache memory and corresponding to the same statistical segment into one or more consolidated write requests, wherein said data portions to be defragmented constitute at least part of data portions in the consolidated write requests; and
enabling writing said one or more consolidated write requests to one or more disk drives.

### Claim 7 (depends on 5)

The method of claim 5 wherein data portions constituting a given set of data portions are selected from a group comprising all data portions within a given stripe in a RAID group, all data portions within two or more consecutive stripes in a RAID group, and all data portions within two or more logically-related stripes in one or more RAID groups.

### Claim 8 (depends on 6)

The method of claim 6 wherein a given consolidated write request corresponds to a stripe in a RAID group.

### Claim 9 (depends on 6)

The method of claim 6 wherein writing the consolidated write request is provided in a write-out-of-place technique.

### Claim 10 (depends on 5)

The method of claim 5 wherein said activity level of a given statistical segment is characterized by an activity vector assigned to said given statistical segment, said activity vector characterized by at least one value obtained during a current cycle and by at least one value related to I/O statistics collected during at least one of the previous cycles, and wherein at least one of the values characterizing the activity vector is related to additional physical data space required resulting from the defragmentation of data portions within the statistical segment.

### Claim 11 (depends on 5)

The method of claim 5 further comprising handling a constantly updated list of statistical segments matching said first defragmentation criterion.

### Claim 12 (depends on 1)

The method of claim 1 further comprising:
selecting one or more statistical segments with activity levels fitting a first garbage collection criterion; and
providing re-arrangement of one or more sets of data portions corresponding to the selected statistical segments, wherein said re-arrangement enables releasing at least physical storage space corresponding to padded or outdated data portions within said one or more sets of data portions.

### Claim 13 (depends on 12)

The method of claim 12 further comprising:
reading to the cache memory said one or more sets of data portions to yield data portions to be re-arranged;
consolidating data portions cached in the cache memory and corresponding to the selected statistical segments into one or more consolidated write requests, wherein said data portions to be re-arranged constitute at least part of data portions in the consolidated write requests;
enabling writing said one or more consolidated write requests to one or more disk drives in write-out-of-place technique; and
upon writing the consolidated write request, releasing the physical space corresponding to said one or more sets of data portions.

### Claim 14 (depends on 12)

The method of claim 12 wherein data portions constituting a given set of data portions are selected from a group comprising all data portions within a given stripe in a RAID group, all data portions within two or more consecutive stripes in a RAID group, and all data portions within two or more logically-related stripes in one or more RAID groups, and wherein a given consolidated write request corresponds to a stripe in a RAID group.

### Claim 15 (depends on 1)

The method of claim 1 wherein the cache memory is operable to handle dirty data by managing a replacement sequence, the method further comprising:
configuring the replacement sequence to comprise a destage pool operable to handle data portions to be used for further generation of one or more consolidated write requests;
dividing the destage pool into a plurality of destage bins;
handling data portions corresponding to segments with similar access patterns within a common destage bin, wherein two or more segments have similar access patterns if distance between respective activity levels matches a predefined criteria;
consolidating data portions cached in the cache memory and corresponding to the same destage bin into one or more consolidated write requests; and
enabling writing said one or more consolidated write requests to one or more disk drives.

### Claim 16 (depends on 15)

The method of claim 15 wherein said pool is located at the bottom of the replacement sequence.

### Claim 17

A storage system comprising a physical storage space comprising a plurality of disk drives and operatively coupled to a control layer operable to interface with one or more clients and to present to said clients a plurality of logical volumes, wherein said control layer comprises a cache memory and is further operable:
to divide one or more logical volumes into a plurality of statistical segments with predefined size;
to assign to each given statistical segment a corresponding activity level characterizing statistics of I/O activity with regard to data portions within the given statistical segment, said statistics collected over a plurality of cycles of fixed counting length; and
to manage one or more data storage processes in the storage system using said activity levels.

### Claim 18 (depends on 17)

The storage system of claim 17 wherein said activity level of a given statistical segment is characterized by an activity vector assigned to said given statistical segment, said activity vector characterized by at least one value obtained during a current cycle and by at least one value related to I/O statistics collected during at least one of the previous cycles.

### Claim 19 (depends on 17)

The storage system of claim 17 wherein at least one of said one or more data storage processes is selected from a group comprising a background defragmentation process; a background garbage collection process; and a destage management process.

### Claim 20 (depends on 19)

The storage system of claim 19 wherein the storage control layer is further operable:
to select one or more statistical segments with activity levels fitting a first selection criterion related a given data storage process; and
to execute said given data storage process for one or more sets of data portions corresponding to the selected statistical segments, wherein said one or more sets of data portions fit a second selection criterion related a given data storage process.

### Claim 21 (depends on 18)

The storage system of claim 18 wherein the storage control layer is further operable to select one or more statistical segments with activity levels fitting a first defragmentation criterion; and wherein the storage control layer further comprises a defragmentation module operatively coupled to the cache memory and operable to enable defragmentation of one or more sets of data portions corresponding to the selected statistical segments, wherein said one or more sets of data portions fit a second defragmentation criterion.

### Claim 22 (depends on 21)

The storage system of claim 21 wherein the storage control layer is further operable to:
enable reading to the cache memory said one or more sets of data portions to yield data portions to be defragmented;
to consolidate data portions cached in the cache memory and corresponding to the same statistical segment into one or more consolidated write requests, wherein said data portions to be defragmented constitute at least part of data portions in the consolidated write requests; and
to enable writing said one or more consolidated write requests to one or more disk drives.

### Claim 23 (depends on 18)

The storage system of claim 18 wherein said activity level of a given statistical segment is characterized by an activity vector assigned to said given statistical segment, said activity vector characterized by at least one value obtained during a current cycle and by at least one value related to I/O statistics collected during at least one of the previous cycles, and wherein at least one of the values characterizing the activity vector is related to additional physical data space required resulting from the defragmentation of data portions within the statistical segment.

### Claim 24 (depends on 21)

The storage system of claim 21 wherein the storage control layer further comprises a defragmentation module, said defragmentation module is operable to handle a constantly updated list of statistical segments matching said first defragmentation criterion.

### Claim 25 (depends on 18)

The storage system of claim 18 wherein the storage control layer is further operable to select one or more statistical segments with activity levels fitting a first garbage collection criterion; and to provide re-arrangement of one or more sets of data portions corresponding to the selected statistical segments, wherein said re-arrangement enables releasing at least physical storage space corresponding to padded or outdated data portions within said one or more sets of data portions.

### Claim 26 (depends on 25)

The storage system of claim 25 wherein the storage control layer is further operable to read to the cache memory said one or more sets of data portions to yield data portions to be re-arranged;
to consolidate data portions cached in the cache memory and corresponding to the selected statistical segments into one or more consolidated write requests, wherein said data portions to be re-arranged constitute at least part of data portions in the consolidated write requests;
to enable writing said one or more consolidated write requests to one or more disk drives in write-out-of-place technique; and
upon writing the consolidated write request, to release the physical space corresponding to said one or more sets of data portions.

### Claim 27

A computer program product comprising a non-transitory computer readable medium storing computer readable program code for a computer operating a storage system comprising a control layer is operable to interface with one or more clients and to present to said clients a plurality of logical volumes, said control layer comprising a cache memory and further operatively coupled to a physical storage space comprising a plurality of disk drives, the computer program product comprising:
computer readable program code for causing the computer to divide one or more logical volumes into a plurality of statistical segments with predefined size;
computer readable program code for causing the computer to assign to each given statistical segment a corresponding activity level characterizing statistics of I/O activity with regard to data portions within the given statistical segment, said statistics collected over a plurality of cycles of fixed counting length; and
computer readable program code for causing the computer to manage one or more data storage processes in the storage system using said activity levels.
