IP Library › Granted Patent US 9,134,913
Granted Patent B2
US 9,134,913 · App. 13/432,213 · Granted Sep 15, 2015

Methods and structure for improved processing of I/O requests in fast path circuits of a storage controller in a clustered storage system

Inventors: James A. Rizzo (Austin, TX); Vinu Velayudhan (Fremont, CA); Adam Weiner (Henderson, NV); Gerald E. Smith (Niwot, CO)
Assignee: Avago Technologies General IP (Singapore) Pte Ltd
G06F3/0631G06F3/065G06F3/067G06F3/0613G06F3/0635G06F3/0683G06F13/12G06F13/28G06F13/423G06F2206/1012Y02B60/1228
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,134,913
App. No.
13/432,213
Granted
Sep 15, 2015
Kind
B2
Abstract

Methods and structure for improved processing of fast path I/O requests in a clustered storage system. In a storage controller of a clustered storage system, the controller comprises a fast path I/O request processing circuit tightly coupled with host system drivers for fast processing of requests directed to storage devices of a logical volume. The controller also comprises a logical volume I/O processing stack (typically implemented as programmed instructions) for processing I/O requests from a host system directed to a logical volume. Based on detecting a change of ownership of a device or volume and/or a change to logical to physical mapping of a logical volume, fast path I/O requests may be converted to logical volume requests based on mapping context information within the fast path I/O request and shipped within the clustered storage system for processing.

Claims (78)

1. A method comprising:

receiving, in a storage controller of a clustered storage system, a fast path Input/Output (I/O) request from an attached host, wherein the request includes a device identifier that indicates the device that the request is directed to;

determining whether the request can be processed by a fast path I/O request processing circuit of the storage controller;

responsive to determining that the fast path I/O request processing circuit of the storage controller can process the request, processing the request via the fast path I/O request processing circuit of the storage controller to bypass logical to physical mapping computations at the storage controller; and

responsive to determining that the fast path I/O request processing circuit of the storage controller cannot process the request, transferring the request within the clustered storage system for completion.

2. The method of claim 1

wherein the step of determining further comprises determining that the fast path I/O request processing circuit of the storage controller is enabled to determine that it can process the fast path I/O request, and

wherein the step of transferring further comprises transferring the request to a fast path I/O request processing circuit of another storage controller.

3. The method of claim 1

wherein the received fast path I/O request comprises mapping context information based on logical to physical mapping information used within the host system in generating the fast path I/O request,

wherein the step of transferring further comprises:

transferring the request to a logical volume I/O request processing stack of the controller; and

processing the fast path I/O request by operation of the logical volume I/O request processing stack of the storage controller, wherein the processing is in accordance with the mapping context information.

4. The method of claim 3

wherein the step of processing the fast path I/O request by operation of the logical volume I/O request processing stack further comprises:

generating a logical volume I/O request based on the fast path I/O request and the mapping context information; and

processing the logical volume I/O request by operation of the logical volume I/O request processing stack of the storage controller.

5. The method of claim 1

wherein the received fast path I/O request comprises mapping context information based on logical to physical mapping information used within the host system in generating the fast path I/O request,

wherein the step of transferring the fast path I/O request further comprises:

generating a logical volume I/O request based on the fast path I/O request and the mapping context information; and

shipping the generated logical volume I/O request to another storage controller for processing by operation of the other storage controller.

6. The method of claim 1

wherein the received fast path I/O request comprises mapping context information based on logical to physical mapping information used within the host system in generating the fast path I/O request,

the method further comprising:

determining, based on the mapping context information, whether the logical to physical mapping information used within the host system is current; and

responsive to determining that the logical to physical mapping information is not current, performing the additional steps of:

disabling the fast path I/O request processing circuit of the controller;

responsive to disabling the fast path I/O request processing circuit, processing subsequently received I/O request using a logical volume I/O request processing stack of the controller while the fast path I/O request processing circuit is disabled;

transmitting updated logical to physical mapping information from the storage controller to the host system;

receiving, in the storage controller, acknowledgement of receipt of the updated logical to physical mapping information from the host system; and

responsive to receipt of the acknowledgement, re-enabling the fast path I/O request processing circuit.

7. A storage controller in a clustered storage system comprising a plurality of interconnected storage controllers, the storage controller comprising:

a fast path I/O request processing circuit adapted to process a fast path I/O request directed to a device identified in the fast path I/O request, bypassing logical to physical mapping computations at the storage controller;

a logical volume I/O request processing stack adapted to process a logical I/O request directed to a device identified in the logical I/O request;

