Tabla de contenido:

2 Raspberry Pis para RAID remoto fácil y económico: 19 pasos
2 Raspberry Pis para RAID remoto fácil y económico: 19 pasos

Video: 2 Raspberry Pis para RAID remoto fácil y económico: 19 pasos

Video: 2 Raspberry Pis para RAID remoto fácil y económico: 19 pasos
Video: Ahora más POTENTE la Raspberry Pi Zero 2 W sigue dando que hablar y la ponemos a prueba 2024, Mes de julio
Anonim
2 Raspberry Pis para RAID remoto fácil y económico
2 Raspberry Pis para RAID remoto fácil y económico
2 Raspberry Pis para RAID remoto fácil y económico
2 Raspberry Pis para RAID remoto fácil y económico

Objetivo

  1. En caso de incidencia en casa, quiero poder recuperar mis principales documentos digitales (fotografías, documentos de identidad, etc.) y, opcionalmente, compartirlos.
  2. Quiero compartir esta solución con otra persona (alguien en quien confíe, mis padres o un amigo).
  3. No quiero depender de una nube pública (suscripción, tarifas, GTC en evolución, etc.)

Principio

  1. Cree 2 máquinas de almacenamiento idénticas, colóquelas en 2 ubicaciones diferentes (por ejemplo, 2 casas).
  2. Asigne un espacio de almacenamiento dedicado a cada ubicación en cada máquina.
  3. Sincronice regularmente los 2 espacios de almacenamiento.

Suministros

Hardware

Cada máquina tiene:

  • 1x Raspberry Pi 4 B 1GB
  • 1x caja para Raspberry Pi 4
  • 1x fuente de alimentación USB C 5V 3A
  • 1x tarjeta SD Kingston SDC10 / 16GB
  • 1x NAS HDD 1 a WD Red Mobile
  • 1x caja de disco duro BX-2525U3

Software de Windows

  • balenaEtcher
  • Raspbian buster escritorio completo
  • mobaxterm
  • Visor VNC (opcional)

Paquetes Raspbian

  • Rsync
  • samba

Paso 1: Pros y contras

Pros y contras
Pros y contras

Ventajas

  1. Esta solución es barata: no tengo cuotas de suscripción y el hardware es asequible.
  2. Este "RAID remoto" es bastante fácil de hacer. No necesito material ni herramientas adicionales para hacerlo.
  3. La Raspberry Pi se puede utilizar para aplicaciones adicionales como centro de medios (kodi,…) o domótica (jeedom, domoticz,…).
  4. Mis datos no están disponibles en una nube pública que podría ser un objetivo de piratería masiva de datos.
  5. Usando un disco duro de 1To, el consumo eléctrico promedio es el mismo que el de una nube.
  6. El firewall de mi enrutador y el cifrado SSH de mi conexión aseguran los intercambios de datos.

Desventajas / mejoras

  1. Alguien más tiene una copia de mis documentos. En mi caso, esta persona es de mi familia, así que no me importa.
  2. Utilizo la cuenta "pi" predeterminada, con una contraseña dedicada para ambas máquinas. Podría asegurar el acceso un poco más usando una cuenta específica separada en cada lado en lugar de la cuenta "pi".
  3. Confío en mi proveedor de servicios de Internet y en el cifrado SSH para la seguridad de la conexión entre las 2 casas. Se pueden realizar investigaciones para mejorar el nivel de seguridad.
  4. Por ahora, solo he creado 2 particiones por unidad. Una tercera partición más pequeña (~ 5Go) podría ser útil para otras actividades de Raspbian, para preservar la tarjeta µSD.

Paso 2: Preparar SD: Cargar Raspbian

