KVM is a kernel space virtualization environment for Linux. It uses virtualization at the processor level and is very efficient. That being said, it requires a high level of command line configuration. You can make ClearOS perform as your virtualization hypervisor using this howto.
You MUST have processor support in order to use KVM. To determine if your processor can handle kvm run the following:
egrep '(vmx|svm)' --color=always /proc/cpuinfo
Even if your processor is NOT capable of running virtualization, there are some utilities such as disk image conversion which can still be useful. If your processor does not support KVM you can use an alternative such as VirtualBox.
In addition to having these extensions in your processor, ensure that virtualization is enabled in your BIOS.
If you want to use the ClearOS Graphical Desktop to manage your VMs (recommended) install the graphical environment here. Some of the packages in this install assume that you will do this step.
yum install kvm virt-manager libvirt seabios-bin
To start the virtualization service and that the service is running the next time your reboot, run the following:
systemctl start libvirtd.service systemctl enable libvirtd.service
Naturally, you can configure all the virtual machines that you want from command line. However, you can use the 'Virtual Machine Manager from the graphical interface to simplify many of these tasks. To launch the Virtual Machine Manager, log into the console graphical Desktop and click on Applications » System Tools » Virtual Machine Manager.
From here you can connect to another Virtual machine management interface or manage the local instance. This will help you provision, install, and operate the desktop interfaces of your virtual machines.
If you get permission issues with starting a kvm, you need to make sure that the permissions of /dev/kvm are as they should be:
ls -l /dev/kvm
Should result in something similar to this where root is the owner, kvm is the group and the permissions are read/write for the user and the group (ie. crw-rw—-):
crw-rw----+ 1 root kvm 10, 232 Oct 15 15:25 /dev/kvm
If this is not the case, create the file 'vi /usr/lib/udev/rules.d/82-kvm-clearos.rules'
Add the following to this file:
KERNEL=="kvm", NAME="%k", GROUP="kvm", MODE="0660"
By default dnsmasq binds to all interfaces which will stop it starting if libvirt starts first or stop libvirt starting dnsmasq for its interfaces. To get round this, create a file in /etc/dnsmasq.d called anything you want - perhaps /etc/dnsmasq.d/for_libvirt and in it put:
#bind-interfaces bind-dynamic except-interface=virbr*
bind-interfaces and bind-dynamic are similar. Use one or the other. bind-dynamic is a bit more flexible in its operation.