Talaan ng mga Nilalaman:

2 Raspberry Pis para sa Madali at Murang Remote RAID: 19 Mga Hakbang
2 Raspberry Pis para sa Madali at Murang Remote RAID: 19 Mga Hakbang

Video: 2 Raspberry Pis para sa Madali at Murang Remote RAID: 19 Mga Hakbang

Video: 2 Raspberry Pis para sa Madali at Murang Remote RAID: 19 Mga Hakbang
Video: Bury Your Backup Servers Underground ⚰️ 2024, Nobyembre
Anonim
2 Raspberry Pis para sa Madali at Murang Remote RAID
2 Raspberry Pis para sa Madali at Murang Remote RAID
2 Raspberry Pis para sa Madali at Murang Remote RAID
2 Raspberry Pis para sa Madali at Murang Remote RAID

Layunin

  1. Sa kaganapan ng isang insidente sa bahay, nais kong ma-recover ang aking pangunahing mga digital na dokumento (larawan, mga papeles ng pagkakakilanlan, atbp), at opsyonal na ibahagi ang mga ito.
  2. Nais kong ibahagi ang solusyon na ito sa ibang tao (isang taong pinagkakatiwalaan ko, magulang, o kaibigan)
  3. Ayokong umasa sa isang pampublikong ulap (subscription, bayarin, umuusbong na GTC, atbp)

Prinsipyo

  1. Lumikha ng 2 magkatulad na imbakan machine, ilagay ang mga ito sa 2 magkakaibang lokasyon (halimbawa, 2 bahay).
  2. Magtalaga ng isang nakalaang puwang ng imbakan sa bawat lokasyon sa bawat machine.
  3. Regular na pagsabayin ang 2 mga puwang sa pag-iimbak.

Mga gamit

Hardware

Ang bawat makina ay may:

  • 1x Raspberry Pi 4 B 1GB
  • 1x box para sa Raspberry Pi 4
  • 1x power supply USB C 5V 3A
  • 1x SD card Kingston SDC10 / 16GB
  • 1x NAS HDD 1Upang WD Red Mobile
  • 1x HDD box BX-2525U3

Software Windows

  • balenaEtcher
  • Puno ang desktop ng Raspbian buster
  • mobaxterm
  • VNC manonood (opsyonal)

Mga Pakete na Raspbian

  • Rsync
  • samba

Hakbang 1: Pro at Cons

Pro at Kahinaan
Pro at Kahinaan

Mga kalamangan

  1. Mura ang solusyon na ito: Wala akong bayarin sa subscription at ang hardware ay kaya.
  2. Ang "remote RAID" na ito ay lubos na madaling gawin. Hindi ko kailangan ng karagdagang materyal o tool upang magawa ito.
  3. Maaaring magamit ang Raspberry Pi para sa mga karagdagang application tulad ng media center (kodi,…), o domotic (jeomer, domoticz,…).
  4. Ang aking data ay hindi magagamit sa isang pampublikong ulap na maaaring maging isang target para sa napakalaking pag-pirata sa data.
  5. Paggamit ng isang HDD na 1To, ang average na pagkonsumo ng elektrisidad ay kapareho ng isang ulap.
  6. Ang firewall ng aking router at ang pag-encrypt ng SSH ng aking koneksyon ay nagsisiguro ng mga palitan ng data.

Mga disadvantages / pagpapabuti

  1. May ibang may kopya ng aking mga dokumento. Sa aking kaso, ang taong ito ay mula sa aking pamilya kaya wala akong pakialam.
  2. Gumagamit ako ng default na "pi" na account, na may isang nakatuong password para sa parehong makina. Maaari kong mai-secure ang pag-access ng kaunti pa sa pamamagitan ng paggamit ng isang hiwalay na tukoy na account sa bawat panig sa halip na ang "pi" account.
  3. Umaasa ako sa aking tagabigay ng serbisyo sa Internet at pag-encrypt ng SSH para sa seguridad ng koneksyon sa pagitan ng 2 bahay. Ang pananaliksik ay maaaring gawin upang mapabuti ang antas ng seguridad.
  4. Sa ngayon, gumawa ako ng 2 partisyon bawat drive. Ang isang mas maliit na ika-3 pagkahati (~ 5Go) ay maaaring maging kapaki-pakinabang para sa iba pang aktibidad na Raspbian, upang mapanatili ang µSD card.

Hakbang 2: Ihanda ang SD: Mag-upload ng Raspbian

Mula sa isang computer (Windows 10 sa aking kaso), sundin ang opisyal na gabay sa pag-install (https://www.raspberrypi.org/downloads/raspbian/) upang mai-install ang "Raspbian Buster sa desktop".

Magdagdag ng isang walang laman na file na pinangalanang "ssh" sa "/ boot /" disk

Magdagdag ng isang file na pinangalanang "wpa_supplicant.conf" sa "/ boot /" disk

Buksan ang wpa_supplicant.conf at ipasok ang teksto:

bansa = US

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

I-save at isara ang file.

Hakbang 3: Maghanda ng SD: Ipasadya ang Card

Ihanda ang SD: Ipasadya ang Card
Ihanda ang SD: Ipasadya ang Card

Magdagdag ng isang walang laman na file na pinangalanang "ssh" sa "/ boot /" disk

Magdagdag ng isang file na pinangalanang "wpa_supplicant.conf" sa "/ boot /" disk

Buksan ang wpa_supplicant.conf at ipasok ang teksto:

bansa = US

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

I-save at isara ang file.

Hakbang 4: Ihanda ang Raspberry Pi

Ipasok ang iyong SD card sa Pi

Palakasin ang Raspberry Pi, pumili ng isang paraan upang buksan ang isang desktop:

  1. Paggamit ng HDMI cable, screen, keyboard at mouse
  2. Paggamit ng VNC mula sa iyong computer.

Para sa karagdagang impormasyon, bisitahin ang

Hakbang 5: Paraan 1: Kumonekta sa Pi Gamit na Screen, Keyboard, Mouse

Paraan 1: Kumonekta sa Pi Gamit na Screen, Keyboard, Mouse
Paraan 1: Kumonekta sa Pi Gamit na Screen, Keyboard, Mouse
Paraan 1: Kumonekta sa Pi Gamit na Screen, Keyboard, Mouse
Paraan 1: Kumonekta sa Pi Gamit na Screen, Keyboard, Mouse

Ikonekta ang port ng Raspberry Pi HDMI0 sa isang screen gamit ang isang micro-HDMI sa HDMI cable

Mag-plug ng usb keyboard at mouse (o isang wireless mini keyboard tulad ng isang "Rii Mini i8 Wireless")

I-plug ang USB C power supply at paganahin ang Raspberry Pi.

Magsisimula ang Raspbian sa iyong screen.

Kapag lumitaw ang desktop, sagutin ang panel ng pagsasaayos upang tapusin ang pagsasaayos ng iyong Pi.

Hakbang 6: Paraan 2: Kumonekta sa Pi Paggamit ng VNC Mula sa Iyong Computer

Paraan 2: Kumonekta sa Pi Paggamit ng VNC Mula sa Iyong Computer
Paraan 2: Kumonekta sa Pi Paggamit ng VNC Mula sa Iyong Computer
Paraan 2: Kumonekta sa Pi Paggamit ng VNC Mula sa Iyong Computer
Paraan 2: Kumonekta sa Pi Paggamit ng VNC Mula sa Iyong Computer
Paraan 2: Kumonekta sa Pi Paggamit ng VNC Mula sa Iyong Computer
Paraan 2: Kumonekta sa Pi Paggamit ng VNC Mula sa Iyong Computer

Ikonekta ang Raspberry Pi sa iyong ethernet network (sa pamamagitan ng wifi o sa isang cable).

Mula sa iyong computer, buksan ang Mobaxterm (o masilya), magsimula ng isang bagong koneksyon sa ssh (login pi, password raspberry) at i-configure ang iyong Pi:

ssh pi @ raspberry_ip

sudo raspi-config

  • sa Opsyon ng interface / VNC: itakda ang Oo
  • sa Mga advanced na pagpipilian / Resolusyon: itakda ang DMT Mode 82 1920x1080 60Hz 16: 9
  • sa Mga advanced na pagpipilian / driver ng GL: itakda ang G1 Legacy Orihinal na non-GL desktop drive

I-save at lumabas sa raspi-config

I-reboot ang Pi:

sudo reboot

Mula sa iyong computer, buksan ang VNC Viewer, at kumonekta sa Pi gamit ang login pi, password raspberry: dapat lumitaw ang Pi desktop.

Sagutin ang panel ng pagsasaayos upang tapusin ang pagsasaayos ng iyong Pi.

Sa sandaling nabago mo ang Pi password, maaaring isara ang koneksyon ng VNC. I-restart ito gamit ang iyong bagong password.

Hakbang 7: Ihanda ang HDD

Ihanda ang HDD
Ihanda ang HDD
Ihanda ang HDD
Ihanda ang HDD
  1. Ikonekta ang HDD sa iyong computer.
  2. Buksan ang Windows partition manager, piliin ang iyong HDD, at lumikha ng 2 NTFS partitions (o 3, kung nais mo ng isang maliit na libreng puwang upang mapangalagaan ang µSD card). Halimbawa, pinangalanan ko ang 2 bahagi na "loic" at "vincent"
  3. Ikonekta ang HDD sa Pi: Ang Raspbian ay dapat na awtomatikong mag-mount ng 2 mga disk sa desktop. Ang mga drive ay naka-link sa folder / media / pi / loic /, at / media / pi / vincent /

Hakbang 8: I-configure ang Rsync: Lumikha ng Synchro Script

I-configure ang Rsync: Lumikha ng Synchro Script
I-configure ang Rsync: Lumikha ng Synchro Script

buksan ang isang prompt sa Pi desktop

Sa / bahay / pi /, lumikha ng isang script:

mkdir / home / pi / scriptsnano / home / pi / script / SB_sync

ipasok ang teksto:

#! / bin / sh

#### 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 " Pagsasabay sa pagpapatakbo: 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 "--------- -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}

I-configure ang mga linya 3 hanggang 7:

  • palitan ang "loic" at "vincent" ng pangalan ng iyong mga drive
  • port_distant: sa ngayon, gumamit ng 22 bilang remote port. Sa huling hakbang, papalitan mo ito ng ibang halaga na iyong pinili (tulad ng halimbawa: 34567)

i-save ang file at exit.

Hakbang 9: I-configure ang Rsync: Magsagawa ng isang Synchro Minsan sa Isang Araw

Sa prompt, buksan ang crontab:

sudo crontab -u pi -e

sa dulo ng file, magdagdag ng isang cron:

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

Sa cron na ito, ilulunsad ang script SB_sync araw-araw sa 1:00 AM. Piliin ang oras na gusto mo, ngunit baguhin ito sa pagitan ng 2 machine, kaya't sunud-sunod na maisasagawa ang 2 synchros.

I-save at isara ang file.

Hakbang 10: Ihanda ang Samba

Nag-uugnay ang Samba ng isang linux storage sa windows network.

Magbukas ng isang prompt at i-install ang mga pakete:

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

I-autorize ang account na "pi" upang ma-access ang Samba:

sudo smbpasswd -a pi

I-save ang default na Samba config file:

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

Buksan ang file:

sudo nano /etc/samba/smb.conf

At sa dulo ng file, idagdag ang mga linya na ito upang mai-configure ang iyong drive upang ibahagi:

[DOCUMENTS LOIC]

puna = NAS de loic path = / media / pi / loic may bisang mga gumagamit = @users force group = gumagamit lumikha ng mask = 0660 maskara sa direktoryo = 0775 basahin lamang = walang ma-browse = oo publiko = oo

I-save ang file at lumabas.

Hakbang 11: [Opsyonal] Samba: I-configure ang Basahin ang Pag-access sa Network Drive Vincent

Buksan ang Samba config file:

sudo nano /etc/samba/smb.conf

At sa dulo ng file, idagdag ang mga linyang ito upang mai-configure ang iba pang drive na nais mong i-access:

[DOCUMENTS VINCENT]

puna = backup de vincent path = / media / pi / vincent wastong mga gumagamit = @users force group = gumagamit lumikha mask = 0660 maskara sa direktoryo = 0775 basahin lamang = oo ma-browse = oo publiko = oo

I-save ang file at lumabas.

Hakbang 12: [Opsyonal] Samba: Pag-access sa Mag-log

Buksan ang Samba config file:

sudo nano /etc/samba/smb.conf

At sa dulo ng file, idagdag ang mga linyang ito upang ma-access mula sa mga bintana sa katayuan ng synchro:

[LOG SYNCHRO] comment = "logs de synchro entre machine"

path = / home / pi / SB_sync_logs / wastong mga gumagamit = @users force group = gumagamit lumikha ng mask = 0660 maskara sa direktoryo = 0771 basahin lamang = oo ma-browse = oo publiko = oo

I-save ang file at lumabas.

Hakbang 13: [Opsyonal] Samba: Itago ang Useless Folder "/ home / pi"

Buksan ang Samba config file:

sudo nano /etc/samba/smb.conf

Sa file, hanapin ang mga sumusunod na linya at idagdag ang ";" sa simula upang puna ito:

; [mga tahanan]

; puna = Mga Direktoryo sa Bahay; ma-browse = hindi; basahin lamang = oo; lumikha ng mask = 0700; direktoryo mask = 0700; wastong mga gumagamit =% S

I-save ang file at lumabas.

Hakbang 14: Pag-access sa Network Drive Mula sa Windows

Pag-access sa Network Drive Mula sa Windows
Pag-access sa Network Drive Mula sa Windows

Mula sa Windows computer, buksan ang isang explorer.

Mag-click sa "Network" at i-refresh ang window.

Ang isang computer na may pangalan ng iyong Rapberry Pi ay lilitaw.

Buksan ito gamit ang account na "pi" at ang iyong password.

Dapat mong makita ang mga folder na idinagdag dati sa Samba config file.

Hakbang 15: Ihanda ang 2nd Machine

Ang iyong 1st machine ay handa na.

Ulitin ang mga nakaraang hakbang para sa ika-2 makina, pinapalitan (halimbawa) ang "loic" ng "vincent".

Kapag handa na ang 2 machine, kakailanganin mong palitan ang ssh key upang pahintulutan ang pag-access sa pagitan nila, tingnan ang susunod na hakbang.

Hakbang 16: Lumikha ng SSH Sa Pagitan ng Lokal at Remote Machine

Upang gawing simple ang pagbabahagi ng susi ng SSH, ang bawat Raspberry Pi ay dapat na konektado sa parehong network ng ethernet.

Sa bawat Raspberry Pi, buksan ang isang prompt sa Pi desktop at ipasok ang:

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

ssh-copy-id pi @ IP_of_other_raspberry

Hakbang 17: Subukan ang Synchro

Subukan ang Synchro
Subukan ang Synchro
Subukan ang Synchro
Subukan ang Synchro
Subukan ang Synchro
Subukan ang Synchro

Handa na ang iyong 2 machine.

Maaari mong subukan ang synchro sa iyong windows computer:

  1. magdagdag ng isang file sa iyong lokal na network drive (hal. / Rpi4-loic / documents loic / test / test.txt),
  2. patakbuhin ang script sa iyong lokal na Pi desktop (ipatupad ang SB_sync sa / bahay / pi / script)
  3. suriin na ang iyong file ay lilitaw sa backup network drive (hal. / Rpi4-vincent / documents loic / test / test.txt).

Dapat mong mabasa at sumulat ng mga file sa / Rpi4-loic / documents loic / test \, ngunit basahin lamang ang mga file sa / Rpi4-vincent / documents loic / test \.

Ang susunod at huling hakbang ay ilipat ang "remote" machine sa loob ng isang network ng ibang lugar, at i-configure ang isang koneksyon sa pagitan ng 2 mga router sa pamamagitan ng internet.

Hakbang 18: I-configure ang Mga Ruta sa Internet

Sa aking kaso, para sa lokal na makina sa bahay, nag-subscribe ako sa isang pag-access sa internet kabilang ang isang router at isang nakapirming IP.

Para sa remote machine, ang nagbibigay ng serbisyo sa Internet ay pareho, kaya mas madali ang pagsasaayos, at hindi ko kailangan ng DNS.

Sa aking bahay:

  • Sa aking router, lumilikha ako ng ruta ng isang port mula sa "remote_internet_fixed_IP" sa "port_34567" hanggang sa "my_raspberry_IP" sa port "22"
  • Sa aking raspberry, sa / bahay / pi / script / SB_sync, pinalitan ko ang "port_distant" na halaga "22" ng "port_34567"

Sa malayong lugar:

  • Sa router, lumilikha ako ng ruta ng isang port mula sa "my_internet_fixed_IP" sa "port_34567" hanggang sa "my_raspberry_IP" sa port "22"
  • Sa remote na raspberry, sa / bahay / pi / script / SB_sync, pinalitan ko ang "port_distant" na halaga "22" ng "port_34567"

Para sa iyong aplikasyon:

  • Kailangan mong palitan ang mga IP at port_34567 ng iyong sarili.
  • Sa kaso ng pabago-bagong internet IP, kailangan mong mag-subscribe sa isang DNS.

Sa tulong ng may-ari ng remote na raspberry, ulitin ang pagsubok ng nakaraang hakbang.

Tapos na!

Hakbang 19: Bibliograpiya

I-install ang Raspbian sa µSD card

Ipasadya ang µSD card pagkatapos ng pagbuo (SSH at WiFi)

Gamit ang iyong Raspberry Pi

Raspberry Pi Sync na may rysnc sa pamamagitan ng feralhosting

Tukoy na port ng SSH para sa Rsync

I-install at gamitin ang Samba

Inirerekumendang: