Migrate to Virtual Machines in Google Cloud: Moving Your Servers Without Rebuilding Them

Migrate to Virtual Machines in Google Cloud: Moving Your Servers Without Rebuilding Them

A complete, plain-English guide to Google Cloud's free lift-and-shift service: how it works inside, how to plan a migration, how replication, test clones and cut-over fit together, and how to avoid the mistakes that slow teams down.

Imagine you run a busy restaurant in an old building. The kitchen is cramped, the rent keeps rising, and the landlord will not renovate. You have found a bigger, modern building across town with better equipment. The problem is that you cannot close for a month to move. Customers still need dinner every night. So you need a way to copy the whole kitchen, stove by stove and shelf by shelf, into the new building while the old one keeps cooking, and then flip the “open” sign from the old address to the new one in a single quiet moment.

That is the exact problem Migrate to Virtual Machines solves for computers. Your applications live on virtual machines in a data center or another cloud. They work, and the business depends on them. But you want them to run on Google Cloud, and you do not want to reinstall every operating system, rebuild every application, or switch off production for days. This tutorial teaches you how the service works, from the first idea to the last cleanup step, in simple language with no prior knowledge needed.

1What Migrate to Virtual Machines Actually Is

A managed Google Cloud service that copies running virtual machines into Compute Engine with very little downtime.

A virtual machine, usually shortened to VM, is a computer made of software. One physical server can host many VMs, each with its own operating system, its own disks, and its own applications, all sharing the same hardware without seeing each other. Companies adopted VMs because they made expensive hardware far more efficient.

Migrate to Virtual Machines is Google Cloud’s service for moving those VMs into Compute Engine, which is Google’s own service for running VMs. It takes a VM that lives somewhere else, continuously copies its disk data to Google Cloud, and lets you start a matching VM on Google’s infrastructure when you are ready. The approach is called lift and shift, because you lift the machine as it is and set it down in a new place, making only the small changes needed for it to run there.

The service is delivered “as a service”. You use the Google Cloud console or an API to define sources, pick VMs, and drive the migration. You do not buy migration software, install a heavy management server, or license anything extra. The documentation describes the current generation as the 5.x line, which is the version this guide follows.

Simple Analogy

Think of a professional moving company that photographs every room, then keeps rebuilding an exact copy of your house in a new street while you still live in the old one. On moving day they only need to carry across the last few things you touched that morning. Migrate to Virtual Machines is that moving company for servers.

What it is not

It does not rewrite your application, split it into smaller pieces, or turn it into containers. It does not move databases into managed database services. It does not decide what to move. It is a transport and conversion service for whole virtual machines. Knowing that boundary early prevents unrealistic expectations later.

4
kinds of migration source supported
$0
service fee for migrations into Google Cloud
5.x
current documented product line

2Why Companies Migrate Virtual Machines at All

The reasons are usually money, speed, risk, or a deadline that cannot move.

Before learning the tool, it helps to know why anyone uses it. Moving to a cloud is rarely a technology hobby. It is almost always a business decision with a reason attached, and the reason shapes how you migrate.

Reason 1

Data center exit

A lease is ending, hardware is aging out, or the company wants to stop running buildings full of servers.

Reason 2

Hardware refresh avoidance

Buying new servers every few years is expensive. Renting capacity turns a big upfront bill into a usage-based one.

Reason 3

Consolidating clouds

After a merger or an experiment, workloads sit in several clouds. Teams move them to one place to simplify skills, billing and security.

Reason 4

Faster scaling

Ordering a physical server takes weeks. Creating a VM in the cloud takes minutes.

Reason 5

Platform for modernizing later

Getting a workload into the cloud first, unchanged, gives teams a stable base from which to improve it step by step.

Where lift and shift sits among the migration strategies

People often describe migration choices with a short list of strategies. Rehost means move as is. Replatform means move with small improvements, such as swapping a self-managed database for a managed one. Refactor means redesign the application for cloud-native patterns. Retire means switch it off. Retain means leave it where it is for now. Migrate to Virtual Machines is a rehost tool. It is the right choice when speed and low risk matter more than immediate redesign.

i
Practical Note

Rehosting first and modernizing afterwards is a very common and perfectly respectable path. A running, supported workload on Google Cloud is a better starting point for redesign than a half-finished rewrite on old hardware.

3Core Vocabulary You Will Use Every Day

Eight terms unlock almost every sentence in the official documentation.

Cloud tools come with their own vocabulary. Learn these terms once, and the rest of this guide reads like plain English.

Term 1

Migration source

The place your VMs currently live: a vSphere data center, an AWS account, an Azure account, or a Google Cloud VMware Engine environment.

Term 2

Migration target

The place the VM ends up: a Compute Engine VM instance, or a Persistent Disk volume if you only want the disks.

Term 3

Host project

The Google Cloud project that controls the migration. You switch the service on here, and sources and migrations are managed from here.

Term 4

Target project

A Google Cloud project that receives migrated VMs. You can have several, for example one per team or environment.

Term 5

Migrate Connector

A small appliance installed in a vSphere or VMware Engine environment that talks to the virtualization platform and carries data to Google Cloud.

Term 6

Replication

The continuous copying of a VM’s disk data from the source to Google Cloud, without switching the source VM off.

Term 7

Test clone

A throwaway VM started in Google Cloud from replicated data, used to check that the workload behaves before the real move.

Term 8

Cut-over

The real switch: a final sync, then a production VM starts in Google Cloud and becomes the live system.

Two more words appear later. A group is a bundle of VMs that you migrate together, usually because they belong to the same application. OS adaptation is the set of small automatic changes that make a VM from another platform boot and behave correctly on Compute Engine.

Simple Analogy

The host project is the moving company’s dispatch office. Target projects are the new houses. The Migrate Connector is the truck parked outside your old building. Replication is the loading of boxes while you still live there. The test clone is a rehearsal dinner in the new house, and cut-over is the day you hand in the old keys.

4Architecture and Components

A control plane in Google Cloud, a data path from the source, and Compute Engine as the destination.

The easiest way to understand the architecture is to separate the brain from the pipes. The brain is the Migrate to Virtual Machines service running in your host project. It records which sources exist, which VMs are being migrated, what state each one is in, and what you have asked it to do next. The pipes are the connections that move bytes of disk data from the source into Google Cloud storage and finally into Compute Engine disks.

flowchart LR
  subgraph SRC["Migration Sources"]
    V["vSphere data center"]
    G["Google Cloud VMware Engine"]
    A["AWS account"]
    Z["Azure account"]
  end
  subgraph HOST["Host Project"]
    API["Migrate to Virtual Machines service"]
    CON["Console, API and IAM"]
  end
  subgraph TGT["Target Project"]
    CE["Compute Engine VM or Persistent Disk"]
  end
  V -->|Migrate Connector| API
  G -->|Migrate Connector| API
  A -->|cloud source link| API
  Z -->|cloud source link| API
  CON --> API
  API -->|replicated data, clone, cut-over| CE
        
FIG 1 — High-level view: sources feed the service in the host project, which delivers VMs into target projects

The main building blocks

Google Cloud console and API

The console gives you a visual way to add sources, start replication, run test clones and perform cut-overs. The same actions exist as an API, which is how large teams build automated “migration factories” that move hundreds of machines on a schedule.

Cloud IAM

Identity and Access Management decides who may create sources, who may start migrations, and which service accounts the service uses behind the scenes. Every action in the service is checked against it.

The VM Migration service in the host project

This is the coordinating engine. You enable it by turning on the VM Migration API in the host project. It stores the state of every migration and orchestrates replication, cloning and cut-over.

Migrate Connector (for vSphere and VMware Engine)

A virtual appliance you deploy next to your VMware environment. It registers with Google Cloud and acts as the safe bridge between vCenter and the cloud service, so you do not open your internal network to the outside world.

Cloud source connections (for AWS and Azure)

For other clouds there is no appliance to install. You give the service the permissions it needs in the source account, and it works through that cloud’s own interfaces, launching temporary helper resources when required.

Compute Engine, Persistent Disk and Cloud Storage

These are the destination services. Replicated data lands in Google-managed storage first, and is turned into Persistent Disk volumes and VM instances when you clone or cut over.

!
Common Misconception

The host project is not the place your VMs end up. It is the control room. Migrated VMs are created in target projects, and mixing these two ideas is the number one source of confusion in first-time setups.

5The Four Supported Migration Sources

On-premises VMware, VMware Engine, AWS and Azure.

Google documents four sources for the current generation of the service. Each has the same overall migration flow, but a slightly different way of connecting.

SourceWhat you migrateHow the connection worksKey thing to remember
vSphere data centerOn-premises VMware VMsMigrate Connector installed in your vSphere environmentCheck your vCenter version against the supported list; recent releases from 6.x through 8.x are covered
Google Cloud VMware EngineVMs running in Google’s managed VMwareMigrate Connector registered to the VMware Engine environmentUseful when moving from VMware-style hosting to native Compute Engine
AWS cloud serviceEC2 instancesCloud source created with permissions in your AWS accountTemporary resources may be launched in AWS and billed there
Azure cloud serviceAzure VMsCloud source created with permissions in your Azure accountTemporary resources may be launched in Azure and billed there

Limits worth knowing

A single host project can hold a maximum of fifteen cloud sources at a time, counting AWS and Azure sources together. You might host ten AWS sources and five Azure ones, or any other split, but not sixteen. If you reach the ceiling, you delete an unused source before adding another. For large enterprises with many accounts, this limit is a real planning factor, and it is a good reason to use more than one host project when the estate is big.

Operating system support

The VM must run an operating system that Google lists as supported for its particular source. The list differs by source and changes over time, so always check the current “supported operating systems” reference before promising a date to your business. Some Compute Engine features also rely on agents and services inside the guest operating system, which is another reason to read that page early.

“Check the supported-versions page before you check the calendar.”

6Planning and Assessment Before You Touch Anything

Most migration problems are planning problems that show up late.

A migration tool is only the engine. The route, the order and the timing are decided by humans before the engine starts. Teams that skip this step usually do not fail loudly. They fail slowly, with surprise outages, unexpected bills and wasted weekends.

Step one: know what you own

You cannot move what you cannot list. Build an inventory of every VM: its operating system, number of CPUs, memory, disk sizes, how busy it really is, and which applications run on it. Google offers a wider platform called Migration Center that helps with discovery of the current environment, cost estimates and assessment, and Migrate to Virtual Machines is documented as one of the tools within that journey. Third-party discovery tools also work well when your estate is mixed.

Step two: map dependencies

Applications talk to each other. A web server talks to an application server, which talks to a database and to a file share. If you move the web server to Google Cloud while the database stays in your data center, every page load now crosses a long network link, and it may feel painfully slow. Dependency mapping tells you which machines must move together.

Simple Analogy

Moving a chef to a new restaurant while leaving the fridge in the old one means every egg has to be carried across town. Dependencies are the invisible string between chef and fridge.

Step three: classify and sequence

1

Sort by difficulty and risk

Start with low-risk systems like development and test servers. They teach the team the process while mistakes are cheap.

2

Group by application

Place all machines of one application into the same wave, so they move and are tested together.

3

Pick windows with the business

Agree cut-over times with the application owners, including who is on call and what a rollback looks like.

