Esta es una entrada del blog sobre cosas que fueron realmente mal. Pero, eso está bien, porque se suponía que iban a ir mal. Permítanme explicar.
Me incorporé a Censys como ingeniero de fiabilidad de sitios en diciembre de 2023. Mi carrera en tecnología se ha visto muy influenciada por la computación en nube, que ha cambiado los conocimientos específicos de los que tienes que preocuparte como ingeniero. En los últimos quince años, muchos de nosotros pasamos mucho menos tiempo corriendo cableado en un centro de datos y mucho más tiempo peleándonos con una consola de nube de una variedad u otra. Sin embargo, al igual que la moda, todo en esta industria es cíclico y cada día más gente habla del ahorro de costes y las ventajas de libertad que supone ejecutar tus servicios en hardware físico de tu propiedad. Censys no es desde luego una excepción: llevamos tiempo ejecutando una parte de nuestros sistemas in situ.
En anteriores puestos en los que he tenido que trabajar con hardware físico, he contado con el apoyo de equipos enteros que lo gestionaban directamente. Censys es una organización mucho más pequeña y mi nuevo puesto me exigía comprender partes de la pila que hasta ahora había podido ignorar en gran medida. Entonces, ¿cómo puede alguien que ha pasado gran parte de su carrera con la cabeza en la "nube", por así decirlo, ponerse al día con las preocupaciones del hardware físico real?
Entre en el presupuesto de desarrollo profesional de Censys . Se trata de un estipendio anual de dinero para que lo utilicemos como creamos conveniente (dentro de lo razonable) para mejorar nuestras habilidades profesionales. Yo decidí utilizar parte del mío para construir un laboratorio casero que me sirviera para experimentar con hardware físico de primera mano. Hoy voy a hablar de lo que construí y de algunos de los tropiezos más frustrantes del camino.
¿Qué hay en un Homelab?
La práctica del "laboratorio casero" existe desde hace tiempo en la comunidad tecnológica. Encontrarás numerosos hilos en Reddit de gente hablando de sus laboratorios caseros, compartiendo fotos de ellos y mucho más. El término en sí se refiere a la práctica de construir una especie de caja de arena en casa que te permita trabajar con problemas análogos (si no iguales) a los que te enfrentas en tu vida profesional.
Los límites de lo que se puede aprender con este método sólo los ponen el presupuesto y la curiosidad. Lo que cada uno decida incluir en su homelab dependerá de lo que le interese aprender. En mi caso, quería obtener experiencia práctica con algunas técnicas de red más avanzadas y ejecutar Kubernetes en hardware de metal desnudo. Lo que construí refleja eso.
Hoy en mi homelab tengo:
- Mi red doméstica y el equipo de seguridad, que en este momento está en gran parte aislado del equipo de laboratorio, tanto por razones prácticas como de seguridad.
- Un Intel i3 NUC corriendo pfSense que es actualmente el firewall para el Laboratorio.
- Cinco Raspberry Pi 4B ensambladas en un clúster Kubernetes.
- Cuatro de ellos tienen discos duros conectados a través de USB para proporcionar un espacio de almacenamiento permanente que resista el fallo de un único nodo.
- Un económico conmutador Power over Ethernet de TP-Link que proporcionará alimentación y conectividad de red a mis Raspberry Pi a través del mismo cable.
En la escala de los laboratorios caseros, éste es bastante pequeño. Desde luego, no ganará ningún premio por su elegante cableado (aunque estoy trabajando en ello). Aun así, me ha dado muchas oportunidades de aprender cosas nuevas, y de eso se trata.
Mencioné al principio que esta es una entrada de blog sobre cosas que han ido mal, así que si estás buscando consejos sobre cómo establecer una configuración como esta para que sea útil, probablemente estés en el lugar equivocado. En su lugar, lo que sigue, son algunas de las tangentes más interesantes que ocurrieron y lo que aprendí de ellas. Si te parece interesante, vamos allá.
Problemas del disco duro externo
Las unidades externas USB son un fenómeno bastante común hoy en día. Una de las razones por las que funcionan tan bien es una tecnología llamada "UAS", que permite leer y escribir datos en una unidad USB mucho más rápido de lo que sería posible de otro modo. Una de las primeras cosas que quería hacer con mi nuevo laboratorio casero era tener algo de almacenamiento, así que compré algunas unidades y empecé a conectarlas.
Compré algunas unidades de prueba y un cable de prueba para una Raspberry Pi. Trasladé todo a la nueva unidad, incluido el sistema operativo. Todo parecía ir bien, así que compré unos cuantos más. Después de conectar las unidades y ejecutar algunas pruebas de velocidad de lectura/escritura, todo fue correcto. Así que desplegué Longhorn para dar a mi clúster Kubernetes algo de almacenamiento redundante y persistente. Estaba muy contento con todo hasta que copié el primer archivo grande en un volumen Longhorn y de repente todo dejó de funcionar. No podía conectarme a la máquina de forma remota, mis archivos ya no aparecían, y era como si todo se hubiera desvanecido en el aire hasta que reinicié el servidor y todo volvió a la normalidad. Hasta que se rompió de nuevo.
Había cometido un error crítico, y no había forma de haberlo previsto con antelación. Independientemente de la marca que aparezca en el exterior de un cable de ordenador cuando lo compras, otros fabricantes producen los chips que van dentro del cable y que permiten que funcione. Si estos chips no se adaptan bien a tu hardware, estás frito.
Este cable que estaba usando para conectar mi disco a USB no se llevaba bien con Raspberry Pi. Como resultado, se apagaba periódicamente hasta que se restablecía la alimentación. Esto es bastante malo por sí mismo, pero aprendí por las malas que si el núcleo del sistema operativo está en este disco externo cuando esto sucede, vas a perder todo el acceso a este servidor para averiguar lo que pasó hasta que lo reinicies. Después de lo cual la evidencia del problema por lo general se ha ido y no hay mucha evidencia que queda del problema anterior.
¿Cómo lo he solucionado y qué hemos aprendido?
Efectivamente, la solución a este problema era doble.
En primer lugar, tuve que mover el sistema operativo de nuevo a la tarjeta SD que Raspberry Pi normalmente espera que ejecute su sistema operativo en. Esto significa que en el caso de que algo va mal con el almacenamiento externo, el servidor central sigue funcionando y por lo menos puedo entrar para recopilar información sobre el problema.
En segundo lugar, resulta que las unidades externas con Pi son un tema muy complicado. En última instancia, sin embargo, la solución para detener mi unidad de falla fue habilitar el "modo quirks" para mi unidad. Esto le diría efectivamente a la Pi que dejara de usar las velocidades de transferencia de datos más rápidas en favor de un enfoque más lento y estable, y voilá, mis unidades externas empezaron a funcionar de nuevo y siguieron funcionando.
Necesito más potencia
Desde el principio decidí que quería alimentar mi laboratorio doméstico con Power-over-Ethernet. Más que nada para evitar tener que comprar una regleta más grande con suficientes enchufes para conectar cinco Raspberry Pi a la corriente de la pared. Mi equipo existente era capaz de suministrar energía a los dispositivos, así que ¿por qué no aprovecharlo?
Una de las primeras cosas que me encontré con mi nueva configuración fue problemas de potencia. Como se puede ver en la imagen de arriba, mi configuración es bastante densa. Aparte del equipo de laboratorio casero, tengo que suministrar energía y conectividad a los dispositivos que ejecutan mi red doméstica. Los conmutadores que había planeado utilizar inicialmente para suministrar energía no podían manejar cinco Raspberry Pi a la vez, lo que significaba que tenían que conectarse a uno de los pocos puertos disponibles en mi conmutador principal. Esto me llevó por el camino de tratar de encontrar la manera de conseguir más puertos Ethernet con alimentación para mi configuración.
Al principio, la solución parecía sencilla. Comprar un interruptor nuevo de mi fabricante preferido. Por desgracia, una rápida investigación reveló que tendría que gastar mucho más dinero del que quería para que funcionara (entre 350 y 700 dólares). Entonces di con la clave: un interruptor de otro fabricante que cumplía todos mis requisitos por 85 dólares en Amazon. ¡Anotación!
Vale, sé lo que estás pensando, y la verdad es que estaba preparado para un montón de diferencias entre un interruptor de 85 dólares y uno de 350 dólares. Sin embargo, no estaba preparado para el mayor problema que me he encontrado. Hace poco, una tarde, estaba pasando unos cables por mi armario para añadir un nuevo componente y de repente oí un "CLIC" muy fuerte. Todo se había apagado y se estaba reiniciando. Extraño.... No pensé que había golpeado el interruptor de la regleta, pero tal vez lo hice. Después de verificar que el interruptor principal estaba en la posición correcta, moví las cosas para no golpear el interruptor por accidente, y continué pasando el cable. "CLIC". Vale, no es la regleta.
Entonces, ¿qué pasó?
Cuando se trata de ahorrar dinero en el mundo físico, hay muchos lugares donde un fabricante puede cometer errores en su proceso o tomar atajos para bajar el precio. En este caso, parece que la gente que construyó este interruptor no acertó con el tamaño del cable de alimentación que lo conecta a la pared. Por lo tanto, cada vez que un ligero viento (o un cable Ethernet) roza la conexión de alimentación hace que todo se reinicie.
Después de pensar un poco sobre qué hacer aquí, he decidido que este es uno de esos problemas que no necesariamente tienes que resolver, pero que puedes mitigar. A menudo las cosas en el mundo real con el hardware físico simplemente no se alinean como lo hacen en una especificación. A veces hay que devolver el equipo estropeado y comprar algo nuevo, pero otras se decide que es mejor emplear el tiempo en mitigar el problema y seguir adelante. Eso es lo que he hecho aquí. El cable se ha reconfigurado para minimizar el número de cosas con las que puede entrar en contacto, lo que a su vez debería significar que los reinicios inesperados por sacudidas deberían ser también más infrecuentes.
Más rotura, más aprendizaje
Estas son sólo algunas de las travesuras en las que me he metido trabajando en mi laboratorio casero. Si me ves en una conferencia y quieres saber más, me encantaría compartir la vez que hice que todos los equipos de red de mi casa aceleraran sus ventiladores al máximo y luego se reiniciaran en secuencia. O la vez que tuve que averiguar el formato exacto de un disquete para que funcionara un sistema heredado de gestión remota. Y la lista continúa.
Si tienes acceso a un presupuesto de desarrollo profesional, no puedo dejar de recomendarte que sientas curiosidad, compres algo de hardware e intentes construir algo. Y si no lo tienes, probablemente sea un buen momento para mencionar que estamos contratando.
Censys Carreras profesionales