-
Overview
- Migrate for Compute Engine decouples VMs from their storage and introduces capabilities that ease the move to Google Cloud
- Easy deployment: Install Migrate for Compute Engine virtual appliances in just a few steps, without installing agents on servers
- Secure by design: Data transfers between Migrate for Compute Engine components use TLS and AES-128 encryption. Data at rest is de-duplicated, compressed, and encrypted with AES-256
- Boot over WAN: Migrate for Compute Engine performs a native boot in the cloud from VMs in a few minutes, regardless of image size
- While the image boots, Migrate for Compute Engine adapts it for the target environment
- No changes to the application, original image, storage, drivers, or networking are necessary
- Intelligent streaming: Migrate for Compute Engine prioritizes the data necessary for an application to run and moves that data to the cloud first
- Migrate for Compute Engine streams data to the cloud when needed
- Multi-tier caching and optimization: Migrate for Compute Engine includes a multi-tier, read-write cache in the cloud
- Migrate for Compute Engine cache stores data needed by the application
- De-duplication, pre-fetching, asynchronous write-back, and network optimizations accelerate migration, reducing migration bandwidth by up to 75% in production migrations
- Resiliency: Migrate for Compute Engine Cloud Extensions use an active-passive configuration across two availability zones
- Data is written in both zones and then asynchronously transferred back on premises to reduce the risk of data loss
- Writes can persist solely in the cloud for development and testing
- Recovery point objective (RPO) is the maximum acceptable length of time during which data might be lost due to an incident
- Migrate for Compute Engine's architecture ensures a 30-second RPO for sync to Google Cloud Storage in the rare case of a dual zone failure and a 1-hour RPO for sync on-premises
- Supports multiple operating systems
-
Architecture
-
Architecture
- Migrate for Compute Engine provides a path to migrate virtual machines (VMs) running on VMware vSphere to Compute Engine
- Migrate for Compute Engine can also migrate physical servers and Amazon EC2 or Azure VMs to Compute Engine
- Migrate for Compute Engine Manager on Google Cloud manages all components and orchestrates migrations
- Migrate for Compute Engine Manager on Google Cloud serves the Migrate for Compute Engine user interface
- Cloud Extensions handle storage migrations and serve data to migrated workloads during migration
- A Cloud Extension is a pair of Cloud Edge nodes
- The Migrate for Compute Engine Exporter creates Google Cloud Persistent Disks when detaching disks
-
On Premises
- When performing on-premises to cloud migrations, the Migrate for Compute Engine On-Premises Backend virtual appliance on VMware establishes a secure data path with the Cloud Extension nodes
- Starts and stops VMs using VMware APIs
- Performs storage operations against virtual machine disks (VMDKs) using the VMware Storage API
- The Migrate for Compute Engine On-Premises Backend virtual appliance serves data from VMware to the cloud extension
- The Migrate for Compute Engine vCenter Plugin connects vCenter vSphere to the Migrate for Compute Engine Manager
- Encrypted migration data is sent from Migrate for Compute Engine Backend to Cloud Extensions
- A control plane is configured between Cloud Extensions and Migrate for Compute Engine Manager
- Data is synchronised between Cloud Extension nodes
- Migrate for Compute Engine Manager checks if SSH or RDP console on the migrated VM is available
- HTTPS access to Migrate for Compute Engine Manager is enabled for web user interface access
- iSCSI is used for data migration and syslog
-
AWS
- For migrations from AWS to Google Cloud, the Migrate for Compute Engine Manager launches Importer instances on AWS as required to migrate AWS EC2 source workloads and their EBS volumes
- Migrate for Compute Engine Importer instances run only when data is being migrated
- Migrate for Compute Engine Importer serves data from AWS Elastic Block Store volumes to Cloud Extensions
-
Azure
- For migrations from Azure to Google Cloud, the Migrate for Compute Engine Manager launches Importer instances on Azure as needed to migrate Azure source workloads and their disks
- Migrate for Compute Engine Importer instances run only when data is being migrated
- Migrate for Compute Engine Importer serves data from Azure disks to Cloud Extensions
-
GCP
- Migrate for Compute Engine Manager on Google Cloud orchestrates migration operations and serves the web user interface
- Migrate for Compute Engine Manager connects with the Migrate for Compute Engine On-Premises Backend virtual appliance and accesses Google Cloud API endpoints as well as Monitoring and Logs services
- Once the Migrate for Compute Engine Manager is launched, connect it to the Migrate for Compute Engine Backend, and create Cloud Extensions to manage storage migration
- Cloud Extension nodes (Cloud Edge nodes) run in pairs in separate Google Cloud zones
- Migrate for Compute Engine Manager and Cloud Extension require inbound access from the corporate datacenter to Google Cloud
- Inbound iSCSI access from on-premises VMs migrated to Google Cloud into the Cloud Extension nodes is necessary to migrate storage
- Subnets where Cloud Extension nodes are deployed must allow outbound access to certain services, such as Cloud Storage and Cloud Monitoring
-
Workflow
-
Modeling and planning migration waves
- Before beginning a migration, create a prioritized inventory of the machines to migrate.
- Understand application's dependencies
- Use Migrate for Compute Engine's Wave interface to create migration waves and plan the migrations
- Batch dependencies within the same wave, for example if an application depends on multiple VMs, migrate all of those VMs in the same wave
- If an application requires a database and a web server, the database can be migrated and started before the web server
-
Pre-migration testing (optional)
- To test migration before running it, clone an on-premises workload and run it in Google Cloud without modifying the original host
- Cloning an on-premises workload and running it in Google Cloud enables it to be tested without disrupting production
- On premises workload clones can be fully operational within minutes
-
Cutover to cloud
- Run the VM in Compute Engine in streaming mode
- Compute Engine VMs can be run in streaming mode per VM or using Waves for mass migration sprints
- The Migration Wizard or Waves can be used to move VMs to Compute Engine
- The Migration Wizard or Waves can be used to migrate application storage to Google Cloud
-
Detach
- After determining that the VMs in the cloud can be relied upon, schedule downtime to cut over application to Google Cloud
- To cut over application to Google Cloud, detach the VM and test the application to verify that it functions accurately
-
Running vs migrating VMs
- Migrate for Compute Engine distinguishes between running a VM in Google Cloud and migrating the VM to Google Cloud
- Both modes dramatically reduce the time to start up a VM on Google Cloud by making the VM available at the destination before all of the data is migrated there
- When running an on-premises VM in Google Cloud, storage is streamed, and storage blocks are only cached on Google Cloud when needed
- Storage can be optionally migrated as a next step to complete the migration to Compute Engine
- Migrating an on-premises VM to Google Cloud involves running the VM in Google Cloud while actively migrating its data in the background to Google Cloud
- When data is fully cached on Google Cloud, the VM is detached
- Detaching a VM moves its storage from the Migrate for Compute Engine cache and creates native disks on Compute Engine
- When detaching, the VM needs to be shut down briefly to switch from the streaming to native disk volumes and to allow for complete synchronization
- Storage migration can be initiated at any time
-
Requirements
-
Requirements*
- Bandwidth between source environment and Compute Engine nodes should be larger than the total number of VMs migrated concurrently, multiplied by 0.5 Mbit/sec per VM
- Migrate for Compute Engine 4.8 recommends a minimum of 50 Mbit/sec for production use of up to 100 VMs running in the cloud
- VMs need to run a supported operating system version
- Network access outlines ports and connectivity requirements
- Migrate for Compute Engine components require a specific set of Google Cloud Service Accounts and Roles
-
On Premises
- Migrate for Compute Engine supports migrations from VMware vCenter and ESXi
- Each Migrate for Compute Engine release is compatible with specific VMware versions
- A VMware administrator needs to Deploy the Migrate for Compute Engine On-Premises Backend virtual appliance OVA
- Create and assign vCenter roles for Migrate for Compute Engine to manage migrations
- Migrate for Compute Engine Backend runs on a VM in a VMware environment
-
AWS
- Set up a VPN or Interconnect between AWS and Google Cloud
- Set up an IAM account and assign privileges to it
-
Azure
- Set up a VPN or Interconnect between Azure and Google Cloud
- Set up the necessary permission in Azure
-
Extensions
-
Overview
- A Cloud Extension is a conduit for VM storage between two hosting environments
- A Cloud Extension uses a dual-node active/passive configuration for high availability
- Each Cloud Extension node serves its own workloads while providing backup for the other
- A Cloud Extension is a pair of Cloud Edge nodes
-
Configuration
- Each Cloud Extension supports up to 20 or up to 50 concurrent VMs, depending on the Cloud Extension size
- More than one Cloud Extension can be used to simultaneously to handle a larger migration
- The total number of Cloud Extensions necessary for a migration is a function of the total number of VMs divided by the capacity of the Cloud Extension
- Cloud Extensions are created and configured either using the Migrate for Compute Engine vCenter or the Migrate for Compute Engine Manager
-
Impared
- A Cloud Extension is impaired when it has not fully failed, but is experiencing trouble with one of its nodes or network connectivity
- A Cloud Extension with an Impaired status functions differently depending on whether only one or both of its Cloud Edge nodes have failed
- Cloud Extension can be Impaired if the Migrate for Compute Engine Backend or the Migrate for Compute Engine Manager fail
- Cloud Extensions can be impaired due to incomplete deployment or initial failed health checks
- Incomplete deployment or initial failed health checks are most likely due to improperly configured networks or permissions
- Cloud Extensions can be repaired after fixing the underlying causes of a failure
- Repairing the cloud extension attempts to recreate the missing components, run relevant health checks, or both
- If a Cloud Extensions repair operation succeeds, the Cloud Extension is Active
- Stopping and starting the Cloud Extension might fix VM health issues after affected VMs restart on a healthy host
-
HA Model
- Cloud Extensions provide high availability using an active-passive model
- Workloads use a primary Cloud Edge node, and iSCSI multipath to connect to the secondary node
- If a Cloud Extensions primary node fails, the workloads fails over to the secondary node
- When a primary Cloud Extensions node recovers, the workload fails back to it
- If only one of the Cloud Edge nodes fails, most operations remain available, but write throughput decreases
- If both Cloud Edge nodes fail, VMs relying on that Cloud Extension will no longer have access to storage and will fail
- If both Cloud Edge nodes fail, the Cloud Extension can no longer run new VMs in the cloud
- If both Cloud Edge nodes fail, running VMs can be moved back to their source environment
- If both Cloud Edge nodes fail while a VM is fully cached, the Prepare to Detach operation can be used to migrate back to the source environment
- If both Cloud Edge nodes fail, VMs can be stopped
-
Repairing
- If the Cloud Extension creation task fails, loses connectivity, or edge node instances become unavailable, the Cloud Extension is considered Impaired
- Once the Cloud Extension is repaired, the status is set to Active
- Repairing the Cloud Extension attempts to recreate the missing components and/or re-run relevant health checks
- After fixing the underlying causes, the status can be can updated to Repaired using either the Migrate for Compute Engine Manager or vCenter
-
Data Loss
- When one Cloud Edge node fails, the Cloud Extension enters a fail-safe mode
- To avoid data loss, all data is written to the Cloud Extension's object store on Cloud Storage, which reduces the Cloud Extension performance
- Google does not recommend running or migrating VMs using an impaired Cloud Extension
-
Backend
- On-Premises Backend virtual appliance connects to VM disks in on-premises data center and streams or migrates data to Google Cloud using Cloud Extensions
- Backend is distributed as an Open Virtualization Format (OVF) package
- Backend configuration is based on the number of VMs to be migrated concurrently
- A PowerShell script is also available for manually adding a service role to the vCenter Server for Migrate for Compute Engine
- Once the Backend has successfully connected and registered with the Manager on Google Cloud, the Migrate for Compute Engine VMware vCenter Web Client Plugin can be registered and deployed
- Migrate for Compute Engine VMware vCenter Web Client Plugin enables Migrate for Compute Engine management operations and monitoring in the vCenter UI
- Each Migrate for Compute Engine can communicate with only one Migrate for Compute Engine Manager per vCenter server
-
Adapting VMs
-
Customization
- Some custom configurations or adaptations are handled automatically, while others are enabled through the use of custom configuration script
- Custom configurations or adaptations allow a VM, its operating system (OS), and applications to run in the clou
- VM adaptations can be customised by installing drivers to boot VM
- Scripts can be executed during migration to enable adaptations
- Scripts can be developed by customers or provided as a support package
- Scripts may run in machine states (for Windows VMs) or phases (for Linux VMs)
- VM changes performed automatically
- Linux VMs can be prepared to boot automatically in the cloud using an installed package.
- Changes automatically applied to VMs are active only when the VM is running in the cloud
- Automatically installed packages can remain installed after the VM has been migrated
- If an automatically installed package is uninstalled, all changes are reverted and the VM may not boot in the cloud
-
Changes made to Linux and Windows
- Enable booting on cloud
- Enable the serial console
-
Cloud-specific changes for storage channel
- Hardware-specific adaptations for cloud migration
-
Modifications for run-in-cloud on Windows VMs
- When a run-in-cloud operation is started on a Windows VM, the VM is shut down and a snapshot taken
- Networking and storage drivers are modified after the VM is shutdown for the run-in-cloud operation to boot the VM in the cloud
-
Modifications for detaching a Windows VM
- During a detach of a Windows VM, a Google Cloud agent is installed
- The Google Cloud agent installation requires either an external IP address or Private Access to be enabled during run-in-cloud
-
Modifications for run-in-cloud on Linux VMs
- When a VM with VMware tools installed is migrated, the VM gracefully shut down and a snapshot of the VM is taken
- When a VM with VMware tools installed is shutdown, networking and storage drivers are modified to allow the VM to boot in the cloud
-
Rightsizing
-
Recommendations
- Before migrating a virtual machine to Compute Engine, determine the target instance types and sizes to use
- Migrate for Compute Engine has a rightsizing feature that determines the target instance types and sizes to use
- Migrate for Compute Engine rightsizing feature includes built-in usage monitoring and recommends instance types optimized for cost and performance
- Performance-based recommendations recommends Compute Engine instances based on the CPU and RAM currently allocated to the on-premises VM. This recommendation is the default
- Cost-based recommendations propose Compute Engine instances based on the current CPU and RAM configuration of the on-premises VM and the average usage of the VM during a given period
- To use Cost-based rightsizing recommendations, activate rightsizing monitoring with vSphere for the group of VMs and allow time for Migrate for Compute Engine to analyze usage
- Recommendations are accessible from the vCenter Web Client user interface, PowerShell module, REST API, and Migrate for Compute Engine Waves for mass migration planning
- Suggested options also include expected relative monthly costs estimates not intended for billing forecasts
- Cost estimates use on-demand compute prices with sustained-use discounts only, and does not include disk and network cost or consider reduced-cost options
- Migrate for Compute Engine Manager must have access to the internet to access the online price list to provide cost-optimized recommendations
-
vSphere
- When VMs are monitored, the Migrate for Compute Engine On-Premises Backend virtual appliance starts collecting and analyzing utilization statistics from VMware vSphere
- Migrate for Compute Engine On-Premises Backend classifies the activity it observes into patterns based on estimated memory and CPU needs
- For better recommendations, Migrate for Compute Engine recommends monitoring the migrated workloads for at least seven consecutive days
- Migrate for Compute Engine warns users when the monitoring period is insufficient for an adequate recommendation
- Migrate for Compute Engine offers a cost-optimized recommendation based on the data available
-
AWS
- Migrate for Compute Engine offers rightsizing recommendations for VMs hosted on AWS
- Unlike rightsizing recommendations for vSphere, recommendations for AWS instances are not based on monitoring of instance usage
- Rightsizing recommendations for AWS are based upon the CPU and memory configuration of the source instance
- Special instance types such as GPU or burstable instances need to be specified manually in the runbook
-
IAM
- Migrate for Compute Engine uses service accounts to grant access permissions
- Deploying Migrate for Compute Engine Manager creates the Manager Service Account attached to the Manager instance
- The Manager Service Account allows the Manager to orchestrate migrations, deploy Cloud Extensions and create instances for migrated VMs
- The Cloud Extension Service Account is attached to the Cloud Extensions nodes
- The Cloud Extension Service Account allows Cloud Extensions nodes access to storage resources
- Migrate for Compute Engine-specific roles enable permissions on Compute Engine and Cloud Storage
-
Networking
-
Network resources
- Virtual Private Cloud (VPC) on Google Cloud
- Firewall rules on Google Cloud, on-premises, AWS, or Azure
- VPNs or other network interconnections with routing and forwarding rules between Google Cloud and on-premises, AWS or Azure environment
- Google Cloud Network Tags that allow traffic to pass between instances
-
Network tags
- Google Cloud uses network tags to identify which network firewall rules apply to specified VM instances
- Components with the same network tags can communicate with each other
- Migrate for Compute Engine assigns network tags to facilitate workload migration
-
Storage
-
Write back mode (default)
- In write back mode, Migrate for Compute Engine writes all disk changes made to the VM on Google Cloud back on-premises
- Changes are buffered and synchronized
- When a VM is migrated with write back mode, Migrate for Compute Engine writes any data remaining in the buffer before restarting the VM
- When Migrate for Compute Engine completes a move back, it deletes all interim snapshots and virtual disks
- For migrations from Amazon EC2 and Azure, writing changes back to the source is not possible
-
Write isolation mode
- In write isolation mode, Migrate for Compute Engine does not write storage data on-premises while the VM is running on Google Cloud
- If a VM in write isolation mode is moved back to the source environment, changes are not copied back
- VM's disk is re-created from the initial snapshot when a VM in write isolation mode is moved back to the source environment
-
Lifecycle
-
Full migration
- Moves VMs in one step from source to target
- Performs the run-in-cloud process
- Waits for the VMs to be in the Cache on Demand state, when storage is streamed to the cloud.=
- Migrates the VM data to Google Cloud
- After storage is fully copied to Google Cloud, prepares the VM to detach
- When VM detach process has completed, the VM state changes to Ready to Detach
-
Can run automatically or manually during full migration
- Run-in-cloud
- Storage migration
- Prepare to detach
- Run-in-cloud
- Moves the source VMs from on-premises data center to Google Cloud
- Does not completely move VM storage to the cloud
- Storage is migrated with storage migration
-
Run-in-cloud operation
- Shuts down the source VMs
- Attaches to the VM's volumes
- Starts the VM on Google Cloud, streaming storage as needed
-
Cleanup
- After VMs are detached and required validation completed, the detach cleanup can be started
- Each VM is then marked as unmanaged by Migrate for Compute Engine
-
Move back
- Moves the instances in Google Cloud back to their source, either on-premises or AWS
-
Move-back operation
- Stops the VMs
- Moves storage back to source
- Deletes the Google Cloud instances
-
Test clone
- A test clone creates clones of selected VMs to test them in Compute Engine
- The test clone behaves like the live systems and leverages data from the source VM
- Test clones do not modify any live data because data from the test environment is not written back on-premises.
-
Upon creating a test clone, Migrate for Compute Engine
- Attaches to the VM volumes
- Starts each instance in Google Cloud
- Streams storage from the VM to Google Cloud.
- Test clones are available only for migrations from vSphere to Compute Engine
- Test clones are not available for migrations from other cloud-based source platforms
-
Delete clone
- Deleting the test clone removes it from Google Cloud
- Deleting a test clone has no impact whatsoever on live system or data
- Any changes made to data in the test clone are not replicated back to the live system
-
Offline migration
- Migrates workloads with operating systems or file systems that Migrate for Compute Engine's streaming technology does not support, but that the cloud environment does support
-
During the offline migration process, Migrate for Compute Engine
- Migrates storage
- Starts the new VM only after migration is completed
- Detaches the VM
-
Quotas
- Compute instances are needed to support migrated VMs, Manager, Cloud Extensions, and worker nodes
- When deploying Cloud Extensions, ensure SSD Persistent Disk quota is set high enough to support the number of Cloud Extensions
- The migration process creates Compute Engine VMs, and can create IP addresses for access over the public Internet
- During migration, Migrate for Compute Engine uses Cloud Storage to hold data that is used by applications on Compute Engine VMs
- Migrate for Compute Engine uses Virtual Private Cloud (VPC) for secure access to GCP during migration
- Ensure quotas for networks, subnets, IP addresses, and more will support the migration
-
Pricing
- Google Cloud pricing calculator can be used to create an estimate of monthly GCP charges, including VM pricing
- GCP charges for resources such as Compute Engine instances, storage, and networking which are necessary to perform migrations
- Technical support is available with a paid GCP Cloud Support subscription
- Migrate for Compute Engine uses Google Compute Engine instances
- Users are billed for Compute Engine instances according to Compute Engine's pricing, until the instances are deleted
- Compute Engine resources are billed on a per-second basis with a one-minute minimum usage cost
- Prior to migration, Migrate for Compute Engine provides estimated costs for VMs using Compute Engine published pricing and sustained use discounts
- Additional compute discounts may apply
- During migration, customers incur costs for Compute VMs to support Migrate for Compute Engine Manager, Cloud Extensions, worker nodes, VMs Storage, Cloud Storage and Network traffic
- GCP does not charge for ingress network traffic, such as migrating storage from another environment to GCP
- If enabled in the Manager, customers incur costs for Metrics and Monitoring
- After migration, workloads running on GCP incur costs according to regular Google Cloud pricing
- Google Cloud Platform pricing calculator can be used to create an estimate of monthly GCP charges, including VM pricing
- Migrations from AWS incur costs on AWS for EC2 instances launched by Migrate for Compute Engine on AWS, EBS volumes and usage, and network traffic