IP Library Granted Patent US 9,239,681
Granted Patent B2
US 9,239,681 · App. 14/372,929 · Granted Jan 19, 2016

Storage subsystem and method for controlling the storage subsystem

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,239,681
App. No.
14/372,929
Granted
Jan 19, 2016
Kind
B2
Abstract

The present invention provides a storage subsystem accessing a storage resource efficiently to thereby enhance throughput. The storage subsystem adopts a configuration where respective processor packages have ownership of the respective LDEVs, wherein an I/O command from a host specifying an address extending over a division position within a single LDEV is divided, and the I/O processing is executed in a shared manner by multiple processor packages. The I/O processing is executed by allocating a processor package that processes a specific storage area with priority.

Claims (56)

1. A storage subsystem coupled to a host computer, comprising:

a communication interface unit for transmitting and receiving an I/O command and data to/from the host computer;

a storage device unit for allocating a storage area to a volume storing the data from the host computer;

at least two processor packages including multiple processors for controlling the storage device unit and the communication interface unit; and

a shared memory for storing a control information including an ownership management information shared and accessed by the processors; wherein

an I/O processing of the volume from the host computer is divided based on the ownership management information, and the processing is executed in a shared manner by two or more processor packages, wherein

the ownership management information includes a volume identification information, a first processor package information having ownership of the volume, a division number of the volume, a boundary address indicating a division position, and a second processor package information in charge of the I/O processing of a divided area, wherein

when the division number is 1, the first processor package executes I/O processing of the volume; and

when the division number is 2 or more, the I/O processing is executed by:

a first processor package if an access start address of the I/O command and an address area computed based on a data transfer length is equal to or smaller than the boundary address, in other words, within a former half area;

a second processor package if the address is greater than the boundary address, in other words, a latter half area; and

if the I/O processing is extended over the former half area and the latter half area of the boundary address, the first processor package divides the I/O processing by the boundary address, wherein the I/O of the divided former half area is executed by the first processor package, and the I/O of the divided latter half area is executed by the second processor package.

2. The storage subsystem according to claim 1 , wherein

if the division number is 2 and the address area extends over the former half area and the latter half area of the boundary address, the first processor package executes I/O processing of the address area.

3. The storage subsystem according to claim 1 , wherein

the communication interface unit includes a communication controller for controlling the communication with the host computer, and a memory for storing the ownership management information; and

the communication controller

transfers the I/O command to the first processor package or the second processor package based on a volume information of the I/O command and the ownership management information.

4. The storage subsystem according to claim 3 , wherein

if the division number of the ownership management information is 1, the communication controller transfers the I/O command to the first processor package, and the first processor package executes I/O processing of the volume;

if the division number is 2, the communication controller

computes an address area subjected to I/O processing based on an access start address and a data transfer length of the I/O command;

in the former half area where the address area is equal to or smaller than the boundary address, the I/O command is transferred to the first processor package to have the I/O processing executed therein;

in the latter half area where the address area is greater than the boundary address, the I/O command is transferred to the second processor package to have the I/O processing executed therein; and

if the address area extends over the former half area and the latter half area of the boundary address, the I/O processing is divided by the boundary address, and the divided I/O processing is respectively executed by a first processor package for the divided former half area and a second processor package for the divided latter half area.

5. The storage subsystem according to claim 1 , wherein

the volume includes multiple fixed length areas to which the storage areas are allocated, wherein regarding a number of I/Os for each fixed length area from the host computer occurring within a given period of time and a number of I/Os extending over fixed length areas, the I/O processing is divided into at least two areas at a dividing position where total numbers of I/Os of successive fixed length areas become even and a number of I/Os extending over different areas becomes small, wherein I/O processing of the divided areas is executed by different processor packages.

6. The storage subsystem according to claim 1 , comprising multiple virtual computers operating in the host computer, and multiple virtual volumes allocating storage areas to the virtual computer, wherein I/O processing is performed by allocating a dedicated processor package in charge of I/O processing of the storage area allocated to the virtual computer set so as to process the I/O processing with priority.

7. A storage subsystem coupled to a host computer, comprising:

a communication interface unit for transmitting and receiving an I/O command and data to/from the host computer;

a storage device unit for allocating a storage area to a volume storing the data from the host computer;

at least two processor packages including multiple processors for controlling the storage device unit and the communication interface unit; and

a shared memory for storing a control information including an ownership management information shared and accessed by the processors; wherein

an I/O processing of the volume from the host computer is divided based on the ownership management information, and the divided I/O processing is executed by two or more processors within a processor package having ownership

the ownership management information includes a volume identification information, a first processor information having ownership of the volume, a division number of the volume, a boundary address indicating a division position, and a second processor information in charge of the I/O processing of a divided area, wherein

when the division number is 1, the first processor executes I/O processing of the volume; and

when the division number is 2 or more, the I/O processing is executed by:

a first processor if an access start address of the I/O command and an address area computed based on a data transfer length is equal to or smaller than the boundary address, in other words, within a former half area;

a second processor if the address is greater than the boundary address, in other words, a latter half area; and

if the I/O processing is extended over the former half area and the latter half area of the boundary address, the first processor divides the I/O processing by the boundary address, wherein the I/O of the divided former half area is executed by the first processor, and the I/O of the divided latter half area is executed by the second processor.

8. The storage subsystem according to claim 7 , wherein

if the division number is 2 and the address area extends over the former half area and the latter half area of the boundary address, the first processor executes I/O processing of the address area.

9. The storage subsystem according to claim 7 , wherein

the communication interface unit includes a communication controller for controlling the communication with the host computer, and a memory for storing the ownership management information; and

the communication controller

transfers the I/O command to the first processor or the second processor based on a volume information of the I/O command and the ownership management information.

10. The storage subsystem according to claim 9 , wherein

if the division number of the ownership management information is 1, the communication controller transfers the I/O command to the first processor, and the first processor executes I/O processing of the volume;

if the division number is 2, the communication controller

computes an address area subjected to I/O processing based on an access start address and a data transfer length of the I/O command;

in the former half area where the address area is equal to or smaller than the boundary address, the I/O command is transferred to the first processor package to have the I/O processing executed therein;

in the latter half area where the address area is greater than the boundary address, the I/O command is transferred to the second processor package to have the I/O processing executed therein; and

if the address area extends over the former half area and the latter half area of the boundary address, the I/O processing is divided by the boundary address, and the divided I/O processing is respectively executed by a first processor for the divided former half area and a second processor for the divided latter half area.

11. The storage subsystem according to claim 7 , wherein

the volume includes multiple fixed length areas where the storage areas are allocated, wherein regarding a number of I/Os for each fixed length area from the host computer occurring within a given period of time and a number of I/Os extending over fixed length areas, the I/O processing is divided into at least two areas at a dividing position where total numbers of I/Os of successive fixed length areas become even and a number of I/Os extending over different areas becomes small, wherein I/O processing of the divided areas is executed by different processors.

12. The storage subsystem according to claim 7 , comprising multiple virtual computers operating in the host computer, and multiple virtual volumes allocating storage areas to the virtual computer, wherein I/O processing is performed by allocating a dedicated processor package in charge of I/O processing of the storage area allocated to the virtual computer set so as to process the I/O processing with priority.

Assignments (2)
COMPANY SPLIT Recorded Aug 20, 2024
From: HITACHI, LTD.
To: HITACHI VANTARA, LTD.
Reel/Frame 069518/0761 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2014
From: WATANABE, KOJI; SHIGA, KENTA
To: HITACHI, LTD.
Reel/Frame 033339/0416 →