Linux KVM Virtualization Guest Operations

From NovaOrdis Knowledge Base
Revision as of 01:40, 30 July 2023 by Ovidiu (talk | contribs) (→‎Create a Guest Virtual Machine)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Internal

Overview

List Available Guests

virsh list [--all]

Information about a Guest

Guest Configuration

The following command provides details, about:

  • the amount of virtual memory and virtual CPU allocated to the guest.
  • guest disk devices, their type (qcow, raw, etc.), their mapping on external storage volumes, etc.
  • guest network devices.
  • etc.
 virsh dumpxml <guest-name>

Filesystems

virt-filesystems --all -lh -d <guest-name>

Running State of a Guest

virsh domstate

Start/Stop Guest Virtual Machines

virsh start [--console] <vm-name>

Graceful shutdown:

virsh shutdown <vm-name>

Ungraceful shutdown:

virsh destroy <vm-name>

Connect to the Guest Virtual Machine

virsh console

Create a Guest Virtual Machine

Virtualization host storage and host-level networking must be configured as a prerequisite to creating guest virtual machines. The storage pools that will be used by the newly created guest must be available when the guest creation commences. However, the qcow2 storage volume that will store the virtual machine disk image shouldn't be created in advance, it will be create during then provisioning procedure. Once the storage pools and storage volumes are made available, and the host-level networking is configured, guest virtual machines can be created with 'virt-install', as described below. virt-install documentation describes what kind of storage is needed and how it should be provisioned in the Prerequisite section:

virt-install

This is the default procedure to create new virtual machines on noper430.

The guest ("domain") name may contain dot, so we can simulate a hierarchy ("ose36.master", or "environment-name.host-in-environment-name").

If the XML definition of a virtual machine is available, it can be created with:

virsh define

Add Storage to Guests

Adding Storage to Guests

Reconfigure Guest Memory

Reconfigure Guest Memory

Remove Storage from Guest

Remove Storage from Guest

Cloning and Snapshotting

Clone a Guest Virtual Machine

The goal of a cloning operation is to create an entirely new guest, based on the configuration of an existing guest. Entirely new storage must be provisioned during the cloning operation, and the O/S image must be transferred on the new storage and updated as described below. Also, care should be taken to avoid conflict while accessing shared resources - memory, CPUs, network devices.

Cloning a Guest Virtual Machine

Snapshot a Guest Virtual Machine

The goal of a snapshotting operation is to preserve the state of the guest, at a certain moment in time, so it can be reverted to, later, possibly after the guest was removed for a while from the virtualization host. For more theoretical considerations concerning guest snapshots, see "Linux Virtualization Concepts - KVM Virtual Machine Snapshot".

Remove a Guest

Apply this after the guest was shut down.

virsh shutdown nokb
virsh undefine <guest-name> [--remove-all-storage]

--remove-all-storage will cause the guests storage pool volumes to be removed.

To verify that the storage was removed, list the storage before and after with:

virsh vol-list main-storage-pool