Sadržaj:

2 Malina Pis za lak i jeftin daljinski RAID: 19 koraka
2 Malina Pis za lak i jeftin daljinski RAID: 19 koraka

Video: 2 Malina Pis za lak i jeftin daljinski RAID: 19 koraka

Video: 2 Malina Pis za lak i jeftin daljinski RAID: 19 koraka
Video: Часть 1 - Аудиокнига Герберта Уэллса «Анна Вероника» (гл. 01–03) 2024, Juli
Anonim
2 Raspberry Pis za lak i jeftin daljinski RAID
2 Raspberry Pis za lak i jeftin daljinski RAID
2 Raspberry Pis za lak i jeftin daljinski RAID
2 Raspberry Pis za lak i jeftin daljinski RAID

Svrha

  1. U slučaju incidenta kod kuće, želim moći oporaviti svoje glavne digitalne dokumente (slike, lične dokumente itd.), Te ih po želji podijeliti.
  2. Želim podijeliti ovo rješenje s nekim drugim (nekim kome vjerujem, roditeljima ili prijateljem)
  3. Ne želim ovisiti o javnom oblaku (pretplata, naknade, napredni GTC itd.)

Princip

  1. Napravite 2 identična stroja za skladištenje, postavite ih na 2 različite lokacije (na primjer, 2 kuće).
  2. Dodijelite namjenski prostor za skladištenje svakoj lokaciji na svakoj mašini.
  3. Redovno sinhronizujte 2 prostora za skladištenje.

Supplies

Hardver

Svaka mašina ima:

  • 1x Raspberry Pi 4 B 1GB
  • 1x kutija za Raspberry Pi 4
  • 1x napajanje USB C 5V 3A
  • 1x SD kartica Kingston SDC10/16GB
  • 1x NAS HDD 1To WD Red Mobile
  • 1x HDD kutija BX-2525U3

Softver Windows

  • balenaEtcher
  • Raspbian buster radna površina puna
  • mobaxterm
  • VNC preglednik (opcionalno)

Paketi Raspbian

  • Rsync
  • samba

Korak 1: Za i protiv

Prednosti i nedostaci
Prednosti i nedostaci

Prednosti

  1. Ovo rješenje je jeftino: nemam pretplatu, a hardver je dostupan.
  2. Ovaj "udaljeni RAID" prilično je jednostavan za napraviti. Za to mi nije potreban dodatni materijal ili alat.
  3. Raspberry Pi se može koristiti za dodatne aplikacije poput media centra (kodi, …) ili domotic (jeedom, domoticz, …).
  4. Moji podaci nisu dostupni na javnom oblaku koji bi mogao biti meta masovnog piratstva podataka.
  5. Koristeći HDD od 1To, prosječna potrošnja električne energije je ista kao i oblak.
  6. Vatrozid mog usmjerivača i SSH šifriranje moje veze osiguravaju razmjenu podataka.

Nedostaci/poboljšanja

  1. Neko drugi ima kopiju mojih dokumenata. U mom slučaju, ova osoba je iz moje porodice pa me nije briga.
  2. Koristim zadani "pi" račun sa namjenskom lozinkom za oba stroja. Mogao bih malo više osigurati pristup korištenjem zasebnog posebnog računa sa svake strane, a ne "pi" računa.
  3. Za sigurnost veze između dvije kuće oslanjam se na svog davatelja internetskih usluga i SSH šifriranje. Može se provesti istraživanje kako bi se poboljšao nivo sigurnosti.
  4. Za sada sam napravio samo 2 particije po pogonu. Manja 3. particija (~ 5Go) mogla bi biti korisna za druge Raspbian aktivnosti, za očuvanje µSD kartice.

Korak 2: Pripremite SD: Otpremite Raspbian

