IP Library Patent Application 13874015
Patent Application
App. No. 13/874,015

Server Image Migrations Into Public and Private Cloud Infrastructures

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 None
App. No.
13/874,015
Abstract

Systems and methods for migrating a server image between any physical, virtual, and cloud servers. The system includes a deploy agent that is run on the target server, a migration manager to control operations, an image library for optional long-term storage of the image, and mailbox-based communications mechanism to support management operations spanning multiple data centers and firewalls. While deploying an image to the target server, the deploy agent automatically adjusts the image to account for changes in server hardware, storage layout, and network infrastructure to ensure that any applications within the image continue to function properly.

Claims (109)

1 . A method of migrating a computer server image from a source server to a cloud-based target server, the cloud-based target server being connected for electronic communications via a data communication network with a migration server and an image server associated with the migration server, the image server containing a captured copy of the source server image, the captured copy of the source server image including configuration information from the image and the original source server from whence it came, comprising the steps of:

providing a deploy agent code for execution on the cloud-based target server, the deploy agent code executing configuration operations to install the captured source server image to the cloud-based target server;

upon executing the deploy agent code on the cloud-based target server, the deploy agent code gathering server configuration information from the cloud-based target server including any operational parameters associated with the cloud environment;

the deploy agent code communicating to the migration server that the deploy agent is running on the cloud-based target server and available to perform an image migration;

the deploy agent code communicating the gathered server configuration information to the migration server;

the deploy agent code receiving from the migration server migration instructions including the location of the image on the image server and the required configuration of the target server;

the deploy agent code reading the captured image of the source server from the image server and installing it on the cloud-based target server; and

the deploy agent code executing configuration operations to modify the image that it has deployed to the cloud-based target server to comport with target server configuration information.

2 . The method of claim 1 , wherein the deploy agent code executing configuration operations to modify the image that it has deployed to the cloud-based target server in accordance with:

(a) the source server configuration information and image configuration information as stored with the captured image;

(b) the available configuration of the cloud-based target server;

(c) any operational parameters associated with the cloud environment in which the cloud-based target server is running; and

(d) any configuration requirements that were specified to the migration server by an end user when requesting the image migration.

3 . The method of claim 1 , wherein the operational parameters associated with the cloud environment comprise operational requirements or restrictions.

4 . The method of claim 1 , wherein the cloud-based target server is provided by a private cloud or a public cloud.

5 . The method of claim 1 , wherein the source server is selected from the group comprising a physical server, a virtual server, a cloud server.

6 . The method of claim 1 , wherein the deploy agent is installed on top of a pre-existing cloud server that has been created by the cloud server control system.

7 . The method of claim 1 , wherein the deploy agent code is provided as a ramdisk image that is executed by the cloud-based target server after rebooting.

8 . The method of claim 1 , wherein the deploy agent is instantiated directly on the target cloud server by the cloud server control system using a compact disc read-only memory (CD-ROM) or DVD image in ISO 9660 format.

9 . The method of claim 1 , wherein the deploy agent is instantiated directly on the cloud-based target server by the cloud server control system using a template image maintained by cloud server control system.

10 . The method of claim 1 , wherein the deploy agent reads the captured image directly from an agent running on the source server.

11 . The method of claim 1 , wherein the operating system (OS) of the source server image is selected from the group comprising: LINUX, Windows, Mac OSX, FreeBSD, Solaris.

12 . The method of claim 1 , wherein the operational parameters associated with the cloud environment require the deploy agent to modify the migrated image that it has deployed to the cloud-based target server in order to install any special device drivers necessary to run the image on the cloud-based target server.

13 . The method of claim 12 , wherein the deploy agent collects the necessary device drivers from the operating system of the cloud-based target server as originally created by the cloud server control system.

14 . The method of claim 12 , wherein the migration server maintains a library of the necessary device drivers for installation on the cloud-based target server.

15 . The method of claim 1 , wherein the deploy agent modifies the file system layout of the original source server image to fit upon the storage devices that are provided by the cloud-based target server, such modifications including one or more of:

(a) Consolidating logical units (LUNs) or partitions of storage onto the available storage volumes,

(b) Consolidating multiple file systems onto a single LUN or partition,

(c) Resizing the space allocated to a file system to fit onto the available LUN or partition, or

(d) Changing the type of file system.

16 . The method of claim 15 , wherein the calculations on how to modify the file system layout of the original source server image are made by a migration manager computer program executing on the migration server and sent to the deploy agent running on the cloud-based target server as a set of instructions.

17 . The method of claim 1 , wherein the deploy agent modifies the network configuration of the original source server image so that the migrated cloud-based target server will be configured properly to access network communications within the target cloud environment.

18 . The method of claim 17 , wherein the deploy agent collects the necessary network configuration information required for operation within the target cloud environment from the operating system of the cloud-based target server as originally created by the cloud server control system.

19 . The method of claim 18 , wherein the calculations on how to modify the network configuration of the original source server image such that the deployed cloud-based target server will work within the target cloud environment are made by a migration manager computer program executing on the migration server and sent to the deploy agent running on the target cloud server as a set of instructions.

20 . The method of claim 1 , wherein the deploy agent modifies the migrated image that it has deployed to the cloud-based target server in order to install any additional software, such as management or monitoring agents, that are required by the cloud vendor in order for a server to operate within the cloud infrastructure.

21 . The method of claim 1 , wherein all communications between the migration server and the cloud-based target server are implemented through the exchange of messages using a mailbox communications server, the mailbox communications server being configured to receive incoming file service requests to create, read, write, or list files, the file service requests being implemented using network communications protocols such that all requests originate with the migration server, source server, or target server and pass through any firewalls protecting them to reach the mailbox server.

22 . The method of claim 21 , wherein the protocol used to implement the file service requests of the mailbox server is selected from the group comprising: Amazon S3 protocol, Web Distributed Authoring and Versioning (WebDAV), File Transfer Protocol (FTP), SSH File Transfer Protocol (SFTP).

23 . A method of migrating a computer server image from a source server to a cloud-based target server, the source server and cloud-based target server being connected for electronic communications via a data communication network with a migration server and with an image server associated with the migration server, the migration server being connected for electronic communications with a cloud server control system that controls one or more cloud-based target servers, comprising the steps of:

the migration server receiving an image migration request command including any configuration requirements for the target server;

the migration server gathering configuration information for the source server and the source server image from a capture agent associated with the source server;

the migration server issuing a command to the capture agent instructing it to capture the image of the source server, the source server having an operating system (OS) of a particular type;

the capture agent storing the captured image of the source server on the image server;

the migration server providing an instruction to the cloud server control system to instantiate a cloud-based target server having an operating system (OS) of the same particular type as said source server OS, the OS of the instantiated cloud-based target server including a boot loader code portion;

the migration server loading a deploy agent code onto the cloud-based target server, the deploy agent code comprising code for executing configuration operations to install the captured image of the source server to the cloud-based target server;

the migration server further modifying the boot loader code portion of the instantiated cloud-based target server such that the target server will execute the deploy agent code upon reboot of the target server;

the migration server providing an instruction to the cloud server control system to effect a reboot of the instantiated cloud-based target server;

upon reboot of the cloud-based target server, executing the deploy agent code;

the deploy agent code gathering server configuration information from the cloud-based target server including any operational parameters associated with the cloud environment;

the deploy agent code communicating to the migration server a notification that the deploy agent is running on the cloud-based target server and available to perform an image migration;

the deploy agent code communicating the gathered server configuration information to the migration server;

upon receiving the notification that the deploy agent on the cloud-based target server is available, and upon receiving the target server's configuration information, the migration server mapping the configuration of the captured image to match the configuration of the available cloud-based target server;

the migration server sending migration instructions to the deploy agent including the location of the image on the image server and the required configuration of the target server,

upon receiving migration instructions from the migration server, the deploy agent code reading the captured image of the source server from the image server and installing it on the cloud-based target server; and

the deploy agent code executing configuration operations to modify the image that it has deployed to the cloud-based target server.

24 . The method of claim 23 , wherein the deploy agent code executing configuration operations to modify the image it has deployed to the cloud-based target server are effected in accordance with:

(a) the server configuration information and image configuration information gathered from the source server,

(b) the available configuration of the cloud-based target server;

(c) any operational parameters associated with the cloud environment in which the cloud-based target server is running; and

(d) any configuration requirements that were specified by an end user when requesting the image migration.

25 . The method of claim 23 , wherein the capture agent runs directly on the source server.

26 . The method of claim 23 , wherein the capture agent runs on a computer system other than the source server, but has access to the storage containing the source server image.

27 . The method of claim 23 , wherein the cloud-based target server is provided by a private cloud or a public cloud.

28 . The method of claim 23 , wherein the source server is one of the group comprising: a physical server, a virtual server, a cloud server.

29 . The method of claim 23 , wherein the migration server receives commands from a user interface for receiving commands from a human end user or from an application programming interface (API) for receiving commands from an external automated systems.

30 . The method of claim 23 , wherein the instructions to the cloud server control system from the migration server are provided to an API of the cloud server control system.

31 . The method of claim 23 , wherein the migration server examines the information gathered from the capture agent to determine the configuration of the source server including the number of CPUs, amount of memory, and the number and size of storage devices, and then specifies appropriate configuration parameters to the cloud server control system in order to create a target cloud server of similar capacity.

32 . The method of claim 23 , wherein the operational parameters associated with the cloud environment comprise operational requirements or operational restrictions.

33 . The method of claim 23 , wherein the migration server installs the deploy agent on a pre-existing cloud server rather than creating a new one using the cloud server control system.

34 . The method of claim 23 , wherein the step of modifying the boot loader code portion of the instantiated cloud-based target server to execute the deploy agent code comprises the steps of:

providing a boot loader code modification program together with the deploy agent code, the boot loader code modification program operative to change the boot loader code of the particular OS type of the instantiated cloud-based target server; and

executing the boot loader code modification program prior to reboot of the instantiated cloud-based target server.

35 . The method of claim 23 , wherein the deploy agent code is provided as a ramdisk image that is executed by the cloud-based target server after rebooting.

36 . The method of claim 23 , wherein the cloud-based target server is rebooted using an operating system command run on the target server rather than through a command issued to the cloud server control system.

37 . The method of claim 23 , wherein the deploy agent is instantiated directly on the target cloud server by the cloud server control system using a compact disc read-only memory (CD-ROM) or DVD image in ISO 9660 format.

38 . The method of claim 23 , wherein the deploy agent is instantiated directly on the cloud-based target server by the cloud server control system using a template image maintained by cloud server control system.

39 . The method of claim 23 , wherein the step of capturing the image of the source server is effected under control of a migration manager computer program executing on the migration server.

40 . The method of claim 23 , wherein the step of deploying the captured image to the target cloud server is effected under control of a migration manager computer program executing on the migration server.

41 . The method of claim 23 , wherein a migration manager computer program executing on the migration server effects control of both the capture and deploy steps of the migration process such that the source server image is transferred directly from the capture agent on the source server to the deploy agent on the cloud-based target server rather than stored in an image server.

42 . The method of claim 23 , wherein the operating system (OS) of particular type is selected from the group comprising: LINUX, Windows, Mac OSX, FreeBSD, Solaris.

43 . The method of claim 23 , wherein the operational requirements associated with the cloud environment require the deploy agent to modify the migrated image that it has deployed to the cloud-based target server in order to install any special device drivers necessary to run the image on the cloud-based target server.

44 . The method of claim 43 , wherein the deploy agent collects the necessary device drivers from the operating system of the cloud-based target server as originally created by the cloud server control system.

45 . The method of claim 43 , wherein the migration server maintains a library of the necessary device drivers for installation on the cloud-based target server.

46 . The method of claim 23 , wherein the deploy agent modifies the file system layout of the original source server image to fit upon the storage devices that are provided by the cloud-based target server, such modifications including one or more of:

(a) Consolidating logical units (LUNs) or partitions of storage onto the available storage volumes,

(b) Consolidating multiple file systems onto a single LUN or partition,

(c) Resizing the space allocated to a file system to fit onto the available LUN or partition, or

(d) Changing the type of file system.

47 . The method of claim 46 , wherein the calculations on how to modify the file system layout of the original source server image are made by a migration manager computer program executing on the migration server and sent to the deploy agent running on the cloud-based target server as a set of instructions.

48 . The method of claim 23 , wherein the deploy agent modifies the network configuration of the original source server image so that the migrated cloud-based target server will be configured properly to access network communications within the target cloud environment.

49 . The method of claim 48 , wherein the deploy agent collects the necessary network configuration information required for operation within the target cloud environment from the operating system of the cloud-based target server as originally created by the cloud server control system.

50 . The method of claim 48 , wherein the calculations on how to modify the network configuration of the original source server image such that the deployed cloud-based target server will work within the target cloud environment are made by a migration manager computer program executing on the migration server and sent to the deploy agent running on the target cloud server as a set of instructions.

