Selection and placement of volumes in a storage system using stripes

US9996463B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9996463-B2
Application numberUS-201514937685-A
CountryUS
Kind codeB2
Filing dateNov 10, 2015
Priority dateNov 10, 2015
Publication dateJun 12, 2018
Grant dateJun 12, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Provided are a computer program product, system, and method for determining the location for volumes of data being initially stored within a storage space, regardless of the physical location of the data. The storage space includes stripes composed of volumes, which can be logically represented as a utilization histogram of stripe locations offset from one another. Sometime the stripes are fully allocated with one large volume or partially allocated with multiple, arbitrary-sized smaller volumes. When there are multiple smaller volumes that do not utilize all of the available stripe space, gaps form. To minimize the creation of such gaps, when a volume of data is initially stored, a start location to place the volume of data is selected by using selection criteria as guidance.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer program product for managing storage volumes of a storage system, comprising: a process for determining, by a volume placement module, offset locations in a storage space comprised of a plurality of storage devices in the storage system for placement of a storage volume to be stored across the storage devices, wherein the storage volume can be placed starting at the determined offset locations; calculating, by the volume placement module, a utilization histogram representing a current volume allocation within the storage space; and a process for selecting, by the volume placement module, one of the determined offset locations to optimize utilization of allocated storage space, wherein the selecting includes evaluating selection criteria used to evaluate each of the determined offset locations in the utilization histogram based on the current volume allocation within the storage space, wherein the selection criteria includes at least one of: a process for preventing peaks of storage blocks in the utilization histogram; a process for reducing a number of edges between storage blocks in the utilization histogram; and a process for filling a lowest unallocated storage space in the utilization histogram. 2. The computer program product of claim 1 , wherein the volume placement module further includes a process for initiating volume placement at the selected offset location of the storage space. 3. The computer program product of claim 1 , wherein the selection criteria includes all of: the process for preventing peaks of storage blocks in the utilization histogram; the process for reducing a number of edges between storage blocks in the utilization histogram; and the process for filling a lowest unallocated storage space in the utilization histogram. 4. A system for managing storage volumes of a storage system, comprising: a processor; and a memory for executing processes of a manager module, wherein the manager module determines offset locations in a storage space comprised of a plurality of storage devices in the storage system for placement of a storage volume to be stored across the storage devices, wherein the storage volume can be placed starting at the determined offset locations; calculates a utilization histogram representing a current volume allocation within the storage space; and selects one of the determined offset locations to optimize utilization of allocated storage space, wherein the selecting one of the determined offset locations includes evaluating selection criteria to evaluate each of the determined offset locations in the utilization histogram based on the current volume allocation within the storage space, wherein the selection criteria includes at least one of: a process for preventing peaks of storage blocks in the utilization histogram; a process for reducing a number of edges between storage blocks in the utilization histogram; and a process for filling a lowest unallocated storage space in the utilization histogram. 5. The system of claim 4 , wherein the manager module further includes a process for initiating volume placement at the selected offset location of the storage space. 6. The system of claim 4 , wherein the selection criteria includes all of: the process for preventing peaks of storage blocks in the utilization histogram; the process for reducing a number of edges between storage blocks in the utilization histogram; and the process for filling a lowest unallocated storage space in the utilization histogram. 7. The system of claim 4 , wherein allocated storage space includes at least one stripe having at least one allocated volume, the allocated volume being partitioned into data blocks. 8. A method for managing storage volumes of a storage system, comprising: determining, by a volume placement module, offset locations in a storage space comprised of a plurality of storage devices in the storage system for placement of a storage volume to be stored across the storage devices, wherein the storage volume can be placed starting at the determined offset locations; calculating, by the volume placement module, a utilization histogram representing a current volume allocation within the storage space; and selecting, by the volume placement module, one of the determined offset locations to optimize utilization of allocated storage space, wherein the selecting includes evaluating selection criteria to evaluate each of the determined offset locations in the utilization histogram based on the current volume allocation within the storage space, wherein the selection criteria includes at least one of: a process for preventing peaks of storage blocks in the utilization histogram; a process for reducing a number of edges between storage blocks in the utilization histogram; and a process for filling a lowest unallocated storage space in the utilization histogram. 9. The method of claim 8 , wherein the volume placement module further includes a process for initiating volume placement at the selected offset location of the storage space. 10. The method of claim 8 , wherein the selection criteria includes all of: the process for preventing peaks of storage blocks in the utilization histogram; the process for reducing a number of edges between storage blocks in the utilization histogram; and the process for filling a lowest unallocated storage space in the utilization histogram. 11. The method of claim 8 , wherein allocated storage space includes at least one stripe having at least one allocated volume, the allocated volume being partitioned into data blocks. 12. The computer program product of claim 1 , wherein the offset locations are defined by a row and offset within the row of a data block within a utilization histogram of data blocks at which to start the storage volume, wherein the utilization histogram illustrates a logical allocation of previously allocated blocks within gaps. 13. The system of claim 4 , wherein the offset locations are defined by a row and offset within the row of a data block within a utilization histogram of data blocks at which to start the storage volume, wherein the utilization histogram illustrates a logical allocation of previously allocated blocks within gaps. 14. The method of claim 9 , wherein the offset locations are defined by a row and offset within the row of a data block within a utilization histogram of data blocks at which to start the storage volume, wherein the utilization histogram illustrates a logical allocation of previously allocated blocks within gaps.

Assignees

Inventors

Classifications

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

  • Network storage, e.g. SAN or NAS · CPC title

  • Space efficiency improvement · CPC title

  • Storage comprising a plurality of storage devices · CPC title

  • Configuration or reconfiguration · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9996463B2 cover?
Provided are a computer program product, system, and method for determining the location for volumes of data being initially stored within a storage space, regardless of the physical location of the data. The storage space includes stripes composed of volumes, which can be logically represented as a utilization histogram of stripe locations offset from one another. Sometime the stripes are full…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F12/0646. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 12 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).