IP Library Granted Patent US 7,203,801
Granted Patent B1
US 7,203,801 · App. 11/346,038 · Granted Apr 10, 2007

System and method for performing virtual device I/O operations

Assignee: Veritas Operating Corporation
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 7,203,801
App. No.
11/346,038
Granted
Apr 10, 2007
Kind
B1
Abstract

Systems, methods, apparatus and software can make use of separated I/O processors and strategy processors (implemented in hardware and/or software) to perform virtual device I/O operations. I/O processors operating on cluster nodes, storage appliance ports, or other devices can receive I/O operation requests directed to virtual devices, e.g., volumes or virtual logical units. Information about the request is forwarded to a strategy processor, operating independently or as part of larger volume management software where corresponding physical device I/O operations are determined. The physical device I/O operations can include additional information about the operations, e.g., tag information and summary information, for use in processing the virtual device I/O request. The physical device I/O operations are sent back to the I/O processor which executes the operations and/or passes the operation on to the appropriate storage device. I/O completion messages are sent by the I/O processor in parallel to the source of the I/O request (e.g., a host or application) and to the strategy processor, providing an improvement in I/O latency.

Claims (95)

1. A method comprising:

receiving a plurality of physical device I/O operations, wherein the plurality of physical device I/O operations are related to a virtual device I/O operation request;

causing the plurality of physical device I/O operations to be executed against a storage device; and

transmitting a completion message to at least one of a host device and a virtualization device when all of the plurality of physical device I/O operations have been executed against the storage device, wherein the transmitting further comprises:

transmitting a first completion message to the host device; and

transmitting a second completion message to the virtualization device, wherein the transmitting the first completion message and the transmitting the second completion message are performed substantially in parallel.

2. The method of claim 1 further comprising:

buffering data associated with at least one of the plurality of physical device I/O operations.

3. The method of claim 1 further comprising:

releasing resource locks when all of the plurality of physical device I/O operations have been executed against the storage device.

4. The method of claim 1 further comprising:

receiving a message formed using information from the virtual device input/output (I/O) operation request;

forming the plurality of physical device I/O operations; and

transmitting the plurality of physical device I/O operations.

5. A method comprising:

receiving a plurality of physical device I/O operations, wherein the plurality of physical device I/O operations are related to a virtual device I/O operation request, and wherein at least one of the plurality of physical device I/O operations includes an operation portion and one or more of a tag portion or a summary information portion;

causing the plurality of physical device I/O operations to be executed against a storage device; and

transmitting a completion message to one or more of a host device or a virtualization device when all of the plurality of physical device I/O operations have been executed against the storage device.

6. The method of claim 5 further comprising:

monitoring the one or more of a tag portion or a summary information portion; and

transmitting the completion message in response to the monitoring.

7. The method of claim 5 wherein the tag portion associates related physical device I/O operations.

8. The method of claim 5 wherein the summary information portion further comprises one or more of:

a tag portion value corresponding to the plurality of physical device I/O operations;

a tag portion value corresponding to a final one of the plurality of physical device I/O operations; or

an acknowledgment message type.

9. A method comprising:

receiving a virtual device I/O operation request;

extracting information from the virtual device I/O operation request;

forming a message using the information from the virtual device I/O operation request;

transmitting the message to a strategy processor;

receiving the message formed using information from the virtual device input/output (I/O) operation request;

forming a plurality of physical device I/O operations;

transmitting the plurality of physical device I/O operations;

receiving the plurality of physical device I/O operations, wherein the plurality of physical device I/O operations are related to the virtual device I/O operation request;

causing the plurality of physical device I/O operations to be executed against a storage device; and

transmitting a completion message to one or more of a host device or a virtualization device when all of the plurality of physical device I/O operations have been executed against the storage device.

10. A computer readable medium comprising program instructions executable on a processor, the computer readable medium being at least one of an electronic storage medium, a magnetic storage medium, an optical storage medium, and a communications medium conveying signals encoding the instructions, wherein the program instructions are operable to implement each of:

receiving a plurality of physical device I/O operations, wherein the plurality of physical device I/O operations are related to a virtual device I/O operation request;

causing the plurality of physical device I/O operations to be executed against a storage device; and

transmitting a completion message to at least one of a host device and a virtualization device when all of the plurality of physical device I/O operations have been executed against the storage device; the instructions for transmitting further comprising instructions for:

transmitting a first completion message to the host device; and

transmitting a second completion message to the virtualization device, wherein the transmitting the first completion message and the transmitting the second completion message are performed substantially in parallel.

11. A computer readable medium comprising program instructions executable on a processor, the computer readable medium being at least one of an electronic storage medium, a magnetic storage medium, an optical storage medium, and a communications medium conveying signals encoding the instructions, wherein the program instructions are operable to implement each of:

receiving a plurality of physical device I/O operations, wherein the plurality of physical device I/O operations are related to a virtual device I/O operation request, and wherein at least one of the plurality of physical device I/O operations includes an operation portion and one or more of a tag portion or a summary information portion;

causing the plurality of physical device I/O operations to be executed against a storage device; and

transmitting a completion message to one or more of a host device or a virtualization device when all of the plurality of physical device I/O operations have been executed against the storage device.

12. The computer readable medium of claim 11 further comprising instructions for:

monitoring the one or more of a tag portion or a summary information portion; and

transmitting the completion message in response to the monitoring.

13. The computer readable medium of claim 11 wherein the tag portion associates related physical device I/O operations.

14. The computer readable medium of claim 11 wherein the summary information portion further comprises one or more of:

a tag portion value corresponding to the plurality of physical device I/O operations;

a tag portion value corresponding to a final one of the plurality of physical device I/O operations; or

an acknowledgment message type.

15. A system comprising:

a first memory; and

an input/output (I/O) processor configured to:

receive a plurality of physical device I/O operations, wherein the plurality of physical device I/O operations are related to a virtual device I/O operation request;

cause the plurality of physical device I/O operations to be executed against a storage device;

transmit a first completion message to the host device when all of the plurality of physical device I/O operations have been executed against the storage device; and

transmit a second completion message to the virtualization device when all of the plurality of physical device I/O operations have been executed against the storage device, wherein the transmitting the first completion message and the transmitting the second completion message are performed substantially in parallel.

16. A system comprising:

a first memory; and

an input/output (I/O) processor configured to:

receive a plurality of physical device I/O operations, wherein the plurality of physical device I/O operations are related to a virtual device I/O operation request and wherein at least one of the plurality of physical device I/O operations includes an operation portion and one or more of a tag portion or a summary information portion;

cause the plurality of physical device I/O operations to be executed against a storage device; and

transmit a completion message to at least one of a host device and a virtualization device when all of the plurality of physical device I/O operations have been executed against the storage device.

17. The system of claim 16 wherein the I/O processor is further configured to:

monitor the one or more of a tag portion or a summary information portion;

transmit the completion message in response to the monitoring.

18. The system of claim 16 wherein the tag portion associates related physical device I/O operations.

19. The system of claim 16 wherein the summary information portion further comprises one or more of:

a tag portion value corresponding to the plurality of physical device I/O operations;

a tag portion value corresponding to a final one of the plurality of physical device I/O operations; or

an acknowledgment message type.

20. The system of claim 16 wherein the I/O processor is further configured to:

transmit a first completion message to the host device; and

transmit a second completion message to the virtualization device, wherein the transmitting the first completion message and the transmitting the second completion message are performed substantially in parallel.

21. The system of claim 16 wherein the I/O processor is further configured to:

release resource locks when all of the plurality of physical device I/O operations have been executed against the storage device.

22. A system comprising:

a first memory; and

an input/output (I/O) processor configured to:

receive a plurality of physical device I/O operations, wherein the plurality of physical device I/O operations are related to a virtual device I/O operation request;

cause the plurality of physical device I/O operations to be executed against a storage device; and

transmit a completion message to one or more of a host device or a virtualization device when all of the plurality of physical device I/O operations have been executed against the storage device; and

a strategy processor configured to:

receive a message formed using information from the virtual device I/O operation request;

form the plurality of physical device I/O operations using the information from the virtual device I/O operation request; and

transmit the plurality of physical device I/O operations to the I/O processor.

23. An apparatus comprising:

a means for receiving a plurality of physical device I/O operations, wherein the plurality of physical device I/O operations are related to a virtual device I/O operation request, wherein at least one of the plurality of physical device I/O operations includes an operation portion and one or more of a tag portion or a summary information portion;

a means for causing the plurality of physical device I/O operations to be executed against a storage device; and

a means for transmitting a completion message to at least one of a host device and a virtualization device when all of the plurality of physical device I/O operations have been executed against the storage device.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CHANGE OF NAME Recorded Oct 1, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019899/0213 →
Continuity (2)
Continuation 1061020400 · Jun 30, 2003
Continuation In Part 1033037800 · Dec 27, 2002