As Linux users we have a native virtualization solution -like MS windows have hiper-v- KVM.
KVM (kernel based virtualization) is a kernel module takes advantage of the x86 processors virtualization extensions like Intel VT-x and AMD-V, so let’s go:
- a 64-bit x86 machine with hardware virtualization assistance (Intel VT-X or AMD-V).
- 4GB RAM (8 GB or more if you want to run more than 2 virtual machines at same time)
- One ISO file of your favorite OS.
Enable Intel VT-x or AMD-V Virtualization in BIOS/UEFI, this depends of your hardware but to enable the extensions, you might have to go into the system’s BIOS/UEFI setup configuration at boot time.
Install KVM and virtualization tools:
$ sudo dnf install @virtualization virt-install virt-viewer libvirt-daemon-config-network
$ sudo systemctl enable libvirtd
$ sudo systemctl start libvirtd
Check that libvirtd is running:
$ sudo systemctl status libvirtd
this will be up and running.
Optional but recommend step:
Add your normal user to libvirtd group, please change YOURUSER for your username
$ sudo usermod -a -G libvirt YOURUSER
Create and configure virtual machine:
For this we have two options: Command line and GUI, in order to show both examples i will create two separate virtual machines: Fedora Server 24 (Command line) and Ubuntu Server16.04.
To setup a virtual machine named FedoraServer24 with 2GB ram, 2 VCPUS, 20GB in hard disk in format qcow2 (Compatible with OpenStack)
$ cp Fedora-Server-dvd-x86_64-24-1.2.iso /tmp/
$ sudo virt-install --name FedoraServer24 --ram 2048 --vcpus 2 --disk size=20,format=qcow2 --cdrom /tmp/Fedora-Server-dvd-x86_64-24-1.2.iso --virt-type kvm --os-variant fedora-unknown --graphics spice
You can list the supported os variants with:
$ osinfo-query os
or simply use ‘auto’ keyword for auto detection.
At this moment you will continue the normal installation of Fedora Server
Is too easy, open virtual machine manager,it looks like:
- click on “Create new virtual machine”
- install local media (ISO image or cdrom)
- Select iso image and Browse it (Ubuntu server 16.04 in this time)
- Setup RAM, virtual Hard disk , vcpus and Name of the Virtual Machine.
At this moment you will continue the normal installation of Ubuntu Server.
Connect and working with the virtual machines:
List virtual machines:
$ sudo sudo virsh list --all
Start, pause, shutdown virtual machines
$ virsh --connect qemu:///system start FedoraServer24
$ virsh --connect qemu:///system suspend FedoraServer24
$ virsh --connect qemu:///system shutdown FedoraServer24
View and work in the virtual machine
$ virt-viewer --connect qemu:///system FedoraServer24
The available virtual machines are listed on the gui, to run or stop, right click over the desired virtual machine. for work in any particular virtual machine click open.
KVM/libvirt Networking: The default network configuration is for the VM to share the host system’s network connection(s) and IP address using network address translation (NAT). This is the easiest to manage and will be fine for many uses. Using NAT, the VM will be able to access resources on your network or the Internet. However services, such as a web server, running inside the VM won’t be directly accessible from outside of the VM.
For default all virtual machines are in the same LAN and it can communicate each other one another:
Networking, both physical and virtual, is a large topic beyond the scope of this post. For more information see your system’s documentation.
Boxes is a GNOME application (It comes by default since Fedora 23) that is used to create, manage, and run virtual machines. One amazing feature is it can easily import and run KVM virtual machines.
- Open Boxes
- Click on New
- Click on “Import Boxes from system broker”
- And finally, Click on “Create”
And now you can run the same virtual machines from Gnome Boxes.