IP Library Granted Patent US 7,028,078
Granted Patent B1
US 7,028,078 · App. 10/610,204 · Granted Apr 11, 2006

System and method for performing virtual device I/O operations

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,028,078
App. No.
10/610,204
Granted
Apr 11, 2006
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 (72)

1. A method comprising:

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

forming at least one physical device I/O operation using the information from the virtual device I/O operation request, the at least one physical device I/O operation including an operation portion and at least one of a tag portion and a summary information portion; and

transmitting the at least one physical device I/O operation to an I/O processor.

2. The method of claim 1 further comprising:

receiving the virtual device I/O operation request;

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

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

transmitting the message to a strategy processor.

3. The method of claim 1 further comprising:

monitoring the at least one of a tag portion and a summary information portion;

sending a first response message in response to the monitoring the at least one of a tag portion and a summary information portion; and

sending a second response message in response to the monitoring the at least one of a tag portion and a summary information portion.

4. The method of claim 3 wherein the sending a first response message and the sending a second response message are performed substantially in parallel.

5. The method of claim 3 wherein the sending a first response message further comprises sending a first response message to a host in response to the monitoring the at least one of a tag portion and a summary information portion, and wherein the sending a second response message further comprises sending a second response message to a strategy processor in response to the monitoring the at least one of a tag portion and a summary information portion.

6. The method of claim 1 wherein the virtual device I/O operation request is directed to at least one of a volume and a logical unit.

7. The method of claim 1 further comprising:

receiving data corresponding to the virtual device I/O operation request.

8. The method of claim 7 further comprising:

storing the data in a buffer.

9. The method of claim 1 wherein the information from the virtual device I/O operation request includes a virtual device destination.

10. The method of claim 1 wherein the message includes an indication of a remote I/O operation request.

11. The method of claim 1 further comprising:

receiving at least one physical device I/O operation formed using the information from the virtual device I/O operation request; and

executing the at least one physical device I/O operation against at least one storage device.

12. The method of claim 1 encoded in a computer readable medium as instructions executable on a processor, the computer readable medium being one of an electronic storage medium, a magnetic storage medium, an optical storage medium, and a communications medium conveying signals encoding the instructions.

13. A system comprising:

a first memory; and

a strategy processor configured to:

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

form at least one physical device I/O operation using the information from the virtual device I/O operation request, the at least one physical device I/O operation including an operation portion and at least one of a tag portion and a summary information portion; and

transmit the at least one physical device I/O operation to an I/O processor.

14. The system of claim 13 further comprising:

an I/O processor configured to:

receive the virtual device I/O operation request;

store the virtual device I/O operation request in the memory;

form the message using information from the virtual device I/O operation request; and

transmit the message to the strategy processor.

15. The system of claim 14 further comprising:

a second memory; and

a second microprocessor coupled to the second memory, wherein the I/O processor is encoded as instructions stored in the second memory and executable on the second microprocessor.

16. The system of claim 15 wherein the first memory and the first microprocessor belong to a first computer system and the second memory and the second microprocessor belong to a second computer system, the first computer system being coupled to the second computer system via a network.

17. The system of claim 16 further comprising:

information about organization of at least one virtual device, the information about organization of at least one virtual device being stored in the second memory.

18. The system of claim 14 further comprising:

at least one storage device coupled to the I/O processor.

19. The system of claim 13 further comprising:

an I/O processor configured to:

monitor the at least one of a tag portion and a summary information portion;

send a first response message in response to the monitoring the at least one of a tag portion and a summary information portion; and

send a second response message in response to the monitoring the at least one of a tag portion and a summary information portion.

20. The system of claim 19 wherein the I/O processor is further configured to send the first response message and send the second response message substantially in parallel.

21. The system of claim 19 wherein the I/O processor is further configured to send the first response message to a host in response to the monitoring the at least one of a tag portion and a summary information portion, and wherein the I/O processor is further configured to send the second response message to a strategy processor in response to the monitoring the at least one of a tag portion and a summary information portion.

22. The system of claim 13 further comprising:

a first microprocessor coupled to the first memory, wherein the strategy processor is encoded as instructions stored in the first memory and executable on the first microprocessor.

23. The system of claim 13 wherein at least a portion of the memory forms a buffer, the buffer storing data corresponding to the virtual device I/O operation request.

24. The system of claim 13 wherein the information from the virtual device I/O operation request includes a virtual device destination.

25. The system of claim 13 wherein the message includes an indication of a remote I/O operation request.

26. The system of claim 13 wherein the strategy processor is part of a volume manager.

27. The system of claim 13 wherein the first memory and the strategy processor belong to at least one of a host computer system, a cluster node, a storage appliance, a network appliance, and a storage area network (SAN) switch.

28. An apparatus comprising:

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

a means for strategizing virtual device I/O operation requests, the strategizing including forming at least one physical device I/O operation using the information from the virtual device I/O operation request, the at least one physical device I/O operation including an operation portion and at least one of a tag portion and a summary information portion; and

a means for transmitting the at least one physical device I/O operation to an I/O processor.

29. The apparatus of claim 28 further comprising:

a means for receiving the virtual device input/output (I/O) operation request;

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

a means for transmitting the message to the means for strategizing virtual device I/O operation requests.

30. The apparatus of claim 28 further comprising:

a means for monitoring the at least one of a tag portion and a summary information portion;

a means for sending a first response message in response to monitoring the at least one of a tag portion and a summary information portion, and for sending a second response message in response to monitoring the at least one of a tag portion and a summary information portion.

31. The apparatus claim 30 wherein the means for sending the first and second response message is further for sending the first and second response message substantially in parallel.

Assignments (17)
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
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 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
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 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2004
From: VERITAS SOFTWARE CORPORATION
To: VERITAS OPERATING CORPORATION
Reel/Frame 015935/0897 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2003
From: SHARMA, GOPAL; KISELEV, OLEG; RAO, SANTOSH SHANKAR
To: VERITAS SOFTWARE CORPORATION
Reel/Frame 014270/0804 →