En mi artículo anterior, discutí qué es un Homelab y por qué deberías (o no deberías) tener uno para ti.
Ahora bien, ¿cualquiera que quiera o necesite, puede tener un homelab? Depende de varias cosas, pero el dinero o los recursos se pueden solucionar. En este artículo explicaré cómo he conseguido tener mi propio Homelab sin invertir una fortuna en él. De hecho, me costó menos de US $1000 y funciona lo suficientemente bien como para administrar los requisitos de infraestructura de mi hogar.
Dicho esto, es importante mencionarlo como descargo de responsabilidad:este artículo no describe la mejor manera de hacer las cosas. Simplemente describe cómo me las arreglo para que funcione incluso sabiendo que hay algunos problemas y riesgos, pero por ahora, estoy bien para vivir con estos.
Primero que nada:el hardware
La configuración de un laboratorio en casa requiere una computadora que básicamente puede usar solo para alojar de forma continua. Una computadora portátil vieja (pero moderadamente poderosa) puede hacer el trabajo o, si tiene algo de dinero que puede usar, puede comprar las piezas y construir su propia computadora.
Si tiene un poco de dinero extra, probablemente incluso pueda comprar un servidor pequeño reutilizado del que cualquier empresa de TI se haya deshecho debido a su antigüedad. Esos servidores aún pueden tener un buen propósito para un proyecto como este, aunque podría salirse del concepto de "con un presupuesto".
También puede usar dispositivos similares a Raspberry Pi.
La parte más importante sobre el servidor principal es:intente obtener una placa base y una CPU que pueda manejar la virtualización, especialmente que tenga capacidad de paso de IO. Para Intel, asegúrese de que el procesador tenga capacidad VT-x, para AMD debe tener capacidad AMD-v. Sin esto, no podrás hacer mucho.
Si no planea invertir en una GPU separada como una tarjeta gráfica NVIDIA o AMD, intente obtener una CPU que tenga al menos una GPU integrada.
Entonces, necesita tener algo de espacio en disco para esto. El tamaño del disco depende del uso que le vayas a dar. En mi caso, quería tener un reproductor multimedia, una PC para juegos, un servidor Firewall/DNS y probablemente una consola DVR muy pequeña, así que compré un disco duro de 2 TB. Esta es la parte donde puede tener problemas de presupuesto. Si el dinero no es un problema, querrá tener todo el espacio que desee y duplicarlo para poder trabajar con RAID. Nuevamente, en mi caso tengo que conformarme con un solo disco duro de 2 TB (ni siquiera SSD), punto.
Tenía un par de discos duros USB de 1 TB allí, tenían más de 10 años pero con muy poco uso (después de la nube, honestamente evito almacenar demasiadas cosas localmente). Sería muy lento usarlos para procesamiento o máquinas virtuales, pero para fines de copia de seguridad servirían.
Entonces quieres centrarte en la RAM. Mientras más, mejor. En mi caso, solo podía permitirme 8 GB.
Luego, suponiendo que desee tener esto integrado en su propio hogar e interactuar con el resto de la red y los dispositivos, probablemente necesitará al menos un pequeño enrutador o conmutador de red. Si desea configurar un enrutador pequeño o un servidor DNS pequeño dentro de su lugar, entonces necesita tener al menos una segunda tarjeta NIC. Tenía una tarjeta NIC USB que usaba como tarjeta secundaria para poder ejecutar una solución de enrutamiento/firewall virtualizada.
El software:Hipervisor
Necesita virtualización y para eso necesita un hipervisor. El hipervisor se clasifica en Tipo 1 y Tipo 2. Lea nuestro artículo para saber más sobre esto.
Para resumir:si opta por un hipervisor Tipo-1, debe ser más técnico pero tiene más control y, por lo tanto, puede usar GPU y algunos otros recursos en sus máquinas virtuales.
Con un hipervisor tipo 2, se vuelve más fácil de manejar ya que tiene menos control de las cosas, pero no puede realizar algunas cosas como pasar la potencia de la GPU a sus máquinas virtuales. Si desea tener una VM para trabajar y editar videos o jugar juegos, entonces no podrá hacerlo con el Tipo 2. Si ese no es el propósito, entonces probablemente será suficiente con el Tipo 2.
Solía tener Virtualbox y usaba la máquina host principal como mi propio servidor de medios. Esto funcionó bien. La máquina principal era capaz de transcodificar videos. Sin embargo, cuando quería probar diferentes servidores de medios para experimentar, comencé a tener problemas porque tenía que afectar mi servidor principal para un experimento que podría salir mal.
Esto me hizo migrar a un hipervisor Tipo-1 y comenzar de nuevo. Me mudé a Proxmox como mi hipervisor, ya que me encanta el código abierto. Encontré VMWare ESXI demasiado difícil de implementar ya que ni siquiera tengo una máquina con Windows en casa, por lo que ni siquiera pude volver a trabajar con las imágenes ISO para permitirme inyectar los controladores de hardware correctos para incluso instalarlo.
Homelab está en marcha, ¿y ahora qué?
Lo configuré y comencé a crear el conjunto inicial de cosas en función de lo que quería usar. Quería un servidor de medios, pero tengo una potencia limitada (Intel i5 con GPU interna) y quiero alojar varias cosas. Entonces, tuve que decidir (e investigar) cómo hacer que funcionara para mí.
Si quería una VM que albergara mi servidor Plex o Jellyfin y fuera capaz de transcodificar, tenía que pasar la GPU a este servidor de medios. Eso haría que no pudiera usarlo para una PC de juegos, al menos no simultáneamente. Solo puede pasar GPU a una sola VM a la vez.
Esto fue un problema porque podría querer jugar al mismo tiempo que mi hijo o mi esposa quieren ver una película o un programa de televisión. Así que trabajé alrededor de eso.
Configuré un servidor NFS básico usando Debian (por su ligereza) donde alojaría mis archivos. Simplemente procesaría todos los archivos de video que poseo, para que estén en un formato universal que la mayoría de los dispositivos no necesitarían transcodificar:MP4.
Esto me obligaría a estar al tanto de los archivos y asegurarme de convertirlos siempre antes de indexarlos en mi servidor de medios. Puede automatizar fácilmente usando cron y handbrake-cli. Ni siquiera tuve que escribir el script cron, busqué uno de los muchos disponibles en GitHub.
Con mis archivos centralizados en un servidor NFS, ya no necesitaba una VM. Solo usé un contenedor para ejecutar mi servidor de medios y la cantidad de recursos utilizados fue la mínima posible. ¡Acabo de mapear el servidor NFS como una carpeta dentro de mi contenedor!
Luego, para el Firewall, configuré pFSense, nuevamente, para tener la mayor cantidad de recursos compartidos de manera óptima, usé un contenedor para ello.
A continuación, para la máquina de juegos, simplemente la configuré como una máquina virtual de Windows. La razón es que quería configurar Steam y también poder jugar juegos de GOG.com, ambos tienen mucho más soporte para Windows que cualquier otro sistema. Por lo tanto, configuré una VM para esto y la configuré con transferencia de GPU, de modo que la máquina virtual obtuviera la potencia de GPU que tenía mi Intel i5.
Problemas conocidos y riesgos asumidos
Como mencioné al principio de este artículo, no hice las cosas de la manera óptima o de la mejor manera necesariamente. Simplemente me adapté a lo que era mi presupuesto y resolví los problemas y problemas a partir de ahí.
Tener un solo disco duro me pone en peligro si le pasa algo al disco (y los discos duros son como los humanos:nacen y comienzan a morir a partir de ese momento específico). Perdería muchas cosas si no hago una copia de seguridad. No hago copias de seguridad de todas las máquinas virtuales porque no tengo suficiente espacio en disco para almacenar todo.
Además, tener un solo disco hace que la velocidad de lectura no sea tan rápida. El uso de una configuración RAID haría que la lectura del disco fuera óptima y, por lo tanto, más rápida. Además de eso, tengo mucho retraso de IO en algunos puntos. Esto se debe a que varias máquinas virtuales y contenedores acceden al mismo servidor NFS. Si no tengo cuidado de configurar tareas automatizadas o crons en diferentes momentos para evitar la superposición, podría terminar con la corrupción de datos.
Mi GPU es solo la integrada de Intel, es decente para cosas muy básicas, por lo que sería ideal tener una GPU real, incluso una NVIDIA antigua. Aún así, no solo el dinero es un problema, estoy usando una caja mini-ITX pequeña, por lo que tendría que buscar un modelo pequeño que pueda caber.
Por último, usar mi hardware en estas condiciones, especialmente el disco duro, reduce su expectativa de vida, pero como no planeo tener mucho uso sino un uso doméstico moderado, creo que por ahora vale la pena mantener esta arquitectura.