Migrating VMs to sole-tenant nodes and Windows BYOL

Migrate for Compute Engine supports moving VMs to Compute Engine sole-tenant nodes. With sole-tenant nodes, Compute Engine ensures your VMs don't share a host with another customer's workloads. For more information about sole-tenant nodes, see the Compute Engine documentation.

Additionally, sole-tenant nodes can host Windows VMs under licenses that you already hold (Bring Your Own License, or BYOL).

About node affinity

Node affinity determines which nodes your VMs use as hosts. Node affinity, keys, and values are described in detail in the Compute Engine documentation.

Node affinity keys and values must be configured in Compute Engine before using them in Migrate for Compute Engine.

To use node affinity in your migration, configure the keys and values in your runbook. Each affinity label key is configured by using a column named SoleTenancy-NodeAffinity:[KEY]. To allow a VM to be migrated to a sole-tenant node that matches multiple keys (for example, workload and layer), add multiple columns, each with a different key. To allow a VM to be migrated to a sole-tenant node that matches at least one value or key, place them in the same column or row value and separate them with a |.

In the example below, a sole-tenancy affinity label with a key of workload has possible values of dev, staging, and prod. There are two VMs, app-prod and app-test. The app-prod VM must run on the nodes tagged with the prod key, but the app-test VM can run on nodes tagged with either staging or dev keys.

Name SoleTenancy-NodeAffinity:workload
app-prod prod
app-test dev|staging

Prerequisites

Before you migrate to sole-tenant nodes using Migrate for Compute Engine, set up your node configuration on Compute Engine.

  1. Create sole-tenant node groups and instances in the target project for where your workloads will run.
  2. Configure node affinity or anti-affinity labels.

Create VMs on sole-tenant nodes

Migrate for Compute Engine supports launching sole-tenant nodes with BYOL using waves. VMs launched on sole-tenant nodes are configured from your runbook. For more on runbook fields, including these, see Runbook reference.

To run VMs on sole-tenant nodes:

  1. In your runbook, add the following columns and set their values for each VM you want to migrate to a sole-tenant host:
    Field Required Format Notes
    SoleTenancy-NodeAffinity:[KEY] Yes. String Node affinity groups that the VM can be launched in. For more information, see About node affinity in this topic.
    SoleTenancy-NodeAffinityNot:[KEY] No. String Node affinity groups that the node cannot be launched in. Multiple groups must be separated by a | character.
    SoleTenancy-VmHostMaintenancePolicy No. migrate (default) or terminate
    SoleTenancy-RestartOnFailure No. true (default) or false
  2. Continue with your wave migration.

Bring Your Own License for Windows

Sole-tenancy additionally supports Bring Your Own License (BYOL) for Windows VMs. For more on runbook fields, including these, see Runbook reference.

To migrate VMs with BYOL and sole-tenancy:

  1. Verify that you created your sole-tenant node with the --restart-node-on-minimal-servers flag.
  2. In your runbook, create columns for the following fields:

    Field Required Format Notes
    license:os Yes. String A supported Windows BYOL license string. You can find supported license strings in the Windows BYOL documentation.
    SoleTenancy-NodeAffinity:[KEY] Yes String Node affinity groups that the VM can be launched in. See About node affinity for more information.
    SoleTenancy-NodeAffinityNot:[KEY] No. String Node affinity groups that the node cannot be launched in.
    SoleTenancy-VmHostMaintenancePolicy No. terminate The `migrate` policy is currently not supported for Windows BYOL. Your wave migration can't proceed if the terminate option is not explicitly set when using BYOL.
    SoleTenancy-RestartOnFailure No. true (default) or false
  3. Continue with the wave migration.

Suggested configurations for sole-tenant nodes with different licenses

Looking to migrate to sole-tenant nodes? Here is a table that can help you decide which configuration options are right for you.

License Scenario Windows Server BYOL MS SQL BYOL Windows PAYG
Or Linux (BYOL/PAYG) Sole-tenancy with resource pool
License Type Per Core License Per Core License With Software Assurance
or
Nodes in the group are
licensed in advance
Using a resource pool
Sole-tenant nodes settings in Compute Engine
Sole Tenant Node Property - --restart-node-on-minimal-servers Yes Yes No No
Individual VM settings in your runbook
VM Property - Affinity Labels Yes Yes Yes Yes
VM Property - Host Maintenance Policy Terminate Terminate Migrate Migrate
VM Property - Restart on failure Yes / No Yes / No Yes / No Yes / No
VM Property - Windows OS license
Licenses can be found at the Compute Engine documentation.
BYOL BYOL/PAYG PAYG Windows PAYG or Linux