Linux KVM Virtualization Guest Operations: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(31 intermediate revisions by the same user not shown)
Line 10: Line 10:


=Information about a Guest=
=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 [[Linux_Virtualization_Concepts#Storage_Volume|storage volumes]], etc.
* guest network devices.
* etc.
  [[Virsh dumpxml#Overview|virsh dumpxml]] <''guest-name''>


==Filesystems==
==Filesystems==


  [[Virt-filesystems#Overview|virt-filesystems]] --all -lh -d <''guest-name''>
  [[Virt-filesystems#Overview|virt-filesystems]] --all -lh -d <''guest-name''>
==Running State of a Guest==
[[Virsh_domstate|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. <code>virt-install</code> documentation describes what kind of storage is needed and how it should be provisioned in the Prerequisite section:
{{Internal|virt-install#Overview|virt-install}}
This is the default procedure to create new virtual machines on <code>noper430</code>.
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: {{Internal|virsh define|virsh define}}
=Add Storage to Guests=
{{Internal|Linux Virtualization Adding Storage to Guests|Adding Storage to Guests}}
=Reconfigure Guest Memory=
{{Internal|Linux Virtualization Reconfigure Guest Memory|Reconfigure Guest Memory}}
=Remove Storage from Guest=
{{Internal|Linux Virtualization 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.
{{Internal|Linux Virtualization Cloning a KVM Guest Virtual Machine|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|Linux Virtualization Concepts - KVM Virtual Machine Snapshot]]".
* [[Linux KVM Virtualization Manual Low-Level Guest Export/Import Procedure|Manual Low-Level Guest Export/Import Procedure]]
* [[Linux KVM Virtualization Guest Snapshot Using virsh snapshot Functionality|Guest Snapshot Using virsh snapshot Functionality]]
=Remove a Guest=
Apply this after the guest was shut down.
<font size=-1>
virsh shutdown nokb
virsh undefine <''guest-name''> [--remove-all-storage]
</font size>
<code>--remove-all-storage</code> will cause the guests storage pool volumes to be removed.
To verify that the storage was removed, list the storage before and after with:
<font size=-1>
virsh vol-list main-storage-pool
</font size>

Latest revision as of 01:40, 30 July 2023

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