IP Library Granted Patent US 8,230,153
Granted Patent B2
US 8,230,153 · App. 11/625,182 · Granted Jul 24, 2012

Method and system for HBA assisted storage virtualization

Assignee: Broadcom 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 8,230,153
App. No.
11/625,182
Granted
Jul 24, 2012
Kind
B2
Abstract

Certain aspects of a method and system for host bus adapter assisted storage virtualization are disclosed. Aspects of one method may include loading storage virtualization functionality into one or more of: a storage driver, a network driver, a network interface card (NIC), and a host bus adapter. A SCSI request may be translated to obtain physical target information utilizing a translation table located on one or more of: the storage driver, the network driver, the NIC and the host bus adapter. At least a portion of a plurality of the translated SCSI requests may be cached on the host bus adapter or the NIC.

Claims (39)

1. A method for handling data in a communication network, the method comprising:

loading by an initiator, storage virtualization functionality into one or more of: a storage driver, a network driver, a network interface card, and/or a host bus adapter; and

translating by said initiator, a SCSI request to obtain physical target information based on a master translation table located on a storage virtualization machine remote from the storage virtualization functionality, if a virtual address corresponding to said SCSI request is not located in a translation table located with the storage virtualization functionality, wherein the translation table contains at least a subset of translation entries maintained in the master translation table.

2. The method according to claim 1 , comprising determining whether said virtual address corresponding to said SCSI request is located in said translation table.

3. The method according to claim 1 , comprising blocking subsequent SCSI requests with a logical unit number associated with said SCSI request until said virtual address corresponding to said SCSI request is located in said translation table.

4. The method according to claim 1 , comprising if no translation is available for said SCSI request, allowing SCSI requests, other than said SCSI request, which correspond to one or more of: logical unit numbers, targets, and/or initiator elements.

5. The method according to claim 1 , comprising updating said translation table based on said utilized master translation table located on said storage virtualization machine.

6. The method according to claim 1 , comprising caching at least a portion of a plurality of said translated SCSI requests on one or both of: said network interface card and said host bus adapter.

7. The method according to claim 1 , comprising modifying at least a portion of a plurality of parameters of said SCSI request before said translation of said SCSI request to obtain said physical target information.

8. The method according to claim 7 , wherein said plurality of parameters of said SCSI request comprise one or more of: a target address, a logical unit number, and/or a data offset.

9. The method according to claim 1 , comprising maintaining said translation table by one or both of: said network interface card and said host bus adapter.

10. The method according to claim 1 , wherein said initiator lacks host software to translate said SCSI request to obtain said physical target information.

11. The method according to claim 1 , wherein said loaded storage virtualization functionality resides on one or both of: a virtual machine monitor and a trusted guest operating system.

12. The method according to claim 1 , wherein said loaded storage virtualization functionality resides on a guest operating system.

13. The method according to claim 1 , wherein said loaded storage virtualization functionality resides on a subset of guest operating systems.

14. The method according to claim 1 , wherein said loaded storage virtualization functionality is communicated directly from a guest operating system to one or both of: said host bus adapter and said network interface card.

15. The method according to claim 1 , wherein said storage driver is an iSCSI driver.

16. The method according to claim 1 , wherein said network driver is an Ethernet driver serving an iSCSI request.

17. A system for handling data in a communication network, the system comprising:

one or more circuits for use in an initiator, said one or more circuits being operable to load storage virtualization functionality into one or more of: a storage driver, a network driver, a network interface card, and/or a host bus adapter; and

said one or more circuits are operable to translate a SCSI request to obtain physical target information based on a master translation table located on a storage virtualization machine remote from the storage virtualization functionality, if a virtual address corresponding to said SCSI request is not located in a translation table located with the storage virtualization functionality, wherein the translation table contains at least a subset of translation entries maintained in the master translation table.

18. The system according to claim 17 , wherein said one or more circuits are operable to determine whether said virtual address corresponding to said SCSI request is located in said translation table.

19. The system according to claim 17 , wherein said one or more circuits are operable to block subsequent SCSI requests with a logical unit number associated with said SCSI request until said virtual address corresponding to said SCSI request is located in said translation table.

20. The system according to claim 17 , wherein said one or more circuits are operable to allow SCSI requests, other than said SCSI request, which correspond to one or more of: logical unit numbers, targets, and/or initiator elements, if no translation is available for said SCSI request.

21. The system according to claim 17 , wherein said one or more circuits are operable to update said translation table based on said utilized master translation table located on said storage virtualization machine.

22. The system according to claim 17 , wherein said one or more circuits are operable to cache at least a portion of a plurality of said translated SCSI requests.

23. The system according to claim 17 , wherein said one or more circuits are operable to modify at least a portion of a plurality of parameters of said SCSI request before said translation of said SCSI request to obtain said physical target information.

24. The system according to claim 23 , wherein said plurality of parameters of said SCSI request comprise one or more of: a target address, a logical unit number, and/or a data offset.

25. The system according to claim 17 , wherein said one or more circuits are operable to maintain said translation table by one or both of: said network interface card and said host bus adapter.

26. The system according to claim 17 , wherein said initiator lacks host software to translate said SCSI request to obtain said physical target information.

27. The system according to claim 17 , wherein said loaded storage virtualization functionality resides on one or both of: a virtual machine monitor and a trusted guest operating system.

28. The system according to claim 17 , wherein said loaded storage virtualization functionality resides on a guest operating system.

29. The system according to claim 17 , wherein said loaded storage virtualization functionality resides on a subset of guest operating systems.

30. The system according to claim 17 , wherein said loaded storage virtualization functionality is communicated directly from a guest operating system to one or both of: said host bus adapter and said network interface card.

31. The system according to claim 17 , wherein said network driver is an Ethernet driver serving an iSCSI request.

32. A method for handling data in a communication network, the method comprising:

loading by an initiator, storage virtualization functionality into a host bus adapter;

translating by said initiator, a SCSI request to obtain physical target information based on a master translation table located on a storage virtualization machine remote from the storage virtualization functionality, if a virtual address corresponding to said SCSI request is not located in a translation table located with the storage virtualization functionality, wherein the translation table contains at least a subset of translation entries maintained in the master translation table; and

blocking by said initiator, subsequent SCSI requests with a logical unit number associated with said SCSI request until said virtual address corresponding to said SCSI request is located in said translation table.

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2007
From: ZUR, URI EL
To: BROADCOM CORPORATION
Reel/Frame 018945/0782 →
Continuity (2)
Provisional Application 60760447 · Jan 20, 2006
Related Publication 20070174850A1 · Jul 26, 2007