Editing Kernel-based Virtual Machine (KVM)

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
[[wikipedia:Kernel-based_Virtual_Machine|Kernel-based Virtual Machine]] (KVM) ([[2007]]) is a [[virtualization]] module in the Linux kernel that allows the kernel to function as a hypervisor. KVM support dynamic memory management<ref>https://www.linux-kvm.org/page/FAQ#Is_dynamic_memory_management_for_guests_supported.3F</ref> and [[Live Migration]]<ref>https://www.linux-kvm.org/page/Migration</ref> since [[2007]] ([[Linux Kernel changelog|kernel version 2.6.20]]), among other features.
+
[[wikipedia:Kernel-based_Virtual_Machine|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<ref>https://www.linux-kvm.org/page/FAQ#Is_dynamic_memory_management_for_guests_supported.3F</ref> and [[Live Migration]]<ref>https://www.linux-kvm.org/page/Migration</ref> since 2007 ([[kernel]] version 2.6.20), 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 [[Red Hat Virtualization|RHV]] with unlimited VM.<ref>https://www.redhat.com/en/topics/virtualization/what-is-KVM</ref>  
+
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 [[Red Hat Virtualization|RHV]] with unlimited VM.<ref>https://www.redhat.com/en/topics/virtualization/what-is-KVM</ref>  
  
 
<code>[[systemd-cgtop]]</code> can be used for showing [[control group]]s resource utilization.
 
<code>[[systemd-cgtop]]</code> can be used for showing [[control group]]s resource utilization.
Line 10: Line 10:
 
=== Config files and directories ===
 
=== Config files and directories ===
 
* <code>/etc/[[libvirt]]/[[qemu]]</code>
 
* <code>/etc/[[libvirt]]/[[qemu]]</code>
* <code>[[/etc/libvirt/qemu.conf]]</code>
+
* <code>/etc/[[libvirt]]/[[qemu.conf]]</code>
* <code>[[/etc/libvirt/virtlogd.conf]]</code>
+
* <code>/etc/libvirt/[[virtlogd.conf]]</code>
* <code>[[/var/lib/libvirt/images/]]</code>
 
  
 
=== Information ===
 
=== Information ===
Line 21: Line 20:
 
=== Operations ===
 
=== Operations ===
 
* Editing Virtual Machine configuration: <code>[[virsh edit]] $VM_ID</code>
 
* Editing Virtual Machine configuration: <code>[[virsh edit]] $VM_ID</code>
* Create VM_MACHINE: <code>[[virsh define]] [[MY_XML_VM_DEFINITION.XML]]</code><ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/virtualization_administration_guide/section-libvirt-dom-xml-example</ref>
+
* Create VM_MACHINE: <code>[[virsh define]] [[/MY_XML_VM_DEFINITION.XML/]]</code><ref>https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/virtualization_administration_guide/section-libvirt-dom-xml-example</ref>
 
* Modifying [[CPU]]s: <code>virsh setvcpus $VM_NAME ([--maximum] [[--config] [--live] | [--current]])</code>  // Can be live or offline in the next reboot <ref>http://wiki.stoney-cloud.org/wiki/VM_CPU_Hotplug</ref>
 
* Modifying [[CPU]]s: <code>virsh setvcpus $VM_NAME ([--maximum] [[--config] [--live] | [--current]])</code>  // Can be live or offline in the next reboot <ref>http://wiki.stoney-cloud.org/wiki/VM_CPU_Hotplug</ref>
 
** To check vcpu info: <code>[[virsh vcpuinfo]] $VM_NAME</code>
 
** To check vcpu info: <code>[[virsh vcpuinfo]] $VM_NAME</code>
 
* Modifying Memory: <code>[[virsh setmem]] <vm_name> <memsize></code>
 
* Modifying Memory: <code>[[virsh setmem]] <vm_name> <memsize></code>
* [[Enable serial console|Connection by console]]:
+
* Connection by console: <code>virsh console VM_NAME</code>. See also: <code>[[virt-manager]]</code>
: <code>[[virsh console]] VM_NAME</code>. See also: <code>[[virt-manager]]</code>
+
* Clone a virtual machine: <code>virt-clone</code>
* Clone a virtual machine:
+
* Create image: <code>[[qemu-img]] create</code>
:<code>virt-clone</code>
+
* Resize image: <code>[[qemu-img]] resize</code>
* Create image:
+
* Create domain/virtual machine: <code>virt-install --autostart --check all=on --name VM_DOMAIN_NAME --memory VM_MEMORY_SIZE --vcpus VM_VCPUs --os-variant ubuntu18.04 --cdrom VM_INSTALLATION_MEDIA --disk /path/to/VM_STORAGE_POOL_NAME/VM_DOMAIN_NAME.qcow2 --noautoconsole --wait VM_CREATION_WAIT_TIME --network VM_NETWORK_SETTINGS</code>
:<code>[[qemu-img]] create</code>
 
* Resize image:
 
: <code>[[qemu-img]] resize</code>
 
* Create domain/virtual machine: <code>[[virt-install]] --autostart --check all=on --name VM_DOMAIN_NAME --memory VM_MEMORY_SIZE --vcpus VM_VCPUs --os-variant ubuntu18.04 --cdrom VM_INSTALLATION_MEDIA --disk /path/to/VM_STORAGE_POOL_NAME/VM_DOMAIN_NAME.qcow2 --noautoconsole --wait VM_CREATION_WAIT_TIME --network VM_NETWORK_SETTINGS</code>
 
 
* <code>[[virsh migrate]]</code>
 
* <code>[[virsh migrate]]</code>
  
Line 44: Line 39:
 
* <code>[[virsh net-info]] YOUR_NET_NAME</code>
 
* <code>[[virsh net-info]] YOUR_NET_NAME</code>
 
* <code>virsh net-destroy YOUR_NET_NAME</code>
 
* <code>virsh net-destroy YOUR_NET_NAME</code>
See also: [[MacVTap]], virbr0, ovirtmgmt, [[virtio]]<ref>https://wiki.libvirt.org/page/Virtio</ref> and <code>[[brctl]]</code>.  
+
See also: [[MacVTap]], virbr0, ovirtmgmt, [[virtio]]<ref>https://wiki.libvirt.org/page/Virtio</ref> and [[brctl]].  
  
 
==== Activities ====
 
==== Activities ====
Line 82: Line 77:
  
 
== Hybernate VM ==
 
== Hybernate VM ==
* <code>[[virsh save]]</code>
+
* <code>virsh save</code>
  
 
== Performance ==
 
== Performance ==
 
* <code>[[systemd-cgtop]]</code> can be used for showing control groups resource utilization.
 
* <code>[[systemd-cgtop]]</code> can be used for showing control groups resource utilization.
 
 
== KVM [[timeline]] ==
 
* 2013 KVM virtual machine in [[ARM]] architecture [[Linux Kernel 3.9]] in April 2013
 
* [[2009]] [[RHV]]
 
* [[2007]] [[Live Migration]] support
 
  
 
== Activities ==
 
== Activities ==
Line 97: Line 86:
 
# [[Install KVM in an Ubuntu Server]] following https://help.ubuntu.com/community/KVM/Installation instructions.
 
# [[Install KVM in an Ubuntu Server]] following https://help.ubuntu.com/community/KVM/Installation instructions.
 
# Connect to KVM using [[Virt Manager]] (<code>brew install [[virt-manager]]</code> <ref>https://help.ubuntu.com/community/KVM/VirtManager</ref>
 
# Connect to KVM using [[Virt Manager]] (<code>brew install [[virt-manager]]</code> <ref>https://help.ubuntu.com/community/KVM/VirtManager</ref>
# Create a KVM virtual machine with Ansible: [[ovirt-RHV module]]
+
# Create a KVM virtual machine with Ansible: [[DevOps/Ansible/ovirt-RHV module]]
 
# Read about raw files and [[qcow2]] differences: https://www.berrange.com/posts/2017/02/10/the-surprisingly-complicated-world-of-disk-image-sizes/
 
# Read about raw files and [[qcow2]] differences: https://www.berrange.com/posts/2017/02/10/the-surprisingly-complicated-world-of-disk-image-sizes/
# Read StackOverflow most popular questions https://stackoverflow.com/questions/tagged/kvm?tab=Votes
 
 
* [[Virt-install Windows]]: [[Install virtio-win]]
 
* [[Virt-install Windows]]: [[Install virtio-win]]
  
Line 111: Line 99:
 
* Live Migrate a machine between two servers<ref>https://www.berrange.com/posts/2016/05/12/analysis-of-techniques-for-ensuring-migration-completion-with-kvm/</ref>.
 
* Live Migrate a machine between two servers<ref>https://www.berrange.com/posts/2016/05/12/analysis-of-techniques-for-ensuring-migration-completion-with-kvm/</ref>.
 
* [[Offline Migrate or move a virtual machine between two KVM servers without shared storage]]<ref>https://serverfault.com/questions/434064/correct-way-to-move-kvm-vm</ref>: <code>[[virsh dumpxml]]</code> and <code>[[virsh define]]</code>
 
* [[Offline Migrate or move a virtual machine between two KVM servers without shared storage]]<ref>https://serverfault.com/questions/434064/correct-way-to-move-kvm-vm</ref>: <code>[[virsh dumpxml]]</code> and <code>[[virsh define]]</code>
* Recover a VM using <code>[[virt-rescue]]</code>
 
 
  
 
[[Backup]]:
 
[[Backup]]:
 
* [[Create Live backups]] using <code>[[virsh blockcommit]]</code>
 
* [[Create Live backups]] using <code>[[virsh blockcommit]]</code>
 
* Review [[Bacula]] Enterprise KVM plugin: http://www.bacula.lat/kvm-plugin-bacula-enterprise-quick-guide/?lang=en
 
* Review [[Bacula]] Enterprise KVM plugin: http://www.bacula.lat/kvm-plugin-bacula-enterprise-quick-guide/?lang=en
* Review [[Bacula]] solution with <code>[[bpipe]]</code>: http://www.bacula.lat/kvm-hot-online-virtual-machines-backup-with-bacula-bpipe/?lang=en
+
* Review [[Bacula]] solution with <code>bpipe</code>: http://www.bacula.lat/kvm-hot-online-virtual-machines-backup-with-bacula-bpipe/?lang=en
 
* Review Veritas [[Netbackup]] support for [[Red Hat Virtualization|RHV]]
 
* Review Veritas [[Netbackup]] support for [[Red Hat Virtualization|RHV]]
 
== Related terms ==
 
* [[Avi Kivity]]
 
* [[VM-Exits]]
 
* [[Amazon Firecracker]]
 
* [[MacVTap]] device driver
 
* [[Ansible]] [[ovirt-RHV module]] (ovirt_vm)
 
* [[KubeVirt]]
 
* [[QEMU Logs]]
 
* [[OVirt]] and [[RHV]]
 
* <code>[[/dev/kvm]]</code>
 
* [[vhost_net]] kernel module
 
* [[KVM switch]]
 
* [[PCI passthrough]]
 
* [[AWS Nitro System]]
 
  
 
== See also ==
 
== See also ==
 +
* [[KVM on ARM]]
 
* {{virtinst}}
 
* {{virtinst}}
 
* {{virt}}
 
* {{virt}}
* {{virt-manager}}
+
* [[virt-manager]] (<code>[[virsh console]] VM_NAME</code>)
* {{libvirtd}}
+
* [[MacVTap]] device driver
 +
* [[virt-sysprep]]
 +
* [[Ansible]] [[ovirt-RHV module]] (ovirt_vm)
 +
https://docs.ansible.com/ansible/latest/modules/ovirt_vm_module.html#ovirt-vm-module
 +
* [[Amazon Firecracker]]
 
* {{QEMU}}
 
* {{QEMU}}
 
* {{KVM}}
 
* {{KVM}}
 
* {{Virtualization}}
 
* {{Virtualization}}
 
+
* [[Kata containers]]
 
+
* [[KVM services]]
 +
* [[VM-Exits]]
  
  

Please note that all contributions to wikieduonline may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Wikieduonline:Copyrights for details). Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)

Advertising: