qmiki
Posts: 7
Joined: Fri Apr 13, 2018 9:51 am

consiglio su progetto con server mysql e raspberry multipli

Thu Jun 28, 2018 5:24 pm

cerco un consiglio su come procedere, se per caso qualcuno ha gia' affrontato un problema simile...
ho realizzato un aggeggio per controllo accessi basato su raspberry. I dati vengono registrati in un database mysql. Il dispositivo e' collegato su una LAN e deve essere "interrogabile" dai PC sulla LAN. Dopo averci pensato un po', ho installato il server mysql sul raspberry, in modo che potesse continuare a funzionare in mancanza di rete, e viene fatto un backup automatico ogni ora su un NAS collegato alla LAN.
Fino a qui tutto bene.
Ora pero' e' nata la necessita' di duplicare il dispositivo, e forse in futuro di triplicarlo, ma il database deve rimanere unico e ciascuno dei due raspberry deve avere a disposizione i dati raccolti da entrambi (per fare dei conti quando vengono registrate delle uscite, in caso di mancanza di rete potrebbe essere tollerabile che questa cosa non funzioni). Ho pensato a queste opzioni:

1) lascio il primo raspberry cosi' com'e' e cambio il software per il secondo raspberry in modo che invii i dati al server mysql sul primo (e che interroghi il server del primo quando gli servono i dati). Per gestire la mancanza di rete, salverei i dati in un file locale e ogni tot controllerei se c'e' rete e in questo caso manderei i dati dal file locale al server mysql. Per fare i conti, il secondo raspberry interroga il database del primo. Ma cosi' avrei due software diversi, cosa che non mi piace tanto (se poi devo fare modifiche...)...

2) metto lo stesso software a entrambi, installo un server mysql anche sul secondo dispositivo, e un terzo server mysql sul NAS su cui faccio il backup. Ciascun raspberry inserisce i dati nel proprio server e uno script esterno, presente su ciascun raspberry, prende i dati dal server locale e li inserisce nel server del NAS (se c'e' rete e se ci sono dati non ancora inviati al NAS). Quando un raspberry necessita di dati dal database interroga il NAS. Il vantaggio e' che il software puo' essere lo stesso su tutti i raspberry. Lo svantaggio e' che non puo' fare i conti in mancanza di rete

sto complicando troppo le cose :? ?ci sono metodi piu' semplici? consigli? suggerimenti?

tigernero
Posts: 30
Joined: Fri Dec 30, 2016 5:51 pm

Re: consiglio su progetto con server mysql e raspberry multipli

Thu Jun 28, 2018 5:31 pm

Se puoi gestire i dati invece che in un db, ma in un file txt, potrei suggerirti nextcloud

un sistema avanzato di gestione continua di cartelle condivise anche su piu raspberry
dove uno funge da server nextcloud, e gli altri accedono costantemente alle cartelle o cartella che il server nexcloud ha, quindi ad ogni modifica dei file in quella cartella corrisponderebbe una modifica ai file della stessa cartella sugli altri raspberry con il client.

se la cosa interessa posso darti altre delucidazioni.


nicolap8
Posts: 235
Joined: Mon Mar 13, 2017 9:45 pm

Re: consiglio su progetto con server mysql e raspberry multipli

Fri Jun 29, 2018 10:31 pm

qmiki wrote:
Thu Jun 28, 2018 5:24 pm
in caso di mancanza di rete potrebbe essere tollerabile che questa cosa non funzioni
Io credo che qua ci sia un problema! Intanto di quale rete parli? Rete elettrica o rete informatica?
Cosa intendi con "non funzioni"? Descrivi i possibili (e probabili) scenari.

qmiki wrote:
Thu Jun 28, 2018 5:24 pm
1) lascio il primo raspberry cosi' com'e' e cambio il software per il secondo raspberry in modo che invii i dati al server mysql sul primo (e che interroghi il server del primo quando gli servono i dati). Per gestire la mancanza di rete, salverei i dati in un file locale e ogni tot controllerei se c'e' rete e in questo caso manderei i dati dal file locale al server mysql. Per fare i conti, il secondo raspberry interroga il database del primo. Ma cosi' avrei due software diversi, cosa che non mi piace tanto (se poi devo fare modifiche...)...
In realtà potrebbe essere un singolo software con dei settaggi leggermente diversi:
- nome del server
- cosa fare quando il server non c'è
- cosa fare quando il server torna ad esserci
qmiki wrote:
Thu Jun 28, 2018 5:24 pm
2) metto lo stesso software a entrambi, installo un server mysql anche sul secondo dispositivo, e un terzo server mysql sul NAS su cui faccio il backup. Ciascun raspberry inserisce i dati nel proprio server e uno script esterno, presente su ciascun raspberry, prende i dati dal server locale e li inserisce nel server del NAS (se c'e' rete e se ci sono dati non ancora inviati al NAS). Quando un raspberry necessita di dati dal database interroga il NAS. Il vantaggio e' che il software puo' essere lo stesso su tutti i raspberry. Lo svantaggio e' che non puo' fare i conti in mancanza di rete
Il programma che interroga il database sta sui pc quindi se non c'è collegamento non possono comunque vederlo, non importa dove esso sia.
Il NAS potrebbe essere un buono posto per il database.

qmiki
Posts: 7
Joined: Fri Apr 13, 2018 9:51 am

Re: consiglio su progetto con server mysql e raspberry multipli

Fri Jul 06, 2018 7:47 am

tigernero wrote:
Thu Jun 28, 2018 5:31 pm
Se puoi gestire i dati invece che in un db, ma in un file txt, potrei suggerirti nextcloud

un sistema avanzato di gestione continua di cartelle condivise anche su piu raspberry
dove uno funge da server nextcloud, e gli altri accedono costantemente alle cartelle o cartella che il server nexcloud ha, quindi ad ogni modifica dei file in quella cartella corrisponderebbe una modifica ai file della stessa cartella sugli altri raspberry con il client.

se la cosa interessa posso darti altre delucidazioni.
grazie mille, ma vedo che e' un parente stretto di owncloud, con cui ho gia' avuto a che fare ... temo che un sistema del genere non sia sufficientemente affidabile

qmiki
Posts: 7
Joined: Fri Apr 13, 2018 9:51 am

Re: consiglio su progetto con server mysql e raspberry multipli

Fri Jul 06, 2018 7:48 am

macca wrote:
Thu Jun 28, 2018 7:41 pm
Prova a vedere questo:
https://dev.mysql.com/doc/refman/5.7/en ... ation.html
grazie, provo a guardare

qmiki
Posts: 7
Joined: Fri Apr 13, 2018 9:51 am

Re: consiglio su progetto con server mysql e raspberry multipli

Fri Jul 06, 2018 8:11 am

nicolap8 wrote:
Fri Jun 29, 2018 10:31 pm
qmiki wrote:
Thu Jun 28, 2018 5:24 pm
in caso di mancanza di rete potrebbe essere tollerabile che questa cosa non funzioni
Io credo che qua ci sia un problema! Intanto di quale rete parli? Rete elettrica o rete informatica?i
in realta' entrambi, ma qui parlavo della LAN (magari dopo apro un post separato per l'altra questione)
nicolap8 wrote:
Fri Jun 29, 2018 10:31 pm
Cosa intendi con "non funzioni"? Descrivi i possibili (e probabili) scenari.
purtroppo, per vari motivi che non sto a spiegare, la rete a cui siamo collegati e' un gran casino, sia come architettura generale che come apparati. Non e' infrequente che si blocchi uno degli apparati o che si butti giu' la rete per manutenzione/esperimenti vari, magari per questioni di sicurezza, e che il risultato sia di restare mezza giornata senza collegamento, esterno ed interno. Non e' che succeda sempre, ma abbastanza da doverci essere dotati di sim dati per le situazioni di emergenza, ma cosi' possiamo collegarci all'esterno non sulla lan locale
qmiki wrote:
Thu Jun 28, 2018 5:24 pm
1) lascio il primo raspberry cosi' com'e' e cambio il software per il secondo raspberry in modo che invii i dati al server mysql sul primo (e che interroghi il server del primo quando gli servono i dati). Per gestire la mancanza di rete, salverei i dati in un file locale e ogni tot controllerei se c'e' rete e in questo caso manderei i dati dal file locale al server mysql. Per fare i conti, il secondo raspberry interroga il database del primo. Ma cosi' avrei due software diversi, cosa che non mi piace tanto (se poi devo fare modifiche...)...
nicolap8 wrote:
Fri Jun 29, 2018 10:31 pm
In realtà potrebbe essere un singolo software con dei settaggi leggermente diversi:
- nome del server
- cosa fare quando il server non c'è
- cosa fare quando il server torna ad esserci
anche, ma a questo punto tanto vale passare all''opzione 2, o no?
qmiki wrote:
Thu Jun 28, 2018 5:24 pm
2) metto lo stesso software a entrambi, installo un server mysql anche sul secondo dispositivo, e un terzo server mysql sul NAS su cui faccio il backup. Ciascun raspberry inserisce i dati nel proprio server e uno script esterno, presente su ciascun raspberry, prende i dati dal server locale e li inserisce nel server del NAS (se c'e' rete e se ci sono dati non ancora inviati al NAS). Quando un raspberry necessita di dati dal database interroga il NAS. Il vantaggio e' che il software puo' essere lo stesso su tutti i raspberry. Lo svantaggio e' che non puo' fare i conti in mancanza di rete
nicolap8 wrote:
Fri Jun 29, 2018 10:31 pm
Il programma che interroga il database sta sui pc quindi se non c'è collegamento non possono comunque vederlo, non importa dove esso sia.
Il NAS potrebbe essere un buono posto per il database.
vero, ma la raccolta dati continuerebbe, potrei tollerare di non poter far girare il programma che interroga il database in assenza di rete, ma non di perdere dati

