VirtualBOX para administradores, parte 0: Qué es la virtualización
Introducción.
Cuando nos empezamos a interesar en el desarrollo de sitios, sobre todo de los dinámicos, y más aun de los que tienen una respetable cantidad de usuarios (más de 10,000 usuarios diarios), tenemos que enfrentarnos, más temprano que tarde, a la necesidad de administrar servidores (VPS hacia arriba, y detalles más o menos importantes en servidores compartidos, como Dreamhost). El detalle, es que correr en tiempo real una prueba, puede significar grandes dolores de cabeza, mismos que en la práctica no deberíamos sufrir.
Entonces, la solución más práctica para nuestras pruebas es dar de alta una máquina virtual. Las máquinas virtuales son sistemas que aprovechan (si están presentes en nuestro equipo, y sobre todo, si nuestro BIOS lo permite) las tecnologías de virtualización propias de los procesadores de nueva generación. Pese a estar diseñadas para equipos con tecnologías como AMD-V o Intel VT, aquellos usuarios que no tengan estas tecnologías o su BIOS no permita aprovecharlas, también pueden beneficiar de la Virtualización, ya que la mayoría de los softwares permiten emulación del procesador, aunque siempre será más recomendable usar las ya mencionadas tecnologías para hacer más rápida la ejecución del código en nuestra máquina virtual.
Ahora bien, también deberemos tener en cuenta que cualquier tipo de solución que utilicemos tiene un impacto en el rendimiento de la máquina física. Si utilizamos mucho procesador para nuestros binarios, esto impactará fuertemente en el desempeño de aplicaciones no virtualizadas y, cómo no, en el sistema operativo anfitrión. Esto lo expondré más adelante, pero es importante tener en cuenta que entre más le demandemos a una máquina virtual, menos podremos hacer con la máquina real. También es importante a la hora de considerar cuánta memoria RAM utilizará nuestra máquina virtual, dejando suficiente memoria al sistema operativo anfitrión y las aplicaciones no virtualizadas. Esto, con calma, y si no entendieron, no se preocupen que todo será explicado delante.
Terminología utilizada.
Primero, consideremos la terminología básica para que hablemos el mismo idioma:
- Máquina anfitrión: Es la máquina real, la física. Nuestro CPU, memoria, mother board, disco(s) duro(s), etc.
- Sistema operativo anfitrión: Por regla general, Windows, aunque claro que podemos tener el anfitrión que mejor nos acomode: Linux, FreeBSD, DarwinBSD, etc.
- Máquina virtual: Es la virtualización del hardware que compondría otro equipo de cómputo, gestionado por soluciones de software como VirtualBOX, vmware en sus distintas presentaciones, Virtual PC (este, en general será emulado, no virtualizado, por lo que tendremos un perceptible descenso del desempeño tanto de la máquina virtual como de la máquina anfitrión), etc.
- “Caja”: es un equipo. En el argot de los fanáticos de GNU/Linux, se le llama a los equipos “Linux Box”.
Elegir el sistema operativo a virtualizar (guest OS).
En esta serie de posts nos enfocaremos a los sistemas Linux, primeramente porque nos vamos a enfocar a administrar servidores web, de mayor o menor desempeño. Así que aquí depende mucho qué distribución de GNU/Linux nos instale el proveedor (o hayamos elegido) en el servidor real. Cabe mencionar que muchos de nuestros sitios efectivamente pueden estar alojados en máquinas virtuales, conocidos en el mundo del webhosting como VPS. Esto lo abordaré con más detalle en la serie de posts que tengo ya en el horno, Webhosting.
Entonces, la elección del sistema “huesped” será determinada por necesidades específicas de cada uno. En mi caso, trabajo principalmente con CentOS y Debian, así que he creado dos cajas virtuales distintas, según tal o cual prueba necesite hacer. Claro está que aunque las puedo hacer trabajar simultáneamente, no lo hago ya que no todo el tiempo estoy haciendo pruebas.
Elección de la solución de virtualización.
Aquí sí podemos ser más específicos, y es que aunque hay muchas alternativas, nos decantaremos por VirtualBox, primeramente porque podemos usarlo gratuitamente (de hecho, existe una edición de código abierto, aunque uso la versión comercial para uso personal, ya que no estoy usándolo activamente en un servidor ni con fines puramente comerciales. De hecho, las pruebas se pueden considerar “uso educativo” por lo tanto es uso personal.
Consideraciones iniciales.
Primeramente, la máquina anfitrión. Deberá ser lo suficientemente rápida, y de preferencia contar con las tecnologías de virtualización activadas. Refiéranse al manual de su equipo para saber cómo habilitar estas tecnologías; cada configuración es un mundo y es importante que tomen en cuenta que no todos los equipos se configuran igual, aunque sí muy genéricamente.
Además, habrá de tener suficiente memoria RAM para ejecutar con soltura el sistema operativo anfitrión, la solución de virtualización, las aplicaciones de uso diario, y poder dedicar una porción preferentemente generosa de RAM a la virtualización.
El disco duro deberá contar con al menos unos 20 GB libres para el intercambio de información, los archivos de paginación y aquellos archivos que requiramos, además de que al menos unos 8 GB deberán poderse dedicar a nuestra caja virtual.
Por último, tener conocimientos básicos de Linux, o bien, avanzados por si hiciera falta tocar ficheros importantes.







