The cart is empty

Kernel-based Virtual Machine (KVM) is an open-source virtualization solution that enables Linux to function as a Hypervisor. Integrated directly into the Linux kernel, KVM allows for the creation of many isolated virtual machines (VMs) on a single physical server. This article is intended for administrators and technicians who wish to set up and manage KVM for hosting and managing virtual machines on CentOS 7.

Prerequisites

  • Installed and updated CentOS 7 system
  • Processor with virtualization support (Intel VT-x or AMD-V)
  • At least 4 GB of RAM (more recommended depending on the number and size of virtual machines)

Installation of KVM and Other Tools

  1. Verify Virtualization Support First, it's necessary to verify if your processor supports hardware virtualization. This can be done using the command:

    egrep -c '(vmx|svm)' /proc/cpuinfo
    

    If the command returns a value greater than 0, the processor supports hardware virtualization.

  2. Installation of KVM and Management Tools To install KVM and tools such as qemu-kvm, libvirt, virt-install, and virt-viewer, use the yum command:
    sudo yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install
    ​

    After installing these packages, start and enable the libvirtd service:

    sudo systemctl start libvirtd
    sudo systemctl enable libvirtd
    

 

Network Configuration

KVM offers several options for network configuration. For simple configuration, NAT or bridging can be used. Bridging provides VMs direct access to the network segment as if they were physical machines on the network.

  1. Creating a Network Bridge Creating a network bridge can be done by manually editing the configuration file /etc/sysconfig/network-scripts/ifcfg-br0, where br0 is the name of the new bridge.

Creating and Managing Virtual Machines

  1. Creating a Virtual Machine To create a new VM, use the virt-install command. For example, to create a VM named "testvm" with 2 vCPUs, 2 GB of RAM, 20 GB disk space, and CentOS 7 installation media (ISO file), use:

    sudo virt-install --name=testvm --vcpus=2 --memory=2048 --cdrom=/path/to/centos7.iso --disk size=20 --os-type=linux --os-variant=centos7 --network bridge=br0 --graphics none --console pty,target_type=serial
    
  2. VM Management VMs can be managed using the virsh tool, which is part of the libvirt package. Commands like virsh list will display running VMs, virsh start <name> will start a VM, and virsh shutdown <name> will shut down a VM.

Backup and Restoration of Virtual Machines

Backing up VMs is crucial for recovery in case of failure. One method is to use virsh dumpxml <name> > <name>.xml to export the VM configuration and then use dd or cp to back up disk images.

 

KVM on CentOS 7 offers a robust and flexible platform for hosting virtual machines. With integration into the Linux kernel and support for a wide range of guest operating systems, KVM provides excellent performance and efficiency for virtualization. With proper network configuration and virtual machine management, it is possible to create a stable and secure virtual environment that meets the needs of your organization.