Índice:

2 Raspberry Pis para RAID remoto fácil e barato: 19 etapas
2 Raspberry Pis para RAID remoto fácil e barato: 19 etapas

Vídeo: 2 Raspberry Pis para RAID remoto fácil e barato: 19 etapas

Vídeo: 2 Raspberry Pis para RAID remoto fácil e barato: 19 etapas
Vídeo: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Novembro
Anonim
2 Raspberry Pis para RAID remoto fácil e barato
2 Raspberry Pis para RAID remoto fácil e barato
2 Raspberry Pis para RAID remoto fácil e barato
2 Raspberry Pis para RAID remoto fácil e barato

Propósito

  1. No caso de um incidente em casa, quero poder recuperar meus principais documentos digitais (fotos, documentos de identidade, etc.) e, opcionalmente, compartilhá-los.
  2. Quero compartilhar esta solução com outra pessoa (alguém em quem confio, pais ou amigo)
  3. Não quero depender de uma nuvem pública (assinatura, taxas, GTC em evolução, etc)

Princípio

  1. Crie 2 máquinas de armazenamento idênticas, coloque-as em 2 locais diferentes (por exemplo, 2 casas).
  2. Atribua um espaço de armazenamento dedicado a cada local em cada máquina.
  3. Sincronize regularmente os 2 espaços de armazenamento.

Suprimentos

Hardware

Cada máquina tem:

  • 1x Raspberry Pi 4 B 1 GB
  • 1 caixa para Raspberry Pi 4
  • 1x fonte de alimentação USB C 5V 3A
  • 1x cartão SD Kingston SDC10 / 16GB
  • 1x NAS HDD 1 para WD Red Mobile
  • 1x HDD box BX-2525U3

Windows de software

  • balenaEtcher
  • Raspbian buster desktop completo
  • mobaxterm
  • Visualizador VNC (opcional)

Pacotes Raspbian

  • Rsync
  • samba

Etapa 1: prós e contras

Prós e Contras
Prós e Contras

Vantagens

  1. Esta solução é barata: não tenho taxas de assinatura e o hardware é acessível.
  2. Este "RAID remoto" é bastante fácil de fazer. Não preciso de material ou ferramenta adicional para fazer isso.
  3. O Raspberry Pi pode ser usado para aplicativos adicionais, como media center (kodi, …) ou domotic (jeedom, domoticz, …).
  4. Meus dados não estão disponíveis em uma nuvem pública que poderia ser alvo de pirataria massiva de dados.
  5. Usando um HDD de 1To, o consumo elétrico médio é o mesmo que uma nuvem.
  6. O firewall do meu roteador e a criptografia SSH da minha conexão protegem as trocas de dados.

Desvantagens / melhorias

  1. Outra pessoa tem uma cópia dos meus documentos. No meu caso, essa pessoa é da minha família, então não me importo.
  2. Eu uso a conta "pi" padrão, com uma senha dedicada para ambas as máquinas. Eu poderia proteger o acesso um pouco mais usando uma conta específica separada em cada lado, em vez da conta "pi".
  3. Conto com meu provedor de serviços de Internet e criptografia SSH para a segurança da conexão entre as 2 casas. A pesquisa pode ser feita para melhorar o nível de segurança.
  4. Por enquanto, fiz apenas 2 partições por unidade. Uma terceira partição menor (~ 5Go) pode ser útil para outras atividades do Raspbian, para preservar o cartão µSD.

Etapa 2: preparar o SD: fazer upload do Raspbian

