es es es en pl gl tr en en es es en es es es en pl gl tr en es es es es es es es es es es es es es es es es es es es es es en es es es es es es es es es es es es es es gl es es en es pt es es es es es es gl en es es es es pt es es ca ca es es gl es it es es es pt es fr es es en en en pt en hbs_lat pl en es es es es es es it es es es es es es es fr es es es pt en es es pt es id es es en es es es pt es es es es es es es es es es es en es gl gl es es es
Soy una persona que hace copias de seguridad. De todo. Siempre. No me vale lo de que no hacen falta, que soy un exagerado ni ninguna otra excusa. Backup y punto. Y cifrados. Y siguiendo la regla del 3-2-1. Y con un armario de comunicaciones adecuado.
Además, me encantan las Raspberry Pi, la idea y cómo la han llevado a cabo y tengo varias con las que experimento. Como también me gusta tener un montón de servicios alojados entre mi casa y los servidores dedicados, son un estupendo (y barato) medio con los que pasar horas. Así que creo que es justo advertir que esta entrada va sobre cómo des-complicarte la vida usando el software adecuado, una raspi y un par de discos duros.
Hace ya unos años que expliqué cómo tener una NAS usando una raspberry pi y un disco mecánico de un tera y lo llamé ranas (si, el chiste es bastante malo).
En ranas terminaban los backups de todos los ordenadores de casa y estuvo funcionando hasta hace un par de meses, empleando un total de dos raspis porque la original de las fotos se quemó. También hacía backup de los datos de los servidores en otra raspi que tenía muchas tareas, algunas demasiado importantes como para estar pendiente de las copias de seguridad.
Hace unos meses me surgió la necesidad, nacida de la paranoia todo hay que decirlo, de hacer copia de los ficheros que tengo en la nube privada. Porque, por mucho que me repitiese que había copia de los ficheros en más de un sitio, la realidad es que es muy sencillo perderlo todo por un fallo en el servidor que se propague a los clientes. Ya contaba con backup de la base de datos y de la configuración pero, solo yo tengo casi 30 gigas de datos y de haberlo enviado a ranas habría llenado el disco.
También teníamos otro disco compartido por samba donde dejaba películas y videos para poder verlos tranquilamente en el proyector. Este volumen llegué a conectarlo al router en un intento de darle mayor velocidad porque a veces se desincronizaba todo y no había forma de ver series y hasta hace no mucho no me di cuenta de que el problema era el acceso, estaba usando el protocolo equivocado.
Los backups vía NAS se hacían usando samba, lo mismo que el volumen compartido mientras que las copias de los datos de servidores van por rsync sobre ssh. Usaba un total de dos raspberrys, dos discos duros mecánicos, varios scripts propios y un puñado de usuarios desperdigados por los servidores (no me bajaréis de esta burra). Al final, tenía una mezcla heterogenea (por decirlo suavemente) de discos, protocolos y raspis que lo hacía todo complicado de entender y gestionar y, entonces, algo fantástico sucedió…
fritz servidor de almacenamiento con raspberry pi
Decidí dejar mis scripts y configuraciones a medida, de reinventar la rueda, y me propuse pasar a usar una solución NAS más completa. Buscaba una solución que me permitiera almacenar los backups, tanto de servidores como de la nube privada, servir de NAS para los equipos de casa y algún otro servicio alternativo como resultó ser DNLA.
Con la llegada de las navidades y las ofertas en informática que les acompañan, me decidí a comprar un kit de iniciación a las raspis con una 4B de 4 GB y un par de discos duros SSD de 1TB, provenientes de China. Entre las raspis 3B y las 4B hay una diferencia crucial si estás pensando en montar un servidor NAS y es que en la primera los puertos USB y la tarjeta de red (de 100Mb) comparten interrupción, esto es, que se pisan cuando se hace un uso intensivo de ambos. Como la idea de las NAS es coger por red lo que guardas en el disco duro externo, la tragedia se masca y el proceso es más lento. Las 4B tienen interrupciones independientes para los puertos USB y la tarjeta de red Gigabit y, dos de los cuatro puertos USB son 3.0. En ranas tenía un cable con doble entrada USB para alimentar al disco mecánico y no comenzase con la musiquita del tic-tic-tic-tic, que indicaba que no tenía suficiente alimentación. Ahora ya no es necesario para ninguno de los dos discos SSD. Es más, si me da el aire puede que le añada un tercer disco con el cable doble en los puertos 2.0.
Mi plan maligno era montar un nuevo servidor de almacenamiento usando la nueva raspi y los dos discos SSD y que diese soporte a los backups, al NAS y al volumen compartido. Es decir, iba a montar OpenMediaVault usando un hardware significativamente mejor y más rápido.
Era la hora de dar vida a fritz.
— diego mtnz castañeda (@n1mh) January 6, 2021
Habitualmente suelo configurar las raspis como si fuese un servidor más, porque lo son, y les aplico unas configuraciones estrictas que garanticen un mínimo de seguridad. Cuando monté OpenMediaVault (OMV a partir de ahora) por primera vez me di cuenta que no puedo aplicar mis configuraciones porque espera precisamente que sea una raspi sin modificaciones.
Así que, con esta limitación en mente, me propuse conseguir la configuración más segura posible, con los siguientes puntos:
utilizar solo usuarios creados en OMV
el acceso por ssh se hará solo con clave pública y solo para los usuarios seleccionados. Root ni siquiera debería ser una opción.
dejar al usuario pi vacío, sin ninguna modificación salvo la contraseña. Ni clave pública ni acceso a ningún servicio
usar solo los servicios que necesito, el resto anularlos o quitarlos
todos los backups deben estar cifrados. El resto del contenido ya tal
los usuarios accederán a su directorio y a nada más. Nada de usuarios para varios servicios y con acceso a todo
La configuración en OMV
cambiar contraseña de admin a una muy compleja.
crear un certificado y aplicarlo al sitio:
usar certificado nuevo y forzar ssl
conectar, detectar y formatear los dos discos de 1TB
montarlos y salvar la configuración para hacer el cambio perdurable.
activar smart para ssd1TBmedia
activar smart para ssd1TBbackup
dar acceso por ssh
solo autenticación por clave pública.
añadir opción Match Address 192.168.1.*
directorios home de usuarios
accesible solo por usuario
Aquí dejo el script que he utilizado para la clonación de raspbios, instalación y la configuración de OMV. ¡OJO!! Se trata de un script personal, casero y perfectamente falible. Declino toda responsabilidad si, por ejemplo, lo aplicas a tu raspi y formateas algo que no debas xD.
export HOST='raspi' export DOMN='example.com' export FQDN="$HOST.$DOMN" cd ~/descargas unalias ls if [ ! `ls *raspios*lite*img` ] ; then unzip *raspios*lite*zip fi IMG=`ls *raspios*lite*img` SD="/dev/XXXXX" # ¡¡ojo!! esto puede ser una tarjeta SD SD1="${SD}1" SD2="${SD}2" sudo umount /mnt/* sudo umount /media/diego/* sudo dd if=$IMG of=$SD bs=4M status=progress sudo mkdir -p /mnt/boot /mnt/rootfs sudo mount "$SD1" /mnt/boot/ sudo mount "$SD2" /mnt/rootfs/ # activo ssh desde el inicio sudo touch /mnt/boot/ssh cd /mnt/rootfs # uso tmpfs para ciertos directorios echo " tmpfs /tmp tmpfs defaults,noatime,mode=1777,size=50m 0 0 tmpfs /var/tmp tmpfs defaults,noatime,mode=1777,size=50m 0 0 tmpfs /run tmpfs defaults,noatime,mode=1777,size=50m 0 0 " | sudo tee --append etc/fstab echo "127.0.0.1 $FQDN $HOST 127.0.0.1 localhost.localdomain localhost :1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters" | sudo tee etc/hosts echo $HOST | sudo tee etc/hostname figlet $FQDN | sudo tee etc/motd # evito que se pida contraseña a los usuarios del grupo sudo sudo sed -i 's|^%sudo\tALL=(ALL:ALL) ALL|%sudo\tALL=(ALL) NOPASSWD:ALL|g' etc/sudoers cd sudo umount /mnt/boot sudo umount /mnt/rootfs sudo rmdir /mnt/boot /mnt/rootfs
Hay que conectarse vía SSH una vez más, ssh pi@raspi.
sudo passwd pi # imprescindible poner una contraseña MUY segura # elimina el mensaje que aparece si la wlan no está configurada sudo rfkill unblock `rfkill | grep wlan | awk '{print $1}'` # limpieza de sources.list sudo sed -i '/^#/d' /etc/apt/sources.list sudo sed -i '/^$/d' /etc/apt/sources.list sudo sed -i '/deb-src/d' /etc/apt/sources.list #sudo sed -i 's/$/contrib non-free/' /etc/apt/sources.list sudo sed -i '/^#/d' /etc/apt/sources.list.d/raspi.list sudo sed -i '/^$/d' /etc/apt/sources.list.d/raspi.list sudo sed -i '/deb-src/d' /etc/apt/sources.list.d/raspi.list # quito paquetes que no necesito sudo apt purge -y alsa-utils triggerhappy wpasupplicant pi-bluetooth bluez bluez-firmware cpp* dmidecode g++* gcc-[4567]* gdb* geoip-database build-essential tcc* dpkg-dev luajit libluajit-5.1-common nano ncdu patch plymouth libplymouth4 tasksel tasksel-data traceroute rpcbind samba-common v4l-utils xdg-user-dirs cifs-utils dbus libdbus-* # actualizo e instalo imprescindibles sudo apt update sudo apt full-upgrade -y sudo apt install -y bash-completion vim ntp htop sudo apt purge -y `dpkg -l | grep ^rc | awk '{print $2}'` sudo apt autoremove -y sudo apt clean # núcleo de 64 bits sudo rpi-update echo -e "\n# 64 bits\narm_64bit=1" | sudo tee -a /boot/config.txt # OpenMediaVault prerequisitos sudo rm -f /etc/systemd/network/99-default.link sudo reboot && exit # OpenMediaVault instalación sudo mkdir -p /var/log/nginx # normalemente no es necesario pero por si acaso sudo mkdir -p /var/log/samba # normalemente no es necesario pero por si acaso wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash # detengo nfs y portmap sudo systemctl stop nfs-server.service sudo systemctl disable nfs-server.service sudo systemctl stop portmap.service sudo systemctl disable portmap.service
Esta nueva raspi es considerablemente más rápida y no solo a nivel de red sino que los 4 GB de RAM se notan y mucho. El cambiar los discos mecánicos por otros SSD y usar puertos USB 3.0 en vez de los 2.0 también le añaden un buen montón de rendimiento y potencia al conjunto.
En cuanto a OpenMediaVault me parece una verdadera joya que funciona muy bien a pesar de no tener debajo un servidor propiamente dicho. Me encantaría verlo funcionar en un hardware potente, con varios discos y un buen puñado de CPU y RAM, tiene que ser una delicia. En mi caso, primaba el bajo consumo y la ausencia de ruido.
Algo que sí me gustaría poder hacer en OMV es desactivar los servicios que no se usan, al igual que sucede con los plugins. Pero vienen metidos en el core de la aplicación y no he encontrado la forma (aún). Es púramente estético porque los servicios no están funcionando ni escuchando en ningún puerto pero es lo que siempre hago y la cabra tira al monte.
Pues eso, alguien loco, con cinismo, pleno de deseo y vacío de saliva de tanto gritar en el desierto.
También te puede interesar
Publicada 23 noviembre 2009
teclas multimedia en banshee
Hace tiempo que dejé de usar hotkeys para gestionar los botones multimedia de mi fantástico teclado torcido, un Logitech Cordless Desktop Pro […]
Publicada 16 marzo 2012
una de discos duros
Imagínate el siguiente escenario: un día cualquiera llegas a casa por la noche y enciendes el ordenador para leer el correo y […]
Publicada 4 junio 2010
podcast: número 18 de daboblog
El pasado día uno salió el podcast número 18 de daboblog y, como ya he escrito una reseña en debianhackers y estoy […]
Publicada 1 febrero 2010
décimo podcast de daboblog
En esta ocasión toca hablar de los must, esos programas sin los que todo sería más difícil y feo. A lo tonto, […]
4 ideas sobre “Raspberry pi como servidor de almacenamiento”
8 enero 2021, 12:30
Efectivamente el script está mal… nano aparece en el listado que no necesitas y vim está en imprescindibles. No te lo perdonaré jamás
8 enero 2021, 12:32
me alegra ver que estás bien y que no has perdido el sentido del humor. Porque… nano como imprescindible es broma, ¿verdad?
8 enero 2021, 12:39
Dicha la tonteria… yo tuve que dejar de lado la acumulación de raspberrys.. hay proyectos que lo requerían obligatoriamente (la recreativa, el magic mirror), pero también empecé cruzada de usar cualquier software como servicio y alojar yo mismo el servicio. Al final o bien tenía varias raspberrys infrautilizadas, o estaban pasadas de rosca. Ahora dejo las raspberrys (que creo que en esta casa me he plantado el la número 8) y me he pasado a un microserver de hp que tira por dockers como si sus 4GB de ram fuesen infinitos.
Hablando de backups… estoy procrastrinando tomar una decisión por culpa de las fotos… que después de años de escaneados y de cámaras digitales, la tontería va por los 5 TB y pico (que ahora los tengo en raid, ok, pero solo una copia) Acepto consejos y recomendaciones que no entren conflicto con mi diógenes digital
8 enero 2021, 13:04
supongo que yo tenderé a un miniserver con contenedores cuando sepa cómo manejarlos pero, hasta entonces, raspis por el bajo consumo. Las 4b son la caña xD.
En cuanto a los backups… deja el raid como hasta ahora y coge una de esas raspis y conéctale un disco externo con todos los teras que puedas encontrar y sincronízalo con tu raid. Así mantendrás tu diógenes y tendrás una copia de tu copia de seguridad.
Si te quieres complicar la vida, pilla otro miniserver con chorrocientos teras y métele OMV, ponle raid, zfs, sincroniza el raid viejo y comienza a hacer backup ahí. Ponerle NAS también ayudaría para tu diógenes xD
Los comentarios están cerrados.
Entrada anterior taller en IT~gals: jugando con raspis
Volver a la lista de entradas
Entrada siguiente 1000 días
© 2022 El sueño del mono loco – Todos los derechos reservados
Funciona con WP – Diseñado con el Tema Customizr
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver