Linux KVM Virtualization Guest Operations: Difference between revisions
(32 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== | |||
[[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:
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:
Add Storage to Guests
Reconfigure Guest Memory
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.
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