IP Library Granted Patent US 9,756,143
Granted Patent B2
US 9,756,143 · App. 14/849,367 · Granted Sep 5, 2017

System and method for improving virtual media redirection speed in baseboard management controller (BMC)

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,756,143
App. No.
14/849,367
Granted
Sep 5, 2017
Kind
B2
Abstract

Certain aspects of the disclosure relates to a system and method of performing virtual media redirection. The system includes a baseboard management controller (BMC) connected to a host computing device through a communication interface, and a client computing device communicatively connected to the BMC through a network. In operation, the BMC emulates a virtual media for a media device, and establishes a virtual media connection to the client computing device through the network. Then the BMC stores the data from the media device in a host cache at the BMC and in a client cache at the client computing device by sectors. When the BMC receives a request from the host computing device through the communication interface to retrieve sectors from the media device, the BMC redirects the sectors being requested to the host computing device depending on where the requested sectors are stored.

Claims (104)

1. A system, comprising:

a host computing device;

a baseboard management controller (BMC) communicatively connected to the host computing device through a communication interface, the BMC having a processor and a non-volatile memory, wherein the non-volatile memory stores a virtual media redirection module; and

a client computing device communicatively connected to the BMC through a network, the client computing device having a memory;

wherein the virtual media redirection module, when executed at the processor of the BMC, is configured to:

emulate a virtual media for a media device, wherein the media device stores data of one or more media files;

establish a virtual media connection to the client computing device through the network, wherein a client cache is created at the memory of the client computing device;

store the data from the media device in a host cache by sectors;

instruct the client computing device to store the data from the media device in the client cache by sectors;

receive a request from the host computing device through the communication interface to retrieve one or more sectors from the media device; and

in response to the request, perform a virtual media redirection to redirect the sectors being requested to the host computing device, wherein the virtual media redirection comprises:

performing a local virtual media redirection when one or more of the sectors being requested are stored in the host cache; and

performing a remote virtual media redirection when one or more of the sectors being requested are stored in the client cache.

2. The system as claimed in claim 1 , wherein the communication interface is a universal serial bus (USB) interface.

3. The system as claimed in claim 1 , wherein the virtual media redirection module, when executed at the processor of the BMC, is configured to store the data from the media device in the host cache by sectors by:

retrieving the sectors of the data from the media device; and

storing the retrieved sectors in the host cache until the host cache is full.

4. The system as claimed in claim 3 , wherein the retrieved sectors from the media device comprises frequently requested sectors.

5. The system as claimed in claim 3 , wherein the virtual media redirection module, when executed at the processor of the BMC, is configured to store the data from the media device in the host cache by sectors when the BMC is idling.

6. The system as claimed in claim 1 , wherein the virtual media redirection module, when executed at the processor of the BMC, is configured to instruct the client computing device to store the data from the media device in the client cache by sectors by:

instructing the client computing device to retrieve the sectors of the data from the media device; and

instructing the client computing device to store the retrieved sectors in the client cache until the client cache is full.

7. The system as claimed in claim 6 , wherein the retrieved sectors from the media device comprises frequently requested sectors.

8. The system as claimed in claim 1 , wherein the host computing device is configured to:

receive a command to retrieve one or more of the media files from the media device;

determine the sectors corresponding to the one or more of the media files to be retrieved; and

generate the request to retrieve the sectors, and send the request to the BMC.

9. The system as claimed in claim 1 , wherein the virtual media redirection module, when executed at the processor of the BMC, is configured to perform the local virtual media redirection by:

determining, at the BMC, whether any of the sectors being requested is stored in the host cache;

in response to determining that one or more of the sectors being requested are stored in the host cache, transmitting the one or more of the sectors being requested from the host cache to the host computing device; and

marking the one or more of the sectors being transmitted in the host cache as used sectors.

10. The system as claimed in claim 9 , wherein the virtual media redirection module, when executed at the processor of the BMC, is further configured to:

discard the used sectors in the host cache; and

store the data from the media device in the host cache by sectors until the host cache is full.

11. The system as claimed in claim 1 , wherein the virtual media redirection module, when executed at the processor of the BMC, is configured to perform the remote virtual media redirection by:

determining, at the BMC, whether any of the sectors being requested is stored in the client cache;

in response to determining that one or more of the sectors being requested are stored in the client cache, instructing the client computing device to transmit the one or more of the sectors being requested from the client cache to the BMC through the network; and

receiving the sectors being transmitted from the client computing device, and sending the sectors received to the host computing device;

wherein the client computing device is configured to mark the one or more of the sectors being transmitted in the client cache as used sectors.

12. The system as claimed in claim 11 , wherein the virtual media redirection module, when executed at the processor of the BMC, is further configured to instruct the client computing device to:

discard the used sectors in the client cache; and

store the data from the media device in the client cache by sectors until the client cache is full.

13. A method of performing virtual media redirection, comprising:

emulating, by a baseboard management controller (BMC), a virtual media for a media device, wherein the media device stores data of one or more media files;

establishing, by the BMC, a virtual media connection to a client computing device through a network, wherein the client computing device is communicatively connected to the BMC through the network, and a client cache is created at a memory of the client computing device;

storing, at the BMC, the data from the media device in a host cache by sectors;

instructing, by the BMC, the client computing device to store the data from the media device in the client cache by sectors;

receiving, at the BMC, a request from a host computing device through a communication interface to retrieve one or more sectors from the media device; and

in response to the request, performing, at the BMC, a virtual media redirection to redirect the sectors being requested to the host computing device, wherein the virtual media redirection comprises:

performing a local virtual media redirection when one or more of the sectors being requested are stored in the host cache; and

performing a remote virtual media redirection when one or more of the sectors being requested are stored in the client cache.

14. The method as claimed in claim 13 , wherein the communication interface is a universal serial bus (USB) interface.

15. The method as claimed in claim 13 , wherein the BMC is configured to store the data from the media device in the host cache by sectors by:

retrieving the sectors of the data from the media device; and

storing the retrieved sectors in the host cache until the host cache is full,

wherein the retrieved sectors from the media device comprises frequently requested sectors.

16. The method as claimed in claim 15 , wherein the BMC is configured to store the data from the media device in the host cache by sectors when the BMC is idling.

17. The method as claimed in claim 13 , wherein the BMC is configured to instruct the client computing device to store the data from the media device in the client cache by sectors by:

instructing the client computing device to retrieve the sectors of the data from the media device; and

instructing the client computing device to store the retrieved sectors in the client cache until the client cache is full,

wherein the retrieved sectors from the media device comprises frequently requested sectors.

18. The method as claimed in claim 13 , wherein the local virtual media redirection is performed by:

determining, at the BMC, whether any of the sectors being requested is stored in the host cache;

in response to determining that one or more of the sectors being requested are stored in the host cache, transmitting the one or more of the sectors being requested from the host cache to the host computing device;

marking the one or more of the sectors being transmitted in the host cache as used sectors;

discarding the used sectors in the host cache; and

storing the data from the media device in the host cache by sectors until the host cache is full.

19. The method as claimed in claim 13 , wherein the remote virtual media redirection is performed by:

determining, at the BMC, whether any of the sectors being requested is stored in the client cache;

in response to determining that one or more of the sectors being requested are stored in the client cache, instructing the client computing device to transmit the one or more of the sectors being requested from the client cache to the BMC through the network;

receiving the sectors being transmitted from the client computing device, and sending the sectors received to the host computing device, wherein the client computing device is configured to mark the one or more of the sectors being transmitted in the client cache as used sectors;

instructing the client computing device to discard the used sectors in the client cache; and

instructing the client computing device to store the data from the media device in the client cache by sectors until the client cache is full.

20. A non-transitory computer storage medium having computer-executable code stored thereon, wherein the computer-executable code, when executed by a processor of a baseboard management controller (BMC), causes the processor to:

emulate a virtual media for a media device, wherein the media device stores data of one or more media files;

establish a virtual media connection to a client computing device through a network, wherein the client computing device is communicatively connected to the BMC through the network, and a client cache is created at the memory of the client computing device;

store the data from the media device in a host cache by sectors;

instruct the client computing device to store the data from the media device in the client cache by sectors;

receive a request from a host computing device through a communication interface to retrieve one or more sectors from the media device; and

in response to the request, perform a virtual media redirection to redirect the sectors being requested to the host computing device, wherein the virtual media redirection comprises:

performing a local virtual media redirection when one or more of the sectors being requested are stored in the host cache; and

performing a remote virtual media redirection when one or more of the sectors being requested are stored in the client cache.

21. The non-transitory computer storage medium as claimed in claim 20 , wherein the communication interface is a universal serial bus (USB) interface.

22. The non-transitory computer storage medium as claimed in claim 20 , wherein the computer-executable code, when executed by the processor, causes the processor to store the data from the media device in the host cache by sectors by:

retrieving the sectors of the data from the media device; and

storing the retrieved sectors in the host cache until the host cache is full,

wherein the retrieved sectors from the media device comprises frequently requested sectors.

23. The non-transitory computer storage medium as claimed in claim 22 , wherein the computer-executable code, when executed by the processor, causes the processor to store the data from the media device in the host cache by sectors when the BMC is idling.

24. The non-transitory computer storage medium as claimed in claim 20 , wherein the computer-executable code, when executed by the processor, causes the processor to instruct the client computing device to store the data from the media device in the client cache by sectors by:

instructing the client computing device to retrieve the sectors of the data from the media device; and

instructing the client computing device to store the retrieved sectors in the client cache until the client cache is full,

wherein the retrieved sectors from the media device comprises frequently requested sectors.

25. The non-transitory computer storage medium as claimed in claim 20 , wherein the computer-executable code, when executed by the processor, causes the processor to perform the local virtual media redirection by:

determining, at the BMC, whether any of the sectors being requested is stored in the host cache;

in response to determining that one or more of the sectors being requested are stored in the host cache, transmitting the one or more of the sectors being requested from the host cache to the host computing device;

marking the one or more of the sectors being transmitted in the host cache as used sectors;

discarding the used sectors in the host cache; and

storing the data from the media device in the host cache by sectors until the host cache is full.

26. The non-transitory computer storage medium as claimed in claim 20 , wherein the computer-executable code, when executed by the processor, causes the processor to perform the remote virtual media redirection by:

determining, at the BMC, whether any of the sectors being requested is stored in the client cache;

in response to determining that one or more of the sectors being requested are stored in the client cache, instructing the client computing device to transmit the one or more of the sectors being requested from the client cache to the BMC through the network;

receiving the sectors being transmitted from the client computing device, and sending the sectors received to the host computing device, wherein the client computing device is configured to mark the one or more of the sectors being transmitted in the client cache as used sectors;

instructing the client computing device to discard the used sectors in the client cache; and

instructing the client computing device to store the data from the media device in the client cache by sectors until the client cache is full.

Assignments (5)
PATENT SECURITY AGREEMENT Recorded Oct 23, 2024
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: BAIN CAPITAL CREDIT, LP, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 069229/0834 →
RELEASE OF SECURITY INTEREST Recorded Oct 17, 2024
From: MIDCAP FINANCIAL TRUST
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 069205/0795 →
SECURITY INTEREST Recorded May 6, 2019
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC
To: MIDCAP FINANCIAL TRUST, AS COLLATERAL AGENT
Reel/Frame 049087/0266 →
ENTITY CONVERSION Recorded Apr 15, 2019
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 049091/0973 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2015
From: BALAKRISHNAN, VENKATESAN; KANNIAPPAN, OTHIYAPPAN; SELVAM, JOTHIRAM
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 036524/0990 →