Raspberry Pi 3 como NAS Server
O objetivo deste post é compartilhar com vocês uma solução que pra mim foi bem bacana e resolveu muitos problemas de Backup em casa. A partir de um Raspberry Pi 3 que eu tinha e um HD externo de 1Tb, criei meu storage para que seja o backup de TODOS os equipamentos aqui de casa (incluindo PC com Windows, MAC, Iphone, Ipad e celular Android).
Bom vamos lá: O que é um NAS? NAS basicamente é a abreviação de Network Attached Storage, ou simplesmente Armazenamento Anexado (preso) à Rede. Para os íntimos, um Servidor de Arquivos.
Mas qual a vantagem de ter um NAS com um Rasbperry Pi? Várias, dentre elas:
- Um Raspberry PI consome muito menos energia que um computador “convencional”
- Custo (eu paguei em torno de R$ 300,00 do Raspberry + R$ 35,00 do cartão SD de 32 Gb para o Sistema Operacional)
- Você consegue configurar não apenas um, mas vários HDs (mas supondo que você queira apenas 1, você simplesmente adquire HD que “cabe no seu bolso”)
- Versatilidade: aqui em casa temos um monte de dispositivos diferentes (com diferentes SO inclusive) e todos podem fazer uso do mesmo servidor
- Aprendizado (acho que essa é a parte mais divertida)
Bom, então bora pro tutorial:
1. Instalando o Raspberry PI OS no seu SD
Sem muito segredo, porque é bem bacana e simples. Você vai baixar o Raspberry PI Imager (software que faz essa gravação do SO para o seu SD Card) no seguinte link:
https://www.raspberrypi.org/software/
Vá até a Opção Install Raspberry Pi OS using Raspberry Pi Imager (Esta tela que você vê) e baixe a versão do Imager compatível com seu SO
Depois é só rodar, selecionar a opção da Imagem do Raspberry PI Os (antigo Raspbian), indicar o drive do seu SD e clicar em WRITE.
2. Configuração Básica do Raspberry PI
Para este primeiro momento, você vai precisar ter seu Raspberry PI conectado a um teclado, mouse e monitor (não vai ter muito jeito), pois você precisará habilitar o SSH para acesso remoto. Então vamos lá à sequência de passos para vocês não se perderem.
Passo 1: Atualizar a lista de pacotes para baixar aplicativos (vamos precisar deles)
sudo apt-get update
Passo 2: Atualizar os aplicativos instalados no sistema (é recomendável mas vai demorar um tempinho)
sudo apt-get upgrade
Passo 3: Vamos habilitar o SSH. Para isso precisamos do raspi-config
sudo raspi-config
Vou te passar a sequência de telas que você vai habilitar (perceba as opções selecionadas no menu)
Tela 1: Selecione a Opção “1 System Options”
Tela 2: Interface Options
Tela 3: P2 SSH
Tela 4: Confirmar a habilitação do SSH (Responda SIM ou YES)
Tela 5: Confirmação
Pronto! SSH Habilitado! Agora podemos fazer acesso remoto, certo? Mas qual IP da máquina? Vamos deixar um IP fixo?
Isso é relativamente simples: basta editar o seguinte arquivo
/etc/dhcpcd.conf
Se quiser usar o editor Nano (que já vem com o Raspberry) manda bala
sudo nano /etc/dhcpcd.conf
e inclua as seguintes linhas (geralmente no final do arquivo):
static ip_address=<IP LOCAL DENTRO DA SUA SUBREDE> static routers=<ENDEREÇO IP DO ROTEADOR> static domain_name_servers=<ENDEREÇO IP DO ROTEADOR>
Para que isso tenha efeito, precisamos “reiniciar” a nossa interface de rede
sudo ifconfig eth0 down sudo ifconfig eth0 up
Agora, nosso Raspberry está apto a ter seu endereço IP fixo e também acesso SSH. Toda a configuração a partir de agora pode ser feita de outro computador (o que facilita muito a vida).
3. Montando HD Externo automaticamente
Este passo é extremamente interessante para entendermos que, quando reiniciamos nosso Raspberry (seja porque a energia acabou e voltou ou mesmo porque desligamos e religamos voluntariamente), o HD Externo (que efetivamente vai ser seu lugar de armazenamento) seja mapeado. Vamos aos passos:
- Descobrindo as informações do disco externo, com o seguinte comando:
sudo lsblk -o UUID,NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL,MODEL
Aqui serão mostradas as informações de todas as partições encontradas no seu sistema. Veja a foto
No meu caso, o HD externo está em /dev/sda1 e tem um UUID com um valor Hexadecimal de 16 dígitos (anote este número) e foi montado no seguinte diretório: /media/pi/Elements. Essa é uma configuração padrão quando o Raspberry reconhece seu HD.
Supondo que eu queira montar meu HD externo em /mnt/storage automaticamente. Vou editar o arquivo /etc/fstab e colocar a seguinte linha:
UUID=<UUID anotado> /mnt/storage ntfs defaults,auto,users,rw,nofail 0 0
Legal! Agora quando nosso Raspberry for reiniciado (e sugiro reiniciá-lo com o comando sudo reboot) seu HD será mapeado (montado) na pasta /mnt/storage
4. Instalando Samba
Aqui é o ponto que vamos instalar nosso serviço para disponibilizar os arquivos para a rede. Bora instalar o samba
sudo apt-get install samba samba-common-bin
Durante a instalação, pode ser que o Samba solicite uma alteração nas configurações de WINS. Por padrão eu sempre respondo “Não”, pois podemos fazer isso manualmente depois.
Agora precisamos configurar a pasta que será compartilhada na rede. Bora modificar o arquivo /etc/samba/smb.conf. No final dele vamos colocar as seguintes linhas:
[Raspberry PI NAS Server] comment = "Raspberry PI Nas Server" path = /mnt/storage browseable = yes writeable = yes read only = no create mask = 0777 directory mask = 0777 public = no
Agora só precisamos tornar ativo o serviço smbd para o sistema operacional
sudo systemctl start smbd
Se você quiser saber se o sistema está funcionando, execute o seguinte comando
sudo systemctl status smbd
E você verá algo parecido com isso (verifique se o Active está destacado)
Ok, com isso o Samba está instalado e em uso.
Agora precisamos habilitar o usuário PI (que é o usuário padrão do Raspberry) para acessar esta pasta remotamente
sudo smbpasswd -a pi
Basta apenas atribuir a senha desejada. Pronto! Tudo correto.
5. Configurando o Cliente Windows
Basta ir ao seu Windows Explorer e digitar o seguinte na barra de endereços
\\<IP_do_raspbery>
Automaticamente já aparecerá a pasta compartilhada e configurada no smb.conf
Clique com o botão direito e vá em “Mapear Unidade de Rede”, como na figura abaixo
Se tudo estiver Ok, aparecerá esta janela:
Ao pedir usuário e senha, digite o usuário pi e a senha que foi atribuída no comando smbpasswd