Scheduling and load-balancing replication-based migrations of virtual machines
AssigneeGoogle Inc.
InventorsOr Igelka, Shahar Glixman
Life of this patent
Estimating the term…
Abstract
Aspects of the disclosure provide for ordering and scheduling operations for migrating virtual machines in parallel. A migration system can provide for ordering and scheduling operations to be performed when only a subset of virtual machines slated for migration can be migrated at a time. Aspects of the disclosure provide for migrating interdependent virtual machines. Interdependent virtual machines may at least partially rely on data generated by applications or services of other virtual machines in the group. A migration system schedules and orders migration cycles to reduce the down time of services implemented by the virtual machines during cut-over operations in the migrations of the virtual machines.
Claims14
A system comprising:
- one or more processors configured to, during one or more migration cycles of a migration of multiple virtual machines from one or more source computing environments to one or more target computing environments:
- identify, from a plurality of interdependent virtual machines, a first plurality of virtual machines from a source computing environment of the one or more source computing environments, wherein the plurality of interdependent virtual machines collectively execute a service, and wherein at least one virtual machine of the plurality of interdependent virtual machines is configured to execute operations that receive, as input, data generated by another virtual machine of the plurality of interdependent virtual machines;
- generate a schedule for performing the migration of the multiple virtual machines, the schedule including cut-over operations for completing the migration of each of the first plurality of virtual machines, wherein the cut-over operations are temporally ordered such that a cut-over operation of each of the first plurality of virtual machines is scheduled to occur within a predetermined threshold of time relative to the cut-over operations of other virtual machines of the first plurality virtual machines based on interdependencies among the first plurality of virtual machines and to reduce a downtime of the service incurred by performing the cut-over operations;
- perform the migration of the first plurality of virtual machines in accordance with the generated schedule;
- query constraint data from the source computing environment, while performing the migration of the first plurality of virtual machines, to determine a maximum number of a second plurality of virtual machines from the plurality of interdependent virtual machines, which can be migrated in parallel at any given point in time;
- update the generated schedule based on the determined maximum number of the second plurality of virtual machines;
- and
- perform migration of the second plurality of virtual machines based on the updated schedule, wherein the updated schedule specifies performing operations related to migration for the first plurality of virtual machines and the second plurality of virtual machines, at least partially in parallel.
A method comprising:
- during one or more migration cycles of a migration of a plurality of interdependent virtual machines from one or more source computing environments to one or more target computing environments:
- identifying, by one or more processors and from the plurality of interdependent virtual machines, a first plurality of virtual machines from a source computing environment of the one or more source computing environments, wherein the plurality of interdependent virtual machines collectively execute a service, and wherein at least one virtual machine of the plurality of interdependent virtual machines is configured to execute operations that receive, as input, data generated by another virtual machine of the plurality of interdependent virtual machines;
- generating, by the one or more processors, a schedule for performing the migration of the multiple virtual machines, the schedule including cut-over operations for completing the migration of each of the first plurality of virtual machines, wherein the cut-over operations are temporally ordered such that a cut-over operation of each of the first plurality of virtual machines is scheduled to occur within a predetermined threshold of time relative to the cut-over operations of other virtual machines of the first plurality virtual machines based on interdependencies among the first plurality of virtual machines and to reduce a downtime of the service incurred by performing the cut-over operations;
- performing, by the one or more processors, the migration of the first plurality of virtual machines in accordance with the generated schedule;
- querying, by the one or more processors, constraint data from the source computing environment, while performing the migration of the first plurality of virtual machines, to determine a maximum number of a second plurality of virtual machines from the plurality of interdependent virtual machines, which can be migrated in parallel at any given point in time;
- updating, by the one or more processors, the generated schedule based on the determined maximum number of the second plurality of virtual machines;
- and
- performing, by the one or more processors, migration of the second plurality of virtual machines based on the updated schedule, wherein the updated schedule specifies performing operations related to migration for the first plurality of virtual machines and the second plurality of virtual machines, at least partially in parallel.
One or more non-transitory computer-readable storage media encoding instructions that are operable, when executed by one or more processors, causes the one or more processors to perform operations comprising:
- during one or more migration cycles of a migration of a plurality of interdependent virtual machines from one or more source computing environments to one or more target computing environments:
- identifying, from the plurality of interdependent virtual machines, a first plurality of virtual machines from a source computing environment of the one or more source computing environments, wherein the plurality of interdependent virtual machines collectively execute a service, and wherein at least one virtual machine of the plurality of interdependent virtual machines is configured to execute operations that receive, as input, data generated by another virtual machine of the plurality of interdependent virtual machines;
- generating a schedule for performing the migration of the multiple virtual machines, the schedule including cut-over operations for completing the migration of each of the first plurality of virtual machines, wherein the cut-over operations are temporally ordered such that a cut-over operation of each of the first plurality of virtual machines is scheduled to occur within a predetermined threshold of time relative to the cut-over operations of other virtual machines of the first plurality virtual machines based on interdependencies among the first plurality of virtual machines and to reduce a downtime of the service incurred by performing the cut-over operations;
- performing the migration of the first plurality of virtual machines in accordance with the generated schedule;
- querying constraint data from the source computing environment, while performing the migration of the first plurality of virtual machines, to determine a maximum number of a second plurality of virtual machines from the plurality of interdependent virtual machines, which can be migrated in parallel at any given point in time;
- updating the generated schedule based on the determined maximum number of the second plurality of virtual machines;
- and
- performing migration of the second plurality of virtual machines based on the updated schedule, wherein the updated schedule specifies performing operations related to migration for the first plurality of virtual machines and the second plurality of virtual machines, at least partially in parallel.
Dependencies are inferred from the claim text.