This document explains how to replace a virtual machine (VM) boot disk in Google Distributed Cloud (GDC) air-gapped. To create a boot disk before your replacement, see Create a boot disk.
You can detach boot disks from your VM instance and attach new boot disks. To repair boot disks, you can mount them to another VM instance without deleting the original one. You can also replace a VM boot disk without recreating an entirely new VM instance.
This document is for developers in platform administrator or application operator groups that create and configure boot disks for VMs. For more information, see Audiences for GDC air-gapped documentation.
Before you begin
To use gdcloud command-line interface (CLI) commands, ensure that you have downloaded, installed,
and configured the gdcloud CLI.
All commands for Distributed Cloud use the gdcloud or
kubectl CLI, and require an operating system (OS) environment.
Get the kubeconfig file path
To run commands against the Management API server, ensure you have the following resources:
Sign in and generate the kubeconfig file for the Management API server if you don't have one.
Use the path to the kubeconfig file of the Management API server to replace
MANAGEMENT_API_SERVERin these instructions.
Request IAM roles
Contact your Project IAM Admin to request the following roles on your project:
- Project VirtualMachine Admin (
project-vm-admin): create, modify, list, and delete standard and high-performance VMs in the project namespace.
All VM roles must bind to the namespace of the project where the VM resides. Follow the steps to verify your access.
Restrictions
You have the following restrictions when replacing a boot disk:
- Attach or detach a boot disk only from a stopped VM instance.
- Attach only one boot disk for each VM instance.
- Attach only existing boot disks to a VM instance.
- Replace the boot disk only with a new bootable disk.
Replace a boot disk
Replace a boot disk by using the GDC console or the kubectl CLI.
Console
In the navigation menu, click Virtual Machines > Instances.
In the list of VMs, click a VM name to view its details.
Click Replace boot disk.
In the confirmation dialog, click Stop to stop the VM.
Wait a few minutes for the VM to stop.
Click Refresh.
When the VM is in a stopped state, click Replace boot disk again.
In the Replace boot disk dialog, choose a new boot disk or an existing boot disk.
To provision a new boot disk, click the New boot disk tab.
- In the Disk name field, enter a new disk name that is unique to the project.
- In the Size field, enter a disk size between 12 and 65536 GiB.
- In the Image name list, select an image.
- In the Deletion rule section, click Keep disk or Delete disk.
- In the Storage profile section, choose a profile. The default profile is Standard.
To choose an existing boot disk, click the Existing boot disk tab.
- In the Disk list, select a disk.
- In the Deletion rule section, click Keep disk or Delete disk.
Click Save.
kubectl
Open the current
spec.disksvalue to change it for the new virtual machine disk:kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMEReplace the following values:
MANAGEMENT_API_SERVERwith the path to the kubeconfig file of the Management API server.PROJECTwith the Distributed Cloud project where you want to replace the boot disk.VM_NAMEwith the name of the virtual machine.
Modify the boot disk in the config file by replacing
VM_BOOT_DISK_NAMEwith the new VM boot disk name:disks: - virtualMachineDiskRef: name: VM_BOOT_DISK_NAME boot: trueThe result must look like the following example:
disks: - virtualMachineDiskRef: name: NEW_VM_BOOT_DISK_NAME boot: true