Desde una computadora (Windows 10 en mi caso), siga la guía de instalación oficial (https://www.raspberrypi.org/downloads/raspbian/) para instalar "Raspbian Buster con escritorio".

Agregue un archivo vacío llamado "ssh" en el disco "/ boot /"

Agregue un archivo llamado "wpa_supplicant.conf" en el disco "/ boot /"

Abra wpa_supplicant.conf e ingrese el texto:

país = EE. UU.

ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev update_config = 1 network = {ssid = "MyWiFiNetwork" psk = "aVeryStrongPassword" key_mgmt = WPA-PSK}

Guarde y cierre el archivo.

Paso 3: Prepare la tarjeta SD: personalice la tarjeta

Preparar SD: personalizar la tarjeta
Preparar SD: personalizar la tarjeta

Agregue un archivo vacío llamado "ssh" en el disco "/ boot /"

Agregue un archivo llamado "wpa_supplicant.conf" en el disco "/ boot /"

Abra wpa_supplicant.conf e ingrese el texto:

país = EE. UU.

ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev update_config = 1 network = {ssid = "MyWiFiNetwork" psk = "aVeryStrongPassword" key_mgmt = WPA-PSK}

Guarde y cierre el archivo.

Paso 4: prepara la Raspberry Pi

Inserta tu tarjeta SD en el Pi

Encienda la Raspberry Pi, elija una forma de abrir un escritorio:

  1. Usando cable hdmi, pantalla, teclado y mouse
  2. Usando VNC desde su computadora.

Para obtener más información, visite

Paso 5: Forma 1: Conéctese al Pi usando la pantalla, el teclado y el mouse

Forma 1: conéctese al Pi usando la pantalla, el teclado y el mouse
Forma 1: conéctese al Pi usando la pantalla, el teclado y el mouse
Forma 1: conéctese al Pi usando la pantalla, el teclado y el mouse
Forma 1: conéctese al Pi usando la pantalla, el teclado y el mouse

Conecte el puerto HDMI0 de la Raspberry Pi a una pantalla con un cable micro-hdmi a hdmi

Conecte un teclado y un mouse USB (o un mini teclado inalámbrico como un "Rii Mini i8 Wireless")

Conecte la fuente de alimentación USB C y encienda la Raspberry Pi.

Raspbian se iniciará en su pantalla.

Una vez que aparezca el escritorio, responde al panel de configuración para finalizar la configuración de tu Pi.

Paso 6: Forma 2: Conéctese al Pi usando VNC desde su computadora

Forma 2: conéctese al Pi usando VNC desde su computadora
Forma 2: conéctese al Pi usando VNC desde su computadora
Forma 2: conéctese al Pi usando VNC desde su computadora
Forma 2: conéctese al Pi usando VNC desde su computadora
Forma 2: conéctese al Pi usando VNC desde su computadora
Forma 2: conéctese al Pi usando VNC desde su computadora

Conecta la Raspberry Pi a tu red ethernet (por wifi o con un cable).

Desde su computadora, abra Mobaxterm (o putty), inicie una nueva conexión ssh (login pi, contraseña raspberry) y configure su Pi:

ssh pi @ raspberry_ip

sudo raspi-config

  • en Opción de interfaz / VNC: establecer Sí
  • en Opciones avanzadas / Resolución: establecer Modo DMT 82 1920x1080 60Hz 16: 9
  • en Opciones avanzadas / controlador GL: configure la unidad de escritorio G1 Legacy Original no GL

Guarde y salga de raspi-config

Reinicie el Pi:

sudo reiniciar

Desde su computadora, abra VNC Viewer y conéctese al Pi usando el pi de inicio de sesión, contraseña raspberry: debería aparecer el escritorio de Pi.

Responde al panel de configuración para finalizar la configuración de tu Pi.

Una vez que haya cambiado la contraseña de Pi, la conexión VNC podría cerrarse. Reinícielo con su nueva contraseña.

Paso 7: prepare el disco duro

Prepare el disco duro
Prepare el disco duro
Prepare el disco duro
Prepare el disco duro
  1. Conecte el disco duro a su computadora.
  2. Abra el administrador de particiones de Windows, seleccione su disco duro y cree 2 particiones NTFS (o 3, si desea un pequeño espacio libre para conservar la tarjeta µSD). Por ejemplo, nombro las 2 partes "loic" y "vincent"
  3. Conecte el disco duro al Pi: Raspbian debería montar automáticamente 2 discos en el escritorio. Las unidades están vinculadas a la carpeta / media / pi / loic / y / media / pi / vincent /

Paso 8: Configurar Rsync: Crear secuencia de comandos Synchro

Configurar Rsync: crear secuencia de comandos de sincronización
Configurar Rsync: crear secuencia de comandos de sincronización

abre un mensaje en el escritorio de Pi

En / home / pi /, cree un script:

mkdir / inicio / pi / scriptsnano / inicio / pi / scripts / SB_sync

ingrese el texto:

#! / bin / sh

######## UN CONFIGURADOR ########### ip_distante = "192.168.0.19" port_distant = "xxxxx" media_local = "/ media / pi / loic" media_distant = "pi @ $ { ip_distante}: / media / pi / loic "machine_locale =" RPi4_loic "machine_distante =" RPi4_vincent "############################# ## log_local = "/ home / pi / SB_sync_logs" log_distant = "pi @ $ {ip_distante}: / home / pi / SB_sync_logs" currentDate = `date +"% Y-% m-% d% T "` mkdir -p / home / pi / SB_sync_logs #synchro de $ {machine_locale} $ {media_local} / vers $ {machine_distante} $ {media_distant} / echo $ currentDate> $ {log_local} /0.synchro_en_cours _ $ {machine_locale} _vers _ $ {machine_distante} echo " Synchronization en cours: de $ {machine_locale} $ {media_local} / vers $ {machine_distante} $ {media_distant} / ">> $ {log_local} /0.synchro_en_cours _ $ {machine_locale} _vers _ $ {machine_distante} $ {machine_distante} $ { media_distant} / ">> $ {log_distant} /0.synchro_en_cours _ $ {machine_distante} _vers _ $ {machine_distante} echo" Compte `whoami`"> $ {log_local} / 1. $ {machine_locale} _vers _ $ {machine_distante}.log echo "--------- -Début: "` fecha + "% Y-% m-% d% T" `" ---------- ">> $ {log_local} / 1. $ {Machine_locale} _vers _ $ {machine_distante}.log / usr / bin / rsync -avhPS --chmod = a + rwx --delete -e "ssh -p $ {port_distant}" $ {media_local} / $ {media_distant} / 2> & 1 >> $ {log_local} /1.${machine_locale}_vers_${machine_distante}.log

echo "---------- Fin:" `fecha +"% Y-% m-% d% T "` "----------" >> $ {log_local} / 1. $ {Machine_locale} _vers _ $ {machine_distante}.log

rm $ {log_local} /0.synchro_en_cours _ $ {machine_locale} _vers _ $ {machine_distante}

Configure las líneas 3 a 7:

  • reemplace "loic" y "vincent" por el nombre de su unidad
  • port_distant: por ahora, use 22 como puerto remoto. En el último paso, deberá reemplazarlo por otro valor de su elección (por ejemplo: 34567)

guardar archivo y salir.

Paso 9: configurar Rsync: realizar una sincronización una vez al día

En el indicador, abra crontab:

sudo crontab -u pi -e

al final del archivo, agregue un cron:

0 1 * * * / usr / bin / flock -xn /tmp/flocktmp.lock -c "/ home / pi / scripts / SB_sync"

En este cron, el script SB_sync se lanzará todos los días a la 1:00 AM. Elija la hora que desee, pero cámbiela entre las 2 máquinas, para que las 2 sincronizaciones se realicen una tras otra.

Guarde y cierre el archivo.

Paso 10: Prepara Samba

Samba conecta un almacenamiento de Linux a la red de Windows.

Abra un indicador e instale los paquetes:

sudo apt-get install samba samba-common-bin -y

Autoriza la cuenta "pi" para acceder a Samba:

sudo smbpasswd -a pi

Guarde el archivo de configuración predeterminado de Samba:

cp /etc/samba/smb.conf /etc/samba/smb.old

Abre el archivo:

sudo nano /etc/samba/smb.conf

Y al final del archivo, agregue estas líneas para configurar su unidad para compartir:

[DOCUMENTOS LOIC]

comentario = NAS de ruta loic = / media / pi / loic usuarios válidos = @users force group = usuarios crean máscara = 0660 máscara de directorio = 0775 solo lectura = no navegable = sí público = sí

Guarde el archivo y salga.

Paso 11: [Opcional] Samba: Configure el acceso de lectura a la unidad de red Vincent

Abra el archivo de configuración de Samba:

sudo nano /etc/samba/smb.conf

Y al final del archivo, agregue estas líneas para configurar la otra unidad a la que desea acceder:

[DOCUMENTOS VINCENT]

comentario = copia de seguridad de vincent ruta = / media / pi / vincent usuarios válidos = @users force group = los usuarios crean máscara = 0660 máscara de directorio = 0775 solo lectura = sí navegable = sí público = sí

Guarde el archivo y salga.

Paso 12: [Opcional] Samba: Acceso al registro

Abra el archivo de configuración de Samba:

sudo nano /etc/samba/smb.conf

Y al final del archivo, agregue estas líneas para acceder desde Windows al estado de sincronización:

[LOG SYNCHRO] comentario = "registros de sincronización entre máquinas"

ruta = / home / pi / SB_sync_logs / usuarios válidos = @users force group = los usuarios crean máscara = 0660 máscara de directorio = 0771 solo lectura = sí navegable = sí público = sí

Guarde el archivo y salga.

Paso 13: [Opcional] Samba: Ocultar carpeta inútil "/ home / pi"

Abra el archivo de configuración de Samba:

sudo nano /etc/samba/smb.conf

En el archivo, busque las siguientes líneas y agregue ";" al principio para comentarlo:

; [hogares]

; comentario = Directorios de inicio; navegable = no; solo lectura = sí; crear máscara = 0700; máscara de directorio = 0700; usuarios válidos =% S

Guarde el archivo y salga.

Paso 14: acceso a la unidad de red desde Windows

Acceso a la unidad de red desde Windows
Acceso a la unidad de red desde Windows

Desde una computadora con Windows, abra un explorador.

Haga clic en "Red" y actualice la ventana.

Aparecerá una computadora con el nombre de su Rapberry Pi.

Ábralo usando la cuenta "pi" y su contraseña.

Debería ver las carpetas agregadas previamente en el archivo de configuración de Samba.

Paso 15: Prepare la segunda máquina

Su primera máquina está preparada.

Repita los pasos anteriores para la segunda máquina, reemplazando (por ejemplo) "loic" por "vincent".

Una vez que las 2 máquinas estén preparadas, deberá intercambiar la clave ssh para autorizar el acceso entre ellas, consulte el siguiente paso.

Paso 16: Cree SSH entre la máquina local y remota

Para simplificar el uso compartido de la clave SSH, cada Raspberry Pi se conectará a la misma red Ethernet.

En cada Raspberry Pi, abra un mensaje en el escritorio de Pi e ingrese:

ssh-keygen -q -t rsa -b 2048 -N ''

ssh-copy-id pi @ IP_of_other_raspberry

Paso 17: Pruebe el Synchro

Prueba el Synchro
Prueba el Synchro
Prueba el Synchro
Prueba el Synchro
Prueba el Synchro
Prueba el Synchro

Tus 2 máquinas están listas.

Puede probar la sincronización en su computadora con Windows:

  1. agregue un archivo en su unidad de red local (es decir, / Rpi4-loic / documents loic / test / test.txt),
  2. ejecute el script en su escritorio Pi local (ejecute SB_sync en / home / pi / scripts)
  3. verifique que su archivo aparezca en la unidad de red de respaldo (es decir, / Rpi4-vincent / documents loic / test / test.txt).

Debería poder leer y escribir archivos en / Rpi4-loic / documents loic / test \, pero solo leer archivos en / Rpi4-vincent / documents loic / test \.

El siguiente y último paso es mover la máquina "remota" dentro de una red de otro lugar y configurar una conexión entre los 2 enrutadores a través de Internet.

Paso 18: configurar rutas de Internet

En mi caso, para la máquina local en casa, me suscribo a un acceso a Internet que incluye un enrutador y una IP fija.

Para la máquina remota, el proveedor de servicios de Internet es el mismo, por lo que la configuración es más fácil y no necesito DNS.

En mi casa:

  • En mi enrutador, creo una ruta de puerto desde "remote_internet_fixed_IP" en "port_34567" a "my_raspberry_IP" en el puerto "22"
  • En mi frambuesa, en / home / pi / scripts / SB_sync, reemplazo el valor "port_distant" "22" por "port_34567"

En el lugar remoto:

  • En el enrutador, creo una ruta de puerto desde "my_internet_fixed_IP" en "port_34567" a "my_raspberry_IP" en el puerto "22"
  • En la frambuesa remota, en / home / pi / scripts / SB_sync, reemplazo el valor "port_distant" "22" por "port_34567"

Para su aplicación:

  • Debe reemplazar las IP y el puerto_34567 por los suyos.
  • En el caso de una IP de Internet dinámica, debe suscribirse a un DNS.

Con la ayuda del propietario de la frambuesa remota, repita la prueba del paso anterior.

¡Finalizado!

Paso 19: Bibliografía

Instale Raspbian en la tarjeta µSD

Personalice la tarjeta µSD después de formatear (SSH y WiFi)

Usando su Raspberry Pi

Sincronización de Raspberry Pi con rysnc por feralhosting

Puerto SSH específico para Rsync

Instalar y usar Samba

Recomendado: