Kimchi + KVM (updated and better and easy guide for KVM beginners)
-
So i know every now and then an KVM guide pops up with good info, so I thought I would add and duplicate as well.
So from time to time I like to test in my virtual lab how far KVM + Managing have gone, and I am glad to say it is very easy and for folks that come from an ESXi background that wants web client to manage everything well guess what you wont have that 100%, but below is something very close to it and very simple to setup + it cover some crucial pitfalls.
Many thanks and praise to the developers of Kimchi Project:
https://github.com/kimchi-project- Start from Centos 7 Minimal updated and afterwards install the following:
yum groupinstall Virtualization "Virtualization Platform" "Virtualization Tools" -y
- Ensure tuned profile is correct
nano /etc/tuned/active_profile --> should be virtual-host if not change by "tuned-adm profile virtual-host"
- Kimchi no longer depends on Gingerbase, making it more light and simple to installer, however Gingerbase is useful if you wish to add shutdown commands to the KVM host.
cd /tmp wget https://github.com/kimchi-project/kimchi/releases/download/2.5.0/wok-2.5.0-0.el7.centos.noarch.rpm wget https://github.com/kimchi-project/kimchi/releases/download/2.5.0/kimchi-2.5.0-0.el7.centos.noarch.rpm yum install -y wok-2.5.0-0.el7.centos.noarch.rpm yum install -y kimchi-2.5.0-0.el7.centos.noarch.rpm systemctl start wokd systemctl enable wokd
- Access it at https://<machine-ip>:8001
and login using your linux machine username/password, how easy is that.
- Now lets cover the pitfalls, sadly Kimchi is configured to emulate all the drivers of the VMs you create to make it easy for users (think Oracle Virtualbox performance ) they do that to make users start easy and deploy VMs, sadly this means you are emulating drivers instead of making them virtualized aware aka para-virtualized. this is meant to increase performace, typically you want to do this to 2 things:
- Storage Drive
- Network Driver
If this is not making any sense to you think ESXi, emulated network driver e1000 vs VMXNET3
Sadly you cant change this setting when you create machine via Kimchi, it will default to drivers that are emulated like e1000 and you dont have any option to change it, so we will need to rely on Virt Manager just to make this change that is only done once in VM life cycle, so it is small price to pay. So feel free to create VM/template using Kimchi but dont install any OS yet, just define the VM (RAM/CPU/VM Name/Storage size) but dont start it.
- So use any Linux machine or VM with Desktop like Fedora 27 LXQT and install Virt manager on it:
dnf install -y virt-manager
Launch virt-manager and connect to your KVM host remotely (in this example KVM Host + Kimchi resides on the same machine)
Locate the machine it should not be Running like the image above it should be stopped.
Double click the Machine and go to its settings and change the following:1) NIC-> Host Device MacVTap -> Bridge -> Virt IO 2) IDE DISK -> Disk Bus -> Virt IO -> Hypervisor Default -> Hypervisor Default 3) Add Hardware -> Input -> EvTouch USB Graphics Tablet 4) Upload "virtio-win-0.1.141_amd64.vfd" using Kimchi Web Option File Upload in Storage ![0_1513416443769_2017-12-16 11_26_48-Wok.png](https://i.imgur.com/Zynn6k5.png) 5) Add Hardware -> Storage -> Floppy -> virtio-win-0.1.141_amd64.vfd
Voila, your done. Seems alot but it actually very simple when you do it, and when you
start the VM and click console on Kimchi web interface to see the screen, and
install the OS in this example it is 2008 R2 (why you may ask, cause I want to test something that is Windows on KVM and Windows 2008 R2 installs very quickly), The windows installer will not detect the HDD or the Network, but you simply click Load Driver and select the floppy disk --> and then folder called amd64 --> then folder called 2008R2, and 2 new drivers will pop up (network+scsi) and you you can continue with the install.Now you have the best of both worlds = Powerful KVM+ Ease of use of Kimchi
-
Kimchi Screenshot Tour: