Virtualitzant amb Linux I
Introducció
Segurament coneixes la virtualització i és probable que hagis començat en aquest món des d’una màquina Windows amb VirtualBox i tota la pesca. Però si estàs a Linux hi ha una manera millor de fer-ho, tot i que té la seva teoria. En aquest post precisament explorarem això: la virtualització des de Linux amb KVM, Qemu i Libvirt (i virt-manager).
Què és la virtualització
La virtualització és un procès pel qual, partint d’un hardware, es crea una abstracció i sobre aquesta capa d’abstracció podem crear màquines virtuals amb sistemes operatius, xarxes, dispositius d’emmagatzematge,… El software que fa d’interfície perquè les màquines virtuals accedeixin al hardware i tinguin els recursos físics que toca s’anomena hipervisor.
Val a dir que aquestes màquines virtuals són completament aïllades unes d’altres, tot i córrer sobre el mateix hardware.
Tot això potser sona una mica abstracte de moment però quedarà més clar al explicar el funcionament d’aquest.
Avantatges de la virtualització
-
Optimització de recursos
Podem executar vàries màquines virtuals dins una sola màquina física i podem modificar els recursos que volem que tingui cada màquina virtual.
-
Flexibilitat i escalabilitat
En qualsevol moment podem modificar els recursos de la màquina virtual sempre que tinguem recursos físics disponibles (augmentar la RAM o el número de processadors,…). També sol ser molt més senzill fer-ne backups, snapshots, i altres utilitats crítiques en servidors empresarials.
-
Aïllament i seguretat
Com que les màquines són completament independents entre elles, si una queda compromesa o falla per qualsevol motiu no té perquè afectar al funcionament de les altres.
Per què KVM, QEMU i Libvirt?
KVM està integrat al kernel de Linux, pel que aprofita directament les capacitats del kernel a l’hora de virtualitzar. Això ofereix un rendiment i una eficiència molt alts.
Combinant el rendiment de KVM amb la flexibilitat de QEMU, s’aconsegueix millor emulació de hardware i més compatibilitats per les màquines virtuals.
Libvirt ofereix una API unificada per la gestió de màquines virtuals, facilitant-ne la seva administració gràcies a altres eines que la utilitzen (com virt-manager).
Aquestes solucions són solucions més segures que altres alternatives. A més, compten amb una gran comunitat tant de desenvolupadors com d’usuaris i també consten de molta documentació. I un altre punt a favor és el cost, ja que totes aquests són de codi obert i gratuïtes.
Com a desavantatge, el més important seria la corba d’aprenentatge, ja que mentre altres com VirtualBox t’ho donen tot out-of-the-box, amb aquesta solució t’has d’instal·lar els paquets i configurar-t’ho tot tu mateix, i això requereix més coneixements del sistema i més temps.
KVM, QEMU i Libvirt
KVM
KVM és una solució per virtualitzar en Linux que consta de dos drivers: un del kernel (kvm.ko) i un específic pel processador (kvm-intel.ko o kvm-amd.ko). Aquests mòduls permeten a Linux convertir-se en un hipervisor per executar diferents entorns virtuals amb un rendiment molt semblant al del hardware real. KVM gestiona l’accés al processador i a la memòria. És un hipervisor tipus 1 de baix nivell.
QEMU (Quick emulator)
És un hipervisor de tipus 2, que s’executa com una aplicació. El principal objectiu d’aquest és emular recursos de hardware com discs durs, USB, vídeo,… És de més alt nivell que KVM.
QEMU pot treballar conjuntament amb KVM per aportar més flexibilitat a l’hora de virtualitzar.
Libvirt
Libvirt és una API que serveix per comunicar-se amb les solucions de virtualització KVM i QEMU. És l’abstracció de les altres dues, és a dir, una manera fàcil de comunicar-se amb elles.
És també genèrica i pot comunicar-se amb varies tecnologies a més de QEMU i KVM com Xen, LXC,…
Altres eines
-
virt-manager
És una interfície gràfica que interactua amb Libvirt, de manera que com a usuaris podem administrar les màquines sense tocar una tecla.
-
virsh
Seria l’equivalent a virt-manager però en CLI (línia de comandes).
Per més informació deixo link d’un vídeo molt interessant del creador octetz:
Això ha estat tot, si t’ha estat útil pots compartir-ho o deixar-me un comentari. Ens veiem al següent post!