nicolap8
Posts: 235
Joined: Mon Mar 13, 2017 9:45 pm

Re: consiglio su progetto con server mysql e raspberry multipli

Fri Jul 06, 2018 1:18 pm

qmiki wrote:
Fri Jul 06, 2018 8:11 am
purtroppo, per vari motivi che non sto a spiegare, la rete a cui siamo collegati e' un gran casino, sia come architettura generale che come apparati. Non e' infrequente che si blocchi uno degli apparati o che si butti giu' la rete per manutenzione/esperimenti vari, magari per questioni di sicurezza, e che il risultato sia di restare mezza giornata senza collegamento, esterno ed interno. Non e' che succeda sempre, ma abbastanza da doverci essere dotati di sim dati per le situazioni di emergenza, ma cosi' possiamo collegarci all'esterno non sulla lan locale
Terribile! E, per me, inaccettabile.
qmiki wrote:
Fri Jul 06, 2018 8:11 am
qmiki wrote:
Thu Jun 28, 2018 5:24 pm
1) lascio il primo raspberry cosi' com'e' e cambio il software per il secondo raspberry in modo che invii i dati al server mysql sul primo (e che interroghi il server del primo quando gli servono i dati). Per gestire la mancanza di rete, salverei i dati in un file locale e ogni tot controllerei se c'e' rete e in questo caso manderei i dati dal file locale al server mysql. Per fare i conti, il secondo raspberry interroga il database del primo. Ma cosi' avrei due software diversi, cosa che non mi piace tanto (se poi devo fare modifiche...)...
nicolap8 wrote:
Fri Jun 29, 2018 10:31 pm
In realtà potrebbe essere un singolo software con dei settaggi leggermente diversi:
- nome del server
- cosa fare quando il server non c'è
- cosa fare quando il server torna ad esserci
anche, ma a questo punto tanto vale passare all''opzione 2, o no?
Non proprio: io penserei a tenere i dati sui singoli RPi su file di qualche tipo (non necessariamente SQL) solo fino alla prossima sincronizzazione. Il DB SQL sarebbe solo uno.
Nel DB SQL verrebbe, ovviamente, memorizzato il tempo di ultima sicronizzazione di ogni RPi.
qmiki wrote:
Fri Jul 06, 2018 8:11 am
qmiki wrote:
Thu Jun 28, 2018 5:24 pm
2) metto lo stesso software a entrambi, installo un server mysql anche sul secondo dispositivo, e un terzo server mysql sul NAS su cui faccio il backup. Ciascun raspberry inserisce i dati nel proprio server e uno script esterno, presente su ciascun raspberry, prende i dati dal server locale e li inserisce nel server del NAS (se c'e' rete e se ci sono dati non ancora inviati al NAS). Quando un raspberry necessita di dati dal database interroga il NAS. Il vantaggio e' che il software puo' essere lo stesso su tutti i raspberry. Lo svantaggio e' che non puo' fare i conti in mancanza di rete
nicolap8 wrote:
Fri Jun 29, 2018 10:31 pm
Il programma che interroga il database sta sui pc quindi se non c'è collegamento non possono comunque vederlo, non importa dove esso sia.
Il NAS potrebbe essere un buono posto per il database.
vero, ma la raccolta dati continuerebbe, potrei tollerare di non poter far girare il programma che interroga il database in assenza di rete, ma non di perdere dati
Concordo. Il punto principale, secondo me, sarebbe che nel RPi non ci sarebbe un database SQL che è un elemento complesso e "a rischio".
N

willy_pinguino
Posts: 592
Joined: Sun Jan 22, 2017 9:11 pm

Re: consiglio su progetto con server mysql e raspberry multipli

Fri Jul 20, 2018 1:16 pm

Come indicatoti da Macca, MySQL possiede di suo sia la replicazione di gruppi che forme di scalig che permettono di avere il database distribuito su più macchine, sia per prevenire blocchi di una o più macchine server, sia per alleggerire i carichi sdi lavoro sule singole macchine in caso di grandi moli di inserimento o consultazione dati contemporanee

credo che la soluzione giusta sia questa, usare le opzioni disponibili da MySQL, ma se la connessione è così instabile forse conviene pensare ad un infrastruttura a parte che connetta solo i 2, 3 o x raspberry in rilevazione e l'accesso in consultazione avvenga solo verso l'esterno.

Return to “Italiano”

Who is online

Users browsing this forum: No registered users and 1 guest