IP Library Granted Patent US 11,829,793
Granted Patent B2
US 11,829,793 · App. 17/107,561 · Granted Nov 28, 2023

Unified management of virtual machines and bare metal computers

Inventor: Renaud B. Voltz (Los Altos Hills, CA)
Assignee: VMWARE, INC.
G06F9/45558G06F9/4406G06F9/45541G06F9/547G06F13/4221G06F2009/4557G06F2009/45591G06F2009/45595G06F2213/0026
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 11,829,793
App. No.
17/107,561
Filed
Nov 30, 2020
Granted
Nov 28, 2023
Kind
B2
Examiner
RONI, SYED A
Art Unit
2432
USPC
719/328
Abstract

Some embodiments provide a method for a compute manager that manages (i) virtual machines executing on host computers and (ii) physical computers. The method uses a first set of application programming interfaces (APIs) to communicate with a virtual machine (VM) executing on a host first computer via a hypervisor executing on the host first computer. The method uses the first set of APIs to communicate with a second computer via a smart network interface controller (NIC) of the second computer, wherein the smart NIC translates the first set of APIs into a different, second set of APIs for the second computer so that the compute manager manages the VM and the second computer with the same first set of APIs.

Claims (40)

1. A method for a compute manager that manages (i) virtual machines executing on host computers and (ii) physical computers, the method comprising:

using a first set of application programming interfaces (APIs) to communicate with a virtual machine (VM) executing on a host first computer via a hypervisor executing on the host first computer; and

using the first set of APIs to communicate with a second computer via a smart network interface controller (NIC) of the second computer, wherein the smart NIC translates the first set of APIs into a different, second set of APIs for the second computer so that the compute manager manages the VM and the second computer with the same first set of APIs,

wherein the smart NIC comprises an application specific integrated circuit (ASIC), a general purpose central processing unit (CPU), and a memory.

2. The method of claim 1 , wherein the first set of APIs comprises APIs for managing a life cycle of a machine.

3. The method of claim 1 , wherein the first set of APIs comprises APIs for handling input to a machine.

4. The method of claim 3 , wherein the input comprises at least one of mouse input and keyboard input.

5. The method of claim 3 , wherein the first set of APIs enable a remote console for the second computer via the compute manager.

6. The method of claim 1 , wherein using the first set of APIs comprises:

sending a first API request to the second computer according to the first set of APIs, wherein the smart NIC receives the first API request and translates the first API request to a second API request according to the second set of APIs; and

receiving a first API response from the second computer according to the first set of APIs, wherein the smart NIC receives a second API response from the second computer according to the second set of APIs and translates the second API response to the first API responses.

7. The method of claim 1 , wherein the CPU executes a peripheral control interface express (PCIe) interface that presents the smart NIC as a plurality of separate devices, the plurality of separate devices comprising at least one NIC and at least one non-volatile memory express (NVMe) storage device.

8. The method of claim 1 , wherein the ASIC is for processing data messages forwarded to and from the second computing device.

9. The method of claim 1 , wherein the CPU executes a NIC operating system program comprising translation logic for translating the first set of APIs to the second set of APIs.

10. A method for a compute manager that manages (i) virtual machines executing on host computers and (ii) physical computers, the method comprising:

using a first set of application programming interfaces (APIs) to communicate with a virtual machine (VM) executing on a host first computer via a hypervisor executing on the host first computer; and

using the first set of APIs to communicate with a second computer via a smart network interface controller (NIC) of the second computer, wherein the smart NIC translates the first set of APIs into a different, second set of APIs for the second computer so that the compute manager manages the VM and the second computer with the same first set of APIs,

wherein the first set of APIs are virtualized infrastructure manager (VIM) APIs that comprise APIs for managing a life cycle of a machine.

11. The method of claim 10 , wherein the smart NIC comprises an application specific integrated circuit (ASIC), a general purpose central processing unit (CPU), and a memory.

12. A method for a compute manager that manages (i) virtual machines executing on host computers and (ii) physical computers, the method comprising:

using a first set of application programming interfaces (APIs) to communicate with a virtual machine (VM) executing on a host first computer via a hypervisor executing on the host first computer; and

using the first set of APIs to communicate with a second computer via a smart network interface controller (NIC) of the second computer, wherein the smart NIC translates the first set of APIs into a different, second set of APIs for the second computer so that the compute manager manages the VM and the second computer with the same first set of APIs,

wherein the smart NIC executes a network virtualization program for providing network virtualization services.

13. The method of claim 12 , wherein the network virtualization services comprise segregating data messages into different private networks that are defined over a datacenter's shared network and forwarding the data messages for the private networks.

14. The method of claim 12 , wherein the network virtualization services comprise at least one of network switching operations and network routing operations.

15. The method of claim 12 , wherein the network virtualization services comprise middlebox services.

16. A non-transitory machine-readable medium storing a compute manager program which when executed by at least one processing unit manages (i) virtual machines executing on host computers and (ii) physical computers, the program comprising sets of instructions for:

using a first set of application programming interfaces (APIs) to communicate with a virtual machine (VM) executing on a host first computer via a hypervisor executing on the host first computer; and

using the first set of APIs to communicate with a second computer via a smart network interface controller (NIC) of the second computer, wherein the smart NIC translates the first set of APIs into a different, second set of APIs for the second computer so that the compute manager manages the VM and the second computer with the same first set of APIs,

wherein the smart NIC executes a network virtualization program for providing network virtualization services.

17. The non-transitory machine-readable medium of claim 16 , wherein the first set of APIs comprises at least one of (i) APIs for managing a life cycle of a machine and (ii) APIs for handling input to a machine.

18. The non-transitory machine-readable medium of claim 16 , wherein the set of instructions for using the first set of APIs comprises sets of instructions for:

sending a first API request to the second computer according to the first set of APIs, wherein the smart NIC receives the first API request and translates the first API request to a second API request according to the second set of APIs; and

receiving a first API response from the second computer according to the first set of APIs, wherein the smart NIC receives a second API response from the second computer according to the second set of APIs and translates the second API response to the first API responses.

19. The non-transitory machine-readable medium of claim 16 , wherein the network virtualization services comprise segregating data messages into different private networks that are defined over a datacenter's shared network and forwarding the data messages for the private networks.

20. A non-transitory machine-readable medium storing a compute manager program which when executed by at least one processing unit manages (i) virtual machines executing on host computers and (ii) physical computers, the program comprising sets of instructions for:

using a first set of application programming interfaces (APIs) to communicate with a virtual machine (VM) executing on a host first computer via a hypervisor executing on the host first computer; and

using the first set of APIs to communicate with a second computer via a smart network interface controller (NIC) of the second computer, wherein the smart NIC translates the first set of APIs into a different, second set of APIs for the second computer so that the compute manager manages the VM and the second computer with the same first set of APIs,

wherein (i) the smart NIC comprises an application specific integrated circuit (ASIC), a general purpose central processing unit (CPU), and a memory, (ii) the CPU executes a peripheral control interface express (PCIe) interface that presents the smart NIC as a plurality of separate devices, the plurality of separate devices comprising at least one NIC and at least one non-volatile memory express (NVMe) storage device, (iii) the ASIC is for processing data messages forwarded to and from the second computing device, and (iv) the CPU executes a NIC operating system program comprising translation logic for translating the first set of APIs to the second set of APIs.

21. The non-transitory machine-readable medium of claim 20 , wherein the smart NIC executes a network virtualization program for providing network virtualization services.

Assignments (3)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2020
From: VOLTZ, RENAUD B.
To: VMWARE, INC.
Reel/Frame 054495/0626 →
Continuity (3)
Provisional Application 63084534 · Sep 28, 2020
Provisional Application 63084536 · Sep 28, 2020
Related Publication 20220100544A1 · Mar 31, 2022
Cited By (2)
US 12,432,116 US 12,689,572