4

Reserve capacity and quotas

Check that your target projects have enough CPU, disk and IP quota for the wave. A quota error halfway through a cut-over is a bad surprise.

Step four: decide the destination shape

Decide the machine type, region, zone, network and disk type for each target. The service provides usage-driven analytics to help you right-size destination instances, which matters because a physical-era server is often over-provisioned. Copying a half-idle sixteen-core machine as sixteen cores simply carries yesterday’s waste into tomorrow’s bill.

i
Practical Note

Right-size at the planning step and again after migration. Start a little generous so users are not disappointed, then trim once you see real usage on Google Cloud.

7Building the Foundation on Google Cloud

Projects, APIs, identities, networks and quotas must exist before the first byte moves.

Google’s own guidance tells you to build the foundation on Google Cloud and prepare the source environment before migrating VMs. The foundation is the part that is boring, careful and absolutely worth doing right, because every later step depends on it.

The resource hierarchy

Google Cloud organizes everything inside projects, which group resources, billing, permissions and APIs. Migrate to Virtual Machines requires one host project and one or more target projects. A common design uses one host project for the entire migration program and several target projects, each mapped to a business unit, an environment such as production or testing, or a team that will own the VMs afterwards.

Enabling the service

In the host project you enable the VM Migration API and the other services the migration depends on. This is a one-time setup per host project. Doing it in the console is straightforward, and teams that manage infrastructure through automation usually record the same step in their standard project templates.

Identity and permissions

Two kinds of identities matter. First, the people who run migrations need roles that let them create sources, start replication and perform cut-overs. Second, service accounts let the service act on your behalf in target projects when it creates disks and VMs. Follow the principle of least privilege. Grant the migration team what they need for the duration of the program, and review the grants when it ends.

Networking

Networking decides both the speed of replication and the behaviour of the migrated VM. Plan these pieces:

  • Connectivity between source and Google Cloud. Replication needs outbound connectivity from the source environment to Google Cloud. Many companies use a private connection such as Cloud VPN or Cloud Interconnect for predictable bandwidth and stronger privacy, while others rely on the internet with encrypted traffic.
  • Target VPC network and subnets. Decide in advance which network and subnet each migrated VM will join, and how it gets an internal IP address.
  • Firewall rules. The VM arrives with its application listening on certain ports. Make sure the target network allows the needed traffic and blocks everything else.
  • Name resolution. Applications often find each other by name. Plan how DNS will point to the new addresses during cut-over.
!
Common Mistake

Teams measure their link speed once and assume it is constant. Real bandwidth is shared with daily business traffic. Always estimate the initial copy time with a realistic share of the link, not the full advertised speed.

Quotas and billing

Compute Engine has default limits for CPUs, disks and addresses per region. A large wave can exceed them. Request increases before the migration window, not during it. Also confirm that billing is attached to every target project, because VMs cannot be created without it.

FOUNDATION-01 Recommended
Problem

Teams start replicating VMs immediately, then discover missing quota, wrong network choices or missing permissions in the middle of a cut-over weekend.

Why It’s Harmful

Fixing foundation gaps under time pressure leads to hasty permission grants, ad hoc firewall changes and missed windows.

Correct Approach

Complete a written foundation checklist covering projects, APIs, roles, networking, quotas and billing, and run a small pilot migration of a harmless VM to prove the whole path end to end.

8Preparing the Source Environment

Connect the service to the place your VMs live, and get the source ready to be copied.

Once the foundation is in place, you turn to the source. The preparation differs by source type, but the goal is always the same: let the service see your VMs and read their disks safely, without disturbing the people who use them.

Preparing a vSphere or VMware Engine source

For these sources you deploy the Migrate Connector as a virtual appliance inside your VMware environment. After it starts, you register it with your Google Cloud host project, and then you create a source in the console that represents your vCenter. From that moment, the service can list the VMs in that vCenter and show them as candidates for migration.

A few practical points matter here. The connector needs enough compute and network resources to move data at the speed you expect. It needs access to vCenter with an account that has just the privileges required for the job. And it needs a path to Google Cloud. Because the connector initiates the outbound connection, you generally do not need to open inbound holes in your firewall, which security teams appreciate.

Preparing an AWS or Azure source

For cloud sources you create a source in the console and grant the service the permissions it needs inside your cloud account. In AWS this means an identity with defined permissions over EC2 and related storage. In Azure it means an application identity with rights over compute and disks in the chosen subscription. The service then discovers VMs in that account and can launch short-lived helper resources there to read disk data.

!
Cost Reminder

Because helper instances, disks and network transfer happen inside the source cloud, those charges appear on the AWS or Azure bill, not on Google Cloud’s. Include them in your migration budget, especially for large data volumes where outbound traffic charges can add up.

Getting the VMs themselves ready

1

Confirm the operating system is supported

Look up the exact OS version in the supported list for your source type. Unsupported versions may boot unpredictably or lack drivers.

2

Check free disk space and health

A VM with a full system disk or file system errors can fail during adaptation. Clean up and repair before replicating.

3

Record how the VM is configured today

Write down its IP address, hostname, mounted disks and installed agents. After migration you will compare against this record.

4

Review licensing

Some commercial software ties its license to hardware or to a platform. Confirm with vendors that running on Google Cloud is allowed and how to activate it.

Simple Analogy

Preparing the source is like labelling boxes and checking that the front door is unlocked before the movers arrive. It is dull, but it prevents the movers from standing around on an expensive hourly rate.

9Replication: How the Data Travels

The heart of the service is a steady, non-disruptive copy of disk data.

