Enablement and acceleration of live and near-live migration of virtual machines and their associated storage across networks

US 8 429 651B2

drawing #0

Show all 8 drawings

A virtual machine is migrated between a source cloud and a destination cloud. A temporary storage is mounted to a partition management firmware of the source cloud and to a partition management firmware of the destination cloud. A first storage location migration migrates the virtual machine from the source cloud to the at least one temporary storage. A second storage location migration migrates the virtual machine from the at least one temporary storage to final destination storage of the destination cloud. The temporary storage is then unmounted from the partition management firmware of the source cloud and from the partition management firmware of the destination cloud.

PatentSwarm provides a collaborative workspace to search, highlight, annotate, and monitor patent data.

Start free trial Sign in

Tip: Select text to highlight, annotate, search, or share the selection.

Claims

1. A computer implemented method for migrating a virtual machine between a source cloud and a destination cloud, the method comprising:
mounting at least one temporary storage to a partition management firmware of the source cloud and to a partition management firmware of the destination cloud;
performing a first storage location migration of the virtual machine from the source cloud to the at least one temporary storage;
performing a second storage location migration of the virtual machine from the at least one temporary storage to final destination storage of the destination cloud; and
unmounting at least one temporary storage from the partition management firmware of the source cloud and from the partition management firmware of the destination cloud.

Show 7 dependent claims

9. A data processing system comprising:
a storage having a computer usable program code stored thereof for migrating a virtual machine between a source cloud and a destination cloud;
a bus system connecting the storage to a processor; and
a processor, wherein the processor executes the computer usable program code: to mount at least one temporary storage to a partition management firmware of the source cloud and to a partition management firmware of the destination cloud; to perform a first storage location migration of the virtual machine from the source cloud to the at least one temporary storage; to perform a second storage location migration of the virtual machine from the at least one temporary storage to final destination storage of the destination cloud; and to unmount the at least one temporary storage from the partition management firmware of the source cloud and from the partition management firmware of the destination cloud.

Show 8 dependent claims

18. A non-transitory computer-readable storage medium having computer executable instructions encoded thereon for migrating a virtual machine between a source cloud and a destination cloud, the computer-readable medium comprising:
instructions for mounting at least one temporary storage to a partition management firmware of the source cloud and to a partition management firmware of the destination cloud;
instructions for performing a first storage location migration of the virtual machine from the source cloud to the at least one temporary storage;
instructions for performing a second storage location migration of the virtual machine from the at least one temporary storage to final destination storage of the destination cloud; and
instructions for unmounting the at least one temporary storage from the partition management firmware of the source cloud and from the partition management firmware of the destination cloud.

Show 7 dependent claims

Description

BACKGROUND

1. Field

The disclosure relates generally to a computer implemented method, a data processing system, and a computer readable storage media having a computer program products encoded thereon. More specifically, the disclosure relates generally to a computer implemented method, a data processing system, and a computer readable storage media having a computer program products encoded thereon for the enablement and acceleration of live and near-live migration of virtual machines and their associated storage across networks.

2. Description of the Related Art

Increasingly large symmetric multi-processor data processing systems are not being used as single large data processing systems. Instead, these types of data processing systems are being partitioned and used as smaller systems. These systems are also referred to as logical partitioned (LPAR) data processing systems. A logical partitioned functionality within a data processing system allows multiple copies of a single operating system or multiple heterogeneous operating systems to be simultaneously run on a single data processing system platform. A partition, within which an operating system image runs, is assigned a subset of the platform's resources. These platform allocable resources include one or more logically distinct processors and their interrupt management area, regions of system memory, and input/output (I/O) adapter bus slots. The partition's resources are represented by the platform's firmware to the operating system image.

Each distinct operating system or image of an operating system running within a platform is protected from each other, such that software errors on one logical partition cannot affect the correct operation of any of the other partitions. This protection is provided by allocating a logically disjointed set of platform resources to be directly managed by each operating system image and by providing mechanisms for ensuring that the various images cannot control any resources that have not been allocated to that image. Furthermore, software errors in the control of an operating system's allocated resources are prevented from affecting the resources of any other image. Thus, each image of the operating system or each different operating system, directly controls a distinct set of allocable resources within the platform.