51 . The method of claim 23 , wherein the deploy agent modifies the migrated image that it has deployed to the cloud-based target server in order to install any additional software, such as management or monitoring agents, that are required by the cloud vendor in order for a server to operate within the cloud infrastructure.

52 . The method of claim 23 , wherein all communications between the migration server, the source server and cloud-based target server are implemented through the exchange of messages using a mailbox communications server, the mailbox communications server being configured to receive incoming file service requests to create, read, write, or list files, the file service requests being implemented using network communications protocols such that all requests originate with the migration server, source server, or target server and pass through any firewalls protecting them to reach the mailbox server.

53 . The method of claim 52 , wherein the protocol used to implement the file service requests of the mailbox server selected from the group comprising: Amazon S3 protocol, Web Distributed Authoring and Versioning (WebDAV), File Transfer Protocol (FTP), SSH File Transfer Protocol (SFTP).

54 . A system for migrating a computer server image from a source server to a cloud-based target server, the source server and cloud-based target server being connected for electronic communications via a data communication network, the cloud-based target server being controlled by a cloud server control system that controls one or more cloud-based target servers, comprising:

a migration server coupled for electronic communications with the source server and the cloud-based target server, the migration server connected for electronic communications with the cloud server control system; and

computer program code on the migration server comprising computer executable instructions that, when executed on the migration server, carry out the steps of:

gathering configuration information for the source server and a source server image from a capture agent associated with the source server;

providing an instruction to the cloud server control system to instantiate a cloud-based target server having an operating system (OS) of the same particular type as said source server OS;

loading a deploy agent code onto the instantiated cloud-based target server, the deploy agent code comprising code for executing configuration operations to install the captured image of the source server to the cloud-based target server; and

sending migration instructions to the deploy agent including the location of the captured image of the source server and the required configuration of the target server, the deploy agent code thereafter executing on the instantiated cloud-based target server to read the captured image of the source server, install it on the cloud-based target server, and execute configuration operations to modify the image that it has deployed to the cloud-based target server.

55 . The system of claim 54 , wherein the OS of the instantiated cloud-based target server including a boot loader code portion, and wherein the computer program code further carries out the steps of:

modifying the boot loader code portion of the instantiated cloud-based target server such that the target server will execute the deploy agent code upon reboot of the target server; and

providing an instruction to the cloud server control system to effect a reboot of the instantiated cloud-based target server such that the deploy agent code executes on the cloud-based target server to read the captured image of the source server, install it on the cloud-based target server, and execute the configuration operations.

56 . The system of claim 54 , further comprising an image server associated with the migration server for storing a captured image of the source server, and wherein the deploy agent executes on the instantiated cloud-based target server to read the captured image of the source server from the image server.

57 . The system of claim 54 , wherein the deploy agent executes on the instantiated cloud-based target server to read the captured image of the source server directly from the source server.

58 . The system of claim 54 , further comprising the step of:

sending migration instructions to the capture agent associated with the source server including information identifying parameters for the captured image, the deploy agent thereafter capturing the image of the source server and deploying the captured image to a source image destination.

59 . The system of claim 58 , wherein the source image destination is selected from the group comprising: an image server associated with the migration server, the cloud-based target server, a network-addressable storage device.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Jun 2, 2016
From: COMERICA BANK
To: RACEMI, INC.
Reel/Frame 038788/0765 →
SECURITY INTEREST Recorded Jun 2, 2016
From: RACEMI, INC.
To: COMPUTER SCIENCES CORPORATION
Reel/Frame 038791/0807 →
RELEASE Recorded Aug 25, 2015
From: SILICON VALLEY BANK
To: RACEMI INC.
Reel/Frame 036447/0907 →
SECURITY INTEREST Recorded Aug 20, 2015
From: RACEMI, INC.
To: COMERICA BANK
Reel/Frame 036378/0692 →
SECURITY AGREEMENT Recorded May 15, 2013
From: RACEMI, INC.
To: SILICON VALLEY BANK
Reel/Frame 030423/0611 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2013
From: WATT, CHARLES THOMAS; LEERSSEN, SCOTT ALAN; MCCLURE, STEVEN KEITH; JEDNASZEWSKI, GREGORY ALLEN
To: RACEMI, INC.
Reel/Frame 030320/0609 →