control logic coupled with the fast path I/O request processing circuit and coupled with the logical volume I/O request processing stack, the control logic adapted to determine whether an I/O request received from the attached host system is a fast path I/O request or a logical I/O request, the control logic further adapted to route the I/O request to the fast path I/O request processing circuit responsive to determining that the I/O request is a fast path I/O request and adapted to route the I/O request to the logical volume I/O request processing stack responsive to determining that the I/O request is a logical I/O request,

wherein the control logic is further adapted to detect that configuration information relating to the device has changed,

wherein the control logic, responsive to detecting change of configuration relating to the device, is further adapted to convert a fast path I/O request into a converted logical volume I/O request and to ship the converted logical volume I/O request within the clustered storage system for completion.

8. The controller of claim 7

wherein the configuration information comprises one or more of: ownership information relating to the device and logical to physical mapping information relating to the device.

9. The controller of claim 7

wherein the fast path I/O request comprises mapping context information based on logical to physical mapping information used by the host system in generating the fast path I/O request, and

wherein the control logic is further adapted to convert the previously received fast path I/O request into the converted logical volume I/O request based on the mapping context information.

10. The controller of claim 9

wherein the control logic is further adapted to detect that the storage controller is the present owner of the device, and

wherein the control logic is further adapted to ship the converted logical volume I/O request to the logical volume I/O request processing stack responsive to detecting that the storage controller is the present owner of the device.

11. The controller of claim 9

wherein the control logic is further adapted to detect that another storage controller of the clustered storage system is the present owner of the device, and

wherein the control logic is further adapted to ship the converted logical volume I/O request to said another storage controller responsive to detecting that said another storage controller is the present owner of the device.

12. The controller of claim 7

wherein the control logic is further adapted to update the logical to physical mapping information used by the host system responsive to detecting the change of configuration information relating to the device.

13. The controller of claim 7

wherein, responsive to detecting the change of configuration information relating to the device, the control logic is further adapted:

to disable the further use of the fast path I/O request processing circuit,

to process subsequently received I/O requests using the logical volume I/O request processing stack of the first storage controller while the fast path I/O request processing circuit is disabled,

to transmit updated logical to physical mapping information to the host system,

to receive acknowledgement of receipt of the updated logical to physical mapping information from the host system, and

to re-enable the fast path I/O request processing circuit responsive to receipt of the acknowledgement.

14. The controller of claim 7 further comprising:

a memory coupled with the control logic, the memory adapted to store logical to physical mapping information and adapted to store information indicative of which of the plurality of storage controllers presently owns the device.

15. In a clustered storage system comprising a plurality of storage controllers, a method operable in a storage controller for processing an I/O request, the method comprising:

receiving an I/O request directed to a device from an attached host system, the I/O request comprising indicia that it should be processed by a fast path I/O request processing circuit of the storage controller to bypass logical to physical mapping computations at the storage controller, rather than by a logical volume I/O request processing stack of the storage controller,

wherein the I/O request further comprises mapping context information indicative of logical to physical mapping information used by the host system to generate the I/O request;

determining from the mapping context information that the I/O request was generated by the host system using stale logical to physical mapping information;

converting the I/O request to a converted logical volume I/O request; and

shipping the converted logical volume I/O request within the clustered storage system for processing to completion.

16. The method of claim 15 further comprising:

updating logical to physical mapping information on the attached host system responsive to the determination that the host system's logical to physical mapping information is stale.

17. The method of claim 15 further comprising:

determining that the device is presently owned by another storage controller of the clustered storage system,

wherein the step of shipping further comprises shipping the converted logical volume I/O request to said another storage controller.

18. The method of claim 15 further comprising:

determining that the device is presently owned by the storage controller of the clustered storage system, and

wherein the step of shipping further comprises shipping the converted logical volume I/O request to the logical volume I/O request processing stack of the storage controller.

19. The method of claim 15

wherein the step of converting further comprises converting the I/O request to a converted logical I/O request based on the mapping context information of the I/O request.

20. The method of claim 1 , wherein:

determining that the fast path I/O request processing circuit of the storage controller cannot process the fast path I/O request comprises determining that mapping context information used by the fast path I/O request is out of date.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2012
From: RIZZO, JAMES A.; VELAYUDHAN, VINU; WEINER, ADAM; SMITH, GERALD E.
To: LSI CORPORATION
Reel/Frame 027944/0661 →
Continuity (2)
Provisional Application 61532585 · Sep 9, 2011
Related Publication 20130067125A1 · Mar 14, 2013