Replication is where most of the migration time is spent, so it is worth understanding properly. The key promise from Google is that replication copies disk data from the source VM to Google Cloud continuously without causing downtime on the source. Your users keep working on the old VM while the new copy builds up quietly in the background.

The two phases of replication

Phase A

Initial full copy

The first pass copies all the data on the disks. For a large VM this can take hours or days, depending on disk size and available bandwidth.

Phase B

Ongoing incremental copies

After the first pass, only blocks that changed since the last cycle are sent. These cycles are small and fast, and they keep the cloud copy close to the live VM.

How changes are noticed

Virtualization platforms keep track of which disk blocks change over time. The service relies on the source platform’s snapshot and change-tracking abilities to find just the modified blocks, instead of re-reading everything. This approach avoids installing a monitoring agent inside each guest operating system. Google highlights this as a benefit: no client-side agent inside your workload means no extra load on the workload itself and no need to open network access into the machine.

sequenceDiagram
  participant S as Source VM
  participant P as Source platform or connector
  participant G as Google Cloud service
  participant D as Replicated disk data
  S->>P: Application keeps writing data
  P->>G: Initial full copy of all disk blocks
  G->>D: Store full baseline
  loop Every replication cycle
    P->>P: Identify changed blocks
    P->>G: Send changed blocks only
    G->>D: Apply changes to baseline
  end
  Note over D: Cloud copy stays close to the live VM
        
FIG 2 — Initial copy followed by repeating incremental cycles

What affects replication speed

  • Total disk size. More data means a longer first copy.
  • Change rate. A busy database writes constantly, so each cycle carries more data than a quiet file server.
  • Network bandwidth and latency. The pipe between source and Google Cloud is usually the bottleneck.
  • Source platform load. Reading disks costs the storage system a little work, so heavily loaded storage can slow everything down.
  • Number of VMs replicating at the same time. They share the same pipe, so ten parallel VMs each get a smaller slice.
i
Practical Note

Start replication well before the planned cut-over date, often days or weeks earlier. The earlier the baseline is complete, the shorter and calmer the final cut-over will be.

Simple Analogy

Think of copying a library. First you photocopy every book once, which takes ages. After that you only photocopy the pages that were edited since your last visit, which takes minutes. By moving day, the new library already holds nearly everything.

Pausing and managing replication

You can pause replication if the network is needed for something else or if a source is undergoing maintenance, and resume it later. The service handles picking up from where it left off. This control is useful during business-critical periods such as month-end processing, when you may not want any extra load on storage.

10Data Flow and Lifecycle: Test Clone, Cut-over and Finalize

Every VM travels the same ordered path, and the service moves it along automatically.

Google describes a VM migration lifecycle: each VM you migrate goes through an ordered set of phases, and the service advances it through them. Understanding the lifecycle lets you predict what happens next and plan human actions around it.

flowchart TD
  A["Add VM to migration"] --> B["Replicating: baseline and incremental copies"]
  B --> C{"Ready to rehearse?"}
  C -->|Yes| D["Test clone in Google Cloud"]
  D --> E{"Tests pass?"}
  E -->|No| F["Fix issues and retest"]
  F --> D
  E -->|Yes| G["Schedule cut-over"]
  C -->|Skip rehearsal| G
  G --> H["Final sync and production VM starts"]
  H --> I["Validate in production"]
  I --> J["Finalize and clean up"]
        
FIG 3 — The VM migration lifecycle from first replication to finalization

The lifecycle, one step at a time

1

Start replication

You select a source VM, choose its target project, and the service begins the initial full copy and then the incremental cycles.

2

Configure the target details

You set machine type, network, subnet, disk type, labels and other Compute Engine properties the new VM should have. These choices can be reviewed and adjusted before each clone or cut-over.

3

Run a test clone

The service creates a clone VM in Google Cloud from the replicated data. The source keeps running, and replication continues. You test the clone, then delete it.

4

Perform the cut-over

When you are ready, the service takes a final sync of changes and starts the production VM in Google Cloud. In a typical plan the source VM is stopped around this moment so that no new data is written on the old side.

5

Validate in production

The application team confirms users can log in, jobs run, and integrations behave. Rollback is still possible while the source remains intact.

6

Finalize

When everyone is satisfied, you finalize the migration. Replication stops and the temporary migration resources are cleaned up. After this point the Google Cloud VM is the only live copy that matters.

Why the test clone is the best feature

A test clone lets you rehearse the real thing without risk. The clone boots from a snapshot of the replicated data, so changes you make during testing do not touch the source or the replication stream. You can check that the application starts, that services are reachable, that licenses activate and that performance feels right. If something is wrong, you fix it on the source side or in the target configuration, run another clone, and repeat until the checklist is green.

!
Common Mistake

A test clone that can talk to the same production database or message queue as the real system may send duplicate emails, charge cards twice or corrupt data. Place test clones on an isolated network or block their outbound access to shared systems.

Cost during the lifecycle

Test clones and cut-over VMs are normal Compute Engine instances, so they are billed at ordinary Compute Engine prices for as long as they exist. Delete test clones as soon as the check is done. Replicated data also occupies storage until you finalize or remove the migration.

11OS Adaptations: Making a Foreign VM Feel at Home

Small automatic changes let a VM from another platform boot properly on Compute Engine.

A VM running on VMware does not know it has been moved. It was built around virtual hardware that VMware presents: a specific disk controller, a specific network card, and often helper software called guest tools. Compute Engine presents different virtual hardware. If you simply copied the disk across, the operating system might fail to find its boot disk, or the network card might be unrecognized, leaving the machine up but unreachable.

To solve this, the service applies OS adaptations automatically. Google describes these as configuration changes that VMs need in order to work properly on Google Cloud, applied by the service to the VMs you migrate. In broad terms they cover:

Adaptation

Drivers

Making sure the operating system has the drivers it needs to see Compute Engine’s disks and network devices at first boot.

Adaptation

Network settings

Adjusting how the VM receives its network configuration so it works with Google Cloud’s networking.

Adaptation

Guest environment

Adding the software that lets the VM cooperate with Compute Engine features such as metadata, login handling and agents.

Adaptation

Source-platform leftovers

Handling tools and settings tied to the old platform that no longer apply in the new place.

Simple Analogy

Travelling abroad with your phone charger works only if you pack a plug adapter. OS adaptations are the plug adapters for your servers. The charger, meaning your application, stays the same.

Why adaptation still needs your attention

Automation covers the standard cases. Unusual setups can still need a human eye: custom kernels, hand-tuned boot loaders, special storage drivers, or software that ties itself to old virtual hardware identifiers. That is why the test clone exists. If an adaptation does not fit your VM, you find out in the rehearsal rather than on launch night.

Applications that remember hardware

Some licensed software generates its license key from the machine’s hardware fingerprint, such as its network card address. When the VM moves, the fingerprint changes, and the license may stop working. Check with software vendors before migration and collect any activation steps you will need after the first boot in Google Cloud.

i
Practical Note

Keep a short per-application checklist of things to verify after boot: services running, disks mounted, time synchronized, monitoring agents reporting and licenses active. Reusing the same checklist for every wave makes testing fast and consistent.

12Groups and Waves: Migrating at Scale

Move applications, not isolated servers, and move them in manageable batches.

Real applications rarely live on a single VM. A typical business system has web servers, application servers, a database and perhaps a batch processor. If you migrate them one at a time with no coordination, the app may be half in the old place and half in the new place for weeks. The service offers groups so that VMs belonging together can be migrated together.

What a group gives you

  • One action for many VMs. You can test-clone or cut over every VM in the group together rather than clicking through each one.
  • A shared story. Application owners can see all machines of their system in one view.
  • A natural unit for scheduling. A group maps neatly to a change window on the calendar.

Google’s marketing material describes a range from migrating a single app with a few clicks to running a migration sprint of around a hundred systems using groups, and it points to the API for teams that want to build their own migration factory.

Designing waves

Wave 0: the pilot

A handful of low-risk VMs, often internal tools or test machines. The purpose is to prove the foundation, tooling and runbooks.

Wave 1: early production candidates

Simple, well understood applications with few dependencies and friendly owners. Success here builds confidence across the organization.

Middle waves: the bulk

Groups of applications moved at a steady rhythm, often weekly or fortnightly, using proven runbooks and the same test checklists.

Final waves: the hard ones

Systems with heavy dependencies, strict uptime needs, unusual operating systems or strong vendor constraints. By now the team has the experience to handle them.

Building a migration factory with the API

When hundreds of VMs are involved, clicking in a console becomes the bottleneck. Because every console action also exists in the API, teams create their own tooling that reads the plan from a spreadsheet or a database, creates groups, starts replication, triggers test clones, records results and posts status messages to team chat. The advantage is repeatability: every VM follows the same path with the same checks, and the plan is auditable afterwards.

i
Practical Note

Limit the number of VMs replicating at once to what your network can sustain. Starting two hundred machines at once helps nobody if the pipe can only feed twenty at a useful speed.

13Security in a Migration Program

A migration moves your most valuable data across networks, so security has to be part of the design.

Security is not a separate phase for migrations. It runs through every step: who can start the process, how data travels, where it rests, and what the migrated VM looks like when it wakes up.

Access control

Use IAM to give migration staff only the roles they need, and separate duties where sensible. For example, the people who can create sources may differ from those who can perform production cut-overs. Review who holds those roles on a regular schedule, and remove them at the end of the program.

Data in transit and at rest

Replicated data moves from your source to Google Cloud over encrypted channels, and on Google Cloud, storage is encrypted at rest by default. If your company must control its own encryption keys, evaluate customer-managed encryption options for the target disks and confirm how they apply to the migration path you have chosen. For especially sensitive workloads, run replication over a private connection rather than the public internet.

Network exposure

  • The Migrate Connector initiates outbound connections, so you typically avoid opening inbound access to your data center.
  • Give migrated VMs private addresses by default and add public addresses only when truly needed.
  • Place test clones in isolated networks so they cannot reach production data stores by accident.
  • Use firewall rules that allow only the ports an application genuinely needs.

Credentials left behind

Servers often carry old secrets: service account passwords in configuration files, shared keys, forgotten local administrator accounts. Migration is a golden opportunity to find and rotate them. At minimum, scan the migrated VM for hard-coded credentials and rotate the important ones soon after cut-over.

Compliance and location

Choose target regions that satisfy data residency rules for your industry or country. Record where data lived before and after the move so auditors can follow the trail. Keep migration logs, because they show who did what and when.

ANTI-PATTERN-01 Avoid
Problem

The migration team is given broad owner-level access to every project “just to make things easy”, and the access is never removed.

Why It’s Harmful

A single compromised account could read or change production data in every project. Unused standing privileges are one of the most common causes of security incidents.

Correct Approach

Use narrowly scoped roles, grant them only to the people who need them, set an end date, and remove them when the program closes.

14Monitoring, Logging and Troubleshooting

You need to see replication health, cut-over progress and the behaviour of the migrated VM.

A migration that runs for weeks needs observation. The service shows the state of each VM migration in the console, including whether replication is healthy, how recent the latest cycle is, and what the next lifecycle step is. Google Cloud’s logging and monitoring tools capture activity and let you build alerts around it.

What to watch during replication

Metric

Replication freshness

How old is the newest completed cycle? A growing gap means the VM is changing faster than data is arriving.