With respect to hardware resources in a logical partitioned data processing system, these resources are shared dis-jointly among various partitions. These resources may include, for example, input/output (I/O) adapters, memory DIMMs, non-volatile random access memory (NVRAM), and hard disk drives. Each partition within a logical partitioned data processing system may be booted and shut down over and over without having to power-cycle the entire data processing system.

Service availability is a key concern for users when considering deploying mission-critical services on logical partitioned virtual data centers, or clouds. Today when cloud providers need to perform fixes or maintenance on their physical infrastructure, they inform users to shutdown and reattach their instances to a different location. This incurs service down time. Additionally, when there is resource contention on the cloud, customers' services may suffer from poorer performance and availability. There are many additional scenarios in which cloud users may see impact on their services.

Live migration is a powerful virtualization technology that data center or cloud providers can themselves leverage or provide to cloud customers to increase SLAs by migrating running virtual machines from one physical location to a different physical location with little to no impact on service availability, as needed owing to problem avoidance, operational considerations, or for better delivery economics.

SUMMARY

According to one illustrative embodiment, a computer implemented method migrates a virtual machine between a source cloud and a destination cloud. At least one temporary storage is mounted to a partition management firmware of the source cloud and to a partition management firmware of the destination cloud. A first storage location migration is performed migrating the virtual machine from the source cloud to the at least one temporary storage. A second storage location migration is performed migrating the virtual machine from the at least one temporary storage to final destination storage of the destination cloud. The at least one temporary storage is then unmounted from the partition management firmware of the source cloud and from the partition management firmware of the destination cloud.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a block diagram of a data processing system in which illustrative embodiments may be implemented;

FIG. 2 is a block diagram of an exemplary logical partitioned platform in which illustrative embodiments may be implemented;

FIG. 3 is a block diagram of a memory state migration within a logical partitioned platform according to an illustrative embodiment;

FIG. 4 is a block diagram of a storage location migration within a logical partitioned platform according to an illustrative embodiment;

FIG. 5 is a dataflow diagram for live migrations of virtual machines between separate clouds utilizing a temporary shared storage according to an illustrative embodiment;

FIG. 6 is a dataflow diagram shown for live migrations of virtual machines between separate clouds utilizing a plurality of temporary shared storages according to an illustrative embodiment;

FIG. 7 is flowchart of the processing steps for live migrating of a virtual machine from a source cloud utilizing a temporary shared storage according to an illustrative embodiment; and

FIG. 8 is a flowchart of the processing steps for near-live migration of a virtual machine from a source cloud utilizing a plurality of temporary shared storages according to an illustrative embodiment.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, the present invention may be embodied as a system, method or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a circuit, module or system. Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium.

Any combination of one or more computer usable or computer readable medium(s) may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CDROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave. The computer usable program code may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc.

Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the C programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).

The present invention is described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions.

These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.

The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.

With reference now to the figures, and in particular with reference to FIG. 1, a block diagram of a data processing system in which illustrative embodiments may be implemented is depicted. Data processing system 100 may be a symmetric multiprocessor (SMP) system including processors 101, 102, 103, and 104, which connect to system bus 106. For example, data processing system 100 may be an IBM eServer, a product of International Business Machines Corporation in Armonk, N.Y., implemented as a server within a network. Alternatively, a single processor system may be employed. Also connected to system bus 106 is memory controller/cache 108, which provides an interface to local memories 160, 161, 162, and 163. I/O bridge 110 connects to system bus 106 and provides an interface to I/O bus 112. Memory controller/cache 108 and I/O bridge 110 may be integrated as depicted.

Data processing system 100 is a logical partitioned (LPAR) data processing system. Thus, data processing system 100 may have multiple heterogeneous operating systems (or multiple instances of a single operating system) running simultaneously. Each of these multiple operating systems may have any number of software programs executing within it. Data processing system 100 is logically partitioned such that different PCI I/O adapters 120, 121, 128, 129, and 136, graphics adapter 148, and hard disk adapter 149 may be assigned to different logical partitions. In this case, graphics adapter 148 connects to a display device (not shown), while hard disk adapter 149 connects to and controls hard disk 150.

Citations

US 8,108,912 B2 - Systems and methods for management of secure data in cloud-based network
Embodiments relate to systems and methods for the management of secure data in a cloud-based network. A secure data store can store sensitive or confidential...

