martes, 20 de junio de 2017

Necesitas un homelab... pero ¿Cuánto es lo mínimo? - Parte 1

Primer paso: el qué

En estos días la necesidad de hacerte un homelab para crear y romper cosas es cada vez más frecuente. Especialmente si te dedicas o quieres dedicarte a la administración de sistemas. En mi caso estos últimos meses me propuse adentrarme en vmware como plataforma para la construcción de datacenters virtuales. Aquí empezó todo...

La pregunta que uno se plantea es ¿qué necesito para montarme un homelab? Pues lo primero es ver si lo que queremos es simular servicios o servidores. Hago esa distinción ya que para entendernos diré que un servidor puede albergar uno o varios servicios. Si lo que queremos es simular varios servidores entonces lo que realmente estaremos simulando es un datacenter que en la idea más pura es un lugar donde están situados los servidores.

Cuando nos planteamos simular servicios generalmente nos basamos en un esquema cliente-servidor en donde el servicio es solicitado o necesitado por el cliente y a su vez el servicio está alojado en uno o varios servidores. En este caso lo mínimo necesario para simular este entorno es un cliente que puede ser un ordenador o estación de trabajo (desde donde me estás leyendo) y que con la ayuda de algún programa de virtualización (VMware Workstation Pro/Player, Oracle VM VirtualBox y hasta Microsoft Hyper-V en Windows 10) se puede simular uno o varios servidores según se necesiten y se tengan los recursos de hardware para poder ponerlos en funcionamiento. Esto nos lleva a que un solo PC u ordenador se puede tener tanto la parte "cliente" como la parte "servidor" del esquema requerido.

Virtualización basada en un PC con VMware


Homelab monolítico

En la imagen podemos observar que los recursos de hardware son accesibles primero por el sistema operativo y luego trasladados hacia el programa de virtualización que en este caso es VMware Workstation. Oracle VM VirtualBox y Microsoft Hyper-V en Windows 10 funcionan de la misma manera, ambos necesitan de un sistema operativo para ser instalados y para funcionar.

¿Puede esto ser llamado homelab? Pues estirando un poco el concepto podría llamarse así tranquilamente. Al fin y al cabo estamos simulando tener varios servidores dentro de un pc o estación de trabajo o hasta un portátil o laptop.

Ventajas, estaríamos obteniendo lo que buscábamos. ¿Bien no?

Desventajas, pues aquí empieza lo bueno! Teniendo en cuenta que estaríamos simulando en el peor de los casos dos o tres servidores necesitaremos espacio en disco y memoria ram semi disponible. Por ahora podemos asumir que tanto la CPU y la NIC (Network Interface Card o también llamado tarjeta de red) son recursos que por su relativa abundancia y facilidad de compartición pueden ser ignorados por el momento. En un primer momento si hace falta más CPU o ancho de banda en la NIC todo lo que tengamos no dejará de funcionar sino por las características anteriormente mencionadas lo que que tengamos funcionando simplemente funcionará más lentamente... tocará esperar un poco más a que terminen las cosas. Las cosas dejarán de funcionar generalmente si nos falta espacio de almacenamiento en el disco duro o nos quedemos sin RAM. La falta de RAM puede solventar momentáneamente forzando al sistema operativo a paginar memoria en el disco duro lo que no solo hará lento el acceso al disco duro para las demás aplicaciones o cosas que virtualizamos sino que también reduciremos en espacio libre disponible.

¿Y cuántos recursos de hardware necesitamos al menos? Pues la respuesta generalmente suele ser que mientras más mejor. Pero esa respuesta no nos ayuda, necesitamos cuantificar en este caso para poder saber si nuestro equipo tiene lo suficiente. Sabiendo que el cielo es el límite intentaremos conocer los requerimientos de hardware mínimos tanto del sistema operativo y del servicio que necesitamos simular o virtualizar. Si lo que vamos a simular requiere ser montado en un Windows Server entonces necesitaremos al menos 2GB de RAM y en un primer momento hasta 40GB de espacio en disco por cada servidor. Todo esto claro está suponiendo que el servicio a ser montado en el Windows Server no necesite más de 5GB de espacio de almacenamiento para la aplicación en sí. A ser posible y siempre que se pueda, sería recomendable ampliar o agregar un 30% más para tener cierta holgura en un futuro cercano. También podemos optar por simular sobre Linux y es en este caso en donde los requerimientos mínimos suelen disminuir a la mitad. A cambio de eso obtenemos una mayor complejidad a la hora de administrar el servidor en sí, sobre todo tomando en cuenta la curva de aprendizaje sino se tiene experiencia tratando con Linux y similares.

Sistema OperativoHDD estimadoRAM estimada
Windows Server40 GB x 32 GB x 3
Linux20 GB x 31 GB x 3

En total podemos asumir que para un escenario pequeño e inicial con 3 servidores (pueden ser 2 servidores y un cliente también) necesitaremos en total 120 GB de espacio en disco duro libres  y 6GB de RAM medianamente libres si vamos sobre Windows Server. En el caso de Linux o similares necesitaremos unos 60 GB de espacio de almacenamiento libre en disco duro y "solo" 3GB de RAM. Es evidente que simular o virtualizar Linux tiene sus ventajas con respecto a los requerimientos de hardware.

Finalmente podemos afirmar en este punto que nuestro sistema anfitrión, ya sea un PC de sobremesa, estación de trabajo u ordenador portátil / laptop necesita en el caso de Windows Server al menos 8GB de RAM total. Poder destinar 120 GB de espacio libre en disco duro para estos menesteres no suele ser problema en estos días en donde mucho de los equipos cuentan con unidades de disco de más de 500 GB.  En caso contrario la administración del espacio en unidades SSD de relativo pequeño tamaño obliga ya sea a plantearse seriamente la opción de virtualizar linux por su menor requerimiento de espacio en disco.

Sugerencias finales: 

-Si se puede virtualizar en un equipo que tenga un SSD se podrá disfrutar de una mayor y mejor experiencia en general. El rendimiento sobre un SSD es bastante notable y debe preferirse en lo posible.

-En caso de no poder contar con almacenamiento basado en SSD entonces la sugerencia es optar por un raid 0 de al menos 2 discos duros convencionales (especialmente en los equipos de sobremesa o estaciones de trabajo) ya que con esto se puede exprimir al máximo las unidades de almacenamiento mecánico como son los discos duros.

-Por último, si no es posible configurar un raid 0 en el equipo que se dispone, lo mejor que se puede hacer es al menos tener dos o más discos duros en el sistema. Esta recomendación viene porque algunos sistemas no permiten realizar o configurar un raid. Divide y vencerás.

Hemos creado un homelab básico con un sobremesa, portátil o laptop con 8GB de RAM como los que se venden en la actualidad. Si tu equipo sólo cuenta con 4GB de ram siempre puedes intentar aumentar la RAM si es posible y sino siempre puedes confiar en linux para virtualizar con pocos recursos.

Pero... y si cuento con un equipo muy potente, con muchos discos, más de un SSD y quiero simular o virtualizar un poco más... ¿Cómo nos organizamos? La respuesta a esto en la Parte 2.


d--(^_^)z














.

No hay comentarios:

Publicar un comentario