¿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.

 

Raspberry Pi¿Qué necesitamos?

  • Un Raspberry (cualquier versión), pero te recomendamos la última aquí.
  • Sistema operativo del Raspberry – Raspbian versión más reciente – guía.
  • Disco externo – tamaño suficiente para hacer backup a tus máquinas.
  • Con el sistema operativo instalado en el Raspberry necesitamos tener instalado los paquetes Samba y Avahi de la siguiente manera:

[email protected]:~ $ 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.

Preparando el Almacenamiento

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:

[email protected]:~ $ 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:

[email protected]:~ $ 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.

Montamos el Disco al sistema

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:

[email protected]:~ $ 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:

[email protected]:~ $ 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:

  • sync: todas las escrituras en el disco deben hacerse sincrónicamente.
  • noexec: no permite la ejecución directa de ningún binario en el sistema de archivos montado, ya que solo se utilizará para el almacenamiento de copia de seguridad.
  • nodev: no interpreta caracteres ni bloquea dispositivos especiales en el sistema de archivos.
  • noatime: no almacena tiempos de acceso en este sistema de archivos.
  • nodirtime: no almacena tiempos de acceso al directorio en este sistema de archivos.
  • 0: ignora este sistema de archivos cuando lo use dump
  • 0: no verifica el 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:

[email protected]:~ $ 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:

[email protected]:~ $ sudo adduser pontegeek

Ahora creamos una carpeta para nuestros backups y le damos permiso al usuario:

[email protected]:~ $ sudo mkdir /media/tm/backups/

[email protected]:~ $ 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:

[email protected]:~ $ sudo apt install hdparm -y
[email protected]:~ $ 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:

[email protected]:~ $ sudo vi /etc/hdparm.conf
/dev/disk/by-uuid/2ff201c1-4ee5-49fa-a095-31962bd97017b {
spindown_time = 120
}

Configurando Samba

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:

[email protected]:~ $ 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:

[email protected]:~ $ sudo testparm -s
[email protected]:~ $ 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).

Raspberry Pi Time Machine

Opcional – configurar Avahi

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:

[email protected]:~ $ 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!