Metric

Replication errors

Failed cycles may indicate lost connectivity, an unhealthy connector, expired permissions or a source platform problem.

Metric

Bandwidth use

Compare actual throughput against what you planned. Large gaps point to network congestion or throttling.

Metric

Source platform load

Watch storage latency on the source side so replication does not hurt users of the live system.

What to watch after cut-over

Once the VM runs in Compute Engine, treat it as any other production VM. Check CPU, memory, disk and network metrics, and the health of the application itself. Compare these numbers with what you saw on the old platform, since differences can reveal sizing mistakes or missed settings.

Typical troubleshooting scenarios

SymptomLikely causeFirst thing to check
Replication stalls or never finishes the first copyLow bandwidth, connectivity break, or very high change rateNetwork path, connector health and the VM’s write activity
Test clone boots but is unreachableWrong subnet, firewall block or network settings not appliedTarget network choice and firewall rules
Clone fails to bootUnsupported operating system or unusual boot setupSupported OS list and VM boot configuration
Application starts but license is invalidLicense tied to old hardware identifiersVendor activation steps
Cut-over fails to create VMQuota exhausted or missing permissionsRegional quota and service account roles
Application slow after migrationDependencies left behind in the old data centerNetwork paths between app tiers and databases
i
Practical Note

Paid support is available for the service, and it is worth knowing how to open a case before your first production wave, not during an outage. Keep the case process in the runbook.

15Understanding the Costs

The service itself is free, but the resources around it are not.

Google provides Migrate to Virtual Machines at no charge for migrations into Google Cloud. That is a major reason many organizations choose it. But “free tool” does not mean “free migration”. Several real costs sit around the service, and a good plan accounts for all of them.

Costs you do not pay

  • No license fee for the migration service itself
  • No per-VM migration charge
  • No separate migration server licence to buy
  • No agent licences inside each guest

Costs you do pay

  • Compute Engine instances created for test clones and cut-over
  • Storage used by replicated data and the resulting disks
  • Network charges for data movement and connectivity such as VPN or Interconnect
  • Source-cloud charges for helper instances, disks and traffic when migrating from AWS or Azure
  • Optional paid support

Estimating the bill

Use the Google Cloud pricing calculator to estimate the monthly running cost of your target VMs once they are live. Add a short-term migration budget for the overlap period, when you pay for the old environment, the replicated data and the new VMs at the same time. Teams that forget this overlap often see a cost spike in the middle of the program and mistakenly think something has gone wrong.

Free
migration service itself
Pay
for Compute Engine, storage and network
Both
bills run during the overlap period

Ways to keep costs under control

  • Delete test clones as soon as testing is finished.
  • Finalize migrations promptly after validation so replication resources are released.
  • Right-size VMs using real usage data instead of copying old sizes blindly.
  • Shut down and decommission the old environment on a planned date so you stop paying twice.
  • Consider committed use discounts for steady workloads once you are confident in the sizing.
“The tool is free; the overlap is not.”

16Design Patterns and Anti-patterns

Patterns are habits that repeatedly work; anti-patterns are habits that repeatedly hurt.

After many migrations, experienced teams converge on a handful of habits. Here are the ones that appear again and again, along with the traps that catch new teams.

Patterns that work

Pilot first, always

Migrate one harmless VM from start to finish before anything important. You will find permission gaps, firewall surprises and documentation holes while the stakes are tiny.

Replicate early, cut over late

Start replication days or weeks before the window. A fresh, nearly complete copy makes the cut-over short and predictable.

Rehearse with a test clone every time

Even for simple servers, a quick test clone confirms boot, network and application health. It costs a few hours of VM time and saves a bad night.

Application-centred groups

Group by application, not by server type. A group of “all databases” is easier to list but harder to test and to explain to owners.

Landing zone first

Build a well-designed set of projects, networks, roles and policies before migrating. Moving into an ordered environment is far easier than tidying a messy one later.

Runbook and rollback plan per wave

Write down the exact steps, the owners, the checks and the decision point at which you roll back. Rollback is easiest while the source VM is still intact.

flowchart LR
  P["Plan and assess"] --> F["Build foundation"]
  F --> PI["Pilot wave"]
  PI --> W["Production waves"]
  W --> O["Optimize and right-size"]
  O --> D["Decommission old environment"]
        
FIG 4 — A healthy program shape: plan, foundation, pilot, waves, optimize, decommission

Anti-patterns to avoid

ANTI-PATTERN-02 Avoid
Problem

Teams move a web tier to Google Cloud and leave its database in the old data center, planning to move the database “later”.

Why It’s Harmful

Every database call crosses a long network link, making the application slow and fragile. The temporary split often lasts for months and creates complaints from users.

Correct Approach

Map dependencies and move tightly coupled components in the same wave. If a split is unavoidable, measure latency first and agree an end date.

ANTI-PATTERN-03 Avoid
Problem

The team skips test clones to save time and goes straight to cut-over on a Saturday night.

Why It’s Harmful

Any boot, driver, network or licensing problem is discovered during the real outage window, when pressure is highest and rollback is stressful.

Correct Approach

Always rehearse. A successful test clone, with a signed-off checklist, is the entry ticket for the cut-over window.

ANTI-PATTERN-04 Avoid
Problem

Old VMs are never switched off after migration, and finalized migrations leave test clones and replicated data behind.

Why It’s Harmful

The company pays for two environments indefinitely, and forgotten machines become security risks because nobody patches them.

Correct Approach

Set a decommission date for each wave, keep the source powered off but intact for a short safety period, then remove it and clean up cloud-side leftovers.

17When to Use It and When to Choose Something Else

Migrate to Virtual Machines is excellent at one job; other jobs deserve other tools.

Choosing the right migration path matters more than polishing the wrong one. The table below compares the main options at a high level so you can place this service in the bigger picture.

GoalGood fitWhy
Move VMs as they are with minimal changeMigrate to Virtual MachinesBuilt for lift and shift with replication, test clones and automatic adaptations
Move VMware workloads while keeping VMware toolingGoogle Cloud VMware EngineKeeps the VMware stack, which reduces change for teams and tools
Turn applications running in VMs into containersGoogle’s container modernization toolingTargets containerizing rather than copying whole VMs
Move a database to a managed serviceDatabase Migration ServiceHandles database-specific replication and conversion
Move large amounts of plain files or objectsStorage transfer toolsOptimized for data sets, not for bootable servers
Discover and assess before decidingMigration CenterProvides inventory, cost estimates and planning support

Situations where caution is wise

  • Unsupported operating systems. If your VM runs an operating system outside the supported list for its source, plan for extra testing or an alternative route.
  • Specialized hardware dependencies. Software that needs a hardware dongle, special cards or very specific virtual hardware may not run unchanged.
  • Extremely write-heavy databases. A VM that changes enormous amounts of data every minute may keep replication permanently behind. Consider database-level replication for these.
  • Strict zero-downtime requirements. The final cut-over still involves a short switch. Truly zero-downtime systems usually need application-level clustering and traffic shifting designed for it.
i
Practical Note

Mixed strategies are normal. A single program often uses this service for most VMs, a database tool for key databases, and a modernization path for a handful of strategic applications.

Advantages

  • No charge for the migration service itself
  • Continuous replication keeps source downtime short
  • Built-in test clones reduce launch-night surprises
  • Automatic OS adaptations remove a lot of manual work
  • No agent needed inside each guest, so less impact on workloads
  • Console and API support both small and very large programs

Disadvantages / Trade-offs

  • It carries applications as they are, including their old design problems
  • Limited to listed sources and supported operating systems
  • Limit of fifteen cloud sources per host project
  • Bandwidth to Google Cloud can limit speed
  • Source-cloud charges appear when migrating from AWS or Azure

18After the Move: Optimizing Your Environment

The cut-over is the beginning of cloud life, not the end of the project.

Google’s own migration guidance ends with a step to optimize your environment after migration, and for good reason. A lifted server behaves like a guest in a new house: it works, but it has not unpacked yet. The first weeks after cut-over are the best time to make it feel properly at home.

Right-size the machines

Look at real CPU, memory and disk usage over a few weeks. Many VMs that were sized for peak loads years ago are far larger than they need to be. Compute Engine lets you change the machine type, and Google’s recommendation tools can suggest better sizes based on observed usage. Each step down saves money every month.

Adopt cloud-native operations

Operations

Backups and snapshots

Replace old tape or backup-appliance routines with scheduled disk snapshots and tested restores.

Operations

Monitoring and alerting

Use Cloud Monitoring and Cloud Logging to track health, and retire legacy monitoring agents that no longer fit.

Operations

Patch management

Use central tooling to schedule operating system updates rather than patching each VM by hand.

Operations

Identity and access

Move from shared local accounts to named identities and role-based access.

Operations

Cost visibility

Apply labels to VMs so finance teams can see spending by application, team and environment.

Operations

Resilience

Design for failure of a zone, using multiple zones and load balancing where the application allows it.

Plan the next modernization steps

Now that workloads are in Google Cloud, you can start improving them selectively. A self-managed database might move to a managed one. A stable web tier might be containerized. A batch job might become a scheduled serverless task. Choose the improvements that pay back fastest rather than modernizing everything at once.

Decommission the old environment

The final satisfying step is turning off what you left behind. Keep the old VMs switched off but available for a defined safety period, confirm nobody needs them, then remove them and release the hardware, licences and contracts. This is where the savings of the whole program truly arrive.

1

Week 1: stabilize

Watch the migrated VMs closely, fix issues quickly, and keep the old VMs powered off but intact.

2

Weeks 2 to 4: tune

Review utilization, resize machines, apply labels and enable backups and monitoring standards.

3

Weeks 4 to 8: retire

After sign-off, delete old VMs, finalize migrations, remove leftover cloud resources and close the change record.

19Real-World Scenarios

Four illustrative situations showing how the pieces fit together.

The scenarios below are illustrative composites, not case studies of specific named companies. They show how typical organizations apply the service.

Scenario 1: A retailer closing a data center

A mid-sized retailer has two hundred VMware VMs in a leased facility whose contract ends in nine months. The team installs the Migrate Connector, builds a landing zone with separate target projects for stores, e-commerce and back office, and migrates in weekly waves grouped by application. Test clones are mandatory. The final waves include the point-of-sale integration servers, which are migrated in a quiet window with a rollback plan, and the old hardware is returned before the lease ends.

Scenario 2: A software company consolidating from AWS

After an acquisition, a software company finds half its services in AWS and half in Google Cloud. To simplify billing and skills, it creates an AWS source, migrates stateless application servers first, and uses database-specific tooling for databases. The team budgets for AWS-side charges during replication and shuts down AWS resources immediately after finalization to avoid paying twice.

Scenario 3: A university moving lab and teaching servers

A university runs many small VMs for courses, research tools and administrative systems. Most have low usage and unclear owners. The IT team uses discovery to find idle machines, retires about a quarter of them, groups the rest by department and migrates them over a semester break. Right-sizing after migration shrinks the cloud bill compared to the first estimate.

Scenario 4: A company leaving a VMware hosting model

