1- ¿Qué tipo de hardware utilizar para virtualizar con KVM?

Imagen de Epe

KVM no realiza paravirtualización, KVM es un sistema de virtualización que aprovecha las ventajas que le tiene que ofrecer el hardware para realizar full virtualización.

Para mí es algo inconveniente pues la paravirtualización es rápida pero además que no todo hardware ofrece al momento Full Virtualización aunque la verdad es que ya es algo menos raro que hace unos 5 años.

En estos momentos casi todo hardware moderno puede soportar virtualización, voy a detallar un poco:
1- Si usas un procesador AMD,entonces tienes un procesador de 64bits y todo procesador AMD de 64 bits de hace unos 8 ó 9 años para acá soporta virtualización

2- Si usas un procesador Intel, entonces es posible que soporte virtualización pero posiblemente no. Lamentablemente Intel capa algunos de sus procesadores, quitándoles la parte de virtualización para venderlos a un segmento del mercado más barato.

Cómo averiguar si mi hardware soporta virtualización? Ah fácil, ejecutas esto en tu Linux:

cat /proc/cpuinfo |egrep -i "vmx|svm"
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni monitor ssse3 cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch ibs skinit wdt arat npt lbrv svm_lock nrip_save pausefilter
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni monitor ssse3 cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch ibs skinit wdt arat npt lbrv svm_lock nrip_save pausefilter

Busca en todas estas banderas, la palabra svm o vmx, esto depende de si tu procesador es Intel o AMD. En mi caso acabo de probarlo en una netbook Acer One 722 que viene con un procesador AMD así que cómo fue que te dije? Si es AMD moderno, es 64bits y si es 64bits de AMD entonces contiene virtualización porque sí. Por eso ves que dice en los flags: svm, encuétrale en la penúltima línea a la derecha casi al final de la derecha. Me sale dos veces porque son dos procesadores y se muestran siempre las flags por procesador

Sin estos flags, puedes dar por terminado tu estudio de virtualización con KVM.. si no las tienes, vete al método de virtualizar con Xen, tengo varios howto aquí en este sitio.

ah, un detalle más sobre intel: Hay veces que no solamente basta con ver que aparezca la bandera vmx, sino que además TIENES que entrar al BIOS de la máquina y cerciorarte que una opción llamada "Virtualización" esté activada en tu bios. No sé por qué lo hace así intel, pero a veces esta opción (que no he visto en los micros amd, sino en intel nada más) está desactivada y pierdes miserablemente tu tiempo sufriendo pensando por qué no te deja virtualizar. Y ya que estás dentro del BIOS, ve al sitio del fabricante y actualízalo, pasé mucho trabajo con un BIOS que estaba desactualizado y no mostraba correctamente el video.

Otras consideraciones
Por lo demás, debes considerar lo normal:
- Debes conseguir el mejor hardware posible porque recuerda que virtualizarás varios sistemas en un sólo hardware, el máximo de RAM (8GB, 16GB, 32GB, de acuerdo a tus necesidades) y todas las especialidades que puedas como doble fuente, doble tarjeta de red, o lo que sea. La virtualización puede ser tan barata o tan cara como tus requerimientos.

- Pero eso sí, y lo pongo aparte: TIENES que utilizar un sistema de RAID para tus discos, si no tienes RAID estarás llamando a problema en un futuro inmediato!! No uses virtualización en ambientes de producción sin tener un RAID.

- Trata de usar hardware que soporte Linux, muchos fabricantes claman soportarle pero cuando le adquieres comienzan los peros: pero cuesta un adicional este soporte, pero este soporte es sólo para X distribución, etc.. castiga al fabricante que no sea Linux friendly... el hardware que compres, que sea soportado nativamente por Linux, sin tener que agregar ningún driver externo más! Me revienta cuando compran megasoluciones de SAN con fibra y 40 cosas sólo para darse cuenta que para usarlo en Linux hay que compilar un kernel a la medida o cosas así...