Sa računara (u mom slučaju Windows 10) slijedite službeni vodič za instalaciju (https://www.raspberrypi.org/downloads/raspbian/) da biste instalirali "Raspbian Buster sa radnom površinom".

Dodajte praznu datoteku pod nazivom "ssh" na "/boot/" disk

Dodajte datoteku pod nazivom "wpa_supplicant.conf" u "/boot/" disk

Otvorite wpa_supplicant.conf i unesite tekst:

zemlja = SAD

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

Sačuvajte i zatvorite datoteku.

Korak 3: Pripremite SD: Prilagodite karticu

Pripremite SD: Prilagodite karticu
Pripremite SD: Prilagodite karticu

Dodajte praznu datoteku pod nazivom "ssh" na "/boot/" disk

Dodajte datoteku pod nazivom "wpa_supplicant.conf" u "/boot/" disk

Otvorite wpa_supplicant.conf i unesite tekst:

zemlja = SAD

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

Sačuvajte i zatvorite datoteku.

Korak 4: Pripremite Raspberry Pi

Umetnite SD karticu u Pi

Uključite Raspberry Pi, odaberite način otvaranja radne površine:

  1. Korišćenjem hdmi kabla, ekrana, tastature i miša
  2. Korištenje VNC -a sa vašeg računara.

Za dodatne informacije posjetite

Korak 5: Način 1: Povežite se sa Pi pomoću ekrana, tastature, miša

Način 1: Povežite se sa Pi pomoću ekrana, tastature, miša
Način 1: Povežite se sa Pi pomoću ekrana, tastature, miša
Način 1: Povežite se sa Pi pomoću ekrana, tastature, miša
Način 1: Povežite se sa Pi pomoću ekrana, tastature, miša

Priključite Raspberry Pi port HDMI0 na ekran pomoću mikro-HDMI kabla za HDMI

Priključite USB tastaturu i miša (ili bežičnu mini tastaturu poput "Rii Mini i8 Wireless")

Priključite USB C napajanje i uključite Raspberry Pi.

Raspbian će početi na vašem ekranu.

Nakon što se pojavi radna površina, odgovorite na konfiguracijsku ploču da biste dovršili konfiguraciju svog Pi -a.

Korak 6: Način 2: Povežite se na Pi pomoću VNC -a sa svog računara

2. način: Povežite se na Pi pomoću VNC -a sa svog računara
2. način: Povežite se na Pi pomoću VNC -a sa svog računara
2. način: Povežite se na Pi pomoću VNC -a sa svog računara
2. način: Povežite se na Pi pomoću VNC -a sa svog računara
2. način: Povežite se na Pi pomoću VNC -a sa svog računara
2. način: Povežite se na Pi pomoću VNC -a sa svog računara

Povežite Raspberry Pi sa svojom ethernet mrežom (putem WiFi -a ili kablom).

Sa svog računara otvorite Mobaxterm (ili kit), pokrenite novu ssh vezu (prijava pi, lozinka malina) i konfigurirajte svoj Pi:

ssh pi@raspberry_ip

sudo raspi-config

  • u opciji Interfacing / VNC: postavite Yes
  • u Napredne opcije / Rezolucija: postavite DMT način 82 1920x1080 60Hz 16: 9
  • u Napredne opcije / GL upravljački program: postavite G1 nasljedni originalni GL-desktop desktop pogon

Spremite i izađite iz raspi-config

Ponovo pokrenite Pi:

sudo reboot

Sa svog računara otvorite VNC Viewer i povežite se sa Pi -om pomoću login pi, lozinke maline: Pi radna površina bi se trebala pojaviti.

Odgovorite na konfiguracijsku ploču da biste dovršili konfiguraciju svog Pi -a.

Nakon što promijenite Pi lozinku, VNC veza bi se mogla zatvoriti. Ponovo ga pokrenite koristeći novu lozinku.

Korak 7: Pripremite HDD

Pripremite HDD
Pripremite HDD
Pripremite HDD
Pripremite HDD
  1. Povežite HDD sa računarom.
  2. Otvorite Windows partition manager, odaberite svoj HDD i kreirajte 2 NTFS particije (ili 3, ako želite malo slobodnog prostora za očuvanje µSD kartice). Na primjer, dva dijela nazivam "loic" i "vincent"
  3. Priključite HDD na Pi: Raspbian bi trebao automatski montirati 2 diska na radnu površinu. Pogoni su povezani sa fasciklama/media/pi/loic/i/media/pi/vincent/

Korak 8: Konfigurirajte Rsync: Kreirajte sinkronu skriptu

Konfigurirajte Rsync: Kreirajte sinkronu skriptu
Konfigurirajte Rsync: Kreirajte sinkronu skriptu

otvorite upit na Pi radnoj površini

U/home/pi/, kreirajte skriptu:

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

unesite tekst:

#!/bin/sh

######### KONFIGURATOR ########### 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 = `datum+"%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 " Sinhronizacija 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_locale} _vers _ $ {machine_distante} echo" Compte `whoami`"> $ {log_local}/1. $ {machine_locale} _vers _ $ {machine_distante}.log echo "--------- -Debut: "` 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}

Konfigurirajte redove 3 do 7:

  • zamijenite "loic" i "vincent" imenom vašeg pogona
  • port_distant: za sada koristite 22 kao udaljeni port. U posljednjem koraku morat ćete ga zamijeniti drugom vrijednošću po vašem izboru (na primjer: 34567)

sačuvajte datoteku i izađite.

Korak 9: Konfigurirajte Rsync: Izvršite sinkronizaciju jednom dnevno

U promptu otvorite crontab:

sudo crontab -u pi -e

na kraju datoteke dodajte cron:

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

U ovom cron -u, skripta SB_sync bit će pokrenuta svaki dan u 1:00 ujutro. Odaberite željeni sat, ali ga promijenite između 2 stroja, tako da će se 2 sinkronizacije izvoditi jedna za drugom.

Sačuvajte i zatvorite datoteku.

Korak 10: Pripremite Sambu

Samba povezuje Linux skladište sa Windows mrežom.

Otvorite upit i instalirajte pakete:

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

Ovlastite račun "pi" za pristup Sambi:

sudo smbpasswd -a pi

Sačuvajte zadanu konfiguracijsku datoteku Sambe:

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

Otvorite datoteku:

sudo nano /etc/samba/smb.conf

I na kraju datoteke dodajte ove retke da biste konfigurirali pogon za dijeljenje:

[DOCUMENTS LOIC]

komentar = NAS de loic path =/media/pi/loic važeći korisnici = @users force group = korisnici kreiraju masku = 0660 mask direktorijuma = 0775 samo za čitanje = ne može se pregledavati = da javno = da

Sačuvajte datoteku i izađite.

Korak 11: [Opcionalno] Samba: Konfigurirajte pristup za čitanje mrežnom pogonu Vincent

Otvorite Samba konfiguracijsku datoteku:

sudo nano /etc/samba/smb.conf

I na kraju datoteke dodajte ove retke da biste konfigurirali drugi pogon kojem želite pristupiti:

[DOKUMENTI VINCENT]

komentar = backup de vincent path =/media/pi/vincent važeći korisnici = @users force group = korisnici kreiraju masku = 0660 mask direktorijuma = 0775 samo za čitanje = da pregledano = da javno = da

Sačuvajte datoteku i izađite.

Korak 12: [Opcionalno] Samba: Pristup zapisniku

Otvorite Samba konfiguracijsku datoteku:

sudo nano /etc/samba/smb.conf

I na kraju datoteke dodajte ove retke za pristup iz prozora u status sinkronizacije:

[LOG SYNCHRO] comment = "evidencija sinhronizovanih mašina"

put =/home/pi/SB_sync_logs/valid users = @users force group = users create mask = 0660 mask direktorija = 0771 samo za čitanje = yes browseable = yes public = yes

Sačuvajte datoteku i izađite.

Korak 13: [Opcionalno] Samba: Sakrij beskorisnu fasciklu "/home/pi"

Otvorite Samba konfiguracijsku datoteku:

sudo nano /etc/samba/smb.conf

U datoteci pronađite sljedeće redove i dodajte ";" na početku da to komentarišem:

; [domovi]

; komentar = Kućni direktorijumi; pregledno = ne; samo za čitanje = da; kreiraj masku = 0700; maska direktorija = 0700; važeći korisnici = %S

Sačuvajte datoteku i izađite.

Korak 14: Pristup mrežnom pogonu iz operativnog sistema Windows

Pristup mrežnom pogonu iz operativnog sistema Windows
Pristup mrežnom pogonu iz operativnog sistema Windows

Na Windows računaru otvorite istraživač.

Kliknite na "Mreža" i osvježite prozor.

Pojavit će se računar s imenom vašeg Rapberry Pi.

Otvorite ga koristeći račun "pi" i svoju lozinku.

Trebali biste vidjeti prethodno dodane mape u konfiguracijskoj datoteci Samba.

Korak 15: Pripremite drugu mašinu

Vaša prva mašina je pripremljena.

Ponovite prethodne korake za drugu mašinu, zamijenivši (na primjer) "loic" sa "vincent".

Nakon što 2 mašine budu pripremljene, morat ćete zamijeniti ssh ključ za autorizaciju pristupa između njih, pogledajte sljedeći korak.

Korak 16: Kreirajte SSH između lokalne i udaljene mašine

Radi pojednostavljenja dijeljenja SSH ključa, svaki Raspberry Pi bit će spojen na istu Ethernet mrežu.

Na svakom Raspberry Pi otvorite upit na Pi radnoj površini i unesite:

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

ssh-copy-id pi@IP_of_other_raspberry

Korak 17: Testirajte sinhronizaciju

Testirajte sinhronizaciju
Testirajte sinhronizaciju
Testirajte sinhronizaciju
Testirajte sinhronizaciju
Testirajte sinhronizaciju
Testirajte sinhronizaciju

Vaše 2 mašine su spremne.

Sinhronizaciju možete testirati na svom Windows računaru:

  1. dodajte datoteku na svoj lokalni mrežni pogon (tj. / Rpi4-loic / documents loic / test / test.txt),
  2. pokrenite skriptu na lokalnoj Pi radnoj površini (izvršite SB_sync u/home/pi/scripts)
  3. proverite da li se vaša datoteka nalazi na rezervnom mrežnom disku (tj. / Rpi4-vincent / documents loic / test / test.txt).

Trebali biste moći čitati i pisati datoteke u / Rpi4-loic / documents loic / test \, ali čitati samo datoteke u / Rpi4-vincent / documents loic / test \.

Sljedeći i posljednji korak je premještanje "udaljene" mašine unutar mreže drugog mjesta i konfiguriranje veze između 2 usmjerivača putem interneta.

Korak 18: Konfigurirajte internetske rute

U mom slučaju, za lokalnu mašinu kod kuće, pretplaćujem se na pristup internetu uključujući usmjerivač i fiksni IP.

Za udaljenu mašinu, davatelj internetskih usluga je isti, pa je konfiguracija lakša i ne treba mi DNS.

U mojoj kuci:

  • U svom usmjerivaču kreiram rutu porta od "remote_internet_fixed_IP" na "port_34567" do "my_raspberry_IP" na portu "22"
  • U svom malinu u/home/pi/scripts/SB_sync zamjenjujem vrijednost "port_distant" "22" sa "port_34567"

Na udaljenom mestu:

  • U usmjerivaču kreiram rutu porta od "my_internet_fixed_IP" na "port_34567" do "my_raspberry_IP" na portu "22"
  • U udaljenoj malini, u/home/pi/scripts/SB_sync, vrijednost "port_distant" "22" zamjenjujem sa "port_34567"

Za vašu aplikaciju:

  • Morate sami zamijeniti IP adrese i port_34567.
  • U slučaju dinamičke internetske IP adrese, morate se pretplatiti na DNS.

Uz pomoć vlasnika udaljene maline, ponovite test prethodnog koraka.

Gotovo!

Korak 19: Bibliografija

Instalirajte Raspbian na µSD karticu

Prilagodite µSD karticu nakon formatiranja (SSH i WiFi)

Korištenje vašeg Raspberry Pi

Raspberry Pi Sync sa rysnc feralhostingom

Određeni SSH port za Rsync

Instalirajte i koristite Sambu

Preporučuje se: