¿Un Raspberry Pi para backup? No suena tan descabellado, en mi casa utilizamos los Raspberry para varios trabajos protección anti ads para la red, como servidor de dockers, NAS, etc.
Pero si podemos utilizarlo de NAS, lo podemos configurar para que haga backup a nuestras Mac si no tenemos un Time Machine o disco certificado por la compañía de la manzana.
En este artículo te estaré explicando todo lo necesario para que puedas poner principalmente al Raspberry con un disco a hacer backups de todos tus equipos.
pi@raspss:~ $ sudo apt install samba avahi-daemon -y
Entendamos lo que instalamos: Samba es un protocolo de código abierto para el uso compartido de archivos SMB, este cuenta con el respaldo oficial de Time Machine para realizar copias de seguridad en una red. Raspberry pi
Por el otro lado Avahi es la implementación del protocolo mDNS / DNS-SD también llamado Bonjour, este nos sirve para que el Time Machine nos reconozca los discos sin problemas.
Lo primero que debemos hacer es conectar el disco al raspberry. El lo detecta automáticamente pero no lo pone disponible en ninguna ruta para uso del usuario, por eso nos toca configurar. En este caso, lo primero que necesitamos es saber la ruta donde el sistema tiene el disco, esto lo hacemos con el comando:
pi@raspss:~ $ sudo blkid
La entrada de nuestro disco generalmente se aloja en /dev/sda o /dev/sdb, para nuestro ejemplo está en el /dev/sda, así que procedemos a darle el formato que necesitamos con el siguiente comando:
pi@raspss:~ $ sudo mkfs -t ext4 /dev/sda
OBSERVACIÓN: Utilizando el formato ext4 de Linux nos aseguramos de la seguridad que nos brinda un sistema de archivos registrado, aunque este disco no se podrá conectar directo a nuestra Mac, por el contrario si utilizamos el de mac HFS+ perdemos seguridad en la escritura de los datos y estamos expuestos a perder la integridad de la copia, tengamos en cuenta que también el ext4 es un sistema de archivos cifrado y no puede ser leído por cualquiera.
Al decir que vamos a montar el disco nos referimos a disponibilizarlo en nuestro sistema para que el usuario lo pueda utilizar, o sea escribir y leer de él.
Primero ejecutamos el comando anterior para copiar el Identificador único (UUID) del Disco:
pi@raspss:~ $ sudo blkid
Debemos ejecutarlo nuevamente porque en el formateo ese ID puede cambiar.
Con el UUID de nuestro disco, entonces procedemos a configurar en nuestro archivo de discos del sistema, el fstab:
pi@raspss:~ $ sudo vi /etc/fstab
En esta parte utiliza el editor con el que te sientas más comodo.
Una vez en el archivo, escribiremos lo siguiente al final del archivo:
UUID=2ff201c1-4ee5-49fa-a095-31962bd97017 /media/tm ext4 sync,noexec,nodev,noatime,nodiratime 0 0
Esto le indica al sistema que en nuestra Raspberry monte el disco con el identificador (UUID) en el directorio /media/tm como un sistema de archivos ext4 con las siguientes banderas:
dump
fsck
al reiniciar.OBSERVACIÓN: La carpeta puesta en la configuración puede estar en la ruta que prefieras, nosotros la utilizamos para el ejemplo allí /media/tm.
Procedemos a montar la unidad. Esto nos permite escribir y leer en el disco, con el siguiente comando:
pi@raspss:~ $ sudo mount /media/tm
Para crear nuestros backups necesitamos crear un usuario que coincida con el de nuestra Mac. Nuestro usuario para utilizar la Mac es pontegeek, entonces con el siguiente comando lo configuramos en el Raspberry:
pi@raspss:~ $ sudo adduser pontegeek
Ahora creamos una carpeta para nuestros backups y le damos permiso al usuario:
pi@raspss:~ $ sudo mkdir /media/tm/backups/pi@raspss:~ $ sudo chown -R pontegeek: /media/tm/
Como estoy usando un disco giratorio y Time Machine, no funciona constantemente. Sería bueno si pudiéramos poner el disco en espera después de 10 minutos de inactividad. Para hacer esto, necesitaremos instalar hdparm para establecer un tiempo de espera en espera (spindown) en incrementos de 5 segundos, identificando nuevamente nuestro disco por su UUID:
pi@raspss:~ $ sudo apt install hdparm -ypi@raspss:~ $ sudo hdparm -S 120 /dev/disk/by-uuid/2ff201c1-4ee5-49fa-a095-31962bd97017
Podemos hacerlo permanente agregando lo siguiente a este archivo /etc/hdparm.conf:
pi@raspss:~ $ sudo vi /etc/hdparm.conf
/dev/disk/by-uuid/2ff201c1-4ee5-49fa-a095-31962bd97017b {spindown_time = 120}
Ahora que tenemos almacenamiento disponible para compartir con nuestra Mac, configuremos con Samba para que funcione con el Time Machine.
Para hacer esto, necesitamos agregar una nueva definición de recurso compartido para nuestro directorio /media/baskups propiedad del usuario pontegeek a nuestra configuración de Samba en /etc/samba/smb.conf:
[backups] comment = Time Machine path = /media/tm/backups/ valid users = pontegeek read only = no vfs objects = catia fruit streams_xattr fruit:time machine = yes
Esto crea un nuevo recurso compartido al backups que solo se puede acceder utilizando el pontegeek nombre de usuario y la contraseña.
Para poder conectarnos al pontegeek recurso compartido como, necesitamos agregar explícitamente a ese usuario al archivo de contraseña de Samba y establecer una contraseña con:
pi@raspss:~ $ sudo smbpasswd -a pontegeek
Ahora podemos usar este nombre de usuario y contraseña de macOS para conectarnos a nuestro recurso backups compartido.
Procedemos a validar que todos los paremetros de configuración están bien y si no nos sale ningún error procedemos a reiniciar Samba:
pi@raspss:~ $ sudo testparm -spi@raspss:~ $ sudo service smbd reload
En este punto ya podemos entrar al disco compartido desde nuestra Mac, presionamos Command + k, ingresamos el ip de nuestra Raspberry, usuario (el usuario que creamos) y contraseña (con la contraseña que configuramos Samba).
Avahi nos ayuda a que las Mac de la red puedan identificar automáticamente la unidad de backup.
Para esto tenemos que crear el servicio de samba en la configuración del avahi con el siguiente comando:
pi@raspss:~ $ sudo vi /etc/avahi/services/samba.service
y agregamos el siguiente texto:
<?xml version="1.0" standalone='no'?><!--*-nxml-*--> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name replace-wildcards="yes" %h </name> <service> <type> _smb._tcp </type> <port> 445 </port> </service> <service> <type> _device-info._tcp </type> <port> 9< </port> <txt-record> model=TimeCapsule8,119 </txt-record> </service> <service> <type> _adisk._tcp </type> <port> 9 </port> <txt-record> dk0=adVN=backups,adVF=0x82 </txt-record> <txt-record> sys=adVF=0x100 </txt-record> </service> </service-group>
Con este archivo de servicio en su lugar, Avahi debería recoger automáticamente el cambio de configuración y su Raspberry Pi ahora aparecerá en el Finder y en el Panel de preferencias de Time Machine cuando elija “Seleccionar disco …“.
¡Asegúrese de marcar “Cifrar copias de seguridad” al seleccionar el disco y espere a que se complete su primera copia de seguridad!