# US 8,751,767 B2 · Computer system and its control method

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

- Number: US 8,751,767 B2
- Document ID: US8751767B2
- Status: Granted
- Kind: B2
- Application number: 12/594,226
- Filed: 2009-04-23
- Published: 2011-07-28
- Granted: 2014-06-10
- Earliest claimed: 2009-04-23
- Assignees: Hitachi, Ltd.
- Applicants: Hironobu Inoue; Shintaro Inoue; Yutaka Takata
- Inventors: Hironobu Inoue; Shintaro Inoue; Yutaka Takata
- Web page: https://patentgrep.com/patent/US8751767B2

## CPC

- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- 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/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 12/023: {Free address space management}
- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- G06F 2206/1012: Load balancing
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

This invention intends to provide the computer system equalizing the storage capacity immediately and appropriately to multiple real logical areas dynamically providing storage capacity to virtual logical areas. This invention is the computer system which, in the process of performing the dynamic allocation of storage areas to virtual volumes in response to accesses from the higher-level device, when adding pool volumes to the pool, migrates storage areas among multiple logical areas, and maintains the balance of the storage capacity.

## Claims

### Claim 1

A computer system, comprising:
a storage device including a plurality of storage areas;
a virtual volume including a plurality of virtual logical areas;
a plurality of pool volumes including the plurality of storage areas managed as a plurality of segments; and
a controller configured to:
manage the plurality of pool volumes as a group that relates to the virtual volume;
allocate the plurality of storage areas of the plurality of pool volumes in the group to the virtual volume in segment units, when the virtual volume receives a write request to store data indicated by the write request, where an order of the allocation of the plurality of storage areas is determined based on a storage capacity ratio of the plurality of pool volumes in the croup, and store the data indicated by the write request; and
when a new pool volume is added to the group, migrate data, in a part of the plurality of allocated storage areas, to a plurality of new storage areas in the new pool volume, and allocate the plurality of new storage areas to the virtual volume in segment units, based on a capacity of each of the plurality of pool volumes in the group and a number of segments in each of the plurality of pool volumes that are allocated to the virtual volume.

### Claim 2 (depends on 1)

The computer system according to claim 1,
wherein the controller is further configured to:
change the allocation of the plurality of allocated storage areas among the plurality of pool volumes in the group in segment units so that the allocated storage capacity ratios of the plurality of pool volumes are balanced.

### Claim 3 (depends on 2)

The computer system according to claim 2, further comprising:
at least one other storage device having a plurality of storage areas,
wherein the controller is further configured to:
release an allocation of one or more segments of a first storage area to the virtual volume, the first storage area being included in a first pool volume that has a higher allocated storage capacity ratio among the plurality of pool volumes including the storage areas provided by the storage device and the at least one other storage device; and
allocate one or more segments of a second storage area to the virtual volume, the second storage area being included in a second pool volume that has a lower allocated storage capacity ratio among the plurality of pool volumes including the storage areas provided by the storage device and the at least one other storage device.

### Claim 4 (depends on 1)

The computer system according to claim 1,
wherein the controller is further configured to:
suspend the allocation of segments of the plurality of new storage areas to the virtual volume, when the virtual volume is accessed.

### Claim 5 (depends on 1)

The computer system according to claim 1,
wherein the controller is further configured to:
connect an unallocated storage area of the plurality of storage areas to a free queue in segment units;
release the allocated storage area of the plurality of storage areas in segment units, from the free queue, upon allocating the unallocated storage area of the plurality of storage areas to the virtual volume; and
allocate the released storage area to the virtual volume in segment units.

### Claim 6 (depends on 1)

The computer system according to claim 1,
wherein the controller is further configured to:
not migrate data in an event of failure in a hardware component in the storage device.

### Claim 7 (depends on 1)

The computer system according to claim 1,
wherein the controller is further configured to:
display a progress of the migration of data by displaying a number of segments that are allocated to the virtual volume, for each of the plurality of pool volumes in the group.
