Creating and starting an Arm VM instance

The Tau T2A Arm machine series is available in preview for Compute Engine. This machine series provides an opportunity to test, develop, and plan for your eventual migration to the next generation of Arm machine series, and to determine which workloads would benefit from running on Arm.

This page describes how to create a VM running the Tau T2A machine series. There is no charge for creating Tau T2A VMs during Public preview.

Before you begin

Available regions

This series is available only in select regions and zones.

Supported OS images

The following OS images are supported on Tau T2A VMs:

  • Debian 11
  • Ubuntu version 22.04, 20.04, or 18.04
  • Rocky Linux version 9
  • Rocky Linux Optimized for Google Cloud version 9
  • RHEL version 9
  • SLES 15

Create an Arm VM

Use the Google Cloud console, the Google Cloud CLI or the Compute Engine API to create an Arm VM. Use an Arm-supported OS image, which by default has NVMe and gVNIC enabled. Be sure to review the T2A limitations before you create a VM.

Console

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. Select your project and click Continue.

  3. Click Create instance.

  4. Specify a Name for your VM. For more information, see Resource naming convention.

  5. Choose a Zone for this VM that supports Tau T2A.

  6. Select General-purpose from the Machine family options.

    1. Select T2A from the Series drop-down menu.
    2. Choose a T2A Machine type from the drop-down menu.
  7. In the Boot disk section, click Change, and then do the following:

    1. On the Public images tab, choose the following:
      • The default Debian-11-Arm64 image or any other supported Arm OS.
      • Boot disk type
      • Boot disk size
    2. To confirm your boot disk options, click Select.
  8. Open the NETWORKING, DISKS, SECURITY, MANAGEMENT, SOLE-TENANCY section.

    1. Open Networking.
    2. From Network performance configuration, open the Network interface card drop-down menu and select gVNIC.
  9. To create and start the VM, click Create.

gcloud

  1. Select a public image. Make a note of the name of the image or image family and the name of the project containing the image.
  2. Use the gcloud compute instances create command to create a VM from an image family or from a specific version of an Arm OS image.
     gcloud compute instances create VM_NAME \
        --project=PROJECT_NAME \
        --zone=ZONE \
        --machine-type=MACHINE_TYPE \
        --image-project=IMAGE_PROJECT \
       [--image=IMAGE | --image-family=IMAGE_FAMILY] \
        --network-interface=nic-type=GVNIC
 

For example:

  gcloud compute instance create arm-vm \
     --project=my-arm-project \
     --zone=us-central1-a \
     --machine-type=t2a-standard-1 \
     --image-project=debian-cloud \
     --image-family=debian-11-arm64 \
     --network-interface=nic-type=GVNIC

 

The gVNIC network interface is automatically set for you during instance creation.

API

Select a public image. Make a note of the name of the image or image family and the name of the project containing the image. Call the instances.insert method to create a VM from an image family or from a specific version of an Arm OS image:

https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
 "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
 "name": "VM_NAME",
"disks": [
   {
     "initializeParams": {
       "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
    },
     "boot": true
   }

     ],
     "networkInterfaces":
    {
       "nicType": "GVNIC"
   }
}

Replace the following:

  • PROJECT_ID: the ID of the project in which you are creating your VM.
  • ZONE: the zone in which you are creating your VM.
  • MACHINE_TYPE: the machine type of your VM. For example: t2a-standard-2
  • VM_NAME: the name for your VM.
  • IMAGE_PROJECT: project containing the image. For example: If you specify debian-11 as the image family, specify debian-cloud as the image project.
  • IMAGE or IMAGE_FAMILY: specify one of the following:
    • IMAGE: a specific version of a public image. For example: specify the sourceImage as projects/debian-cloud/global/images/debian-11-arm64
    • IMAGE_FAMILY: an image family This creates the VM from the most recent, non-deprecated OS image. For example, specify "sourceImage": "projects/debian-cloud/global/images/family/debian-11-arm64", to create a VM from the latest version of the OS image in the Debian 11 Arm image family.

For example:

https://compute.googleapis.com/compute/v1/projects/my-arm-project/zones/us-central1-a/instances

{
 "machineType": "zones/us-central1-a/machineTypes/t2a-standard-2",
 "name": "arm-vm",
 "disks": [
   {
     "initializeParams": {
       "sourceImage": "projects/debian-cloud/global/images/family/debian-11-arm64"
    },
     "boot": true
   }
     ],
     "networkInterfaces":
    {
       "nicType": "GVNIC"
   }
}

What's next?