Jump to content
Sign in to follow this  
allanh

Come fate per gestire i file in più server?

Recommended Posts

Salve a tutti!

 

Cerco di capire alcune soluzioni che vengono adottate, ma qui non riesco a venirne fuori :zizi:.

 

Mettiamo che si ha un server dove fate hostare i file ai vostri utenti, ma dopo un certo periodo il server fa fatica per la banda o per lo spazzio e siete costretti ad aggiungere un ulteriore server.

Fin qui tutto ok, ma questo secondo server servirà solo per inserire ulteriori file. Come fare per amalgamare il server2 al server1?

Chiaramente potreste avere anche più di 2 server, per ora mettiamo che sono 2.

 

Nel server fate hostare tutti i tipi di file da 1K fino a 100MB..

 

 

Mettiamo che siamo nel modo più semplice possibile, create un form dove gli utenti caricano i file nella cartella /FileServer1/Utente/

L'utente vede i file all'interno di /FileServer1/Utente/

Ma se aggiungessimo un Server2 come si può gestire in maniera trasparente?

Si deve utilizzare MySql per i percorsi e quindi creare un record per ogni file(solo il relativo link) o esistono altre soluzioni?

Perchè l'utente poi dovrebbe uploadare un file nel Server 2, ma lui è collegato nel Server 1 , quindi forse server NFS, o esistono altri modi?

Esisterà qualche cosa di lineare pernso..

 

Forse sono parecchio confuso, però cerco di capire come si possono sfruttare più server per un'applicazione.

 

Grazie per il vostro aiuto.. una buona serata..

Ciao.. :sisi:

Share this post


Link to post
Share on other sites

a parte glusterfs, come suggerisce CoolNetwork, direi che la cosa non e' banalissima e richiede un certo studio di infrastruttura.

 

a grandi linee, e se non vuoi adottare glusterfs, farei cosi':

 

per il lato backend, opterei per una soluzione di questo tipo: ogni utente ha un limite di spazio ed e' associato ad un solo server. oltre una certa dimensione occupabile che hai previsto per ogni server, ne prendi un altro. e via discorrendo.

se gli utenti possono aumentare il loro limite, il sistema gli aumenta la quota se c'e' spazio, in caso contrario controlla se c'e' sugli altri server ed effettua una migrazione totale dell'account sul server piu' scarico attraverso una serie di script (a meno di non voler fare la cosa in modo manuale)

 

lato frontend, una volta che l'utente fa il login, via codice devi fare in modo che l'upload avvenga nel server corretto (salva le informazioni che ti servono sul db).

Share this post


Link to post
Share on other sites

Grazie per le risposte..

Riguardo al Gluster, l'idea non è brutta, l'avevo visto tempo fa, ma si dovrebbe creare tutta l'architettura, diciamo diventa una cosa più complessa, forse migliore, però a volte troppa complessità significa più possibili problemi.

 

 

hm.. Quindi per ogni utente un solo server, ma per uploadare i file consigli un collegamento NFS o una copia via ssh o uno script che riceva i file..

 

Perchè volendo si potrebbe crare un percorso specifico per ogni server, /serv1/ ecc.. così che posso reindirizzare l'utente in maniera immediata.

Devo mettermi a tavolino e vedere bene, questa notte non ci ho dormito, mi domando.. esistera un modo semplice e flessibile.. forse sono strano.. :) però questi concetti affascinano..

Share this post


Link to post
Share on other sites
Grazie per le risposte..

Riguardo al Gluster, l'idea non è brutta, l'avevo visto tempo fa, ma si dovrebbe creare tutta l'architettura, diciamo diventa una cosa più complessa, forse migliore, però a volte troppa complessità significa più possibili problemi.

sicuramente aumenti la complessita' perche' utilizzi un ulteriore layer.

 

hm.. Quindi per ogni utente un solo server, ma per uploadare i file consigli un collegamento NFS o una copia via ssh o uno script che riceva i file..

no no, l'utente per come la vedo io deve essere reindirizzato automaticamente al server corretto, senza mettere in mezzo NFS od altre cose.

l'unico momento in cui devi utilizzare dei meccanismi esterni e' durante la migrazione di un utente da un server all'altro, le cui operazioni devono essere automatizzate (creazione account su nuovo server, spostamento dei dati via rsync, cancellazione dei dati utente dal primo server, disabilitazione dell'utente sul primo server, modifica del database in modo da far arrivare l'utente direttamente sul nuovo server).

Share this post


Link to post
Share on other sites

Ora ho capito, quindi pensando, si potrebbe anche creare su un portale, immettendo una sorta di frame che richiama un form dal server in cui dovrà ospitare il/i file, così da un server può gestire un secondo server, certo non sta utilizzando due server contemporaneamente, però linea di massima può selezionare l'utente stesso il server.. o il sistema per lui, penso che come soluzione non è sbagliata.. mi sa di no.., perchè così il serverA rimane sempre per l'amministrazione ed i file vengono smistati su altri server.. bella come cosa.. vero?

Grazie per il tuo aiuto.. mi sa che l'idea sia ottima :approved:

Share this post


Link to post
Share on other sites
Potresti usare una sola macchina per i caricamenti e come cache temporanea e in batch distribuire i file sulle varie macchine

sinceramente mi sembra inefficiente e maggiormente oneroso:

  • hai da conservare i file invece di inviarli direttamente alla macchina giusta (nel peggiore dei casi devi avere sulla macchina temporanea spazio disponibile almeno pari alla somma dello spazio libero dei vari server del pool)
  • con un'altra operazione devi inviare i file alla macchina giusta effettuando dei controlli sul file e l'utente di appartenenza e scegliendo opportunamente il protocollo di trasmissione (rsync, ftp, nfs)
  • devi gestire l'omonimia durante lo storing di cache, che porta ad adottare una nomenclatura del tipo "nomeserver_utente-nomefile" tenendo in considerazione che il singolo utente deve vedere "nomefile" e non le informazioni aggiuntive
  • gli utenti non avranno una visualizzazione istantanea dei file caricati

e forse ci sono altri difetti ancora..

Share this post


Link to post
Share on other sites

ma se l'utente si logga con delle credenziali perchè non spararlo sulla macchina giusta dopo il login e smetterla di farsi pippe mentali? :)

Nel senso che siccome qualcuno parlava di quote prima vuol dire che c'è una login associata. Login quindi che associa un utente a un server su cui i suoi file risiedono, a login effettuata quindi l'utente finisce subito sul suo server di competenza e il gioco è fatto, tanto il webserver c'è su tutte le macchine.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×