KVM

Kernel-based Virtual Machine (KVM) is a virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. KVM support dynamic memory management and /Live Migration/ since 2007 among other features.

KVM is included in all mayor distribution including Ubuntu and RHEL (RedHat), RedHat provides 2 version of KVM, the one included with RHEL which allows to run up to 4 VM or the one included with RHV with unlimited VM.

can be used for showing control groups resource utilization.

Information

 * Show information by pool:

Operations

 * Editing Virtual Machine configuration:
 * Create VM_MACHINE:
 * Modifying CPUs:   // Can be live or offline in the next reboot
 * To check vcpu info:
 * Modifying Memory:
 * Connection by console: . See also: virt-manager
 * Clone a virtual machine:
 * Create image:
 * Resize image:
 * Create domain/virtual machine:

KVM Networking
See also: MacVTap, virbr0, ovirtmgmt, virtio and brctl.

Activities

 * 1) Read KVM Network Performance - Best Practices and Tuning Recommendations
 * 2) Learn about KVM Host Networking Configuration Choices https://www.ibm.com/support/knowledgecenter/en/linuxonibm/liaag/wkvm/wkvm_c_net.htm

Storage

 * List Storage pools:

virsh pool-define-as --name YOUR_POOL_NAME --type dir --target /your/path/YOUR_POOL_NAME/ virsh pool-build YOUR_POOL_NAME virsh pool-start YOUR_POOL_NAME virsh pool-autostart YOUR_POOL_NAME See also: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-managing_guest_virtual_machines_with_virsh-storage_pool_commands
 * Show information by pool:
 * List Volumes from a pool:
 * Create pool:(RHEL 6 documentation )


 * Create volume

Snapshots
Snapshots can be offline or live and internal or external:
 * RedHat recommend using external snapshots using  command.
 * Live snapshot are not supported in RHEL 8


 * List snapshots:
 * Create snapshot:
 * Revert snapshot:


 * Snapshots with blockcommit and blockpull

Performance

 * can be used for showing control groups resource utilization.

General

 * 1) /Install KVM in an Ubuntu Server/ following https://help.ubuntu.com/community/KVM/Installation instructions:
 * 2) Connect to KVM using /Virt Manager/ (
 * 3) Create a KVM virtual machine with Ansible: DevOps/Ansible/ovirt-RHV module
 * 4) Read about raw files and qcow2 differences: https://www.berrange.com/posts/2017/02/10/the-surprisingly-complicated-world-of-disk-image-sizes/

Snapshots

 * Read KVM virsh external vs internal snapshots: https://rentry.co/644h6
 * Read RedHat recommendations: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-Troubleshooting-Workaround_for_creating_external_snapshots_with_libvirt
 * Read this guide about handling snapshots: https://www.cyberciti.biz/faq/how-to-create-create-snapshot-in-linux-kvm-vmdomain/

Advanced
Backup:
 * /Extend LVM on qcow2 images/: https://www.technomenace.com/2014/08/how-to-extend-lvm-on-qcow2-images/
 * Live Migrate a machine between two servers.
 * /Offline Migrate or move a virtual machine between two KVM servers without shared storage/ :  and
 * virsh/Create Live backups using virsh blockcommit
 * Review Bacula Enterprise KVM plugin: http://www.bacula.lat/kvm-plugin-bacula-enterprise-quick-guide/?lang=en
 * Review Bacula solution with : http://www.bacula.lat/kvm-hot-online-virtual-machines-backup-with-bacula-bpipe/?lang=en
 * Review Veritas Netbackup support for RHV