Construir un dispositivo de Internet de las Cosas, o quizás grabar video continuamente, requiere un sistema de almacenamiento de alta capacidad y bajo consumo, preferiblemente utilizando hardware económico. En casos específicos, tu dispositivo podría estar remoto o podría lidiar con intensidades de vibración altas, como estar montado en un equipo industrial, en un robot o en un vehículo. Tales circunstancias hacen indispensable el almacenamiento en estado sólido.
Comencé mirando la construcción de un servidor de almacenamiento conectado a la red usando una Raspberry Pi; después de todo, son excelentes pequeñas computadoras de placa única. Sin embargo, hay algunas cosas que las hacen menos que ideales para este tipo de proyectos. En primer lugar, el puerto de red es solo de 300Mbit/s en el último modelo 3B+, y de 100Mbit/s en generaciones anteriores. En segundo lugar, los puertos USB son solo USB 2.0 (480Mbit/s), por lo que son significativamente más lentos que USB 3.0 (5Gbit/s). Los conectores USB no siempre son los mejores para entornos de alta vibración y pueden tener errores de conexión intermitentes debido a esto, o fallar por fatiga si el cable no está bien asegurado. Los cables USB, especialmente los 2.0, tampoco funcionan particularmente bien en entornos de alta EMI, como cerca de motores impulsados por VFD.
Después de comparar numerosas opciones atractivas en el mercado, adquirí un ODroid HC1 (Home Cloud 1) a través de su distribuidor en el Reino Unido (https://odroid.co.uk). Es un ordenador de placa única muy compacto y con un precio razonable. Los benchmarks anunciados son bastante impresionantes para el HC1, en comparación con otros ordenadores de placa única en un rango de precio similar.
Cuando se compra directamente de Hard Kernel directamente, la unidad tiene un costo de US$49, sin incluir envío, fuente de alimentación, ni disco duro. Hard Kernel también ofrece algunas placas muy impresionantes en un factor de forma RasPi, con montones de potencia de procesamiento para aquellos que están dispuestos a pagar por ello. El HC1 me atrajo por estar dedicado a controlar almacenamiento conectado a la red, completamente despojado de cualquier funcionalidad superflua. También es bastante compacto a pesar de estar montado en un enorme disipador de calor que funciona como una carcasa abierta, con la opción de incluir una tapa superior para aquellos que prefieran tener una.
Me hubiera gustado que tuviera funcionalidad WiFi incorporada, así como la capacidad de ejecutar múltiples discos para RAID y seguridad de datos en caso de fallo de un disco. Aunque el Odroid HC1 carece de tales características, conserva un único puerto USB, que opcionalmente podría usarse para conectar un dongle WiFi USB. Me interesaba el WiFi por conveniencia, para poder verificar el contenido del disco desde un dispositivo móvil, en lugar de escribir o leer grandes cantidades de datos. Por otro lado, RAID es un poco más complicado en computadoras de placa única a menos que comiences a mirar máquinas basadas en x86, agregando procesadores gráficos o considerando características adicionales que consumen mucha energía. Fue difícil encontrar una opción compacta y de bajo consumo, así que tuve que renunciar a RAID.
Opté por un SSD Samsung 860 Evo SATA de un terabyte para el dispositivo de almacenamiento y una tarjeta microSDHC Sandisk de 16 gigabytes para el dispositivo de arranque. Intenté conformarme con una vieja tarjeta microSD de dos gigabytes, pero era demasiado lenta para el sistema operativo. La Sandisk microSDHC de 16gb era la tarjeta de marca reconocida más barata disponible. Si buscas una configuración extremadamente resistente, los discos Samsung 860 Evo PRO son el doble de caros pero ofrecen casi cuatro veces la durabilidad de flash que el Evo, lo cual podría valer mucho la pena para una instalación remota que recolecta datos críticos. La versión PRO también consume considerablemente menos energía. Una opción un poco más orientada al presupuesto de Samsung es la línea Qvo, que tiene aproximadamente la mitad de la durabilidad de flash que el Evo. Decidí optar por los Samsung en lugar de cualquier otra marca porque mi hardware no ofrece la opción de RAID. No he tenido problemas con ellos en el pasado, y tengo 9 de ellos en operación continua, así que decidí seguir con lo que me ha funcionado bien antes.
Los discos mecánicos no son una buena idea para entornos de baja potencia, con intensas vibraciones o condiciones adversas. Son muy baratos por la capacidad de almacenamiento que ofrecen en comparación con un SSD de calidad, pero las vibraciones los dañan muy rápidamente, al igual que el polvo y la humedad. Un SSD consume mucha menos energía que un disco mecánico y no sufre del tiempo de arranque al salir del modo de espera cuando quieres empezar a escribir datos.
SSD Samsung 860 EVO y ODroid HC1 después de la compra.
Hay varios sistemas operativos de almacenamiento conectado a la red disponibles para computadoras de placa única. Decidí usar OpenMediaVault porque funciona en un número considerable de computadoras de placa única basadas en ARM, lo que te permite seguir adelante incluso si eliges una ruta diferente (como una Raspberry Pi). ¡También tiene una interfaz web muy fácil de usar para configurarlo y gestionar comparticiones/usuarios, por lo que no requiere línea de comandos ni SSH!
Configurar y ejecutar el ODroid HC1 es simplemente cuestión de conectar el disco duro, flashear e insertar la tarjeta SD, y finalmente, conectar el ethernet y la alimentación. Vamos a pasar por estos pasos uno por uno.
En primer lugar, vamos a cargar la imagen del firmware en la tarjeta SD.
Descarga la imagen “OMV_4_Odroid_XU4_HC1_HC2.img.xz” desde Sourceforge.
Descarga cualquier programa de flasheo de imágenes que prefieras. Trabajaremos con Etcher (https://etcher.io/) en este artículo porque es muy sencillo de usar.
Conecta la tarjeta microSD a tu computadora.
Abre Etcher y selecciona la imagen descargada, luego tu unidad.
¡Haz clic en Flash!
Mientras Etcher está flasheando y validando la imagen en tu tarjeta SD, puedes ensamblar el ODroid HC1 y el disco duro simplemente conectando el disco duro al conector SATA del HC1.
El ODroid HC1 conectado al disco de Samsung conforman un almacenamiento en red muy compacto.
Luego, voltea y usa los tornillos incluidos para asegurar el disco.
Entonces puedes conectar el cable Ethernet.
Una vez que conectes el cable Ethernet, habrás terminado de conectar todo el hardware.
Una vez que Etcher haya terminado de flashear la tarjeta SD, puedes proceder a conectarla en el HC1 y luego conectar la energía. OpenMediaVault requiere crucialmente una conexión a internet estable en su primer arranque. Intenté arrancar mi HC1 por primera vez conectado a una red que incluía un enlace inalámbrico, el cual no era particularmente de alta calidad, y tuve dificultades significativas para hacer funcionar el dispositivo. Sin embargo, tuve éxito inmediato al conectar el HC1 directamente a la parte cableada de la red.
Puede tardar un rato en el primer arranque, así que prepárate un té o un café, o revisa algunos de los otros artículos en este blog. Deja que el HC1 arranque e instale durante al menos 15 minutos; no hay una indicación visual de que ha terminado, así que es mejor dejar el dispositivo un poco más de tiempo en lugar de hacer algo con él demasiado pronto.
Querrás verificar lo que proporciona direcciones DHCP en tu red (típicamente tu router de internet en una casa o pequeña oficina) para mirar los clientes conectados y encontrar la dirección IP del ODroid. Alternativamente, puedes usar una herramienta de escaneo de IP para encontrarla; una opción popular es Angry IP Scanner (prefiero la versión antigua ya que no requiere Java). Si este es tu único ODroid en la red, probablemente puedas omitir la búsqueda de la dirección IP y navegar a http://odroidxu4/ en tu navegador web. De lo contrario, ve a la dirección IP con tu navegador.
Configurar OpenMediaVault comienza con iniciar sesión.
El nombre de usuario y contraseña por defecto son admin / openmediavault.
Lo primero que querrás hacer es ir a Sistema⇒Configuración General y luego a Contraseña del Administrador Web para cambiar tu contraseña.
Luego puedes dirigirte a Sistema⇒Gestión de Actualizaciones para asegurarte de tener todos los paquetes más recientes. Presiona el botón de Verificar, luego haz clic en la casilla junto a Información del Paquete para seleccionar todo y presiona el Botón de Actualizar
Por favor, espera un momento mientras OpenMediaVault instala sus actualizaciones.
Una vez que las actualizaciones estén completas, querrás reiniciar. Puedes hacer clic en el icono del menú ⋮ en la parte superior derecha del tablero y seleccionar reiniciar.
Si estás utilizando un disco duro existente, o tu disco duro viene preformateado, necesitarás eliminar las particiones antes de proceder. Puedes ir al menú Almacenamiento⇒Sistemas de Archivos, seleccionar cualquier entrada /dev/sda* y eliminarlas. Sin embargo, asegúrate de no tocar el elemento /dev/mmc
, ¡ya que esa es la tarjeta SD desde la cual estás arrancando!
Configurar un disco duro requiere que crees un sistema de archivos.
Una vez que tengas un disco vacío, puedes hacer clic en el botón Crear. Dale a tu unidad una etiqueta de volumen, asegúrate de que EXT4 esté seleccionado para el sistema de archivos y haz clic en OK.
Esto probablemente tomará unos minutos en completarse.
Una vez que esté hecho, haz clic en Cerrar, luego selecciona /dev/SDA1 y luego haz clic en el botón Montar. Entonces necesitarás hacer clic en Aplicar para que el disco se monte.
El botón aplicar se puede encontrar en la esquina superior derecha de la tabla de dispositivos.
A continuación, necesitarás un usuario para acceder al recurso compartido de archivos. Ve a Gestión de Derechos de Acceso⇒Usuario en el menú, luego haz clic en Agregar.
Ahora que hemos terminado con el almacenamiento, necesitamos configurar la gestión de derechos de acceso.
Establece el nombre de usuario y la contraseña y luego haz clic en Agregar. Después, necesitarás Aplicar los cambios como lo hiciste al montar el nuevo sistema de archivos. Ahora tienes un usuario para acceder al recurso compartido de archivos.
Necesitaremos configurar opciones básicas al crear un nuevo usuario.
Dirígete a Gestión de Derechos de Acceso⇒Carpetas Compartidas y haz clic en Agregar.
Simplemente dale un nombre al recurso compartido como “logdata” y haz clic en Agregar. Idealmente, también deberías establecer los permisos para negar el acceso a “otros”, así solo los usuarios pueden acceder a la carpeta.
Crear una carpeta compartida permite al usuario que acabamos de crear transferir datos hacia y desde el almacenamiento conectado a la red.
Una vez creada la carpeta compartida, puedes seleccionarla y luego hacer clic en el botón de Privilegios para agregar a tu usuario.
Quieres seleccionar la casilla de verificación de Leer/Escribir y luego hacer clic en Guardar. De nuevo, necesitas aplicar estos cambios.
Finalmente, haz clic en el botón ACL, al lado del botón de Privilegios que previamente hiciste clic, y haz lo mismo, luego Aplica y Cierra.
Dirígete a la opción de menú Servicios - SMB/CIFS. Este es el servidor de archivos en el dispositivo.
Haz clic en Habilitar, luego Guarda y Aplica.
No olvides hacer clic en el botón aplicar para guardar los cambios que realices.
Una vez que hayas habilitado el servidor SMB, haz clic en la pestaña de Compartidos y luego en el botón de Agregar. Puedes seleccionar la compartición creada previamente y luego hacer clic en el botón de Guardar, después Aplica los cambios.
En Windows, puedes ir a \\odroidxu4\ (o \\direcciónip\) en el Explorador de Windows para ver si la compartición está configurada correctamente. Ingresa las credenciales que creaste anteriormente cuando se te solicite.
Podemos usar nuestras credenciales para ver y acceder a la carpeta compartida en el OCDroid desde cualquier otro ordenador en la red.
Al copiar hacia o desde el disco, deberías ver tasas de transferencia de aproximadamente 95-115Mbytes/segundo a través de una red cableada, lo cual es aproximadamente tan rápido como una red gigabit puede transferir. El rendimiento en el HC1 es bastante impresionante.
OpenMediaVault también admite otros medios de transferencia de archivos. Si el dispositivo que genera todos los datos que necesitas almacenar no es compatible con sistemas de archivos SMB (comparticiones de Windows), entonces podrías querer habilitar también FTP. Generalmente hablando, FTP no es tan rápido como SMB, sin embargo, si estás utilizando un microcontrolador, es más fácil de implementar que las comparticiones SMB.
El servidor FTP también puede ser bastante útil para navegar por el servidor desde una ubicación remota. Si quieres acceder al servidor FTP desde un microcontrolador básico, probablemente no quieras que SSL sea obligatorio, solo opcional. Si necesitas ejecutar el servidor FTP sin SSL, solo deberías acceder al servidor a través de internet mediante un túnel VPN hacia la red a la cual está conectado el NAS.
Ve a Servicios⇒FTP, luego marca la casilla Habilitar y haz clic en Guardar.
Ahora puedes ir a la pestaña de Comparticiones y Agregar la compartición justo como lo hiciste para la compartición SMB anterior. No olvides hacer clic en Guardar y luego Aplicar los cambios de configuración.
Si estás buscando construir un servidor de almacenamiento de datos remoto que use muy poca energía y ocupe solo un pequeño espacio, el Odroid HC1 es una excelente opción. Si te encuentras en un ambiente muy húmedo o mojado, podrías querer aplicar una capa de revestimiento conformal y darle una generosa capa a la placa por ambos lados, y potencialmente también en el interior de tu disco duro (solo si estás usando un disco de estado sólido). El revestimiento conformal asegurará que las placas no sufran de corrosión.
El gran disipador de calor en el Odroid añade una gran rigidez al conjunto, así que hay una preocupación mínima de que el conector SATA sufra alguna fatiga por vibraciones o impactos. Combinado con un disco de estado sólido, esto te da un dispositivo de almacenamiento conectado a la red robusto.
Como se mencionó anteriormente, para lograr la máxima robustez, sería ideal tener los datos duplicados automáticamente en dos discos. Mejor aún, podríamos tener múltiples discos en RAID 6, pero entonces estaríamos muy lejos de los conceptos de ‘compacto’, ‘bajo consumo’ y ‘costo efectivo’. Los disipadores de calor/carcazas de Odroid HC1 son apilables, por lo que sería posible simplemente usar dos NAS juntos y utilizar sincronización de software como RSync, que OpenMediaVault puede configurar por ti, en el segundo sistema para copiar archivos del primero. Al sincronizar los dos sistemas, poseerías alguna capacidad de failover y retención de datos en caso de que un disco falle.
¿Te gustaría saber más sobre cómo Altium Designer® puede ayudarte con tu próximo diseño de PCB? Habla con un experto en Altium.