A business has workloads on Google Cloud VMware Engine but wants cheaper, more flexible native VMs for steady, non-VMware-dependent applications. It registers a VMware Engine source, selects applications that do not rely on VMware-specific features, and migrates them to Compute Engine, keeping VMware Engine only for the workloads that truly need it.

i
Common Thread

In every scenario, success came from inventory, grouping by application, rehearsal with test clones, and a clear end date for the old environment. The technology was the easy part.

20Best Practices and Common Mistakes

A short checklist to keep nearby while you run the program.

Best practices

  • Treat migration as a program, not a tool installation. Assign owners, a calendar, a communication plan and a decision-maker for go or no-go calls.
  • Validate prerequisites in writing. Supported OS, connectivity, quotas, permissions and licensing are all checked before each wave.
  • Keep the foundation consistent. Use standard naming, labels, network layouts and role definitions across all target projects.
  • Automate the repeated steps. Use the API for groups, status reports and checks once your process is stable.
  • Test like production. A test clone should exercise the same logins, jobs and integrations that real users depend on.
  • Communicate widely. Application owners, help desk staff and end users should know the schedule and what to expect.
  • Record lessons after each wave. A short retrospective improves the next wave measurably.
  • Close the loop. Finalize migrations, delete clones, remove source VMs and update documentation.

Common mistakes

Mistake 1

Underestimating bandwidth

Planning with the advertised link speed instead of the share of it you can really use.

Mistake 2

Ignoring dependencies

Moving a tier without the systems it talks to, creating slow or broken applications.

Mistake 3

Skipping rehearsal

Going straight to cut-over without a test clone and a signed-off checklist.

Mistake 4

Forgetting quotas

Hitting CPU, disk or address limits in the middle of a wave.

Mistake 5

Leaving clones running

Paying for forgotten test VMs and risking duplicate actions against shared systems.

Mistake 6

Not planning rollback

Having no clear point and procedure for returning to the source if validation fails.

Mistake 7

Copying waste

Carrying oversized machines into the cloud and paying for idle capacity every month.

Mistake 8

Never decommissioning

Running the old and new environments side by side long after the move is complete.

21Frequently Asked Questions

Quick answers to the questions beginners ask most.

Q1Is Migrate to Virtual Machines really free?

The service itself carries no charge for migrations into Google Cloud. You still pay for the Compute Engine instances, storage and networking you use, and for source-cloud resources when migrating from AWS or Azure.

Q2Do I need to install software inside each VM?

No agent is required inside each guest for the replication approach described here. For VMware sources you deploy a Migrate Connector appliance in the environment, which is separate from the VMs being moved.

Q3Will my source VM go down during replication?

Replication is designed to run without causing downtime on the source. Your source VM stays online. The short interruption happens at cut-over, when you switch users to the new VM.

Q4How long does a migration take?

It depends on disk size, how fast data changes, and available bandwidth. A small server may take hours; a multi-terabyte database server may take days for the first copy. Cut-over itself is usually short once replication is up to date.

Q5Which sources can I migrate from?

Google documents four: on-premises vSphere, Google Cloud VMware Engine, AWS and Azure.

Q6What is the difference between a test clone and a cut-over?

A test clone is a temporary rehearsal VM that does not affect the source or replication. A cut-over is the real switch that creates the production VM from a final sync.

Q7Can I migrate only disks, not whole VMs?

Yes. The target can be either a Compute Engine VM instance or Persistent Disk volumes, which helps when you only need the data.

Q8Can I roll back if something goes wrong?

While the source VM remains intact and you have not finalized, you can return users to the source. That is why finalization should wait until validation is complete and the safety period has passed.

Q9Does it change my application?

It makes only the small adaptations needed for the VM to run on Compute Engine. Your application code and design stay the same, which is both the strength and the limit of lift and shift.

Q10Can I automate large migrations?

Yes. The console actions are also available through an API, so teams can build their own repeatable migration factories that handle hundreds of VMs.

Q11What is the difference between host project and target project?

The host project controls the migration and holds the service. Target projects receive the migrated VMs. They can be the same project for a small test, but separate projects are usual in real programs.

Q12Is there a limit on how many sources I can add?

A host project can hold at most fifteen cloud sources at a time, counting AWS and Azure together. Large estates often use more than one host project.

22Summary and Key Takeaways

Migrate to Virtual Machines gives teams a calm, repeatable way to move whole servers into Google Cloud. It copies disks continuously while the originals keep working, lets you rehearse with test clones, applies the small changes each VM needs, and then swaps production over in a short, controlled cut-over. It costs nothing as a service, but the surrounding resources and the overlap period do cost money, so plan for them. The tool is dependable, but the outcome depends mostly on the human work around it: inventory, dependency mapping, grouping, rehearsal, clear communication and a firm date for switching off the past.

Remember the restaurant that needed to move without closing. The service is the moving crew, but you still choose the new building, pack with care, rehearse the first dinner and decide the day to hand over the keys.

Key Takeaways

  • Lift and shift, done safely — the service copies VMs from vSphere, VMware Engine, AWS or Azure into Compute Engine with only minor automatic changes.
  • Brain and pipes — the host project controls the migration, target projects receive the VMs, and connectors or cloud source links carry the data.
  • Replication keeps downtime short — an initial full copy is followed by incremental cycles, so the final cut-over only needs a small last sync.
  • Always rehearse — test clones reveal boot, network, licensing and application problems before the real switch, and they should be isolated from shared production systems.
  • Plan the foundation first — projects, roles, networking, quotas and billing must be ready before the first wave, and a pilot proves the whole path.
  • The tool is free, the overlap is not — budget for Compute Engine, storage, networking and source-cloud charges, and decommission the old environment on a planned date.
  • Optimize after the move — right-size machines, adopt cloud-native operations and choose modernization steps that pay back fastest.