realizzazione di un "server on USB"

Pubblicità

giangl3r

Nuovo Utente
Messaggi
20
Reazioni
1
Punteggio
25
Buongiorno a tutti, avrei la necessità di un confronto su questo quesito che provo ad esporvi di seguito:

Fondamentalmente vorrei avere un server su una penna USB per poter portarlo in giro oppure farlo girare quando sono in casa. Credo che necessito che il sistema operativo sia virtualizzato in quanto vorrei accederci anche da un notebook quando sono fuori senza perdere l’utilizzo del notebook stesso.

Non ho ben chiaro quale possa essere la metodologia più appropriata per realizzare un progetto del genere, tuttavia:
  • Il caso più semplice sarebbe di installare un sistema operativo su USB e poi avviare da USB qualsiasi macchina a cui la collego e tutto sarebbe disponibile. In questo modo però perderei l’accesso al notebook (hardware) principale e questo non è il mio scopo.
  • Ho pensato di fare un VHD su questa USB, ma poi sarei costretto ad utilizzare sempre lo stesso hypervisor (il che è fattibile, o comunque potrei sempre convertire il formato (credo), ma se si potesse svincolare da ciò sarebbe meglio).
Il concetto è che praticamente vorrei poter accedere al “server on USB” lanciando una qualsiasi macchina virtuale dal notebook o da PC casalingo per poi collegarmici in LAN. Spero di essere stato chiaro.

E’ fattibile secondo voi? qualche idea/alternativa che comunque soddisfi queste necessità secondo voi quale può essere?

Premetto che sono a conoscenza del problema dell’usura della USB. Potrei anche utilizzare una SSD ma non mi interessa molto e comunque potrei sempre backappare ogni giorno il dispositivo per evitare di perdere inutilmente dei dati. (in questo caso avrei sempre esattamente un doppione, no?!). Non è importante neanche la continuità del servizio. Oltre questo non vedo altri rischi nel setup che vorrei realizzare, ma potrei sbagliarmi ?!

Grazie in anticipo a chi può darmi due dritte!
 
Container?

Se devi usare contemporamente server e macchina host la live usb "classica" non e' un opzione. Rimangono macchine virtuali e container, entrambe le soluzioni richiedono pero' software specifico preinstallato sulla macchina (quindi non proprio plug and play su qualsiasi dispositivo).

Un'altra possibilita' potrebbe essere quella di usare dell'hardware a basso consumo che sia in grado di far girare un sistema operativo con la sola alimentazione da usb. Mi vengono in mente ad esempio i vari raspberry pi zero e similari, se non devi collegare periferiche dovresti poterlo alimentare con la sola porta usb della tua macchina (da verificare comunque, non ho le specifiche sottomano). Inoltre, visto che parli di poter accedere via LAN, ci sara' da pensare a come poterlo collegare ad una rete in automatico. Il vantaggio e' che sarebbe davvero "portable", basta una qualsiasi fonte di alimentazione e sei online.

Insomma, una soluzione si trova per tutto, dipende un po' dai tuoi requisiti. Ad esempio, cosa devi farci girare? Ti serve accesso ad internet?

Infine, c'e' un motivo particolare per il quale hai scartato l'opzione di un normale server su un qualunque cloud provider?
 
Ciao icox e grazie molte per la tua risposta.

Cosa devo farci girare non è un problema nel senso che mi basta un sistema davvero minimale e stop. Su ci farei girare una piccola applicazione e la macchina si connettera ad internet solo per ricevere aggiornamenti del sistema operativo.

Cosa cambierebbe tra un CT e una VM a quel punto? In realta non è un requisito stringente il "plug e Play"...sarebbe xfetto ma posso farne a meno e non è un problema dover avere un hypervisor sulla macchina host (anche xke la maggior parte delle volte utilizzerei il server in casa). mi preoccupava piu che altro il fatto di dover scegliere l hypervisor a priori; nel.senso: sarebbe top se potessi usare per esempio la stessa USB sia su hyper-V che su virtual box per capirci....(CT non li ho mai usati, ma per caso superano questo inconveniente?!)

Raspberry inveve l avevo scartato a priori ma un domani potra essere un'implementazione futura...

Invece all ultima opzione non avevo pensato proprio per niente.... In effetti è molto valida e interessante...!! Ci penserò se si complica la questione ... (per quanto non sarebbe gratis o comunque sarei vincolato ad abbonamento)

Rimarrebbero quindi CT o VM.

Ne approfitto anche per chiederti: volendo avere un VM o un CT, quando salvo tutto il filesystem sulla.USB, per replicarlo su un altro host (dotsto di hypervisor) mi basta avviare una macchina virtuale (o CT) dove l hard disk è la pennina?
 
Sulla questione hypervisor lascio la parola a chi ne sa di piu', probabilmente qualche standard comune esiste ma non so aiutarti oltre.

Parlando di container la mia esperienza si limita a docker. In linea di massima una volta creato un dockerfile adatto alle tue esigenze sei a posto. Ti bastera' avere questo file per poter creare l'immagine e avviare il container su qualsiasi macchina che abbia docker installato.
La persistenza dei dati e' piu' macchinosa rispetto alle macchine virtuali ma fattibile, con docker ad esempio ci sono i volumi che possono essere "montati" su un container. Queste directory con i dati puoi tenerle su usb o dove ti pare e non ci sono differenze, al netto ovviamente delle prestazioni in lettura/scrittura.

La soluzione cloud e' probabilmente la piu' semplice, sei sempre online e non devi preoccuparti di tenerlo attivo. I contro ovviamente sono i costi e la sicurezza, essendo esposta ad internet ci vanno un paio di accorgimenti. I costi poi in realta' sono piuttosto contenuti se non hai bisogno di molte risorse, in alcuni casi persino gratuiti. Ad esempio aws aveva un periodo gratuito piuttosto esteso. Oppure dai un'occhiata ad oracle cloud (non pensavo di poter arrivare a consigliare servizi oracle... 😂), fino a qualche tempo fa aveva un tier "always free" che includeva un'istanza x86 (molto piccola) ed una arm (decente).
Insomma se vuoi giocare un po' le alternative ci sono! Tra l'altro se parti con docker puoi fare tutta la configurazione/test in locale e poi, se vedi che e' scomodo avviarlo dai tuoi dispositivi, ti copi il dockerfile su un server cloud ed avrai la (quasi) certezza che funzionera' esattamente come sulla macchina locale.
 
Sulla questione hypervisor lascio la parola a chi ne sa di piu', probabilmente qualche standard comune esiste ma non so aiutarti oltre.

Parlando di container la mia esperienza si limita a docker. In linea di massima una volta creato un dockerfile adatto alle tue esigenze sei a posto. Ti bastera' avere questo file per poter creare l'immagine e avviare il container su qualsiasi macchina che abbia docker installato.
La persistenza dei dati e' piu' macchinosa rispetto alle macchine virtuali ma fattibile, con docker ad esempio ci sono i volumi che possono essere "montati" su un container. Queste directory con i dati puoi tenerle su usb o dove ti pare e non ci sono differenze, al netto ovviamente delle prestazioni in lettura/scrittura.

La soluzione cloud e' probabilmente la piu' semplice, sei sempre online e non devi preoccuparti di tenerlo attivo. I contro ovviamente sono i costi e la sicurezza, essendo esposta ad internet ci vanno un paio di accorgimenti. I costi poi in realta' sono piuttosto contenuti se non hai bisogno di molte risorse, in alcuni casi persino gratuiti. Ad esempio aws aveva un periodo gratuito piuttosto esteso. Oppure dai un'occhiata ad oracle cloud (non pensavo di poter arrivare a consigliare servizi oracle... 😂), fino a qualche tempo fa aveva un tier "always free" che includeva un'istanza x86 (molto piccola) ed una arm (decente).
Insomma se vuoi giocare un po' le alternative ci sono! Tra l'altro se parti con docker puoi fare tutta la configurazione/test in locale e poi, se vedi che e' scomodo avviarlo dai tuoi dispositivi, ti copi il dockerfile su un server cloud ed avrai la (quasi) certezza che funzionera' esattamente come sulla macchina locale.
La soluzione online ha tra l altro il problema della sicurezza. Ora vedo un po. Ecco tra l altro la persistenza dei dati era una cosa che non avevo descritto ma sarebbe fondamentale. P.s. esistono delle immagini universali per CT
 
Ultima modifica:
Si la soluzione online richiede un minimo di accortezza per tenerla sicura. Niente di che eh, basta seguire le indicationi che trovi in qualsiasi documentazione.

Direi che la persistenza dei dati con una vm e' in genere "built-in", ti basta avviarla da suo vhd e sei a posto.
Nel caso dei container (di nuovo mi limito a docker che e' l'unico che conosco) si usano i volumi in quanto le immagini da cui fai partire il container sono per definizione immutabili.

Non ho capito cosa intendi per "immagini universali". In genere si parte sempre da un immagine base (una qualsiasi debian, ubuntu o quello che vuoi) e poi aggiungi software e configurazioni a seconda delle esigenze. Ci sono anche immagini gia' pronte per tanti servizi/software, sia ufficiali che di terze parti. Se ad esempio ti serve un certo database, molto probabilmente troverai un immagine gia' pronta con installato quello che serve (ed eventualmente da configurare secondo necessita').
 
Si la soluzione online richiede un minimo di accortezza per tenerla sicura. Niente di che eh, basta seguire le indicationi che trovi in qualsiasi documentazione.
Nelle specifico cosa si potrebbe guardare? (magari a mero scopo "didattico" può essere interessante)

Direi che la persistenza dei dati con una vm e' in genere "built-in", ti basta avviarla da suo vhd e sei a posto.
Questo probabilmente risolve il tutto. Basterá solo decidere che formato di VHD utilizzare (quindi quale hypervisor poi avere sempre a disposizione sia in casa che fuori)

Non ho capito cosa intendi per "immagini universali". In genere si parte sempre da un immagine base (una qualsiasi debian, ubuntu o quello che vuoi) e poi aggiungi software e configurazioni a seconda delle esigenze. Ci sono anche immagini gia' pronte per tanti servizi/software, sia ufficiali che di terze parti. Se ad esempio ti serve un certo database, molto probabilmente troverai un immagine gia' pronta con installato quello che serve (ed eventualmente da configurare secondo necessita').
Probabilmente mi sono espresso male. Avevo trovato in rete un progetto OCI che avevo capito fosse una sorta di standardizzazione del formato CT ( nel senso che quel CT lo puoi far girare su docker, sia kubernets o come LXC). Per universale intendo appunto avviavile da un qualsiasi software in grado di fsr girare un CT. Tuttavia non ne sono sicuro di quanto ho detto. Non ho mai utilizzato CT ma sarà l occasione per approfondire.


Intanto ti ringrazio molte. Come sempre questo forum è un ottimo supporto.
 
Nelle specifico cosa si potrebbe guardare? (magari a mero scopo "didattico" può essere interessante)
Difficile dirlo senza sapere quali servizi ti servono. Come regola generale e' sempre utile ridurre al minimo indispensabile i servizi esposti, disabilitare l'accesso tramite password in favore di chiavi, preferire sempre connessioni sicure e ovviamente tenere il sistema aggiornato. La maggioranza dei software pensati per essere usati "lato server" hanno sempre nella documentazione qualche pagina con delle note sulla sicurezza.

Probabilmente mi sono espresso male. Avevo trovato in rete un progetto OCI che avevo capito fosse una sorta di standardizzazione del formato CT ( nel senso che quel CT lo puoi far girare su docker, sia kubernets o come LXC). Per universale intendo appunto avviavile da un qualsiasi software in grado di fsr girare un CT. Tuttavia non ne sono sicuro di quanto ho detto. Non ho mai utilizzato CT ma sarà l occasione per approfondire.
Interessante, non lo conoscevo. Potrebbe valer la pena approfondire.

In ogni caso qualunque sia la tua scelta credo che la cosa migliore sia provare. Inizia con la macchina virtuale a questo punto e ti risolvi il problema persistenza in modo facile. Se poi hai tempo/voglia prova a fare la stessa cosa con i container e vedi un po quale dei due funziona meglio per te.
 
Pubblicità
Pubblicità
Indietro
Top