# US 8,751,739 B1 · Data device spares

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

- Number: US 8,751,739 B1
- Document ID: US8751739B1
- Status: Granted
- Kind: B1
- Application number: 13/065,851
- Filed: 2011-03-31
- Granted: 2014-06-10
- Earliest claimed: 2011-03-31
- Assignees: EMC Corporation
- Applicants: Magnus E. Bjornsson
- Inventors: Magnus E. Bjornsson
- Web page: https://patentgrep.com/patent/US8751739B1

## CPC

- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0605: {by facilitating the interaction with a user or administrator}
- G06F 3/0644: {Management of space entities, e.g. partitions, extents, pools}
- G06F 3/0647: {Migration mechanisms}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Automatically allocating storage space for a storage pool includes providing at least one spares pool containing unused data devices and moving at least one the unused data devices to the storage pool in response to a write causing the available space of the storage pool to be exceeded and/or the available storage space of the storage pool exceeding a predetermined amount. The predetermined amount may be an amount of used storage space that varies according to at least one of: the size and activity level of the pool. The data devices may be logical devices. The pools may correspond to storage space in a single storage device or may correspond to storage space in multiple storage devices.

## Claims

### Claim 1

A method of automatically allocating storage space for a first storage pool, comprising:
providing at least one spares pool containing unused data devices, wherein the unused data devices of the at least one spares pool are available for use by any of a plurality of storage pools, including the first storage pool;
providing a cloud appliance that presents the at least one spares pool and at least the first storage pool of the plurality of storage pools as available to at least one host, wherein the cloud appliance is coupled via a network to the at least one host and to at least one storage device including underlying physical memory on which data corresponding to used data devices is stored;
determining when a write from the at least one host to available space of the first storage pool causes a predetermined threshold, corresponding to the available space of the first storage pool, to be exceeded; and
moving, by configuration of the cloud appliance, at least one of the unused data devices from the at least one spares pool to the first storage pool in response to determining that the predetermined threshold is exceeded.

### Claim 2 (depends on 1)

A method, according to claim 1, wherein the predetermined threshold corresponds to an amount of used storage space that varies according to at least one of: size and activity level of the first storage pool.

### Claim 3 (depends on 1)

A method, according to claim 1, wherein the data devices are logical devices.

### Claim 4 (depends on 1)

A method, according to claim 1, wherein the at least one spares pool and the first storage pool correspond to storage space in a single storage device.

### Claim 5 (depends on 1)

A method, according to claim 1, wherein the at least one spares pool and the first storage pool correspond to storage space in multiple storage devices.

### Claim 6 (depends on 1)

A method, according to claim 1, further comprising:
determining if the at least one spares pool contains sufficient data devices to provide the first storage pool with enough memory for data written thereto.

### Claim 7 (depends on 6)

A method, according to claim 6, further comprising:
performing error processing in response to the at least one spares pool not containing sufficient data devices.

### Claim 8

Computer software, provided in a non-transitory computer-readable medium, that automatically allocates storage space for a first storage pool, the software comprising:
executable code that provides at least one spares pool containing unused data devices, wherein the unused data devices of the at least one spares pool are available for use by any of a plurality of storage pools, including the first storage pool;
executable code that provides a cloud appliance that presents the at least one spares pool and at least the first storage pool of the plurality of storage pools as available to at least one host, wherein the cloud appliance is coupled via a network to the at least one host and to at least one storage device including underlying physical memory on which data corresponding to used data devices is stored;
executable code that determines when a write from the at least one host to available space of the first storage pool causes a predetermined threshold, corresponding to the available space of the first storage pool, to be exceeded; and
executable code that, by configuration of the cloud appliance, moves at least one of the unused data devices from the at least one spares pool to the first storage pool in response to determining that the predetermined threshold is exceeded.

### Claim 9 (depends on 8)

Computer software, according to claim 8, wherein the predetermined threshold corresponds to an amount of used storage space that varies according to at least one of: size and activity level of the first storage pool.

### Claim 10 (depends on 8)

Computer software, according to claim 8, wherein the data devices are logical devices.

### Claim 11 (depends on 8)

Computer software, according to claim 8, wherein the at least one spares pool and the first storage pool correspond to storage space in a single storage device.

### Claim 12 (depends on 8)

Computer software, according to claim 8, wherein the at least one spares pool and the first storage pool correspond to storage space in multiple storage devices.

### Claim 13 (depends on 12)

Computer software, according to claim 12, further comprising:
executable code that presents storage from multiple storage devices as a single storage space.

### Claim 14 (depends on 8)

Computer software, according to claim 8, further comprising:
executable code that determines if the at least one spares pool contains sufficient data devices to provide the first storage pool with enough memory for data written thereto.

### Claim 15 (depends on 14)

Computer software, according to claim 14, further comprising:
executable code that performs error processing in response to the at least one spares pool not containing sufficient data devices.

### Claim 16

A data storage device, comprising:
a plurality of disks; and
a plurality of directors coupled to the disks to handle dataflow therebetween, wherein the directors include:
executable code that provides at least one spares pool containing unused data devices, wherein the unused data devices of the at least one spares pool are available for use by any of a plurality of storage pools, including the first storage pool;
executable code that provides a cloud appliance that presents the at least one spares pool and at least the first storage pool of the plurality of storage pools as available to at least one host, wherein the cloud appliance is coupled via a network to the at least one host and to at least one storage device including underlying physical memory on which data corresponding to used data devices is stored;
executable code that determines when a write from the at least one host to available space of the first storage pool causes a predetermined threshold, corresponding to the available space of the first storage pool, to be exceeded; and
executable code that, by configuration of the cloud appliance, moves at least one of the unused data devices from the at least one spares pool to the first storage pool in response to determining that the predetermined threshold is exceeded.

### Claim 17 (depends on 16)

A data storage device, according to claim 16, wherein the predetermined threshold corresponds to an amount of used storage space that varies according to at least one of: the size and activity level of the first storage pool.

### Claim 18 (depends on 16)

A data storage device, according to claim 16, wherein the data devices are logical devices.

### Claim 19 (depends on 16)

A data storage device, according to claim 16, wherein the directors include executable code that determines if the at least one spares pool contains sufficient data devices to provide the first storage pool with enough memory for data written thereto.
