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 | + | [[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 among other features. |
− | KVM is included in all mayor distribution including | + | 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 9: | Line 9: | ||
=== Config files and directories === | === Config files and directories === | ||
− | + | <code>/etc/[[libvirt]]/[[qemu]]</code> | |
− | |||
− | |||
− | |||
=== Information === | === Information === | ||
* Show information by pool: <code>[[virsh pool-info]] YOUR_POOL_NAME</code> | * Show information by pool: <code>[[virsh pool-info]] YOUR_POOL_NAME</code> | ||
− | |||
* <code>[[virsh guestinfo]]</code> | * <code>[[virsh guestinfo]]</code> | ||
=== 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 | + | * Modifying CPUs: <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> | ||
− | * | + | * Connection by console: <code>virsh console VM_NAME</code>. See also: <code>[[virt-manager]]</code> |
− | : <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> | ||
* <code>[[virsh migrate]]</code> | * <code>[[virsh migrate]]</code> | ||
Line 40: | Line 32: | ||
* <code>[[virsh domstats]]</code> | * <code>[[virsh domstats]]</code> | ||
− | === | + | === KVM Networking === |
* <code>[[virsh net-list]]</code> | * <code>[[virsh net-list]]</code> | ||
* <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 | + | See also: [[MacVTap]], virbr0, ovirtmgmt, [[virtio]]<ref>https://wiki.libvirt.org/page/Virtio</ref> and [[brctl]]. |
==== Activities ==== | ==== Activities ==== | ||
Line 51: | Line 43: | ||
=== Storage === | === Storage === | ||
− | |||
− | |||
* List Storage pools: | * List Storage pools: | ||
::<code>[[virsh pool-list]]</code><ref>http://manpages.ubuntu.com/manpages/precise/man1/virsh.1.html#storage%20pool%20commands</ref> | ::<code>[[virsh pool-list]]</code><ref>http://manpages.ubuntu.com/manpages/precise/man1/virsh.1.html#storage%20pool%20commands</ref> | ||
Line 82: | Line 72: | ||
== Hybernate VM == | == Hybernate VM == | ||
− | * <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. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Activities == | == Activities == | ||
=== General === | === General === | ||
− | # [[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/ | ||
− | |||
− | |||
=== Snapshots === | === Snapshots === | ||
Line 111: | Line 93: | ||
* 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> | ||
− | |||
− | |||
[[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> | + | * 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]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== See also == | == See also == | ||
* {{virtinst}} | * {{virtinst}} | ||
* {{virt}} | * {{virt}} | ||
− | * | + | * [[virt-manager]] (<code>[[virsh console]] VM_NAME</code>) |
− | * | + | * [[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 | ||
+ | * [[Firecracker]] | ||
* {{QEMU}} | * {{QEMU}} | ||
* {{KVM}} | * {{KVM}} | ||
* {{Virtualization}} | * {{Virtualization}} | ||
− | |||
− | |||
− | |||
[[Category:Virtualization]] | [[Category:Virtualization]] |
Advertising: