IP Library Granted Patent US 8,495,512
Granted Patent B1
US 8,495,512 · App. 12/841,161 · Granted Jul 23, 2013

System and method for storing a configuration of virtual servers in a hosting system

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,495,512
App. No.
12/841,161
Granted
Jul 23, 2013
Kind
B1
Abstract

Some embodiments provide a method that defines a user interface (UI) that displays several UI elements representing several virtual machines deployed in a particular configuration for a particular user in a hosting and storage system that includes several nodes for hosting user specified virtual machines. The method receives input from the user through the UI to save the particular configuration of virtual machines. For each virtual machine in the particular configuration, the method stores an image of the virtual machine. The method stores data representing the particular configuration of virtual machines. The data includes references to the stored images of the virtual machines and connections between the virtual machines.

Claims (33)

1. A hosting and storage system for hosting a plurality of virtual machines for a plurality of users and for storing images of the virtual machines, the system comprising:

a plurality of nodes, each particular node comprising resources for hosting at least one user specified virtual machine, the resources comprising at least processing resources;

on each of at least a subset of the plurality of nodes, a utility management module operating as a virtual machine using a first set of resources of the node, the utility management module for (i) creating an image of a virtual machine hosted on the node and (ii) streaming the image to a storage; and

a system management module for creating a template file of a particular user-specified configuration of a plurality of virtual machines comprising at least a first virtual machine from a first node and a second virtual machine from a second node, the template file comprising (i) references to first and second images streamed to the storage for the first and second virtual machines in the particular user-specified configuration and (ii) definitions of connections between the first and second virtual machines as deployed on the first and second nodes.

2. The hosting and storage system of claim 1 further comprising a cloud storage for storing (i) the first and second images of the first and second virtual machines and (ii) the template file.

3. The hosting and storage system of claim 1 , wherein the system management module is further for (i) identifying, for each virtual machine in the particular user-specified configuration, a node on which the virtual machine is hosted and (ii) sending instructions to the utility management module on each of the identified nodes instructing the utility management module to save the virtual machine hosted on its node.

4. The hosting and storage system of claim 1 , wherein each of the plurality of virtual machines in the particular user-specified configuration is hosted on a different node.

5. The hosting and storage system of claim 1 , wherein at least two of the plurality of virtual machines in the particular user-specified configuration are hosted on the same node.

6. A method comprising:

defining a user interface (UI) that displays a plurality of UI elements representing a plurality of virtual machines deployed in a particular configuration for a particular user in a hosting and storage system that comprises a plurality of nodes for hosting user specified virtual machines;

receiving input from the particular user through the UI to save the particular configuration of virtual machines;

for each virtual machine in the particular configuration, storing an image of the virtual machine; and

storing data representing the particular configuration of virtual machines, the data comprising reference data that indicates locations of the stored images in a cloud storage and connection data for each stored image that indicates connections between the virtual machine associated with the stored image and one or more other virtual machines in the particular configuration as deployed.

7. The method of claim 6 , wherein storing the image of a particular virtual machine comprises:

extracting data representing a system configuration of the particular virtual machine; and

streaming the extracted data to the cloud storage.

8. The method of claim 7 , wherein the data is extracted from a hard disk partition of a particular node.

9. The method of claim 7 , wherein the data is extracted in units having a particular size, wherein storing further comprises calculating a checksum for each unit of data.

10. The method of claim 6 , wherein storing an image of a particular virtual machine comprises sending instructions to a utility management module operating on a node on which the particular virtual machine is hosted to create the image and stream the image to a storage of the hosting and storage system.

11. The method of claim 6 , wherein the UI is a graphical user interface that displays graphical representations of the virtual machines and connections between the virtual machines as deployed in the hosting and storage system.

12. The method of claim 6 , wherein the plurality of virtual machines comprises at least one of a web server and a database server.

13. The method of claim 6 , wherein the plurality of virtual machines comprises a load balancer and at least two web servers, wherein the load balancer is connected to and performs load balancing for the web servers.

14. The method of claim 13 further comprising storing a configuration file for the load balancer, wherein no image of the load balancer is stored.

15. The method of claim 6 further comprising defining a UI for displaying to a user a plurality of different configurations, each configuration comprising a set of virtual machines connected in a particular manner.

16. The method of claim 15 , wherein the UI for displaying the plurality of different configurations is defined based on a library of configurations saved by a plurality of users.

17. The method of claim 15 further comprising receiving input from the user selecting one of the different configurations for deployment on the nodes of the hosting and storage system.

18. A non-transitory machine readable storage medium storing a computer program for execution on at least one processing unit, said computer program comprising sets of instructions for:

defining a user interface (UI) that displays a plurality of UI elements representing a plurality of virtual machines deployed in a particular configuration for a particular user in a hosting and storage system that comprises a plurality of nodes for hosting user specified virtual machines;

receiving input from the particular user through the UI to save the particular configuration of virtual machines;

for each virtual machine in the particular configuration, storing an image of the virtual machine; and

storing data representing the particular configuration of virtual machines, the data comprising reference data that indicates locations of the stored images in a cloud storage and connection data for each stored image that indicates connections between the virtual machine associated with the stored image and one or more other virtual machines in the particular configuration as deployed.

19. The non-transitory machine readable storage medium of claim 18 , wherein the storage is a cloud storage cluster.

20. The non-transitory machine readable storage medium of claim 18 , wherein the computer program further comprises a set of instructions for defining a UI for displaying to a user a plurality of different configurations, each configuration comprising a set of virtual machines connected in a particular manner.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2023
From: OPEN INVENTION NETWORK LLC
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 062401/0512 →
RELEASE OF SECURITY INTEREST Recorded Aug 30, 2019
From: CITIBANK, N.A.
To: GOGRID, LLC; DATAPIPE, INC.
Reel/Frame 050224/0321 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2019
From: GOGRID, LLC
To: OPEN INVENTION NETWORK LLC
Reel/Frame 047895/0811 →
SECURITY AGREEMENT Recorded Dec 15, 2017
From: GOGRID, LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 044895/0784 →
RELEASE OF SECURITY INTEREST Recorded Nov 16, 2017
From: TORONTO DOMINION (TEXAS) LLC (SUCCESSOR BY ASSIGNMENT TO MORGAN STANLEY SENIOR FUNDING, INC.)
To: GOGRID, LLC, AS GRANTOR
Reel/Frame 044150/0497 →
RELEASE OF SECURITY INTEREST Recorded Nov 16, 2017
From: TORONTO DOMINION (TEXAS) LLC (SUCCESSOR BY ASSIGNMENT TO MORGAN STANLEY SENIOR FUNDING, INC.)
To: GOGRID, LLC, AS GRANTOR
Reel/Frame 044150/0514 →
RELEASE OF PATENT SECURITY INTEREST RECORDED AT REEL 032970/FRAME 0944 Recorded Jan 22, 2015
From: GOGRID INVESTORS LLC
To: GOGRID, LLC
Reel/Frame 034793/0438 →
RELEASE OF PATENT SECURITY INTEREST RECORDED AT REEL 030602/FRAME 0657 Recorded Jan 22, 2015
From: PARTNERS FOR GROWTH III, L.P.
To: GOGRID, LLC
Reel/Frame 034793/0396 →
PATENT SECURITY AGREEMENT (FIRST LIEN) Recorded Jan 22, 2015
From: GOGRID, LLC
To: TORONTO DOMINION (TEXAS) LLC, SUCCESSOR BY ASSIGNMENT TO MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 034793/0448 →
PATENT SECURITY AGREEMENT (SECOND LIEN) Recorded Jan 22, 2015
From: GOGRID, LLC
To: TORONTO DOMINION (TEXAS) LLC, SUCCESSOR BY ASSIGNMENT TO MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 034793/0483 →
SECURITY INTEREST Recorded May 20, 2014
From: GOGRID, LLC
To: GOGRID INVESTORS LLC
Reel/Frame 032970/0909 →
SECURITY AGREEMENT Recorded Jun 13, 2013
From: GOGRID, LLC
To: PARTNERS FOR GROWTH III, L.P.
Reel/Frame 030602/0657 →
CHANGE OF NAME Recorded May 24, 2011
From: SERVEPATH, LLC
To: GOGRID, LLC
Reel/Frame 026335/0391 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2011
From: LAPPAS, PAUL; KEAGY, JOHN M.; KITAGAWA, JUSTIN
To: SERVEPATH, LLC
Reel/Frame 026303/0721 →