Patent ID: 8886909

Claim:
A method for allocating portions of storage area of a storage array, the method comprising: receiving, from a requesting entity, a request for allocation of a portion of storage area of a storage array, the storage array comprising a plurality of storage entities and a plurality of data buses for transferring data to and from the plurality of storage entities, wherein the plurality of storage entities is organized into at least one logical unit, and wherein each logical unit is subdivided into at least one slice; in response to receiving the request for allocation, selecting at least one slice for allocation for use by the requesting entity, wherein the at least one slice is selected based on anticipated utilization of storage array resources during access to data after it has been stored in the storage array, wherein selecting at least one slice for allocation includes reserving the at least one slice for use by a storage processor but not allocating the at least one slice to a logical unit until the slice is actually needed by the requesting entity; wherein each allocated slice is associated with one of the plurality of buses; wherein the selection is based on at least one of the number of allocated slices associated with each bus, the number of slices allocated from each storage entity, and the number of slices allocated from each logical unit; and wherein only slices that satisfy an affinity requirement are counted in determining the number of allocated slices associated with each bus, the number of slices allocated from each storage entity, and the number of slices allocated from each logical unit.