Sync fra tre cartelle in tre server

Ciao, ho migrato un sito da un server web ed un server db a tre server.
Ogni server ha apache con passenger e MySql con replicazione. I file li
ho migrati S3 (uso carrierwave). Il problema el'editor degli articoli usa una directory locale. Ho provato a montare un bucket da S3 ed era lentissimo. Ho installato GlusterFS e sembrava funzionare, pero i
server hanno 2GB e non ce la fanno, poi GlusterFS mi disistalla delle
librerie per mysql e fa confusione. In poche parole non saprei come
fare. Di
solito rsync viene utilizzato per backup, one-way, ho trovato unison ma
i server web son tre non due.

Forse potrei usare solamente due server per il web ed usare unison. I
tre server mysql dovrei tenerli percheuso galera replication ed ha bisogno di tre server in caso che un nodo vada giu.

Idee? Conoscete qualcosa per tenere i file in sync? La cartella
dell’editor puo` ricevere uno o due file al giorno, veramente pochi,
forse rsync potrebbe andar bene.

Non voglio aggiungere altri due VPS per condividere i file con
GlusterFS, mi sembra esagerato ed il cliente probabilmente non sarebbe
contento.

Scusa Fabrizio ho fatto confusione, ho cancellato il post da quel
thread. ti
rispondo qui. Il modo piusemplice era di usare S3 visto che tutti gli altri file con Ruby sono stati cambiati per usare S3. Mi servirebbe semplicemente di tenere in sync le tre cartelle. Per la scrittura i requisiti son bassi, per la lettura ci sono molti file. S3 e troppo
lento montato come FS locale, GlusterFS mi crea problemi. Ceph non ha i
pacchetti per Lucid (Ubuntu 10.04). E` un sito in produzione e non posso
compilare e sperimentare.

Il 31/10/12 09:05, Riccardo T. ha scritto:

Forse potrei usare solamente due server per il web ed usare unison. I
tre server mysql dovrei tenerli perche uso galera replication ed ha bisogno di tre server in caso che un nodo vada giu.

Idee? Conoscete qualcosa per tenere i file in sync? La cartella
dell’editor puo` ricevere uno o due file al giorno, veramente pochi,
forse rsync potrebbe andar bene.

Sparkleshare?
http://sparkleshare.org/

Grazie Tommaso. Devo risolvere il problema in giornata e quello script
potrebbe andare bene. Non ho un server GIT e non so se potrei superare
le quote di github o bitbucket

Visto che i file cambiano poco, qual’ il problema di usare Rsync?

Il 31/10/12 10:10, Riccardo T. ha scritto:

Grazie Tommaso. Devo risolvere il problema in giornata e quello script
potrebbe andare bene. Non ho un server GIT e non so se potrei superare
le quote di github o bitbucket

Il “server git” pu essere anche un semplice accesso ssh comune ad una
macchina, tempo di setup 0 :slight_smile:
Il problema di sparkleshare l’ho riscontrato su molti file che cambiane
spesso, che per la natura di git vanno ad occupare un sacco di spazio,
ma nel tuo caso secondo me funziona bene.

Se vuoi puoi farti il tuo bare git repository su una macchina. Poi con
push & pull sincronizzi …

SUL “SERVER”:

ssh [email protected]

mkdir my_project.git

cd my_project.git

git init --bare

exit

SUI CLIENT ti ci vuole lo scambio di chiavi:

ssh-keygen -t rsa

etc .

Se metti le passphrase il problema e’ che ti chiedera’ la passphrase
ogni volta che ti colleghi. Puoi risolvere con un ssh agent

qui trovi una mia implementazione per bash (e’ al blocco 4)

Ciao!

Fabrizio R. wrote in post #1082164:

Visto che i file cambiano poco, qual’ il problema di usare Rsync?

Ho il load balancer di Linode ed sto usando le sticky sessions, quindi
un utente che carica un file, dovrebbe restare sullo stesso server
quando il file ecaricato e l'articolo e stato salvato, pero` una
volta ha visto l’articolo senza immagine. Da qui ho la paranoia che
capiti di nuovo. Ho visto che molti setup eseguono rsync via cron ogni
30/60 secondi, ma vorrei che i file siano in sync dopo pochi secondi.

Potrei anche usare guard-process per monitore i cambiamenti nella
cartella e far partire rsync on-demand.

Infatti pensavo a guard per monitorare i cambiamenti e far partire
rsync.

Non conosco il load balancer di linode ma se le sticky sessions
funzionano bene quello che hai descritto non dovrebbe accadere.
Indagherei su quel fronte. Altrimenti rischi di complicare inutilmente
il tutto.

2012/10/31 Riccardo T. [email protected]:

Fabrizio R. wrote in post #1082164:

Visto che i file cambiano poco, qual’ il problema di usare Rsync?

Ho il load balancer di Linode ed sto usando le sticky sessions, quindi
un utente che carica un file, dovrebbe restare sullo stesso server
quando il file e caricato e l'articolo e stato salvato, pero` una
volta ha visto l’articolo senza immagine.

mi se che non ho capito il setup: hai detto che stai usando
carrierwave con S3, quindi le immagini dovrebbero andare su S3 ed
essere servite direttamente da li … (stai usando un upload diretto o
asincrono?)
Oppure i file creati dall’editor sul webserver sono di altro genere?

Luca

Il 31 ottobre 2012 10:44, Riccardo T. [email protected] ha
scritto:

Potrei anche usare guard-process per monitore i cambiamenti nella
cartella e far partire rsync on-demand.

Ciao,
ha la possibilit di usare inotify
Home · inotify-tools/inotify-tools Wiki · GitHub ?

2012/10/31 Riccardo T. [email protected]:

Idealmente FCKEditor dovrebbe essere configurato ad usare S3

oppure per usare carrierwave (questo ti potrebbe aiutare:
GitHub - galetahub/ckeditor: Ckeditor 4.x integration gem for rails )

Luca

Ho aggiornato gli uploader per usare S3 (dopo aver copiato i file dal FS
locale a S3). FCKEditor usa una sua cartella su file system locale, mi
son reso conto solamente che usavano anche le immagini caricandole
dall’editor. Idealmente FCKEditor dovrebbe essere configurato ad usare
S3, ma non credo sia possibile.

Luca M. wrote in post #1082188:

2012/10/31 Riccardo T. [email protected]:

Idealmente FCKEditor dovrebbe essere configurato ad usare S3

oppure per usare carrierwave (questo ti potrebbe aiutare:
GitHub - galetahub/ckeditor: Ckeditor 4.x integration gem for rails )

Luca

Sarebbe quello che il creatore del progetto doveva utilizzare, ha messo
l’editor in molti posti e devo trovare un soluzione al volo. Quella gem
sarebbe ottima per un futuro aggiornamento del codice.

Alla fine ho usato la gem directory_watcher con uno script che ad ogni
evento sulla cartella attiva rsync. Mi sembra che funziona abbastanza
bene.

Grazie delle tante idee.