De um computador (Windows 10 no meu caso), siga o guia de instalação oficial (https://www.raspberrypi.org/downloads/raspbian/) para instalar o "Raspbian Buster com desktop".

Adicione um arquivo vazio chamado "ssh" no disco "/ boot /"

Adicione um arquivo chamado "wpa_supplicant.conf" no disco "/ boot /"

Abra wpa_supplicant.conf e digite o texto:

país = EUA

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

Salve e feche o arquivo.

Etapa 3: preparar o SD: personalizar o cartão

Prepare SD: personalize o cartão
Prepare SD: personalize o cartão

Adicione um arquivo vazio chamado "ssh" no disco "/ boot /"

Adicione um arquivo chamado "wpa_supplicant.conf" no disco "/ boot /"

Abra wpa_supplicant.conf e digite o texto:

país = EUA

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

Salve e feche o arquivo.

Etapa 4: prepare o Raspberry Pi

Insira seu cartão SD no Pi

Ligue o Raspberry Pi e escolha uma forma de abrir uma área de trabalho:

  1. Usando cabo HDMI, tela, teclado e mouse
  2. Usando o VNC do seu computador.

Para obter mais informações, visite

Etapa 5: Caminho 1: conectar-se ao Pi usando tela, teclado, mouse

Modo 1: conectar-se ao Pi usando tela, teclado, mouse
Modo 1: conectar-se ao Pi usando tela, teclado, mouse
Modo 1: conectar-se ao Pi usando tela, teclado, mouse
Modo 1: conectar-se ao Pi usando tela, teclado, mouse

Conecte a porta HDMI0 do Raspberry Pi a uma tela com um cabo micro-HDMI para HDMI

Conecte um teclado e mouse USB (ou um mini teclado sem fio como um "Rii Mini i8 Wireless")

Conecte a fonte de alimentação USB C e ligue o Raspberry Pi.

Raspbian deve começar na sua tela.

Assim que a área de trabalho aparecer, responda ao painel de configuração para finalizar a configuração do seu Pi.

Etapa 6: Caminho 2: conectar-se ao Pi usando VNC a partir do seu computador

Maneira 2: conectar-se ao Pi usando VNC em seu computador
Maneira 2: conectar-se ao Pi usando VNC em seu computador
Maneira 2: conectar-se ao Pi usando VNC em seu computador
Maneira 2: conectar-se ao Pi usando VNC em seu computador
Maneira 2: conectar-se ao Pi usando VNC em seu computador
Maneira 2: conectar-se ao Pi usando VNC em seu computador

Conecte o Raspberry Pi à sua rede Ethernet (por wi-fi ou com um cabo).

Em seu computador, abra Mobaxterm (ou putty), inicie uma nova conexão ssh (login pi, senha raspberry) e configure seu Pi:

ssh pi @ raspberry_ip

sudo raspi-config

  • na opção de interface / VNC: defina Sim
  • em Opções avançadas / Resolução: defina o modo DMT 82 1920x1080 60Hz 16: 9
  • em Opções avançadas / driver GL: defina a unidade de desktop G1 Legacy Original não GL

Salvar e sair do raspi-config

Reinicie o Pi:

sudo reboot

No seu computador, abra o VNC Viewer e conecte-se ao Pi usando o login pi, senha raspberry: a área de trabalho do Pi deve aparecer.

Responda ao painel de configuração para finalizar a configuração do seu Pi.

Depois de alterar a senha Pi, a conexão VNC pode fechar. Reinicie-o usando sua nova senha.

Etapa 7: Prepare o HDD

Prepare o HDD
Prepare o HDD
Prepare o HDD
Prepare o HDD
  1. Conecte o HDD ao seu computador.
  2. Abra o gerenciador de partição do Windows, selecione seu HDD e crie 2 partições NTFS (ou 3, se desejar um pequeno espaço livre para preservar o cartão µSD). Por exemplo, chamo as 2 partes de "loic" e "vincent"
  3. Conecte o HDD ao Pi: Raspbian deve montar automaticamente 2 discos na área de trabalho. As unidades estão vinculadas à pasta / media / pi / loic / e / media / pi / vincent /

Etapa 8: Configurar Rsync: Criar Script de Sincronização

Configurar Rsync: Criar Script de Sincronização
Configurar Rsync: Criar Script de Sincronização

abrir um prompt no desktop Pi

Em / home / pi /, crie um script:

mkdir / home / pi / scriptsnano / home / pi / scripts / SB_sync

digite o texto:

#! / bin / sh

######### A CONFIGURER ############# 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} _versante _ $ {machine_distante} Sincronização em curso: 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_locale} _vers _ $ {machine_distante} echo" Compte `whoami`"> $ {log_local} / 1. $ {machine_locale} _vers _ $ {machine_distante}. "--------- -Début: "` date + "% 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:" `date +"% 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 as linhas 3 a 7:

  • substitua "loic" e "vincent" pelo nome de suas unidades
  • port_distant: por enquanto, use 22 como porta remota. Na última etapa, você terá que substituí-lo por outro valor de sua escolha (por exemplo: 34567)

salvar o arquivo e sair.

Etapa 9: Configurar Rsync: Executar uma sincronização uma vez por dia

No prompt, abra o crontab:

sudo crontab -u pi -e

no final do arquivo, adicione um cron:

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

Neste cron, o script SB_sync será lançado todos os dias à 1h. Escolha a hora desejada, mas troque-a entre as 2 máquinas, para que as 2 sincronizações sejam realizadas uma após a outra.

Salve e feche o arquivo.

Etapa 10: preparar o Samba

Samba conecta um armazenamento Linux à rede Windows.

Abra um prompt e instale os pacotes:

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

Autorize a conta "pi" para acessar o Samba:

sudo smbpasswd -a pi

Salve o arquivo de configuração padrão do Samba:

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

Abra o arquivo:

sudo nano /etc/samba/smb.conf

E no final do arquivo, adicione estas linhas para configurar sua unidade para compartilhar:

[DOCUMENTOS LOIC]

comment = NAS de loic path = / media / pi / loic usuários válidos = @users force group = users criar máscara = 0660 máscara de diretório = 0775 somente leitura = não navegável = sim público = sim

Salve o arquivo e saia.

Etapa 11: [Opcional] Samba: configure o acesso de leitura à unidade de rede Vincent

Abra o arquivo de configuração do Samba:

sudo nano /etc/samba/smb.conf

E no final do arquivo, adicione estas linhas para configurar a outra unidade que deseja acessar:

[DOCUMENTOS VINCENTES]

comentário = caminho de backup de vincent = / media / pi / vincent usuários válidos = @users force grupo = usuários criar máscara = 0660 máscara de diretório = 0775 somente leitura = sim navegável = sim público = sim

Salve o arquivo e saia.

Etapa 12: [opcional] Samba: acesso ao registro

Abra o arquivo de configuração do Samba:

sudo nano /etc/samba/smb.conf

E no final do arquivo, adicione estas linhas para acessar do Windows ao status de sincronização:

[LOG SYNCHRO] comment = "logs de sincronização entre máquinas"

caminho = / home / pi / SB_sync_logs / usuários válidos = @users force grupo = usuários criar máscara = 0660 máscara de diretório = 0771 somente leitura = sim navegável = sim público = sim

Salve o arquivo e saia.

Etapa 13: [opcional] Samba: ocultar pasta inútil "/ home / pi"

Abra o arquivo de configuração do Samba:

sudo nano /etc/samba/smb.conf

No arquivo, encontre as linhas a seguir e adicione ";" no início para comentá-lo:

; [casas]

; comentário = Diretórios Home; navegável = não; somente leitura = sim; criar máscara = 0700; máscara de diretório = 0700; usuários válidos =% S

Salve o arquivo e saia.

Etapa 14: Acesso à unidade de rede do Windows

Acesso à unidade de rede a partir do Windows
Acesso à unidade de rede a partir do Windows

No computador Windows, abra um explorador.

Clique em "Rede" e atualize a janela.

Um computador com o nome do seu Rapberry Pi aparecerá.

Abra-o usando a conta "pi" e sua senha.

Você deve ver as pastas adicionadas anteriormente no arquivo de configuração do Samba.

Etapa 15: Prepare a 2ª máquina

Sua 1ª máquina está preparada.

Repita os passos anteriores para a 2ª máquina, substituindo (por exemplo) "loic" por "vincent".

Assim que as 2 máquinas estiverem preparadas, você precisará trocar a chave ssh para autorizar o acesso entre elas, consulte a próxima etapa.

Etapa 16: Criar SSH entre máquina local e remota

Para simplificar o compartilhamento da chave SSH, cada Raspberry Pi deve ser conectado à mesma rede Ethernet.

Em cada Raspberry Pi, abra um prompt na área de trabalho do Pi e digite:

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

ssh-copy-id pi @ IP_of_other_raspberry

Etapa 17: Teste a Sincronização

Teste o Synchro
Teste o Synchro
Teste o Synchro
Teste o Synchro
Teste o Synchro
Teste o Synchro

Suas 2 máquinas estão prontas.

Você pode testar a sincronização no seu computador Windows:

  1. adicione um arquivo em sua unidade de rede local (ou seja, / Rpi4-loic / documents loic / test / test.txt),
  2. execute o script em seu desktop Pi local (execute SB_sync em / home / pi / scripts)
  3. verifique se o seu arquivo aparece na unidade de rede de backup (ou seja, / Rpi4-vincent / documents loic / test / test.txt).

Você deve ser capaz de ler e gravar arquivos em / Rpi4-loic / documents loic / test \, mas apenas ler arquivos em / Rpi4-vincent / documents loic / test \.

O próximo e último passo é mover a máquina "remota" dentro de uma rede de outro local, e configurar uma conexão entre os 2 roteadores através da internet.

Etapa 18: Configurar Rotas de Internet

No meu caso, para a máquina local de casa, subscrevo um acesso à Internet que inclui um router e um IP fixo.

Para a máquina remota, o provedor de serviços de Internet é o mesmo, então a configuração é mais fácil e não preciso de DNS.

Em minha casa:

  • No meu roteador, crio uma rota de porta de "remote_internet_fixed_IP" em "port_34567" para "my_raspberry_IP" na porta "22"
  • No meu raspberry, em / home / pi / scripts / SB_sync, substituo o valor "port_distant" "22" por "port_34567"

No lugar remoto:

  • No roteador, crio uma rota de porta de "my_internet_fixed_IP" em "port_34567" para "my_raspberry_IP" na porta "22"
  • No raspberry remoto, em / home / pi / scripts / SB_sync, substituo o valor "port_distant" "22" por "port_34567"

Para sua aplicação:

  • Você deve substituir os IPs e a porta_34567 por conta própria.
  • No caso de IP de Internet dinâmico, você deve se inscrever em um DNS.

Com a ajuda do proprietário do controle remoto da framboesa, repita o teste da etapa anterior.

Finalizado!

Etapa 19: Bibliografia

Instale Raspbian no cartão µSD

Personalize o cartão µSD após a formatação (SSH e WiFi)

Usando seu Raspberry Pi

Raspberry Pi Sync com rysnc por feralhosting

Porta SSH específica para Rsync

Instale e use o Samba

Recomendado: