Creating virtual machines
Limitations
-
Virtual machines are created with the host CPU model, by default. Having compute nodes with different CPUs may lead to live migration issues. To avoid them, you can manually set the CPU model for all new VMs, as described in Setting virtual machine CPU model. Alternatively, you can create a placement for each group of compute nodes with the same CPU model by using the instructions in Managing placements for compute nodes.
Prerequisites
- You have a guest OS source prepared, as described in Preparing boot media for virtual machines.
- One or more compute networks are created automatically during the compute cluster deployment or manually by using the instructions in Creating physical compute networks and Creating virtual compute networks.
-
Custom security groups are configured, as instructed in Managing security groups.
-
You have a custom flavor created, as described in Creating custom flavors for virtual machines. You can also use preconfigured flavors.
-
An SSH key is added to the compute cluster, as outlined in Adding SSH keys for virtual machines. You can specify an SSH key only when creating VMs from a template or boot volume.
-
A custom storage policy is created for volumes, as described in Managing storage policies.
To create a virtual machine
Admin panel
-
On the Compute > Virtual machines > Virtual machines tab, click Create virtual machine. A window will open where you will need to specify the VM parameters.
- Specify a name for the new VM.
-
Select the VM boot media:
-
If you have a compute boot volume
- Select Volume in the Deploy from section, and then click Specify in the Volumes section.
- In the Volumes window, click Attach.
-
In the Attach volume window, find and select the volume, and then click Attach.
If you attach more than one volume, the first attached volume becomes the boot volume, by default. To select another volume as bootable, place it first in the list by clicking the up arrow button next to it.
If you select an image or volume with an assigned placement, the created VM will also inherit this placement.
After selecting the boot media, volumes required for this media to boot will be automatically added to the Volumes section.
-
Configure the VM disks:
- In the Volumes window, make sure the default boot volume is large enough to accommodate the guest OS. Otherwise, click the ellipsis icon next to it, and then Edit. Change the volume size and click Save.
-
Add more disks to the VM by creating or attaching volumes. To do this, click the pencil icon in the Volumes section, and then Add or Attach in the Volumes window.
- Select volumes that will be removed during the VM deletion. To do this, click the pencil icon in the Volumes section, click the ellipsis icon next to the needed volume, and then Edit. Enable Delete on termination and click Save.
- When you finish configuring the VM disks, click Done.
-
Choose the amount of RAM and CPU resources that will be allocated to the VM in the Flavor section. In the Flavor window, select a flavor, and then click Done.
When choosing a flavor for a VM, ensure it satisfies the hardware requirements of the guest OS.
To select a flavor with an assigned placement, you can filter flavors by placement. The VM created from such a flavor will also inherit this placement.
-
Add network interfaces to the VM in the Networks section:
- In the Network interfaces window, click Add to attach a network interface.
-
In the Add network interface window, select a compute network to connect to, and then specify MAC address, IPv4 and/or IPv6 addresses, and security groups. By default, MAC and primary IP addresses are assigned automatically. To specify them manually, clear the Assign automatically check boxes, and enter the desired addresses. Optionally, assign additional IP addresses to the network interface in the Secondary IP addresses section. Note that a secondary IPv6 address is not available for an IPv6 subnet that works in the SLAAC or DHCPv6 stateless mode.
Secondary IP addresses, unlike the primary one, will not be automatically assigned to the network interface inside the virtual machine guest OS. You should assign them manually.
-
If you selected a network with enabled IP address management
In this case, spoofing protection is enabled and the default security group is selected by default. This security group allows all incoming and outgoing traffic on all the VM ports. If required, you can select another security group or multiple security groups.
To disable spoofing protection, clear all of the check boxes and turn off the toggle switch. Security groups cannot be configured with disabled spoofing protection.
-
If you selected a network with disabled IP address management
In this case, spoofing protection is disabled by default and cannot be enabled. Security groups cannot be configured for such a network.
After specifying the network interface parameters, click Add. The network interface will appear in the Network interfaces list.
-
-
If required, edit IP addresses and security groups of newly added network interfaces. To do this, click the ellipsis icon, click Edit, and then set the parameters.
- When you finish configuring the VM network interfaces, click Done.
-
If you have chosen to boot from a template or volume, which has cloud-init and OpenSSH installed:
As cloud images have no default password, you can access VMs deployed from them only by using the key authentication method with SSH.
-
Add user data to customize the VM after launch, for example, change a user password.
Write a cloud-config or shell script in the Customization script field or browse a file on your local server to load the script from.
To inject a script in a Windows VM, refer to the Cloudbase-Init documentation. For example, you can set a new password for the account using the following script:
#ps1 net user <username> <new_password>
-
Enable CPU and RAM hot plug for the VM in the Advanced options, to be able to change its flavor when the VM is running. You can also enable hot plug after the VM is created.
- After configuring all of the VM parameters, click Deploy to create and boot the VM.
If you are deploying the VM from an ISO image, you need to install the guest OS inside the VM by using the built-in VNC console. Virtual machines created from a template or a boot volume already have a preinstalled guest OS.