US 2011 75,674 A1 - SCALABLE ARCHITECTURE FOR ENTERPRISE EXTENSION IN A CLOUD TOPOLOGY
Various embodiments relate to a Cloud Data Center, a system comprising the Cloud Data Center, and a related method. The Cloud Data Center may include...

US 2011 55,377 A1 - METHODS AND SYSTEMS FOR AUTOMATED MIGRATION OF CLOUD PROCESSES TO EXTERNAL CLOUDS
A cloud management system can receive rules for altering the virtual machines based on demands on the virtual machines and/or computing resources supporting the virtual...

US 2010 318,609 A1 - BRIDGING ENTERPRISE NETWORKS INTO CLOUD
An enterprise namespace may be extended into a cloud of networked resources. A portion of the cloud may be dynamically partitioned, and the extension of...

US 2011 119,668 A1 - MANAGING VIRTUAL HARD DRIVES AS BLOBS
Cloud computing platforms having computer-readable media that perform methods to manage virtual hard drives as blobs are provided. The cloud computing platform includes fabric computers...

US 2010 205,252 A1 - Optimizing Migration Policy During Live Virtual Memory Migration
A mechanism for controlling live migration of a running application between a source machine and a target machine. At least one application characteristic and at...

US 2011 75,667 A1 - LAYER 2 SEAMLESS SITE EXTENSION OF ENTERPRISES IN CLOUD COMPUTING
Various embodiments relate to a Cloud Data Center, a system comprising the Cloud Data Center, and a related method. The Cloud Data Center may include...

US 2010 322,255 A1 - PROVIDING CLOUD-BASED SERVICES USING DYNAMIC NETWORK VIRTUALIZATION
The invention is directed to providing cloud-based services using dynamic network virtualization. Embodiments of the invention provide a cloud-based service over a system that has...

US 2010 318,608 A1 - SYSTEMS AND METHODS FOR EFFICIENT LIVE APPLICATION MIGRATION WITHIN BANDWIDTH CONSTRAINED NETWORKS
A system for transferring a live application from a source to a target machines includes memory capture component that monitors and captures memory segments associated...

US 2011 153,697 A1 - Automated Filer Technique for Use in Virtualized Appliances and Applications
Various techniques are disclosed for facilitating manipulation of virtualized storage volumes and/or file systems of one or more different types of operating systems (OSs) implemented...

US 2010 11,368 A1 - Methods, systems and programs for partitioned storage resources and services in dynamically reorganized storage platforms
Exemplary embodiments establish durable partitions that are unified across storage systems and storage server computers. The partitions provide independent name spaces and are able to...

US 2008 184,229 A1 - METHOD AND APPARATUS FOR USING VIRTUAL MACHINE TECHNOLOGY FOR MANAGING PARALLEL COMMUNICATING APPLICATIONS
A method (and system) for managing a distributed-memory parallel application running on multiple servers, includes dynamically moving a plurality of executable program components, where each...

US 7,607,129 B2 - Method and apparatus for using virtual machine technology for managing parallel communicating applications
A method (and system) for managing a distributed-memory parallel application running on multiple servers, includes dynamically moving a plurality of executable program components, where each...

US 2010 332,629 A1 - SECURE CUSTOM APPLICATION CLOUD COMPUTING ARCHITECTURE
A secure custom application cloud computing architecture which facilitates virtually seamless migration of custom applications to and from a cloud computing environment in response to...

US 2009 172,666 A1 - SYSTEM AND METHOD FOR AUTOMATIC STORAGE LOAD BALANCING IN VIRTUAL SERVER ENVIRONMENTS
Methods and systems for periodically analyzing and correcting storage load imbalances in a storage network environment including virtual machines are described. These methods and systems...

US 2010 50,172 A1 - METHODS AND SYSTEMS FOR OPTIMIZING RESOURCE USAGE FOR CLOUD-BASED NETWORKS
A cloud marketplace system can be configured to communicate with multiple cloud computing environments in order to ascertain the details for the resources and services...

US 2009 300,635 A1 - METHODS AND SYSTEMS FOR PROVIDING A MARKETPLACE FOR CLOUD-BASED NETWORKS
A cloud marketplace system can be configured to communicate with multiple cloud computing environments in order to ascertain the details for the resources and services...

PatentSwarm provides a collaborative workspace to search, highlight, annotate, and monitor patent data.

Start free trial Sign in