Un server in un miniPC
Da diverso tempo stavo meditando sulla sostituzione del mio server casalingo, a cui mancavano due requisiti per me molto importanti: un RAID1 che mi salvi dalla morte improvvisa di un disco e consumi ridotti. Qualche mese fa ho finalmente avviato il progetto, la cui esperienza voglio ora condividere con voi.
Acquisti
Dopo alcune ricerche in rete mi sono deciso per la seguente configurazione:
- Scheda madre: Intel D201GLY2A
- Case: Mini-Box M300
- RAM: Kingston 1GB 533MHz DDR2
- Hard Disks: n. 2 Samsung M5S HM160HI
- Alimentazione: Mini-Box picoPSU 120 + Sintel 8500mA 12Vcc
Per recuperare i materiali necessari ho dovuto farmi un ampio giro tra i negozi on-line, con risultati discordanti. Se non altro l’esperienza mi ha permesso di stilare una mini classifica che riporto di seguito:
Super, compro ancora
Onesto
Inaffidabile
Da scampare come la peste
Assemblare l’hardware
Dopo tre giorni ricevo dal sito tedesco il case, la mobo e l’alimentatore PicoPSU, la qual cosa mi fa sperare in una rapida conclusione. In realtà gli ultimi componenti mi arriveranno dopo quasi quattro settimane, durante le quali ho il tempo di pentirmi di alcune scelte:
- Il case M300, che ho scelto per le ridotte dimensioni, permette di alloggiare solo ventole da 40 mm, spesso rumorose. Case leggermente più alti permettono di alloggiare ventole da 80 mm, molto più silenziose e facili da reperire.
- La PicoPSU che ho scelto richiede un alimentatore con tensione fissa da 12V, mentre la maggior parte degli alimentatori per portatili in commercio partono da un minimo di 15V. Per pochi euro in più potevo avere il modello che accetta tensioni fino a 25V
- La mobo della Intel è buona ed economica, ma consuma leggermente di più rispetto alle VIA, circa 10W, e richiede una seconda alimentazione tramite uno spinotto tipo ATX4P. Questo causa maggior calore da dissipare e la necessità attaccare al PicoPSU uno sdoppiatore con un adattatore di non facile reperimento.
A parte queste note l’assemblaggio non ha riservato grosse sorprese. Il case, anche se di dimensioni ridotte, si è rivelato adatto allo scopo. Dopo aver cercato inutilmente di avere da Wireshop l’adattatore per ATX4P, mi sono deciso a costruirmelo in casa recuperando la spinetta da un vecchio alimentatore ATX. Ho inoltre scoperto che in molti adattatori in commercio le spine di alimentazione SATA agganciano i cavi in comodissimi attacchi a baionetta che rendono semplice la sostituzione di spine MOLEX eventualmente esistenti.
Dopo alcune settimane di ricerca infruttuosa di un alimentatore per portatili con uscita 12VCC mi sono deciso a comprarne uno dalla Sintel, che mi ha servito in maniera impeccabile. Peccato che il mattino dopo abbia trovato ben due alimentatori equivalenti alla metà del prezzo: la legge di Murphy non lascia scampo.
L’ulltimo scoglio che ho dovuto superare è stata la rumorosità: purtroppo la ventolina della CPU montata dalla Intel è discretamente rumorosa, e la dimensione di 40 mm non lascia molte chances. Totalmodding offre diverse ventole adatte, ma purtroppo il primo tentativo con quella più lenta e silenziosa porta la temperatura della CPU sopra i settanta gradi. Installo quindi il modello più veloce e la temperatura si assesta intorno ai sessanta gradi, anche se l’apparecchio non è silenzioso come speravo.
Installare il software
Il mio gioiellino è ora pronto. I servizi che ho intenzione di attivare sono:
- RAID1 e backup incrementale
- Accesso remoto via SSH e VNC
- Server stampa e scansione
- Server di posta con imap e webmail
- Disk sharing con Samba
- Server LAMP
- Client MLDonkey
Ovviamente il tutto eseguito con software libero disponibile tramite GNU/Linux, e la scelta della distribuzione casca senza ripensamenti su Debian stable, che offre da diversi anni gli stessi servizi sul predecessore. Le maggiori fonti di ispirazione per tutte le configurazioni sono stati il wiki di Debianizzati e Debian Administration Resources.
Kernel e RAID1
Dopo l’installazione dei soli pacchetti di base e l’aggiornamento con un repository internet, la prima operazione che ho eseguito è stata la compilazione di un kernel monolitico, ovviamente alla maniera Debian. Qui potete trovare il .config da me utilizzato per la bisogna.
Purtroppo mi sono accorto che i sensori di temperatura di questa scheda, relativamente nuova, non sono supportati dal kernel della stable, quindi ho dovuto scaricare il sorgente del kernel 2.6.22 dai backports e applicare una patch per poter visualizzare le temperature con lm-sensors.
L’operazione successiva è stata la creazione del RAID1: anche in questo caso Debianizzati mi è venuto in aiuto con una guida semplice e dettagliata. ed in poco tempo il sistema è funzionante.
Servizi interni
Solo a questo punto ho iniziato l’installazione dei programmi aggiuntivi che mi servivano, badando bene ad evitare l’installazione di pacchetti inutili.
Per prima cosa ho installato OpenSSH e abilitato una console seriale. Questo mi ha permesso di eliminare definitivamente tastiera e monitor e proseguire l’installazione comodamente collegato dal mio portatile, o anche dal lavoro durante la pausa pranzo. La console seriale mi permette inoltre di intercettare ed eventualmente correggere eventuali problemi in fase di boot senza ricollegare le periferiche.
Modificando gli script di Mike è molto semplice abilitare un backup incrementale giornaliero o settimanale. Calibrando opportunamente la frequenza e le directory interessate riesco a far stare in 5 GB un backup delle cose importanti (SO, configurazioni, Mail e sito web) fino ad un mese indietro.
La configurazione di un server mail con fetchmail, postfix, procmail e uw-imaps è banale seguendo uno qualsiasi dei molti howto che si possono trovare in rete. Il Quick&Easy Configuration HOWTO di Antonio Fragola, nonostante sia datato, rimane uno dei documenti più adatti allo scopo. L’obiettivo è scaricare la posta dai vari account internet distribuendola nelle varie caselle degli utenti, i quali possono accedere ad esse sul server con qualunque client vogliano usare.
Le note particolari della mia installazione sono l’utilizzo di Freepops per accedere alle mail di inwind e libero, la cui versione aggiornata deve essere scaricata dai repository dei backports, e l’utilizzo di Clamav dai repository ‘volatile’, come suggerito da Debian Administration.
Installando CUPS e SANE posso avere sia la stampante che lo scanner funzionanti e disponibili anche per i client in rete. Ovviamente devo spiegare ai demoni quale rete servire, e ai client da quale server ascoltare.
Configurando Samba con LDAP la gestione degli utenti del dominio viene molto semplificata, ed anche gli eventuali client Windows si sentono come a casa loro.
Servizi sul web
Posso ora passare ai servizi aperti sul web. A pochi minuti dall’installazione MLDonkey comincia allegramente a scaricare e condividere con altri peer le mie cartelle condivise. Devo avere l’accortezza di aprire sul router le porte corrispondenti ai protocolli che intendo usare: eDonkey, Gnutella, FastTrack, Bittorrent e quant’altro.
L’installazione dei server LAMP e la relativa configurazione è cosa veloce seguendo i consigli di Debianizzati; una volta concluso mi basta copiare gli archivi di WordPress, eseguire un ripristino del database, abilitare il sito su apache ed il mio blog fa bella mostra di se su internet.
Anche l’installazione e la configurazione di OpenVPN si è rivelata abbastanza semplice, seguendo la guida di Debian Administration. In questo modo da qualunque parte mi trovo posso accedere in modo sicuro ai servizi della mia rete, inclusa l’interfaccia web di MLDonkey.
La ciliegina finale è stata l’abilitazione di una webmail con Squirrelmail accessibile su una connessione sicura dal web, sulla cui configurazione ho scritto un’altro manualetto disponibile sul blog del BGLug VS.
Conclusioni
Dieci anni fa non avrei preso sul serio chiunque mi avesse detto che con poco più di trenta watt e una scatoletta grande come un’autoradio si potesse realizzare tutto questo. Oggi questo l’ho fatto io, con il supporto di molti sconosciuti che scrivono software libero ed aiutano gli utenti con manuali e mailing lists.
Mio padre, tra i tanti buoni consigli che mi ha dato, mi ripeteva sempre “Nessuno fa niente per niente”. Ora posso dire: “Papà ti sbagli!”. C’è un sacco di gente là fuori che fa delle cose per il solo gusto di farle bene, ed è felice di condividerle con chiunque condivida la loro passione. Voglio ringraziare quindi tutte queste persone, e spero che queste mie pagine possano dare un piccolo contributo a tutto ciò.